免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
* brief TFT initialize or reinitialize * Assumes EBI has been configured correctly in BSP_Init(BSP_INIT_DK_EBI) * paramin tftInit Pointer to EBI TFT initialization structure * return true if we should redraw into buffer, false if BC has controlover displaybool TFT_DirectInit(const EBI_TFTInit_TypeDef *tftInit) bool ret; uint32_t i, freq; /* If we are in BC_UIF_AEM_EFM state, we can redraw graphics */ if (BSP_RegisterRead(&BC_REGISTER-UIF_AEM) = BC_UIF_AEM_EFM) /* If were not BC_ARB_CTRL_EBI state, we need to reconfigure display controller */ if (BSP_RegisterRead(&BC_REGISTER-ARB_CTRL) != BC_ARB_CTRL_EBI) | runOnce) /* Enable SSD2119 Serial Port Interface */ BSP_PeripheralAccess(BSP_TFT, true); /* Enable EBI mode of operation on SSD2119 controller */ BSP_DisplayControl(BSP_Display_EBI); BSP_DisplayControl(BSP_Display_ResetAssert); BSP_DisplayControl(BSP_Display_PowerDisable); freq = SystemCoreClockGet(); for (i = 0; i (freq / 100); i+) _NOP(); /* Configure display for Direct Drive Mode Generic + 3-wire SPI mode */ BSP_DisplayControl(BSP_Display_ModeGeneric); BSP_DisplayControl(BSP_Display_PowerEnable); BSP_DisplayControl(BSP_Display_ResetRelease); /* Configure GPIO for EBI and TFT */ TFT_DirectGPIOConfig(); /* Initialize display */ DMD_init(0, (uint32_t) EBI_BankAddress(EBI_BANK2); /* Configure EBI TFT direct drive */ EBI_TFTInit(tftInit); runOnce = false; ret = true; else ret = false; return ret;#define BC_UIF_AEM_EFM (1) /*ARB_CTRL, BC_ARB_CTRL_EBI); break; case BSP_Display_SPI: BSP_RegisterWrite(&BC_REGISTER-ARB_CTRL, BC_ARB_CTRL_SPI); break; case BSP_Display_BC: BSP_RegisterWrite(&BC_REGISTER-ARB_CTRL, BC_ARB_CTRL_BC); break; case BSP_Display_PowerEnable: tmp = BSP_RegisterRead(&BC_REGISTER-DISPLAY_CTRL); tmp |= (BC_DISPLAY_CTRL_POWER_ENABLE); BSP_RegisterWrite(&BC_REGISTER-DISPLAY_CTRL, tmp); break; case BSP_Display_PowerDisable: tmp = BSP_RegisterRead(&BC_REGISTER-DISPLAY_CTRL); tmp &= (BC_DISPLAY_CTRL_POWER_ENABLE); BSP_RegisterWrite(&BC_REGISTER-DISPLAY_CTRL, tmp); break; case BSP_Display_ResetAssert: tmp = BSP_RegisterRead(&BC_REGISTER-DISPLAY_CTRL); tmp |= (BC_DISPLAY_CTRL_RESET); BSP_RegisterWrite(&BC_REGISTER-DISPLAY_CTRL, tmp); break; case BSP_Display_ResetRelease: tmp = BSP_RegisterRead(&BC_REGISTER-DISPLAY_CTRL); tmp &= (BC_DISPLAY_CTRL_RESET); BSP_RegisterWrite(&BC_REGISTER-DISPLAY_CTRL, tmp); break; case BSP_Display_Mode8080: tmp = BSP_RegisterRead(&BC_REGISTER-DISPLAY_CTRL); tmp &= (BC_DISPLAY_CTRL_MODE_GENERIC); BSP_RegisterWrite(&BC_REGISTER-DISPLAY_CTRL, tmp); break; case BSP_Display_ModeGeneric: tmp = BSP_RegisterRead(&BC_REGISTER-DISPLAY_CTRL); tmp |= (BC_DISPLAY_CTRL_MODE_GENERIC); BSP_RegisterWrite(&BC_REGISTER-DISPLAY_CTRL, tmp); break; default: /* Unknown command */ while (1); return BSP_STATUS_OK;* brief Initializes the LCD display* param cmdRegAddr* If set to 0, initialize SSD2119 for direct drive, if set to 1 update* frame buffer base pointer (offset to EBI bank) only* param dataRegAddr* Address in memory for frame buffer base pointer* return* DMD_OK on success, otherwise error codeEMSTATUS DMD_init(uint32_t cmdRegAddr, uint32_t dataRegAddr) uint16_t data; volatile uint32_t i; (void) cmdRegAddr; (void) dataRegAddr; /* Use data reg addr as pointer to frame buffer */ frameBuffer = (uint16_t *) dataRegAddr; if(cmdRegAddr=1) return DMD_OK; SPI_TFT_Init(); DMDIF_writeReg(DMD_SSD2119_VCOM_OTP_1, 0x0006); /* Oscillation driven DCLK */#if 0 data = DMD_SSD2119_OSCILLATION_START_OSCEN; DMDIF_writeReg(DMD_SSD2119_OSCILLATION_START, data);#endif /* Display control */ data = 0; / data |= DMD_SSD2119_DISPLAY_CONTROL_DTE; data |= DMD_SSD2119_DISPLAY_CONTROL_GON; data |= DMD_SSD2119_DISPLAY_CONTROL_D1; data |= DMD_SSD2119_DISPLAY_CONTROL_D0; DMDIF_writeReg(DMD_SSD2119_DISPLAY_CONTROL, data); /* Exit sleep mode */ data = 0; DMDIF_writeReg(DMD_SSD2119_SLEEP_MODE_1, data); /* Wait */ for (i = 0; i 100000; i+); /* Display control */ DMDIF_writeReg(DMD_SSD2119_DISPLAY_CONTROL, 0x33); /* Entry mode */ data = DMD_SSD2119_ENTRY_MODE_DFM_65K DMD_SSD2119_ENTRY_MODE_DFM_SHIFT; data |= DMD_SSD2119_ENTRY_MODE_WMODE; data |= DMD_SSD2119_ENTRY_MODE_NOSYNC; data |= DMD_SSD2119_ENTRY_MODE_DMODE; data |= DMD_SSD2119_ENTRY_MODE_ID1; data |= DMD_SSD2119_ENTRY_MODE_ID0; DMDIF_writeReg(DMD_SSD2119_ENTRY_MODE, data); / DMDIF_writeReg(DMD_SSD2119_DRIVER_OUTPUT_CONTROL, 0x3aef); /* Generic Interface Control */ / data = DMD_SSD2119_GENERIC_INTERFACE_CONTROL_INVDEN; / DMDIF_writeReg(DMD_SSD2119_GENERIC_INTERFACE_CONTROL, data); /* Driver output control */ data = 0; data |= DMD_SSD2119_DRIVER_OUTPUT_CONTROL_REV; data |= DMD_SSD2119_DRIVER_OUTPUT_CONTROL_GD; / data |= DMD_SSD2119_DRIVER_OUTPUT_CONTROL_TB; / data |= DMD_SSD2119_DRIVER_OUTPUT_CONTROL_SM; / data |= DMD_SSD2119_DRIVER_OUTPUT_CONTROL_RL; data |= (DMD_VERTICAL_SIZE - 1) DMD_SSD2119_DRIVER_OUTPUT_CONTROL_MUX_SHIFT); DMDIF_writeReg(DMD_SSD2119_DRIVER_OUTPUT_CONTROL, data); /* LCD AC control */ data = DMD_SSD2119_LCD_AC_CONTROL_BC; data |= DMD_SSD2119_LCD_AC_CONTROL_EOR; /* data |= DMD_SSD2119_LCD_AC_CONTROL_FLC; */ DMDIF_writeReg(DMD_SSD2119_LCD_AC_CONTROL, data); /* RAM data write */ data = 0xff; DMDIF_writeReg(DMD_SSD2119_ACCESS_DATA, data); /* Mark graphics as initialized */ initialized = 1; return DMD_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年互联网金融行业金融科技创新与数字化服务模式研究报告及未来发展趋势预测
- 2025年教育科技互联网行业在线教育与人工智能教学模式研究报告及未来发展趋势预测
- 2025年新能源行业换电站布局优化策略绿色能源消费资格考核试卷
- 2025年户外运动行业健康生活方式与消费升级研究报告及未来发展趋势预测
- AI智能定价模型动态调整与利润优化能力考核试卷
- 低速汽车:领跑未来-探索行业发展与创新实践
- 2025重庆市潼南区公安局辅警岗招聘30人笔试考试参考试题及答案解析
- 2025年兴城市人民医院面向社会公开招聘院内聘用制护士考试笔试备考题库及答案解析
- 2026年水利部长江水利委员会事业单位招聘107人(第一批)考试笔试备考题库及答案解析
- 2025黑龙江黑河市爱辉区林业和草原局所属事业单位招聘20人笔试考试参考题库及答案解析
- 咏史完整版本
- 汉字笔画练习字帖
- 塔磨机安全操作规程
- 消防水泵房巡检签到表
- 全科医师转岗培训理论考试试题及答案
- 公会之间挂靠主播合作协议书
- 实验三基因组序列分析
- 2022年澄迈县辅警招聘笔试试题及答案解析
- 小学语文人教三年级上册 童话中有趣的角色
- 2022年临沧边境经济合作区国有资本投资运营有限公司招聘笔试试题及答案解析
- 思想道德与法治课件:第六章 第三节 维护宪法权威
评论
0/150
提交评论