ADC initialisieren, Grundlagen

OP #4410582
Lesenswert?

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:
#4410652
Lesenswert?

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)
#4410658
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren