Dobrý den , jaký je rozdíl mezi PINA.1 = 1 a mezi PORTA.1 = 1?
administrator: přejmenováno z "avr"
Dobrý den , jaký je rozdíl mezi PINA.1 = 1 a mezi PORTA.1 = 1?
administrator: přejmenováno z "avr"
pin -> čteš
port -> zapisuješ
díky
To bylo trochu zjednodušené
Pomocí DDRA a PORTA volíš konfiguraci portu.
(Pull-up, vysokoimpedačí vstup, totem v log.0 a totem v log.1)
Pomocí PINA čteme.
Ještě jsem se chtěl zeptat co znamená výraz:
#define INIT_TIMER0 TCNT0=0x100L-F_XTAL/64L/500L
hlavně ty Lka nevím co znamenají
díky
Lko na konci číslice nařizuje překladači,
že se k němu má chovat jako k Long (Long int).
Zdarec,
neni uplne presne k tematu ale souvisi to se ctenim z portu.
Po dlouhy dobe jsem se zase dostal k avr a hodinu tu resim, proc mi nefunguje kotrola pinu…
if(~(PINB & (1<<PB4))) nefunguje, vzdy vyhodnoceno jako true
if(!(PINB & (1<<PB4))) funguje
Nemelo by makat oboji?
A preco by to malo rovnako fungovat?
~ zneguje bajt, ak je v bajte aspon jedna nula, potom je podmienka vzdy vyhodnotena ako TRUE
! je negacia podmienky, t.j. ak je PINB&(1<<PB4) nulove, potom je podmienka platna
To jsem vedel, ale teprve ted mi doteklo, ze vysledkem “PINB & (1<<PB4)” je bud 0 nebo 1 na miste PB4 a po negaci jsou bud samy 1 nebo chybi na miste PB4 ale nula to nevyjde…
No nic, priste nemyslet
S tou negaci bych to musel napsat jako (~PINB) & (1<<PB4)
Presne tak. Ale to sa stava casto, ze nieco trivialne je zdrojom poruchy, nad ktrorym nejeden mozog zostane stat i niekolko dni.