PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : servos stromlos machen und zurück



stevensen
19.05.2006, 21:38
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?

E-Fan
19.05.2006, 22:42
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. ;)

stevensen
19.05.2006, 23:16
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?

Hanni
19.05.2006, 23:22
schau dir mal im Datenblatt des Controllers die Register vom Timer 0 an und du wirst drauf kommen :D

stevensen
20.05.2006, 00:34
@ Hanni
ich fürchte ich komm nicht drauf, bin nicht gut im Datenblatt lesen. Kannst Du's mir verraten?

stevensen
20.05.2006, 00:34
ach ja ist übrigens ein avr mega 8

Hanni
20.05.2006, 13:06
Datenblatt (http://atmel.com/dyn/resources/prod_documents/doc2486.pdf) 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 ...

jeffrey
20.05.2006, 17:51
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

stevensen
22.05.2006, 11:15
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.