--- a/LPCBus/MC9_OnBoard_decl.c Mon Apr 18 13:17:09 2016 +0200
+++ b/LPCBus/MC9_OnBoard_decl.c Thu May 05 13:36:49 2016 +0200
@@ -291,11 +291,13 @@
+#define nsTOus(ns) (ns/1000L) #define nsTOms(ns) (ns/1000000L)
#define INVALID_RTU_ADDR 255 /* Used when no Modbus RTU slave device is present */
static void mbmrtu_BusUpdate_proc(void *param){
- uint64_t msticktime = nsTOms(common_ticktime__);
- while (rt_task_sleep_until(TM_INFINITE) == -EINTR){
+ while (rt_task_sleep_until(TM_INFINITE) == -EINTR){ for(i=0;i<MAX_MOD_RTU_DEVICES;i++)
@@ -303,11 +305,12 @@
if(mbRtuDevTim[i].status != TIM_DISABLED)
- mbRtuDevTim[i].actValue += msticktime;
+ actTime = (uint64_t)nsTOus(rt_timer_read()); + mbRtuDevTim[i].actValue += actTime - mbRtuDevTim[i].oldTime; + mbRtuDevTim[i].oldTime = actTime; if(mbRtuDevTim[i].actValue < mbRtuDevTim[i].toValue)
mbRtuDevTim[i].status = TIM_EN_RUNNING;
mbRtuDevTim[i].status = TIM_EN_EXPIRED;