LEDDE fladdrande fackla (4 / 6 steg)
Steg 4: Kontrollermjukvaran
Mjukvaran är skriven i AVR-GCC i windows med AVR studio, det lånar från andra liknande ljus projekt och wikipedia exempelkoden för en linjär återkoppling skiftregister.De viktigaste skillnaderna är att den här använder en RGB LED och 3 hårdvara PWM timers, för minsta SW overhead.
Tanken var att om pseudo-slumpmässiga flimmer inte såg naturliga, CPU har gott om extra utrymme att hantera en mer komplex modell av ljus beteende.
RGB LED valdes av flera anledningar över en enda färg LED.
- Det är svårt att hitta orange / gula lysdioder på hög ljusstyrka
- De flesta Eldskenet är inte konstant färg, om man tittar nära en dimmer brand har en mörkare, mer röda färg, och jag ville försöka efterlikna som.
- Jag ville använda detta projekt för andra saker i framtiden.
En annan skillnad är att många av LED ljusen tillgängliga kommersiellt flimra LED på / av, och riktiga ljus gör inte så.
Den fullständiga koden är kopplad. Jag hade försökt att genomföra en mer komplex blekning mellan färger, men fick slut på tid att avsluta den. Som är bortkommenterad den bifogade uppförandekoden
Koden startar i Main () genom initierar PWM register, och sedan göra en snabb self test av LED.
De set_rgb() tar R, G, B värden och sätter PWM registren därmed.
Huvudloop sedan startar en LFSR och flimrar mellan 2 olika färgvärden.