Deklarierung Analog Eingang atmega 32 C

Gast #2789531
Hallo
Möchte ein Poti an einem Atmega 32 auslesen und benutze folgenden C 
Code.
Poti ist am Eingang ADC0 angeschlossen, habe dort immer ein Fehler bei 
ADC0. Benötigt  sbi noch eine zusätzlich Include Datei, weil ich noch 
ein weiteren Fehler habe,dass sbi undefiniert ist.




//Diese Funktion aktiviert den ADC
sbi(ADCSRA,ADEN);//ADC aktivieren und
sbi(ADCSRA,ADPS1);//Teilungsfaktor auf 8 stellen:
sbi(ADCSRA,ADPS0);



uint16_t ADC_read(uint8_t ADC0){
//Diese Funktion misst eine Spannung an einem ADC-Kanal
//und gibt den entsprechenden digitalen Wert 0 - 1023 (10 Bit)
//zurück.
//------------------------------------------------------------
ADMUX=ADC0; //Kanal des Multiplexers wählen:
sbi(ADCSRA,ADSC);//Messung starten
while(bit_is_set(ADCSRA,ADSC));// Auf Ergebnis warten:
return ADCW;
Gast
Suche die Header Datei <deprecated.h> zum einfügen im AVR Studio, kann 
mir eventuell einer ein Link posten, oder eine andere Möglichkeit sagen 
wie ich am besten Analog Eingänge abfragen kann.
Gast
Einfach folgende Definitionen in deinen Quelltext kopieren.

#define sbi(port, bit) (port) |= (1 << (bit))
#define cbi(port, bit) (port) &= ~(1 << (bit))

Besser wären allerdings andere Namen, um eine Verwechselung mit den
gleichnamigen AVR-Assemblerbefehlen zu vermeiden.

#define set_bit(port, bit) (port) |= (1 << (bit))
#define clear_bit(port, bit) (port) &= ~(1 << (bit))

Ob das nun die beste Abstraktion zum Setzen und Löschen von Bits ist, 
sei mal dahingestellt. Aber nach meiner Ansicht immerhin deutlich 
lesbarer als überall diese Bitschieberei in Kombination mit logischen 
Operationen. So ein Gemurkse schreit geradezu nach Syntactic Sugar.
Gast
Gibt es ein einfaches Beispiel um ein Analog Eingang einzulesen und in 
einer Variable zu speichern, da ich momentan irgendwie auf dem Holzweg 
bin.
Vielen Dank

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.