;27.07.2025 stundenzaehler01 mit pic18f14k22 ;PIC18F14K22/Assembler:MPASM V5.20/IDE: MPLABX v3.55/PICkit3 Demo Board ; ; port a: a5 external clock eingang, rest ausgang ; a0 Prog PGD // a1 Prog PGC // a2 nc // ; a3 Prog VPP // a4 nc // a5 clock eingang ; port b: c7 für test-led ; port c: c0 für blink-led ;------------------------ ;27.07. funktioniert nicht, als test für erreichen irq-routine led an pb7 ;------------------------ #include ;config settings CONFIG IESO = OFF, PLLEN = OFF, FOSC = IRC, FCMEN = OFF, PCLKEN = OFF CONFIG BOREN = SBORDIS, BORV = 19, PWRTEN = OFF, WDTEN = OFF CONFIG MCLRE = OFF, HFOFST = OFF, DEBUG = OFF, STVREN = ON errorlevel -302 ;surpress the 'not in bank0' warning GPR_VAR UDATA nix RES 1 ;nicht benötigt ;-------------------------------- Org 0x0000 bra START Org 0x0008 ;vector für high priority irq bra ruptus START: ;Setup main init ; movlw b'00000010' ;set cpu clock speed of 31KHz movwf OSCCON ;move contents of working register clrf OSCTUNE ;into OSCCON clrf LATA movlw b'00100000' ;port a5 clock eingang, rest ausgang movwf TRISA ; clrf WPUA ;keine pull ups widerstände an port a clrf ANSEL ;alle input pins auf digital clrf LATB clrf TRISB clrf LATC clrf TRISC ;------------------------------ vorMain: movlw b'10000111' ;timer1 :16bit - externer takt movwf T1CON ; bsf IPR1,TMR1IP ;timer1 interuppt high priority bit setzen Main: movlw h'ff' ;2hoch16 minus 50 movwf TMR1H ;soll genau 1 sekunde ergeben movlw h'ce' movwf TMR1L ;---------------- blink: ; bsf PIE1,TMR1IF ;enable timer1 interrupt nop nop nop nop nop nop nop nop bra Main ;----------------- ruptus: ;timer1 überlauf löst irq aus/ oder auch nicht !!!! bcf PIR1,TMR1IF ;interrupt flag löschen bcf PIE1,TMR1IF ;disable timer1 interrupt bsf LATB,7 ;test-led an btg LATC,0 ;bit c0 toggeln retfie ; end