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.
zeig mal den Code, wie du die Bits manipulierst, ich vermute mal, dass du da nen fehler machst.
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
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....
>ADMUX &= ~(1<<MUX1) | (1<<MUX2) | (1<<MUX3) | (1<<MUX4);
ADMUX &= ~((1<<MUX1) | (1<<MUX2) | (1<<MUX3) | (1<<MUX4));
Das Setzen löscht aber keine anderen Bits! Also löscht du alle MUX Bits bevor du welche setzt?
Ich weiß, ich muss immer alle setzen bzw. rücksetzen, die ich brauch. @holger: Sind die Klammern unbedingt notwendig?
>> 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 ?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.