Anpassade Tron skiva Mod (8 / 15 steg)
Steg 8: Programmering AVR
Om du behöver information om programmering AVR MCU, jag använde AVRStudio för ett annat AVR projekt jag gjorde, men jag hittade nyligen en Instructable på med Eclipse som en IDE. Jag gillar Eclipse mycket bättre, men det är alla personliga preferenser.
PROGRAMMERING
Det finns gott om Instructables om att komma igång med AVR programmering. Jag har tagit min Eclipse projekt som omfattar C källfiler som förkompilerade hex filer.
Om du använder en ATMega328/168 - Använd TronV1-filerna. Om du använder en Attiny45, använda TronTiny filerna.
Båda implementeringar kör marker på den fulla 8Mhz använder en intern oscillator. Annat än att använder jag standard fuse bits - även om du kunde lägga brownout upptäckt som MAX72XX marker slutar arbeta på 4v.
FÖRSTÅ PROGRAMMET
Om du inte är intresserad av hur du ändrar eller förstå koden - kan du hoppa över detta avsnitt :)
Meddelande till Max7221/7219 består av två byte - en byte som anger vilket värde (kommandot register) vi uppdaterar (inställningar, värden för ett segment, etc). Den andra byten innehåller värdet att skriva.
Varje segment av 8 lysdioder behandlas genom en serie bitar (8 bitar = 1 byte). Så, till exempel - det följande binära värdet kommer att aktivera endast LED1 - 00000001. Följande värde aktivera LED 8 - 10000000.
Kommandon skickas till chip med funktionen sdp8. Registernamn och hjälpare funktioner kan hittas i filen LEDControl.h.
Det finns några skillnader mellan den Tiny och Mega implementationer. ATTiny45 stöder inte SPI, så hittade jag några kod att använda USI istället (AVRFreaks.net är en stor källa). Det finns vissa port pin skillnader-förstå överväger en är en 8-pin MUC och den andra har 28 stift.
Du bör kunna port här till ett stort antal AVR chips, förutsatt du konfigurera timers och hamnar rätt.