Forum: Mikrocontroller und Digitale Elektronik AVR-AD-Wandler


von ADC-USER (Gast)


Lesenswert?

Hallo Forum,

ich habe mal eine Frage, ob ihr auch solche Probleme kennt.
Ich benutze den internen ADC des Controllers und es funktioniert auch 
alles. Ich hab auch schon oft damit gearbeitet. Aber in letzter Zeit 
stelle ich ein komischen Phenomän fest(...egal welcher Controller).
Es geht um das MUX-Register und die Umschaltung zwischen den ADC's.
Wenn ich jedes mal bei der Umschaltung das komplette MUX-Register 
beschreibe, gibt es keine Probleme. Wenn ich allerdings nur die 
einzelnen MUX-Bits manipuliere hat der ADC manchmal Probelme beim 
Umschalten und anschließenden Messen.

Wie schaltet ihr um ?
Kennt ihr diese Probleme auch ?

Danke schon mal.

von Peter (Gast)


Lesenswert?

Könnten Interrups dazwischen funzen...?

von ADC-USER (Gast)


Lesenswert?

Nein hab ich auch schon vermutet, ich hab aber keine freigegeben!

von ADC-USER (Gast)


Lesenswert?

Keiner ne Ahnung???

von Vlad T. (vlad_tepesch)


Lesenswert?

zeig mal den Code, wie du die Bits manipulierst, ich vermute mal, dass 
du da nen fehler machst.

von ADC-USER (Gast)


Lesenswert?

Hier mal zwei Beispiele für Setzen und Rücksetzen.
Ich bin für jede Verbesserung dankbar!
1
//Setzen   
2
ADMUX |= (1<<MUX0);
3
//Rücksetzen  
4
ADMUX &= ~(1<<MUX1) | (1<<MUX2) | (1<<MUX3) | (1<<MUX4);

Danke

von Axel K. (axel)


Lesenswert?

ich klinke mich mal kurz ein.

Wenn man in Bascom den Singlemode benutzt und die einzelnen AD-Känäle 
mit "Getadc()" abfrage, belässt er im Falle wenn man mehrmals den selben 
ADC Kanal abfragt das admux so? Ich denke schon, denn ich muss in meinem 
Programm 2mal den selben Kanal hintereinander mit dem "Getadc" Befehl 
abfragen, denn sonst gibs ab und zu auch krasse Messwertverfälschungen. 
Da wird die erste "Müllwandlung" im singlemode warscheinlich nicht 
ausreichen....

von holger (Gast)


Lesenswert?

>ADMUX &= ~(1<<MUX1) | (1<<MUX2) | (1<<MUX3) | (1<<MUX4);

ADMUX &= ~((1<<MUX1) | (1<<MUX2) | (1<<MUX3) | (1<<MUX4));

von ... .. (docean) Benutzerseite


Lesenswert?

Das Setzen löscht aber keine anderen Bits!

Also löscht du alle MUX Bits bevor du welche setzt?

von ADC-USER (Gast)


Lesenswert?

Ich weiß, ich muss immer alle setzen bzw. rücksetzen, die ich brauch.

@holger: Sind die Klammern unbedingt notwendig?

von Lutz (Gast)


Lesenswert?

Das nicht, aber das Register hat ganz andere Werte als vermutet.

von ADC-USER (Gast)


Lesenswert?

Was meinst du damit?

von Lutz (Gast)


Lesenswert?

>> Sind die Klammern unbedingt notwendig?
Es kommt darauf an, was rauskommen soll. Ohne Klammern gilt die Tilde 
nur für den ersten Ausdruck, nicht für die verODERten. Wie wäre auch 
sonst die Schreibweise, wenn man mal wirklich nur den ersten Ausdruck 
verändern wollte ?

von ADC-USER (Gast)


Lesenswert?

Du hast recht!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.