Forum: Mikrocontroller und Digitale Elektronik Decodierer in C


von Johnny K. (johnny_knoxville)


Lesenswert?

Hallo

Ich stehe vor einem Problem.
Ich möchte einen Decodierer in C realisieren, und habe ihn auch schon 
programmiert (sofern er denn richtig funktioniert).

Die Erklärung dazu wie folgt:

Ein Codierprogramm sendet mir über RS232 die kodierte Nachricht (siehe 
Anhang A1, in diesem Fall lautet die Nachricht "0A" und die kodierte 
Nachricht 0x000000AA).

Nun lies ich das im Mikrocontroller ein und springe bei CR in das 
Hauptprogramm, aber dazu siehe Anhang!

Nur mein Problem ist, das Werk funktioniert ist, und ich weiß auch 
garnicht, wo der Fehler liegt! >.<

Der Decodierer soll die Nachricht decodieren, Fehler erkennen und 
korrigieren. Wenn keine Fehler während der Übertragung aufgetreten sind 
respektive die Fehler korrigiert werden konnten, gibt der Decodierer das 
Zeichen a bzw. b aus, konnte die Nachricht nicht dekodiert werden, gibt 
er c aus. Zum Ende möchte ich noch die gesamte eingegebene Nachricht 
ausgeben (bei keinem Übertragungsfehler), das funktioniert jedoch, aber 
es kommen nicht die richtigen Werte heraus!

grüße

von Peter (Gast)


Lesenswert?

irgendwie fehlen die Anhänge

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Nur mein Problem ist, das Werk funktioniert ist, und ich weiß auch
> garnicht, wo der Fehler liegt! >.<

Ohne Dir zu nahe treten zu wollen: Hä?

von Johnny K. (johnny_knoxville)


Angehängte Dateien:

Lesenswert?

anhänge

von Johnny K. (johnny_knoxville)


Lesenswert?

Rufus t. Firefly schrieb:
>> Nur mein Problem ist, das Werk funktioniert ist, und ich weiß auch
>> garnicht, wo der Fehler liegt! >.<

Nur mein Problem ist, das Werk funktioniert nicht, und ich weiß auch
garnicht, wo der Fehler liegt!

von Peter D. (peda)


Lesenswert?

Johnny Knot schrieb:
> Der Decodierer soll die Nachricht decodieren, Fehler erkennen und
> korrigieren.

Bei seriellen Daten kann man keine Fehler korrigieren.
Wenn die Verbindung gestört ist, gehen alle Bits unter, auch das 
Startbit und damit die Synchronisation.


Fehler korrigieren kann man nur Daten, die parallel vorliegen, z.B. auf 
einer CD.


Peter

von Peter (Gast)


Lesenswert?

das sieht schon mal sehr fragwürdig aus

 if(exwert = 0)

von Johnny K. (johnny_knoxville)


Lesenswert?

Peter Dannegger schrieb:
> Bei seriellen Daten kann man keine Fehler korrigieren.
> Wenn die Verbindung gestört ist, gehen alle Bits unter, auch das
> Startbit und damit die Synchronisation.

Die Fehler werden in einem Programm simuliert, siehe Anhang.

von Johnny K. (johnny_knoxville)


Lesenswert?

Peter schrieb:
> if(exwert = 0)

oh, eher ==

von Johnny K. (johnny_knoxville)


Lesenswert?

Niemand eine Idee? Oder guckt ihr noch? :-)

von Peter D. (peda)


Lesenswert?

Wie wärs mit ner verbalen Beschreibung, was das Programm machen soll.
Es soll was codiert werden, nach welcher Vorschrift?
Es sollen Fehler korrigiert werden, wie?


Warum müssen Leute immer Zeilen schinden, man scrollt sich ja tot.
Betreibst Du Deinen Monitor um 90° gedreht?
1
if(exwert == 1 || 2 || 4 || 8)
macht das gleiche wie:
1
if(1)



Peter

von Johnny K. (johnny_knoxville)


Lesenswert?

Peter Dannegger schrieb:
> Es soll was codiert werden, nach welcher Vorschrift?

Decodieren!!

> Fehler korrigiert werden

Linearer Blockcode mit Hamming Distanz 4

von Udo R. S. (Gast)


Lesenswert?

Johnny Knot schrieb:
> Decodieren!!

WAS!!!!
von ASCII nach binär, von Russisch nach Banthu oder wie.
oder von EBCDIC nach Bayrisch????

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.