niedziela, 25 września 2016

[1] Atmega328P - Programowanie mikrokontrolera przez Arduino IDE.

Ten post chciałbym przedstawić w jaki sposób zaprogramować mikrokontroler Atmega328 znajdujący się na płytce Arduino Uno z wykorzystaniem programu Arduino IDE.

Opis


Jest to bardzo łatwy sposób. Polega ona na podłączeniu płytki Arduino do komputera. Następnie program należy napisać w środowisku Arduino IDE. Po czym ten program zostaje wgrany na płytkę poprzez programator umieszczony bezpośrednio na Uno. Takie rozwiązanie znacznie przyśpiesza proces programowania, zwłaszcza gdy ktoś posiada tani programator układów AVR. Dodatkowo jest już gotowa płytka z wyprowadzonymi sygnałami.

Co do zalet to programowanie w ten sposób przyśpiesza pracę całego układu. Uzyskuje się możliwość wprowadzania danych oraz sprawdzania większej liczby pinów na raz. W arduino można to robić tylko pojedynczo. Dodatkowo następuje znaczna redukcja miejsca jakie jest zajęte przez program.

Program


Poniżej przedstawiam na początek prosty program wraz z niezbędnym komentarzem.

  1. //Deklaracja niezbednych bibliotek
  2. #include <avr/io.h>
  3. #include <util/delay.h>
  4. //Deklaracja czasu dla funkcji opozniajacej
  5. #define BLINK_DELAY_MS 2000
  6. int main (void)
  7. {
  8.     //Ustawienie pin 5 GPIOB jak wyjście,
  9.     DDRB |= _BV(DDB5);
  10.     //Lub tak
  11.     //DDRB |= (1<<DDB5);
  12.     while(1) {
  13.         //Pin 5 na HIGH
  14.         PORTB |= _BV(PORTB5);
  15.         //lub tak
  16.         //PORTB |= (1<<PORTB5);
  17.         //Delay
  18.         _delay_ms(BLINK_DELAY_MS);
  19.         //Pin 5 na LOW
  20.         PORTB &= ~_BV(PORTB5);
  21.         //Lub tak
  22.         //PORTB &= ~(1<<PORTB5);
  23.         _delay_ms(BLINK_DELAY_MS);
  24.     }
  25. }

Tak przygotowany program jak już wspomniałem wcześniej wystarczy już tylko skompilować i wgrać.
Spowoduje on mruganie diodą co 2000 ms, czyli raz na 2 sekundy.