Hier ein nützliches Programm zum Auslesen eines
(Modellbau-)Empfängersignals via Timer-Capture und Ausgabe des
gemessenen Wertes an ein Servo. Diese Funktionen sind
Interrupt-gesteuert!
Zusätzlich erfolgt die Ausgabe des gemessenen Wertes an die Serielle
Schnittstelle als Hex-Zahl.
Das Programm ist für einen 4433 mit 4Mhz geschrieben. Ein Kanal des
Emfängers wird an PIN 14 (ICP) angeschlossen. Das Servo kommt an einen
Pin von Port D.
Im Moment wird der gemessene Wert 1:1 auf das Servo gegeben. an der
gekennzeichneten Stelle in 'main' kann aber beliebig gemischt, geregelt
etc. werden ...
Bitte gebt Feedback, ob sowas nützlich ist ...
UBoot-Stocki
Jo, mit dem ganzen Servo-Zeugs experimentier ich auch gerade rum.
allerdings in C (avrgcc).
Mit asm hab ich nicht viel am Hut, deshalb kann ich nichts mit anfangen,
sorry!
Aber kannst Du ja nichts dafür, ist ja mein Problem....
Trotzdem weiter so..
Gruß Steffen
Ja. Es besteht Interesse an einer erweiterten/verbesserten Version.
Baust du U-Boote?
wenn ja mal eine OFF-TOPIC-frage!
Wo gibt es ein Forum für u-boote?
Du hats gefragt, ob interesse besteht: auf jeden fall!
Ich wollte eigentlich genau das gleiche machen, ein programm, welches
ein PWM signal für rc-motorstellen generiert. aber da hab ich grad
deins gefunden, und mal angucken schadet ja nie ;-). aber bisher läufts
nicht so richtig auf meinem mega8 an den ich mal schnell einen
empfänger und nen servo geschustert hab.
naja, ich wühl mich erstmal durch die programmstruktur.
Tschö
Matthias
Hi,
über Weihnachten habe ich Zeit und stelle die Variante für meine
X-Ruder-Steuerung ins Forum. Ein Atmel bekommt 3 Empfängersignale und
mischt zum X-Ruder das Gas auf 4 Servos
(http://uboot-stocki.bei.t-online.de/mini-version2.jpg).
Bei Fragen: uboot-stocki@t-online.de
Gruß
UBoot-Stocki
Hi,
auf speziellen Wunsch ;-) anbei also meine aktuellste Variante des
Servo-Programms. Ich verwende das Programm zum Steuern eines
Modell-Ubootes. Drei Kanäle eines Empfängers werden über den Controller
auf 4 Servos gemischt. Diese Aufgabe übernimmt ein
ATTiny26L-Controller, der für diese Aufgabe besonders geeignet ist.
Dieser Baustein besitzt eine "Pin Change Interrupt" auf 11 Pins. Kein
anderer Atmel-Controller kann das (Siehe Seite 36 des Datenblatts
http://www.atmel.com/dyn/resources/prod_documents/doc1477.pdf). Hoffe
mal, dass die Dokumentation des Programms ausreicht. Fragen bitte hier
im Forum - Mails bringen niemand weiter ...
Gruß
UBoot-Stocki
Nur ergaenzend:
>...Dieser Baustein besitzt eine "Pin Change Interrupt" auf 11 Pins.> Kein anderer Atmel-Controller kann das...
Falls viele "Pin Change Interrupt"-Pins gebraucht werden und dazu
auch noch mehr Speicher oder Hardware-Funktionen als der ATtiny26
bietet: ATmega169
Ok, Ok,
was ich damit meinte: Kein Chip wie z.B. der Mega8 oder so (also mit
weniger als 40 Pins) kann das. Ich weiss, der Tiny15 hat auch
Pin-Change Interrupt - da reichen aber die Pins nicht. Drei Eingänge, 4
Ausgänge puls Vcc und Masse macht 9 ... Er hat aber nur 8 Pins.
Daher kam für mich nur der Tiny26 in Frage. Finde dass das ein ganz
praktischer Baustein ist. Obendrein benötigt er keinen Quarz. In meinem
Boot ist echt nur der Chip drin und ein 5Volt Regler, da das BEC des
Fahrtreglers die 4 Servos nicht packte ...
Gruß
UBoot-Stocki
Hier iss Feedback..
ich habe leider keinen Tiny 26, sondern nur einen Mega8.
Ich will die Empfängersignale nacheinander an einem Pin auflaufen
lassen, (Layout war schon fertig) wann handlest du die Auswertung? in
der Pause zwischen dem letzten Kanalimpuls und dem
Start/Synchronimpuls, oder machst Du nach jedem Paket den nächsten
Kanal?
Gruß
AxelR.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang