-
-
servos stromlos machen und zurück
hi an alle,
wie Titel beschrieben, ich habe 2 Servos die sollen alle paar Stunden mal kurz was bewegen und dann wieder stillhalten ohne ein Haltmoment zu haben, also stromlos sein. Stromlos bekomme ich sie wenn ich den Timer0 stoppe, aber wie kann ich den Strom wieder einschalten? "Start Timer0" will nicht funzen. Wenn es per interrupt disable/enable mache gehts, aber den Interupt brauche ich ja für andere Dinge. Was mache ich falsch oder gibt es einen anderen Weg?
-
Erfahrener Benutzer
Fleißiges Mitglied
Versuchs doch mal mit ner If-then-Else Schleife. In dieser kannst Du die Bedingung festlegen die den Timer starten oder stoppen soll.
Am Rande sei erwähnt das der Servo auch bei abgeschalteten Steuersignal nicht stromlos ist sondern der Regelkreis lediglich ausser Funktion ist.
-
hi,
also mit Bedingungen habe ich es natürlich gemacht. Momentan gebe ich per Usart Werte (von 1 bis 180) ein, auf die sich der Servo auch einstellt. Wenn ich jetzt z.B 300 eingebe, soll das Signaleingang stromlos sein ( wie Du richtig bemerkt hast). Der Servo hat also kein Haltemoment und lässt sich freigewegen, soweit so gut. Wenn ich 400 eingebe soll das Steuersignal wieder kommen, der Servo soll die Stellung also halten. Wie ich schrieb geht die ganze Sache wenn ich die globalen Interrupts ein und ausschalte. Das wäre aber schlecht. In der Hilfe von Bascom steht, dass Timer0 für die Servos zuständig ist, ich dachte also wenn Timer0 ein und ausschalte, wäre es das.
Timer0 mit "Stop Timer0" ausschalten geht, Timer0 mit "Start Timer0" wieder einschalten geh nicht! Gibt es noch einen anderen Befehl den Timer0 wieder zu starten?
-
Erfahrener Benutzer
Roboter Experte
schau dir mal im Datenblatt des Controllers die Register vom Timer 0 an und du wirst drauf kommen
-
@ Hanni
ich fürchte ich komm nicht drauf, bin nicht gut im Datenblatt lesen. Kannst Du's mir verraten?
-
ach ja ist übrigens ein AVR mega 8
-
Erfahrener Benutzer
Roboter Experte
Datenblatt Seite 72 oben.
Den Timer könnte man z.B. anhalten indem man:
den Inhalt des Registers TCCR0 sichert und anschließend die 3 unteren Bits auf 0 setzt.
Zum Starten müsste man dann lediglich die Sicherung zurückschreiben ....
Aber wie gesagt, das steht auch im Datenblatt ...
-
Erfahrener Benutzer
Roboter Experte
hi,
du kannst doch nur den timer0 mit enable/disable timer0 beeinflussen. das sollte eigentlich funktinoieren. oder du stellst dier versorgungsspüannung der Servos ab, dann brauchen sie auch wirklich keinen strom.
mfg jeffrey
-
hi nochmal,
also mit den den Registern funzt es !! Warum dasmit Disable/enable Timer oder Start/stop nicht geht ist mir ein Rätsel. Aber die Erkenntniss kommt vielleicht noch. Also vielen Dank für die Tipps.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen