Forum: Mikrocontroller und Digitale Elektronik Erstes Servoprogramm mit Timern; Atmega 8; 1Mhz


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mich mal intensiever mit den Timern beschäftigt und da ich noch 
einen Servo hier rumliegen hatte, hab ich mal eine ansteuerung des 
Servos mit Timer2 gemacht.

Wie ist das mit der Auslastung des Mikrocontrollers ? Meiner Meinung 
nach ist die so minimal oder ?

Was kann man ändern, besser machen ?

als Nächstes wollte ich die Positionsvariable des servos noch 
einstellbar machen, um den Servo auch steuern zu können.

Gruß
Thomas

von regs (Gast)


Lesenswert?

atomar fehlt

von Karl H. (kbuchegg)


Lesenswert?

Diese Ansteuerung ist so ziemlich die schlechteste Variante, die es 
gibt.

von spess53 (Gast)


Lesenswert?

Hi

>Wie ist das mit der Auslastung des Mikrocontrollers ? Meiner Meinung
>nach ist die so minimal oder ?

Wenn du 100% als minimal bezeichnest.

MfG Spess

von Thomas (Gast)


Lesenswert?

Hallo,
danke für die schnellen antworten.
Warum ist es denn die schlechteste variante, ich dachte, es sei die mit 
dem delay..

von Karl H. (kbuchegg)


Lesenswert?

Thomas schrieb:
> Hallo,
> danke für die schnellen antworten.
> Warum ist es denn die schlechteste variante, ich dachte, es sei die mit
> dem delay..

Na gut.
delay ist noch schlechter.
Aber wer Timingaufgaben mit delay löst, ist entweder blutiger Anfänger 
oder sollte seine Lizenz zum Programmieren abgeben.
delay zum schnellen Test, ob ein Servo funktioniert, ist ja noch ok. 
Aber sobald man mit Blödeln aufhört, kommt delay sowieso nicht mehr 
ernsthaft in Frage. (*)


* im Idealfall erzeugt der Timer selbsttätig die Servopulse
* bei mehreren Servos braucht er da noch ein bischen Hilfe in Form
  einer ISR
* selbst wenn der Timer den Pulspin nicht selbst bedient, spricht nichts
  dagegen, die komplette Pulserzeugung in die ISR zu verlagern.
  Ganz im Gegenteil: Du willst sie sogar komplett in der ISR haben.
  Denn die Pulse müssen auch dann erzeugt werden, wenn das main() zb
  mit dem Updaten eines LCD beschäftigt ist. Die LCD Ausgabe kann
  unterbrochen werden und kann warten. Die Servopulse können aber nicht
  warten. Die müssen kommen - egal was main() gerade macht.


Modellbauservo Ansteuerung

(*) wie eigentlich meistens, wenn es um irgendwelche Zeitsteuerungen 
geht. _delay_ms ist nicht die Lösung ... _delay_ms ist das Problem.

von Thomas (Gast)


Lesenswert?

Alles klar,
Danke für die Antowerten, dann werd ich mich mal wieder an die arbeit 
machen.

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.