w7_c.pdf

(91 KB) Pobierz
Programowanie mikrokontrolerów - w j¦zyku C
Programowaniemikrokontrolerów
w j¦zyku C
Marcin Engel Marcin Peczarski
InstytutInformatykiUniwersytetuWarszawskiego
7 listopada 2010
7a/1
712150124.002.png
Elementarz
I Jak zwykle, trzeba wł¡czy¢ pliki nagłówkowe.
I Najpotrzebniejsze definicje s¡ w
#include<avr/io.h>
I Funkcja main jest bezargumentowa i nie ko«czy działania.
I Najprostsza funkcja main :
intmain(void){
for(;;);
}
7a/2
712150124.003.png
Manipulowaniebitamiwrejestrachwej±cia-wyj±cia
I Skonfigurowanie wyprowadzenia PA0 jako wyj±cie:
DDRA|=1<<PA0;
I Ustawienie stanu wysokiego na wyprowadzeniu PA0:
PORTA|=1<<PA0;
I Ustawienie stanu niskiego na wyprowadzeniu PA0:
PORTA&=~(1<<PA0);
7a/3
712150124.004.png
Opó¹nieniaprogramowe
I Aby móc ich u»ywa¢, trzeba zdefiniowa¢ cz¦stotliwo±¢
taktowania:
#defineF_CPU8000000UL/*8MHz*/
I Nast¦pnie nale»y wł¡czy¢ plik nagłówkowy, kolejno±¢ jest
istotna!
#include<util/delay.h>
I Teraz łatwo ju» mo»na uzyska¢ potrzebne opó¹nienie:
_delay_ms(500);
I P¦tle opó¹niaj¡ce s¡ dobrze skalibrowane tylko przy wł¡czonej
optymalizacji!
I Wł¡czenie optymalizacji:
Project ! GCC / WinAVR flags ! Optimization ! Level 2.
7a/4
712150124.005.png
Całypierwszyprogram
#defineF_CPU8000000UL/*8MHz*/
#include<avr/io.h>
#include<util/delay.h>
intmain(void){
DDRA|=1<<PA0;
for(;;){
PORTA|=1<<PA0;
_delay_ms(500);
PORTA&=~(1<<PA0);
_delay_ms(500);
}
}
7a/5
712150124.001.png
Zgłoś jeśli naruszono regulamin