Forum: Mikrocontroller und Digitale Elektronik switch anweisung in c


von pille1990 (Gast)


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
}

von Justus S. (jussa)


Lesenswert?

JTAG Fuse?

von Stefan E. (sternst)


Lesenswert?

JTAG Fuse deaktivieren.

von Oliver (Gast)


Lesenswert?


von Sascha_Focus (Gast)


Lesenswert?

Port C ?

JTAG abgeschaltet?.

Gruß Sascha

von pille1990 (Gast)


Lesenswert?

ich bin leider blutiger anfänger....
wie schalte ich den jtag aus?
was bewirkt das?

von H.Joachim S. (crazyhorse)


Lesenswert?

beim Programmieren auf den Reiter "fuses" gehen und dort jtag enabled 
umprogrammieren. Ist im AUslieferungszustand des Chips auf ein gestellt, 
damit verlieren 4 Bits von PortC ihre Portfunktion.

von pille1990 (Gast)


Lesenswert?

ist das grundsätlich so dass ich wenn ich diesen jtag an habe dass ich 
dann die 4 pins von port c nicht verwenden kann?

von Εrnst B. (ernst)


Lesenswert?

Oliver hat sich doch schon die Mühe gemacht, dir die Links zu den über 
6000 Threads hier im Forum rauszusuchen, bei denen es um exakt dieses 
Thema geht.
Schau halt dort einfach mal nach.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.