Gast
#1818376
Hallo an alle, ich hoffe ihr könnt mir helfen: Ich möchte fürs Fesselfliegen mit einem Brushlessmotor ein kleines Programm schreiben, was folgenden Programmablauf haben soll: 1. Warten bis Taster gedrückt wird 2. Dann 15 Sekunden warten, damit man Zeit hat zum Griff zu gehen 3. 3 Minuten Vollgas zum Fliegen 4. 5 Sekunden Halbgas um sich auf die Landung vorzubereiten 5. Motor aus um zu landen Eine LED soll mir dann anzeigen, wo ich bin: 1. LED dauerhaft an 2. LED 1 Sekunden Blinken 3. LED aus 4. LED 1 Sekunden Blinken 5. LED dauerhaft an Angeschlossen habe ich den Taster an PD6, die LED an PB5 und die Impulsleitung vom Servo an PD4. Das ist so merkwürdig, damit ich auf dem Lochraster möglichst keine Kabel benutzen musste. So weit so gut, der Regeler wird ja wie ein normales Servo angesteuert und in einem anderen Beitrag habe ich gelesen, das ich alle 20ms ein Signal von 1ms bis 2ms erzeugen muss, wobei 1ms 0% entsprechen und 2ms 100%, dementsprechend sind 1,5ms 50%. Aus dem AVR-Tutorial habe ich mir dann das Timerbeispiel von der Uhr genommen und die Werte so verändert, das ich mit dem internen Tackt vom Atmega8, also 1MHz, alle 0,5ms einen Interrupt bekomme. Über das Register r19 stelle ich nun ein, wie viele 0,5ms Impluse ich alle 20ms haben möchte. Und genau hier liegt das Problem, obwohl das 1 Sekunden Blinken der LED nach dem Tastendruck funktioniert, das Interrupt also richtig aufgerufen wird, läuft ein servo, wenn ich es anschließe an den Anschlag und summt weiter vor sich hin, als ob es noch weiter möchte. Am Servo liegt es nicht, denn ich habe es mit mehreren Probiert und kann mir nicht vorstellen, das alle kaputt sind. Leider habe ich kein Oszilloskop um mir das Ausgangssignal mal anzuschauen, also wollte ich fragen, ob sich vielleicht einer von euch mal den Quellcode anschauen kann, und vielleicht den Fehler findet. Schonmal vielen Dank im Vorraus. MfG. Daniel