Forum: Mikrocontroller und Digitale Elektronik ATXMega64D3 -> Fehlermeldung Bascom -> Konfiguration Channels.


von Dani (Gast)


Lesenswert?

Hallo Forum,

ich möchte mit dem ADC eines ATXmega64D3 an PIN PA4 eine Spannung 
messen.
Diesem PIN ist der ADC 4 zugeordnet.

Das Problem: Wenn ich Channel 1,2 oder 3 Konfigurieren möchte gibt 
Bascom eine Fehlermeldung aus. Bei Channel 0 funktioniert es!?

Wenn ich das Datenblatt richtig verstanden habe, hat der ADC 4 Kanäle:

Kanal 0 ist für PIN  0 bis PIN  3
Kanal 1 ist für PIN  4 bis PIN  7
Kanal 2 ist für PIN  8 bis PIN 11
Kanal 3 ist für PIN 12 bis PIN 15

Die "globalen" Einstellungen des ADC gelten für alle Kanäle, wohingegen 
"Gain" und "input mode" für jeden PIN separat eingestellt werden kann.

Ich habe den ADC wie folgt konfiguriert:

Adca_ctrlb = &B00000000
Adca_refctrl = &B01000000
Adca_prescaler = &B00000000

Adca_ch0_ctrl = &B00000001
Adca_ch1_ctrl = &B00000001

Das Problem liegt in der letzten Zeile "Adca_ch1_ctrl = &B00000001".
Hier gibt der Kompiler einen Fehler aus:

Error : 46    Line :   375   Assignment error, unknown variable (DIM) 
[ADCA_CH1_CTRL: 0   &B00000001: 112]

Wie es aussieht kennt Bascom diese Variable nicht. Wie kann ich dann das 
Register schreiben?


Vielen Dank, Dani

von Buhu (Gast)


Lesenswert?

Dani schrieb:
> Wenn ich das Datenblatt richtig verstanden habe, hat der ADC 4 Kanäle:

Falsch.

von Dani (Gast)


Lesenswert?

Danke, keine Ahnung was ich da gelesen habe ...

von Toni (Gast)


Lesenswert?

One sixteen-channel, 12-bit, 300ksps Analog to Digital Converter

von Dani (Gast)


Lesenswert?

Ich habe das Datenblatt weiter studiert. Was ich herausgelesen habe:

Mit Channel 0 lege ich die Einstellung für alle ADC Eingänge fest.
Die Zuordnung welcher Eingangspin gelesen wird erfolgt über das MUXCTRL 
Register.

D.h. wenn ich dieses auf &B0 0100 000 setze müsste ADC4 PIN ausgewählt 
sein.
(XMega D Manual Seite 248 - 250)

Mit "Adca_muxctrl = &B00100000" gibt es wieder eine Fehlermeldung.

Wie kann ich mit Bascom den Wert an ADC4 auslesen?

von Dani (Gast)


Lesenswert?

Gelöst,

der Ansatz war richtig, es war ein Syntaxfehler.

Danke an das Forum

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.