Probleme mit dem ADC beim Mega8

Gast #4893153
Lesenswert?
• ▲
▼
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.
Gast #4893186
Lesenswert?
• ▲
▼
Wie wäre es, wenn du als TO mal dein Problem beschreiben würdest und 
nicht einfach irgend einen Code kopierst. Dann auch noch nach nur 2min 
unverschämt fragen ob keiner etwas weis...

Der Code gehört übrigens in den Anhang und mit Kommentaren versehen.

Nein so werde ich dir den Fehler nicht zeigen.

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