Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: 666 on Sep 02, 2010, 07:32 pm

Title: Zeitprobleme Serial.read
Post by: 666 on Sep 02, 2010, 07:32 pm
Hi,
folgende Problemstellung:

Ich schicke via C# 5 Werte zum µC speichere diese in ein Array, werte aus diesen die Prüfsumme (alle Werte addieren) und vergleiche diese mit einer zu Fuß eingegebenen Prüfsumme im Programm und schicke dann ok wenn Prüfsumme == Prüfsumme oder ein Nicht OK wenn nicht.

Soo, bei 5 Werten kein ding, alles Prima, 10 gehen auch.

Ab 30 krieg ich nicht OK.

Wo ist das Problem. (9600 baut beidseitig).

Danke
Matthias
Title: Re: Zeitprobleme Serial.read
Post by: uwefed on Sep 02, 2010, 10:37 pm
Hallo Oesema

Zuviele Leute glauben, daß es hier nur so von Hellsehern wimmelt.
Um etwas sagen zu können mußt Du schon den Sketch uns schicken.

Wie groß sind die Werte? Eine Summe ist kein gutes Mittel um eine Prüfsumme zu erzeugen; da mußt Du schon bitweise ExklusivOR von jedem Byte machen.

Grüße Uwe
Title: Re: Zeitprobleme Serial.read
Post by: Joghurt on Sep 03, 2010, 08:06 am
Bitweises XOR alleine ist auch nicht 100% gut, weil dann die Reihenfolge der Eingaben egal ist. Besser wäre ein XOR in Verbindung mit einem Bitweisen Shift auf einer Variable von passender Größe, sicherer wäre eine Rotation...

Wie mach ich denn beim Arduino eine Rotation...?
Title: Re: Zeitprobleme Serial.read
Post by: uwefed on Sep 03, 2010, 08:55 am
Ganz egal ist die Reihenfolge der Werte nicht, aber Du hast Recht, ist nicht 100% sicher Fehler zu finden.
Grüße Uwe
Title: Re: Zeitprobleme Serial.read
Post by: Joghurt on Sep 03, 2010, 08:58 am
Hm? Wenn ich Bytes direkt übereinander-XOR-e, ohne die Position der Bits zu verändern, dann ist die Reihenfolge doch egal, oder nicht...? Wo ist mein Denkfehler?
Title: Re: Zeitprobleme Serial.read
Post by: uwefed on Sep 03, 2010, 10:04 am
xor erkennt den Vertausch 2 Benachbarter  Bytes.
Grüße Uwe
Title: Re: Zeitprobleme Serial.read
Post by: Joghurt on Sep 03, 2010, 10:28 am
Ich verstehs immer noch nicht... :(

Hättest Du mal ein Beispiel...?
Title: Re: Zeitprobleme Serial.read
Post by: 666 on Sep 03, 2010, 06:59 pm
Hi,
ich verpacke eine 32 bit zahl in 4byte, lesen diese über serielle schnittstelle aus, packe sie durch eine for schleife in ein array.
hab den/die fehler gefunden.
der µc ist zu schnell
warte jetzt erst bis ich 4 byte im seriel buffer hab und inkrementiere die schleifenvariable wenn die forschleife durch ist.
mit der summierten prüfsumme hatte ich bis jetzt keine probleme, ich meine das sin 200 werte die ich prüfe, das müsste doch klar gehen oder?
Title: Re: Zeitprobleme Serial.read
Post by: 666 on Sep 03, 2010, 07:00 pm
Ich glaube nicht an hellseher :-)