PIC18, Eingang abfragen

OP #1534108
Lesenswert?
• ▲
▼
Hallo Leute.

Ich sitze grade an einem Projekt und komme nicht weiter.

Kurze Einführung:

Ich habe eine Schaltung die IR-Signale sendet und empfängt.
Diese Signale werden Bi-Phase-kodiert und dann mit einer Träger-Frequenz 
von 48kHz übertragen.

aus
0  0  1  0  0  1  1   wird nach der Kodierung:
10 10 11 01 01 00 11

Jedes High-Signal hat dann einen Träger von 48 kHz mit einer PWM von 
33%.

0 -> 10

     ------------
    |            |
                  ----------

mit Träger (48kHz bei 4800 baud):

    -  -  -  -  -
     -- -- -- -- -----------


Jetzt zu meinem Problem:
Das empfangene Signal muss ich nun wieder in ein Datenpaket zurück 
wandeln. Auf meiner Platine habe ich einen PIC18F65J10 verwendet. Das 
IR-Signal wird vom Empfänger-Baustein invertiert ausgegeben.
=> Ständig HIGH bis auf die 1, die dann LOW werden.

Dieses Signal geht jetzt auf meinen PIC. Dort muss ich es am Eingang
( kein INT-Eingang ) pollen, das Ergebnis irgendwie auswerten und wieder 
in einen Datenstrom umwandeln. Anschließend wird es wieder dekodiert.


Ich hoffe Ihr könnt mir weiter helfen, da es ein ziemlich wichtiges 
Projekt ist und ich schon etwas über der Zeit bin.

Achso, programmiert wird der PIC in MP-Lab in C.


Vielen Dank im Voraus!


Gruß John
Gast #1534123
Lesenswert?
• ▲
▼
- Freilaufender timer (tmr0), clock 10 - 20 fache Trägerfrequenz
  (Dimensionierung z.B. mit  Pic Multicalc)

- Bei Flankenwechsel Timerregister speichern, mit vorigem Wert 
vergleichen


Rest ist wohl klar
OP #1534191
Lesenswert?
• ▲
▼
Oh,

erst mal vielen Dank für die schnelle Antwort.


Leider ist mir der Rest noch nicht so ganz klar.

Wenn ich die Abstände der Flankenwechsel habe weiß ich, dass bei kurzen 
Abständen (eben die der Träger-Frequenz) eine 1 übertragen wurde und bei 
Langen eine 0.

Ist das so richtig verstanden?



Falls jemand sowas schon mal in C programmiert hat und den Code zum 
Nachschauen rausgeben kann/mag wäre ich sehr dankbar.


Gruß John

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.