top of page

Początek


Po pierwszym dniu programowania mikrokontrolerów i dużej liczbie osób udało się nielicznym zainstalować i skonfigurować środowisko. Największy problem mieli osoby którzy posiadali komputer z oprogramowaniem Windows 10. W planach jest osobny artykuł o procesie instalacji i konfiguracji, kilka osób zmieniło środowisko z AtmelStudio na Eclipse i odpowiedni ToolChain. Z punktu widzenia programowania nie ma to znaczenia.

Oprócz konfiguracji środowiska zdążyliśmy napisać krótki program i narysować prosty schemat, który miał za zadanie migać diodą LED po naciśnięciu przycisku. Mikrokontroler którzy wszyscy posiadają to ATMEGA32. Na rysunku powyżej przedstawiony jest schemat oraz podane przykładowe wartości rezystancji, które dobierane są indywidualnie do elementów, jedynie rezystor podciągający oznaczony cyfrą 1- zalecam żeby miał wartość około 10K (dużą wartość aby popłynął niska wartość prądu). Dobór rezystora 2 dobierana jest ze względu na diodę LED.

Język programowani który wybraliśmy, jest to język C. Poniżej zamieszczam schemat kodu.

/* * App_LEFTright.c * * Created: 2016-03-14 17:56:10 * Author : KAWA */ #define F_CPU 1000000 #include <avr/io.h> #include <util/delay.h> #define LED (1<<PA0); #define ON PORTA&=~LED; #define OFF PORTA|=(1<<PA0); int main(void) { //Inicjalizacja portów DDRA|=LED;//ustawione jako wyjście PA0, 1-wyjscie, 0-wejscie DDRC|=(0<<PC0);//ustawienie pinu PC0 jako wejście PORTA=0xff;//ustawienie wszystki pinow portu A na stan wysoki, oznacza to że diody nie są zapalone while (1) { if((PINC & (1<<PINC0))==0)//załączenie przycisku { ON; _delay_ms(250); OFF; _delay_ms(250); } else { OFF; } } }

 

Opis działania:

Pierwsze linie programu mówią o deklaracji zegara mikrokontrolera. Zegar który ustaliliśy na wartość 1MHz jest wbudowany w mikrokontroler i niema potrzeby dołączania zewnętrznego oscylatora. Natępnie są dwie linie określające dołączenie bibliotek: pierwsza io.h jest głowna biblioteka mikrokontrolera, natomiast druga służy do użycia przez nas opóźnień.

Kolejne linie to definicja portu oraz pinu ktorym bedziemy sterować oraz polecenia do załączania i wyłączania. Następnie jest funkcja główna programu w której mamy pętlę główną. Na początką deklarujemy Rejestry związane z ustaleniem czy dany pin ma być wejściem lub wyjściem. Kolejnym rejestrem jest rejestr PORTA w którym ustalamy wartości logiczne stanu portu A.

W petli głównej znajduje się obsługa przycisku i po jego naciśnięciu następuje miganie diody, jesli przycisk nie jest wciśnięty to dioda jest zgaszona.


Wyróżnione posty
Ostatnie posty
Archiwum
Wyszukaj wg tagów
Nie ma jeszcze tagów.
Podążaj za nami
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page