AVR dubbla RGB Matrix föraren (10 / 12 steg)
Steg 10: Firmware - del 3: Driver Operation
Den kompletta källkoden är tillgänglig i denna GitHub databaser.
Som jag sa innan, matrix drivrutinen är faktiskt en del av ett större projekt. Som sådan, är kretsen inställd att agera som en TWI (I2C) bus slav. Den aktuella koden körs standard chase sekvensen (ett par av uttryckssymboler), väntar på vidare instruktioner från TWI bussen. När det gäller större projekt skickas en enda data-byte med varje bit i den byte som representerar en quandrant matris att aktivera. När data har tagits emot, är LOOP_QUADS sekvensen aktiverat. Detta helt enkelt loopar igenom alla möjliga färger definieras i modules/macros/color_8bit.h, visar färgerna på som någonsin matrix kvadranter är aktiverade. Om inga data tas emot efter så lång tid (ungefär 10 sekunder), återgå matriserna till standard chase sekvensen (ett par leende ansikten).
Hela TWI operationen hanteras i rutinen TWI Interrrupt service. Även ISR väntar bara ett byte data, kommer det att vara trivialt enkelt att ändra denna kod för att hantera mer data-byte. Därigenom skulle tillåta extern kontroll över alla aspekter av matrix föraren inklusive att ange enskilda LED-färger, jaga sekvenser eller till och med inaktiva display!