
Zitat von
tholan
Hi,
bin neu in C- Programmierung und WinAVR.
Wollte mal fragen, ob's nen netten Menschen gibt, der mir
beim "Nibbeln" der ASCII-Werte eines Zeichenstrings
mal auf die Sprünge helfen kann. Ist für die
4-Bit Ansteuerung eines 4x27 LC-Displays.
Hab mir schon folgendes Gerüst für eine Unterfunktion
zurechtgebastelt...
So was in der Richtung? Die Ausgabe hab ich jetzt nicht ausgeführt, das ist abhängig vom Displaytyp/Treiber.
Code:
#include <inttypes.h>
void Nibbleausgabe (const uint8_t nibble);
void Textausgabe (const uint8_t*);
// Massstab: "0xxxxxxxx1xxxxxxxxx2xxxxxx7"
char text[] = "0xxxxxxxx1xxxxxxxxx2xxxxxx7";
void Textausgabe (const uint8_t *tx)
{
// Zeiger tx läuft durch den String
while (1)
{
uint8_t nibble;
// Ein Zeichen holen, Typumwandlung uint8_t => char ??? (weiss nicht,ob's das Gleiche ist.)
// Zeichen aus RAM lesen, Zeiger eins weiter
uint8_t zeichen = *(tx++);
// zeichen == 0 --> Stringende
if ('\0' == zeichen)
break;
// Unteres Nibbel von Text(count) mit &0xf0 "vernichten",
// Oberes Nibbel /16 => nach unten
nibble = zeichen >> 4;
// high Nibbel ausgeben
Nibbleausgabe (nibble);
// Oberes Nibbel "vernullen"
// (in Bit 4 und 5 liegen bei mir E1 und E2 des Displays),
// dann Byte ausgeben.
nibble = zeichen & 0x0f;
// low Nibbel ausgeben
Nibbleausgabe (nibble);
}
}
void Nibbleausgabe (const uint8_t nibble)
{
}
Lesezeichen