switch anweisung in c

Gast #1245850
Lesenswert?
• ▲
▼
hallo

ich habe ein problem mit der switch anweisung. wenn ich das folgende 
programm simuliere, funktioniert alles. übertrage ich das programm jetzt 
auf den controller gehn nur noch die ersten 2 cases... wenn ich die 
anderen taster drücke (an pinc) passiert nichts.
1
/* programnm zur erzeugen verschiedener rechtecksignale. je nachdem welcher taster gedrückt
2
 wird, wird ein spezielles rechtecksignal erzeugt.*/
3

4
#include <avr/io.h>
5
#include <util/delay.h>
6

7
#define  summer PORTD
8
#define taster_port PINC
9

10
int main()
11
{
12
DDRD = 0xff;
13
DDRC = 0x00;
14
int i;
15

16
while(1)
17
{
18
  i = taster_port;
19

20
  switch(i)
21
  {
22
    case 0x01:          //wenn bit 0 high führt dies hier ausführen
23

24
    summer |= (1 << PD7);    //setzen und warten
25
    _delay_us(100);
26

27
    summer &= ~ (1 << PD7);    //löschen und warten
28
    _delay_us(100);
29

30
    break;
31

32

33
    case 0x02:          //wenn bit 1 high führt dies hier ausführen
34

35
    summer |= (1<< PD7);
36
    _delay_us(90);
37

38
    summer &= ~(1 << PD7);
39
    _delay_us(90);
40

41
    break;
42

43

44
    case 0x04:          //wenn bit 2 high führt dies hier ausführen
45

46
    summer |= (1 << PD7);
47
    _delay_us(80);
48

49
    summer &= ~ (1 << PD7);
50
    _delay_us(80);
51

52
    break;
53

54

55
    case 0x08:          //wenn bit 3 high führt dies hier ausführen
56

57
    summer |= (1 << PD7);
58
    _delay_us(70);
59

60
    summer &= ~ (1 << PD7);
61
    _delay_us(70);
62

63
    break;
64

65

66
    case 0x10:          //wenn bit 4 high führt dies hier ausführen
67

68
    summer |= (1 << PD7);
69
    _delay_us(60);
70

71
    summer &= ~ (1 << PD7);
72
    _delay_us(60);
73

74
    break;
75
    
76

77

78
  }
79
      
80
}
81
}

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