TIMER pic16f84
Moderators: pedja089, stojke369, [eDo], trax
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
TIMER pic16f84
Da li neko moze da mi pomogne da napravim TIMER koji ce da mi nakon 8 sati aktivira led 2 sekunde i ugasi i to opet u krug
Re: TIMER pic16f84
Sa pic16f84......?
evo od mene šema, a neko drugi će program....
evo od mene šema, a neko drugi će program....
- Attachments
-
- sema.jpg (13.74 KiB) Viewed 4976 times
Ako kaniš pobijediti, ne smiješ izgubiti
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
hvala za shemu, ali imao sam ja ovo i imam neki kod ali ovo su pauze od 1 sec a nesto sam citao da ovaj pic podrzava pause od 6000
OUTPUT PORTB.7 'proglasavamo portb izlaznim
pocetak:
HIGH PORTB.7 ' ovim smo postavili rb7 na logicku 1(5V)
PAUSE 1000 'sada cekamo jednu sekundu
LOW PORTB.7 'sada postavimo rb7 na 0 tj na 0V
PAUSE 1000 'opet cekamo
GOTO POCETAK 'ovom naredbom kazemo da se program vrati na pocetak i da se tako vrti u krog do beskonacnosti
END
OUTPUT PORTB.7 'proglasavamo portb izlaznim
pocetak:
HIGH PORTB.7 ' ovim smo postavili rb7 na logicku 1(5V)
PAUSE 1000 'sada cekamo jednu sekundu
LOW PORTB.7 'sada postavimo rb7 na 0 tj na 0V
PAUSE 1000 'opet cekamo
GOTO POCETAK 'ovom naredbom kazemo da se program vrati na pocetak i da se tako vrti u krog do beskonacnosti
END
Re: TIMER pic16f84
Probaj ovako, ali ne znam koliko će ti pic "lagati" na 8 sati:
I var word
pocetak:
for i=1 to 28800
pause 1000 ' 28800 sekundi je 8 sati
next i
high portb.7
pause 2000 ' dioda gori 2 sekunde
low portb.7
goto pocetak
I var word
pocetak:
for i=1 to 28800
pause 1000 ' 28800 sekundi je 8 sati
next i
high portb.7
pause 2000 ' dioda gori 2 sekunde
low portb.7
goto pocetak
Ako kaniš pobijediti, ne smiješ izgubiti
- Elektronicar
- Pravo uznapredovao :)
- Posts: 467
- Joined: 19-01-2008, 17:05
- Location: Balkan
Re: TIMER pic16f84
Nepoznajem PBP ali kako mi se cini ovaj kod nece raditi jer nigde nepostoji uslov za testiranje podesenog vremena. Takodje potrebno je vreme za isvrsavanje svake instrukcije + gresku koju pravi oscilator. Jedino resenje ostaje uz upotebu spoljasnjeg oscilatora i koriscenjem TRM0.
Ovo je dobar primer koji se moze primeniti na bilo koji pic.
Detaljno priuci INTCON I OPTION registre
Na slican nacin sam realizovao RTC pisan u mikro basic no projekat zbog nedostatka vremena nije zavrsen.
http://img46.imageshack.us/img46/9261/timerj.jpg" onclick="window.open(this.href);return false;
Ovo je dobar primer koji se moze primeniti na bilo koji pic.
Detaljno priuci INTCON I OPTION registre
Code: Select all
http://www.microcontrollerboard.com/pic-timer0-tutorial.html
http://img46.imageshack.us/img46/9261/timerj.jpg" onclick="window.open(this.href);return false;
Re: TIMER pic16f84
Stavi kristal od 32,768KHz. Podesi preskaler i tmr0 tako da dobijes interapt svake sekunde. A za dalje je onda lako.
Re: TIMER pic16f84
Ma u startu sam se ogradio u vezi tačnosti, ali @momcilo je očito početnik pa ove vaše prijedloge vjerovatno ne razumije.Elektronicar wrote:Nepoznajem PBP ali kako mi se cini ovaj kod nece raditi
Ako kaniš pobijediti, ne smiješ izgubiti
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
IZvini pedja da li mi mozes to malo pribliznije pojasniti
Re: TIMER pic16f84
Mogu.
Ali za pocetak skinio datasheet i iscitaj sve vezano za OPTION_REG i TMR0.
Na sajtu negde imas projekat nixi clock. Pa je tamo trax lepo objanio kako dobiti tacno odredjeno vreme.
Ali svodi se na sledece, kada prikljucis krista od na osc 32,768KHz, negov takt se deli sa 4 pa ustvari onda imas takt 8192Hz, pa to podelis sa preskalerom itd, kada to izdelis dobices neki broj celih sekundi...
Ali za pocetak skinio datasheet i iscitaj sve vezano za OPTION_REG i TMR0.
Na sajtu negde imas projekat nixi clock. Pa je tamo trax lepo objanio kako dobiti tacno odredjeno vreme.
Ali svodi se na sledece, kada prikljucis krista od na osc 32,768KHz, negov takt se deli sa 4 pa ustvari onda imas takt 8192Hz, pa to podelis sa preskalerom itd, kada to izdelis dobices neki broj celih sekundi...
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
Pedja ja sam probao kontroler sa kristalom od 4 mhz i kada mu dam u petlju da mi broji do 60(minut) radi tacno ali kada pokusam da mi broji do 3600 (1 sat) onda mi kontroler salje visok nivo na LED otprilike na pet minuta i to sam nekoliko puta testirao
SYMBOL LED= PORTB.4
OUTPUT LED
i var byte
pocetak:
low LED
for i=1 to 3600
PAUSE 1000
next i
high LED
PAUSE 5000
GOTO POCETAK
END
SYMBOL LED= PORTB.4
OUTPUT LED
i var byte
pocetak:
low LED
for i=1 to 3600
PAUSE 1000
next i
high LED
PAUSE 5000
GOTO POCETAK
END
Re: TIMER pic16f84
Pa tako si napisao da radi...
Tj pokusao si staviti 2 bajta u 1 bajt. A to nikako ne ide. Maksimalna vrednost bajta mora je 255.
Pravilno dimenzionisi i, i to ce biti ok.
Mada nemoj da se nadas nekoj preciznosti...
Tj pokusao si staviti 2 bajta u 1 bajt. A to nikako ne ide. Maksimalna vrednost bajta mora je 255.
Pravilno dimenzionisi i, i to ce biti ok.
Mada nemoj da se nadas nekoj preciznosti...
Re: TIMER pic16f84
promenljivu "i" treba da staviš veličine WORD
i var word
i var word
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
Hvala ti Pedja bas si korektan sto mi pomazes, meni su interesantni ovi kontroleri tek ucim a malo sam i citao o tmro i interaptima. Ja cu staviti sad i var word pa cu ga testirati. Ali nadam se da ces mi malo pomoci da napravim ovo jos preciznije pomocu onog drugog kristala
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
Moze li mi neko malo pribliznije pojasnit ovaj Traxov kod, odje mi nesto nije jasno sta znaci ova komanda $+2
Delay_1s ;8188 cycles
movlw h'65' ;101
movwf PAUS_TMP1
movlw h'07' ;7
movwf PAUS_TMP2
Delay_1s_0
decfsz PAUS_TMP1, 1
goto $+2
decfsz PAUS_TMP2, 1
goto Delay_1s_0
RETURN ;4 cycles (including call)
Delay_1s ;8188 cycles
movlw h'65' ;101
movwf PAUS_TMP1
movlw h'07' ;7
movwf PAUS_TMP2
Delay_1s_0
decfsz PAUS_TMP1, 1
goto $+2
decfsz PAUS_TMP2, 1
goto Delay_1s_0
RETURN ;4 cycles (including call)
Re: TIMER pic16f84
Labela, na koju skace odatle. pretpostavljam da nesto uvecava za 2...
Nadji je negde u kodu...
Nadji je negde u kodu...
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
Nema je nigdje u kodu to mi je cudno, ali sam nasao na internetu neki sajt pic delay code generator i u njega se unese koji ces delay i koju frekvenciju i on automatski generise kod i u kodu se pojavi ovaj dio goto $+1 ili $+2 a vidim da je to trax iskoristio za svoj sat
Re: TIMER pic16f84
Ne znam stvarno sta je to, a nikoji je sajt...
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
http://www.golovchenko.org/cgi-bin/delay" onclick="window.open(this.href);return false;
Re: TIMER pic16f84
Zanimalo i mene pa proguglo malo...
Kaze sledece
Kaze sledece
Code: Select all
It's explained in the MPASM helpfile, but basically '$' is the current address, so 'goto $-1' means jump back one line. Likewise, 'goto $+1' means jump forward one line - which you might think is pointless, but a 'goto' takes two instruction cycles, so it takes twice as long as a 'NOP'. So it's useful in delay routines, as a 'super NOP'
-
- Pocetnik na forumu
- Posts: 47
- Joined: 04-08-2009, 10:30
Re: TIMER pic16f84
hvala Pedja sad mi je jasno