全球旧事资料 分类
MSP430单片机的比较器工作原理解析
这两天研究了一下430的比较器,开始的时候,没有看懂是怎幺一回事,在网站看这方面的博客,好像懂了,但是一到编程,就变得无从下手,但是,皇天不负有心人,笔者还是把他弄懂了
其实这里就是看懂一幅图,两个寄存器,明白工作原理就可以了这是比较器A的逻辑图,比价器A由4个部分组成
标号1:内部参考电压发生器,可以产生025V,050v的参考电压
标号2,:外部电压输入端,CA0对应P23,CA1对应P24
标号3:内部比较器,今天上课刚好上了比较器,也就是正输入端大于负输入端的时候,比较器输出一个1,同时产生一个中断标志位
标号4:也就是比较结果输入端
f因此,一般的模版就可以出来了
1:设置内部的参考电压
2:打开外部的输入端
3:设置外部IO的属性,也就是P23或者P24的输入属性
4:判断输出的结果
步骤一对应上个步骤的1:这时候就要熟悉寄存器了,比较器A有两个寄存器CACTL1,CACTL2
设置内部参考电压是用CACTL1:这里举一个模版例子:CACTL1

CARSELCAREF1CAON;
f翻译就是,将CACTL1内部参考电压在比较器的正向端输入还是反向端输入选择是025V参考电压还是05V参考电压打开比较器A
步骤二对应上个步骤的2打开外部的输入端:用的是CACTL2,CACTL2P2CAO翻译就是,外部选择的是P2CAO也就是讲P23作为输入端,步骤三:设置IO属性P2DIR0x00把IO设为比较器的输入端P2SEL“BIT3步骤四:比较输入输出结果:
f这时候也要熟悉寄存器了,CACTL2中的最低位,也就是CAOUT,如果正向端大于负向端的话,cout变为1,这时候典型的判断语句就是
if((CACTL20xfe)0xff)最低位如果置位为1的话,CACTL1中的最低位,也就是比较器的中断标志位也会置位
进一步操作;
中断标志置位为1
示例代码:将P23输入的电压与025进行比较,如果大于的话,点亮led灯,并将中断标志清除
i
clude
fvoidmai
(void)Stopwatchdogtimertopreve
tTImeoutresetWDTCTLWDTPWWDTHOLDCACTL1CARSELCAREF1CAONCACTL2P2CA0P2DIR0x00把IO设为比较器的输入端P2SELBIT3
fP3OUTBIT5P3DIRBIT5while(1)if((CACTL20xfe)0xff)P3OUTBIT5比较电压是否超过0。25VCACTL10xfe清除中断标志
felseP3OUTBIT5
fr
好听全球资料 返回顶部