Kako ste se u mojem proslom postu:
http://www.elektronika.ba/forum/viewtop ... =3&t=10073" onclick="window.open(this.href);return false;
pokazali voljnim, dobronamjernim, i nadasve mi pomogli, zainteresirali ste me za pic 12f629.
S obzirom da sam pocetnik, i nepoznajem picbasic, molio bih vas za vase savjete,promjene u kodu i dobru volju.
Namjeravam napraviti Timer off sa picom 12f629, (mnogo jeftinije nego sa NE555), a nadam se da ce ovaj projekt biti zgodan i primjenjiv drugima koji tek pocinju ili traze nesto slicno.
Dakle Zelim napraviti nazovimo Timer koji se ukljucuje (starta) po dolasku kratkog signala na pin GPIO.5 (Ulaz1), te ukljucuje pin (GPIO.0), drzi pin GPIO.0 ukljucenim 10min, a nakon 10min gasi pin GPIO.0, i ceka ponovno ulazak signala na pin GPIO.5.
Dolje cu zakaciti kod koji se uredno kompajlira u PBP ver. 2.60A,
I zamoliti za konkretne odgovore (hvala)
1. zanima me da li ce stvar raditi (kod dolje)?
2. Ima li neko zgodnije rjesenje od Pause 60000 koja odgovara
stanci od 10min.
3.Da li kad pic izvrsava naredbu pause nemoze raditi nista drugo?
4. Kako rjesiti da moze raditi i nesto drugo dokle ceka da ugasi pin GPIO.0?
5.Moje neko razmisljanje kako rjesiti ovaj program je koristeci interni timer i napraviti interrupt kada dodje signal na GPIO.5da li to ima logike?
Hvala Svima
Code: Select all
Define OSCCAL_1K 1 ' kalibracija internog oscilatora - ova radi samo sa novim nikad pobrisanim devices
Ulaz1 var GPIO.5
Out1 var GPIO.0
CMCON = 7 ' iskljuciti analogni komparator
'ANSEL = 0 ' iskljuciti analogno digitalni konverter, postavi sve pinove na digitalne
'ne radi sa 12F629
TRISIO = %00100000 'ime portova na picevima PIC12C5xx, 12CE5xx, 12C67x and 12CE67x je GPIO.
' Pa je tako ime za TRIS registar TRISIO. Postavi pin GP.5 kao input
WPU = %00100000 ' - pull up enabled ? sto to tocno znaci?
'************************* kalibracija oscilatora *************
asm
bsf STATUS,RP0 ;' bank 1
call 3ffH ;' get the cal value ( podatak zapisan na zadnjoj adresi )
movwf OSCCAL ;' calibrate
bcf STATUS,RP0 ;' bank 0
endasm
'***************************************************************
low Out1
input Ulaz1
Main:
if Ulaz1 = 1 then
Out1=1
Pause 60000
Out1=0
goto Main
endif
goto Main
end