📄 time_s.c
字号:
//timer module
#include "pic16f62xa.h"
#include "pic.h"
#include "typedefine_s.h"
#include "extern_s.h"
bank1 uchar tag1ms;
//void TimeCntFun(void);
void time0init(void)
{
OPTION |= 0b00000111; //bit5 T0CS 清零为选定定时器模式;
OPTION &= ~0b00111100; //bit4 T0SE 边缘选择;
TMR0 = 0x80; // ~~~`
T0IE = 1; // enable timer interrupt.
//这句还需要考虑
}
// timebase module.
void time_mission (void) //每500us时间到进入一次;
{
static uchar Cnt100ms;
bank2 static uchar varcou=0;
bank2 static uint cnt500ms;
timeBase.bits.b1ms = 0;
timeBase.bits.b10ms = 0;
if(timeBase.bits.bt1ms)
{
timeBase.bits.bt1ms = 0;
timeBase.bits.b1ms = 1;
if(receTimeOut>0)
{
receTimeOut--;
if(receTimeOut==0 && receCount>0)
{
receCount = 0;
checkoutError = 0;
}
} //if(receTimeOut>0)
tag1ms = 1;
varcou++;
if(varcou>=4)
{
ledControl.bits.refurbish = 1;
varcou = 0;
}
cnt500ms++;
if(cnt500ms>=200)
{
cnt500ms = 0;
ledControl.bits.once128ms = 1;
}
} //(timeBase.bits.bt1ms)
}
////时间管理器,等到加通讯的时候再写吧!
//void TimeCntFun(void)
//{
// //接收延迟判断.
// if(receTimeOut>0)
// {
// receTimeOut--;
// if(receTimeOut==0 && receCount>0) //判断通讯接收是否超时
// {
// // b485Send = 0; //将485置为接收状态
//
// CREN = 0;
// RCIE = 0;
// receCount = 0; //将接收地址偏移寄存器清零
// checkoutError = 0;
// }
// }
// if(UartSlaveDelayStruct.SendLastStatus.bits.LastByteCountTag)
// {
// if(4 == UartSlaveDelayStruct.SendLastCou++)
// {
// UartSlaveDelayStruct.SendLastCou = 0;
// UartSlaveDelayStruct.SendLastStatus.bits.SendCountEndTag = 1;
// }
// }
//
// //接受延迟20ms计时.
// if(UartSlaveDelayStruct.ReceiveCountStatus.bits.ReceiveCountTag)
// {
// // if(20 == UartSlaveDelayStruct.RecevieCou++)
// if( UartSlaveDelayStruct.RecevieCou++ > FrameOverCou)
// {
// UartSlaveDelayStruct.RecevieCou = 0;
// UartSlaveDelayStruct.ReceiveCountStatus.bits.ReceiveCountTag = 0;
// UartSlaveDelayStruct.ReceiveCountStatus.bits.ReceiveCountOverflowTag = 1;
// }
// }
//}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -