Forum: Mikrocontroller und Digitale Elektronik Programmierproblem ADUC831(8051Kern)


von Mike89 (Gast)


Lesenswert?

Hallo,

Ich habe ein Problem und zwar habe ich einen string der Zeichen enhält 
(ASCII). Ein solchen ASCII Zeichen ist ja ein Hex wert zb. 0x..

Diese Zeichen will ich nach der Reihe mit SPI zum einem Modul 
rauschreiben.
Dieses Modul benödigt Am Anfang jedes Bytes den Wert 0xB8.

Im String steht zb. ABCDEF

Also muss ich vor jedem Zeichen im String den Wert 0xB8 hinzufügen, das 
das Modul die Daten erkennt.

Normal würde ich den String mit eine Schleife rauschreiben:
for(i;i<10;i++)
{
string[i];
}

Nur ich habe keine Ahnung wie ich jetzt die 0xB8 vor jedes Element 
bekomme?

von Thomas (Gast)


Lesenswert?

so zum Beispiel unter der Vorraussetzung dass dein
String im idata Bereich liegt und du eine
writeSpi() Funktion zum Schreiben hast.

void SendString(UINT8 idata *pString)
{
   UINT8 ch;

   ch = *pString;        // first element
   while (ch)
   {
      writeSpi(0xB8);    // send start
      writeSpi(ch);      // send element
      ch = *(pString++); // get next element
   }
}


Thomas

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.