Dobrý den, chci se zeptat jak měřit čas s přesností na sekundy od stisknutí tačítka,po určitou událost v programu, který pak chci zobrazit na LCD displej. Mám PIC16F628 s frekvencí 4Mhz. Takže jeden cyklus trvá 1 mikrosekundu. takže až proběhne milion cyklů, má se mi přičíst do registru jednička ? Nebo radši sehnat nějaký program s realizací stopek, a inspirovat se u něj ? Díky za rady.
Myslel jsem udělat to nějak přes čítač časovač, a když by přetekl, došlo by k přerušení , který by se obsloužilo (přičtení hodnot do určitých registrů)… nevím jestli je ta moje myšlenka dobrá nebo ne.
Tak to přerušení bych asi měl… ale teď přijde ta pro mě horší část… a to zobrazení těch zapsaných hodnot na displej. Ve škole jsme dělali nepřímou adresaci přež registr FSR. Stačí si vytvořit registry pro čislo 0-9, do kterych zapišu data a ty pak používat pro jednotky a desitky sekund i minut?
vytvoris si registry jednotky/desitky pro sekundy ,minuty ,hodiny … do tech pak zapises hodnotu ktera odpovida zobrazeni znaku 0-9 na displej, lcd ci 7segment , kazdej displej potrebuje jinou hodnotu prozobrazeni
Takhle by to mělo jít že ? Vytvořím si registry čislo0-čislo9 , kam zapíšu odpovidajici data pro zobrazení čísla na displej a v registrch desitkys a jednotkys budu mít určité hodnoty…
movf desitkys,0 ;zobrazení desítek sekund
movwf pamet
movf pamet,0
addlw 0x30
movwf FSR
movf INDF,0
call zapis
movf jednotkys,0 ;zobrazení jednotek sekund
movwf pamet
movf pamet,0
addlw 0x30
movwf FSR
movf INDF,0
call zapis
já myslel, že do těch registrů musím zapsat data třeba pro zobrazení čísla 0 na LCD displeji potřebuji pro nulu b’0011000’ tak tuhle hodnotu zapišu do registru čislo0 a pak když budu mít třeba v registru jednotek sekund nulu, tak ta mi odkáže na adresu registru čislo 0 a to se zobrazi na displej… Nebo jsem tu nepřímou adresaci vůbec nepochopil
Nepochopil. Nepřímá adresace je to, že to děláš pře FSR a INDF, tudíž se nemusíš starat o banky. U hodin je to si myslím v celku zbytečný.
clbock 0x20
Hodiny
Minuty
Vteriny
endc
Ukázka FSR
movlw Hodiny
movwf FSR
movf INDF,w ;hHodiny do w
call HexDec ;prevod
movf T1,w ;Desitky do w
addlw .48 ;+48
call LCD ;nevim jak posilas data na LCD
movf T0,w ;jednotky do w
addlw .48 ;+48
call LCD ;nevim jak posilas data na LCD
incf FSR ;ve fsr bude reg Minuty
movf INDF,w ;minuty do w
call HexDec ;prevod
movf T1,w ;Desitky do w
addlw .48 ;+48
call LCD ;nevim jak posilas data na LCD
movf T0,w ;jednotky do w
addlw .48 ;+48
call LCD ;nevim jak posilas data na LCD
incf FSR ;ve fsr bude reg vteriny
movf INDF,w ;vteriny do w
call HexDec ;prevod
movf T1,w ;Desitky do w
addlw .48 ;+48
call LCD ;nevim jak posilas data na LCD
movf T0,w ;jednotky do w
addlw .48 ;+48
call LCD ;nevim jak posilas data na LCD