Forum: Mikrocontroller und Digitale Elektronik ADC bei LPC1343 auslesen


von Horst F. (dmdhl)


Angehängte Dateien:

Lesenswert?

Liebe Freunde,

ich weiß langsam nicht mehr weiter:

Mein Ziel ist es die PIN Pio1-10 = ADC6 als Analogwert (AD-Wandler 
einzulesen) Board LPC P1343 von Olimex

Hab folgendes gemacht:

PDRUNCFG: Bit 5 löschen (Sleep deaktivieren)
SYSAHBCLKCTRL: Bit 13 setzen (CLK anmachen)
IOCON_PIN1_10: Bit 1 setzen (auswählen)
AD0CR: SEL    -> 0x40
       ClkDiv -> 0x0F (bei 72 Mhz)
       Burst  -> 0
       Clks   -> 3 (8-Bit-Wert)
       Start  -> 1
AD0GDR auslesen und warten bis Bit 31 eine 1 ist..
auch
AD0DR6 gibt keine Werte aus

Was hab ich vergessen oder falsch gemacht?

Anbei noch das Assemblerprogrämmchen dazu...

von Jim M. (turboj)


Lesenswert?

1
LDR r0, =AD0GDR
2
ADC_WARTE:
3
LDR r1, [r0]
4
LDR r2, [r0]
5
LDR r3, =0x80000000
6
// Warten, dass Bit 31 eins ist
7
AND r2,r3
8
// MOV r1, #46 // Testwert
9
BEQ ADC_WARTE

Das macht nicht unbedingt was Du denkst. Denn es kann passieren, das in 
R1 der "alte" Wert (ohne Daten/Bit 31) und nur in R2 der "nächste" drin 
steht.
Mach mal aus dem
1
LDR r2, [r0]
 ein
1
MOV r2,r1

von Horst F. (dmdhl)


Angehängte Dateien:

Lesenswert?

Erst einmal danke Jim...

aber das half mir leider nicht... in beiden Register (das ja ja sicher 
jetzt) steht immer noch eine Null...

Hast Du vielleicht noch eine Idee, was ich vergessen oder falsch gemacht 
haben könnte?

lg Horst

von Horst F. (dmdhl)


Lesenswert?

achja, noch ein Tip:

ich verwende CrossWorks als Evaluationsversion... ist eine wirklich gute 
IDE. Leider nur 30 Tage verwendbar... (außer man setzt das Systemdatum 
zurück... grins)

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.