cc2510 Port lesen per DMA

Gast #2429232
Lesenswert?

Hallo an alle,
Seit Tagen versuche ich meinem cc2510 MCU von TI zu überreden das Port1 
per DMA in ein Array zu lesen. Leider funktioniert das nur mit mäßigen 
Erfolg. Wenn ich das Port direkt auslese (Test = P1) klappt es 
wunderbar. Wenn ich für das Gleiche die DMA benutze bekomme ich immer 
nur das Reset Value vom Port zurück. Hat einer von euch eine Idee was 
ich falsch mache???
Und ist das überhaupt möglich?

Hier die Funktion:
1
#define DATA_AMOUNT 512
2
static char copy[DATA_AMOUNT];
3
static DMA_DESC dmaConfig0;  
4
void main(void){
5
  P1SEL = 0x00;
6
  P1DIR = 0x00;
7
  P1INP = 0x00;
8
  P2INP = 0x40;
9
    dmaConfig0.SRCADDRH  = ((uint16)P1 >> 8) & 0x00FF;   // I thought here should stand 0xDF90 ????
10
    dmaConfig0.SRCADDRL  = (uint16)P1 & 0x00FF;
11
    dmaConfig0.DESTADDRH = ((uint16)copy >> 8) & 0x00FF;
12
    dmaConfig0.DESTADDRL = (uint16)copy & 0x00FF;
13
    dmaConfig0.VLEN      = DMA_VLEN_USE_LEN;
14
    dmaConfig0.LENH      = (DATA_AMOUNT >> 8) & 0x00FF;
15
    dmaConfig0.LENL      = DATA_AMOUNT & 0x00FF;
16
    dmaConfig0.WORDSIZE  = DMA_WORDSIZE_BYTE;
17
    dmaConfig0.TMODE     = DMA_TMODE_BLOCK;
18
    dmaConfig0.TRIG      = DMA_TRIG_NONE;
19
    dmaConfig0.SRCINC    = DMA_SRCINC_0;
20
    dmaConfig0.DESTINC   = DMA_DESTINC_1;
21
    dmaConfig0.IRQMASK   = DMA_IRQMASK_DISABLE;
22
    dmaConfig0.M8        = DMA_M8_USE_8_BITS;
23
    dmaConfig0.PRIORITY  = DMA_PRI_HIGH;
24
    DMA0CFGH = ((uint16)&dmaConfig0 >> 8) & 0x00FF;
25
    DMA0CFGL = (uint16)&dmaConfig0 & 0x00FF;
26

27
  DMAREQ |= DMAREQ0;
28

29
  while ( !(DMAIRQ & DMAIRQ_DMAIF0) );
30

31
  DMAIRQ &= ~DMAIRQ_DMAIF0;
32
while(1);
33
}

Danke schonmal im Voraus :D

Gruß

Roland
Gast #2430025
Lesenswert?

Hi,
Ok es sieht so aus als hätte ich keinen Zugriff auf diese eine XDATA 
Adresse:

 *   Some SFRs are not accessible through XDATA space.  For clarity, 
entries are included for these
 *   registers.  They have a prefix of _NA to denote "not available."

Gibt es da vielleicht noch eine Hintertür die ich benutzen kann? Diese 
Adresse umgehen oder so?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren