mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18, Eingang abfragen


Autor: John K. (johnk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast XIV (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: John K. (johnk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: John K. (johnk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab ein Beispiel zum Abfragen einer angelegten Frequenz gefunden.
( siehe Anhang! )

Jetzt stellt sich noch immer die Frage, wie ich daraus meine Bits wieder 
bekomme.

Autor: John K. (johnk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir niemand helfen?

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.