AVR Compiler

Fra Holstebro HTX Wiki
(Omdirigeret fra WinAVR)
Skift til: navigering, 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