Časový zaznamenávač událostí s PIC

Zdravím
Potřeboval bych nějaký program na zaznamenání nějaké události moje úvaha je taková:
program v například v PIC16F84 by vytvářel minuty a hodiny a ty by přičítal a zapisoval do proměnné a jak by nastala nějaká událost zvenčí tak ta hodnota proměnné by se zkopírovala do eepromky obsažené v PIC16F84 a
po skončení měření tak PIC by jsem hodil na programátor a v eepromce bych si přečetl na PC dělal někdo z vás něco takového abych nemusel já psát program a pak pracně ladit díky
tady jsem napsal můj kod jenže nechce fungovat

 	LIST P=16F84A, R=DEC   ; Use the PIC16F84 and decimal system 
;0-24 hodiny se zaznamem casu udalosti v eepromce tech udalosti muze byt az 32 s ohledem na velikost eepromky
        #include "P16F84A.INC"  ; Include header file 
          __config  _XT_OSC & _WDT_OFF & _PWRTE_OFF
poc equ 0X15
;TMP0 equ 0X16
TMP0  EQU  20H 
TMP1  EQU  21H 
TMP2  EQU  22H 
HOD   EQU  23H
MIN   EQU  24H  
SEC   EQU  25H 
CfgData EQU 26H
CfgAdr EQU 27H
          org 000
        ;  nop
         ; movlw 10
         ; movwf poc        
          ;movlw  15
         ; bsf STATUS,RP0
         ; tris   PORTA
          movlw  00
          tris   PORTB
          bcf  STATUS,RP0
         ; movlw  255
         ; movwf  PORTB
         ; btfss PORTA,0
         ; CLRF SEC
         ; CLRF    STATUS      ; nastavení BANKY 0
   
   BSF   STATUS, RP0      ; nastavení BANKY 1

   movlw   b'11111111'      ; portA
   movwf   TRISA
   
   bcf   STATUS,RP0      ; nastavení BANKY 0 
       ;   CLRF MIN
      ;    CLRF HOD
     ;     CLRF CfgAdr
          goto druhyp          
      SAVE
      BSF PORTB,1
       movf MIN,W
      movwf CfgData
      
      CfgSet
CfgGet bcf STATUS, RP0 ; volba banky 0 
       movf CfgAdr,W ; příprava adresy ke čtení do W 
       movwf EEADR ; nastavení adresy EEPROM 
       bsf STATUS,RP0 ; volba banky 1 
       bsf EECON1,RD ; zapnutí požadavku ke čtení bajtu 
       bcf STATUS,RP0 ; volba banky 0 
       movf EEDATA,W ; načtení bajtu do registru W 
          


       bcf STATUS, RP0 ; volba banky 0 
       movf CfgAdr,W ; příprava adresy k zápisu do W 
       movwf EEADR ; nastavení adresy EEPROM 
       movf CfgData,W ; příprava dat k zápisu do W 
       movwf EEDATA ; nastavení dat k zápisu do EEPROM 
       bsf STATUS,RP0 ; volba banky 1 
       bcf INTCON,GIE ; zákaz všech přerušení 
       bsf EECON1,WREN ; povolení zápisu do EEPROM 
       movlw 55h ; 1. odemykací kód 
       movwf EECON2 ; zápis 1. kódu 
       movlw 0AAh ; 2. odemykací kód 
       movwf EECON2 ; zápis 2. kódu 
       bsf EECON1,WR ; zapnutí požadavku k zápisu bajtu 
       bcf EECON1,WREN ; zákaz dalšího zápisu do EEPROM 
       bsf INTCON,GIE ; povolení přerušení 
