历史上的今天
今天是:2025年03月04日(星期二)
2020年03月04日 | MSP430F149;二、TIMEA
2020-03-04 来源:eefocus
前面讲了几个寄存器,现在说说定时器A的三种功能
定时器
定时器主要是配置tatcl

在TASSELx 选择时钟源(这里X是因为有两位来控制,或者查询IAR里面的430的头文件找简单的书写方式,有对应的 #define)
这边我一般都是是选用ACLK,到时候用外部中断唤醒CPU
对应时钟就是分频,选择IDx(1/2/4/8)
选择MCx,来控制16位计数器计数模式。
这里面会用到寄存器中的TACCR0,这是一个16位的寄存器,可以存0~65536之中的任意值,(一般根据计算机器周期等等的,输入一个值,来使TAR计数器累加到咱们计算出啦的数字后产生中断)比如,我知道计数器数数字数到32768需要一秒时间,那我就可以在taccr0中赋值32768,当tar中的值等于32768的时候,就产生中断。在这之前,中断使能哦,还有总中断开关打开。
一般这样就可以工作了,如果需要中断的操作的,配置一下TAIE 和 TAIFG,这个中断标志要软件清零,然而TACLR这个是用来复位TAR的,一般不用管,因为会自动清零
TAR寄存器是16位的计数用的寄存器,最大能存的值为65536(2^16),通俗点说就是用二进制来数数,从0,1,2,3…一直数到一定值
捕捉
捕捉一般是计算脉冲宽度啥啥啥的,打个比方,在一个高脉冲走了5S。这个时候我们用捕捉功能可以玩一下,当脉冲上升沿的时候产生个中断,当下降沿的时候再产生中断的时候,我们就可以知道我们的振荡器数了几个数字,你要是说如果数数超过65536呢,我们在寄存器里面有个捕捉溢出位,到时候溢出一次,加上65536再把溢出位清零就好
一般作用测量两个上升沿之间的时间,或者两个下降之间的时间,或者一段脉冲的时间
捕捉功能怎么配置呢:
首先
在TACCTLx中:(有三个TACCTL0、TACCTL1、TACCTL2)
eg:TACCTL1
1.cap位置位(1)
2.CMx选择捕获方式;
3.CCISx选择捕获那个引脚,一般就是CCI1A(这个是eg:TACCTL1)
4.SCS置一,同步模式
5中断使能和标志,置一
比较
一般默认就是比较功能:
首先
1.cap清零;默认就是0
2.中断使能和标志置一;
3.taccr1赋值;
输出输出模式设置
主要由:
outmodx 位,8中状态可以选择
out 如果outmodx 位是000,则这位直接控制输出状态,0输出低;1输出高;
输出模式主要是PWM作用,具体可以看下数据手册
上一篇:独立按键使流水灯逐个亮,学习使用
史海拾趣
|
SD卡底层驱动源程序公开------【注意】我的MP3开发板回来了 本程序参考自bozai的SD卡驱动程序, 增加了SD、MMC卡判断的功能,SD、MMC初始化成功后能返回卡的类型参数供主程序使用。 //--------SD_MMC.H------------------------ #ifndef __SD_MMC_H__ #define __SD_MMC_H__ // 数据宏定义 #define ...… 查看全部问答> |
|
非常好的文章,我就喜欢这样的图文并茂的,分享之 ,在此心里谢过狼仔兄 爆漿撒尿電容特輯 (转至 台湾 xfastest 港都狼仔) 在下無聊時喜歡收集故障電子產品,分析故障原因,下面的圖片是這段時間以來,收集關於電容異 ...… 查看全部问答> |
|
我们公司最近要做个ATOM平台的移动设备,希望有经验的free lancer或公司与我联系。以下的资料仅供参考: Experience must include a successful implementation of an Atom based system that went into commercial production. Experience must h ...… 查看全部问答> |
|
咨询将ADS1.2编译的库和arm-elf-gcc编译的库混编(互相调用)的问题 在论坛里看到有人解决了此问题,但没有发表解决的方法。 再次,咨询此问题,希望知道的高手,指导一下。 谢谢了!… 查看全部问答> |




