MarekSz napisał(a):
Jeśli zatem na potrzeby rejestru DDRx ktoś stworzył stałe o nazwie DDBn, a na potrzeby PORTxn stałe PINxn, to warto trzymać się tejże konwencji. Popatrz, jeśli tworzysz jakiś timer, który ma się uruchamiać co 3 sekundy i definiujesz to w stałej:
#define MOJ_TIMER 3
...to zadziała on tak samo, gdy zamiast stałej "MOJ_TIMER" podstawisz PINA3, bo wartość jest ta sama. Jednakże z punktu widzenia czytelności kodu, nie należy tego czynić. Dlatego właśnie przyznałem rację autorom dokumentacji Atmegi i dla rejestru DDR stosować zacznę stałe DDBn zamiast PINxn. Natomiast stałe PINxn dla PORTx.
Nie obraź się ale teraz to popłynąłeś nieźle - przede wszystkim z tym porównaniem
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
no aż parsknąłem śmiechem - nie obraź się ale to tak jakby tłumaczyć komuś:
Cytuj:
"jak kupisz sobie loda to nie wrzucaj go do wrzątku przed zjedzeniem"
Poza tym nawet autorom twojej dokumentacji atmegi nawet się nie śniły takie wyjaśnienia - a tym bardziej, że nie oni wyznaczają standardy
Po trzecie zaś i ostatnie - to panie, chłopie najkrótsza forma zapisu to:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
PA0, .... PB3, PB5 ... PC1.... PD0 jest najkrótsza i IDEALNIE pasuje do każdego kawałka kodu jak wyżej
Na koniec - weź zajrzyj czasem do plików nagłówkowych AVR GCC - a szczególnie do pliku
portpins.h - masz tam jak
BYK:
I najważniejsze - nie wymyślaj wyjaśnień na podstawie jak napisałeś:
MarekSz napisał(a):
Wzięło się to z dokumentacji Atmega128 strona 69 - Reading pin value. Na końcu jest przykład kodu C. Przyznałem im rację, że z punktu logiki kodu powinienem używać "dedykowany" DDBn. W końcu DDR nie ma pinów
bo nawet nie rozumiesz, że w tych notach najczęściej posługują się implementacją kompilatora IAR AVR nie zaś AVR GCC
--------------------------------------
Krótko mówiąc i podsumowując twoje niestety mega niesłuszne domysły dobra praktyka programowania AVR to korzystanie właśnie ze skrótów typu
Cytuj:
PB3 - Port B3
PA0 - Port A0
co pasuje jak pokazałem wyżej do programowania każdego z rejestrów:
Cytuj:
DDRx
PORTX
PINx
_________________
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 ]