Stránka 2 z 2
Napsal: 12 pro 2010, 13:48
od pokrivnik
Andrea píše:Kdybys napsal, že reaguje jen dioda odpovídající ta, tak to bych věděla proč.
Jj maš pravdu, reaguje iba ta, som sa sekol, už som to menil toľko krát...
V čom je chyba?
Napsal: 12 pro 2010, 13:54
od Andrea
(1<<PB1) je 2, výsledkem (PINB & (1<<PB1)) je tudíž buď 0 nebo 2, nikdy ne 1.
Napsal: 12 pro 2010, 14:04
od pokrivnik
Andrea píše:(1<<PB1) je 2, výsledkem (PINB & (1<<PB1)) je tudíž buď 0 nebo 2, nikdy ne 1.
Tak tomu teraz nechápem, môžeš vysvetliť? Ďakujem
![Smile :)](./images/smilies/icon_smile.gif)
Napsal: 12 pro 2010, 14:23
od Andrea
A co nechápeš? << je rotace vlevo, & je bitový AND, (1<<PB1) je rotace 1 o PB1 bitů doleva, PB1 je 1, takže výsledek je 2, a když uděláš bitový AND 2ky s čímkoliv, tak výsledek je 0 nebo 2.
Napsal: 12 pro 2010, 14:56
od pokrivnik
Andrea píše:A co nechápeš? << je rotace vlevo, & je bitový AND, (1<<PB1) je rotace 1 o PB1 bitů doleva, PB1 je 1, takže výsledek je 2, a když uděláš bitový AND 2ky s čímkoliv, tak výsledek je 0 nebo 2.
Ahaa, tak ja som to pochopil tak že v tomto prípade
#define tl (PINB & (1<<PB1))
#define ta (PINB & (1<<PB0))
bude tl definovať tlačítko pripojené k portu PB1 a ta bude definovať tlačítko pripojené k portu PB0, a keď hocikde v programe napíšem tl alebo ta bude to predstavovať daný pin
Napsal: 12 pro 2010, 15:04
od Andrea
To by to muselo být napsané nějak takhle:
#define tl ((PINB >> PB1) & 0x01)
#define ta ((PINB >> PB0) & 0x01)
Napsal: 12 pro 2010, 15:15
od pokrivnik
Vďaka, vidím že to musím poriadne naštudovať
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Napsal: 12 pro 2010, 15:22
od Andrea
To jo, u jednočipů jsou ty bitové operace docela důležité a hojně používané.
Napsal: 13 pro 2010, 18:18
od Atlan
kebz netestoval tak hlupo odmienku TL==1 tak bz na to neprsiel.. kebz len testoval if (tl) tak bz mu to islo ..na druhej strane sa nieco naucil
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Napsal: 13 pro 2010, 20:10
od Andrea
bzbzbz
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Napsal: 14 pro 2010, 08:43
od Atlan
lepsie ako i/y
![Very Happy :D](./images/smilies/icon_biggrin.gif)
hlupo nastavena klavesnica.... vratme sa k teme jo
Napsal: 15 pro 2010, 17:27
od WLAB
Jabych tedy radeji pouzival necu ve smyslu:
#define TL (PINB & 0x04) /*0x04 maska tlacitka TL*/
a vyhodnocoval bych to jako
if (TL) .....
je to rychlejsi, a myslim, ze i prehlednejsi. Rozumny kompliator na to stejne pouzije na AVRku instrukce bitovych operaci, ikdyz ten C zapis operuje s celym slovem.