mikrocontroller.net

Forum: HF, Funk und Felder Funksteckdosen REV, C-Programm für Microcontroller


Autor: Martin Remplbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte mit meinen Mikrocontroller (ATMEL T89C51RD2) Funksteckdosen 
ansteuern.
Hab den Sender von der Fernbedinung ausgebaut.
Meine Frage ist welches Signal ich vom Mikrocontroller an den Sender 
schicken muss bzw. wie ich das Programm schreibe.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da muss man doch etwas mehr über deinen Sender wissen. Z. B. wie die 
Tasten des Senders "funktionieren" . Wenn eine Taste einfach GND 
durchschaltet zum Senden, dann könntest du u. U. deinen Controller mit 
der Senderelektronik "verheiraten" und der Controller besorgt das 
Durchschalten von GND.

Autor: Martin Remplbauer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich meine das so: Ich habe das Signal ausgelesen, dass er über den 
Sender sendet, und dass wiederum die Funksteckdose empfängt. (Bild ist 
im Anhang). Leider weis ich jetzt nicht genau wie ich solch ein Signal 
generieren kann. Sollte solch ein Signal mit warteschleifen realisiert 
werden oder doch eher mit Timer? wobei ich nicht wirklich weis wie der 
Timer einzubinden ist bzw. wie er genau funktioniert!

Autor: Mario G. (suicided)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jede steigende Flanke wird dem Sender ein neues Bit signalisieren. Ist 
"High-Zeit" dann ca. 1 ms (jedenfalls länger als 500 µs) ist 'ne "1", 
wenn nicht, dann isses 'ne "0". Zwischen den einzelnen Bits gibts 'ne 
Pause von 250 µs.
Wenn der Controller sonst nichts anderes zu tun hat, kann man das 
durchaus mit warteschleifen realisieren. Dann ist aber ein wenig 
Zeittuning erforderlich um das "Protokoll" einzuhalten. Mit Timern geht 
das natürlich auch - aber nicht ganz so einfach. Du musst dann mit 
Interrupts arbeiten, was ein wenig Einlesen erfordert.

Pseudocode:
while (noch_bits_zu_senden) {
  pin = high;
  wait (250µs);
  if (bit == 0)
    pin = low;
  wait (750µs);
  pin = low;
  wait (250µs);
}

Die Frage ist unter "µC & Elektronik" vielleicht besser aufgehoben.

VG
mario

Autor: JoachimB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Remplbauer schrieb:
> Meine Frage ist welches Signal ich vom Mikrocontroller an den Sender
> schicken muss bzw. wie ich das Programm schreibe.

das Signal, dass der Mikrocontroller an den Sender schicken muss, ist 
hier näher beschrieben:
http://avr.börke.de/Funksteckdosen.htm

Gruß
Joachim

Autor: JoachimB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Remplbauer schrieb:
> Leider weis ich jetzt nicht genau wie ich solch ein Signal
> generieren kann. Sollte solch ein Signal mit warteschleifen realisiert
> werden oder doch eher mit Timer? wobei ich nicht wirklich weis wie der
> Timer einzubinden ist bzw. wie er genau funktioniert!

Wenn der Controller nur das Sendesignal erzeugt und dabei nicht von 
einem anderen Interrupt gestört wird, dann ist eine Warteschleife eine 
einfach zu realisierende Sache.

Ich würde eine Warteschleife für das kürzeste Signal schreiben.
Der kurze Puls und die kurze Pause werden dann mit einem einmaligen 
Schleifendurchlauf erzeugt. Das lange Signal, sowohl Puls als auch 
Pause, ist dreimal so lang. Die Pause zwischen zwei Datenpaketen ist 31 
mal so lang.

Weitere Details findest Du im IC-Datenblatt:
http://www.princeton.com.tw/downloadprocess/downlo...

Gruß
Joachim

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.