CfgSet2 btfsc EECON1,WR ; je zápis již dokončen? 
       goto CfgSet2 ; čekání na dokončení zápisu 
        INCF CfgAdr,F
        movf HOD,W
       movwf CfgData
            
 ;CfgGet
 bcf STATUS, RP0 ; volba banky 0 
       movf CfgAdr,W ; příprava adresy ke čtení do W 
       movwf EEADR ; nastavení adresy EEPROM 
       bsf STATUS,RP0 ; volba banky 1 
       bsf EECON1,RD ; zapnutí požadavku ke čtení bajtu 
       bcf STATUS,RP0 ; volba banky 0 
       movf EEDATA,W ; načtení bajtu do registru W 
          
           bcf STATUS, RP0 ; volba banky 0 
       movf CfgAdr,W ; příprava adresy k zápisu do W 
       movwf EEADR ; nastavení adresy EEPROM 
       movf CfgData,W ; příprava dat k zápisu do W 
       movwf EEDATA ; nastavení dat k zápisu do EEPROM 
       bsf STATUS,RP0 ; volba banky 1 
       bcf INTCON,GIE ; zákaz všech přerušení 
       bsf EECON1,WREN ; povolení zápisu do EEPROM 
       movlw 55h ; 1. odemykací kód 
       movwf EECON2 ; zápis 1. kódu 
       movlw 0AAh ; 2. odemykací kód 
       movwf EECON2 ; zápis 2. kódu 
       bsf EECON1,WR ; zapnutí požadavku k zápisu bajtu 
       bcf EECON1,WREN ; zákaz dalšího zápisu do EEPROM 
       bsf INTCON,GIE ; povolení přerušení 
CfgSet22 btfsc EECON1,WR ; je zápis již dokončen? 
       goto CfgSet22 ; čekání na dokončení zápisu 
        INCF CfgAdr,F ;zvyseni registru adresy eepromky o 1
      ;  MOVWF CfgAdr
       ; XORLW 32
       ; BTFSS STATUS,Z
       ; CLRF CfgAdr
    ;   CLRF    STATUS      ; nastavení BANKY 0
   
  ; BSF   STATUS, RP0      ; nastavení BANKY 1

   ;movlw   b'11111111'      ; portA
   ;movwf   TRISA
   
   ;bcf   STATUS,RP0      ; nastavení BANKY 0 
       BCF PORTB,1
       retfie 
   zamek BSF PORTB,2      ;nekonecna smycka  
         goto zamek

        
  druhyp nop
         BCF PORTB,0
           MOVf CfgAdr,0            ;adresa bunky eepromky 
         XORLW 64                   ;velikost eepromky 
         BTFSc STATUS,Z              ;Kdyz je konec eepromky tak tak
         goto zamek ;CLRF CfgAdr                ;nastav adresu eepromky na 0 
          MOVLW 0x06 ;6 DEC         ;---
         MOVWF TMP2                 ;
         MOVLW 0x13 ;19 DEC         ;
         MOVWF TMP1                 ;
         MOVLW 0x0AD ;173 DEC       ;
         MOVWF TMP0                 ; ceka sekundu 
         DECFSZ TMP0,F              ;
         GOTO $-1                   ;
         DECFSZ TMP1,F              ;
         GOTO $-3                   ;
         DECFSZ TMP2,F              ;
          GOTO $-5                  ;---
          BSF PORTB,0               ;nastaveni na 1 duvod signalizuje LED sekundu 
          btfss PORTA,0             ;testuje 1 na portuA jestli je tam logicka 1 kdyz ano tak preskoc nas.instu
          call SAVE                 ;kdyz je tam 0 uloz do epromky stav hodin
          INCF SEC,F                ;pridej registru SEC +1
          MOVF SEC,W ;MOVFW SEC                  
          XORLW 60
          BTFSS STATUS,Z            ;je tych sekund 60
          goto druhyp               ;kdyz ne 
         CLRF SEC                   ;kdyz ano
         INCF MIN,F                 ;
         MOVF MIN,W ;MOVFW MIN
         XORLW 60
         BTFSS STATUS,Z
         goto druhyp
         CLRF MIN
         INCF HOD,F
         MOVF HOD,W ;MOVFW HOD
         XORLW 24
         BTFSS STATUS,Z
         goto druhyp
         CLRF SEC
         CLRF MIN
         CLRF HOD
         goto druhyp
          MOVWF CfgAdr
        XORLW 32
        BTFSS STATUS,Z
        CLRF CfgAdr
        goto druhyp
        nop
        end        
          org 500       
   data  10,10,15,20,20,155
   end
   

kde dělám chybu? díky předem

tady jsem pro orientaci dal schéma prosím o pomoc jsem v koncích
schema.jpg

Pozri si odpoved na www.mcu.cz :slight_smile:

Že si mu rovnou nenapsal, že si odpověď může nalézt v celém netu. (’:lol:’)
Čau Martin.

To bol odo mna nejaky sum :slight_smile:
Chybicka se vloudila :slight_smile: :slight_smile: :slight_smile: