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.
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).
Was für ein Aurel-Modul hast du denn konkret bei dir im Einsatz gehabt?
@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.
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.