📄 timer.c
字号:
/************************************************************************************************/
#include "msp430x20x3.h"
#include "timer.h"
unsigned int TimerCount[2] = {0x00,0x00}; //定义超时计数器
/**************************************************************************************************
**函数名称:void InitWDTTimer(void)
**入口参数:无
**出口参数:无
**功能描述:将看门狗设置为定时器模式,定时1ms
**************************************************************************************************/
void InitWDTTimer(void)
{
WDTCTL=WDT_MDLY_8; //选择定时模式,并选时钟源为SMCLK,定时1ms
IE1 |=WDTIE; //使能WDT定时中断
}
/**************************************************************************************************
**函数名称:void ResetTimer(unsigned char n)
**入口参数:定时器
**出口参数:无
**功能描述:将0定时器n的计数值清0
**************************************************************************************************/
void ResetTimer(unsigned char n)
{
IE1 &=~ WDTIE; //关闭WDT定时中断
TimerCount[n & 0x01] = 0;
IE1 |= WDTIE; //使能WDT定时中断
}
/**************************************************************************************************
**函数名称:unsigned int ReadTimer(unsigned char n)
**入口参数:定时器
**出口参数:定时器计数值
**功能描述:读取定时器n的计数值
**************************************************************************************************/
unsigned int ReadTimer(unsigned char n)
{
unsigned int tmp;
IE1 &=~ WDTIE; //关闭WDT定时中断
tmp = TimerCount[n];
IE1 |= WDTIE; //使能WDT定时中断
return tmp;
}
void InitTimerA0()
{
TACTL=TASSEL1+ID1+ID0+TACLR; //定时器A时钟源为SMCLK,8分频,并清TAR
CCTL0 |=CCIE; //CCR0中断使能
CCTL1 |=CCIE; //CCR1中断使能
}
void StartTimerA0()
{
CCR0 = 50000; //50ms
TACTL |=MC1; //启动定时器A为连续计数模式
}
void StopTimerA0()
{
TACTL &= (~MC1); //停止定时器
}
/**************************************************************************************************
**函数名称:__interrupt void wdt_timer(void)
**入口参数:无
**出口参数:无
**功能描述:看门狗定时器1ms定时函数
**************************************************************************************************/
#pragma vector = WDT_VECTOR
__interrupt void timerwtd_isr(void)
{
TimerCount[0]++;
TimerCount[1]++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -