📄 cputimera.c
字号:
/**********************************************************
*文件名称:cputimerA.c
*当前版本:2.0
*作 者:szb
*编写日期:2007.2.9
*摘 要:售烟机底层计数板与LED控制板通信定时器
***********************************************************/
#ifndef _TIMEA
#define _TIMEA
#include "datastru.h"
#include "func.h"
#endif
void TAinit(void) //定时器初始化,定时器1用来作发送定时器,定时器2用来作接收定时器
{ //0.098ms中断一次 通信波特率:1280=3276800/2560
TACTL = TASSEL_2 + ID_3 + TACLR; // SMCLK(3.2768M/8), devider = 8, clear TBR
TACTL |= MC1; // 以连续计数模式启动TimerA
}
interrupt [TIMERA0_VECTOR] void TimerA_RECEIVE(void)
{
_DINT(); //关闭中断
TACCR0 = TACCR0 + 165;
if (RnumberBIT232 >= 9)
{
toffsetRS232 = RS232offset(toffsetRS232, 1, RqueueRS232_Length);
tailRS232 = origRS232 + toffsetRS232;// 完成尾指针加1的功能
P2IFG = 0; //清除中断标志
P2IE = 0x08;//允许2.3端口中断
RnumberBIT232 = 0;
TACCTL0 &= ~CCIE; // CCR0 interrupt disabled
}
else if (!RnumberBIT232)
RnumberBIT232++;
else
{
*tailRS232 = *tailRS232 >> 1;
if (P2IN & BIT3)
*tailRS232 |= BIT7;
else
*tailRS232 &= ~BIT7;
RnumberBIT232++;
}
_EINT();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -