|
|
发表于 2014-5-2 09:37:46
|
显示全部楼层
朋友, 不是不想幫, 而是要幫也不容易.
你問的是硬件問題, 而且不是普通的硬件. TFT 已不是很多人有, 而 TFT 亦有不同的芯片, 庫也不一樣.
我並沒有TFT, 但曾寫過 OLED 的庫, 或多或少也猜到問題所在, 你可以嘗試自己修改.
首先, 文字一般只用 0 1 的把有色的地方儲存在字庫中, 在顯示時有不同的方式.
以 OLED 為例, 由於每個點只有黑白 (或者是有顯不或沒有顯示) 兩個可能, 要顯示一個 6x8 的字, 就乾脆把 6x8 的地方都用直接填上就可以了 (程式上直接 overwrite). 但如果要保留原有的底圖, 就只可以在該字需要顯示的地方才蓋上 (程式上用 OR 的方式, 但必須先記下之前的資料, 要動用一些記憶體).
而 TFT 跟 OLED 不同, 是多色的, 同一個點不是單單只有兩個選擇. 顯示時就要分開 直接把 6x8 的地方都蓋了 (overwrite), 還是只在有顥的地方才蓋上 (由於 TFT 是單點操控, 不是 OR, 而是把沒顯的地方跳過就可以了). 前者是你想要的, 後者 是你現在碰到的.
要做到前者, 在 TFT 會有一定的問題, 因為不是 0 / 1 的分別, 比如背景可能是一幅多色的圖畫, 直接蓋上就會出現一塊塊的方格. 所以在 TFT 選用後者比較適合, 寫庫的人, 也不知沒顯示的點應該填上什麼, 除非是用家提供.
如果你的庫沒有提供前者的功能, 你也最少有兩個方法:
1) 直接改庫, 在顥示時, 把字庫中沒顯的地方都顯示為黑色 (或其他你喜歡的顏色)
2) 在顯示文字時, 先自行把背景地方填上一個你想要的背景, 相信這個不會太難攪
由於我沒有你的 TFT, 我只可以提供原理, 你嘗試自己做吧. |
|