Friday, February 24, 2012

16205


幾年前在使用Microchip的時候,曾經寫過16205(HD44780)的Driver,當初在處理字串的時候是用sprintf,也許是因為當時我使用的處理器的記憶體空間都比較大,所以沒有什麼特別的感覺。(還是HIGH TECH C編譯完都很小,現在無從考察)
最近重新將16205的Driver轉Porting到SONiX的MCU上就發現,光include stdio.h然後使用sprintf的時候,就占了快1.5K的記憶體。好用是好用,但是如果我使用SN8F27E61的時候,大概就只能有顯示功能,其他功能大概都寫不進去了。
原本設計TTY的時候也是因為可以重新定義putchar而使用printf直接UART輸出,然後直接套用先前寫的VT100頭檔,簡直就是完美無暇,美中不足的就是吃掉我太多記憶體空間。所以這次原本想直接使用指標來處理字串,結果這種Althernative C Compiler給的錯誤訊息真的是無從下手。
最後姑且就使用string.h看看,結果效果非常的好,只有吃100bytes左右,實在是可喜可賀。
雖然我不太愛用這種LCD MODULE,主要是太貴了,不過有時候還真的很方便。

可能的崩潰

記得高中的時候,老師在交『路邊攤』定理,也就是L'Hospital Rule,可能也因為高中數學也相對簡單,而且當初的數學概念並沒有這麼強,所以算是還蠻公式化的計算,上了大學,『路邊攤』相對起來算是小兒科,偶而沿用高中的思維,或是用代數解,大多都算是解的出來。在加上現在的電腦軟體這麼強,建表都可以看出其趨勢。漸漸的連最簡單的『路邊攤』的精神都慢慢忘記。
剛剛在做設計的時候,依然使用Freemet在幫我解決數學問題,其實只是幾個CPU Timer的時序問題。但是腦子裡閃過的卻是一些簡單的極限問題,順手在紙上寫下幾個極限0/0或是inf/inf的問題,溫故就如同知新呀。
但是這東西影響甚鉅呀。