Schleife in C für Atmega32 funktioniert nicht

Gast #2229630
Lesenswert?

Hallo,

ich bin gerad in den Anfängen der Microcontrollerprogrammierung.
Nun stehe ich vor einem kleinen Problem.

Ich habe 3 Taster, Taster 1 und 8 sind für das Setzen aller 8 LEDs an 
PortB. Taster 2 ist dafür da, um die Schleife zum Laufen zu bringen. 
Dies funktioniert auch, aber leider werden die LEDs nicht nach dem 
Durchlauf der for-Schleife wieder zurückgesetzt.

Kann mir jemand was dazu sagen?
1
    int i = 0;
2
    PORTB= 0xFF;
3
    DDRB = 0xFF;
4
    DDRD = 0x00; 
5

6
    while(1){
7
            PORTB= 0xFF;
8
          i = 0;
9
            if(PIND==0b01111111)
10
             {
11
          PORTB = 0x00;
12
          }
13
          if(PIND==0b11111110)
14
             {
15
           PORTB = 0x00;
16
          }
17
          if(PIND==0b11111101)
18
             {
19
           for(i = 255; i >= 0; i=i/2)
20
           {
21
             PORTB = i;
22
             _delay_ms(1000);
23
           }
24
          } 
25
          }
26
    return 1;

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