ADC-Kanäle: 1,2,3 und 8....

Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 07.10.2010 - 01:17  ·  #1
Hallo,

muß mit den ADC-Kanäle: 1,2,3 und 8 arbeiten.
Wie kriegt man das im "Define" richtig hin?
Das funktioniert nicht:
ADCchans = 2,3,4,8, iData;
ADCchans = [2..4 8], iData;
ADCchans = [2..4,8], iData;
ADCchans = [2..4],[8], iData;
ADCchans = [2..4] [8], iData;
ADCchans = [2..4],8, iData;
ADCchans = 3, [8], iData;

Compiler Rev: 4.99.05

Danke Gruß
Mathias
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2132
Registered: 03 / 2003
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 07.10.2010 - 10:47  ·  #2
Hallo Mathias,

wie wäre denn ADCchans = [2,3,4,8],iData; ? Zumindest fehlt das in deiner Liste :)

gruss
Harry

[EDIT] Ich befürchte das geht garnicht:
Quote
Manchmal ist es notwendig, dass z.B. nur die Kanäle 4 und 7 benutzt werden. Um Resourcen zu sparen, können ein oder zwei beliebige Kanäle definiert werden


[EDIT, Nr.2] Mach doch einfach ADCchans = [2..8],iData;. Dann werden die 5-7 eben "für die Katz" gelesen - was solls ?
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 07.10.2010 - 17:51  ·  #3
Hallo,

habe das in der Doku mit den "ein oder zwei" auch gelesen, aber ich dachte....
Wenn der ganze Port als AD-Eingang deklariere wird, werden sie als solche umgeschalten und können nur als Analogeingang fungiere.
Brauche die Port-Pins dazwischen aber als normale digitale Ein.- und Ausgänge.
Oder hab ich da was falsch verstanden?

Im Notfall gehe ich zu Fuß.
Hätte gerne gewust ob's trotzdem mit dem AD-Wandler-Treiber geht.

Gruß
Mathias
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 07.10.2010 - 18:08  ·  #4
Hallo Mathias,

ich vermute, es reicht, zu Programm Anfang die AVRco Settings vom DIDR0
zu überschreiben (ich nehme an, es geht um den Tiny84):
DIDR0 := %1000 1110;
Schau mal ins ASM File -
der AVRco wird darauf wohl nur 1x bei der Initialisierung zugreifen.

Gruß
Gunter
Lschreyer
Schreiberling
Avatar
Gender: n/a
Posts: 527
Registered: 02 / 2007
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 14.10.2010 - 14:58  ·  #5
Zum Thema gehörend eine Frage:

Ist es eigentlich auch möglich einzelne A/D Kanäle beim Programmstart als A/D Eingang oder als Digitaler Eingang oder als Ausgang umzuschalten?
Ich möchte einen Pin entweder als A/D oder als IO nutzen, je nach Einstellung des Users. Ist für eine Erweiterung gedacht.

Ich nutze einen Mega1284 und die erste 5 A/D Pins sind als A/D definiert ( ADCchans = 5, iData;)
Anschluss 6 müsste jetzt irgendwie als A/D Port oder als I/O definiert werden, und zwar erst im Programm selbst.
Kann Avrco das? Konnte da im Datenblatt nicht wirklich etwas dazu finden..

Zu DIDR0 steht da:
"When this bit is written logic one, the digital input buffer on the corresponding ADC pin is disabled."
Heisst für mich, dass der Buffer disabled ist, nicht dass ich den Pin auch als Ausgang nutzen kann.
Im ASM File finde ich es nicht wieder, also scheint Avrco es nicht zu setzen?
Louis
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 14.10.2010 - 16:51  ·  #6
Hallo Gunter,

danke, bin zu "Fuß gegangen" ohne AD-Wandler-Treiber.
Läuft prima.

@Lschreyer,

mit zu "Fuß geht" also den AD-Wandler-Treiber nicht benutzt, geht das.
Wenn Portpins als AD-Eingang benutzt werden, kann man sie zusätzlich "ruhigstellen" indem im DIDR0-Register die entsprechenden Bits gesetzt werden. Also so eine Art Filter.

Der AD-Wandler wird eingeschalten (Sonderfunktion) indem im ADCSRA-Register das Bit 7 (ADEN) gesetzt wird. Abhängig welcher Port-Pin es sein soll liegt es von der Einstellung im ADMUX-Register ab. Also, ADMUX einstellen, AD-Wandler Interupt freigeben, AD-Wandler Ein, anschließend AD-Wandlung starten mit dem ADSC-Bit....
Nicht benutzte "AD-Eingänge" können als normale IO-verwendet werden.

Sämlichle Registereinträge können natürlich im Programm geändert werde.

Gruß
Mathias
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 14.10.2010 - 17:22  ·  #7
@Mathias,
hast Du mal probiert, (trotz Treiber) die entspr. Pins einfach mal
als Digitale IOs zu benutzen?
Ich kann in den Datenblättern nichts sehen, was dagegen spricht.

DIDR0 sollte nur zur Sicherheit gesetzt werden, wenn Uref so gering ist,
dass die digitalen Pegel an diesen Pins unzulässig sind.

Gunter
Lschreyer
Schreiberling
Avatar
Gender: n/a
Posts: 527
Registered: 02 / 2007
Subject:

Re: ADC-Kanäle: 1,2,3 und 8....

 · 
Posted: 16.10.2010 - 18:52  ·  #8
Danke für den Tipp, werde das mal ausprobieren ob es passt!

Louis
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   132   146 · Page-Gen-Time: 0.03671s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI