Forum: Mikrocontroller und Digitale Elektronik Modellbau Empfänger Signal lesen


von Protector (Gast)


Angehängte Dateien:

Lesenswert?

Hallo. Ich bin langsam am Verzweifeln. Habe vor einen Modellbauempfänger
auszulesen mit einem ATtiny26. Da habe ich mir gedacht, dass ich das mit
Interrupts löse. Wenn ich steigende Flanke habe startet ein Interupt,
der wiederrum einen Timer startet. Dieser zählt die Impulslänge bis der
Pegel wieder auf Low geht. Nun wollte ich eine LED leuchten lassen wenn
die Impulslänge größer als ein def. Wert ist. Leider funktioniert das
ganze überhaupt nicht. Ich habe bestimmt einen dicken Fehler in der
Software oder ich habe mir da logisch etwas nicht verstanden. Den
Pluspol vom Empfänger habe ich an VCC(rot), GND(schwarz) an GND und die
Datenleitung(Gelb) an INT0. Ist diese Anschlussbelegung richtig.
Vielleicht könnte sich einer mal den Quelltext im Anhang anschauen und
auf grobe Fehler untersuchen... habe schon gegoogelt und hier im Forum
nachgeschaut. Das Problem ist einfach das die LED überhaupt nicht
reagiert und ich nicht mehr weiß wo ich den Fehler suchen soll, ob in
der Hard- oder Software!? :-(

von Protector (Gast)


Lesenswert?

Achso. Der Controller läuft mit 8Mhz. Vielleicht stimmt ja einfach das
Timing nicht. Ich weiß es nicht!?

von blasphemie (Gast)


Lesenswert?

Du könntest das ganze auch in C/C++ programmieren, was unter Umständen
vllt etwas leichter ist. Da gibt es sogar eine Funktion, in welcher auf
einen bestimmten Zustand gewartet wird. Sie lautet:
loop_until_bit_is_set(WARTEPIN, WARTEBIT);

Schau einfach mal ins AVR-GCC Tutorial...

von Protector (Gast)


Lesenswert?

Ja es ist bestimmt leichter. Ich würde aber trotzdem gerne bei Assembler
bleiben, weil ich noch einige andere Dinge damit vorhabe, die
Zeitkritischer sind. Ich wollte einfach nur ein Programm schreiben,
dass einen Empfänger ausliest und eine LED leuchten lässt, wenn die
Impulsdauer < 1,5ms ist und die LED aus ist, wenn die >1,5ms ist.

von Protector (Gast)


Lesenswert?

Mein Code war in Ordnung. Hatte einen Verdrahtungsfehler. Trotzdem danke
fürs lesen ;-)

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
Noch kein Account? Hier anmelden.