当前位置: 首页 > news >正文

msp430的定时器A 划分几个独立时间间隔

TAIV:

#define TAIV_TACCR1         (0x0002)   

#define TAIV_TACCR2         (0x0004)   

#define TAIV_TAIFG          (0x000A)   

TIMERA1_VECTOR是一个中断向量,主要处理CCR1,CCR2,以及定时器A溢出的中断标志,而CCR1,CCR2,以及定时器A产生中断是的TAIV是不同的,分别是2,4,10

switch( TAIV ) { case 2: break; case 4: break; case 10: P3OUT ^= BIT4; break; }

这一句的意思是,判断是哪个产生中断的,以执行不懂的程序,当然,在里面没写有,但是当你自己去写的时候可自己加进去。

CCR0,CCR1,CCR2

分别是比较/捕获模块1,2,3的比较/捕获寄存器,一般CCR0用来控制周期。

至于具体怎么应用,这是很难解释的,解释了可能你还是不同。最好的办法就是一边写程序,一边查书。

6月2日 周四 晴    定时器A

现在的认识:

MSP430 5438 有3个时钟,分别是 TA0、TA1 和TB

了解了定时器A的用法:

定时器A可以分成几个独立的时间周期。这几个时钟周期共用一个计数器TA1R 或TA0R。

在头文件中可以查到:

#define TIMER1_A1_VECTOR    (48 * 2u)
 #define TIMER1_A0_VECTOR    (49 * 2u)

#define TIMER0_A1_VECTOR    (53 * 2u)
#define TIMER0_A0_VECTOR    (54 * 2u)

TIMER0 含  TA0CCR0- TA0CCR4 五个

TIMER1 含  TA1CCR0- TA1CCR2 三个

TA0CCR0 对应中断向量 A0_VECTOR   

TA0CCR1-4 对应中断向量 A1_VECTOR   

 //A0定时器,用于界面处理
  TA0CCTL0 = CCIE;                          // CCR0 interrupt enabled
  TA0CCTL1 = CCIE;                          // CCR1 interrupt enabled//时间周期1使能
  TA0CCTL2 = CCIE;                          // CCR2 interrupt enabled//时间周期2使能
 TA0CCTL3= CCIE;                          // CCR3 interrupt enabled//时间周期3使能
 //TA0CCTL4= CCIE;                          // CCR3 interrupt enabled//时间周期3使能
  TA0CCR0=256;//TA0R 计数到65535才清零。
  TA0CCR1=4096;  //1s
  TA0CCR2=1024; //1/4
  TA0CCR3=8192;  //2s

  TA0CTL = TASSEL_1+ID_3 + MC_2 + TACLR+ TAIE;     // ACLK, 8分频,MC_2:连续模式, clear TAR 

// Timer1 A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0 (void)
{
 // TA0CCR0 += 64;// Add Offset to CCR0
  TA0CCR0 += 256;// 1/16s Add Offset to CCR0
  if(ReadUART0_new>0)
    ReadUART0_new--;
   if(ReadUART1_new>0)
    ReadUART1_new--;
}

// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMER0_A1_VECTOR
__interrupt void TIMER0_A1_ISR(void)
{
  switch(__even_in_range(TA0IV,14))
  {
  case 0:   
    break;
  case 2:
    TA0CCR1 +=4096;                //1s  Add Offset to CCR1
    SecondReach=1;
    CountToMunite++;
    SecondTimecount++;
    if(waringstatus>0)
    {
      //buzzer();
     // waringlight();
    }
    break;                         // CCR4 not used
  case 4:
    TA0CCR2+= 1024;                // 1/2s Add Offset to CCR2
   // buzzer();
   // waringlight();
    break;
  case 6:
    spark++;
     TA0CCR3+=8192;                // 2s Add Offset to CCR3
  // buzzer();
   // waringlight();
    break;
  case 8:
    break;                         // CCR3 not used
  case 10:
    break;                         // CCR5 not used
  case 12:
    break;                         // Reserved not used
  case 14:                       

相关文章:

  • msp430的中断优先级和中断嵌套(及容易理解错误的说明)_liangchaoxi的IT博客_新浪博客......
  • msp430的中断优先级和中断嵌套(及容易理解错误的说明)
  • 一个字符串,将里面的数字字符和其他字符分开存放的程序_liangchaoxi的IT博客_新浪博客......
  • 一个字符串,将里面的数字字符和其他字符分开存放的程序
  • 关于float与double结果的误差_liangchaoxi的IT博客_新浪博客
  • 关于float与double结果的误差
  • 如何将int整型、float类型(或double)转换成字符串(或CString)_liangchaoxi的IT博客_新浪博客......
  • 如何将int整型、float类型(或double)转换成字符串(或CString)
  • C语言 低通滤波器\带通滤波器\高通滤波器_liangchaoxi的IT博客_新浪博客
  • C语言 低通滤波器\带通滤波器\高通滤波器
  • 如何学习matlab
  • 如何学习matlab_liangchaoxi的IT博客_新浪博客
  • 奈奎斯特抽样定理_liangchaoxi的IT博客_新浪博客
  • 奈奎斯特抽样定理
  • 数值转换成字符串 字符字符串转换成数值_liangchaoxi的IT博客_新浪博客
  • 【面试系列】之二:关于js原型
  • ES6简单总结(搭配简单的讲解和小案例)
  • es的写入过程
  • JavaScript类型识别
  • nfs客户端进程变D,延伸linux的lock
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • springboot_database项目介绍
  • 记一次和乔布斯合作最难忘的经历
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端设计模式
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • ​ubuntu下安装kvm虚拟机
  • #、%和$符号在OGNL表达式中经常出现
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (离散数学)逻辑连接词
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net Redis的秒杀Dome和异步执行
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/C# 使用反射注册事件
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • [20180129]bash显示path环境变量.txt
  • [Android] Implementation vs API dependency
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup
  • [JavaWeb学习] idea新建web项目
  • [leetcode] 四数之和 M
  • [MZ test.16]P1 评测
  • [Nuget]使用Nuget管理工具包
  • [office] 图文演示excel怎样给单元格添加下拉列表 #知识分享#经验分享