Also, wenn ich das richtig sehe, dann ändert TCCR1A = 0 nicht die Frequenz, denn dann ist nur noch WGM13 gesetzt und das bedeutet Mode 8.
Zu langsam, das hat SlyD inzwischen auch schon bemerkt.
Druckbare Version
Also, wenn ich das richtig sehe, dann ändert TCCR1A = 0 nicht die Frequenz, denn dann ist nur noch WGM13 gesetzt und das bedeutet Mode 8.
Zu langsam, das hat SlyD inzwischen auch schon bemerkt.
Ja wie in meinem zweiten EDIT zu lesen, ist hier ja die Situation so, das im Timer1 Interrupt, die Einstellungen von Timer1 geändert werden. Das war vorher ja aber nicht so, da wurde im davon völlig unabhängigen Timer0 die Einstellung vom Timer1 geändert. Müsste man mal testen wie sich das auswirkt.Zitat:
P.S.: Das sollte auch so sein, denn sonst würden sich meine Servos nicht drehen, wenn der Antrieb steht...
EDIT 33435: Immer diese ganze Beitragseditiererei, welch Verwirrung ;)
Man sollte eine Funktion im Forum haben die einem mitteilt das jemand gerade seinen Beitrag editiert während man eine Antwort schreibt ;)
Sorry. Ich musste das wieder entfernen, weil ich nicht nachweisen kann, dass die mit der OVL-ISR angesteuerten Servos sich auch mit aktiven Antrieben richtig verhalten. Ansonsten hat die Edit-Funktion auch meine WGM13-Recherche unnötig gemacht:
"(EDIT: Natürlich nicht normal Modus sondern einer der anderen ich hatte vergessen das WGM13 ja im TCCR1B gesetzt ist)"
P.S.: Es ist für mich ein schmaler Grad zwischen "Helfen" und "Sinn des Projekts". Deshalb bin ich in diesem Thread etwas zögerlich.
*lach .. @SlyD.. naja bisher kriegen wir es ja hin uns auch trotz Edits zu verständigen.
@Radbruch ... dadurch das Mode 8 in TCCR1B erhalten wird, laufen deine Servos auch beim abschalten des TCCR1A = 0 .. Richtig, seh ich auch so. Ein glücklicher Zufall.
Denn ob das ne schöne Methode mit TCCR1A = 0 wärend einer Fahrt ist.. da kann man sicher drüber streiten. Ich bin aber kein Experte für Motor-Regelungen.
Nun gut es funktioniert aber und nun auch mit Timer1. Für alle die einen freien Timer0 brauchen eine gute Nachricht. Danke noch mal.
LG Rolf
PS: @Radbruch, Sinn des Projekts... ist hier nicht RTOS sondern Timer0 bzw. einen Timer in der RP6Lib frei zu kriegen und das wird auch für andere interssant sein. Da lege ich in meiner Darstellung des Problems auch Wert und Gewicht drauf. Es wäre Schade wenn das "Glaubensfragen" sind.. es geht für mich rein um Aufgabenstellungen und bestmögliche Lösungen.
Nachtrag: Evtl. muss man die Funktion vom "Bremspedal TCCR1A" mit einer Variable nachbilden wenn man nicht möchte, das TCCR1A=0 beschrieben wird. Meine Lösung, die Zuweisungen zu entfernen führt bei der RP6Lib dazu, das nach einem Motorbefehl nicht mehr abgebremst wird. Dazu eine Var myTCCR1A deklarieren und an allen Fundstellen ausser im Init ersetzen. Oder man benutzt #define CHANGE_DIRECTION_FAST und verzichtet gänzlich auf das Bremspedal (Warnung bezüglich Lebensdauer der Zahnräder beachten, für rumprobieren ist das aber ok).
Yep, dem stimme ich zu. Wäre sicherlich eine gute Sache.Zitat:
Timer0 bzw. einen Timer in der RP6Lib frei zu kriegen und das wird auch für andere interssant sein.
MfG,
SlyD