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 | }
|