Ich möchte mit einem ATtiny12 eine LED ansteuern, die einen Text als Morsesignale ausgibt. Hat jemand ein passendes Programm dafür?
Die "Machbarkeitsstudie" wirft weitere Fragen auf: Immer denselben Text? Woher soll der Tiny12 die auszugebenden Texte holen? Wie willst du den Tiny12 bedienen? ...
Ja, es soll in einer Schleife immer wieder der gleiche Text ausge"blinkt" werden. Gut wäre, wenn die Länge von "dit" und "dah" und die Gebegeschwindigkeit im Programmcode über eine Variable einstellbar wären. Der Morsetext selbst soll ebenfalls im Programmcode stehen, in Ascii, z.B. als .db String.
Das ist realisierbar. Ich habe sowas zwar noch nicht gemacht, auch noch nicht tiefer darüber nachgedacht, ich würde erstmal so herangehen (die Funkamateure haben da sicher bessere Lösungen): Leg den Text mit .db in den Flash, ebenso eine Tabelle ASCII-Morsecode. Dazu würde sich anbieten, 5 Bit des Morsecodebytes (Morsecode hat m.E. maximal 5 Zeichen) als Code (Punkt=0, Strich=1 oder umgedreht) zu werten und die 3 übrigen Bit geben an, wieviele Zeichen der Morsecode hat. Alternativ zur Tabelle ASCII-Morsecode kannst du den Text gleich auf dem PC in Morsecode wandeln und in den Quelltext des Programms übernehmen, das spart Flash und Rechenarbeit. Im Programm richtest du dir einen Timer-Interrupt ein, in dem du Tasten entprellst (Einstellung des Ausgabetempos mittels Up/down-Tasten, durch die der Timer-Reload verändert wird) und die Softwarezähler für die Abarbeitung des Morsecodes gezählt werden. Für jeden Punkt setzt du den Softwaretimer auf einen definierten Wert+Pausenwert im Morsezeichen, für jeden Strich auf das Dreifache+Pausenwert im Morsezeichen, für jede Pause einen noch höheren Wert. Beim Ablauf des Zählers wird auf den Pausenwert innerhalb des Morsezeichens (und bei Gleichheit das Licht ausgemacht) und auf 0 getestet (nächstes Bit holen, oder Byte, falls Bitzähler abgelaufen ist, dann Pause senden). Das ist im Prinzip eine einfache Ablaufsteuerung, die komplett im Timer-Interrupt laufen kann. Ich halte es auch für machbar, den Timer-Interrupt mit einer Tonfrequenz laufen zu lassen und die Zeichenerzeugung über einen weiteren Softwareteiler (einstellbarer Reload wegen Ausgabetempo) vorzunehmen. Dann kannst du einen zweiten Ausgang mit der Tonfrequenz schalten und neben der LED auch einen Kopfhörer anschließen. Als Taktquelle reicht der interne RC-Oszillators des Tiny12, selbst ohne Calibration müsste die Rechenleistung ausreichen. Also, mach' dich ran... ...
http://www.rowalt.de/mc/avr/fox/fox01.htm Da mosrt der "Fuchs" zwar, aber du kannst das Programm vieleicht anpassen, das es statdessen ne LED leuchten läßt :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.