hm, sinds kort bezig met een sterrenhemel (3 RGB kanalen, waarvan de RGB instelbaar is en dan de brightness per kanaal regelbaar is, zodat de kleur intact blijft)
Nu heb ik wat standaard effecten zoals faden van kanaal naar kanaal en rollen van kleuren, en wil nu nog een twinkel effect toevoegen.
Een random waarde tussen 0-255 kiezen en deze op de pwm uitgang gooien werkt opzich redelijk, maar oogt nogal trubbelig, ik denk dat ik de huidige pwm waarde op moet slaan, een nieuwe genereren en dan in een x aantal stappen hiernaart moet faden.
Op CO vond ik het volgende;
Op zich is het idee prima, maar ik denk dat je al snel op negatieve waardes uitkomt en dus kleursprongen/intensiteit sprongen maakt.
Is er een simpeler beter algoritme, of zit ik gewoon in een verkeerde hoek te denken?
/edit:
In principe kan ik < of > wel gebruiken om op of neer te laten faden zonder problemen, maar ik heb het idee dat ik stomweg iets over het hoofd zie (plus het kost een bult aan sram om voor 12 pwm kanalen alles te onthouden, en dan nog de seriële buffers, booleans, tellers etc etc...)
Nu heb ik wat standaard effecten zoals faden van kanaal naar kanaal en rollen van kleuren, en wil nu nog een twinkel effect toevoegen.
Een random waarde tussen 0-255 kiezen en deze op de pwm uitgang gooien werkt opzich redelijk, maar oogt nogal trubbelig, ik denk dat ik de huidige pwm waarde op moet slaan, een nieuwe genereren en dan in een x aantal stappen hiernaart moet faden.
Op CO vond ik het volgende;
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Do
___rseed = Timer0 'Random seed uit de timer halen
Trood = Rnd(255) 'Willekeurige nieuwe kleur maken
Tgroen = Rnd(255)
Tblauw = Rnd(255)
Diff = Trood - Rood 'Verschil tussen nieuwe en oude kleur
Staprood = Diff / 40 'Faden in 40 stappen
Diff = Tgroen - Groen
Stapgroen = Diff / 40
Diff = Tblauw - Blauw
Stapblauw = Diff / 40
For I = 1 To 40
Stop Timer0 'Zorgen dat de PWM niet kan onderbreken als ik de nieuwe waardes instel
Rood = Rood + Staprood
Groen = Groen + Stapgroen
Blauw = Blauw + Stapblauw
Start Timer0
Waitms 10
Next I
Loop |
Op zich is het idee prima, maar ik denk dat je al snel op negatieve waardes uitkomt en dus kleursprongen/intensiteit sprongen maakt.
Is er een simpeler beter algoritme, of zit ik gewoon in een verkeerde hoek te denken?
/edit:
In principe kan ik < of > wel gebruiken om op of neer te laten faden zonder problemen, maar ik heb het idee dat ik stomweg iets over het hoofd zie (plus het kost een bult aan sram om voor 12 pwm kanalen alles te onthouden, en dan nog de seriële buffers, booleans, tellers etc etc...)
[ Voor 8% gewijzigd door LiquidSmoke op 20-02-2010 22:11 ]