|
发表于 2014-5-20 15:58:02
|
显示全部楼层
段式液晶有个令人讨厌的地方,ABCDEFGH不是顺序排列的
比如FRDM_KL46的就是DEGF~*CBA,我那次(第一次)搞的液晶是有DEFA~*CGB和AFED~BGC*两种。
连接MCU的时候又是可以随便连MCU的液晶管脚。。。
我觉得这里有个代码复用的问题,如果换了块液晶,或者改了液晶的连线,那怎样减少代码改动量。
我头一次接触段式液晶的时候同事给了个KL36的代码,
里面写的代码都把管脚写死了,还到处switch嵌套,一个显示数字的函数就超超超长。
我搞的时候顺手弄了个3维数组、几个枚举和几个宏,像下面这样的。
貌似FRDM_KL46的例程也专门考虑了代码复用的问题,里面也是有类似处理。不过那时刚搞定这个有忙别的去了,没仔细研究那里面的思想
- /*********************************************************************************************************
- rearrange segment code
- case1 :
- defa,*cgb : for nixie tube 1~4
- case2 :
- bgc*,afed : for nixie tube 5~10
- *********************************************************************************************************/
- #define LCD_DGT_SEG_EQL_CASE1(D) BIN_2_CHAR(CH_D(D), CH_E(D), CH_F(D), CH_A(D))
- #define LCD_DGT_SEG_AND_CASE1(D) BIN_2_CHAR(0, CH_C(D), CH_G(D), CH_B(D))
- #define LCD_DGT_SEG_EQL_CASE2(D) BIN_2_CHAR(CH_A(D), CH_F(D), CH_E(D), CH_D(D))
- #define LCD_DGT_SEG_AND_CASE2(D) BIN_2_CHAR(CH_B(D), CH_G(D), CH_C(D), 0 )
复制代码
----------
上图:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|