历史上的今天
返回首页

历史上的今天

今天是:2025年04月07日(星期一)

正在发生

2020年04月07日 | MSP430的比较器

2020-04-07 来源:eefocus

这两天研究了一下430的比较器,开始的时候,没有看懂是怎么一回事,在网站看这方面的博客,好像懂了,但是一到编程,就变得无从下手,但是,皇天不负有心人,笔者还是把他弄懂了

 

其实这里就是看懂一幅图,两个寄存器,明白工作原理就可以了

这是比较器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


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;

      }

  

  }


}


推荐阅读

史海拾趣

Gruner AG公司的发展小趣事
在需要高安全性的控制系统中,如工业自动化、医疗设备等领域,光耦合器可以实现电路之间的电气隔离,提高系统的安全性和可靠性。
ACEINNA公司的发展小趣事
不同的光耦合器型号在CTR值、额定电压和电流、封装形式等方面可能有所不同,因此需要根据具体需求选择合适的型号。
安美通(APPCON)公司的发展小趣事

在发展过程中,安美通始终注重与合作伙伴的互利共赢。公司与多家知名企业建立了战略合作关系,共同开拓市场、分享资源。这些合作不仅为公司带来了更多的商业机会,也提高了其在行业内的知名度和影响力。

EMCORE公司的发展小趣事

为了进一步扩大市场份额,安美通积极开展市场推广和品牌建设。公司参加了多个国内外知名展会和技术交流会议,与众多客户建立了良好的合作关系。同时,安美通还加大了对营销网络的投入,建立了完善的销售体系和客户服务体系,提高了客户满意度和忠诚度。

ATO SOLUTION公司的发展小趣事

面对日益激烈的市场竞争,ATO SOLUTION公司不断创新营销策略,提升品牌知名度和影响力。公司利用互联网和社交媒体等新媒体平台,开展线上宣传和推广活动;同时,还积极参加各类行业展会和论坛,与业界同行和潜在客户进行深入交流和合作。这些创新的营销策略有效地提升了公司的市场影响力,为公司的业务拓展提供了有力支持。

Excel Cell Electronic Co Ltd公司的发展小趣事

自1981年成立以来,ECE公司始终将技术创新作为发展的核心驱动力。早期,公司专注于电子元器件的研发和生产,通过引进国际先进技术,并结合本地市场需求进行创新,成功推出了一系列具有竞争力的产品。随着技术的不断进步,ECE公司不断加大研发投入,积极探索新的应用领域,逐渐成为电子行业的领军企业。

问答坊 | AI 解惑

Atheros communications (上海)高薪聘FPGA工程师

WiFi领域著名美资公司,具有竞争力的薪资。 招聘具有相当FPGA经验者,具有一定在IC公司工作的工作背景。 请发送简历至truelygoing@163.com。 工作地点:张江高科,距地铁站5分钟。 注:邮件标题请加上“[FPGA]”,谢谢。…

查看全部问答>

字符结构知识在车牌识别中的应用

汽车牌照识别是基于图像分割和图像识别理论,对含有汽车牌照的图像进行分析处理,从而确定汽车牌照在图像中的位置,并进一步提取和识别出文本字符。从不同车牌图像中分割出的字符图像各式各样,尺寸变化范围大,增加了识别的难度。尽管可以采用图像 ...…

查看全部问答>

旧电脑的电源用于LED驱动

现在很多旧的电脑电源都浪费了,其实用于驱动LED灯比较好。 但是如果直接用限流电阻的话,效率较低。由于电脑电源是开关电源,它先把220V 交流电整流变换成频率较高的振荡,然后整流成5V、 12V等,可在5V 、12V的次级线圈上,整流管之前引出高频的 ...…

查看全部问答>

【FPGA设计问题】Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改?

Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改? Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改?本人以前使用的是Xilinx的FPGA,现在改用Altera的FPGA,不知道在对双向端口的控制在Altera中是怎样实现的,直接用下面的assign语句可以保 ...…

查看全部问答>

关于WINCE应用程序

我把整个的NAND FLASH读出来,然后通过一些办法把NK文件读出来了。。 但是我发现里面的都是系统文件,里面原先写入NAND FLASH文件的文件不能导出来。请问有什么办法把这些导出来。。 我写个示意图: 00000000H:xx xx xx xx xx xx xx xx xx xx ...…

查看全部问答>

GSM家居电器控制和远程数据采集大讨论,大家快来,有积分!!!

GSM家居电器控制和远程数据采集大讨论大串联,大家快来,有积分!!!…

查看全部问答>

一个傻问题,我是新手

我想问一下,烧写flash时的地址是谁确定的,我个人认为是bootloader确定的,可是如果修改该怎么修改呢?…

查看全部问答>

BSP的定制问题。怎么做自己需要的NK啊

我的开发板有做好的BSP包,我想屏蔽去掉一些驱动,写上自己的驱动,然后烧到板子里去,怎么做自己的镜像呢? 新手,求指教!!!! 我的驱动也写好了,屏蔽原有的驱动是不是直接删掉DRIVERS下的驱动文件就可以了呢???…

查看全部问答>

大家好,请问这里有过英蓓公司 EDUKIT-III ARM 开发箱子吗?加我QQ 请教、交流,学习,

大家好,请问这里有过英蓓公司 EDUKIT-III ARM 开发箱子吗?加我QQ 请教、交流,学习,…

查看全部问答>

TIMERB的应用!!急!!!

我想用定时器b来做iar里面定时器a的演示程序功能。但是我把程序改好之后,一直不能正常运行,从右面的disassem××y窗口里面看不到数据。请问为何。程序那里有错?谢谢大侠!!! #include <msp430x14x.h> void main(void) { P1DIR |= 0x0 ...…

查看全部问答>