Timer verhält sich eigenartig

OP #6071327
Lesenswert?
• ▲
▼
Hallo,

ich habe Timer1 für die Ansteuerung eines Servos verwendet:
Fast PWM
TOP = 20.000 (20ms)
OC1A zwischen 1.000 und 2.000 für Servo links/rechts

Das ganze funktioniert auch einwandfrei

Jetzt möchte ich den Timer0 für Zeitabhängige Eingriffe in Timer1 
verwenden.
Normal Mode
Prescaler = 1024

Wenn ich zum Test bei Überlauf von Timer0 einen Ausgang Toggle, 
funktiert sowohl die Servoansteuerung als auch der blinkende Ausgang 
einwandfrei.

Sobald ich jedoch (zum Test) "X=1500" in die ISR einbaue, wackelt der 
Servo zwischen 1500 und 2000 hin und her.
Weiterhin blinkt die getoggelte LED nicht mehr 100% gleichmäßig.

Fragen:
1: X scheint zwischenzeitlich wieder auf 2000 gesetzt zu werden, warum ?
2: Warum hat X=1500 auswirkungen auf den Timer0 selbst (Ausgang blinkt 
nicht mehr gleichmäßig) ?
Angehängte Dateien:
OP #6071350
Lesenswert?
• ▲
▼
Es ist ein Tiny24

Es gibt keine ISR für Timer1, der läuft einfach vor sich hin und ändert 
hardwaremäßig den OC1A Ausgang.

Wenn ich in der ISR für Timer 0 nur ein char (Y) auf 1 setzte und X dann 
in der main ändere, blinkt der Testausgang wieder einwandfrei.
Jedoch wackelt der servo weiterhin hin und her.
Irgendwo speichert er den alten Wert...

if (Y == 1)
{
X = 1500;
Y = 0;
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.