hallo, es geht um das Auslesen einer Spannung am internen ADC des mega8. ich möchte den Wert einlesen und abhängig davon 5 LED`s ansteuern (1/5 von Aref -> eine led an, 2/5 -> twei led´s an...)
1 | #include <avr/io.h> |
2 | #include <stdint.h> |
3 | |
4 | |
5 | int main(void) |
6 | {
|
7 | |
8 | DDRB = (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << DDB4); |
9 | uint16_t result; |
10 | |
11 | ADMUX = 0; //Kanal 0 |
12 | ADMUX |= (0<<REFS1) | (0<<REFS1); //externe referenzspannung |
13 | |
14 | ADCSRA = (1<<ADPS2); //frequenzvorteiler auf 16 |
15 | ADCSRA |= (1<<ADEN); //ADC Aktivieren |
16 | ADCSRA |= (1<<ADFR); //ADC in free run |
17 | |
18 | |
19 | while(1) |
20 | {
|
21 | result = ADCW; |
22 | |
23 | If (result < 204) |
24 | {
|
25 | PORTB |= (1<<PB0) (0<<PB1) (0<<PB2) (0<<PB3) (0<<PB4); |
26 | }
|
27 | else if (result >= 204 && result < 409) |
28 | {
|
29 | PORTB |= (1<<PB0) (1<<PB1) (0<<PB2) (0<<PB3) (0<<PB4); |
30 | }
|
31 | else if (result >= 409 && result < 614) |
32 | {
|
33 | PORTB |= (1<<PB0) (1<<PB1) (1<<PB2) (0<<PB3) (0<<PB4); |
34 | }
|
35 | else if (result >= 614 && result < 819,2) |
36 | {
|
37 | PORTB |= (1<<PB0) (1<<PB1) (1<<PB2) (1<<PB3) (0<<PB4); |
38 | }
|
39 | else
|
40 | {
|
41 | PORTB |= (1<<PB0) (1<<PB1) (1<<PB2) (1<<PB3) (1<<PB4) |
42 | }
|
43 | |
44 | return 0; |
45 | }
|
46 | |
47 | }
|
es geht darum, dass AVR-Studio bei einem klick auf build folgende fehler anzeigt: c:24: warning: implicit declaration of function 'If' c:25: error: expected ';' before '{' token die Fehler beziehen sich auf diese Zeilen:
1 | If (result < 204) |
2 | {
|