背景
1:用习惯了51的位bit,像二进制信号量一样只有0和1两种状态,我认为这两种状态还是利用得最为广泛的两种状态,就比如说WIFI的连接状态 -1已经连接 -0 未连接,控制信号开关 0-关闭 1-开启。而我在LCD屏幕刷新时,需要记录变量是否改变再刷新,做判断的时间总比做刷新的时间短的多!甚至这种简单的判断所消耗的时间可以忽略不及。当然对LCD来说,若是追求快速刷新,流畅的玩家完全可以用LCD+DMA的方式做硬件加速。
2:早些接触时就念念不忘51里的bit,接触32因为其资源丰富我也不也怎么管,变量,全局变量使劲造就完事了。32里最小数据类型为8位。
3:为保持勤俭节约的中华民族的美德,于是就有了本篇文章,以此不忘那曾资源紧张的岁月。
原理
原理实际上很简单,用C中位加宏的方式就能实现。
关键代码
//从0开始 0-15位
typedef unsigned short u16;
u16 flag = 0x0000; //造个变量做拆分
#define LCD_SET(X) flag|=1<<X
#define LCD_RESET(X) flag&=~(1<<X)
#define LCD_GetBit(X) (flag

文章介绍了如何在32位系统中使用C语言的位操作宏来模拟51单片机的位标志功能,用于记录LCD屏幕刷新状态和WIFI连接状态。通过位加宏实现变量的设置和清除,达到节省资源的效果。并提供了示例代码展示位操作的使用方法。
最低0.47元/天 解锁文章
4244

被折叠的 条评论
为什么被折叠?



