-         

Ergebnis 1 bis 4 von 4

Thema: struct - Befehl gehr nicht ???

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2005
    Beiträge
    6

    struct - Befehl gehr nicht ???

    Anzeige

    Hallo alle zusammen!

    Hab grad versucht ne Struktur mit struct{}; in C mit WinAVR zu programmieren. Aber bei meiner ersten Instanz der Struktur bezeichnet er sie immer als 'undeclared'. In allen C-Beschreibungen die ich habe existiert struct. In meinem C-Buch nutzen die aber die Headerfiles stdio.h und conio.h. Conio gibst in WinAvr garnicht. Liegt des an den Headerfiles oder gibts bei WinAVR generell keine Strukturen?

    Schon mal Danke für Eure Antworten im Voraus.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    WinAVR kennt Strukturen, habe sie selbst schon benutzt. Man braucht noch nicht mal irgendwelche includes dafür.
    Folgender Nonsense-Code funktioniert auf jeden Fall:

    Code:
    typedef struct {
            unsigned short int ID ;      // 11 Bit-Kennung                         
            unsigned char      RTR ;     // TRUE, wenn remote request              
            unsigned char      LEN ;     // Anzahl der gueltigen Datenbytes (0..8) 
            unsigned char      DATA[8] ; // Datenbytes 0..7                        
    } CANMsg;
    
    
    int main(void)
    {
    CANMsg msg;
    
    while(1) 
    msg.ID ++;
    
    return 0;
    }
    Ich denke mal, Du hast das typedef vergessen, ohne gehts im WinAVR nicht... So definierst Du also erst mal einen neuen Datentypen, den Du dann auf eine Variable übertragen kannst.

    Gruß,
    askazo

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    typedef muß nicht sein, da hat's was anderes: Herzeigen !
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Uups, da war ich etwas voreilig. Hatte noch einen Fehler im Code, als ich's ohne typedef probiert hatte.
    Es geht also auch ohne typedef problemlos:
    Code:
    struct { 
            unsigned short int ID ;      // 11 Bit-Kennung                          
            unsigned char      RTR ;     // TRUE, wenn remote request              
            unsigned char      LEN ;     // Anzahl der gueltigen Datenbytes (0..8) 
            unsigned char      DATA[8] ; // Datenbytes 0..7                        
    } CANMsg; 
    
    
    int main(void) 
    { 
    while(1) 
    CANMsg.ID ++; 
    
    return 0; 
    }
    Dann stimme ich PicNick mal zu: Code herzeigen!

Berechtigungen

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