




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
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.寫狀態(tài)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.讀取狀態(tài)a.返回模式charGPIO_ReturnMode(charport);b.返回方向charGPIO_ReturnDir(charport);c.返回電平值charGPIO_ReturnDout(charport);3.GPIO使用中需注意的問題,二.中斷的配置與使用,.中斷個數(shù)8個EINT0,EINT1為專用中斷,EINT2-7與GPIO等功能復(fù)用.設(shè)置中斷模式通過DRV_TOOL或Gpio_init(void)來初始化,也可在程序中通過GPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada)隨時修改.中斷注冊函數(shù)在某個TASK中注冊中斷,建議注冊在AUX_TASK中,便于管理EINT_Registration(FLICK_EINT_NO,KAL_TRUE,flick_state,FLICK_EINT_HISR,KAL_TRUE);.中斷處理函數(shù)以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驅(qū)動Lcd_sw.h1.定義寫命令及寫數(shù)據(jù)的函數(shù)#defineLCD_CtrlWrite_HX8306A(_data)*(volatilekal_uint32*)LCD_HX8306A_CTRL_ADDR=(_data2.定義是否使用DMA方式#defineLCD_CMD_DMA_MODE3.若是并口屏,要定義LCD接口的位數(shù)#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()*/,五.音效優(yōu)化,SpeakerReceiverMicphone模式:normal;handfree;headsetNvram_default_audio.c值的范圍0-255Audcoeff.cFIR需使用音頻測試儀器測出的參數(shù),一般都是normal模式下的參數(shù);handfree模式下的參數(shù)要依靠經(jīng)驗和嘗試來確定。constunsignedshortDG_DL_Speech=0 x1000;constunsignedshortDG_Microphone=0 x1400;以上兩個變量為Receiver及Microphone的數(shù)字增益,值可以在0 x1000至0 x2000之間調(diào)整,但一般情況下不需調(diào)整。使用默認值,而只調(diào)整Nvram_default_audio.c當中的模擬增益值的大小即可,audcoeff_default.h#defineDEFAULT_SPEECH_LOUDSPK_MODE_PARA128,224,5128,0,374,0,400,0第一個參數(shù)范圍值0至1024,值越大,回聲抑制越弱;值越小,回聲抑制越強。該值可以用于改善音頻的回聲及斷續(xù)。其它值不建議修改.,_Apply_Mic_Setting對MIC的設(shè)置,注意MIC的單端及差分設(shè)置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.系數(shù)設(shè)置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;,關(guān)于AT模式串口及Trace模式串口的設(shè)置(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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計創(chuàng)新成果管理辦法
- 監(jiān)理公司證件管理辦法
- 證券行業(yè)資質(zhì)管理辦法
- 開源信息保密管理辦法
- 成都交易資金管理辦法
- 高考網(wǎng)高一數(shù)學(xué)試卷
- 高中高三數(shù)學(xué)試卷
- 肝病中醫(yī)治療課件
- 高三春招復(fù)習(xí)數(shù)學(xué)試卷
- 東莞市高三二模數(shù)學(xué)試卷
- 電大考試試題及答案商法
- 廣西壯族自治區(qū)柳州市上進聯(lián)考2024-2025學(xué)年高一下學(xué)期6月期末聯(lián)合考試數(shù)學(xué)試題(含答案)
- 八年級暑假前家長會課件
- 育嬰員考試題型及答案
- 2025年河南省高考地理試卷真題(含答案)
- 2025屆廣東省惠州惠城區(qū)五校聯(lián)考英語八下期末檢測試題含答案
- 科室建立血糖管理制度
- T/CNFAGS 16-2024綠色甲醇分級標準(試行)
- 國民經(jīng)濟行業(yè)分類代碼(2024年版)
- 房屋市政工程生產(chǎn)安全重大事故隱患判定檢查表(2024版)
- 2025年財會業(yè)務(wù)知識競賽題庫及答案(360題)
評論
0/150
提交評論