请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430FR5969 工具/软件:Code Composer Studio
您好,
我正在使用msp430fr5969 UC。 我正在尝试将DMA与ADC集成。 尽管目标地址增加,但一切都正常。 它不会更改每个DMA中断。
这是我的代码:
UINT16_t res_data[4];...
void DMA0_init(){
DMACTL0 = DMMA0TSEL__ADC12IFG;//DMA触发器分配:26=ADC12转换结束
DMACTL4 = DMARMWDIS;
DMMA0CTL = DMADT_4 | DMASINCR_0 | DMASDR_0 =无
符号DMAC10_DMAC10; DMAD_DMAD_DMA103; DMAD_DA_DMACDMAD_DIF_DMA0
//目标单地址
DMA0CTL |= DMAEN;
}
作废测量_3V3_Init (作废)
{
//初始化共享参考模块
同时(REFCTL0和REFGENBUSY); //如果ref发生器忙,请等待
REFCTL0 &=~REFVsel_0; //启用内部1.2V参考
REFCTL0 |= REFVSEL_2 + REFON; //启用内部1.2V参考
//初始化ADC12_A
ADC12CTL0 &=~ADC12ENC; //禁用ADC12
ADC12CTL0 = ADC12SHT0_8 + ADC12ON; //设置采样时间
ADC12CTL1 = ADC12SHP | ADC12CONSEQ_0; //启用采样计时器
ADC12CTL3 = ADC12BATMAP; //启用内部温度传感器
ADC12MCTL0 = ADC12VRSEL_1 + ADC12INCH_31;// ADC输入通道A30 =>温度感应
while (!(REFCTL0 & REFGENRDY)); //等待参考发生器稳定下来
ADC12CTL0 |= ADC12ENC;
}
作废测量触发器(作废)
{
while (!(REFCTL0 & REFGENRDY));
ADC12CTL0 |= ADC12SC; //开始采样/转换
__bis_sr_register (GIE); //只是为了以防万一?
}
...
而(1){
Measure_3V3_Init(); //内部3V3电压ADC REG设置
Measure_Trigger(); //使用中断启动测量
__DELAY周期(30万);
}
DMA ISR仅包含检查DMA0DA的nop操作。 你有什么建议吗? 我错过了什么吗?
谢谢你的建议! :)