-
-
Erfahrener Benutzer
Robotik Einstein
Ich hab ne wichtige Frage, wo ich gerade deinen Code sehe. Gibt es eine Möglichkeit quasi aus einem ADC einen Interrupt zu machen, der z.B. Änderungen am AD-Port meldet feststellt? Oder was meinen diese drei ausdrücke?
On Adc Onadc
Admux = &B01100000
Adcsr = &B11101111
Leider ist mir der AD unter Bascom nciht ganz geläufig, noch nicht 
Nun zu deiner Frage, wie soll der Farbverlauf denn aussehen, du müsstest vermutlich eine funktion erstellen, die dir sagt, wie hell du die entsprechenden Leds schalten sollst. Oder ist dein Problem quasi 3 PWMs zu erzeugen?
Das kann man wie folgt lösen, du verwendest einen Timer mit möglichst niedrigem Prescaler, z.B. 8 und lässt den Timer relativ schnell überlaufen, so das du eine hohe Frequenz hast.
In der Interrupt routine machst du 255 steps, eine beliebige Variable (z.B. I) die bei jedem Aufruf der Interruptroutine incrementiert. Nun kannst du für jede Led einen Wert setzen (Byte) zu beginn I = 0 sind alle Leds ein, je nachdem welchen Wert I erreicht gehen sie dann aus, halt ein PWm, der sich beliebig erreichen lässt.
Bei 8Mhz hättest du bei einem 8-Bit-Timer den du nach 39 Schritten überlaufen lässt:
8000.000/8 = 100.0000
1000.000/39 = 25641
25641/256 = ca 100Hz, dass sollte reichen.
Ich hoffe ich erzähle dir hier nix was du schon weißt, nach Fachlatein was du in deinem Code benutzt hast, fürchte ich, dass es nicht so ist 
MFG Moritz
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen