Unregelmäßigkeit beim Ablauf eines Programms.

Gast #3956709
Lesenswert?

Hallo zusammen.
Ich möchte gleichzeitig 14 Servos ansteuern.
Dazu brauche ich 14 Impulsbreitensteuerungen.
Ich möchte das folgendermaßen realisieren.
über Timer 1-Compare-Interrupt erzeuge ich die positive Flanke bei allen 
Ports.
In der Hauptschleife frage ich dann bei jedem Durchgang den aktuellen 
Timerstand ab. wenn dieser den für den jeweiligen Port zuständigen Wert 
überschreitet, wird dieser auf 0 gesetzt. Das funzt auch gut. Nun mein 
Problem:
Im Simlator klappt alles gut, Die Impuse haben die definierte Länge.
Aber wenn ich das Programm in den Chip lade, Wackelt die Impulsbreite 
unregelmäßig. Die Servos geben ständig Geräusche ab, und Zucken. Das 
wäre für meinen Zweck nicht mal so schlimm, aber sie werden durch die 
ständige Motoraktivierung zu warm.

Gibt es da auf dem Prozessor im Hintergrung irgndwelche Aktivitäten, die 
man explizit abschalten kann und müßte?
Alle Interrupts ausser dem Timer-Compare sind ausser Betrieb.

Gruß Fritz

PS Iim angehängten File habe ich alles auskommentiert, was meiner 
Meinung nach probleme bereiten könnte. Auch habe ich die Impulserzeugung 
auf einen Port beschränkt.
Angehängte Dateien:
Gast #3956721
Lesenswert?

Hallo zusammen.
Ich habe dasP roblem mittlerweile gelöst. Das Zucken der Impulse ist 
offensichlich dem Oszilosscop geschuldet. Und dass die Servos gesponnen 
haben lag daran, dass die Impulspause zu kurz war. Ich habe jetzt einen 
völlig anderen Lösungsansatz verwendet, und da löste sich das Problem 
von alleine.

Gruß Fritz

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren