📄 time.h
字号:
//注意开总中断 _EINT(); //总中断
/***************************************************
**功能:定时器中断函数
**描述:使用32768晶振
***************************************************/
/*#pragma vector=TIMERA0_VECTOR //比较器0的优先级最高,采用独立的定时器
__interrupt void Timer_A0(void)
{
_NOP();
// P4OUT^=(BIT4+BIT5);
}
#pragma vector=TIMERA1_VECTOR //3个中断共享一个中断源
__interrupt void Timer_A1(void)
{
_NOP();
switch (TAIV)
{
case 2: //1s
//P4OUT^=(BIT0+BIT1);
break;
case 4:
_NOP();
//P4OUT^=(BIT2+BIT3);
break;
case 10: //定时器A,中断地址
_NOP();
//P4OUT^=(BIT6);
break;
}
}*/
/***************************************************
**功能:定时器初始化
**描述:使用32768晶振
**注释:4个定时器,3个扑获比较器加一个定时器
***************************************************/
void TIMEA_int(void)
{
TACTL=TACLR+TASSEL0+TAIE; //时钟源为32k TAIE是定时器开中断
CCTL0=CCIE;
//CCTL1=CCIE;
//CCTL2=CCIE;
CCR0=32768; //定时时间
//CCR1=32768;
//CCR2=32768;
TACTL|=MC1; //定时器开始工作,循环模式
}
/////////////////////下面是例程////////////////////////////////
/*
#include "msp430x16x.h"
#include "time.h"
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 &= ~XT2OFF; // XT2on
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2 + SELS; // MCLK = SMCLK = XT2 (safe)
P4DIR = 0XFF;
P4OUT = 0XFF;
TIMEA_int();
_EINT(); //总中断
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -