防止连续读time出错的处理---------后来证明不需要。(硬件上同一个总线)
来源:互联网 发布:七局网络教育平台 编辑:程序博客网 时间:2024/05/22 15:20
//--------------unsigned LONG----16位--
portTickType DestTickCnt;
DATETIME BakTime;
//400ms为界,可能会涉及1s的误差
//如果tickcnt 多跑了一圈(需时49天)
void app_time_get(DATETIME* pTm)
{
portTickType CurrTickCnt;
CurrTickCnt = xTaskGetTickCount();
if(CurrTickCnt<DestTickCnt)//正常情况
{
*pTm=BakTime; //无需重读。
return;
}
else //if(CurrTickCnt>DestTickCnt)//情况
{
if((DestTickCnt<NTick)&& //溢出 回头情况
(CurrTickCnt>(~((portTickType)0)-NTick))) //CurrTickCnt还没回头
{
*pTm=BakTime; //无需重读。
return;
}
}
//需要重新获取
xSemaphoreTake(Mutex_TimeFlash,portMAX_DELAY);
if(!hal_rx8025_get(&BakTime))
{
s_devstate = ERROR_DEVHAL|DESC_E_TIME;//发现读常出错,故读3次最多。
}
//成功取走一次的记录
*pTm=BakTime;
CurrTickCnt = xTaskGetTickCount();
if((CurrTickCnt)>(~((portTickType)0)-NTick))
DestTickCnt=(CurrTickCnt+NTick)-~((portTickType)0);
else DestTickCnt=(CurrTickCnt+NTick);
xSemaphoreGive(Mutex_TimeFlash);
}
- 防止连续读time出错的处理---------后来证明不需要。(硬件上同一个总线)
- 一种处理同一个I2C总线上,器件地址冲突的方法
- 复制的工程部署到同一个tomcat上出错解决
- I2C总线的连续读和连续写
- 线性插值(题意应该改为编号连续相同舍弃后来出现的)
- 盘点数学里十大不需要语言的证明
- android 硬件上的back键处理
- java连续取掉多个不需要的字符
- 基于PCI总线和DSP芯片的图像处理平台的硬件设计
- 不需要Real-Time的四个理由
- 如何防止同一个用户在不同机子上登陆
- treeView的同一个节点第二次点击(连续),不执行SelectedNodeChanged事件
- treeView的同一个节点第二次点击(连续),执行事件解决办法
- Linux如何区分注册到同一个IRQ上的不同中断处理函数
- android 防止按钮连续点击的方法
- android 防止按钮连续点击的方法
- Android 防止连续点击的方法
- 防止提示框连续的完整出现
- Carbide.C++快捷方式的说明
- 配置WebLogic-Eclipse插件
- Oracle关于java.sql.SQLException常见错误集锦
- 傻比百度来到CSDN
- the intervals
- 防止连续读time出错的处理---------后来证明不需要。(硬件上同一个总线)
- java.util.ConcurrentModificationException
- 级联操作
- NAT 类型及检测方法
- Get control name in Page_Load event which make the post back
- Cisco交换机功能性命令简介(一)
- 穿越NAT的p2p通信方法研究
- Cisco交换机功能性命令简介(二)
- ScriptX 页面打印