ATOM一開始就被我發現LCD顯示有點問題, 當座標值是負數時顯示結果是錯的。
例如, X = -4會顯示是這樣:
雖然不影響功能, 但龜毛如我, 這種事是很難令人忍受的。
忍不住動手改了一下firmware, 找了一下在 ultralcd.cpp 裡, 將 itostr3 這個函數改成這樣:
char *itostr3(const int &xx)
{
int xx1 = abs(xx);
if (xx1 >= 100)
conv[0]=(xx1/100)%10+'0';
else
conv[0]=' ';
if (xx1 >= 10)
conv[1]=(xx1/10)%10+'0';
else
conv[1]=' ';
conv[2]=(xx1)%10+'0';
conv[3]=0;
if (xx < 0) conv[0] = '-';
return conv;
}
如此一來, 就可以正確顯示負座標了。
============================================================
4/1補充(不是愚人節把戲, 請放心!)
空白的地方改'0', 填滿3位數比較好看. 請自行選擇喜歡的顯示方式服用:
char *itostr3(const int &xx)
{
int xx1 = abs(xx);
if (xx1 >= 100)
conv[0]=(xx1/100)%10+'0';
else
conv[0]='0';
if (xx1 >= 10)
conv[1]=(xx1/10)%10+'0';
else
conv[1]='0';
conv[2]=(xx1)%10+'0';
conv[3]=0;
if (xx < 0) conv[0] = '-';
return conv;
}
沒有留言:
張貼留言