En avancerad metod för Arduino & AVR programmering (3 / 7 steg)
Steg 3: Programmera Arduino UNO rev3 från WinAVR miljö
För att programmera arduino via WinAVR, måste du först ladda ner det från här.
Innan du går vidare, måste du ha en titt på pin mappningen av kärna Atmega328 chip som Arduino UNO. Ta bara en titt på min bifogade bild. De är alla ordnade i den nödvändiga ordningen. Även om chipet är markerad som Atmega168 men Atmega328 har också samma pin mappningen.
Här kommer vi blinkar den inbyggda LED med WinAVR.The LED(marked 'L' on board) är ansluten sĺ som visas i den tredje bilden.
Om vi drar endast LED kretsen utvinns ur styrelsen (med undantag av alla andra komponenter), då kretsen kommer att ses som det i tredje pic. Op-förstärkaren används här är konfigurerad som en buffert dvs vad det kommer att få i pin #5(0/1), det ger exakt samma produktion till pin #7.The främsta orsaken bakom detta är att tillhandahålla tillräcklig ström för att driva LED.
Så du kan se att atmega328p pin #19 driver LED via op-förstärkaren. Som ni kan se att det är märkt digital13 i arduino pinut och PB5 i AVR pinut. Ha bara det i åtanke, kommer vi att diskutera om det inom kort.
Nu går vi tillbaka där vi var. Efter dataöverföring WinAVR, installera den. Innan du går vidare, skapa en mapp med namnet "Blink" på skrivbordet. Det är där vi kommer att hålla alla filerna när det gäller vårt WinAVR blink projekt. Nu gå till Start > alla program > WinAVR-20100110.Click på den och köra programmerarens anteckningar. Nu Klicka på File > New > C/C++ och du kommer se något samma som pic4. Nu spara det genom att klicka på Arkiv > Spara som och meddela sökvägen till Blink mapp på skrivbordet och ge det filnamn som main.c.Now har vi vår "c"-fil. Titta bara under Arkivmenyn, namnet borde ändras till main.c.
Nu här kommer den största delen, programmet kommer att enligt nedan. Som jag inte ger någon tutorial om AVR arkitekturen/AVR programmering handledning, ger jag endast kort förklaring för varje rad. Om du vill veta mer om
visst AVR familily arkitektur/programmering, då jag kommer nämna några bra böcker/länk i slutet av detta avvaras.
OK, för nu, låt oss börja vår blink program i WinAVR.
#include //This vad gäller alla nödvändig hårdvara definitioner för AVR.
#include / / denna är om dröjsmål funktioner.
int main(void) //starting av huvudsakligt
{
DDRB | = (1 << 5); Konfigurera PB5 som produktionen av Writting 1 till Data riktning register(DDR).
While(1) //entering till oändlig loop
{
PORTB ^ = (1 << 5), //Toggle statligt av PB5.
_delay_ms (1000); //Delay 1s
}
}
Nu minimera programmerarens anteckningar.
Klicka på Start.in sökning, skriv "Mfile" och tryck enter. Nu öppnas en ny Makefile. Nu var uppmärksam när det gäller denna del, eftersom detta är förmodligen den mest cruicial delen för Arduino programmering från WinAVR IDE.
I princip innehåller Makefile alla inställningar för att bränna att chipet. Nu Följ stegen som beskrivs.
1) Klicka på fliken "Makefile" och klicka på sist alternativet dvs "Aktivera redigering av Makefile". Nu kommer du att kunna ändra parametrarna för Makefile.Check Pic #5
2) nu Klicka igen på "Makefile" fliken och klicka på "MCU typ > ATmega > och välj MCU som Atmega328P från listan. Klicka på fil > Spara.
3) nu kan du se, att MCU kommer att markeras med gul färg i filen gör som på bild #6.
4) Just under MCU = atmega328p, man #processor frekvens. På den sista raden i #processor frekvens dvs F_CPU = 8000000 (som standard), ändra det till 16000000 noggrant (bara utelämna 8 och skriv 16. akta er för 0s. Det blir 6 0s.) Kolla Pic #7.This är eftersom arduino körs på 16MHz.Click på fil > Spara.
5) nu Klicka på Makefile fliken och välj programmerare > stk500v2. Nu inne i Makefile, kommer detta att Visa"
AVRDUDE_PROGRAMMER = stk500v2 "i gula höjdpunkt. Utelämna stk500v2 och skriv "arduino". Kolla pic #8.Click på fil > Spara.
6) nu koppla din arduino Uno Rev3 till din PC. Minimera Makefile och rätt klick på min computern ikonen. Klicka hantera på och klicka sedan på Enhetshanteraren. Notera inte för arduino uno. Kolla varierar pic #9.This från min till ditt. Min var 22.
7) nu återuppta Makefile.Just nästa där du skrivit "arduino", blir det port # definition för avrdude. Detta kommer att Visa som "AVRDUDE_PORT = com1". Nu utelämna '1' och skriv din arduino port #. Jag skrev "22". Klicka på fil > Spara. Kolla pic #10.
8) nu efter några rader av port definitionen, kommer det att finnas en linje "#AVRDUDE_VERBOSE = - v - v". Nu strax efter denna linje, typ "AVRDUDE_BAUD = 115200". Klicka på fil > Spara. Kolla pic #10.
Genom att lägga till denna linje, definierar vi vilket baudvärde för den seriella kommunikationen mellan ombord Atmega328P och ombord USB till seriell omvandlare av arduino uno. Detta kan vara olika för olika Arduinos.
9) nästa raden "AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) - c $(AVRDUDE_PROGRAMMER)".
Lägg till "-b $(AVRDUDE_BAUD)" i slutet av föregående rad föregås av en "utrymme". Den sista raden kommer att ser ut som nedan:
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) - c $(AVRDUDE_PROGRAMMER) -b $(AVRDUDE_BAUD)
Kolla bild #11.
Nu är du redo att rocka. Klicka på fil > Spara som av Makefile och navigera till insidan "Blink" mappen och ge filnamn som "Makefile" och spara den. Glöm inte att ge de filnamn som "Makefile". Kontrollera pic #12.Now nära Makefile.
10) nu återuppta programmerarens anteckningar och första Klicka på "Verktyg > [WinAVR] göra alla". Om du gjorde allt exakt som min beskrivning, sedan göra processen bör vara utan fel och programmerarens anteckningar sida bör se ut som på bild #12.
11) om gör processen slutförts, då det är dags att bränna programmet. Klicka nu på "Verktyg > [WinAVR] programmet". Fönstret bör Visa läsprocessen. Då visar det AVR blixten skrivprocessen. Efter det, bör den Visa flash verifiering läsa process. Kolla bild #13.
Om allt är rätt, kommer den Arduino lampan börja blinka i 1 SEK intervall.
Bingo... nu är du expert AVR.
En annan sak, spara Makefile på en säker plats. Eftersom du kan helt enkelt kopiera och klistra in denna makefile (utan så mycket redigering) för alla dina olika framtida Arduino-WinAVR programmering projekt.