So wirklich einfach geht die Erzeugung des PWM Signals per Hardware PWM leider nur mit dem 16 Bit Timer. Nach der Konfiguration des Timers auf etwa 50 Hz und PWM Mode muss man nur noch den Wert in das OC1... Register schreiben. Beim Mega48 hat man aber nur 2 PWM Kanäle mit 16 Bit Auflösung. Mit den 8 Bit Timern geht das leider nicht so gut. Da ist die Auflösung doch sehr eingeschränkt: um auf etwa 20 ms Period zu kommen entspricht ein Schritt für den Timer und die Auflösung für den PWM Puls dann etwa 50-100 µs. Bei einer Pulsbreite von 1,5-2,5 ms für den Servo sind das also nur 10-20 Stufen die man einstellen kann. Teils ist der Bereich sogar noch kleiner.
Wenn man die Softwareversion richtig macht, also die Pulse nach einander, und mit nur je 1 Interrupt je Puls, hält sich die Belastung durch Interrupts in Grenzen und man hat noch den größten Teil der Rechenleistung zur Verfügung. Da stört mehr der zusätzliche Bedarf auf dem Stack.
Lesezeichen