TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F55xx_dma_04示例程序中断进入疑问

再次在附件中附上示例程序,问题具体描述:

这段程序是用TimerB触发ADC12的转换,然后将结果通过DMA从ADC12MEM0储存到RAM中,中断的作用是来用LED灯显示DMA执行情况。

1.在程序运行的过程中,什么时候进入的中断?我通过示波器和寄存器窗口发现,进入中断后Timer依然在触发ADC,转换依然在继续,感觉像是while(1)循环。

2.若是想在转换2000个值之后退出ADC该怎么操作?

Thanks

Triton Zhang:

1. 程序运行过程中,当DMAxSZ值被置0后相应的DMAIFG标志位会被置1,然后DMAIFG标志位触发系统进入中断.

2. DMA中断并不代表TB的计数会停止,所以TB任然会触发ADC采样。

3. 如果你想实现转换2000个值后停止ADC采样,可以吧DMAxSZ的值设置成2000,这样当完成2000次转换后,系统会进入到DMA中断中,在DMA中断程序中你关闭TB和ADC即可。

4. 例程中使用的是1次DMA转换,要实现楼主的功能需要更改目的BUFF。

Haiqi Bian:

回复 Triton Zhang:

4. 例程中使用的是1次DMA转换,要实现楼主的功能需要更改目的BUFF。

那除了要改变DMA_DST为DMA_DST[2000]之外,还需要改变其他变量吗?MSP430F5529的RAM有四个sector,每个sector都有2KB,应该不需要改变DMA0DA吧

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F55xx_dma_04示例程序中断进入疑问
分享到: 更多 (0)