mikrocontroller.net

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


Autor: Protector (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!? :-(

Autor: Protector (Gast)
Datum:

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

Autor: blasphemie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Protector (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Protector (Gast)
Datum:

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

Antwort schreiben

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

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.