Arduino LiquidCrystal Library Bug Report #174181
Arduino LiquidCrystal Character LCD Driver Library BUG Report #174181
by Conmajia
Effected Devices
Hitachi HD44780 series LCD drivers
SEIKO EPSON SED1278
SAMSUNG KS0066
NER Japan Radio NJU6408
Issue
LiquidCrystal.createChar
function can only create custom characters ONCE. Further call of this function will not effect the CGRAM content. Thus dynamic custom character animation is unable to achieve.
Sample Code
// binary custom characters, contents are omitted
byte heart[8] = {...} // a heart icon ♥
byte smiley[8] = {...} // a smiley icon ☺
// initialize an LCD, parameters are omitted
LiquidCrystal lcd(...);
lcd.begin(16, 2);
// create a new character
lcd.createChar(0, heart);
// print custom character #1
lcd.write(byte(0));
// create/modify another character
lcd.createChar(0, smiley);
// print modified character #1 (BUG)
lcd.write(byte(0));
Expected output is:
♥☺
Actual output is:
♥♥
Character #1 was not modified.
Possible Reason
[To be confirmed]
Timing issue suspected. The LiquidCrystal
library does not considered the BUSY
status of LCDs. It is not able to read anything from the LCD controllers but to write into them. Write operation was unstable with HD44780 series drivers by only some delays. Fig.1 shows the timing diagram of write operations.
Fig.1 Timing Diagram of Write Operation
Timing parameters in Table 1 should be carefully considered.
Table 1 Timing Parameters
Item | Symbol | Min | Max | Unit |
Enable cycle | $t_\mathrm{cycE}$ | $1000$ | $-$ | $\mathrm{ns}$ |
Enable pulse width | $P_\mathrm{weh}$ | $450$ | $-$ | $\mathrm{ns}$ |
Enable rise, fall time | $t_\mathrm{er}$, $T_\mathrm{ef} | $-$ | $25$ | $\mathrm{ns}$ |
Address setup time | $t_\mathrm{as}$ | $140$ | $-$ | $\mathrm{ns}$ |
Address hold time | $t_\mathrm{ah}$ | $10$ | $-$ | $\mathrm{ns}$ |
Data setup time | $t_\mathrm{dsw}$ | $195$ | $-$ | $\mathrm{ns}$ |
Data hold time | $t_\mathrm{h}$ | $10$ | $-$ | $\mathrm{ns}$ |
Fix
- Manually fix the
LiquidCrystal.h
andLiquidCrystal.cpp
source files. (N/A) - Use an alternative driver library like
lcdfx
or so.
*I'll publish my lcdfx
library later.
The End
Arduino LiquidCrystal Library Bug Report #174181的更多相关文章
- 给MySQL官方提交的bug report备忘
1. Bug #72215 When LOCK_plugin conflicts very much, one uninstall-audit-plugin operation crash htt ...
- 做一名开源社区的扫地僧——从Bug report到Google Summer of Code(GSoC):从200个bug到5000美金
今年的软件自由日(SFD),我在广州Linux用户组的线下活动上做了一个分享,主题叫做<做一名开源社区的扫地僧(上)>.我把演讲的内容重新整理扩充, 写出了文字版, 希望可以跟更多朋友分享 ...
- Arduino PID Library
Arduino PID Library by Brett Beauregard,contact: br3ttb@gmail.com What Is PID? PID是什么 From Wikipe ...
- Approach for Unsupervised Bug Report Summarization 无监督bug报告汇总方法
AUSUM: approach for unsupervised bug report summarization 1. Abstract 解决的bug被归类以便未来参考 缺点是还是需要手动的去细读很 ...
- CVE-2014-0160 Heartbleed Vul Analysis && OpenSSL Cryptographic Software Library Bug
目录 . Heartbleed漏洞简介 . 漏洞造成的风险和影响 . 漏洞的测试.POC . OpenSSL漏洞源代码分析 . 防御.修复方案 . 从漏洞中得到的攻防思考 1. Heartbleed漏 ...
- 使用Arduino Wire Library读取温湿度传感器AM2321
AM2321是采用I2C总线或单总线通讯的国产温湿度传感器.在AM2321手册中,当采用I2C通讯时,手册指定了多处需要主机等待的时间间隔,包括: (1)唤醒传感器时,从机不回复ACK,但主机主要等待 ...
- Arduino LiquidCrystal库函数中文对照
我之所以会试试看LCD+Shield,一是因为我本来就有这块板,但一直不会用,第二个原因则是Arduino+Cookbook这本书.O’Reilly的这本手册对你在Arduino实践中的各种问题(几乎 ...
- 第三周作业3——Bug Report
作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957 要求1: 准备工作:利用老师提供的git 命令,批量pull所有 ...
- bug report
ubuntu 11.10添加eth0:1后重启网卡不显示 eth0:1 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=324306
随机推荐
- error LNK2001: unresolved external symbol __beginthreadex
解决方法: project->settings->C++>category->code generation->Use runtime library选Debug Mul ...
- [LeetCode] Is Subsequence 题解
前言 这道题的实现方法有很多,包括dp,贪心算法,二分搜索,普通实现等等. 题目 Given a string s and a string t, check if s is subsequence ...
- 不需要密码的windows计划任务设置
使用windows计划任务定时做些事情,确实非常方便,但创建任务时老是需要设置密码,否则在执行任务时会报80070005的系统错误导致任务无法执行. 有时windows没设密码或当账户修改密码就必须修 ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- 深入理解 JavaScript 异步系列(5)—— async await
第一部分,ES7 中引入 async-await 原文地址 http://www.cnblogs.com/wangfupeng1988/p/6532734.html 未经作者允许,不得转载~ 前面介绍 ...
- swift -- 类中的方法
一. 引用类型 类 在类中定义方法 class Person { //属性 var name : String = "" //方法 //实例方法 : 在类里面创建一个方法 fun ...
- UI-- Empty Application 新建空工程
1> Empty Application 在Xcode 5 中的文件路径 : Xode 5 路径:Contents Developer Platforms iPhoneOS.platfo ...
- 你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)
这是 OpenStack 实施经验分享系列的第 13 篇. instance snapshot 操作可用于备份或者将 instance 保存为新的 image.如果在生产系统中执行 snapshot ...
- appledoc导出iOS代码文档的使用和问题详解(干货篇)
appledoc导出iOS代码文档的使用和问题详解(干货篇) 1. 简单说一下背景和自己感受 背景: 项目好像突然黄了,公司让详细写项目代码的注释并且导出文档,弄完之后就要封版. 说实话:听到这个消息 ...
- SpringMVC4+MyBatis+SQL Server2014+druid 监控SQL运行情况
前言 在基于SpringMVC+MyBatis的开发过程中,我们希望能看到自己手写SQL的执行情况,在开发阶段我们可以配置log4j在控制台里基于debug模式查看,那么上线后,在生产声我们想查看SQ ...