Hallo,
habe das jetzt so gemacht ich weiß aber nicht ob das im Sinne des
Erfinders ist.
1. DMA einschalten
2. Trigger Kanal im DMA auswählen hier AD Wandler
3. Quelle Wählen und hier weiß ich nicht ob das so richtig ist denn ich
greife hier direkt auf das Result Register CH0 des AD Wandlers zu und
schiebe das in den Ram ab 0x2000.
4. Enable DMA Kanal 0
Jetzt eine Frage
Das Enable Kanal 0 Bit wird nach jeder Übertragung ausgeschalten soll
das so sein denn die Triggerquelle ist der AD Wandler B. Ich dachte ich
kann das automatisch im Hintergrund laufen lassen ohne per Software das
Bit setzen zu müssen und was für eine Bedeutung hat das DMA Selection
Register im AD Wandler speziell DAMSEL 1 und 2.
ldi temp,DMA_CH_ENABLE_bm
sts DMA_CTRL,temp ;einschalten
ldi temp,DMA_CH_TRIGSRC_ADCB_CH4_gc; Trigger Kanal 0,1,2,3
sts DMA_CH0_TRIGSRC,temp
ldi temp,low(ADCB_CH0RES)
sts DMA_CH0_SRCADDR0,temp // Channel Source Address 0
ldi temp,high(ADCB_CH0RES);0x20
sts DMA_CH0_SRCADDR1,temp // Channel Source Address 1
ldi temp,0x00
sts DMA_CH0_SRCADDR2,temp // Channel Source Address 2
ldi temp,0x00
sts DMA_CH0_DESTADDR0,temp // Channel Destination Address 0
ldi temp,0x20
sts DMA_CH0_DESTADDR1,temp // Channel Destination Address 1
ldi temp,0x00
sts DMA_CH0_DESTADDR2,temp // Channel Destination Address 1