历史上的今天
今天是:2025年01月16日(星期四)
2020年01月16日 | 单片机MSP430 - Timer_A 定时器中断程序
2020-01-16 来源:eefocus
#include "cc430x613x.h"
void main()
{
WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器
P3DIR |= 0x04; // P3口初始化,设置为输出模式
TA0CCR0 = 32768; // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1s
TA0CCTL0 = CCIE; // TA0CCR0捕获/比较中断寄存器中断使能
TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK时钟源 MC_1,增计数模式
_BIS_SR(LPM3_bits + GIE); // 进入LPM3低功耗模式,开启总中断
}
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A(void) // 定时器中断触发,P3输出口异或,电平翻转
{
P3OUT ^= 0x04;
}
二、利用定时器定时功能,实现定时器多个溢出,对应产生多个中断,实现 P3.0 输出
#include "cc430x613x.h"
void main()
{
WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器
P3DIR |= 0x04; // P3口初始化,设置为输出模式
TA0CCR0 = 32768; // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1s
TA0CCTL0 = CCIE; // TA0CCR0捕获/比较中断寄存器中断使能
TA0CCR1 = 3276; // 定义中断溢出周期100ms
TA0CCTL1 = CCIE; // TA0CCR0捕获/比较中断寄存器中断使能
TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK时钟源 MC_1,增计数模式
_BIS_SR(LPM3_bits + GIE); // 进入LPM3低功耗模式,开启总中断
}
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A(void) // 1s溢出中断
{
P3OUT = ~0x04;
}
#pragma vector = TIMER0_A1_VECTOR
__interrupt void Timer_A1(void) // 100ms溢出中断
{
switch(TA0IV)
{
case 2:P3OUT = 0x04;break;
case 4:break;
case 10:break;
}
}
下一篇:MSP430-WDT
史海拾趣
|
内核定制时死在这句话 FMD::FMD_OEMIoControl = 0x71c24? FMD::FMD_OEMIoControl = 0x71c24 用pb向导定制了一个较精简的内核,总是死在这句话上,请问你们遇到过吗?… 查看全部问答> |
|
指令周期是 12/4MHz=3us,电子钟以秒为单位计时。 如何才能做到软件的每天误差小于 1 秒?晶振误差不考虑。 如果定时器以 3ms 中断一次,那么 333.33333 次中断就是一秒, 如果用 333 来近似,那么软件每天大约会快 80 秒。 请问有没有好的办法 ...… 查看全部问答> |
|
老师叫我这几天做自学习红外遥控器,目前以美的空调遥控器为例。查阅过资料说空调遥控器码和普通电视遥控器 码不同。我用示波器看了下 我的这款美的空调遥控器的码 是 先4MS高电平和4MS低电平引导码,然后是用户码和数据码&n ...… 查看全部问答> |
|
对于照明设计的五点期望期望一:有待提高——照明设计水平 照明设计行业从无到有,从被动的需要到主动的设计经历了较长的发展过程。现在,人们越来越重视照明环境,照明设计师在建筑环境中发挥的作用也越来越大。在不同的建筑环境中,照明设计 ...… 查看全部问答> |
|
电子工程师/技术员 硬件工程师 岗位职责: 1. 根据产品需求,完成产品的电路及PCB设计; 2. 完成工程样机的装配、调试与改进; 3. 完成产品各 ...… 查看全部问答> |
|
今天在拿到这个芯片的时候迫不及待的拿起我的项目主控ZIGBEE来调通并加入组网实验中来看这个存储效果如何,利用两天天的时间两个个人终于完全整好了,没想到稳定性以及速度都非常乐观。 在zigbee光伏景观灯中,需要用 ...… 查看全部问答> |




