LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

Przykładowe projekty na FREEboard w środowisku mbed

Żeby użyć programu J-Flash Lite najpierw ustawiamy (jak na rysunku 2):

  • Device = MKL25Z128xxx4 // nasz mikrokontroler
  • Interface = SWD // właśnie przez Serial Wire Debuger będziemy programować nasz MCU
  • Speed = 1000 // szybkość programowania możemy zmienić ale i tak jest szybko

 

Rys. 3. Okno programu J-Link Lite służące do wyboru pliku zapisywanego w pamięci Flash mikrokontrolera

 

Ustawienia zatwierdzamy klikając OK. W następnym oknie (rysunek 3) interesuje nas pole Data File, w którym wskazujemy nasz plik wynikowy. Możemy – na wszelki wypadek – wykonać kasowanie pamięci mikrokontrolera przyciskiem Erase Chip oraz – gdy jeśli plik BIN – wgrać program do pamięci mikrokontrolera, klikając Program Device i po chwilce zobaczymy okienko pokazane na rysunku 4.

 

Rys. 4. Bargrafy sygnalizujące przebieg programowania pamięci

 

Poprawne zakończenie programowania jest potwierdzane komunikatem Programming Done (rysunek 5).

 

Rys. 5. „Programming done” w oknie logów sygnalizuje, że wszystko przebiegło OK

 

Po zakończeniu programowania należy wyzerować mikrokontroler, co można zrobić w następujące sposoby:

  1. Odłączyć zasilający przewód USB i podłączyć do ponownie.
  2. Użytkownicy J-Linka mogą użyć programu J-Link Commander (z linią poleceń, bez okienek) wpisując w konsoli programu kolejno komendy:

r – RESET, następnie:

g – GO.

  1. Dorobić sobie przycisk zerujący (o czym piszemy w artykule).
  2. Zewrzeć linię RESET do masy zasilania.

Gdy wybraliśmy opcję numer 4 mamy łatwe zadanie – linia zerująca jest wyprowadzona na złącze JP5 i jest dostępna na pinie 6, oznaczona na ściądze z opisem jako nRES (rysunek 6).

 

Rys. 6. Lokalizacja wyprowadzenia zerującego mikrokontroler – nRES

 

Przykład 2: KeyboardMonitor

Drugi przykładowy program także steruje pokładową LED: czerwona dioda zaświeci się po naciśnięciu przycisku dołączonego do wybranej linii wejściowej – listing poniżej.


1. #include "mbed.h"
2.  
3. DigitalOut myled(LED_RED);
4. DigitalIn button(D2);
5. int main() {
6.   button.mode(PullUp);
7.   while(1) {
8.     myled = button;
9.   }
10. }


 

W wierszu 4 programu widzimy iż pin D2 nazwany dla „niepoznaki” button ustawiamy jako wejście, gdyż za pomocą tej właśnie linii będziemy odczytywać stan na styku dołączonego przycisku (rysunek 9). Żeby uniknąć zakłóceń na linii wejściowej mikrokontrolera, w wierszu 6 programu włączamy wewnętrzne rezystory podciągające pull-up (wymuszające wysoki stan logiczny na wejściu niepodłączonym) co spowoduje, że po naciśnięciu przycisku włączonego pomiędzy linię D2 i masę zasilania odczytywany stan zmieni się z „1” na „0”, a po rozłączeniu styków rezystor podciągający wymusi przywrócenie stanu „1”.

 

Rys. 7. Sposób dołączenia mikroswitcha do mikrokontrolera – niezbędny w przykładzie KeyboardMonitor

 

Przykład 3: PWM VoltageMonitor

Trzeci program zilustruje odczyt wartości analogowych za pomocą mikrokontrolera, w przykładzie posłużymy się wbudowanym w mikrokontroler przetwornikiem ADC i zewnętrznym potencjometrem. Schemat połączeń pokazano na rysunku 8.

 

Rys. 8. Sposób dołączenia potencjometru do zestawu FREEboard

 

Program realizuje zadanie polegające na odczycie napięcia (z suwaka potencjometru) na wejściu A0, które jest wejściem analogowym ADC i generacji sygnału PWM sterującego jasnością świecenia czerwonej LED.

#include "mbed.h"
AnalogIn potencjometr(A0);
PwmOut led(LED1);
 
int main() {
  led.period(0.001);
  while(1) {
    led=(float)(potencjometr);
    wait(0.01  
 }
}

I to by było na tyle! Miłej zabawy!