Atmel start 3: Binky en-PORT, PIN, DDR och LED (9 / 12 steg)

Steg 9: Blinky en-innebörden av uttalandena som kodning

Referenser ger några mycket bra böcker och artiklar för att lära sig C och C++ för Atmel MCU [5-8, 11]. Artiklarna nedan följer i huvudsak i en Binky programmet.

  1. #include: compiler direktiv till att omfatta en header-fil till koden med specificerade funktioner och metoder. De flesta av header-filer kan ses genom att placera muspekaren över namnet och högerklicka och välja "gå till genomförande".

  2. AVR/IO.h: består av andra header-filer (dvs .h sträckningarna) för den specifika MCU [17]. Header-filer inkludera sökord som DDRB, PORTB, PB0, TIMSK och TCNT0. Io.h kan tydligen inte visas med "go till genomförande" beskrivs i punkt 1 ovan.

  3. util/Delay.h: metoder för att fördröja programkörningen. Inkluderar en till dröjsmål millisekunder och en annan för mikrosekunder.

  4. #define x y: A compiler direktivet att ersätta texten y när texten x är möte i programmet. Kompilatorn definitionerna används ofta så att programmet kan lätt ändras utan att söka igenom hela koden för alla platser att ändra en parameter när det behövs.

  5. #define F_CPU 8000000UL: kompilatorn kommer att ersätta 8000000UL för texten "F_CPU" när uppstod i koden. Obs: filen delay.h sidhuvud kräver F_CPU definieras innan du importerar delay.h eftersom den delay.h filen använder F_CPU. 8000000UL hänvisar till klockhastighet. I vårt fall använder vi 8MHz valts av säkringarna. F_CPU av 16000000 skulle dock vara korrekt för en 16MHz kristall till exempel. UL i slutet hänvisar till "osignerade långa" heltal.

  6. int main(void): main är en funktion som alla C och C++ program måste införliva. Programkörningen börjar vid funktionen "viktigaste". Nyckelordet 'int' anger att "viktigaste" kan återvända ett heltal (16bits). Funktioner har argument i parentes (). I det här fallet anger 'void' funktionen inte använder en parameter. Om vi hade nyckelordet void före namnet på funktionen som till exempel i "Ogiltig main(void)" då skulle funktionen returnerar inte ett värde - det skulle vara en subrutin.

  7. Klammerparenteser {}: Spänna av koden definierar funktionen "main" omges av {}. I själva verket de flesta C och C ++ kodning strukturer (till exempel "Stäng" och "if") använda hängslen {} för att ange deras räckvidd. Se till att inkludera dem!

  8. Semikolon: Kodning uttalanden avslutas med den ';'. Uttalandet kan springa över flera textrader som behövs.

  9. _delay_ms(x): en metod (dvs funktion) definieras i delay.h som fördröjer programkörningen av x millisekunder. I vårt fall, x = 1000 och så förseningen är 1000mS som är 1 sekund. Märka tha parenteser surround parametern x.

  10. DDRB = 0b00000001: Data riktning registrera för Port B. B0 blir en utgång och resten kommer att ingångar. För ATTiny 2313A är B0 Pin12.

  11. PORTB = 0b1: uppsättningar B0 1 som översätts till Vcc på fysiskt pin (12) motsvarar B0. En enklare och Rekommenderad sättet att skriva detta uttalande är PORTB = 1; eller PORTB = 0x01;

  12. PORTB = 0X00; Ställer in B0 0 som översätts till 0v på det fysiska pin (12) som motsvarar B0. Detta skulle också kunna skrivas som PORTB = 0;

  13. While(x): The MCU kommer kör satser mellan de efterföljande två motsvarande hängslen {} så länge som meddelandet x är sant. X kan ifrågasätta huruvida två variabler en och b är lika som en == b (Observera de dubbla jämlikar). I vårt fall vill vi LED kontinuerligt blinka så uttalanden mellan klammerparenteserna måste kontinuerligt utföra. Vi kunde skriva "while(true == true)" där "==" är C/C++ operatören kontrollera logiska jämställdhet (ett enda '=' sätt att tilldela något till en variabel som i z = 3). Uttrycket "while(true==true)" skulle orsaka den oändlig loopen att vi vill sedan 'true' är alltid sant. I vårt fall tas 1 till vara en 'sann'. Så kommer att "while(1)" orsaka den oändlig loopen eftersom det är en genväg för att skriva "while(true)" som är en genväg för att skriva "while(true=true)".

Se Steg
Relaterade Ämnen

Atmel start 1: Atmel Studio och programmerare

M. A. Parker c2015Installera Atmel Studio (AS) och en programmerare förkroppsligar de första stegen [0] på väg mot med hjälp av en Atmel AVR Microcontroller individenhet MCU [1] i motsats till MCU-på-en-styrelsen som Arduino [2]. Här startar resan, o...

Atmel start 2: Microcontroller kretsar och säkringar

M. A. Parker c2015Kretsar och säkringar konstruerar en enkel men viktig krets på en experimenter's skärbräda som ska användas som grundläggande plattform för många microcontroller projekt och för att ange parametrarna mikrokontroller (dvs säkringar)....

Atmel start 4: Blinky två-växlar, Pull-Up motstånd och Bit Ops

