已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
首先需要注意两个宏定义 1. _CUST_NEW_ 程序中有多处用该宏将代码隔开 Make文件中若如下定义: DRV_CUSTOM_TOOL_SUPPORT = TRUE Option.mak文件中 ifdef DRV_CUSTOM_TOOL_SUPPORT ifeq ($(strip $(DRV_CUSTOM_TOOL_SUPPORT),TRUE) COM_DEFS += _CUST_NEW_ endif endif 2. WIN32 #ifndef WIN32 #endif 用该宏将真机与模拟器的代码分隔开 GPIO口的初始化 方法:两种: 1.工具 customdrvDrv_ToolDrvGen.exe 修改: customdrvmisc_drvIWIT23_NEP_07A_PMJ_BBcodegencodege n.dws 2.程序中修改:Gpio_drv.c void GPIO_init(void) 操作 1. 写状态 a. 模式修改 GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada) b. 方向修改 void GPIO_InitIO(char direction, char port) c. 置高与置低 GPIO_WriteIO(char data, char port) d. 上拉与下拉的使能 void GPIO_PullenSetup(kal_uint16 pin, kal_bool enable) 2. 读取状态 a. 返回模式 char GPIO_ReturnMode(char port); b. 返回方向 char GPIO_ReturnDir(char port); c. 返回电平值 char GPIO_ReturnDout(char port); 3. GPIO使用中需注意的问题 . 中断个数 8个 EINT0, EINT1为专用中断, EINT2-7 与GPIO等功能复用 . 设置中断模式 通过DRV_TOOL或Gpio_init(void)来初始化,也可在程序中通过 GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada)随时修改 . 中断注册函数 在某个TASK中注册中断,建议注册在AUX_TASK中,便于管理 EINT_Registration(FLICK_EINT_NO, KAL_TRUE, flick_state, FLICK_EINT_HISR, KAL_TRUE); . 中断处理函数 以FLICK及BATTERY两个中断为例: void FLICK_EINT_HISR(void) /added by Jeff Ji 071024 ilm_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); else aux_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); void BATTERY_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)/plug out bmt_set_chr_status(bmt_chr_out); bmt_charger_action(KAL_FALSE); else /plug in if(iwit_charger_present) bmt_set_chr_status(bmt_chr_in); bmt_charger_action(KAL_TRUE); 5X6键盘 Powerkey单独,第6列 DEVICE_KEY_END Keypad_def.c 配置行列矩阵 Kbd_table.h 定义 DRIVER KEY CODE KeyBrd.c 定义KeyPadMap GlobalConstants.h 定义MMI KEY CODE 四. LCD驱动 Lcd_sw.h 1. 定义写命令及写数据的函数 #define LCD_CtrlWrite_HX8306A(_data) *(volatile kal_uint32 *) LCD_HX8306A_CTRL_ADDR= (_data void LCD_Init_ST7549T(kal_uint32 bkground, void *buf_addr) void LCD_BlockWrite_ST7549T(kal_uint16 startx,kal_uint16 starty,kal_uint16 endx,kal_uint16 endy) void LCD_EnterSleep_ST7549T(void) void LCD_ExitSleep_ST7549T(void) void LCD_SetContrast_ST7549T(kal_uint8 level) 串口屏 void init_lcd_interface(void) SPI_Initialize();/modified by jeff ji 071024 /* init_lcd_interface() * void lcdSendSerialData(kal_uint8 SerialData, kal_bool rs) #define lcdSendCmd(cmd) lcdSendSerialData(cmd, 0) #define lcdSendData(data) lcdSendSerialData(data,1) 并口屏: void init_lcd_interface(void) kal_uint32 i; REG_LCD_ROI_CTRL=0; CLEAR_LCD_CTRL_RESET_PIN; #if (defined(MT6219)|defined(MT6226)|defined(MT6226M)|d efined(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(MT6 223)| defined(MT6223P) #if (defined(LCD_16BIT_MODE) SET_LCD_PARALLEL_16BIT_DATA_BUS;/ywm+ 20060518 #elif (defined(LCD_18BIT_MODE) GPIO_ModeSetup(55, 1); *(volatile unsigned short *) 0x801201B0) |= 0x4000; *(volatile unsigned short *) 0x801201D0) |= 0x0001; 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 #endif SET_LCD_CTRL_RESET_PIN; Delayms(100); /* init_lcd_interface() */ 1.Speaker 2.Receiver 3.Micphone 模式:normal ; handfree ; headset Nvram_default_audio.c 值的范围 0 - 255 Audcoeff.c FIR 需使用音频测试仪器测出的参数,一般都是normal模式下的参数; handfree模式下的参数要依靠经验和尝试来确定。 const unsigned short DG_DL_Speech = 0x1000; const unsigned short DG_Microphone = 0x1400; 以上两个变量为Receiver及Microphone的数字增益,值可以在0x1000 至0x2000之间调整,但一般情况下不需调整。使用默认值,而只调 整Nvram_default_audio.c当中的模拟增益值的大小即可 audcoeff_default.h #define DEFAULT_SPEECH_LOUDSPK_MODE_PARA 128, 224, 5128, 0, 374, 0, 400, 0 第一个参数范围值0至1024 , 值越大,回声抑制越弱 ; 值越 小,回声抑制越强。该值可以用于改善音频的回声及断续。 其它值不建议修改. _Apply_Mic_Setting对MIC的设置,注意MIC的单端及差分设置 void _apply_mic_setting_c63216(kal_int16 a_lowest) if( afe.mic_src=L1SP_LNA_1 ) /* Headset Mode */ *AFE_VAC_CON0 |= 0x0480; /* Switch input source to headset microphone */ *AFE_VAC_CON1 |= 0x0040; /* Switch on resister string */ else /* Normal Mode */ *AFE_VAC_CON0 /* Switch input source to normal microphone */ *AFE_VAC_CON1 /* Switch off resister string */ 1. 工具配置 2. 系数设置 Chr_parameter.c const kal_uint16 adc_volt_factorADC_MAX_CHANNEL 100, 100, 50, 250, 50, 50,/*NC*/ 50 /*NC*/ , 50为一倍 3. ADC测量 Auxmain.c 七. Touch panel 1.MAKE文件中如下配置 TOUCH_PANEL_SUPPORT = MT6301 2. Touch_panel_spi.h #define SPI_DIN_PIN gpio_tp_spi_din_pin /*GPO*/ #define SPI_CLK_PIN gpio_tp_spi_clk_pin /*GPO*/ #define SPI_DOUT_PIN gpio_tp_spi_dout_pin /*GPI*/ #define SPI_CS_PIN gpio_tp_spi_cs_pin /*GPO*/ #define SPI_BUSY_PIN gpio_tp_spi_busy_pin /*GPI*/ 3. Touch_panel_custom.h #define TOUCH_PANEL_COORD_X_START 0 #define TOUCH_PANEL_COORD_X_END 239 #define TOUCH_PANEL_COORD_Y_START 0 #define TOUCH_PANEL_COORD_Y_END 319 八. USB 1. MAKE文件中 _CHARGER_USB_DETECT_WIHT_ONE_EINT_ _USB_ENABLE_ USB_IN_NORMAL_MODE_SUPPORT = TRUE 2. ADC配置,工具配置 ADC_CHR_USB 3. Chr_parameter.c const kal_uint16 adc_volt_factorADC_MAX_CHANNEL 100, 100, 50, 250, 50, 50,/*NC*/ 50 /*NC*/ , 九. UART 串口初始化 Uart.c中,void UART_HWInit(UART_PORT port) UARTDCBStruct UART_DefaultConfig = UART_BAUD_115200, /* baud; */ len_8, /* dataBits; */ sb_1, /*stopBits; */ pa_none, /* parity; */ fc_none, /*no flow control*/ 0x11, /* xonChar; */ 0x13, /* xoffChar; */ KAL_FALSE ; 关于AT模式串口及Trace模式串口的设置(NVRAM) Nvram_common_config.c static kal_uint8 const NVRAM_EF_PORT_SETTING_DEFAULT = #if defined(_ONLY_ONE_UART_) 0x63, 0x00, /* TST uses uart_port2(value is 1) */ 0x00, 0x00, /* APP uses uart_port1 */ #else 0x01, 0x00, /* TST uses uart_port2(value is 1) */ 0x00, 0x00, /* APP uses uart_port1 */ #endif #if defined(EMPTY_MMI) 0x00, 0x10, 0x0E, 0x00, /* tst default baud rate base = 921600 = 0x000E1000 */ #else 0x00, 0xC2, 0x01, 0x00, /* tst default baud rate base = 115200 = 0x0001C200 */ #endif #if defined (_GPRS_MODE_) 0x00, 0xC2, 0x01, 0x00, /* ps default baud rate base = 115200 = 0x0001C200 */ #else 0x00, 0xC2, 0x01,0x00, /* ps default baud rate base = 57600 = 0x0000E100 */ #endif 0x00, /* High SpeedSIM */ 0x00, /* SWDBG */ 0x03, 0x63, /* uart power setting, plus 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胆囊错构瘤的护理
- 雨课堂学堂在线学堂云《博物馆学概论(天水师院 )》单元测试考核答案
- 2024年百特中秋国庆双节主题营销传播方案
- 2026年(通讯维修工)理论知识考试题库及答案(真题汇编)
- 宜宾市高县2025年面向社会公开招聘社区综合岗(8人)备考题库附答案解析
- 中国通信服务湖南公司2026秋季校园招聘历年真题汇编带答案解析
- 2026年陕西省选调生招录(面向西安电子科技大学)笔试模拟试卷附答案解析
- 四川省盐业集团宜宾有限公司2025年度营销人员招聘历年真题汇编附答案解析
- 2026年陕西省选调生招录(面向中国政法大学)笔试备考试卷附答案解析
- 2026民航中南空管局应届毕业生招聘57人备考题库附答案
- 行政事业单位资产清查报表(清查明细表)
- 建设畜禽粪污处理视频监控体系的策略及实施路径
- 2025年生物医药中试生产基地建设:技术创新对产业发展的深远影响报告
- 2025年中国华能集团招聘面试模拟题与实战技巧
- 2026年中考数学压轴题专项练习:筝形综合题(学生版+详解版)
- 2025至2030中国教育装备行业项目调研及市场前景预测评估报告
- 足球俱乐部球员纪律管理规定
- 2025年物业项目经理竞聘考试试题及解析
- 电线路的构成及巡视课件
- 2024年高速道路清障与协作交通顺畅人员安全技能知识试题库及答案
- 鄂林碳票方法学(试行)
评论
0/150
提交评论