Hallo,
Ich habe ein Problem mit meinem Arduino Uno.
Ich möchte Pin 9 des Arduinos benutzen um eine Led Konstanstromquelle anzusteuern.
Da mir 8-Bit zu wenig sind würde ich gerne 10-Bit verwenden, welches auch soweit funktioniert.
Den Timer1 des Arduinos habe ich wie folgt konfiguriert:
-Fast PWM, 10bit
-Prescaling auf 8
void setup()
{
noInterrupts();
/**********************************************************************************/
// Set pwm clock divider Clock / 8
/**********************************************************************************/
TCCR1B &= ~(1 << CS12);
TCCR1B |= (1 << CS11);
TCCR1B &= ~(1 << CS10);
/**********************************************************************************/
// Set pwm resolution to mode 7 / Fast PWM 10 bit
/**********************************************************************************/
TCCR1B &= ~(1 << WGM13); // Timer B clear bit 4
TCCR1B |= (1 << WGM12); // set bit 3
TCCR1A |= (1 << WGM11); // Timer A set bit 1
TCCR1A |= (1 << WGM10); // set bit 0
interrupts();
pinMode(redpin, OUTPUT);
}
Zum Testen besteht mein Loop aus folgendem Code:
analogWrite(redpin, 100);
delay(2000);
analogWrite(redpin, 255);
delay(2000);
analogWrite(redpin, 256);
delay(2000);
analogWrite(redpin, 500);
delay(2000);
analogWrite(redpin, 510);
delay(2000);
analogWrite(redpin, 1023);
delay(2000);
Das funktioniert soweit auch, bis auf den Wert 255.
Genau an dieser Stelle leuchtet meine Led mit der maximalen Helligkeit,
als ob der maximale Wert des 8-Bit Bereichs erreicht werden würde.
Danach läuft der Verlauf normal weiter, wie es bei 10-Bit sein sollte.
Hat vielleicht einer eine Idee woran das liegen könnte?
Mfg. Ardion