Forum: Mikrocontroller und Digitale Elektronik Zeitschleifen für Servo


von Andreas M. (andy999mueller)


Lesenswert?

Hallo,

ich habe das Problem, dass ich eine Zeitschleife mit exakt 400µs 
benötige.
Danach brauche ich noch eine Zeitschleife mit 1,5ms.
Ich habe einen ATMEGA128 mit 16Mhz. Ich programmiere meinen MC mit C und 
dem AVR Studio. Ich weiß jetzt nur nicht wie ich vorgehen soll. Benutze 
ich nun ein PWM Signal oder mache ich es mit einem normalen Zähler.
Der Pseudo-Code könnte in etwa so aussehen:


//include Dateien einbinden

//PortB als Ausgang definieren
//PortB einschalten
//Timer mit Prescaler einstellen
//Timer evtl. mit PWM Signal einstellen
//Timer Compare-Wert zuweisen
//Timer starten

//Wenn Timer 400µs erreicht, dann PortB auf 0 setzen
//Timer zurücksetzen und Zeitschleife mit 1,5ms laufen lassen.
//In diesen 1,5ms den PortB auf 1 setzen und Zeitschleife mit 1,5ms auf 
0 setzen

Ist das so realisierbar? Es geht nämlich darum einen Digital-Servo 
anzusteuern. Habe es jetzt schon Tagelang versucht aber der Servo 
reagiert nicht. Und ich komme einfach nicht mehr weiter.

Es wäre super, wenn ihr mir helfen könntet.



Gruß Andy

von Gast (Gast)


Lesenswert?

Dann hast Du immer 1 am Pin!
Wenn ich Dich richtig verstehe, willst Du 0,4ms low dann 1,5ms high? Das 
ganze immer wieder, oder nur einmal?
Würde ein PWM nehmen. Denke, das ist weniger Aufwand. Ein Problem hast 
Du aber vielleicht, wenn Dein PWM-Signal immer mit high-Pegel startet...

von Andreas Müller (Gast)


Lesenswert?

kannst du mir einen quellcode schreiben???

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.