mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel32 mit mehreren ADC Channels


Autor: Willi Woebsi (willi_woebsi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grüß euch,

ich habe folgendes Problem:

Ich programmiere im AVR Studio meinen Atmel Atmega32 und hab 2 Sensoren.
Die Spannung der beide Sensoren kann in verschiedenen Programmen 
digitalisiert werden. Problem ist das Digitalisieren hintereinander.

Der zweite Sensorwert wird nicht digitalisier. IM ADCH und ADCL ist noch 
immer das Ergebnis des ersten Sensors.

Ich lasse mir das Ergebnis des zweiten Sensors auf 8 LEDs anzeigen. 
Diese verändern sich aber nur wenn ich den Sensor 1 bearbeite.

erster sensor:
short int adc()
{
  ADMUX=0b01100001;  //ADC 1
  short int result;
  ADCSRA=0b11000000;  //Starten der digitalisierung

  _delay_us(10);
  while(ADCSRA>=192)
  {
  }  
  
  result=ADCH;
  return result;

}
zweiter sensor:
short int adc_vorne()
{
  ADMUX=0b01100100;  //ADC 4
  _delay_ms(150);
  short int result;
  ADCSRA=0b11000000;  //Starten der digitalisierung

  
  _delay_us(10);
  while(ADCSRA>=192)
  {
  }  
  
  result=ADCH;
  return result; //auf LEDs

}

Weiss wer warum das nicht hinhaut???

lg
willi

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Woche ist anscheinend ADC Themenwoche :)

Das kann verschiedene Gründe haben u.a. sind bei der Kanalumschaltung 
Wartezeiten zu beachten, bis sich der ADC-Wert stabilisiert hat. Im 
AVR-GCC-Tutorial ist eine Routine zur Kanalumschaltung drin. Deine 
Initialisierung mit den Absolutwerten statt symbolischen Werten habe ich 
aus Bequemlichkeit nicht kontrolliert.

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan B. schrieb:
> Grüß euch,
Dito.

> Ich programmiere im AVR Studio meinen Atmel Atmega32 und hab 2 Sensoren.
> Die Spannung der beide Sensoren kann in verschiedenen Programmen
> digitalisiert werden. Problem ist das Digitalisieren hintereinander.
Was für Sensoren denn ???

> Der zweite Sensorwert wird nicht digitalisier. IM ADCH und ADCL ist noch
> immer das Ergebnis des ersten Sensors.
Du liest in deinem Programm auch nur die oberen 2 bits aus, oder haste 
ADLAR gesetzt ???

> Ich lasse mir das Ergebnis des zweiten Sensors auf 8 LEDs anzeigen.
> Diese verändern sich aber nur wenn ich den Sensor 1 bearbeite.
Daher vermute ich mal du hast ADLAR gesetzt.
Vor der Kanal umschaltung würde ich das ADEN bit setzten um den ADC 
auszuschalten.

Gruß

Autor: Willi Woebsi (willi_woebsi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die hilfe

hab zwei GP2D12 vonsharp
geile dinger...

habmal n kleines delay rein tanund schonfunkts :)

vielen dank!
lg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.