📄 timer.c
字号:
/************************************************************************************************/
#include "msp430x22x4.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;
}
/**************************************************************************************************
**函数名称:__interrupt void wdt_timer(void)
**入口参数:无
**出口参数:无
**功能描述:看门狗定时器1ms定时函数
**************************************************************************************************/
#pragma vector=WDT_VECTOR
__interrupt void wdt_timer(void)
{
TimerCount[0]++;
TimerCount[1]++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -