ich brauche den Timer1 für Servos und Timer3 als Zähler. Den Code, den ich von Timer1 auf Timer3 umgeschrieben habe funktioniert nicht. Brauche ich eine Headerdatei für Timer3?
TCCR3A = 0;
TCCR3B = 0;
TCNT3 = 3036;
TCCR3B |= (1 << CS32); // okay, weil vorher Register resetet
TIMSK3 |= (1 << TOIE3); // nicht okay, weil vorher Register nicht resetet
das kann zur falschen Verhalten des Timers führen woran man lange grübelt.
Unterschied = zu |= sollte klar sein.
Entweder alle Konfigurationsregister pauschal reseten und dann wieder wie gewünscht konfigurieren. Oder nur unbenutzte Register reseten und die benutzten mit der ersten Zuweisung auch wirklich zuweisen und nicht verodern und dann alle folgenden Einstellungen verodern. Da sollte man sich seinen eigenen übersichtlichen Stil angewöhnen. Bei eigener Timer Nutzung/Konfiguration ist das komplette Register reseten notwendig, weil die IDE "intern" default Einstelllungen für ihre PWM Ausgänge, millis u.ä. vornimmt.