TIMER pic16f84

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

TIMER pic16f84

Post by momcilof117 »

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
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: TIMER pic16f84

Post by WhiteHead »

Sa pic16f84......?
evo od mene šema, a neko drugi će program....
Attachments
sema.jpg
sema.jpg (13.74 KiB) Viewed 4974 times
Ako kaniš pobijediti, ne smiješ izgubiti
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

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
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: TIMER pic16f84

Post by WhiteHead »

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
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
Elektronicar
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 467
Joined: 19-01-2008, 17:05
Location: Balkan

Re: TIMER pic16f84

Post by Elektronicar »

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

Code: Select all

http://www.microcontrollerboard.com/pic-timer0-tutorial.html
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;
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: TIMER pic16f84

Post by pedja089 »

Stavi kristal od 32,768KHz. Podesi preskaler i tmr0 tako da dobijes interapt svake sekunde. A za dalje je onda lako.
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: TIMER pic16f84

Post by WhiteHead »

Elektronicar wrote:Nepoznajem PBP ali kako mi se cini ovaj kod nece raditi
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.
Ako kaniš pobijediti, ne smiješ izgubiti
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

IZvini pedja da li mi mozes to malo pribliznije pojasniti
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: TIMER pic16f84

Post by pedja089 »

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...
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

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
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: TIMER pic16f84

Post by pedja089 »

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...
bora_73
Penjem se :)
Penjem se :)
Posts: 92
Joined: 28-11-2008, 02:18

Re: TIMER pic16f84

Post by bora_73 »

promenljivu "i" treba da staviš veličine WORD

i var word
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

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
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

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)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: TIMER pic16f84

Post by pedja089 »

Labela, na koju skace odatle. pretpostavljam da nesto uvecava za 2...
Nadji je negde u kodu...
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

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
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: TIMER pic16f84

Post by pedja089 »

Ne znam stvarno sta je to, a nikoji je sajt...
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

http://www.golovchenko.org/cgi-bin/delay" onclick="window.open(this.href);return false;
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: TIMER pic16f84

Post by pedja089 »

Zanimalo i mene pa proguglo malo...
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'
momcilof117
Pocetnik na forumu
Pocetnik na forumu
Posts: 47
Joined: 04-08-2009, 10:30

Re: TIMER pic16f84

Post by momcilof117 »

hvala Pedja sad mi je jasno
Post Reply