万象城开户优惠最高占成: [MCU] 看懂一幅图明白MSP430F149比较器

澳门星际线上娱乐场登入
255|3
楼主
msp430的比较器,其实这里就是看懂一幅图,两个寄存器,明白工作原理就可以了

这是比较器A的逻辑图,比价器A由4个部分组成

标号1:内部参考电压发生器,可以产生0.25V,0.50v的参考电压

标号2,:外部电压输入端,CA0对应P2.3,CA1对应P2.4

标号3:内部比较器,今天上课刚好上了比较器,也就是正输入端大于负输入端的时候,比较器输出一个1,同时产生一个中断标志位

标号4:也就是比较结果输入端

因此,一般的模版就可以出来了

1:设置内部的参考电压

2:打开外部的输入端

3:设置外部I/O的属性,也就是P2.3或者P2.4的输入属性

4:判断输出的结果



步骤一对应上个步骤的1:这时候就要熟悉寄存器了,比较器A有两个寄存器CACTL1,CACTL2

设置内部参考电压是用CACTL1:这里举一个模版例子:CACTL1 = CARSEL+CAREF1+CAON;

翻译就是,将CACTL1 = 内部参考电压在比较器的正向端输入还是反向端输入+选择是0.25V参考电压还是0.5V参考电压+打开比较器A



步骤二对应上个步骤的2

打开外部的输入端:用的是CACTL2,CACTL2=P2CAO

翻译就是,外部选择的是P2CAO也就是讲P2.3作为输入端,



步骤三:设置I/O属性

P2DIR = 0x00;//把IO设为比较器的输入端
P2SEL |=BIT3;



步骤四:比较输入输出结果:

这时候也要熟悉寄存器了,CACTL2中的最低位,也就是CAOUT,如果正向端大于负向端的话,cout变为1,这时候典型的判断语句就是

if((CACTL2|0xfe) == 0xff)//最低位如果置位为1的话,CACTL1中的最低位,也就是比较器的中断标志位也会置位

{

      进一步操作;

      中断标志置位为1

}



示例代码:将P2.3输入的电压与0.25进行比较,如果大于的话,点亮led灯,并将中断标志清除

#include<msp430x14x.h>

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  CACTL1 =CARSEL +CAREF1 +CAON;
  CACTL2 = P2CA0;
  
  P2DIR = 0x00;//把IO设为比较器的输入端
  P2SEL |=BIT3;
  P3OUT |=BIT5;
  P3DIR |=BIT5;
  
  while(1)
  {
      if((CACTL2 |0xfe)==0xff)
      {
        P3OUT &=~BIT5;     //比较电压是否超过0。25V
        CACTL1 &=0xfe;     //清除中断标志
        
      }
      else
      {
         P3OUT |=BIT5;
      }
  
  }

}
沙发
| 2020-7-26 23:39 | 只看该作者
图文结合 很详细   明了
板凳
| 2020-8-3 11:16 | 只看该作者
MSP430F149比较器都不用了。
地板
| 2020-8-3 11:22 | 只看该作者
楼主的资料分析的还是不错的。           
扫描二维码,万象城开户优惠最高占成:随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

澳门星际线上娱乐场登入 永利游戏开户直营 返回顶部 返回列表
凯发国际游戏 澳门大发62288手机版网上娱乐场 澳门星际线上娱乐场登入 澳門戒赌吧网上娱乐场 下载申博太阳城游戏网上娱乐场
牡丹游戏游戏注册 王子娱乐现金网怎么样 金牛国际信誉度A级 正规博狗开户最高占成 广东会平台真人荷官
华尔街在线开户手机app 大发888bet游戏平台导航 鸿彩快三官网下载 酷彩游戏手机版 钱柜游戏游戏全面支持
可爱水果老虎机游戏 ek娱乐126最高佣金 申博138网址登入 传奇娱乐免费开户 888真人游戏