Forum: Mikrocontroller und Digitale Elektronik MSP430F149 A/D übertragen UART


von Florian (Gast)


Lesenswert?

Hallo,

ich arbeite gerde mit dem MSP430F149. Ich habe zuerst die
UART-Schnittstelle in Betrieb genommen ( 115200 ) und ein Echo gemacht
und mit einem Terminalprogramm kontrolliert. Hat geklappt.

Dann habe ich einen A/D Wandler ( P6.3 ) in Betrieb genommen. Ich
scheine auch Werte zu bekommen. Wenn ich das Register ADC12MEM0 direkt
über die UART übertrage bekomme ich die letzten 8 Bit eines jeden
Messwertes angezeigt. ( 8 statt 12 Bit natürlich )

Doch jetzt kommts:
Ich will den gemessenen Spannungswert vom A/D-Wandler übertragen und
direkt im Terminalprogrmm sehen. Also brauche ich eine Funktion oder
so, die mir den 12 Bit-wert des Registers ( ADC12MEM0 ) in einen String
macht, den ich dann in den TXBUF1 schreiben und übertragen kann. Hat da
jemand einen Vorschlag oder ein paar Codeschnipsel ?

Danke
Florian

von TheMason (Gast)


Lesenswert?

so vielleicht ?!

void sendhexword (unsigned int val)
{
  unsigned char nibble;

  nibble = (val >> 8) & 0xf;
  if (nibble > 9) { uartsend (nibble - 10 + 0x41); }
             else { uartsend (nibble + 0x30); }
  nibble = (val >> 4) & 0xf;
  if (nibble > 9) { uartsend (nibble - 10 + 0x41); }
             else { uartsend (nibble + 0x30); }
  nibble = (val >> 0) & 0xf;
  if (nibble > 9) { uartsend (nibble - 10 + 0x41); }
             else { uartsend (nibble + 0x30); }
  uartsend (0x20);
}

gruß
rene

ps. keine funktionsgarantie ... nur beispielhaft

von Rahul (Gast)


Lesenswert?

Hätte ich auch so vorgeschlagen...

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.