user:guider:etaavrguide:projekt1
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| user:guider:etaavrguide:projekt1 [2026/01/10 15:16] – removed - external edit (Unknown date) 127.0.0.1 | user:guider:etaavrguide:projekt1 [2026/01/10 15:34] (current) – ↷ Links adapted because of a move operation 156.59.198.136 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | =====Projekt 1===== | ||
| + | |||
| + | Detta projekt gör egentligen inget meningsullt. En LED kommer helt enkelt att lysa efter att du programmerat din krets. Projektet är ämnat åt att värma upp dina kodfingrar och orientera dig runt AVR Stuido. | ||
| + | |||
| + | |||
| + | ====Ritning==== | ||
| + | |||
| + | (stoppa in ritning här på koppling) | ||
| + | |||
| + | |||
| + | ====Källkod & Kommentarer==== | ||
| + | |||
| + | **Observera!** I nedan kodexempel används ' | ||
| + | <code C> | ||
| + | #include < | ||
| + | |||
| + | int main (void) { //(1) | ||
| + | |||
| + | DDRD = 0xff; | ||
| + | PORTD = 0b11110000; | ||
| + | |||
| + | while(1) { //(4) | ||
| + | //här kan man stoppa in kod | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | (0), Här inkluderas en headerfil (io.h) som ligger i en katalog som heter " | ||
| + | |||
| + | (1), Här börjar den viktigaste funktionen i programmet. I programmeringsammanhang kallas detta för "entry point", | ||
| + | |||
| + | (2), DDRD står för: Data Direction Register (Port) D. Här ställer man in vilka pinnar på ic-kretsen som är in eller utgångar för data. Som standard är alla pinnar inställda som ingångar för att inte påverka yttre kretsat av misstag. Här har vi valt att skriva i hexadecimalt att alla pinnar är utgångar med 0xFF. Dess ekvivalent i binär form är givetvis anges som b11111111. Med andra ord innebär en etta att pinnen sätts som ut och nolla som in. | ||
| + | |||
| + | [bild på mikrokontroller och portarna] | ||
| + | |||
| + | (3) Nu är det dags att ställa om pinnarnas tillstånd. Vi gör detta genom att överföra ett värde direkt till PORTD. En nolla sätter pinnen som låg och en etta som hög. Hög innebär en spänning nära 5 volt eller nära den matningsspäningen som du har till mikrokontrollern medans låg ligger nära noll (dvs jord). Bitordningen korresponderar till ordningen hos portens pinnar. Bit0 (längst till höger) bestämmer tillståndet hos Pin0 för en givet port. Här har vi valt att ställa in fyra första högre pinnarna/ | ||
| + | |||
| + | På sidan 73 (12.2.x) i databladet för atmega168 kan du läsa om olika sätt som man kan konfigurera mikrokontrollerna portar. | ||
| + | |||
| + | (4) Här försätter vi i programmet i en evighetsloop där inget händer. | ||
| + | |||
| + | |||
| + | |||
| + | ====Vidare instruktioner==== | ||
| + | |||
| + | Nu när du fått en god översikt av vad källkoden gör för något skall vi testa att kompilera och länka kalaset. Build kallas det för och detta kan du göra antingen genom att trycka på F7 på tangentbordet eller gå upp till " | ||
| + | |||
| + | {{user: | ||
| + | |||
| + | Nu kommer du ha en färdig binär och hexfil som du han hitta i en katalog som heter " | ||
| + | |||
| + | Hexfilen är den du använder när du skall programmera din AVR krets. Men innan vi programmerar vår krets ska vi simulera programmet med debuggern och undersöka vad som händer rad för rad. | ||
| + | |||
| + | OBS! Först måste du se till att ha kört " | ||
| + | |||
| + | Nu kan du gå till " | ||
| + | |||
| + | {{user: | ||
| + | |||
| + | |||
| + | Tips: Ett sätt att slipa trycka på två olika ställen i menyerna för att komma igång med debuggern är att köra "Build and Run" i " | ||
| + | |||
| + | Nu kommer du både på vänster och höger om källkoden ha information om mikrokontrollerns tillstånd. Till vänster har du infomration om programräknaren, | ||
| + | |||
| + | {{user: | ||
| + | |||
| + | För att stega genom programmet trycker du på F11 på tangentbordet. | ||
| + | |||
| + | När du gör detta hoppar den från " | ||
| + | |||
| + | {{user: | ||
| + | |||
| + | Nu kommer du se att DDRD har förändrats i fönstret till höger. Alla tidigare vita rutor bör vara svartfyllda och bredvid står värdet i hexadecimal form. Stega igenom en gång till så kommer PORTD' | ||
| + | |||
| + | {{user: | ||
| + | |||
| + | Vid nästa stegning kommer vi att fastna i while loopen och inget mer konkret kommer att hända. | ||
| + | |||
| + | |||
| + | |||
| + | ==== Programmera & Kör! ==== | ||
| + | |||
| + | Nu är det äntligen dags att programmera vår krets och se vad som händer. Koppla in din AVRisp mkII på ditt utvecklingsbräde samt din dator. Du även behöver ha din krets uppkopplad med spänning på för att programmeringen ska fungera. Gå nu till " | ||
| + | |||
| + | {{user: | ||
| + | |||
| + | ..... work in progress .... | ||
