ADC initialisieren, Grundlagen

OP #4410582
Hallo zusammen - und alles Beste in 2016!

Ich beschäftige mich gerade mit ADC-Eingängen.
Aktuell um Vcc-Spannungswerte aus zu werten und via Schwellwerte, 
Ausgänge zu schalten.

Folgend die Grundkonfiguration die abgewandelt aus meinem 
FRANZIS-Leitfaden interpoliert wurde.
Schaut bitte einmal, ob diese Konfiguration plausibel ist.

main() ist noch nicht vollendet.
Angehängte Dateien:
Gast
Die zweite Zeile mit "ADMUX = ..." ist Murks:
- der Wert aus der ersten Zeile würde überschrieben, stände nicht 
ohnehin 0 drin
- die 4 "=" sind wohl Schreibfehler
Hi,

also ich habe mich auch einmal damit befasst, und kann dir aber gleich 
am Anfang mal sagen, dass in den Makros schon ein Fehler steckt.
Das hier kannst du nicht machen:

#define OBER_BEREICH (4*1023/5)
#define MITTEL_BEREICH (OBER_BEREICH - UNTER_BEREICH)
#define UNTER_BEREICH (3*1023/5)

... du kannst nicht Mittel_Bereich definieren, ohne dass du vorher 
Unter_Bereich definiert hast, schließlich definierst du ja 
Mittel_Bereich unter Verwendung von Unter_Bereich.
Es müsste also so lauten:

#define OBER_BEREICH (4*1023/5)
#define UNTER_BEREICH (3*1023/5)
#define MITTEL_BEREICH (OBER_BEREICH - UNTER_BEREICH)
Außerdem würde ich Dir, um Bits in Registern zu lesen oder zu löschen, 
das hier mal empfehlen:

#include <compat/deprecated.h>

Hier sind die beiden Funktionen sbi(Register, Bit) und cbi(Register, 
Bit) enthalten... ist viel einfacher um Bits zu handhaben.
Ich versteh auch gar nicht, warum sich das alle so schwer machen mit der 
Bitmanipulation...sbi() = set_Bit und cbi() = clear_Bit

In den Anhang habe ich jetzt mal eine Internetseite gestellt, die alles 
rund um ADCs finde ich ganz gut erklärt, also welche Bits man wofür 
setzen muss und so zeugs... Hoffe ich konnte dir helfen

Viele Grüße
Leo
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.