做了个用OLED+按钮的计数器,按的快点会丢数据
硬件:Microduino-OLED LEONARDO 按钮当我连续快速按按钮时,OLED上显示的数据会比实际按的次数少很多。是U8glib.h这个库不支持快速刷新吗。
#include "U8glib.h"
long vol;
int val = 0;
int P = 0;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);// definition OLED connection
void draw(long temp) {
u8g.setFont(u8g_font_courB14);//font
u8g.setPrintPos(0, 60);
u8g.print(temp);
}
void setup()
{
pinMode(12, INPUT);
}
void loop()
{
val = digitalRead(12);
if(val == 0 && P == 0)
P = 1;
if(val == 1 && P == 1)
P =2;
if(P == 2){
vol = ++vol;
P = 0;}
u8g.firstPage();
do {
draw(vol);
}
while( u8g.nextPage() );
} 我觉得你应该试试是不能快速刷新还是会丢按键的 zoologist 发表于 2015-11-5 15:23 static/image/common/back.gif
我觉得你应该试试是不能快速刷新还是会丢按键的
刚刚我试了一下不用OLED的代码 直接输出到串口没问题 按键不会丢 U8g的库方便快捷,但里面的运算步骤太多,步骤多就会导致占用资源,导致你按键时,还没处理完,所以应该就导致了丢按键,如果你依然想用U8g的库,建议你将它精简,在保留基本功能情况下,简化其运算
u8g.firstPage();
do {
draw(vol);
}
while( u8g.nextPage() ); 就是这里占用大量资源了
页:
[1]