ycping 发表于 2017-1-16 17:40:44

驱动段式LCD,怎样能减少代码量?

驱动段式LCD,怎样能减少代码量?
就拿常用的HT1621来说吧。

我目前的做法是定义一段内存对应1621里面的内存地址,然后定时刷新1621内存。

需要修改就改动定义的内存就行了。
比如显示一个符号我定义成:B1(X)    do{if(X) SBI(seg1,2);else CBI(seg1,2); }while(0)
要显示就写 B1(1);不显示就写B1(0);
运行是没问题, 也很好控制, 但是带来了很大的代码量。


1. 控制全局变量比局部变量的代码要多。
2.直接修改定义内存数据会少些代码,但是可读性很差。

各位大神有什么大法?

lcofjp 发表于 2017-1-16 21:12:58

为啥用宏定义而不是函数?

sender 发表于 2017-1-16 21:39:10

每个符号单独定义,显示就置1,不显示就清0,根据显示刷新速度,每次刷新全部显存即可,只要很少的代码。

FireHe 发表于 2017-1-16 22:23:48

你这样肯定很大代码量啊。宁愿写一个函数也比这样强。

ccstc 发表于 2017-1-16 22:37:59

楼主理解的是看到的(写的)代码很少,所以生成的代码也很少了

其实,楼主错了,宏定义只是在编译的时候替换了,本身并不会被优化

听楼上的用函数吧

dgdzas 发表于 2017-1-18 14:20:37

用3楼的方法
页: [1]
查看完整版本: 驱动段式LCD,怎样能减少代码量?