Ich würd es auch über die Timer und Hardware PWM machen.
Dazu ist noch nicht mal ein Interrupt nötig, weil die PWM Generierung rein in Hardware läuft.
Bei den 8 Bit Timern hast du ne 8 Bit PWM ( 256 Stufen ) mit dem 16Bit Timer ( Timer 1 ) gibts 65536 Stufen und 2 PWM Ausgänge OCR1A, OCR1B.
Einzig die PWM Frequenz ist nicht stufenlos wählbar, sondern abhängig von der Taktfrequenz des Controllers, dem Prescaler und der Eingestellten Auflösung. Denn die PWM des Timer1 kann man mit verschiedenen Auflösungen laufen lassen.
Was noch zu beachten wäre ist, das der Controller keine großen Lasten treiben sollte. LED's oder Siebensegmentanzeigen direkt vom Controller zu speisen ist keine gute Idee, wenn man die PWM's benutzen will. Man kriegt dann die Ausgangsspannung nicht mehr auf 0V runter.
Sollen solche Lasten betrieben werden müssen den Controllerports Treiber nachgeschaltet werden.
Lesezeichen