下载此文档

MSP430定时器A中文超级详解.pdf


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
: .
文章转载自网络----- //定时器 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单片机定时器 Timer_A




Timer_A定时器:

注:msp430有两个16位定时器 Timer_A 和 。
主要有 TACTL,TAR,CCTL0,CCR0,CCTL1,CCR1,CCTL2,CCR2,TAIV 几个寄存器。其中最主要的是TACTL 寄存器,它决定 Timer_A 的输入时钟信号,Timer_A 的工作模式,Timer_A 的开启与停止,
中断的申请等。

定时器 A 大致可分为四个功能模块:计数器、比较/捕获寄存器0、比较/捕获寄存器1、比较/捕获
寄存器2。计数器是主体它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有
一个溢出中断,也就是当计数由0xffff 到0时会产生一个中断。那怎么实现定时功能呢?这就要靠
三个比较/捕获寄存器了以后用 CCRx 表示。CCR0比较特殊,通过他可以改变计数器的最大计数
值,也就是当计数器计数到 CCR0的值时自动会将计数器清零。但这需要设置相应的工作模式,
模式列表如下:
0——停止模式,用于定时器的暂停
1——增计数模式,计数器计数到 CCR0,再清零计数
2——连续计数模式,计数器增计数到0xffff,再清零计数
3——增/减计数模式,增计数到 CCR0,再减计数到0
当计数器计数到 CCR0时,CCR0单元会产生一个中断。同样当计数器计数到 CCR1和 CCR2时,
两个单元也都会个产生一个中断。这样我们可以通过定时器 A 得到三个定时时间了。

MSP430定时器A中文超级详解 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小s
  • 文件大小386 KB
  • 时间2022-08-27