LED.c


1
/*
2
Taster 1 = PD2
3
Taster 2 = PD3
4
Taster 3 = PD4
5
LED 1    = PD5
6
LED 2    = PD6
7
Summer   = PD7
8
9
Taster 1 => LED 1 ein/aus schalten
10
Taster 2 => LED 2 blinkend schalten
11
Taster 3 => LED 1/2 aus & Summer ein 
12
*/
13
14
15
#include <avr/io.h>    //Biblio ATMEL  
16
#include <util/delay.h>  //Biblo Pause
17
18
19
int main (void)
20
21
{
22
int iT1=0;      //Variable für Zustand von Taster 1
23
24
DDRD = 0b11100000;  //PD7/6/5 Als Ausgang
25
PORTD = 0b00011100;  //PD7/6/5 Auf LOW |Entprellung bei PD2/3/4
26
27
28
while (1) //Endlosschleife
29
{
30
31
/* Taster 1 */
32
33
  if  ((PIND & (1<<PIND2)) && (iT1==0))    //Schalten von PD5 auf 1 wenn T1=0 und PIND2 high
34
    {
35
      PORTD = PORTD ^ 0b00100000;    //XOR toggeln von PD5 
36
37
      iT1=1;              //Setzen von T1 auf 1 damit Zustand gehalten wird
38
    }
39
40
  if  (((PIND & (1<<PIND2))==0x00) && (iT1==1)) //Schalten von PD5 auf 0 wenn T1=1 und PIND2 nicht high
41
    {
42
      PORTD = PORTD ^ 0b00100000;    //XOR toggeln von PD5 
43
44
      iT1=0;              //Setzen von T1 auf 1 damit Zustand gehalten wird  
45
    }
46
};
47
48
return 0;
49
}