示例#1
1
void main(void)
{
// main entry point
_DISABLE_COP();

/********************************************************************/
// initializations
/********************************************************************/
 IIC0_Init();

	for (;;)
	{
	   WriteDAC(0b00100000,0b00110000,0x0FFF);	
	}

}
示例#2
0
// =============================================================================
// 功能:初始化EEPROM芯片,并将其挂接到IIC总线上面,使用了DJYBUS的模型
// 参数:para,暂时没用到
// 返回:true,正确;false,错误
// =============================================================================
ptu32_t M24256_ModuleInit(ptu32_t para)
{
	pg_E2ROM_Dev.DevAddr = E2ROM_Address;
	pg_E2ROM_Dev.BitOfMemAddrInDevAddr = 0;
	pg_E2ROM_Dev.BitOfMemAddr = 16;
	
	IIC0_Init();

	if(NULL == IIC_DevAdd_r("IIC0","IICDev_M24256",&pg_E2ROM_Dev))
		return false;
	else
		return true;
}
示例#3
0
//----组件初始化2-----------------------------------------------------------
//功能:可选组件初始化函数共有3个:
//      1、sys_module_init,在sys_init.c中,参见该函数注释
//      2、prj_module_init,在这里初始化的模块,需要调用跟具体工程相关的代码,例
//          如键盘模块,除了调用module_init_keyboard函数外,还要调用跟硬件相关的
//          module_init_keyboard_hard函数。
//      前两步初始化时,块相联分配方式还没有初始化,驱动中如果用到动态分配,使用
//      的是准静态分配,关于准静态分配的说明,参见mems.c文件。
//      3、run_module_init,参见该函数注释。
//参数:无
//返回:无
//-----------------------------------------------------------------------------
void Sys_ModuleInit(void)
{
	tagDevHandle char_term_hdl;
	u32 stdinout;
	uint16_t evtt_main;

	//初始化PutChark,Putsk,GetChark,GetsK四个内核级输入输出函数,此后,printk
	//可以正常使用.printf和scanf将调用前述4个函数执行输入输出
	Stddev_KnlInOutInit( 0 );
	//shell模块,依赖:无
	Sh_MoudleInit(0);
	//文件系统模块,依赖:shell
	//    Djyfs_ModuleInit(0);
	//设备驱动模块
	Driver_ModuleInit(0);
	//多路复用模块,提供类似Linux的epoll、select的功能
	Multiplex_ModuleInit(0);

	//提供在shell上输出内核信息的功能,依赖:shell模块
	Debug_InfoInit(0);
	//异常监视模块,依赖:shell模块
	Exp_ModuleInit(0);
	//安装异常信息解析器,解析异常模块记录的二进制数据
	Exp_InfoDecoderInit( );

	UART_ModuleInit(CN_UART0);
	UART_ModuleInit(CN_UART1);

	//标准IO初始化,不影响printk函数,此后,printf和scanf将使用stdin/out输出和输
	//入,如果裁掉,将一直用PutChark,Putsk,GetChark,GetsK执行IO
	//依赖: 若stdin/out/err是文件,则依赖文件系统
	//      若是设备,则依赖设备驱动
	//      同时,还依赖用来输出信息的设施,例如串口,LCD等
	Stddev_ModuleInit( 0 );

	//打开IO设备,不同的板件,这部分可能区别比较大.
	stdinout = Driver_FindDevice(gc_pCfgStddevName);
	char_term_hdl = Driver_OpenDeviceAlias(stdinout,O_RDWR,0);
	if(char_term_hdl != NULL)
	{
		Driver_CtrlDevice(char_term_hdl,CN_UART_START,0,0);
		//设置串口波特率为115200,
		Driver_CtrlDevice(char_term_hdl,CN_UART_SET_BAUD,115200,0);
		CharTerm_ModuleInit((ptu32_t)stdinout);
		Driver_CloseDevice(char_term_hdl);
	}

	//djybus模块
	DjyBus_ModuleInit(0);
	//IIC总线模块,依赖:djybus
	ModuleInit_IICBus(0);
	//SPI总线模块,依赖:djybus
	ModuleInit_SPIBus(0);
	SPI_Init();
	IIC0_Init();
//	IIC1_Init();

	//日历时钟模块
//	TM_ModuleInit(0);
	//使用硬件RTC,注释掉则使用tick做RTC计时,依赖:日历时钟模块
//	RTC_ModuleInit(0);

	//定时器组件
//	module_init_timersoft(0);

	//键盘输入模块
	//    Keyboard_ModuleInit(0);
	//键盘输入驱动,依赖:键盘输入模块
	//    module_init_keyboard_hard(0);

	//字符集模块
//	Charset_ModuleInit(0);
	//gb2312字符编码,依赖:字符集模块
//	Charset_Gb2312ModuleInit(0);
	//ascii字符集,注意,gb2312包含了ascii,初始化了gb2312后,无须本模块
	//依赖:字符集模块
	//    Charset_AsciiModuleInit(0);
	//初始化utf8字符集
	//    Charset_Utf8ModuleInit(0);
	//国际化字符集支持,依赖所有字符集模块以及具体字符集初始化
//	Charset_NlsModuleInit("C");

//	Font_ModuleInit(0);                 //字体模块
	//8*8点阵的ascii字体依赖:字体模块
	//    Font_Ascii8x8FontModuleInit(0);
	//6*12点阵的ascii字体依赖:字体模块
	//    Font_Ascii6x12FontModuleInit(0);
	//从数组安装GB2312点阵字体,包含了8*16的ascii字体.依赖:字体模块
	//    Font_Gb2312_816_1616_ArrayModuleInit(0);
	//从文件安装GB2312点阵字体,包含了8*16的ascii字体.依赖:字体模块,文件系统
	//    Font_Gb2312_816_1616_FileModuleInit("sys:\\gb2312_1616");
	//8*16 ascii字体初始化,包含高128字节,依赖:字体模块
	//注:如果安装了GB2312,无须再安装
//	Font_Ascii8x16FontModuleInit(0);


	//看门狗模块,如果启动了加载时喂硬件狗,看门狗软件模块从此开始接管硬件狗.
//	module_init_wdt(0);

	//事件的两个参数暂设为0,如果用shell启动,可用来采集shell命令行参数
	evtt_main = Djy_EvttRegist(EN_CORRELATIVE,CN_PRIO_RRS,0,0,__djy_main,
						   NULL,gc_u32CfgMainStackLen,"main function");
	//事件的两个参数暂设为0,如果用shell启动,可用来采集shell命令行参数
	Djy_EventPop(evtt_main,NULL,0,NULL,0,200);

	Heap_DynamicModuleInit(0);//自此malloc函数执行块相联算法
	//至此,初始化时使用的栈,已经被系统回收,本函数就此结束,否则会死得很难看
	return ;
}