Funksteckdosen REV, C-Programm für Microcontroller

Gast #1597523
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.
Gast #1598002
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!
Angehängte Dateien:
#1599637
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:
1
while (noch_bits_zu_senden) {
2
  pin = high;
3
  wait (250µs);
4
  if (bit == 0)
5
    pin = low;
6
  wait (750µs);
7
  pin = low;
8
  wait (250µs);
9
}

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

VG
mario
Gast #1601136
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/downloadfile.asp?mydownload=PT2262.pdf

Gruß
Joachim

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren