cześć,
wojciechgorzolka napisał(a):
a czy możecie (tak na chłopski rozum) wyjaśnić mi wyrażenie :
Kod:
!(PINC & KEY_PIN)
To może teraz tak trochę obrazowo.
Jeżeli kolega już załapał, to może komuś kiedyś coś rozjaśni.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
/*w rejestrze DDRC noga PC6 jako wejście, _0__ ____*/
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
/* w rejestrze PORTC noga PC6 do vcc- (delikatnie podciągana do vcc żeby nie pływało napięcie jeżeli nic nie podłączysz)*/
/*PINC - to rejestr wejściowy - przechowuje stan na nóżkach,*/
/*ponieważ wyżej wpisaliśmy podciąganie na PB6, to w rejestrze PINC _1__ ____, */
/*a teraz jeżeli wciśniesz klawisz na PB6, to wymusi w rejestrze PINC _0__ ____ */
/*KEY_PIN w tym przykładzie to PB6 czyli 0100 0000 */
/* PINC & KEY_PIN */
/* ( _0__ ____ & 0100 0000 ) jeżeli wciśnięty to wynikiem jest 0000 0000 -fałsz 0*/
/* ( _1__ ____ & 0100 0000 ) jeżeli nie wciśnięty to wynikiem jest 0100 0000 -prawda 1*/
/*po operacji ! wyniki się negują - czyli w wyrażeniu
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
prawdą (1) jest wciśnięty, a fałszem (0) nie wciśnięty*/
Reasumując: sprawdzamy czy jest nie prawdą że na wejściu PINC jest stan wysoki w miejscu określonym przez KEY_PIN,
pozdrawiam Darek