www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega128 und serielle Portabfrage


Autor: LuiDC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Habe einige Fragen bezüglich einer uC Programmierung mit einem 
ATmega128. Ich habe mir einen Handsender im ISM-Band bei 434MHZ 
aufgebaut und versuche jetzt mit einem dementsprechenden Sender die 
Codierte-Bitfolge am uC auszuwerten. Konkret würde ich vorerst einen 
Taktgeber mit 010101 (0xAA bzw. 0x55) kontinuierlich vorgeben.

Der Empfänger funktioniert und gibt einen TTL-Konfprmen pegel aus. Frage 
mich jetzt nur wie ich am besten das Signal an einem Port des ATmega 
auswerte, ohne das ganze Programm lahm zu legen. Hat eventuell einer 
schon irgend welche Erfahrungen gesammelt und wäre bereit sie mit mir zu 
teilen?


Die Fragen bei denen ich mir noch nicht im Klaren bin sind:

1. Abfrage mit Polling-Verfahren und dann immer eine Gewisse Zeit den 
Kanal auslesen?

2. Bestimmte Methoden sind für die UART vorgegeben, um Daten 
zwischenzuspeichern. Ist sowas auch für eine Bitübertragung am Port 
vorgesehen? So das ich dann beim Methoden-Aufruf den Zwischenspeicher 
auswerten kann?

Über jede Hilfestellung wäre ich schon dankbar.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte vor einiger Zeit mal mit AUREL Funkmodulen zu tun, da lief es 
ähnlich ab. Die hatten aber einen Pin, an dem ein Lowpegel erschien, 
wenn ein Träger erkannt wurde. So konnte ich per Interrupt an diesem Pin 
reagieren, wenn ein Sender aktiv wurde. Die Präambel mit 0x55 
(0-1-0-1..) war dort genauso als Erkennung drin, synchronisiert wurde 
nach zweimal 0xff (konstanter Highpegel für 8 bit).

Autor: LuiDC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hättest du den Code damit ich mir das mal anschauen kann?

Autor: Lui Dc (luigidc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein Aurel-Modul hast du denn konkret bei dir im Einsatz gehabt?

Autor: Thomas S. (thomass)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@LUIDC,

hatte mal ein Programm geschrieben der Funksignale von Sensoren 
ausertete.
Habe hierbei per Interruptroutine ständig mein Signal des Empfängers 
durchsucht.
Wenn nichts gesendet wurde hatte ich ein Rauschen dieses musste 
gefiltert werden.
Hatte das System eine Präambel erkannt wurden die Daten eingelesen und 
am Schluss auf mögliche Erkennungsfehler überprüft, war alles korrekt 
wurde gespeichert.
Bei mir war das Protokol immer 1111111111110Daten1Daten1Daten1check1 die 
Daten konnte unterschiedlich lang sein.
Du musst natürlich sicher sein das Du das Signel korrekt auswertest.
Ich zählte immer eine Variable hoch und runter mit jeder Pegeländerung.
Pegel HOCH VAR=1 --> Pegel RUNTER VAR=0 --> per Timer die Zeit zwischen 
HIGH und LOW ermitteln und Entscheiden ist es eine 1 oder 0 oder 
Schrott.

Thomas

Ich hatte es mit einem 80c817A gemacht der hatte einen Timer2 der die 
Zeit automatisch ermitteln konnte per Hardware.

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.