unsigned long results_MPY16X16[128]={0};
DMACTL1=DMA2TSEL__MPY; //乘法器触发
__data16_write_addr((unsigned short) &DMA2SA,(unsigned long)&RESLO); //源地址
__data16_write_addr((unsigned short) &DMA2DA,(unsigned long)&results_MPY16X16[0]); //目的地址
DMA1SZ=2; //2个字
DMA2CTL=DMADT_4+DMASWDW+DMADSTINCR_3+DMASRCINCR_3+DMAEN+DMAIE; // 目的地址增,源地址增,重复单次转化,
#pragma vector=DMA_VECTOR //DMA2中断函数
__interrupt void DMA_ISR(void)
{
switch(__even_in_range(DMAIV,16))
{
case 0: break;
case 2: break; // DMA0IFG = DMA Channel 0
case 4: break; // DMA1IFG = DMA Channel 1
case 6:
{
_NOP();
} break; // DMA2IFG = DMA Channel 2
case 8: break; // DMA3IFG = DMA Channel 3
case 10: break; // DMA4IFG = DMA Channel 4
case 12: break; // DMA5IFG = DMA Channel 5
case 14: break; // DMA6IFG = DMA Channel 6
case 16: break; // DMA7IFG = DMA Channel 7
default: break;
}
}
问题是:为什么从results_MPY16X16[0]到results_MPY16X16[28] 每个数组元素都有数值(不是0),后面数组元素的没有值(为0).
应该是只在results_MPY16X16[0]和results_MPY16X16[1],中有数值。为什么会出现上面的问题?谢谢