Figur 1: Exempel växlar som kan använda MCU pull-up resisters, främre: Foto-motstånd, Foto-transistor, knapp; Bakre: exempel knappsatser.M. A. Parker c2015Blinky två visar hur MCU kan lätt läsa delstaten externa switchar, vilket inkluderar tryckknapp...

Atmel start 5: Livlina

M. A. Parker c2015Livlinan är en enkel krets baserad på Atmel ATTiny2313A mikrokontroller enheten (MCU) som fungerar som ett substitut klocka källa för ett mål MCU återges ur funktion av felaktigt ställa in klockan säkringar. Projektet, tänkt att var...

Sonifying kapacitiv Data över Serial Port med Teensy och SuperCollider (OSX och Linux)

Om det inte går att del med $600 dollar behövs för att köpa MaxMSP (och din gratis 30 dagar har löpt ut) det finns inte många gratis alternativ som kan konkurrera med samma nivå av ljudkvaliteten som MaxMSP. Lyckligtvis är detta ett område där SuperC...

Shift: Standard Pin, Bullpup och slangbella.

Hej killar! Detta Akshat21045 med JonnyBGood, i en pistol samarbete!Detta är en mycket speciell typ av instructable. I detta, skall vi göra tre olika typer av vapen, från nästan samma kropp! Jag hoppas att du njuta av vårt samarbete!Här är en snabb ö...

Skalbagge Kill Pine huvudgavel (och ram)

Jag gjorde denna huvudgavel att belysa skalbagge döda furu utan ser ut som det hörde hemma i en timmerstuga.Stommen är konstruerad för att användas med en låg profil drottning storlek madrasser (ca 6 inches lång).Material:Huvudgavel endast1 i x 3 i x...

Passar gitarr rem slutet pin knappar och gutar stil rem till en Ukelele.

This is how I made and fitted acoustic guitar style straps on 2 of my Ukeleles.Efter att ha provat ut en runda nacke stil strängen Ukelele rem men bara att hitta det gjorde ingenting men skrapa av ljud hål och vara en konstant irritation som det stän...

Brosch pin display och beskyddare fallet

Har du (som mig) vackra broscher och stift som är undanstoppad i vissa fall och aldrig används? Eller kanske du gå till en konvention en gång per år och få en pin som du hålla och kasta i en låda när du kommer hem?Jag gillar min pins och broscher, me...

Avmystifiera 4 pin adresserbara RGB LEDS

Om du har sett min tidigare Instructable RGB lysdioder, så har du en ganska bra grund på förmågan att sätta tre skilda ljuskällor i ett enda paket i din bygger.Tiden marscherar på, och det gör teknik! En av de mest innovativa nya sakerna om RGB lysdi...

Arduino väckarklocka Canvas--hur man

material behöver du:1. duk (valfri storlek)2. tyg (tillräckligt för att täcka duken)3. kardborre4. 8-10 LED-lampor5. ledande tråd6. tråd7. 1 Lilypad enkel fäst styrelsen (du kan välja att använda andra Lilypad brädor också)8. 1 Lilypad högtalare/Summ...

Tyg dammen

när du pekar siffrorna, blommorna kan blinka och göra mönster!Steg 1: Material som behövs - 4ft av blå bomullstyg (för basen av dammen) pris: $4 (Walmart)-4 bitar av grön filt (för lily pads) och 4 bitar av olika färger (för blommor) pris: 4 för $1 (...

Beröring-känslig musikaliska målning

Denna musikaliska målning är en grafisk poäng som du rör för att spela melodier och harmonier. Den innehåller visuell komposition, musikalisk sammansättning och gestikulerande samverkan skapa en ny form av visuell musik där sammansättningen och instr...

Interaktiva Quilt

detta projekt är en hängande, interaktiva quilt för min 8-åriga dotter. Varje avsnitt av täcket kräver henne göra något för att aktivera antingen ljus eller ljud.Material som behövsFör täcke:Tyg-5 färger för bakgrund-Säkerhetskopiera & bindande (ca 1...

Kapacitiv Touch Arduino lampa

EDIT: Jag gjorde ännu en av dessa och hacka en ikea-lampa med den. Du kan se den "vänners kompatibla overe härProblemetDet är sent på kvällen, och din mobiltelefon ringer. Du kan inte se där det är, du blint famlar runt ditt Nattduksbord, förgäves fö...

Lär dig mer om mikrokontroller

Detta Instructable var utformad för att svara på frågan: Hur kommer jag igång i microcontrollers? Nu, i klara, enkla engelska, kan du lära dig vad en mikrokontroller är, och hur du använder en. Du kommer att lära dig att göra allt du behöver för att...

Billiga logik Analyzer

Om du vill göra digitala kretsar kanske behöver du en logik analyzer att logga data och analysera dem på PC som är mycket användbar för felsökning. Dessa verktyg är inte så dyrt och du kan köpa en helt enkelt. En dag insåg jag att en av dessa verktyg...

Göra en flygplats i Google Earth och flyga runt

Efter att upptäcka det är en dold flygsimulator i Google Earth, del av en beta-test för några framtida online spel, var det bara en tidsfråga (två dagar) innan jag trodde om hacking simulatorn på en mindre skala. Efter att ha gjort några NOE flyger o...

Infinity spegel ändra touch tabell

När jag fick detta uppdrag för min interaktionsdesign klass, som innebar att använda en Arduino uno, en kombination av händelser ledde till skapandet av min touch infinity spegel bord. Söka igenom en mängd olika Instructables, medan samtidigt renover...