最近被AD折腾得够呛,终究在今天有了打破,这部分程序总算被我搞定了
AD部分首要装备ADC12模块的时钟、参阅源、采样通道、采样形式、存储和采样坚持。
我就一个部分一个部分来
第一个是ADC12模块的时钟,这个是模块运行时的时钟,跟采样定时器是两个概念,从前我有一段时刻被利诱住了。这个由ADC12CTL1里边的ADC12SSEL和ADC12DIV装备,能够挑选ADC12OSC/ACLK/SMCLK/MCLK,TI例程里边如同都是挑选的ADC12OSC,这个是5MHZ,不过频率简单受外界影响而改动。这个部分装备好了就得到了ADC12CLK。
第二个参阅源,这个部分我没有详尽研讨,由于我的规划里边不必这个,略过不提。
第三个采样通道,跟这个有关的寄存器有ADC12MCTL和ADC12CTL1的ADC12CSTARTADD。第一种单通道采样,ADC12MCTL挑选采样的输入通道,ADC12CSTARTADD的值挑选这个通道采样的值存入哪个存储寄存器内。比方:
ADC12CTL1 |= ADC12CSTARTADD3+ADC12CSTARTADD2+ADC12CSTARTADD1;
ADC12MCTL14 = ADC12INCH_14;
上面这两句便是采样通道14,通道14采样的值存入到ADC12MEM14里边。假如你不设置ADC12CSTARTADD的值的话,采样的值默许存入ADC12MEM0里边。
第二种序列通道采样,ADC12MCTL挑选采样的输入通道,ADC12CSTARTADD的值挑选这个序列采样的值首个存入的存储寄存器。比方:
ADC12MCTL0 = ADC12INCH_0;
ADC12MCTL1 = ADC12INCH_1;
ADC12MCTL2 = ADC12INCH_2;
ADC12MCTL3 = ADC12INCH_3;
ADC12MCTL4 = ADC12INCH_4;
ADC12MCTL5 = ADC12INCH_5;
ADC12MCTL6 = ADC12INCH_6;
ADC12MCTL7 = ADC12INCH_7+ADC12EOS;
我并没有装备ADC12CSTARTADD的值,所以开端采样后,通道0的值存入ADC12MEM0,通道1的值存入ADC12MEM1里边,顺次类推。
第四个采样形式,这个依照用户辅导里边的形式示意图来写程序就能够,装备用ADC12CTL1里边的ADC12CONSEQ来装备。
第五个存储没什么要写的,在第三个采样通道里边说到的就能够了,我首要讲下最终一个采样坚持,这个部分是我领会的新的知识点。
采样坚持是由采样定时器触发信号SHI信号引起的,这个部分从前利诱了我好长一段时刻。SHI信号由ADC12CTL1的ADC12SHS装备,有4个挑选:ADC12OSC/TIMERA.OUT1/TIMERB.OUT0/TIMERB.OUT1。采样坚持分两种形式,由ADC12CTL1的ADC12SHP位操控,ADC12SHP=0时是扩展形式,ADC12SHP=1时是脉冲形式。第一种扩展形式,SHI信号上升沿开端采样,上升沿后的高电平时刻即为采样时刻,SHI信号下降沿进行采样成果转化,转化需求13个ADC12CLK。第二种脉冲形式,SHI信号触发采样定时器,采样定时器便是操控你什么时候开端采样,什么时候开端转化,采样定时器由ADC12CTL0的ADC12SHT0和ADC12SHT1装备,在采样定时器时刻内进行采样,采样后就当即进行采样成果转化。假如这时你的ADC12MSC=1的话,假如的单通道采样就会不断进行单通道采样转化,假如是序列通道,就会一向采样转化直到ADC12EOS=1.假如ADC12MSC=0,则采样完毕,下一次采样的时刻是下一个SHI信号的上升沿来暂时。
好了,就这么多,今后假如有增加了再写了
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/260541.html