4/18/2009

Atmega16 Tetris

利用空閒時間
把一些mini game移植到 ATMEGA16
原本是想一次寫二個GAME上去
沒想到 16K的FLASH........

放些圖檔上去就不夠用了
所以最後拿掉選單和字型
直接寫GAME

看來還是要用ATMEGA128
才能把7個GAME都放進去了



MCU:ATMEGA16
CSTN:128*128 drive:ST7637
KEY:I/O KEY

Total flash:97%

回頭在檢視程式
發現還有能改進的地方

目前 Total flash:78.5%
多了20% :p

4/16/2009

UCOSII

這次的新玩具是 arm7tdmi核心的mcu
試了三天
終於將 UCOSII-2.86 porting 到 arm7
對於ucosii也終於有了理解和認識

也對arm7 的組語有了些基礎
因為時間的關係
還沒深入去看ucosii整個程式
但對於應用上還算ok

過些時間會把ucosii porting 到avr atmega 系列

UCOSII最新源碼可自官網DOWNLOAD

UCOS-II 中斷理解

這次的工作是將UCOSII PORTING 至 ARM7TDMI核心的MCU
使用哪家的MCU也就不方便說明
不過大致上都相同
網路上也能找到很多 ARM7TDMI的資料

每個MCU的中斷都不相同
所以用法也不同
以下是自已對於UCOS-II的中斷使用理解

ARM7 中斷向量只有一個
但架在ARM7的中斷卻有好幾個
當中斷一產生後跳至 Ostickisr
全部只用同一個 ostickisr

ostickisr:
.........
bl osintenter
bl 判斷中斷來源
bl osintexit
.........

使用在8051 or 多個中斷向量的mcu

cseg at 0023h (某個中斷向量
ljmp commisr (跳至程式
...............

commisr:
..........
lcall osintenter
lcall 中斷要執行的程式
lcall osintexit
..........

每個中斷都有自已的進入點
而osintenter會將 OSIntNesting+1
來記錄第幾層中斷
osintexit 將OSIntNesting-1

4/15/2009

BMP TO Hex

這次想用avr移植之前寫的mini game
為了將圖檔格式轉換在轉c的陣列
一直在網路上找bmp to hex工具
卻一直找不到

最後決定自已寫一個
以後想改或想加功能
也比較方便

目前少16色的格式和單色的格式
有人知道轉換公式的話
請告知 謝謝

Release note

v1.5
1.增加 YUV(422)
2.增加 pixel bit

v1.4
1.增加排版
2.修改 332 mode,顯示8bit時,不在顯示0x00

v1.3
1.增加 888 (24bit) and 666 (24bit)

v1.2
1.增加 show plant選項 (較無意義,做好玩的 :p
2.增加 include w/h,output時多輸出圖檔的w/h

v1.1
1.搞錯bmp的格式,結果轉出來的圖是顛倒
2.增加plant比對後在轉為 565,555,444,332
圖檔不在限定為24bit,其他格式帶plant的圖
會對照plant後的色彩在轉為選取的格式

v1.0
1.first verison
2.only convert 24bit BMP to 565,555,444,332

BMP2C.ZIP