ADC Kanal umschalten ATMEGA8

Gast #3699024
Lesenswert?
• ▲
▼
Hallo,
ich habe folgendes Problem der µC schaltet mir nicht die Kanäle um.
Ich habe auch jeden Pin einzeln getestet, dann funktioniert alles.
Im Moment bekomme ich den selben Wert von ADC0 auch für ADC1 angezeigt.

Zu Testzwecken wird im "main" nur temperatur_regeln(); aufgerufen

1
void temperatur_regeln (void)
2
{
3

4

5
lcd_clrscr();
6

7
char zulauf_bin_c[17];
8
char ablauf_bin_c[17];
9

10
uint16_t zulauf_bin= 0  ;  
11
uint16_t ablauf_bin = 0  ;
12

13

14

15
zulauf_bin= adc_lesen(0);  
16
_delay_ms(50);
17
ablauf_bin= adc_lesen(1);
18

19

20
itoa(zulauf_bin,zulauf_bin_c,10);
21
itoa(ablauf_bin,ablauf_bin_c,10);
22

23
lcd_gotoxy(0,0);
24
lcd_puts(ablauf_bin_c);
25
lcd_gotoxy(0,1);
26
lcd_puts(zulauf_bin_c);
27

28

29
lcd_gotoxy(6,1);
30
lcd_puts("ADC0");
31
lcd_gotoxy(6,0);
32
lcd_puts("ADC1");
33
};

Einmal wird bei Start des ganzem Programmes der ADC konfiguriert. Der 
Atmega8 hängt an einem 16Mhz Quarz.
1
ADCSRA |= (1<<ADEN) | (1<<ADPS0)|(1<<ADPS1) |(1<<ADPS2);// ADC Konfigurieren
2
ADMUX |= (1<<REFS0);
1
uint16_t adc_lesen (uint8_t mux)// liest adc aus 10b mux kann gewählt werden
2
{
3
uint16_t adc_bin = 0;  
4

5

6
  
7
if (mux==0) // adc 0
8
  {
9
  ADMUX |= (0<<MUX0);   // Auf ADC-Pin0 stellen (1<<ADLAR)
10
  };
11

12
if (mux==1)
13
  {
14
  
15
  ADMUX |= (1<<MUX0);   // Auf ADC-Pin0 stellen (1<<ADLAR)  
16
  };
17
  
18

19
ADCSRA |=(1<<ADSC); // Adc starten
20
while ((ADCSRA & (1<<ADSC) )) {       }  // auf Abschluss der Konvertierung warten
21

22

23

24
  
25

26
adc_bin = ADCW;
27

28

29

30
return(adc_bin)  ;
31
  
32
};


Was mach ich falsch? Ich überlege mir schon lange ob ich mir einen Jtag 
debugger holen soll, speziell den ICE3 von Atmel. Ist der was?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.