历史上的今天
今天是:2025年02月11日(星期二)
2020年02月11日 | MSP430G2553 定时器中断实例
2020-02-11 来源:eefocus
代码
#include "MSP430G2553.h"
void led_init();
void timer0_init();
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
//--配置时钟-----
BCSCTL1=CALBC1_1MHZ;
DCOCTL=CALDCO_1MHZ;
//--LED初始化----
led_init();
//--定时器0初始化----
timer0_init();
//---开中断------
_EINT(); //开中断
LPM3;
}
/*
* 定时器0中断函数
*/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A0(void) //TACCR0中断
{
P1OUT^=(1<<6); //LED反转
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer0_A1(void) //TACCR1中断,TACCR2中断和TA0溢出中断共用一个中断向量
{
switch(TAIV)
{
case 2: //TACCR1中断
P1OUT^=(1<<6); //LED反转
break;
case 4: //TACCR2中断
P1OUT^=(1<<6); //LED反转
break;
case 10: //TAIFG 溢出中断
P1OUT^=(1<<6); //LED反转
break;
default:
break;
}
}
// LED 初始化
void led_init()
{
P1DIR|=(1<<6);
}
// 定时器初始化
void timer0_init()
{
/*
*设置TIMER_A的时钟
*TASSEL_0: TACLK,使用外部引脚信号作为输入
*TASSEL_1: ACLK,辅助时钟
*TASSEL_2: SMCLK,子系统主时钟
*TASSEL_3: INCLK,外部输入时钟
*/
TACTL |= TASSEL_1;
/*
*时钟源分频
*ID_0: 不分频
*ID_1: 2分频
*ID_2: 4分频
*ID_3: 8分频
*/
TACTL |= ID_0;
/*
*模式选择
*MC_0: 停止模式,用于定时器暂停
*MC_1: 增计数模式,计数器计数到CCR0,再清零计数器
*MC_2: 连续计数模式,计数器增计数到0XFFFF(65535),再清零计数器
*MC_3: 增减计数模式,增计数到CCR0,再减计数到0
*/
TACTL |= MC_1; //增计数模式
//----计数器清零-----
TACTL |= TACLR;
//----设置TACCRx的值-----
//TACCR0=32768-1; //时钟是32.768K,那么值设为32678-1
TACCR0=30000;
TACCR1=10000; //TACCR1和TACCR2要小于TACCR0,否则不会产生中断
TACCR2=20000;
//----中断允许----
TACCTL0 |= CCIE; //TACCR0中断
TACCTL1 |= CCIE; //TACCR1中断
TACCTL2 |= CCIE; //TACCR2中断
TACTL |= TAIE; //TA0溢出中断
}
注意事项
需要注意的是在增计数模式时CCR1和CCR2的值应该小于CCR0,否则CCR1和CCR2不会产生中断。 并且每次CCR1和CCR2中断后要把它们重新赋值这样才能保证CCR1和CCR2的中断间隔时间不变。
类似语句如下:
CCR1 += 100;
if ( CCR1 >= 32768 )
CCR1 -= 32768;
上一篇:MSP430产生PWM波
下一篇:msp430 PWM周期计算
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:49 编辑 有感于现在小学生都在玩机器人,转贴 ============================= 题目越来越难,一般学生难以单独完成,只能由老师一手包办 昨日,广州市青少年机器人竞赛在芳村小学举行。照明节能日光灯、 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:32 编辑 一本电子设计竞赛赛题解析,希望各位好运~~~ 打开这本电子书需要用到超新星图书浏览器,也放在附件中了 下载地址:http://www.ssreader.com/download/download.html [ 本帖最后由 open82977352 于 ...… 查看全部问答> |
|
TPMS已经成为汽车电子的一个热点,随着相关法规的出台,它的需求量将会激增。对于TPMS的设计师来说,求得一个高的性能/价格比的方案是至关重要的。TPMS的发射器涉及P/T/A/V+ASIC传感器模块、MCU、RF、电池、天线和外型的工业设计,如何来选型?如何 ...… 查看全部问答> |
|
工作频率范围(F): 指放大器满足各级指标的工作频率范围。放大器实际的工作频率范围可能会大于定义的工作频率范围。 功率增益(G): 指放大器输出功率和输入功率的比值,单位常用“dB”。 增益平坦度(ΔG): 指在一定温度下,在整个工作 ...… 查看全部问答> |
|
关天fseek(fp_Write, 0L, SEEK_END);指向文件未尾应用 关天fseek(fp_Write, 0L, SEEK_END);指向文件未尾应用 bool SaveToBookMark3(char* pBookMarkTitle, char* pUrl ) { //char FullPath[256] = {\"\\\\Windows\\\\收藏夹\\\\\"}; char ...… 查看全部问答> |
|
求助:保定飞凌OK2440-III开发板,启动wince时,无法进入系统,始终停止在启动画面。 开发板:ok2440-III 问题:启动wince时,无法进入系统,始终停留在启动画面。指示灯LED0亮。(注:可启动Linux操作系统,但无法使用触屏功能。) DNW启动时内容如下: +------------------------------------------------------------+ | ...… 查看全部问答> |
|
我们的CE产品要求显示是potrait mode。为了降低成本,我们用的是landscape形式的LCD。然后在注册表中旋转90度。这样,显示就成了标准的portrait mode。大部分对话框的显示也是正常的,但是只有程序安装界面还是landscape mode的宽度和高度。所以, ...… 查看全部问答> |
|
1.为什么仿真时总出现脉冲?那就是竞争冒险吗?可是实验给出的图形是很完美的响应啊,我的却总是激励过后一段时间才有响应的波形 答:数据的过渡状态,可以认为是冒险竞争,不是所有的情况都是这样的2.在引脚分配时同样的字母大小写不一致 ...… 查看全部问答> |




