int32_t	main( void )
{
	int16_t		Temp16S;
	uint16_t	i;
	
	//	板上器件初始化
	BIOS_Init( );
	DS18B20_1_Read( &Temp16S );		//	读18B20, 跳过 0x0550
	DS18B20_2_Read( &Temp16S );
	DS18B20_3_Read( &Temp16S );
	Initialize7705( );

	//	初始化通信缓冲区
	for ( i = 0; i < 40u; ++i )
	{
		usRegHoldingBuf[i] = 0u;
		usRegInputBuf[i]   = 0u;
	}

	for ( i = 0; i < (( 40u + 7 ) / 8 ); ++i )
	{
		ucRegCoilsBuf[i] = 0u;
		ucRegDiscBuf[i] = 0u;
	}
	
	// Set_BitN( ucRegDiscBuf, 1 );	//	大气压力 存在
	Set_BitN( ucRegDiscBuf, 2 );	//	环境温度 存在
	Set_BitN( ucRegDiscBuf, 3 );	//	电机温度 存在
	// Set_BitN( ucRegDiscBuf, 5 );	//	恒温箱 存在
	Set_BitN( ucRegDiscBuf, 8 );	//	加热器 存在
	Set_BitN( ucRegDiscBuf, 10 );	//	大气泵 存在
	Set_BitN( ucRegDiscBuf, 15 );	//	粉尘泵 本组信号 存在
	Set_BitN( ucRegDiscBuf, 16 );	//	       计前压力 有效
	Set_BitN( ucRegDiscBuf, 17 );	//	       计前温度 有效
	Set_BitN( ucRegDiscBuf, 20 );	//	日均A  本组信号 存在
	Set_BitN( ucRegDiscBuf, 21 );	//	       计前压力 有效
	Set_BitN( ucRegDiscBuf, 22 );	//	       计前温度 有效
	Set_BitN( ucRegDiscBuf, 25 );	//	日均B  本组信号 存在
	Set_BitN( ucRegDiscBuf, 26 );	//	       计前压力 有效
	Set_BitN( ucRegDiscBuf, 27 );	//	       计前温度 有效
	
	//	初始化MODBUS协议栈
	MODBUS_Init( 1 );
	
	//	看门狗配置
	//	InitWDT();
	for(;;)
	{
		//	活动计数器,表示系统工作正常。
		++usRegInputBuf[0];

		Update_CH0( );

		Update_CH1( );

		//	看门狗控制
		//	ClearWDT();
	}
}
예제 #2
0
/*
配置系统的顺序
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();	//	转主菜单
	}
}
예제 #3
0
/*
配置系统的顺序
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();	        //	转主菜单
	}
}
예제 #4
0
void vDos_Init(void)
	{
	hideWinTill = GetTickCount()+2500;												// Auto hidden till first keyboard check, parachute at 2.5 secs

	LOG_MSG("vDos version: %s", vDosVersion);

#ifndef WITHIRQ1
	// Wil have been called earlier in starup if WITHIRQ1 is defined
	vDos_LoadConfig();
#endif

	GUI_StartUp();
	IO_Init();
	PAGING_Init();
	MEM_Init();
	CALLBACK_Init();
	PIC_Init();
	PROGRAMS_Init();
	TIMER_Init();
//	CMOS_Init();
	VGA_Init();
	CPU_Init();
	KEYBOARD_Init();
	BIOS_Init();
	INT10_Init();
	MOUSE_Init();
	SERIAL_Init();
	PARALLEL_Init();
	printTimeout = ConfGetBool("timeout");
	DOS_Init();
	XMS_Init();
	EMS_Init();
	if (errorMess[0])
		MessageBox(NULL, errorMess+1, "vDos: CONFIG.TXT has unresolved items", MB_OK|MB_ICONWARNING);
	SHELL_Init();																	// Start up main machine
	}