C Felermeldung - Warum?

OP #3456648
Lesenswert?
• ▲
▼
Hallo liebes Forum
Ich habe ein Frage zu einem kleinen Programm. Es geht darum im 
Hauptprogramm die Variable "nummer" zu ändern und im Switch als Dualzahl 
für ne 7 Segmentanzeige auf Portd ausgibt.
Das ganze würde natürlich auch einfacher ohne Switch gehen aber ich will 
das so machen um das ganze später noch was anderes zu machen.

Beim kompilieren gibt es aber eine Fehlermeldung und ne Warnung:

Error
expected identifier or '(' before 'switch'

Warning
return type defaults to 'int' [enabled by default]

Was kann ich tun, damit es keine Fehler gibt?

Code:
1
/*
2
 * ATmega8_7seg.c
3
 *
4
 * Created: 15.12.2013 20:44:39
5
 *  Author: Valentin
6
 */ 
7

8
#include <avr/io.h>
9

10
#define F_CPU 8000000UL        // 8 MHz
11
#include <util/delay.h>
12

13

14
//************Programm************
15

16
main(void){              // Hauptprogramm
17
    DDRD = 0xFF;         // Variabeln und Outputs anlegen
18
    unsigned char nummer;
19
    while(1){            // Endlosschleife
20
    nummer=0;
21
    nummer++;
22
    _delay_ms(1000);
23
    if(nummer>9)
24
    {
25
    nummer=0;
26
    }
27
      
28
  }                      // Ende von while(1)
29
}                        // Ende von main(void)
30

31

32
//************Funktionen************
33

34
switch (nummer)
35
{
36
case 0: PORTD=0b00111111;    break;
37
case 1: PORTD=0b00000110;    break; 
38
case 2: PORTD=0b01011011;    break; 
39
case 3: PORTD=0b01001111;    break;
40
case 4: PORTD=0b01100110;    break;
41
case 5: PORTD=0b01101101;    break;
42
case 6: PORTD=0b01111101;    break;
43
case 7: PORTD=0b00000111;    break;
44
case 8: PORTD=0b01111111;    break;
45
case 9: PORTD=0b01101111;    break;
46
}

Vielen Dank für Lösungsmöglichkeiten.
Valentin
Gast #3456656
Lesenswert?
• ▲
▼
Ich denke "switch" ist ein reserviertes Keyword und kann nicht als 
Funktionsname verwendet werden. Nimm mal nen anderen Namen. In die 
Funktion muss dann natürlich wieder eine Switch-Anweisung.

Achja, die Funktion sollte auch aufgerufen werden.

Grüße,
Martin
Gast #3456795
Lesenswert?
• ▲
▼
Roland ... schrieb:
> Valentin S. schrieb:
>> PORTD=0b00111111;
> Seit wann funktioniert die Binärschreibweise in C? Oder sind da irgendwo
> 256 Makros definiert?
Das kann der GCC, Compiler-portabel ist er damit nicht. Aber hier im 
Forum gab es mal Makros, die einem diese Funktion auch für nicht 
GCC-Compiler zur Verfügung stellen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.