📄 bastimer.c
字号:
/****************************************************************************
文件名:main.c
编写者:czhang
描述:基本定时器模块程序。用于4xx系列。
ACLK:32.768kHz
版本:2005-4 V1.0
*****************************************************************************/
#include <msp430x42x.h>
#include "bastimer.h"
/*****************************************************************************
初始化基本定时器
******************************************************************************/
void InitBasTimer()
{
//确定液晶时钟信号和BTCN2的输入时钟源
BTCTL = BT_fLCD_1K + BT_fCLK2_ACLK;
}
/*****************************************************************************
打开或关闭定时器,BTCN2只能与BTCN1一起运行,单独打开BTCN2没有意义。
doti:0:打开 100:关闭
which: 操作定时器的哪一部分 0:BTCN1和BTCN2 1:BTCN2 2:BTCN1
******************************************************************************/
void GoBasTimer(unsigned char doit,unsigned char which)
{
if(doit==0)
{
if(which==0)
BTCTL &= ~BTHOLD; //打开BTCN1和BTCN2
else if(which==2)
{
BTCTL |= BTHOLD; //仅打开BTCN1
BTCTL &= ~BTDIV;
}
}
else if(doit==100)
{
if(which==0)
BTCTL |= BTHOLD+BTDIV; //关闭BTCN1和BTCN2
else if(which==1)
BTCTL |= BTHOLD; //关闭BTCN2
}
}
/*****************************************************************************
打开或关闭BTCN2输出中断
doit:0:打开 100:关闭
******************************************************************************/
void IntBtcn2(unsigned char doit)
{
if(doit==0)
IE2 |= BTIE; //打开
else if(doit==100)
IE2 &= ~BITE; //关闭
}
/*****************************************************************************
基本定时器中断函数
******************************************************************************/
#pragma vector=BASICTIMER_VECTOR
__interrupt void BasTimer()
{
static unsigned char out=0;
if(out==0)
{
out=1;
P1OUT &= ~BIT1;
}
else
{
out=0;
P1OUT |= BIT1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -