Toggle switch u mikroc

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
Drax
Posts: 4
Joined: 04-02-2010, 00:09

Toggle switch u mikroc

Post by Drax »

Pokusavao sam da napravim jednostavnu komandu preko mikroc da mi taster bude start/stop bit .SA start bitom sam hteo da mi se ukljucuje le dioda i da blinka na svavih 1s a na stop da bude iskjucena.Molim iskusne za pocetnicki problem.Koristio sam primer iz mikroc softvera ,uspeo sam da uradim invertovanje ceolog PORTA uz primer sa softvera ali ne i da resim problem mog zahteva,gore pomenutog.Pozdrav i hvala unapred za pomoc.
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Toggle switch u mikroc

Post by niho »

jos kad bi imali shemu pa da znamo tacno sta zelis, na kom pinu su tasteri ili (taster) na kom su izlazi i koji je to PIC uopste, mozda bi se i moglo pomoci :)
buco-1
Napredujem
Napredujem
Posts: 105
Joined: 24-10-2010, 21:22

Re: Toggle switch u mikroc

Post by buco-1 »

Drax wrote:uspeo sam da uradim invertovanje ceolog PORTA uz primer sa softvera
Izvini, al jedna stvar me zanima: Jel ti išta znaš o digitalnoj elektronici i logičkim operacijama?
Iz citiranog dijela teksta ispada da je čudo programiranja invertirati jedan jedini registar. :shock:
Port ti je predstavljen kao jedan običan 8 bitni registar.

Prebacivanje stanja pojedinog pina u registru, koji predstavlja željeni port , možeš radit bit maskom s eor (exor) operacijama, and i (ili) or. :wink:

Pozdrav

P.S. Ovdje je nebrojeno puta savjetovano ljudima da se prije upuštanja u bilo kakvo petljane s mikroračunalima (o njima se uglavnom ovdje piše) upoznaju s dokumentacijom, ali osnovama digitalne elektronike. Onda do takvih pitanja jednostavno nebi dolazilo.
Today's scientists have substituted mathematics for experiments, and they wander off through equation after equation, and eventually build a structure which has no relation to reality.
- Nikola Tesla
Drax
Posts: 4
Joined: 04-02-2010, 00:09

Re: Toggle switch u mikroc

Post by Drax »

bit oldstate;
bit vrednost;
void main() {

TRISA=0X00; //svi pinovi PORTA su izlazni
TRISB= 1; // samo pin RB.0 je ulazni
do {

if (Button(&PORTB,0,1,1))//ako je dugme na portu B na logickoj jedninici oldstate dobija vrednost 1
{
oldstate=1;

}
if (oldstate && Button(&PORTB,0,1,0)) // && poredi dali je oldstate razlicit od nule u odnosu na Button,ako jeste stanje je 1 idi dalje ako nije "cekaj" na sl.promenu
{
oldstate=0;//ako je ispunjen uslov poredjenja olstate ima vrednost 0
vrednost=~vrednost; // na svaku vrednost nule invertuj" vrednost "
}
if(vrednost==1)//ovde sam gresio dodeljivao sam vrednost umesto da poredim dali je 1 i program nije hteo da radi
{
PORTB=0X04;
delay_ms(5);
PORTB=0X00;
delay_ms(5);
}
if(vrednost==0)
{
PORTB=0X00;
}

}while(1);
}
Zamolio bi kolege da ne govore unapred da bi trebao citati logicke operacije ,prosao sam ih davnih dana.Jedno je znati ih teoretski a drugo primeniti ih u programu,nemam uvid u registar pa da vidim kada je koji rezultat i gde postavio.Zamolio bi nekog ako ima jos jednostavnije resenje sa manje linije koda da mi pokaze.Unapred hvala i pozz svima koji se trude da pomognu.Takodje molim za ispravku u komentarima,ako negde gresim.
Post Reply