AVR Compiler

Fra HTX Arduino
(Omdirigeret fra WinAVR)
Spring til navigation Spring til søgning

For at kunne få en microcontroller til at fungere, så skal man have skrevet noget kode, som skal oversættes til maskinkode, så så skal brændes ned i microcontrolleren.

Denne oversættelse foretages af en compiler.

C-kode

Da C-koden skal fungere i et specielt miljø, hvor det man har defineret er en række specielle registre i microcontrolleren, så skal man skrive alt fra bunden.

Kort fortalt skal man initialisere de dele af hardwaren og softwaren som man har brug for.

Efter dette skal man ind i et loop, der aldrig slutter (før man tager strømmen).

Mens man er i dette loop kan man udnytte at man bruge interrupts i sin kode, hvilket man så er nødt til at tage højde for i koden.

Editor

Til at skrive C-koden med kan bruge en hvilken som helst tekst-editor. I princippet er Notesblok god nok til det, der er bare ikke nogen hjælp i koden til det.

Notapad++ kan genkende C som generelt sprog, og kan dermed hjælpe med syntaksfarvning, hvilket kan lette kodningen.

Visual Studio vil også kunne anvendes til kodningen, og har code-completion, som kan lette kodningen endnu mere.

Andre editorer vil også kunne anvendes.

WinAVR

Selve compileren og kommunikations-miljøet til brænderen skal downloades og installeres. WinAVR er som navnet antyder kun til Windows. Har man et andet styresystem, så skal der findes en lignende compiler.

Ved SourceForce.net[1] kan man downloade compileren som en .exe-fil, der skal installeres. Man skal lige overtale styresystemet til at den er god nok.

Under installationen er det lettest hvis man lader installations-programmet tilrette styresystemets PATH, så man senere kan finde programmerne direkte.

Installationen giver også adgang til at kommunikere med Arduinoen, der er programmeret til at være ISP-programmer.

Selve compileringen

For at oversætte C-koden til maskinkode skal man aktivere compileren via command-line (cmd).

Det er lettest at gøre ved hjælp af et AVR-batch, der angiver hvilken microcontroller det er og hvilke parametre der skal oversættes med samt hvilken fil der skal oversættes.

ATTiny24A kode-eksempel

I denne ZIP-fil ligger der et eksempel på en kode (blink) der løber igennem alle 11 generelle IO-ben og blinker med dem i 100 ms. Koden er placeret i underbiblioteket "blink 24/src"

Selve kompileringen sker ved at aktivere build-batch-jobbet (igen skal man lige overbevise styresystemet om at det ikke er en farlig ting).

ATTiny45 kode-eksempel

I denne ZIP-fil ligger der et eksempel på en kode (blink) der løber igennem alle 5 generelle IO-ben og blinker med dem i 100 ms. Koden er placeret i underbiblioteket "blink 45/src"

Selve kompileringen sker ved at aktivere build-batch-jobbet (igen skal man lige overbevise styresystemet om at det ikke er en farlig ting).

Referencer


Atmel Microcontroller
Atmel udviklingsmiljø AVR Compiler - AVR Makefile - AVR udviklingsboard - AVR-batch - AVR-programmer Shield - WinAVR
Atmel-type Udviklingsboard - ATMega328 - ATTiny2313A - ATTiny24A - ATTiny45 - ATTiny461 - ATTiny48
I2C Moduler Arduino Display - Arduino DS1307 RTC - Arduino IO Expander - Arduino magnetisk kompas - Frekvensmodul - I2C barometer - I2C Display - I2C Lommeregner - I2C strain gauge - I2C tastatur - I2C-RF-modtager - IR Fjernbetjening - Mikrofon som Undervisningsudstyr