1-程序描述
利用MSP430单片机定时器A和捕获/比较功能模块结合使用,实现脉冲宽度的测量。
本例程用到了定时器A的CCI1A端口(例如MSP430F14X的P1.2引脚)作捕获外部输入的脉冲电平跳变,同时结合简单的软件算法就能实现脉冲宽度的测量。在实际应用中可根据例程中的start,end,overflow三个变量来计算脉冲宽度。此功能模块在实际产品应用中体现出有较高的应用价值。
2-例程
#include
unsigned int start,end;
unsigned char overflow;
void main (void)
{
WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器
P1DIR = BIT0+BIT4; //设置P1.0方向为输出
P1SEL = BIT2; //设置P1.2端口为功能模块使用
TACTL = TASSEL0+TACLR+TAIE+MC1; //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式
CCTL1 = MC0+SCS+CAP+CCIE; //输入上升沿捕获,CCI0A为捕获信号源
_EINT(); //中断允许
while(1); //LOOP
}
#pragma vector=TIMERA1_VECTOR //定时器A中断处理
__interrupt void timer_a(void)
{
switch(TAIV) //向量查询
{ case 2: //捕获中断
if(CCTL1&CM0) //上升沿
{
CCTL1=(CCTL1&(~CM0))|CM1; //更变设置为下降沿触发
start=TAR; //记录初始时间
overflow=0; //溢出计数变量复位
}
else if (CCTL1&CM1) //下降沿
{
CCTL1=(CCTL1&(~CM1))|CM0; //更变设置为上升沿触发
end=TAR; //用start,end,overflow计算脉冲宽度
}
break;
case 10: //定时器溢出中断
overflow++;
break; //溢出计数加1
default:break;
}
}
//例程结束
关键字:MSP430 定时器A 脉冲宽度
引用地址:
利用MSP430定时器A测量脉冲宽度范例
推荐阅读最新更新时间:2024-03-16 15:05
MSP430的车载酒精探测控制仪设计方案
本文提出了一种基于MSP430单片机的超低功耗酒精探测控制仪,该仪器安装在汽车内,当驾驶人员进入驾驶室后,可以自动对酒精浓度进行探测,以确保行车的安全。系统可以根据检测到的酒精含量是否超标控制汽车点火器打开或者关闭,如果超标,则驾驶人员无法启动汽车,因此从根本上杜绝了酒后驾车的出现。该系统具有性价比高,智能化程度高,工作稳定可靠的优点。 系统工作原理 系统采用超高灵敏度酒精传感器,超低功耗单片机系统,自动探测酒精浓度的方法,可以防止驾驶人员逃避检测,以判断驾驶员是否是酒后开车,系统总体设计如图1所示。该系统可放置在汽车仪表盘位置,当司机发动汽车时,探测控制仪启动,此时发动机处于被锁状态,汽车无法启动。酒精传感器加热后,探测控制
[单片机]
MSP430F169中关于RS485通讯的问题
1、大体框架:实现单片机和PC机之间的通讯。 PC机(USB接口)发送字符,经过USB 转RS232,再经过RS232转RS485,到单片机(RS485 接口)接收字符。 2、程序设计如下: 分步调试的过程中,无论发送什么样的字符,RXBUF1变量始终是0X01。求指导!!! /*********************************************** 程序功能:通过RS485端口接收传感器的数据,然后通过RS232把数据传出到显示屏 ------------------------------------------------ 测试说明:首先查看RS485接收到的数据,然后用串口调试工具,查看发
[单片机]
MSP430 F5529 单片机 OLED 大炮 发射 抛物线
为了便于开发,我做了一块扩展板子: https://blog.csdn.net/x1131230123/article/details/108772807 扩展板有一些常用器件,这样开发MSP430 F5529程序的时候,就不用杜邦线连接了。当然也可以选择杜邦线连接器件,效果都一样。 Cannon. Draw a cannon on the lower left, with a barrel. Display and control speed and angle with buttons. Another button fires the cannon. Show the bullet path. Generate a rand
[单片机]
MSP430F5529与常见的矩阵键盘
键盘外观 键盘外观一般是这个样子的,淘宝上常见的有4x4和4x3的,也有不是薄膜而是按键矩阵的键盘,但是原理都大同小异。 键盘原理图 一般来说,键盘有多少行多少列,就有行数+列数这么多的管脚。当按钮按下后,按钮所在行列开关合上,行列之间的管脚就连通了。 单片机实现 4x3键盘 根据键盘的原理图,不难想到我们要用管脚扫描的方式来检测哪个键按下。 将行管脚设为输入,列管脚设为输出(当然也可以反着来),每次只让一个列管脚为高电平,再检测行管脚的电平高低情况,即可检测键盘是哪个键按下了。 初始化管脚 void keyboard_init(){ //设置行管脚为输入 P3DIR &= ~BIT6; //P3.6端口
[单片机]
MSP430学习笔记3——MSP430的寻址模式
汇编语言指令的基本构成 显然汇编指令由操作数和操作码组成。 1、那什么是操作码呢? 操作码:指明CPU要执行什么样的操作。是一条指令必不可少的部分,在汇编语言中用助记符表示。 2、什么是操作数呢? 操作数:指明参与操作的数据或数据所在的地方。 3、寻址方式 因此寻址方式就是指在汇编语言中需指明操作数所在的地方。MSP430共有七种寻址方式。 使用示例
[单片机]
MSP430的比较器
这两天研究了一下430的比较器,开始的时候,没有看懂是怎么一回事,在网站看这方面的博客,好像懂了,但是一到编程,就变得无从下手,但是,皇天不负有心人,笔者还是把他弄懂了 其实这里就是看懂一幅图,两个寄存器,明白工作原理就可以了 这是比较器A的逻辑图,比价器A由4个部分组成 标号1:内部参考电压发生器,可以产生0.25V,0.50v的参考电压 标号2,:外部电压输入端,CA0对应P2.3,CA1对应P2.4 标号3:内部比较器,今天上课刚好上了比较器,也就是正输入端大于负输入端的时候,比较器输出一个1,同时产生一个中断标志位 标号4:也就是比较结果输入端 因此,一般的模版就可以出来了 1:设置内部的参考电压 2:打开外部
[单片机]
MSP430用按键中断控制定时器产生持续 1s 的周期信号
////////////////////////////////////////////////////////////////////////////////////////////////////// // 2012 年吉林省大学生电子设计大赛 C题 声源定位系统 ----(声源部分) // 要求: 有信号产生电路, 放大电路, 声音频率 800Hz 左右, 按一次键响声持续 1 秒. // 声源模块体积不超过 4cm*4cm*4cm. //======================================================================================
[单片机]
MSP430与I2C总线接口技术的研究
引言
MSP430单片机自从2000年问世以来,就以其功能完善、超低功耗、开发简便的特点得到了许多设计人员的青睐。MSP430与传统的51单片机在结构上有很大的区别。其中之一就是:在MSP430的外围接口电路中,没有提供像51那样控制外设读、写、地址锁存信号的硬件电路。与这种接口电路相适应,MSP430更倾向使用I2C总线以及ISP等基于串行接口的外围器件。另一方面,随着I2C技术的发展和成熟,其硬件结构简单、高速传输、器件丰富等特点使该类器件的应用越来越广泛。因此研究新型单片机MSP430与I2C总线接口技术有着重要的意义。本文针对这一问题进行研究,分析研究了MSP430与I2C总线接口的原理和方法,提出了高效的接
[单片机]