Tak jsem trošku upravil odpory ale dělá to pořád, sice už ne tak moc. Ale vypl jsem multiplex a jednu segmentovku ovládám přímo přes porty a nedělá to. Spínám postupně A, A+B atd a jas neklesá. Když zapnu multiplex, tak to zase začne dělat. Chyba v programu! Ale jaká? Přerušení každých 2,4ms
[code]
PK
ADDWF PCL,F ; a pricist k PCL
; hgfedcba 1 sviti
retlw b’00000001’ ;0
retlw b’01000000’ ;1
retlw b’00100000’ ;2
retlw b’00010000’ ;3
retlw b’00001000’ ;4
retlw b’00000100’ ;5
retlw b’00000010’ ;6
retlw b’10000000’ ;7
PA
addlw .230 ;255 - 0x19 = 243
btfss STATUS,C
goto $+3
movlw 0x0B
goto $+2
movf INDF,w
ADDWF PCL,F ; a pricist k PCL
; hgfedcba 1 sviti
retlw b'00111111' ;0
retlw b'00000110' ;1
retlw b'01011011' ;2
retlw b'01001111' ;3
retlw b'01100110' ;4
retlw b'01101101' ;5
retlw b'01111101' ;6
retlw b'00000111' ;7
retlw b'01111111' ;8
retlw b'01101111' ;9
retlw b'00000000' ; 0x0A NIC
retlw b'01000000' ; 0x0B -
retlw b'00000100' ; 0x0C _
retlw b'00000100' ; 0x0D _
retlw b'00000100' ; 0x0E _
retlw b'00000100' ; 0x0F _
retlw b'10111111' ;0x10 0.
retlw b'10000110' ;0x11 1.
retlw b'11011011' ;2
retlw b'11001111' ;3
retlw b'11100110' ;4
retlw b'11101101' ;5
retlw b'11111101' ;6
retlw b'10000111' ;7
retlw b'11111111' ;8
retlw b'11101111' ;9
;přerušení od přetečení časovače0
IT0IF
movlw .100
movwf TMR0
BCF INTCON,T0IF ;vynulovat příznak
incf DISPORADI,f
movlw .8
subwf DISPORADI,w
btfss STATUS,Z
goto $+2
clrf DISPORADI
Anody
movf DISPORADI,w
call PK
movwf PORTC
Katody
movlw DIS0
addwf DISPORADI,w
movwf FSR
movf INDF,w
call PA
movwf PORTD
;********************************
;dokončit přerušení
;--------------------------------[/code]