比较器就是模拟电压比较器。该模拟外设可以用于外部模拟信号的检测或者电源电压的监测
比较器包括:同向和反向输入端的输入多路选择器,比较器,RC滤波器,基准电压发生器;
我们主要需要设定两个寄存器CACTL1,CACTL2;
从图中可以看出,我们需要设定同向输入端的输入源,反向输入端的输入源;
从图中,我们可以看出,参考电压的选择是依靠Vcaref的
而参考电压是进入同向端还是进入反向端,则是由CARSEL和CAEx来决定的勒
同我们的参考电压进行比较的也就是CA0或者CA1了
通过CACTL2中的P2CA1,P2CA0来选择;
下面是一个基本的例程。
void main ()
{
WDTCTL=WDTPW+WDTHOLD;
CACTL1=CARSEL+CAREF0+CAON;
CACTL2=P2CA0;
P2DIR=0X00; //把IO设置成比较器的输入端
P2SEL|=BIT3; //选择片内外设比较器
P3DIR=0XFF;P3OUT=0XFF;
while(1)
{ if((CACTL2|OXFE)==0XFF)
{
P3OUT&=~BIT0;
CACTL1&=0XFE; //清除上升沿时发出的中断请求的标志位; } else
{
P3OUT|=BIT0;
}
}
}
对于这个例子我有点小小的疑问:CACTL中的CAIE即中断使能,这个位默认为0,就是说中断不会发生,那么,为什么我们还需要把中断请求标志位清除使之为0呢??
对上面那个简单例程的猜想:
其中语句:
P2DIR=0x00;
P2SEL|=BIT3;
这些在这个例程中,应该是不需要的,因为我根本就没有用到P2IN;
并没有让P2为比较器做数据输入输出的事情;
关键字:MSP430 比较器 模拟信号
引用地址:
MSP430比较器小结
推荐阅读最新更新时间:2024-11-21 13:47
MSP430操作ADC0808程序
虽然MSP430F149自带10位的ADC,出于各种原因,我还是选用了ADC0808作为AD转化,下面是程序: #include msp430x14x.h #include lcd.h #define DATA_DIRIN P3DIR=0x00; #define DATA P3IN #define START_DIROUT P4DIR|=BIT0 //P4.0- START #define CLR_START P4OUT&=~BIT0 #define SET_START P4OUT|=BIT0 #define OE_DIROUT P4DIR|=BIT1 //P4.1- OE #define CLR_OE
[单片机]
MSP430单片机在PTN产品中的应用介绍
PTN是一种以面向连接的分组技术为内核,同时具备端到端的业务管理、层次化OAM及电信级保护等传送特性,以承载电信级以太网业务为主,兼容TDM、ATM等业务的综合传送技术。 PTN分组传送网是目前传输界公认取代SDH的下一代传输技术,1850TSS是阿尔卡特朗讯为应对移动IP业务发展的趋势确定性以及模式不确定性推出的平滑演进的端到端PTN传送解决方案。1850TSS系列产品包括从接入到核心一系列不同容量的设备,目前在国内市场推出的是TSS-3、TSS-5、TSS-40、TSS-100、TSS-160和TSS-640/320等几款产品。 TSS-5定位适用于TDM/以太网混合接入场景,可配置成STM-4级别的SDH/MST
[单片机]
stm32的adc总结
在时间应用中对模拟信号的采集非常多,我们经常使用到的是ADC采集,模数转换。stm32自己带有adc采集接口,一些总结如下:
[单片机]
MSP430复位的几种情况
---------------------------------------------------------------------- 1.看门狗超时复位 由于没有及时喂狗或在程序一开始没有关闭看门狗,导致看门狗溢出复位。在调试阶段应该屏蔽看门狗,在程序的一开始使用WDTCTL = WDTPW + WDTHOLD; 语句关闭看门狗。 2.堆栈溢出复位 如果堆栈溢出导致复位,你应该感到庆幸,庆幸你发现了。在程序编译完成后应该看map,查看当前堆栈使用情况,430的22×2和2471堆栈都是默认80B,可以开启堆栈使用量报警。按照老鸟的说法,自己使用了多少堆栈自己心里应该清楚。对于我们这样的菜鸟,我说,编译器清楚,呵呵。
[单片机]
msp430 timerA interrupt
#include msp430x24x.h #define uchar unsigned char #define uint unsigned int uchar table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar position = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar count=1,count1=0,i,j; void show(uchar pos,uchar num) { P4OUT = 0x
[单片机]
msp430f5438定时器1s的程序
void time_init_1s() { TA1CCTL0 = CCIE; // CCR0 interrupt enabled TA1CCR0 = 16383; TA1CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, Up to CCR0 , clear TAR } //中断服务程序 #pragma vector=TIMER1_A0_VECTOR __interrupt void TIMER1_A0_ISR(void) { P5OUT ^=BIT4; TA1CCR0 += 16383; // Add Offset to CCR
[单片机]
MSP430F5529关于SPI模式的学习
一、MSP430F5529——SPI模式 在SPI模式下,数据的发送和接收是由多个器件共享一个主时钟运行的。 MSP430提供一个额外的引脚,该引脚被主机控制,用来使外部器件执行接收和发送的数据所产生的功能。 UCxSTE(统一通信的专用测试设备引脚) MSP430提供3或4个信号用于SPI数据转换: UCxSIMO -主模式:UCxSIMO是数据输出行 -从模式:UCxSIMO使数据输入行 UCxSOMI -主模式:UCxSOMI为数据输入行 -从模式:UCxSOMI为数据输出行 UCxCLK – USCI SPI Clock -主模式:UCxCLK作为输出时钟 -从模式:UCxCLK作为
[单片机]
MSP430系统应用结构设计与选型
1 MSP430 简介 MSP430是TI公司推出的16位单片机系列产品,在电池供电的低功耗应用中具有独特的优势。其工作电压为1.8~3.6 V,正常工作时功耗可控制在200μA左右,低功耗模式可实现2μA甚至O.1μA的低功耗。MSP430系列单片机作为性能优异的MCU在中国已经得到了广泛的应用。MSP430具有高集成度,通常在单个芯片上集成了12位的A/D转换器、比较器、多个定时器,以及片内USART、看门狗、片内DCO等。一般单片就可满足大多数的应用需要。 MSP430单片机的程序存储器是Flash存储器,并且支持JTAG在线编程,可以方便地实现程序的下载、仿真、调试和升级。 目前整合性最好的MSP430F44X系列
[应用]