Zitat 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)
{
}