środa, 27 stycznia 2016

AVR cz3 - migające diody.

Przyszedł czas na zbudowanie pierwszego trywialnego układu i napisanie programu. Układ jest banalnie prosty i jego głównym działaniem jest miganie diodami. Wiem, że to troszkę głupie ale od czegoś trzeba zacząć. Zaopatrzony w programator USBASP oraz środowisko programistyczne Eclipse Mars.1 z Atmel Toolchains mogłem bez problemu oprogramować AVR. Przydatnym jest też program mkvAVR Calculator. 




Przy podłączaniu LED i kondensatora elektrolitycznego C1 należy zwrócić  na polaryzację tych elementów - zwykle dłuże wyprowadzenia są anodą (+) a krótsze  katodą (-).



Program wgrany do mikrokontrolera:

#include <avr/io.h>
#include <util/delay.h>
//definicja LED1 (do którego pinu podłączony LED1)
#define LED1 PB0
//definicja LED2 (do którego pinu podłączony LED2)
#define LED2 PB1
void main(void)
{
//########### I/O ###########
DDRB|= (1<<LED1) | (1<<LED2); //Ustawienie pinów sterujących diodami
                              //jako wyjścia
PORTB |= (1<<LED1); //stan pinu LED1 wysoki +5V - dioda LED1 nie świeci się
PORTB |= (1<<LED2);  //stan pinu LED2 wysoki +5V - dioda LED2 świeci się
while (1) //Pętla główna
   {

   PORTB ^=(1<<LED1); //suma modulo 2 (XOR) stanu poprzedniego na porcie
                             //pinu LED1 (zmiana stanu na przeciwny)

   PORTB ^=(1<<LED2); //suma modulo 2 (XOR) stanu poprzedniego na porcie
                             //pinu LED2 (zmiana stanu na przeciwny)

   _delay_ms(500); //opóźnienie 1000ms czyli 1s
    }
} 


Brak komentarzy:

Prześlij komentarz