Forum: Mikrocontroller und Digitale Elektronik uip Daten von PC empfangen Problem


von Peter G. (Gast)


Lesenswert?

Hallo,

ich habe ein kleines Problem.
Ich möchte von einem PC mehrere Bytes an einen AVR verschicken, auf 
welchem der uip-Stack läuft. Die Schaltung und der uip-Stack 
funktioniert fehlerfrei, denn eine Test-HTML-Seite kann ich abrufen.
Um Bytes zu verschicken, verwende ich auf der Desktopseite folgenden 
Code.
1
    QByteArray data;
2
    data.clear();
3
    data[0] = 2;
4
    data[1] = 4;
5
    data[2] = 50;
6
    socket->write(data);
Wenn ich mir diese Daten mit Wireshark ansehe, so werden 3 Byte 
verschickt. In Wireshark sind die Bytes hex-codiert, aber ich nehme an, 
dass es damit zusammenhängt, wie Wireshark die Daten darstellt und nicht 
mit der Formatierung im Netzwerkfram zutun hat.

Auf Seiten des Mikrocontrollers wird folgender Code verwenet.
1
void IncommingPwmData()
2
{
3
  if (uip_newdata())
4
  {
5
    uint8_t* networkBuffer = uip_appdata;
6
    byteA = networkBuffer[0];
7
    byteB = networkBuffer[1];
8
    byteC = networkBuffer[2];
9
  }
10
}

Der Code hinter dem "if(uip_newdata)" wird auch erreicht. Das habe ich 
geprüft, in dem ich dann meine Test-HTML-Seite manipuliert habe. Nur 
leider erhalte ich für die drei Bytes andere Werte, als ich abgeschickt 
habe.

Hat jemand eine Ahnung, wo das Problem liegen könnte? Ich bin gerade 
ziemlich hilflos.

Viele Grüße,

Peter
von Peter G. (Gast)


Lesenswert?

PS: bei dem Code auf der PC-Seite handelt es sich aktuell um C++ mit QT
von Peter G. (Gast)


Lesenswert?

Ok, hat sich gegessen.
Der Code ist fehlerfrei und funktioniert ganz wunderbar.
Der Fehler lag in der Ausgaberoutine. Dort war die Reihenfolge der Bytes 
A C B ....
Eine Nacht drüber schlafen war das beste Debugging. :-)
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.