在G2553数据手册里这样定义这个寄存器DTC transfers. These bits define the number of transfers in each bloc,而且我发现,以这个官方例程msp430g2x33_adc10_09为实验对象,其中有如下语句
ADC10DTC1 = 0x20;
ADC10SA = 0x200;
在我修改ADC10DTC1的值时,通过IAR的观察窗,发现程序在0x200以后写入的数据数量随着改变,与之相对应。值为几,就写几个。
令ADC10DTC1=0x04时;memory如图
所以我推测,为了弥补ADC10MEM数量过少的问题,430借助DTC可以将指定位置开辟为ADC的数据存储区,
根据ADC10DTC1的值开辟出相应的存储位置,而ADC采样所得值将按顺序依次将值写在对应位置,循环往复,
比如在单通道多次采样模式下,ADC10DTC1值为4,那么ADC采样值将按顺序从ADC10SA位置开始依次将值写在1位置,2位置,
3位置,4位置,1位置,。。。。。。。如此循环往复。在其他模式下,也是根据采样值的先后按序储存。
不知道我的理解对不对?
这个官方例程采的是A10的值,但为什么我发现在运行时(借助断点),我发现上图里那些02一直不改变,无论温度升高还是降低。
我是新手,不知道我的推测对不对?
fifasanguo:
回复 Triton Zhang:
其实我一直疑问的是,ADC10什么时候进中断啊,尤其是我采用多通道循环采样时,我看了资料上面的时序图,实在是不理解啊,能否粘贴一个时序图,详细讲解下啊?再就是我在选择多通道循环时,怎么可以读取ADC10MEM的值呢,不用那个ADC10DTC??