本文介绍的是MSP430内部的定时器1
测试代码如下:
#include "io430.h"
#include "in430.h"
//demo,led闪烁
void Init_TimeA(void);
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
Init_TimeA();
P2DIR = 0XFF;
P2OUT = 0XFF;
return 0;
}
void Init_TimeA(void)
{
TACTL = TASSEL_1 + ID_3 + MC_1;//定时器的时钟源选择ACLK,增计数模式 32.768k
CCTL0 = CCIE;//使能CCR0中断
CCR0 = 4096;//设定周期为1s
_EINT();//使能总中断
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P2OUT =~P2OUT;
}
#include "io430.h"
#include "in430.h"
void Init_TimeA(void);
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
Init_TimeA();
P2DIR =0XFF;
P2OUT =0XFF;
return 0;
}
void Init_TimeA(void)
{
TACTL = TASSEL_2 + ID_3 + MC_1;//定时器的时钟源选择ACLK,增计数模式 800khz
CCTL0 = CCIE;//使能CCR0中断
CCR0 = 50000;//设定周期为0.5s
_EINT();//使能总中断
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P2OUT =~P2OUT;
}
如果要精准定时则要使用外部晶振进行定时计数:
#include #include "clock.h" /**************************************************************************** 初始化时钟 ******************************************************************************/ void Int_Clk(void) { uchar i; BCSCTL1&=~XT2OFF; //开启XT2振荡器 BCSCTL2|=SELM_2+SELS; //选择MCLK时钟源为XT2CLK;选择SMCLK时钟源为XT2CLK do { IFG1&=~OFIFG; for(i=0;i<100;i++) _NOP(); } while((IFG1&OFIFG)!=0); IFG1&=~OFIFG; } #include #include"DataType.h" /**************************************************************************** 初始定时器A ******************************************************************************/ void Int_TimerA(void) { TACTL = TASSEL_2 + ID_3 + MC_1;//定时器的时钟源选择ACLK,增计数模式 8M CCTL0 = CCIE;//使能CCR0中断 CCR0 = 50000;//设定周期为1s _EINT();//使能总中断 } #include "io430.h" #include "Timer.h" #include "clock.h" int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; Int_Clk(); Int_TimerA(); P2DIR = 0XFF; P2OUT = 0XFF; return 0; } #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { P2OUT = ~P2OUT; }
上一篇:MSP430-中断的使用
下一篇:MSP430-定时器的使用(PWM)
推荐阅读最新更新时间:2024-11-12 14:18
设计资源 培训 开发板 精华推荐
- KIT33662JEFEVBE: 评估套件 - MC33662J,LIN2.1/SAEJ2602-2,LIN物理层
- NCV7101电流电压转换器典型应用电路
- AC164104,用于 rfRXD0420 315-MHz 接收器模块的评估套件
- EVAL-AD7665CBZ,用于 AD7665、16 位、571 Ksps PulSAR 模数转换器的评估板
- OP495GSZ 3V 低压差稳压器的典型应用
- LT3763IFE 20A、脉宽调制、单路高电流 LED 驱动器的典型应用电路
- LTC3624EDD-3.3 3.3V 输出电压、2A 同步降压稳压器、同步至 500kHz、强制连续模式的典型应用
- 使用 Analog Devices 的 LTC2960 的参考设计
- 超声波发射 V1
- LT3507 级联电源即使在高 VIN/VOUT 比的情况下也能保持高频工作