/* 配置系统的顺序 CPU 内部、底层硬件 外部接口 外部硬件(按键、显示) 读取外部配置数据 传感器系统(RTC 时钟) 操作系统 任务 驻留任务(如:传感器读取、恒温箱温控、掉电时间记录) 采样任务 监控任务 */ __task int32_t main( void ) { BIOS_Init(); beep(); RTOS_Init(); // 尽早执行 ConfigureLoad(); // 先确定仪器型号 CalibrateLoad(); // 读传感器前执行, 远程存储器中的参数,应等通讯初始化后再读。 SampleSetLoad(); // 恢复采样前执行 Display_Init(); DisplaySetGrayVolt( Configure.DisplayGray * 0.022f ); DisplaySetLight( Configure.DisplayLight ); DisplaySetTimeout( Configure.TimeoutLight ); Keyboard_Init(); // 配置完背光超时时间后再初始化 RTC_Init(); // 为避免启动过程中时钟失败造成的假死现象,放在显示初始化之后 SD_Init(); // SD卡读写初始化,放在开关机存取之前 PowerLog_Init(); // 开关机存取,时间初始化之后 SENSOR_Local_Init(); delay( 1000u ); //配合下位机初始化 <注意!要进行下位机测试来确定参数!>300 Animation(); // 开机动画 delay( 1600u ); ShowEdition(); // 确定型号之后,显示初始化之后 delay( 1400u ); SENSOR_Remote_Init(); // modbus通信初始化 delay( 100u ); HCBox_Init(); delay( 100u ); Sampler_BootResume(); // 时间配置完成之后,设置参数读入之后。 delay( 100u ); SamplerTypeSelect(); delay( 100u ); for(;;) { menu_Main(); // 转主菜单 } }
/* 配置系统的顺序 CPU 内部、底层硬件 外部接口 外部硬件(按键、显示) 读取外部配置数据 传感器系统(RTC 时钟) 操作系统 任务 驻留任务(如:传感器读取、恒温箱温控、掉电时间记录) 采样任务 监控任务 */ __task int32_t main( void ) { BIOS_Init(); beep(); RTOS_Init(); // 尽早执行 EditionSelsct(); ConfigureLoad(); // 先确定仪器型号 CalibrateLoad(); // 读传感器前执行, 远程存储器中的参数,应等通讯初始化后再读。 SampleSetLoad(); // 恢复采样前执行 Display_Init(); DisplaySetGrayVolt( Configure.DisplayGray * 0.01f ); DisplaySetLight( Configure.DisplayLight ); DisplaySetTimeout( Configure.TimeoutLight ); Keyboard_Init(); // 配置完背光超时时间后再初始化。 ShowEdition(); // 版本显示 确定型号之后,显示初始化之后 SENSOR_Local_Init(); // 本地传感器读取以及液晶灰度调节 RTC_Init(); // 为避免启动过程中时钟失败造成的假死现象,放在显示初始化之后 SD_Init(); // SD卡读写初始化,放在开关机存取之前 delay( 500u ); PowerLog_Init(); // 开关机存取,时间和SD卡初始化之后 delay( 2000u ); // 配合下位机初始化 SENSOR_Remote_Init(); // modbus通信初始化 HCBox_Init(); delay( 500u ); Sampler_BootResume(); // 时间配置完成之后,设置参数读入之后。 delay( 1500u ); SamplerSelect = Q_ALL; // 初始化当前采样器为不合理的值,进行一次切换,切换到第一个合理的值。 SamplerTypeSwitch(); for(;;) { menu_Main(); // 转主菜单 } }
void PL_INIT(void) { #if PL_HAS_LED LED_INIT(); #endif #if PL_HAS_RTOS RTOS_Init(); #endif #if PL_HAS_EVENTS EVENT_Init(); #endif #if PL_HAS_KEYS KEY_Init(); #endif #if PL_HAS_TRIGGER TRG_Init(); #endif #if PL_HAS_DEBOUNCE DBNC_Init(); #endif #if PL_HAS_MEALY MEALY_Init(); #endif #if PL_HAS_BUZZER BUZ_Init(); #endif #if PL_HAS_SHELL SHELL_Init(); #endif }
void PL_Init(void) { #if PL_CONFIG_HAS_LED LED_Init(); #endif #if PL_CONFIG_HAS_EVENTS EVNT_Init(); #endif #if PL_CONFIG_HAS_TIMER TMR_Init(); #endif #if PL_CONFIG_HAS_TRIGGER TRG_Init(); #endif #if PL_CONFIG_HAS_BUZZER BUZ_Init(); #endif #if PL_CONFIG_HAS_RTOS RTOS_Init(); #endif #if PL_CONFIG_HAS_SHELL SHELL_Init(); #endif #if PL_CONFIG_HAS_SHELL_QUEUE SQUEUE_Init(); #endif #if PL_CONFIG_HAS_MOTOR MOT_Init(); #endif #if PL_CONFIG_HAS_LINE_SENSOR REF_Init(); #endif #if PL_CONFIG_HAS_MOTOR_TACHO TACHO_Init(); #endif #if PL_CONFIG_HAS_MCP4728 MCP4728_Init(); #endif #if PL_CONFIG_HAS_ULTRASONIC US_Init(); #endif #if PL_CONFIG_HAS_PID PID_Init(); #endif #if PL_CONFIG_HAS_DRIVE DRV_Init(); #endif #if PL_CONFIG_HAS_TURN TURN_Init(); #endif #if PL_CONFIG_HAS_LINE_FOLLOW LF_Init(); #endif #if PL_CONFIG_HAS_RADIO RNETA_Init(); #endif #if PL_CONFIG_HAS_REMOTE REMOTE_Init(); #endif #if PL_CONFIG_HAS_IDENTIFY ID_Init(); #endif #if PL_CONFIG_HAS_LINE_MAZE MAZE_Init(); #endif }
void RTOS_Run(void) { RTOS_Init(); FRTOS1_vTaskStartScheduler(); /* does usually not return! */ }