sternick napisał(a):
I tu pojawia się moje niezrozumienie. Dlaczego podciągam do VCC przez linię kodu: PORTC |= (1<<PC0) zamiast PINC |= (1<<PC0) ?
No dobrze to przeniosę ten tekst z bloga tutaj bo nie wiem czy zajrzałeś:
DDRB DDRC DDRD - rejestry kierunku
PORTB PORTC PORTD - rejestry wyjściowe
PINB PINC PIND - rejestry wejściowe
i rysunek bo pewnie też nie widziałeś:

widzisz to ?
firma ATMEL wymyśliła sobie trzy rodzaje rejestrów
DDRx
PINx
PORTx
DDRx - bitami tego rejestru ustawiasz kierunek - zrozumiałe ? do niczego innego on nie służy
PINx - chcąc odczytać JAKI MASZ STAN na WEJŚCIU danego pinu no musisz czytać ten rejestr - bo w zależności od stanu na wejściu dany bit będzie miał albo ZERO albo JEDEN - zrozumiałe ?
no i przechodzimy do
PORTx - chcą wystawić jakiś stan na zewnątrz ZERO albo JEDEN (gdy kierunek pinu jest wyjściem!) wpisujesz jedynki albo zera do tego portu - i pojawiają się one na pinach - zrozumiałe ?
czyli gdy ustawimy jakiś pin procka jak WEJŚCIE to można by powiedzieć, że rejestr PORTx jest nieużyteczny w tym momencie bo co można ustawiać ? na pinie gdy nie jest WYJŚCIEM - prawda ?
ale .... ! ale UWAGA ... z tego powodu firma ATMEL wymyśliła alternatywną funkcjonalność - żeby ten rejestr nie leżał odłogiem gdy pin lub piny są wejściami ...
otóż w tym czasie jeśli zapiszesz JEDYNKĘ na danym bicie to załączasz taki mały rezystorek w środku - który podciąga WEJŚCIE na tym bicie do VCC
TERAZ rozumiesz ? To wynika wprost z noty PDF a nie z moich jakichś tam analiz poetyckich tekstów

....
i dlatego w pewnych (wyżej wymienionych sytuacjach) używamy konkretnych rejestrów - wyjątkiem jest tylko rejestr PORTx, który ma dodatkowe zastosowanie gdy pin jest wejściem
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]