Stap 8: De AVR Programming
Wenst u informatie over het programmeren van de AVR MCU, ik gebruikte AVRStudio voor een ander AVR project die ik deed, maar ik heb onlangs vond een Instructable over het gebruik van Eclipse als een IDE. Ik houd van Eclipse veel beter, maar het is alle persoonlijke voorkeur.
PROGRAMMERING
Er zijn tal van Instructables over aan de slag met AVR programming. Ik heb mijn Eclipse-projecten, waaronder de bronbestanden van de C, evenals de vooraf gecompileerde .hex bestanden opgenomen.
Als u van een ATMega328/168 gebruikmaakt - de TronV1-bestanden gebruiken. Als u van een Attiny45 gebruikmaakt, de TronTiny-bestanden gebruiken.
Beide implementaties worden uitgevoerd de chips op de volledige 8Mhz met behulp van de interne oscillator. Andere dan welk, ben mij using standaard fuse-bits - Hoewel u kan net als de chips MAX72XX stoppen met werken op 4v brownout detectie toevoegen.
INZICHT IN HET PROGRAMMA
Als u niet geïnteresseerd bent in te wijzigen of te begrijpen van de code - u kunt dit gedeelte overslaan :)
Mededeling aan de Max7221/7219 bestaat uit twee bytes - één byte die aangeeft welke waarde (opdracht register) we updaten (instellingen, waarden voor een segment, etc). De tweede byte bevat de waarde te schrijven.
Elk segment van 8 LED's zijn opgelost door middel van een reeks bits (8 bits = 1 byte). Dus, bijvoorbeeld - de volgende binaire waarde zal aanzetten alleen LED1 - 00000001. De volgende waarde inschakelen LED 8 - 10000000.
Opdrachten die worden verzonden naar de chip met de sdp8 functie. Register namen en hulpfuncties kunnen worden gevonden in het LEDControl.h bestand.
Er zijn een paar verschillen tussen de Tiny en Mega-implementaties. ATTiny45 biedt geen ondersteuning voor SPI, dus vond ik wat code USI in plaats daarvan gebruiken (AVRFreaks.net is een grote bron). Er zijn enkele poort pin verschillen evenals - begrip overwegen één is een 8 pin MUC en anderzijds heeft 28 pinnen.
U moet zitten kundig voor haven dit tot een groot aantal AVR chips, mits u de timers en poorten correct configureren.