Håller på och kodar min klocka, men jag har lite problem.
Kod: Markera allt
hdisplay
addwf pcl ; Lägger Work i programräknaren
retlw 0xEB ; Etta
retlw 0xA1 ; Tvåa
retlw 0x91 ; Trea
retlw 0xD2 ; Fyra
retlw 0xA4 ; Femma ; Men istället hoppar den hít
retlw 0x84 ; Sexa
retlw 0xC9 ; Sjua
retlw 0x80 ; Åtta
retlw 0xD0 ; Nio ; Hit ska den hoppa
retlw 0x88 ; Nolla
hdig
addwf pcl ; Lägger Work i programräknaren
retlw 0x0C ; Siffra 1 <
retlw 0x09 ; Siffra 2 I ; Hit hoppar den istället
retlw 0x06 ; Siffra 3 > ; Hit ska den hoppa
;*************Initierar Portar***********************
start
MOVLW 7h
MOVWF ADCON1 ; Stänger av A/D-omvandlaren på PORTA
CLRF PORTA
MOVLW 0xF8
MOVWF TRISA ; RA0 > RA2 = Utgångar RA3 > RA7 = Ingångar
CLRF PORTB
MOVLW 0x00 ; Vänster Display
MOVWF TRISB ; Portb = Utgångar
CLRF PORTC
MOVLW 0xF1 ; Höger siffror
MOVWF TRISC ; RC1 > RC3 = Utgångar RC0:RC4 > RC7 = Ingångar
CLRF PORTD
MOVLW 07h
MOVWF CMCON ; Comparator på PortD = Av
MOVLW 0x00 ; Höger Display
MOVWF TRISD ; RD0 > RD7 = Utgångar
;************Huvudprogramet Börjar*******************
main:
movlw 0x09 ; Ska hoppa till rad 9 i tabellen "hdisplay"
call hdisplay
movwf portd
movlw 0x03 ; Ska hoppa till rad 3 i tabellen "hdig"
call hdig
movwf portc
goto main
end
Problemet är alltså att den inte hoppar dit jag skriver.
I databladet står det
Kod: Markera allt
The ADDWF PCL instruction does not
update PCLATH/PCLATU. A read operation
on PCL must be performed to update
PCLATH and PCLATU.
Vad är knas ?
Förövrigt så funkar allt, den använder en 4mhz kristall med 15pF avlastningskondningar, 7805 spänningsregulator.
Pic´en är en 18LF458 som programeras ICSP med en Wisp628.
