www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom und IrDA


Autor: Niel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte mir eine eigene RCU für den VDR (www.cadsoft.de/vdr) mit
einem AT90S2313 bauen.

Alles funktioniert soweit, nur die Kommunikation zwischen PC und dem µC
nicht, da der VDR mit dem IrDA-Protokoll zu arbeiten scheint.

Die Befehle werden zwischen PC und µC über dein IrDA-Port übertragen.
DAfür besitzt Bascom aber keine Routinen. In C sieht das für einen PIC
so aus:

// --- IrDA interface:

char ch;
bool ByteReceived = FALSE;

#int_rb
void GetIrdaByte(void)
{
  int i;

  if (port_b.rxd) {
     ch = 0x00;
     for (i = 8; i--;) {
         // detect one bit:
         delay_us(99); // actually it's 104us, but the rest is loop
overhead
         ch >>= 1;
         if (!port_b.rxd)
            ch |= 0x80; // lsb comes in first
         }
     delay_us(100); // wait for stop bit
     if (!port_b.rxd)  // must be '1' (i.e. low signal)
        ByteReceived = TRUE;
     }
}

void PutIrdaByte(char ch)
{
  int i;

  disable_interrupts(RB_CHANGE);
  port_b.txd = 1;
  delay_us(20); // start bit
  port_b.txd = 0;
  for (i = 8; i--;) {
      delay_us(77); // actually it's 84us, but the rest is loop
overhead
      port_b.txd = ~ch & 1;
      delay_us(20);
      port_b.txd = 0;
      ch >>= 1;
      }
  enable_interrupts(RB_CHANGE);
  delay_us(124); // stop bit
}


Kann das jemand auf Bascom übertragen oder mir einen Tipp geben?

Ich habe die genaue Spezifikation des Protokolls mit low/high und
Zeitangaben nirgends gefunden.

Danke für Eure Hilfe im voraus.

Grüße

Niel

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der VDR muss kein IrDA nutzen, dank LIRC kennt der auch normalen
RC5-Code. Dazu muss ein Infrarotempfänger an der seriellen
Schnittstelle des VDR-PCs angeschlossen werden oder aber ein zur
Sat-Karte gehörender Infrarotempfänger (wie bei einer Hauppauge
Nexus-S) verwendet werden.

Ich vermute jedenfalls mal, daß "RCU" ein Akronym für Fernbedienung
sein soll ...

Autor: Niel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rufus!

RCU ist kein Akronym für Fernbedienung. RCU ist eine von Klaus
Schmidinger entwickelte Schaltung mit IR-Empfänger und
7-Segment-Anzeige.

Diese kommuniziert auf Basis der IrDA-Timings mit dem VDR.

Die Schaltung habe ich auf einen AVR übertragen und um eine
Wake-Up-Funktion ergänzt.

Lirc möchte ich nicht benutzen, sondern die eingebauten Funktionen von
VDR(REMOTE=RCU).

Vielleicht hat jemand noch Infos darüber?

Grüße

Niel

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.