MSP430 TIMER_A定时器设置示例
(先记下来,以后看,说不定就会了呢)
问题很多,咱啥都不懂,能看出欢迎讨论哈~
- 直接设置:
TA0CCTL0 = CCIE; // CCR0 interrupt enabledTA0CCR0 = 1000;//意思是周期为1000ms=1HzTA0CTL = TASSEL_2 + MC_1 + TACLR; // 选择时钟源SMCLK,+递增模式upmode:计时器递增计数到 TAxCCR0+clear TAR
- 间接?(利用封装好的函数)
void SMCLK_XT2_4Mhz(void)
{P7SEL |= BIT2+BIT3; // Port select XT2UCSCTL6 &= ~XT2OFF; // Enable XT2UCSCTL6 &= ~XT2OFF + XT2DRIVE_1; // Enable XT2UCSCTL3 |= SELREF_2; // FLLref = REFO// Since LFXT1 is not used,// sourcing FLL with LFXT1 can cause// XT1OFFG flag to setUCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO// Loop until XT1,XT2 & DCO stabilizes - in this case loop until XT2 settlesdo{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flagsSFRIFG1 &= ~OFIFG; // Clear fault flags}while (SFRIFG1&OFIFG); // Test oscillator fault flagUCSCTL6 &= ~XT2DRIVE0; // Decrease XT2 Drive according to// expected frequencyUCSCTL4 |= SELS_5 + SELM_5; // SMCLK=MCLK=XT2
}
再经过分频,配置寄存器等等,来获得所需要的时间的定时器???(寄存器的配置自己看手册配)
SMCLK_XT2_4Mhz();//设置SMCLK使用XT2, 频率为4MHzUCSCTL5|=DIVS__32;//使用USC统一时钟系统进行预分频,将SMCLK进行32分频TA0CTL |=TASSEL_2 + MC_1 + TACLR;//配置A0计数器,时钟源SMCLK,上升模式,同时清除计数器//*配置计数器//TASSEL_2选择了SMCLK,MC_1计数模式,,最后清零TACLR//TA0EX0 |= TAIDEX_1;//A0计数器分频,2分频TA0CCTL0 = OUTMOD_2 + CCIE;//捕获比较寄存器0输出,输出模式为2,同时使能定时器中断(CCR0单源中断),CCIE捕获比较寄存器的使能配置TA0CCR0 = 5;//捕获比较寄存器0//配置捕获比较器
4MHz经过32分频后得到125000Hz,相当于得到的定时器中断为(TA0CCR0/125000)s,在这里就是1/25000s也就是25000Hz一个中断周期?
计数器每次计数到TA0CCR0时产生中断
附上中断服务函数,然后不要忘了使能全局中断
GIE实际上是CPU中的SR(Status Register)寄存器中的一位。SR(Status Register)寄存器主要用来记录指令的工作状态。
这句的意思是将SR的GIE位设置为1,bis即bit set。
对应的关全局中断操作是
即将SR的GIE位清除,置0。bic即bit clear。
MSP430 TIMER_A定时器设置示例相关推荐
- msp430的定时器,pwm,CCR0,CCR1,CCR2 和多时段计时的基础知识
第一句:声明:以下内容转自网络,如有侵权请联系我. 最近工作中又遇到了timer的应用,以前一直没有好好的看手册.刚刚发现了一篇文章分类很规整符合我的阅读习惯. 为了以后查阅方便,转到此处. 原文出处 ...
- QT之QTimer详解以及结合多线程中开启定时器的示例
一 QTimer详解 QTimer类提供了重复和单次触发信号的定时器. a.void timeout ()定时器超时后,这个信号被发射. b.void start()开启定时器,它的重载函数void ...
- oracle定时器怎么开启,Oracle的定时器使用示例
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. --Oracle定时job --数据库执行此脚本时时,请确保只执行一次,否则会引发错误! ...
- html倒计时timer,JavaScript定时器设置、使用与倒计时案例详解
本文实例讲述了JavaScript定时器设置.使用与倒计时案例.分享给大家供大家参考,具体如下: 1.设置定时器 定时器,适用于定时执行的任务中.在BOM的window对象中,有这样的两个函数是用于设 ...
- nRF51822定时器设置
一.nRF51822的时钟系统 nRF51822有两种时钟源:1.高频时钟HFCLK:2.低频时钟LFCLK.这两种时钟只有当系统处于System ON模式的情况下才可用. 低频时钟源 系统有三种低频 ...
- 关于jquery定时器设置问题 ios定时器无法响应问题 ios 时间显示为NaN问题 优惠时间倒计时
设计时间为:"2019-12-17"发现安卓端和浏览器端,浏览器模拟器显示均没问题,但是ios 手机显示为NaN 解决办法 :把"2019-12-17"改为&q ...
- 【MicroPython ESP32/8266】定时器中断示例解析
[MicroPython ESP32/8266]定时器中断示例解析 ✨本案例基于Thonny平台开发.✨ 相关篇<ESP32 Micropython 定时器中断的使用示例>
- 51单片机c语言定时器程序,51单片机定时器设置入门与程序解析
89C51单片机有两个计数器T0和T1,每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535. 其次.提供给定时器 ...
- 关于STM32的定时器设置
1.定义RCC时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); 2.定义时钟触发 TIM_TimeBaseInit(TIM2, & ...
最新文章
- SpringCloud Alibaba微服务实战(一) - 基础环境搭建
- python 打印异常内容_python打印异常信息的两种实现方式
- HashMap,HashTable,ConcurrentHashMap面试总结!!!
- ABAP search help (搜索帮助) 五种方法
- vue中父子组件通信的坑
- C语言性能优化书籍,Android应用性能优化 (埃尔韦) 中文PDF扫描版
- java http 面试题_Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别面试题12期...
- T-SQL笔记1:SELECT及SELECT高级应用
- 台式计算机电源机箱维修,台式电脑电源故障维修实例教程
- List集合的各种排序
- 计算机资源管理器出问题怎么办,W7系统资源管理器已停止工作怎么办
- 微信小程序代码保存后,自动格式化代码
- Google Earth Engine 教程——栅格矢量数据转化和导出
- curl 增加header_curl增加多个头的方法
- w ndows7与windows10区别,w10系统和w7哪个好用2020
- 调整oracle服务器时间,那些年Oracle数据库主机时间调整的风花雪月
- java 解析dat_JAVA中怎么读取DAT文件中的内容
- wpf绘制圆环,实现图片镂空
- app架构师,HTTPS面试常问全解析,吊打面试官系列!
- [NOIP1998 普及组] 幂次方