Hi,
ich wollte gerade meinen Brushlessregler anschliessen. Dafür habe ich
mir den Code aus eurem Servoartikel geholt und den für meinen Atmega324p
mit 16 MHz abgeändert. Allerdings gibt der Regler nur Beeptöne im
Abstand von 2 Sekudnen aus (Fehlercode: falsches Empfängersignal)
Könnt ihr euch mal den Code ansehen?
PinA4-A7 sind Taster zur Steuerung
Mein Signal greife ich ja am Pin PD5 (OC1A) ab, oder?
Habe leider kein Oszi zum prüfen
Mhm, das hilft auch nicht....
Ohne Oszi weiß ich auch nicht, wie das Signal aussieht.
Oder habe ich einen Fehler bei meinem Timing und die 16 MHz falsch in
die 20ms umgerechnet?
Hat dein Regler vielleicht einen Anlaufschutz oder eine
Einstellprozedur, die jedes Mal nach dem Start ausgeführt werden muss?
Sowas gibt es durchaus häufig. Am besten, du testet dein Programm
erstmal mit einem stinknormalen Billigservo(z.B. Conrad, 5€). wenn dein
Regler eine Anfangssequenz braucht, kannst du diese ja einprogrammieren,
wenn du sicher bist, dass der Rest funktioniert.
LG, Björn
Hi,
Jan schrieb:> OCR1A = 289; // Neutralposition
wäre bei 16MHz und 1024 schonmal nicht Neutralposition sondern 24 sollte
es sein.
Jan schrieb:> _delay_ms(50)
das sollten eher 20ms sein. Das ist zwar unkritisch aber eher im Bereich
von gut 15 bis knapp 30ms und nicht 50ms. Mit 50Hz verwechselt? ;-)
Ausserdem würde ich Prescaler 8 nehmen, das gibt schön feine Auflösung,
passt perfekt für Timer1. Wenn Du das so grob auflösen willst mit 64µs
kannst Du auch Timer0 nehmen.
Gruß,
Norbert
DAs mit dem Anlaufschutz habe ich bedacht, ich muss erstmal vollgas
geben, auf eine Rückmeldung warten und dann minimum und wieder auf eine
Rückmeldung warten. So stelle ich die Gaswege ein.
Danach mit Minimum starten und auf eine Startmelodie warten.
Allerdings bekomme ich immer nur das Signal für falsches Signal.
nochmal neu mit einem Prescaler von 128, damit komme ich auf die Zeiten
vom Beispielcode
Achja, die Neutralposition bruache ich doch nicht. Ich kann doch nur in
eine Richtung drehen
Jan schrieb:> Ja, steht ja auf dem Quarz drauf
Nur weil du einen 16MHz Quarz mit dem µC verbunden hast muss dieser
nicht automatisch auch mit 16MHz arbeiten.
Bei Vollgas messe ich eine Spannung von ca 0,25V und bei Minimum 0,200V.
Das passt ja auch nicht so richtig.
2ms sind doch 10% und dann müsste ich doch 0,5V haben (Vollgas)
Hi,
ich kann ja kein C aber Du kannst Doch nicht andauernd an OCR1A mit
wilden Werten rumschrauben. Das wird ständig übernommen und nicht erst
in der ISR.
In Bascom würde das jeder sehen aber in C ist es ja schon eine Leistung
das zu lesen. Brrrr....
Gruß,
Norbert
Norbert S. schrieb:> ich kann ja kein C aber Du kannst Doch nicht andauernd an OCR1A mit> wilden Werten rumschrauben. Das wird ständig übernommen und nicht erst> in der ISR.
Klar, so soll es ja auch sein. Das Grundgerüst kommt aus dem Servo
Tutorial. Wahrscheinlich schon oft benutzt
Rolf Magnus schrieb:> Aber du weißt, daß man dem µC erst sagen muß, daß er den Quarz auch> benutzen soll?
Natürlich, da macht euch mal keine Sorgen, das ist korrekt
Trotzdem Danke für eure weiteren Hinweise
Jan schrieb:>> Aber du weißt, daß man dem µC erst sagen muß, daß er den Quarz auch>> benutzen soll?>> Natürlich, da macht euch mal keine Sorgen, das ist korrekt
Wenn wir für jedesmal, wenn wir diesen Satz gehört haben einen Euro
kriegen würden und es dann doch nicht gestimmt hat, dann wären viele
hier reiche Männer.
Hast du überprüft ob der µC mit 16MHz läuft? Wie hast du es überprüft?
Ausserdem ist weiter oben ein wie ich meine wirklich guter Vorschlag
gekommen: Teste das alles erst mal mit einem Servo. Bei einem Servo hast
du eine viel bessere Rückmeldung, ob deine Pulsgenerierung stimmt, als
einfach nur ein paar Piepser. Wenn das Servo sauber stellt, dann passt
es und du kannst dir dann ansehen, ob deine Endwerte hinkommen. Und
nachdem dann beides stimmt, wird auch der Regler damit zufrieden sein.
Aber momentan stocherst du nur im Nebel und hoffst, dass Code den du
irgendwo zusammengeklaut hast, das alles irgendwie schon richten wird.
Karl Heinz Buchegger schrieb:> Hast du überprüft ob der µC mit 16MHz läuft? Wie hast du es überprüft?
Habe es extra nochmal mit einem Timer überprüft, der jede Sekunde eine
Variable hochzählt und die auf einem Display anzeigt.
Karl Heinz Buchegger schrieb:> Teste das alles erst mal mit einem Servo.
Würde ich wirklich gerne, habe nur keines da. Bestellen dauert ein paar
Tage und kostet für ein Servo auch wieder zu viel Versand.
Zur Not kann ich in 1 Woche wieder an ein Oszi kommen. Das würde mir
auch helfen.