byte ausgeben

Gast #260954
Lesenswert?
• ▲
▼
wie man die bytes extrahiert ist mir nun auch klar.
ich habe dann die hexzahlen z.B F4 A1 ... auf den seriellen Port
geschickt.
Das ist aber falsch, ich muß das byte senden und nicht einen string mit
F4, ich weiß nicht wie ich es  besser erklären soll sorry.
#260957
Lesenswert?
• ▲
▼
Ja dann sende sie halt ohne dass Du Dir mit sprintf
eine String Repraesentierung generieren laesst.
Ist alles im anderen Beitrag enthalten. zb. gleich
die erste Antwort von Jens macht genau das:
  Den unsigned long in lauter Bytes zerpfluecken
  und jedes Byte auf die Reise bringen.

Du musst dich nur noch mit dem Empfaenger absprechen
in welcher Reihenfolge er die Bytes haben will.
Gast #260958
Lesenswert?
• ▲
▼
Vielleicht reden wir aneinander vorbei :

Ein byte hat einen Zahlenwert zwischen 0 und 255 oder 0x00 bis 0xFF.
Wenn du von einem String sprichst dann schreib das bitte als 'ABCD'
(also mit Hochkommas). Ein String enthaelt ein Zeichen pro byte. Jedes
byte davon enthaelt den ASCII code des repraesentierten Zeichens, also
65 bzw. 0x41 fuer ein 'A'.
#260959
Lesenswert?
• ▲
▼
...
oder besteht Dein Problem vielleicht darin, dass Du
keine passende Send Funktion hast, die ein einzelnes
unsigned char annimmt?

Obwohl, kann ich mir eigentlich nicht vorstellen, dann
eine Send Funktion zum verschicken eines kompletten
Strings wuerde ja sinnvollerweise darauf aufbauen:

void Send( const char* TheString )
{
  for( ; *TheString; TheString++ )
    SendByte( *TheString );
}
Gast #260960
Lesenswert?
• ▲
▼
so ist die Vorgabe vom Protocoll:

[$8B] [$01] [$26].....

so hab ichs jetzt probiert:


unsigned long value=4283036831;

rprintfStr((unsigned char) (value >> 24));
rprintfStr((unsigned char) (value >> 16));
rprintfStr((unsigned char) (value >> 8));
rprintfStr((unsigned char) (value));
#260962
Lesenswert?
• ▲
▼
Ich kann mich taeuschen.
Aber wenn derjenige der rprintfStr programmiert hat auch
nur halbwegs mitgedacht hat, und dem Ding einen vernuenftigen
Namen gegeben hat, dann ist rprintfStr die falsche Funktion.
Du hast keinen String mehr, du hast einzelne Bytes!
Das 'Str' im Namen von rprintfStr ist ein starkes Indiz, dass
hier irgendwas mit Strings passiert. Das ist aber nicht
das was Du willst. Du hast ein Byte und Du willst das dieses
Byte auf die Leitung geht. So wie es ist. Ohne dass noch irgendwer
daran rumfummelt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren