Hallo,

ich arbiete jetzt zum ersten Mal in µC/51, habe vorher immer viel mit CodeBlocks gearbeitet.
Nun habe ich eine einfache Funktion in meinem Programm, die angeblich falsch sein soll, aber ich kann leider keine Fehler finden.
Der Compiler ist so schlau, dass er mir nichteinmal sagt, welchen Fehler ich gemacht habe.
Als einziges bekomme ich gesagt, in welcher Zeile der Fehler stehen soll (Erste Anweisung in switch() ).
Vielleicht habe ich ja immer Fehler in der Programmierung gemacht, die CodeBlocks einfach toleriert hat - was ich mir nicht vorstellen kann.

Ich bitte Euch, einfach mal über den Code zu schauen, vielleicht habe ich ja doch einen Fehler.

Code:
//Sonderfunktion zur Generierung von Sequenztext fuer Steuerzeichen im Terminal

void cursor_pos_screen(unsigned char row, unsigned char column){ //Im Terminal Cursor positionieren
    unsigned char def_seq[]="\x1b\x59\x00\x00\0"; //Offset-String
    unsigned char x = 0;

    unsigned char convert_dec_hex_byte(unsigned char byte, unsigned char low_high){ //Oberes Byte in HEX
        unsigned char result = 0;
        
        if(low_high){ //Oberen Bits
        result = ((byte&0xF0)>>4); 
        result += 2; //32 Addieren -> ESC_OFFSET
        }

        if(!low_high){ //Unteren Bits
        result = (byte&0x0F); 
        }
        
        #define BASE_NUMBERS 48 //Basis von 0 in der ASCII
        if(result < 10){ //Wenn HEX als Zahl dargestellt werden kann
            result += BASE_NUMBERS;
        }
        
        #define BASE_LETTERS 97 //Basis von a in der ASCII
        else{ //Sonst andere Basis
            result += BASE_LETTERS;
        }
    
    return result;
    }

#define ESC_ROW 10 //Offsetwert fuer oberes 1/2 Byte Reihenkoordinate
#define ESC_COL 14 //Offsetwert analog wie oben fuer die Spaltenkoordinate
#define HIGH 1
#define LOW 0

    for(x=0;x<4;x++){ //Steuerzeichen nacheinander einlesen und uebertragen
        switch(x){ //Nach x entscheiden, welcher Wert geaendert wird
            case 0: //Reihe
               def_seq[ESC_ROW] = convert_dec_hex_byte(row,1);
            break;

            case 1: //Reihe
               def_seq[ESC_ROW+1] = convert_dec_hex_byte(row,0);
            break;

            case 2: //Spalte
               def_seq[ESC_COL] = convert_dec_hex_byte(column,1);
            break;

            case 3: //Spalte
               def_seq[ESC_COL+1] = convert_dec_hex_byte(column,0);
            break;
        }
    }

    write_to_rs232(&def_seq); //Fertige Sequenz ausgeben
}
Fehlermeldung in µC/51 ist dann:
test_1.c 74: Error: too many errors.

Wie schon erwähnt: Reihe 74 ist "case 0: //Reihe"

Vielen Dank im Voraus!