www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC free running mode aktivieren Atmega 16. Vielen Danke :-)


Autor: Matthias H. (maethes26)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nochmals Guten Abend zusammen.

vielen Dank, dass ihr mir ebend so schnell und kompetent geholfen habt. 
Darüber habe ich mich sehr gefreut!

Ich habe es zum Laufen bekommen.

Ich bin noch Anfänger und habe noch Schwierigkeiten, die Aussagen in 
diversen Büchern und Tutorials zu verstehen.

Ich habe mir auch zwei gute Fachbücher zum Thema uC Programmierung 
gekauft.
Jetzt ist mir alles klar, wie ich die Bits setzen muss, ohne die 
restlichen gleich wieder zu überschreiben.

Anbei auch ein Bild, wo ich jetzt nochmal nachgelesen und verstanden 
habe, wie ich das Bit ADIF auswerten muss, wenn eine Conversion 
abgeschlossen ist.

Anbei nochmal mein verbesserter Code.

Eine Frage habe ich noch zum noise chancelling mode.

Ist es so, dass man damit einige Schwankungen bei der Messung 
eliminiert, weil der Prozessor zum Teil abgeschaltet wird?

Macht ihr davon oft Gebrauch?

Viele Grüße und noch einen schönen Abend wünscht Matthias.


#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include "lcd_tools.c"


#ifndef F_CPU
#warning "F_CPU war noch nicht definiert, wird nun nachgeholt"
#define F_CPU 8000000UL // Systemtakt in Hz - Definition als unsigned 
long beachten
                         // Ohne ergeben sich unten Fehler in der 
Berechnung
#endif


uint16_t result = 0;
uint16_t result2 = 0;
uint8_t    i;
char     texte[10];





int main(void)
{


lcd_ini();

ADMUX = (1<<MUX2)|(1<<MUX1);     //0x06;      //channel selection

// ADMUX &= ~((1<<REFS0)|(1<<REFS1)) ; // interne Referenzspannung aus , 
da eh schon null



ADCSRA =(1<<ADPS2) | (1<<ADPS1);      // Frequenzvorteiler: setzen auf 
64 (8 MHz / 64 = 125 kHz) und ADC aktivieren

ADCSRA |= (1<<ADSC);          // start conversion   (single?)  bit stay 
high as long as the vonversion is in progress

ADCSRA |= (1<<ADEN);                  // aktivieren

ADCSRA |= (1<<ADATE);  // free running mode auto triggering











while(1)
{



result=0;
  for(i=0; i<10;i++)
  {
  while (!(ADCSRA & (1<<ADIF)));       // auf Abschluss der 
Konvertierung warten , warten bis die Wandlung durchgeführt iwst und bit 
wieder auf Null
  result += ADCW;            // Wert abholen
  }
result /=10;

dtostrf((double)result, 4,0, texte); lcd_gotopos(2,16); lcd_writetext 
(texte);





}




return 0;
}

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum machst du eigentlich ständiug neu threads auf?

Autor: Matthias H. (maethes26)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

weil ich dachte, dass man so leichter bemerkt, wenn ich geantwortet 
habe.

Wenn ich einen von Euch antworte, dann bekommen doch die anderen 
Antworter keine EMalbenachrichtigung und wissen nicht Bescheid.

Wenn Du meinst es ist besser keinenneuen Thread deswegen aufzumachen, 
dann lass ich das gern bleiben.
Schöne Grüße, MAtthias.

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.