1 | #include <avr/io.h> |
2 | #define F_CPU 8000000UL
|
3 | #include <util/delay.h> |
4 | |
5 | unsigned int adc_value1; |
6 | unsigned int adc_value2; |
7 | unsigned int adc_value3; |
8 | |
9 | int main(void) |
10 | {
|
11 | //DDRC=0b00000000
|
12 | DDRB=0b11111111; |
13 | DDRD=0b11111111; |
14 | |
15 | ADCSRA = (1<<ADEN)| (1<<ADSC) | (1<<ADFR)|(1<<ADPS2) |(1<<ADPS1) | (1<<ADPS0); //ADC_Enable, _StartConversion, _FreeRun, Prescaler: 64 |
16 | |
17 | |
18 | while(1) |
19 | |
20 | {
|
21 | PORTD=0b00000000; |
22 | |
23 | /*ADMUX=0b00000000;
|
24 | ADCSRA |= (1<<ADSC);
|
25 | //while (ADCSRA & (1<<ADSC));
|
26 | adc_value1 = ADCW;
|
27 | //adc_value1 = 50;
|
28 |
|
29 | _delay_ms(10);
|
30 |
|
31 | PORTD=0b11111111;
|
32 |
|
33 | ADMUX=0b00000001;
|
34 | ADCSRA |= (1<<ADSC);
|
35 | //while (ADCSRA & (1<<ADSC));
|
36 | adc_value2 = ADCW;
|
37 | //adc_value2 = 120;*/
|
38 | |
39 | |
40 | ADMUX=0b00000010; |
41 | ADCSRA |= (1<<ADSC); |
42 | while (ADCSRA & (1<<ADSC)); |
43 | adc_value3 = ADCW; |
44 | //adc_value3 = 80;
|
45 | |
46 | |
47 | if (adc_value3 > 500) PORTB |= _BV(PB0); else PORTB &= ~_BV(PB0); // gelb |
48 | |
49 | //if (adc_value1 > 300) PORTB=0b00000010; //else PORTB=0b00000000; // gruen
|
50 | |
51 | //if (adc_value1 > 500) PORTB=0b00000100; //else PORTB=0b00000000; // rot
|
52 | //_delay_ms(100);
|
53 | |
54 | }
|
55 | return 0; |
56 | |
57 | }
|
Funktioniert nicht, wo fehler? Danke.