Stránka 1 z 1
Časový zaznamenávač událostí s PIC
Napsal: 09 kvě 2009, 10:19
od markoni
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 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 tu 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
Napsal: 09 kvě 2009, 21:27
od miromatus
Zdravím , pozri KTE 6/2003 miniškola 16F84 lekcia 21 , je tam popisovaný program záznam času pri stlačení tlačidla.
Napsal: 10 kvě 2009, 06:44
od markoni
miromatus píše:Zdravím , pozri KTE 6/2003 miniškola 16F84 lekcia 21 , je tam popisovaný program záznam času pri stlačení tlačidla.
Ten časopis jsem si kupoval v trafice ale bohužel nepravidelně tak nevím jestli toto číslo mám nevíte náhodou kdybych ho neměl kde ho sehnat když ne v papírové podobě tak v elektronické?díky mimochodem je veliká škoda že přestal vycházet .
Napsal: 10 kvě 2009, 07:39
od stepa
markoni píše:miromatus píše:Zdravím , pozri KTE 6/2003 miniškola 16F84 lekcia 21 , je tam popisovaný program záznam času pri stlačení tlačidla.
Ten časopis jsem si kupoval v trafice ale bohužel nepravidelně tak nevím jestli toto číslo mám nevíte náhodou kdybych ho neměl kde ho sehnat když ne v papírové podobě tak v elektronické?díky mimochodem je veliká škoda že přestal vycházet .
Odkazy na stazeni jsou na foru.
Napsal: 10 kvě 2009, 09:34
od miromatus
Napsal: 14 kvě 2009, 17:20
od markoni
Můžete mi někdo napsat rutinu na hodiny a zápis do eeprom ? sice mám staženou celou školu programovaní co mě poskytl
miromatus ale nemohu se dobrat správného chodu díky
Kód: Vybrat vše
LIST P = 16F84, R = DEC
#INCLUDE <P16F84.INC>
__CONFIG 0x3FF9
RAM EQU H'0C'
RBF EQU RAM
RBF1 EQU RAM+1
NUM EQU RAM+2
NUM1 EQU RAM+3
TMP EQU RAM+4
TM1 EQU RAM+5
TM2 EQU RAM+6
JEDN EQU RAM+7
DES EQU RAM+8
HOD EQU RAM+9
MIN EQU RAM+10
SEC EQU RAM+11
POM EQU RAM+12
ADRDD EQU RAM+13
HEX EQU RAM+14
TMR EQU RAM+15
MEM_W EQU RAM+16
MEM_S EQU RAM+17
#define Q PORTB,0
#define RS PORTB,1
#define RW PORTB,2
#define E PORTB,3
#define BF RBF,3
ORG 0
GOTO START
ORG 4
START BSF STATUS,RP0
MOVLW B'01110001'
MOVWF TRISB
MOVLW B'11000001'
MOVWF OPTION_REG
BCF STATUS,RP0
INTR MOVWF MEM_W
SWAPF STATUS,W
MOVWF MEM_S
BCF STATUS,RP0
CAS_1 NOP
NOP
NOP
NOP
NOP
MOVLW 100
MOVWF TMR0
INCF TMR,F
MOVFW TMR
XORLW 100
BTFSS STATUS,Z
GOTO CAS_1
CLRF TMR
INCF SEC,F
MOVFW SEC
XORLW 60
BTFSS STATUS,Z
CLRF SEC
INCF MIN,F
MOVFW MIN
XORLW 60
BTFSS STATUS,Z
GOTO CAS_1
CLRF MIN
INCF HOD,F
MOVFW HOD
XORLW 24
BTFSC STATUS,Z
CLRF HOD
goto CAS_1
;MOVLW 132
;CALL Z_CAS
;CAS_1 BCFINTCON,T0IF
SWAPF MEM_S,W
MOVWF STATUS
SWAPF MEM_W,F
SWAPF MEM_W,W
RETFIE
SAVE MOVWF EEADR ;obsah registru W do registru EEADR
MOVFW NUM
MOVWF EEDATA;obsah registru NUM do registru EEDATA
BSF STATUS,RP0 ;banka 1
BSF EECON1,WREN ;zápis do EEPROM povolen
MOVLW H'55'
MOVWF EECON2;první zápis bezpečnostního kódu
MOVLW H'AA'
MOVWF EECON2;druhý zápis bezpečnostního kódu
BSF EECON1,WR
BTFSS EECON1,EEIF ;je zápis ukončen?
GOTO $-1 ;ne,čekej
BCF EECON1,EEIF;bit EEIF vynulován
BCF EECON1,WREN ;zápis do EEPROM zakázán
BCF STATUS,RP0 ;banka 0
RETURN
LOAD MOVWF EEADR ;obsah registru W do registru EEADR
BSF STATUS,RP0 ;banka 1
BSF EECON1,RD;přečti data
BCF STATUS,RP0;banka 0
MOVFW EEDATA
MOVWF NUM ;zapiš data do registru NUM
RETURN
end
jak to mám dát do hromady aby to fungovalo?
Napsal: 14 kvě 2009, 22:46
od caven
to je nějak trošku blbě zapsané to přerušení ne ??
ty máš na začátku programu skok na adresu kde začíná přerušení ? A poté s tím pracuješ ???
Napsal: 15 kvě 2009, 19:00
od markoni
Já jsem to jen okopíroval s té školy potřeboval bych poradit nebo sem hodit celý program kdo to už řešil tak by mě ušetřil čas jak to mám udělat protože nemám na to dost času díky
a jak se dávají více řádkové komentáře tak aby jsem nemusel na každý řádek dávat ;