Hallo, wie muß man dabei grundsätzlich vorgehen ? Pulslänge 1-2ms Wiederholung alle 20ms, soweit klar. Einen Timer mit Interupt verwende ich für die 1-2ms oder für die 20ms ? Oder für beides einen Timer mit Interupt ? Oder für eines mit normaler Loop schleifen ? Wenn ich nun die Stellung vom Servo verändern will müssen ja beide Timer angepasst werden damit die 20ms nicht überschritten oder unterschritten werdenm also wie bei PWM, aber jetzt hab ich gelesen das PWM dafür nicht so gut ist. Ich möchte die Ansteuerung korrekt machen auch wenn die Servos die Signale nicht so genau brauchen. Grüß Mario
Hier ist ein Beispiel mit einem AT90S4433 in ASM: http://www.hanneslux.de/avr/7ksend/7ksend01.html Heute würde ich das eleganter lösen, doch es tut zuverlässig seine Arbeit und ein gut funktionierendes System soll man ja bekanntlich nicht unnötig modifizieren... Weitere Beispiele gibt es übrigens ganz in der Nähe dieser Seite... ...
Hallo, danke für die Hilfe, leider geht der link zu dem asm File nicht. Gruß Mario
Danke für den Hinweis... Der Link funktioniert nun. Es war der typische Fehler beim Umzug der Seite auf einen Linux-Server: Groß-Kleinschreibung der Dateinamen. Ist bisher unter WIN nicht aufgefallen... ;-( WIN erzieht nunmal zur Schlampigkeit... ...
Ich hab hier ein Programm für einen 90S8535 mit 4Mhz Quarz für meinen Sechsbeiner Quo vadis. Damit steuere ich 13 Servos an. Die Ansteuerung läuft einwandfrei, nur der Bewegungsablauf ist in dieser Version noch Mist. Hab ich inzwischen verbessert, aber das Programm ist damit kaum noch lesbar. Auf diese Weise kann man noch wesentlich mehr Servos ansteuern. Man kann die sache auch noch eleaganter machen, wenn man nach dem Port high setzen den Timer auf 1ms einstellt und sofort wieder zurückspringt. Wenn man dann wieder in den Interupt wechselt und prüft, welcher Port als nächstes dran ist und dem entsprechend den Timer einstellt, kann man noch sehr viel Zeit sparen. Hab ich so aber noch nicht gemacht, weil zu faul. Falls es interessiert: www.ginotronik.de Gino
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.