3-Kanal Soft-PWM mit ATtiny10

OP #6500924
Lesenswert?

Hallo Forum!

Ich bastle zur Zeit an einem kleinen Weihnachts-Projekt, bei dem 3 mal 2 
LEDs mittels eines ATtiny10 einzeln heller und dunkler gedimmt werden 
sollen. Konkret geht es um mit Knopfzellen CR1216 betriebene Ohrringe.
Einzeln blinken lassen kann ich die Teile, aber ich möchte eben eine Art 
pulsierendes Dimmen auf drei Kanälen erreichen. Auf zwei Kanälen ist 
das dank des internen Hardware-PWM-Moduls sogar mir möglich, für den 
dritten Kanal muss ich aber eine Implementierung in Software schreiben. 
Im angehängten Code habe ich versucht, den "zweiten Versuch" von hier
https://www.mikrocontroller.net/articles/Soft-PWM
mit weniger PWM-Frequenz und -Auflösung in einen 1MHz ATtiny zu 
implementieren. Erst mal mit vorgeschriebenen PWM-Werten, um das 
Fehlerrisiko zu minimieren.

Was passiert ist aber folgendes: Die Pins PB0, PB1 und PB2 gehen auf low 
und alle LEDs leuchten mit voller Leuchtkraft (sind active low).

Ich kann und möchte stumpfe Fehler nicht ausschließen, komme hier aber 
nicht mehr weiter. Offenbar initialisiert der Prozessor die Pins als 
Ausgänge, geht standardmäßig auf low und verbleibt dann da, weil er nie 
in die ISR kommt. Entweder läuft der Timer nicht an oder der Interrupt 
wird aus anderen Gründen nicht aufgerufen.
Im angehängten Code läuft der Timer mit noch höherem Prescaler (64 
glaube ich), das war eine meiner Testmaßnahmen, weil ich nicht weiß, ob 
der Timer-Takt der Systemtakt ist (also 1MHz) oder der Takt des internen 
Oszillators (8MHz).

Edit: Hier das verwendete Datenblatt:
http://ww1.microchip.com/downloads/en/DeviceDoc/atmel-8127-avr-8-bit-microcontroller-attiny4-attiny5-attiny9-attiny10_datasheet.pdf
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren