pic12f629 problem led paljenja odvojeno

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

pic12f629 problem led paljenja odvojeno

Post by gagi011bg »

Pozdrav svima,
Interesuje me da li postoji mogućnost da sa pikom 12f629 u Picbasic pro, palim 4 led diode,tj. da jedna led dioda stalno se pali u gasi napr. sa pauzom od 1 sekunde,a da ostale tri led diode se pale jedna za drugom u nekim vremenskim razmacima npr.po 2 sekunde,nezavisno od prve led diode,ona stalno da blinka.
nesto npr.ovako:

Code: Select all

CMCON= 7
symbol led_1=gpio.5
symbol led_2=gpio.0
symbol led_3=gpio.1
symbol led_4=gpio.2

start:
high led_2 
pause 2000
low led_2
pause 2000

high led_3 
pause 2000
low led_3
pause 2000

high led_4 
pause 2000
low led_4
pause 2000

goto start
E sad neznam da li postoji mogućnost da se LED_1,STALNO PALI I GASI,NEZAVISNO OD LED_2,LED_3,LED_4.
NEZNAM KAKO DA PODESIM LED_1 da stalno blinka,dok se ove druge led pale i gase u drugim vremenskim intervalima,da li to uopste može da se izvede.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7882
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: pic12f629 problem led paljenja odvojeno

Post by pedja089 »

Moguce je. Najelegantnije resenje bi bilo sa interaptom. Al to je poduza prica.
Mnogo jednostavnije resenje je ovako nesto

Code: Select all

Sekunde var byte
Sekunde=0
Pocetak:
Sekunde=Sekunde+1
Toggle led1
If sekunde =2 then led2=1
if sekunde=3 then led3=1
if.....
.....
if sekunde =x then led2=0
if sekunde=y then led3=0
if sekunde=xyz then sekunde=0' xyz je vreme kad si odradio sekvencu pa sve treba da krene ispocetka
pause 1000
goto pocetak 
Ili druga varijanta

Code: Select all

Sekunde var byte
Sekunde=0
Pocetak:
Sekunde=Sekunde+1
Toggle led1
If sekunde//2=0 then toggle led2 'led ce menjati stanje svake 2 sekunde
If sekunde//3=0 then toggle led3 'led ce menjati stanje svake 3 sekunde

if sekunde=xyz then sekunde=0' xyz je vreme kad si odradio sekvencu pa sve treba da krene ispocetka
pause 1000
goto pocetak 
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

Re: pic12f629 problem led paljenja odvojeno

Post by gagi011bg »

Hvala pedja na brzom odgovoru,u principu ovo sto si mi ti napisao radi,i ok je,ali meni treba ovako nesto,http://www.screenr.com/d437.
Ja samo napravio animaciju kako bi to trebalo da izgleda,
znači da jedna led dioda blinka non-stop,
nezavisno šta rade ove tri ostale led diode,i kojom se brzinom pale i gase,meni treba da ta jedan koja blinka,da na pocetku programa udje u mod blinkanja i da stalno radi tako,da bude kao neki indikator da uredjaj radi,e sad ne znam da li je to izvodljivo sa jednim pikom npr.12f629.
Neznam da li si ti ovo sto si mi predložio to,to,ili ja neznam da sklop to kako treba :)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7882
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: pic12f629 problem led paljenja odvojeno

Post by pedja089 »

Moguce je resiti to na ovaj nacin. Samo stavi da je promenljiva word i smanji pauzu. I onda samo definises kad se sta desava...
Mrsko mi sad zagledati tacno kako ide ona kombinacija i vremena. Ali ne vidim gde si zapeo.
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

Re: pic12f629 problem led paljenja odvojeno

Post by gagi011bg »

Pokušao sam Pedja,ali zapelo, je jer mi se ovo desava kada sam probao po prvom primeru,i o desava mi se ovo:http://www.screenr.com/et37,samo blinka led4,na gipo.4,to je ok,ali ostalo neradi

Code: Select all

symbol led1=gpio.0
symbol led2=gpio.1
symbol led3=gpio.2
symbol led4=gpio.4

Sekunde var word
Sekunde=0

Pocetak:
Sekunde=Sekunde+1
Toggle led4
If sekunde=2 then led2=1
if sekunde=3 then led3=1

if sekunde=2 then led2=0
if sekunde=2 then led3=0
if sekunde=0 then sekunde=0
pause 500
goto pocetak 
sad dal sam ja to dobro napisao :? ,i neznam kako da podesim vreme paljenja izmedju dioda,šta konkretno znači ovaj deo koda:

Code: Select all

If sekunde=2 then led2=1
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7882
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: pic12f629 problem led paljenja odvojeno

Post by pedja089 »

Nisi dobro napisao. Probaj ovako

Code: Select all

Pocetak:
Sekunde=Sekunde+1
Toggle led4
If sekunde=2 then led2=1
if sekunde=3 then led3=1

if sekunde=5 then led2=0
if sekunde=6then led3=0
if sekunde=10 then sekunde=0
pause 500
goto pocetak 
Ostalo malo porazmisli.
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3510
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: pic12f629 problem led paljenja odvojeno

Post by trax »

PIC12F629 i 675 imaju jedan problem, ako to mozemo nazvati problemom.

Kod njih ne mozes raditi ovo:

Code: Select all

led_1 = 1
led_2 = 1
Jer ukoliko kompajler to prevede u ove instrukcije:

Code: Select all

bsf GPIO, 0
bsf GPIO, 1
upalice se samo prva dioda a ova druga instrukcija nece biti uspjesna. Da bi upalio i jednu i drugu zajedno, treba raditi ovo:

Code: Select all

GPIOX VAR byte
GPIOX = 0

symbol led_1 = GPIOX.0
symbol led_2 = GPIOX.1

led_1 = 1
led_2 = 1
GPIO = GPIOX
Ne sjecam se da li je ista situacija kada se recimo pali prva dioda a odma nakon nje gasi druga. Nisam siguran da li ce se da druga ugasiti (iskljuciti).

Isto tako ne znam ima li veze ako je izmedju instrukcija pauza, mozda nakon duze pauze uspiju se upaliti dva bita zaredom.
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

Re: pic12f629 problem led paljenja odvojeno

Post by gagi011bg »

Hvala Trax i Pedja,na trudu,upravo tako kada mu napišem naredbu:

Code: Select all

led_1 = 1
led_2 = 1
neće da pali diode.
U principu ja sam mislio da je možda to jednostavnije,tj. da nije toliko komplikovano,meni je trebala ta jedna Led dioda da stalno blinka,kao kontrolna,a ostale diode da se pale i gase po nekom redosledu,ali vidim da nije baš tako jednostavno :roll: .

Na kraju,krajeva,stavicu tu jednu Led koja je trebala stalno da blinka,da stano sija,a ove ostale neka se pale po nekom redosledu.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7882
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: pic12f629 problem led paljenja odvojeno

Post by pedja089 »

Trax to je RMW sranje koje ima na picevima. U principu sve radi dobro osim ako pin nije kapacitivno opterecen. Led sa otpornikom 220R prolazi bez problema.
To nije samo kod tog pica, nego kod svih piceva nizih od 18F. I kod 18F se isto to dogadja pa su zato ubacili LAT registre.
Post Reply