(5) Mikrokontrolery MSP430: porty I/O, obsługa wyjść

Sterowanie linią I/O w trybie wyjściowym

W programie będziemy sterować wyjściami mikrokontrolera. Żeby zaobserwować zmiany stanów logicznych na liniach będziemy sterować wyjściami do których dołączono diody LED. Schemat elektryczny podłączenia diod LED do linii mikrokontrolera pokazano na rysunku 2. Diody włączamy ustawiając stan wysoki na linii wyjścia mikrokontrolera. Ustawiając stan niski na wyjściu wyłączamy diody.

 

 Rys. 2. Schemat podłączenia diod LED do wyprowadzeń mikrokontrolera

Rys. 2. Schemat podłączenia diod LED do wyprowadzeń mikrokontrolera

 

Kod źródłowy programu realizującego sterowanie diodami pokazano na listingu 1.

 

List. 1. Przykładowy program

W pierwszych liniach programu dołączane są pliki nagłówkowe. Następnie definiowana jest stała TAKTY_ZEGARA_1_SEK . Wartość stałej została obliczona na podstawie poniższego i określa liczbę taktów zegara MCLK których czas wykonania trwa sekundę (w MSP430 zegar MCLK taktuje pracę jednostki CPU mikrokontrolera):

 

xTakty = tCzekaj * fMCLK

gdzie:

xTakty            – takty sygnału zegarowego MCLK (argument funkcji __delay_cycles)

tCzekaj           – czas trwania opóźnienia [s]

fMCLK             – częstotliwości sygnału zegarowego MCLK [Hz]

 

Obliczona wartość w dalszej części programu zostanie użyta jako argument funkcji __delay_cycles i posłuży do generowania programowego opóźnienia o czasie trwania 1 i 3 sekund. W programie głównym zatrzymywana jest pracy układu watchdog:

Następnie konfigurowane są linie wejścia/wyjścia mikrokontrolera. Wszystkie linie ustawiane są jako wyjścia w stanie niskim. Najpierw ustawiany jest stan niski na liniach, następnie zmieniany jest kierunek linii z wejścia na wyjście:

W MSP430 żeby zmniejszyć pobór prądu mikrokontrolera należy linie wejścia/wyjścia, do których nie są podłączone urządzenia peryferyjne ustawić w tryb pracy wejścia/wyjścia (nie funkcyjny), a kierunek linii ustawić jako wyjście. Konfiguracja używanych linii uzależniona jest od działania urządzenia peryferyjnego.

Na płytce startowej „LaunchPad”:

  • linie P4.0, P4.1 podłączone są do przycisków S1, S2
  • linia P2.7 steruje zasilaniem: akcelerometru ADXL, termistora NTC, fotorezystora LDR (nie jest montowany na płytce układu)
  • linie P3.0–P3.2 obsługują kanały pomiarowe X,Y,Z akcelerometru ADXL
  • linia P1.4 dołączona jest do wyjścia analogowego termistora NTC, a linia P3.3 do wyjścia analogowego fotorezystora LDR (nie jest montowany na płytce układu)
  • linie PJ.0-PJ.3 dołączone są do diod LED1-LED4
  • linie P3.4–P3.7 dołączone są do diod LED5–LED8

Linie te należy ustawić jako wyjścia w stanie niskim !

Wówczas peryferia podłączone do linii nie będą „pobierały” prądu.

Do pobrania

O autorze