C Felermeldung - Warum?

#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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren