-         

Ergebnis 1 bis 5 von 5

Thema: uC/51 Probleme beim Übersetzen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.01.2012
    Beiträge
    75

    uC/51 Probleme beim Übersetzen

    Anzeige

    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!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Hallo,

    Fehlermeldung in µC/51 ist dann:
    test_1.c 74: Error: too many errors.

    Da läuft der interne Fehlerspeicher des Compilers über.

    Das hat also nichts mit der Fundstelle zu tun. Der Fehler ist weit vorher zu suchen, möglicherweise hast du eine "}" irgendwo vergessen.


    MfG Peter(TOO)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.401
    Zitat Zitat von pete1612 Beitrag anzeigen
    Fehlermeldung in µC/51 ist dann:
    test_1.c 74: Error: too many errors.
    Ist das alles an Fehlermeldungen oder nur die letzte?

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.01.2012
    Beiträge
    75
    Hallo!
    Danke für eure Hilfe der "Fehler" war, dass uC/51 keine Funktion in Funktionen definieren kann... Funktion raus, global erstellt. fertig....

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von pete1612 Beitrag anzeigen
    Danke für eure Hilfe der "Fehler" war, dass uC/51 keine Funktion in Funktionen definieren kann... Funktion raus, global erstellt. fertig....
    Das war dann für den Compiler eine fehlende "}".

    OK, dann weisst du nun, wie dieser Compiler auf so etwas reagieren kann.
    In C gilt immer die Regel, dass der Fehler dort ist, wo er angezeigt wird oder irgendwo vorher.

    MfG Peter(TOO)

Ähnliche Themen

  1. Probleme beim Programmieren
    Von robochick im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 09.04.2011, 02:59
  2. uC51 stürzt beim übersetzen ab
    Von Litzi im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 18.07.2010, 20:29
  3. Problem beim übersetzen
    Von Zwerwelfliescher im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 27.10.2009, 14:10
  4. Probleme beim Comilieren
    Von joi im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 17.08.2008, 18:18
  5. problem beim übersetzen
    Von proevofreak im Forum Robby RP6
    Antworten: 17
    Letzter Beitrag: 10.02.2008, 18:42

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •