Koniecznie pisz komentarze do kodu! Są one pomijane przez kompilator, ale bardzo pomocne dla programisty. Dzięki nim możesz łatwo zorientować się o co chodziło w danym programie, nawet gdy wracasz do niego po długiej przerwie.
Na samym początku umieść komentarz w którym zapiszesz najważniejsze informacje o tym programie, np. kto i dlaczego go napisał. W dalszej części kodu możesz komentować fragmenty kodu, które pomogą Ci zapamiętać o co chodziło.
Komentarze można zapisywać na 2 sposoby:
// komentarz mieszczący się w 1 linijce
/* komentarz
zajmujący więcej niż jedną linijkę*/
Otwórz notę katalogową mikrokontrolera na rozdziale 5 Pin Configurations (warto korzystać ze spisu treści dostępnego w panelu bocznym), a następnie przyjrzyj się zamieszczonemu tam schematowi pinów.
Mikrokontroler posiada 3 różne typy portów do których należą poszczególne nóżki wejścia/wyjścia:
Do portu typu B (na schemacie obok zaznaczone kolorem czerwonym) należą nóżki PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7. Łącznie jest ich 8, dlatego mówimy, że port typu B jest portem 8-bitowym.
Do portu typu C (kolor fioletowy) należą nóżki PC0, PC1, PC2, PC3, PC4, PC5, PC6. Jest to port 7-bitowy.
Do portu typu D (kolor niebieski) należą nóżki PD1, PD2, PD3, PD4, PD5, PD6, PD7. Tu też mamy do czynienia z portem 8-bitowym.
Każdy z tych 3 typów portów możemy modyfikować w obszarze 3 rejestrów:
- DDRx – określa czy dany port to wejście (0) czy wyjście (1); domyślnie wszystkie nóżki wejściami;
- PORTx – określa czy na danym porcie ma się pojawić napięcie (1) czy też nie (0); początkowo na wszystkich nóżkach ustawione jest logiczne 0 i nie ma napięcia;
- PINx – dotyczy odczytywania danych z portu (np. wielkości napięcia).
USTAWIENIE REJESTRU DDRx
Port D posiada 8 nóżek. Początkowo wszystkie są wejściami, czyli w rejestrze DDRD na każdej z nich jest zapiane logiczne 0. W tym momencie rejestr DDRD mogę przedstawić jako 8-cyfrową liczbę bitową złożoną z samych zer, z których każde odpowiada jednej nóżce mikrokontrolera należącej do portu D. Ostatnie zero po prawej stronie dotyczy nóżki PD0, a pierwsze po lewej nóżkę PD7.
DDRD = 0 0 0 0 0 0 0 0
Jeżeli do nóżki PD0 chcę połączć diodę LED musimy w rejestrze DDRD ostatnie logiczne 0 zmienić w logiczną jedynkę. Chcemy uzyskać taki zapis:
DDRD = 0 0 0 0 0 0 0 1
W tym celu w kodzie programu zapisuję taką oto operację bitową:
DDRD |=1<<0;
Zapis „1<<0” oznacza, że w tej 8-bitowej liczbie na końcu, w pozycji odpowiadającej nóżce PD0, pojawi się logiczna 1, którą następnie należy przesunąć o 0 miejsc w lewo. Otrzymaną w ten sposób liczbę dodaję (prosta kreska | oznacza operację sumy bitowej) do obecnych ustawień rejestru DDRD.
Istnieje też możliwość przeprowadzenia operacji bitowej polegającej na przesunięciu logicznej 1 w prawo (1>>0):
DDRD |=1>>0;
USTAWIENIE REJESTRU DDRx
Początkowo na wszystkich nóżkach w obszarze rejestru PORTx zapisane są logiczne 0, co oznacza że nie ma na nich napięcia. Zgodnie ze wcześniejszym założeniem, do nóżki PD0 połączyłam rezystor, następnie diodę, której krótszą nóżkę wpięłam do masy. Jeśli dioda ma się zapalić na nóżce 2 mikrokontrolera musi pojawić się napięcie, czyli muszę zapisać na niej logiczną 1 w obszarze rejestru PORTD. Zapisałam to za pomocą następującej operacji bitowej:
PORTD |=_BV(PD0);
Zapis _BV() oznacza, że na nóżce wskazanej w nawiasie ma pojawić się logiczne 1.
Nóżkę tą mogę opisać symbolem (np. PD0) lub numerem bitu w danym rejestrze (np. dla PD0 będzie to bit 0, dla PD1 bit 1, itd.).
michaś
Ciekawe rzeczy wydają jak wie co robić , ale dla mnie elektronika troszke za trudna bo dużo teorii i fizyki.
Pozdro.