📄 time_700.c
字号:
#include <msp430x16x.h>
/****************************初始化TA0定时器(16位)***************************/
void TA0_init(int v)
{
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0=v-1;
TACTL=TASSEL_1+MC_1; //选ACLK为时钟(32768) 增计数模式 使能溢出中断
//_EINT(); // Enable interrupts
}
/****************************TA0中断(计数的整数倍)**************************/
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
n= n-1;
CCR0=65535;
if(n == 0)
{
flag = 1;
}
}
/*****************************700ms的低电平*********************************/
void TA0_700(void)
{
L=22937.6; //700ms对应的定时器的值
M=L%65536; //计数器对应的余数
n = (unsigned char)(L/65536) + 1;
TA0_init(M);
while(!(flag==1));
DAC12_1DAT= DAChigh; // DAC变高电平
TACTL=MC_0; //关闭TA0
CCTL0&=~CCIE; //禁止中断
flag =0;
}
/**************************主函数************************************/
main()
{
WDTCTL = WDTPW + WDTHOLD; //stop wdt
_EINT(); //使能全局中断
TA0_700();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -