已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MTKDriverIntroduction,首先需要注意两个宏定义1._CUST_NEW_程序中有多处用该宏将代码隔开Make文件中若如下定义:DRV_CUSTOM_TOOL_SUPPORT=TRUEOption.mak文件中ifdefDRV_CUSTOM_TOOL_SUPPORTifeq($(strip$(DRV_CUSTOM_TOOL_SUPPORT),TRUE)COM_DEFS+=_CUST_NEW_endifendif,2.WIN32#ifndefWIN32#endif用该宏将真机与模拟器的代码分隔开,一.GPIO口的初使化与使用,GPIO口的初始化方法:两种:1.工具customdrvDrv_ToolDrvGen.exe修改:customdrvmisc_drvIWIT23_NEP_07A_PMJ_BBcodegencodegen.dws2.程序中修改:Gpio_drv.cvoidGPIO_init(void)操作1.写状态a.模式修改GPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada)b.方向修改voidGPIO_InitIO(chardirection,charport)c.置高与置低GPIO_WriteIO(chardata,charport),d.上拉与下拉的使能voidGPIO_PullenSetup(kal_uint16pin,kal_boolenable)2.读取状态a.返回模式charGPIO_ReturnMode(charport);b.返回方向charGPIO_ReturnDir(charport);c.返回电平值charGPIO_ReturnDout(charport);3.GPIO使用中需注意的问题,二.中断的配置与使用,.中断个数8个EINT0,EINT1为专用中断,EINT2-7与GPIO等功能复用.设置中断模式通过DRV_TOOL或Gpio_init(void)来初始化,也可在程序中通过GPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada)随时修改.中断注册函数在某个TASK中注册中断,建议注册在AUX_TASK中,便于管理EINT_Registration(FLICK_EINT_NO,KAL_TRUE,flick_state,FLICK_EINT_HISR,KAL_TRUE);.中断处理函数以FLICK及BATTERY两个中断为例:,voidFLICK_EINT_HISR(void)/addedbyJeffJi071024ilm_struct*flick_ilm;aux_id_struct*aux_id_data;if(flick_state=LEVEL_HIGH)aux_id_data=(aux_id_struct*)construct_local_para(sizeof(aux_id_struct),TD_CTRL);aux_id_data-aux_id=AUX_ID_FLICK_OFF;DRV_BuildPrimitive(flick_ilm,MOD_EINT_HISR,MOD_UEM,MSG_ID_AUX_ID,aux_id_data);,elseaux_id_data=(aux_id_struct*)construct_local_para(sizeof(aux_id_struct),TD_CTRL);aux_id_data-aux_id=AUX_ID_FLICK_ON;DRV_BuildPrimitive(flick_ilm,MOD_EINT_HISR,MOD_UEM,MSG_ID_AUX_ID,aux_id_data);msg_send_ext_queue(flick_ilm);flick_state=!flick_state;EINT_Set_Polarity(FLICK_EINT_NO,flick_state);,voidBATTERY_EINT_HISR(void)iwit_battery_state=!iwit_battery_state;EINT_Set_Polarity(BAT_EINT_NO,iwit_battery_state);iwit_fakeChargerAct=KAL_TRUE;if(iwit_battery_state=LEVEL_HIGH)/plugoutbmt_set_chr_status(bmt_chr_out);bmt_charger_action(KAL_FALSE);else/pluginif(iwit_charger_present)bmt_set_chr_status(bmt_chr_in);bmt_charger_action(KAL_TRUE);,三.键盘配置,5X6键盘Powerkey单独,第6列DEVICE_KEY_ENDKeypad_def.c配置行列矩阵Kbd_table.h定义DRIVERKEYCODEKeyBrd.c定义KeyPadMapGlobalConstants.h定义MMIKEYCODE,四.LCD驱动Lcd_sw.h1.定义写命令及写数据的函数#defineLCD_CtrlWrite_HX8306A(_data)*(volatilekal_uint32*)LCD_HX8306A_CTRL_ADDR=(_data2.定义是否使用DMA方式#defineLCD_CMD_DMA_MODE3.若是并口屏,要定义LCD接口的位数#defineLCD_18BIT_MODE,Lcd.cvoidLCD_FunConfig(void)MainLCD=voidLCD_Init_ST7549T(kal_uint32bkground,void*buf_addr)voidLCD_BlockWrite_ST7549T(kal_uint16startx,kal_uint16starty,kal_uint16endx,kal_uint16endy)voidLCD_EnterSleep_ST7549T(void)voidLCD_ExitSleep_ST7549T(void)voidLCD_SetContrast_ST7549T(kal_uint8level),串口屏voidinit_lcd_interface(void)SPI_Initialize();/modifiedbyjeffji071024/*init_lcd_interface()*voidlcdSendSerialData(kal_uint8SerialData,kal_boolrs)#definelcdSendCmd(cmd)lcdSendSerialData(cmd,0)#definelcdSendData(data)lcdSendSerialData(data,1),并口屏:voidinit_lcd_interface(void)kal_uint32i;REG_LCD_ROI_CTRL=0;CLEAR_LCD_CTRL_RESET_PIN;#if(defined(MT6219)|defined(MT6226)|defined(MT6226M)|defined(MT6227)|defined(MT6223)|defined(MT6223P)SET_LCD_PARALLEL_CE2WR_SETUP_TIME(kal_uint32)2);SET_LCD_PARALLEL_CE2WR_HOLD_TIME(2);SET_LCD_PARALLEL_CE2RD_SETUP_TIME(2);SET_LCD_PARALLEL_WRITE_WAIT_STATE(3);SET_LCD_PARALLEL_READ_LATENCY_TIME(31);SET_LCD_ROI_CTRL_CMD_LATENCY(3,#if(defined(MT6226)|defined(MT6226M)|defined(MT6227)|defined(MT6223)|defined(MT6223P)#if(defined(LCD_16BIT_MODE)SET_LCD_PARALLEL_16BIT_DATA_BUS;/ywm+20060518#elif(defined(LCD_18BIT_MODE)GPIO_ModeSetup(55,1);*(volatileunsignedshort*)0 x801201B0)|=0 x4000;*(volatileunsignedshort*)0 x801201D0)|=0 x0001;SET_LCD_PARALLEL_18BIT_DATA_BUS;#elif(defined(LCD_8BIT_MODE)SET_LCD_PARALLEL_8BIT_DATA_BUS;#endif#endif#if(defined(MT6219)DISABLE_LCD_PARALLEL_SYNC;#endif#endifSET_LCD_CTRL_RESET_PIN;Delayms(100);/*init_lcd_interface()*/,五.音效优化,SpeakerReceiverMicphone模式:normal;handfree;headsetNvram_default_audio.c值的范围0-255Audcoeff.cFIR需使用音频测试仪器测出的参数,一般都是normal模式下的参数;handfree模式下的参数要依靠经验和尝试来确定。constunsignedshortDG_DL_Speech=0 x1000;constunsignedshortDG_Microphone=0 x1400;以上两个变量为Receiver及Microphone的数字增益,值可以在0 x1000至0 x2000之间调整,但一般情况下不需调整。使用默认值,而只调整Nvram_default_audio.c当中的模拟增益值的大小即可,audcoeff_default.h#defineDEFAULT_SPEECH_LOUDSPK_MODE_PARA128,224,5128,0,374,0,400,0第一个参数范围值0至1024,值越大,回声抑制越弱;值越小,回声抑制越强。该值可以用于改善音频的回声及断续。其它值不建议修改.,_Apply_Mic_Setting对MIC的设置,注意MIC的单端及差分设置void_apply_mic_setting_c63216(kal_int16a_lowest)if(afe.mic_src=L1SP_LNA_1)/*HeadsetMode*/*AFE_VAC_CON0|=0 x0480;/*Switchinputsourcetoheadsetmicrophone*/*AFE_VAC_CON1|=0 x0040;/*Switchonresisterstring*/else/*NormalMode*/*AFE_VAC_CON0/*Switchoffresisterstring*/,六.ADC使用,1.工具配置2.系数设置Chr_parameter.cconstkal_uint16adc_volt_factorADC_MAX_CHANNEL100,100,50,250,50,50,/*NC*/50/*NC*/,50为一倍,3.ADC测量Auxmain.c,七.Touchpanel1.MAKE文件中如下配置TOUCH_PANEL_SUPPORT=MT63012.Touch_panel_spi.h#defineSPI_DIN_PINgpio_tp_spi_din_pin/*GPO*/#defineSPI_CLK_PINgpio_tp_spi_clk_pin/*GPO*/#defineSPI_DOUT_PINgpio_tp_spi_dout_pin/*GPI*/#defineSPI_CS_PINgpio_tp_spi_cs_pin/*GPO*/#defineSPI_BUSY_PINgpio_tp_spi_busy_pin/*GPI*/3.Touch_panel_custom.h#defineTOUCH_PANEL_COORD_X_START0#defineTOUCH_PANEL_COORD_X_END239#defineTOUCH_PANEL_COORD_Y_START0#defineTOUCH_PANEL_COORD_Y_END319,八.USB1.MAKE文件中_CHARGER_USB_DETECT_WIHT_ONE_EINT_USB_ENABLE_USB_IN_NORMAL_MODE_SUPPORT=TRUE2.ADC配置,工具配置ADC_CHR_USB3.Chr_parameter.cconstkal_uint16adc_volt_factorADC_MAX_CHANNEL100,100,50,250,50,50,/*NC*/50/*NC*/,九.UART串口初始化Uart.c中,voidUART_HWInit(UART_PORTport)UARTDCBStructUART_DefaultConfig=UART_BAUD_115200,/*baud;*/len_8,/*dataBits;*/sb_1,/*stopBits;*/pa_none,/*parity;*/fc_none,/*noflowcontrol*/0 x11,/*xonChar;*/0 x13,/*xoffChar;*/KAL_FALSE;,关于AT模式串口及Trace模式串口的设置(NVRAM)Nvram_common_config.cstatickal_uint8constNVRAM_EF_PORT_SETTING_DEFAULT=#ifdefined(_ONLY_ONE_UART_)0 x63,0 x00,/*TSTusesuart_port2(valueis1)*/0 x00,0 x00,/*APPusesuart_port1*/#else0 x01,0 x00,/*TSTusesuart_port2(valueis1)*/0 x00,0 x00,/*APPusesuart_port1*/#endif,#ifdefined(EMPTY_MMI)0 x00,0 x10,0 x0E,0 x00,/*tstdefaultbaudratebase=921600=0 x000E1000*/#else0 x00,0 xC2,0 x01,0 x00,/*tstdefaultbaudratebase=115200=0 x0001C200*/#endif#ifdefined(_GPRS_MODE_)0 x00,0 xC2,0 x01,0 x00,/*psdefaultbaudratebase=115200=0 x0001C200*/#else0 x00,0 xC2,0 x01,0 x00,/*psdefaultbaudratebase=57600=0 x0000E100*/#endif0 x00,/*HighSpeedSIM*/0 x00,/*SWDBG*/0 x03,0 x63,/*uartpowersetting,plus1-bytepadd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外架钢管买卖合同范本
- 土地买卖补充合同范本
- 外贸进口三方合同范本
- 外卖工具转让合同范本
- 城管部门劳动合同范本
- 土地居间服务合同范本
- 2025年健康管理机构加盟合同协议
- 外贸货场出租合同范本
- 外墙保洁员工合同范本
- 垃圾清理合同范本模板
- 光伏储能电池安全运行的操作规程
- 期中评估卷- 2025-2026学年英语六年级上学期 人教精通版 (含答案解析)
- 慢性支气管炎知识培训课件
- 2025年冠脉介入培训试题及答案
- 2025国家义务教育质量监测试题(含答案)
- 冠脉介入考试题及答案
- 【MOOC】数据结构与算法-北京大学 中国大学慕课MOOC答案
- 浙江省j12联盟2024-2025学年八年级上学期11月期中考试数学试题
- 标准桥梁检测报告
- 方菱F2100B中文系统说明
- 计算机信息系统集成一级资质企业名单-241家(DOC)
评论
0/150
提交评论