eecs-bsp-test-code-2/inc/sys.h

63 lines
4.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******************************* 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上收到一个符合格式定义的数据包事件。串口1USB上与PC机通信
enumEventUart2Rxd : 串口2上收到一个符合格式定义的数据包事件。串口2485上UART、EXT上UART、或485上ModBus协议2022年5月2日新增
enumEventIrRxd : 红外收到一个数据包事件
c, 获取系统运行性能评价参数
(2) MySTC_Init()sys初始化函数必须执行一次。
(3) MySTC_OS() sys调度函数应在while1循环中。
(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调度函数应在while1循环中
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