Я хочу построить двоичные часы с использованием модуля timer1 в качестве RTC с примером кода из таблицы данных, но, хотя я и написал необходимый код вокруг него, прерывание не сработает.Я пропустил настройку регистра или адрес памяти?Я новичок в программировании PIC, но получил некоторый опыт сборки.
UDATA_ACS
secs RES 1
mins RES 1
hours RES 1
ORG 0x0000 ; processor reset vector
GOTO MAIN ; go to beginning of program
ORG 0x0800
BTFSC intcon,int0if
CALL int0_isr
RETFIE
MAIN_PROG CODE ; let linker place main program
ORG 0x0100
MAIN
MOVLW 080h ; Preload TMR1 register pair
MOVWF TMR1H ; for 1 second overflow
CLRF TMR1L
MOVLW b'00001101' ; Configure for external clock,
MOVWF T1CON ; Asynchronous operation, external oscillator
CLRF secs ; Initialize timekeeping registers
CLRF mins ;
MOVLW .12
MOVWF hours
BCF intcon,int0if
BSF INTCON,INT0IE
BCF INTCON2,INTEDG0
; BSF rcon,ipen
; BSF intcon,peie
BSF PIE1, TMR1IE ; Enable Timer1 interrupt
BSF intcon,gie
clrf lata
movlw 0x0f
movwf adcon1
movwf 0x07
movwf cmcon
movlw 0x00
movwf trisa
clrf portb
movlw 0x00
movwf trisb
clrf latd
movlw 0x00
movwf trisd
movlw secs
movwf lata
movlw mins
movwf latb
movlw hours
movwf latd
here
goto here
RETURN
int0_isr
;from datasheet p.133
RETFIE
~~~~~~~~~