void loop()
{
char buff = {0};
int val = digitalRead(1);
const char* to_print = val == HIGH ? "HIGH" : "LOW";
sprintf(buff, "%-16s", to_print);
lcd.print(buff);
}
随便写了下,只是编译通过了,没测试,注意别用sprintf格式化浮点,貌似avr-lib不支持。。
好贴,mark一下 我在程序中用过“ ”填充,也用过数据等长。 vp110 发表于 2012-6-25 13:46 static/image/common/back.gif
何必这么纠结呢。
楼主你把HIGH和LOW弄的一样的长度不就解决了(LOW后面加1空格)。哪还用的着多个变量,多 ...
八仙过海各显神通哈 16*2,就是16个字符*2行,那么你16个字符,属于固定显示的有多少,属于动态显示的有多少,自己规划好就行了啊~
例如:
Vol:100 Play 003
这里的100和003是动态的,但整个字串刚好有16个,那么你输出Vol:1的时候,print("1") or print("1")不就行了吗?固定位数,赋值的时候直接把位数全部占满 沧海笑1122 发表于 2012-6-24 00:49 static/image/common/back.gif
我对不同长度的变量,使用1602显示的解决办法是,使用lcd.print(" ")来覆盖那个多余的旧字符。
例:变量dr ...
谢谢分享!
这个清屏非常麻烦,用了很多方法都不理想。试试你这个。 沧海笑1122 发表于 2012-6-24 01:10 static/image/common/back.gif
不客气,也向你学习。
刚刚补充了,从两位数降为单位数时,道理依然。lcd.print(" ")会覆盖那多余出来的 ...
刚试过,很好的方法。
谢谢!
页:
1
[2]