63 lines
4.0 KiB
C
63 lines
4.0 KiB
C
/******************************* sys Ver3.6 说明 ************************************************
|
||
(1) sys.c构成STC程序基本架构。提供:
|
||
a, 系统初始化MySTC_Init(),系统调度函数MySTC_OS(),加载用户回调函数SetEventCallBack()
|
||
b, 若干可设置和触发回调函数的事件;
|
||
enumEventSys1mS : 1mS定时到
|
||
enumEventSys10mS : 10mS定时到
|
||
enumEventSys100mS : 100mS定时到
|
||
enumEventSys1S : 1S定时到
|
||
enumEventKey : 按键事件
|
||
enumEventNav : 导航按键事件“
|
||
enumEventHall : hall传感器事件
|
||
enumEventVib : 振动传感器事件
|
||
enumEventXADC : 扩展接口上新的AD值事件
|
||
enumEventUart1Rxd : 串口1上收到一个符合格式定义的数据包事件。串口1:USB上与PC机通信
|
||
enumEventUart2Rxd : 串口2上收到一个符合格式定义的数据包事件。串口2:485上UART、EXT上UART、或485上ModBus协议(2022年5月2日新增)
|
||
enumEventIrRxd : 红外收到一个数据包事件
|
||
c, 获取系统运行性能评价参数
|
||
|
||
(2) MySTC_Init():sys初始化函数,必须执行一次。
|
||
(3) MySTC_OS(): sys调度函数,应在while(1)循环中。
|
||
(4) SetEventCallBack(char event, void *(user_callback)):加载"事件"用户回调函数.
|
||
(5) SysPerF GetSysPerformance(void) :获取系统运行性能评估参数
|
||
函数参数:无
|
||
函数返回值:结构 struct SysPerF。定义如下:
|
||
typedef struct //系统性能评估参数,每秒更新一次
|
||
{ unsigned long MainLoops; //SysPerformance.MainLoops 每秒主循环次数(应大于1000以上)
|
||
unsigned char PollingMisses; //SysPerformance.PollingMisses 每秒轮询丢失次数(理想值为0。如果有非0情况,说明用户程序或算法存在问题)
|
||
} SysPerF;
|
||
|
||
(6) 补充说明:
|
||
sys.c 基本调度时间为1mS,非抢占式,要求用户程序片段,其单次循环执行时间累加起来应小于1mS。
|
||
|
||
编写:徐成(电话18008400450) 2021年2月26日设计,2022年5月2日更新
|
||
*/
|
||
|
||
#ifndef _sys_h_
|
||
#define _sys_h_
|
||
|
||
typedef struct //系统性能评估参数,每秒更新一次
|
||
{ unsigned long MainLoops; //SysPerformance.MainLoops 每秒主循环次数(应大于1000以上)
|
||
unsigned char PollingMisses; //SysPerformance.PollingMisses 每秒轮询丢失次数(理想值为0。如果有非0情况,说明用户程序或算法存在问题)
|
||
} struct_SysPerF;
|
||
|
||
extern void MySTC_Init(); //sys初始化函数
|
||
extern void MySTC_OS(); //sys调度函数,应在while(1)循环中
|
||
extern void SetEventCallBack(char event, void *(user_callback)); //加载"事件"用户回调函数.
|
||
extern struct_SysPerF GetSysPerformance(void);
|
||
|
||
enum event{enumEventSys1mS, //系统1mS事件
|
||
enumEventSys10mS, //系统10mS事件
|
||
enumEventSys100mS, //系统100mS事件
|
||
enumEventSys1S, //系统1S事件
|
||
enumEventKey, //按键事件
|
||
enumEventHall, //hall传感器事件
|
||
enumEventVib, //振动传感器事件
|
||
enumEventNav, //导航按键事件“
|
||
enumEventXADC, //扩展接口上新的AD值事件
|
||
enumEventUart1Rxd, //串口1上收到一个符合格式定义的事件
|
||
enumEventUart2Rxd, //串口2上收到一个符合格式定义("数据包格式"、或"ModBus协议+数据包格式")的事件。 (2022年5月2日新增)
|
||
enumEventIrRxd //红外Ir上收到一个数据包
|
||
};
|
||
|
||
#endif |