|
樓主 |
發表於 2015-2-15 16:18:30
|
顯示全部樓層
大家好,讓我們繼續加一些 U8glib 的資料吧~
在 U8glib 的使用上,第一步就是需知道硬體信號腳是如何規化與設定的。
底下為 U8glib 所支援的硬體與設定,我們以 TopWay的 LM6063型號為例,此 LCM是使用 st7565控制 IC~
https://code.google.com/p/u8glib/wiki/device
此處的描述,是在說如果我們是用硬體的 SPI 控制器的話,我們在軟體的參數,就只要給定 2-3隻腳信號的腳位 ( cs,a0 [,reset]),[XXX] 在程式說明,代表著可以省略,如果沒有這個功能腳的話。
u8g_dev_st7565_lm6063_sw_spi U8GLIB_LM6063(sck, mosi, cs, a0 [, reset])
u8g_dev_st7565_lm6063_hw_spi U8GLIB_LM6063(cs, a0 [, reset])
由於我在硬體上,目前是使用arduino 上的 13,12,11 SPI controller 的做法,CS 腳跳線至 pin 9, A0 使用 pin 8所以:
U8GLIB_LM6063 u8g(8,9) 與 U8GLIB_LM6063 u8g(13, 11,8,9) 兩種設定都可,但走 hw_spi 會比較好,除非硬體沒有 support ,才需選擇 sw_spi。
sw_spi 的好處是可以移至任一腳使用, hw_spi 需遵照硬體規格。
此處為我目前的設定:
U8glib 目前沒有 LM6060 的,我是利用 LM6063的檔案,改一些設定值而來。
底下我們來看一下在 ST7565 在不同型號的最大差異吧。在 library 裏,有一個資料夾叫 utility,裏面有很多檔案,看就知道那些是跟 LCM 型號有關。
如 u8g_dev_st7565_lm6063.c 此檔就是 LM6063 的硬體設定檔。我是根據此檔產生另一隻叫 u8g_dev_st7565_lm6060.c的。
一般來說,ST7565要調整的有4個值:
1. ADC set to norma(0xa0)l/reverse(0xa1) ,這個影響顯示的左右鏡射~
底下的圖,我是固定把它設定到另一個值。產生了左右鏡射的效果。
2. common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1
第2個值就是 common output mode ,影響顯示的上下鏡射效果。
3. set display start line
此設定值會影響顯示起始的行數,造成不是從第一行開始顯示~
4.set contrast
此值的設定會影響顯示的對比~
底下連結,是描述目前 U8glib 1.17 板裏有 support 的字型與其大小~在 c 裏面,程式的最佳化是由編譯器來做,當你使用某種字型時,它會把用到的相關程式碼(包括字型定義)自動加入。我的 example 目前顯示了 3種字型,其實程式已在爆 code 的邊援,我只是示範它是如果簡單的同時使用不同字型顯示於同一個畫面。
https://code.google.com/p/u8glib/wiki/fontsize
底下為目前 U8glib 的所有功能描述,
https://code.google.com/p/u8glib/wiki/userreference
你們會發現,在設計 UI 時常用的 API 它都提供好了,裏面還有字體的旋轉,畫線、三角形與四方形。還有在彩色 OLED上可畫不同色系,所以我們可以很方便的直接使用,不需考慮底層的各種問題。
可以由你簡單的玩出有自己特色的 UI。
|
評分
-
8
查看全部評分
-
|