Mhh werde nicht schlauer 
WIe muss ich nun dieses Beispielprogramm umschreiben das ich bei Atmega16 das 16bit PWM Signal benutzen kann (ich weiss nur das ich dazu OC1A OC2B zum motor führen muss):
Code:
#include <avr/io.h>
int main()
{
// OC1A auf Ausgang
DDRB = (1 << PB1 ); //ATMega8
// DDRD = (1 << PD5 ); //ATMega16
//
// Timer 1 einstellen
//
// Modus 14:
// Fast PWM, Top von ICR1
//
// WGM13 WGM12 WGM11 WGM10
// 1 1 1 0
//
// Timer Vorteiler: 1
// CS12 CS11 CS10
// 0 0 1
//
// Steuerung des Ausgangsport: Set at BOTTOM, Clear at match
// COM1A1 COM1A0
// 1 0
TCCR1A = (1<<COM1A1) | (1<<WGM11);
TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
// den Endwert (TOP) für den Zähler setzen
// der Zähler zählt bis zu diesem Wert
ICR1 = 0x6FFF;
// der Compare Wert
// Wenn der Zähler diesen Wert erreicht, wird mit
// obiger Konfiguration der OC1A Ausgang abgeschaltet
// Sobald der Zähler wieder bei 0 startet, wird der
// Ausgang wieder auf 1 gesetzt
//
// Durch Verändern dieses Wertes, werden die unterschiedlichen
// PWM Werte eingestellt.
OCR1A = 0x3FFF;
while( 1 )
;
}
Lesezeichen