Forum: Mikrocontroller und Digitale Elektronik AtMega8 + Manchester DutyCycle


von R. L. (leviathanx)


Angehängte Dateien:

Lesenswert?

Hallo,

erstmal bin neu hier.. also net gleich fressen ;)
Ich hab mir schon die Topics in Bezug auf das Thema gelesen und so 
wirklich geholfen haben die auch net. Google war auch kein Superorakel

Ich möchte folgendes erreichen: einen digitalen Sensor mit dem ZacWire 
Protokoll auslesen; der µC ist ein ATMega 8515L

Definiert ist:

steigende Flanke nach 50% Zeitfenster entspricht Start Bit
steigende Flanke nach 25% Zeitfenster entspricht einer logischen eins
steigende Flanke nach 75% zeitfenster entspricht einer logischen null

Kurz um: das angehängte Programm macht den Hauptbrocken schonmal ohne 
Probleme.

- reagiert auf die fallende Flanke
- startet einen timer
- reagiert auf die steigende Flanke
- stoppt den timer

-> das Zeitfenster für einen Impuls wird richtig gemessen (mit nem Oszi 
überprüft (LED toggler))

Ich sag's gleich vorweg, ich programmier über eMail hinweg. Ich hab die 
Hardware nicht und mein Kumpel kann nicht programmieren und kennt sich 
nicht mit Entwicklungsumgebungen aus (und zwischen uns liegen gut 600 km 
Land).

Mein riesen Problem jetzt:

wie bekomm ich dies Bitstellen richtig raus. Zwei Ansätze habe ich schon 
versucht - so gut wie kein Erfolg.

Ansatz eins: den Timer mit etwas weniger als der halben Zeit 
initialisiert und dann den Wert an PIND2 ausgelesen, wenn der Compare 
IRQ getriggert wird. War irgenwdie nichts [..]

Ansatz zwei (momentan in der angehängten Datei so mal implementiert):

* nach der Messung wird der Timer gecleared
* wir warten die in der Spec beschriebenen neun fallenden Flanken
* ab der 10ten Flanke wird umgeschaltet auf steigende Flanke und der 
Timer gestartet
* wenn die steigende Flanke kommt, wird der Timer gestoppt und wieder 
auf fallende Flanke umgeschaltet (des klappt auch irgendwie ganz gut)
* anhand des Wertes des Timers und des zwischengespeicherten Wertes soll 
erkannt werden ob es eine 0 oder 1 ist

irgendwie klappt das leider nicht...

Ich kenn mich auch ehrlich nur mit den PICs so richtig aus [..]

Sind meine Ansätze im Grunde richtig oder wo mach ich hier noch fatale 
Fehler ?

Herauskommen soll: ein Bit Array welches auf eine 0-7 LED Leiste die 
Bits entsprechend ausgibt.
Ausgabe kein Ding - irgenwdie ist die negiert (0 entspricht ein, 1 
entspricht aus) was mich total verwirrt
Das Bit-Array wäre auch kein Problem - mir geht's echt nur um die 0/1 
Erkennung

Also wäre echt super für kreative und hilfreiche Antworten..

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.