- 目錄第六講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示文字:Part2.外接字庫
第七講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示文字:Part3.自建字庫
第八講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示圖片
第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:認(rèn)識(shí)顯存并進(jìn)行讀、寫、復(fù)制
第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算
第十一講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:播放avi視頻
第十二講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 如何打包bin檔
第十三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 bin檔的燒錄方法
常用的圖像運(yùn)算主要包括:復(fù)制、去底色、單色位圖延展上色、淡入淡出這些功能,下面逐一進(jìn)行介紹如何使用:一、圖像復(fù)制
API函數(shù)如下,_Chroma表示透明色剔除功能:void BTE_Memory_Copy(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long S1_Addr,unsigned short S1_W,unsigned short XS1,unsigned short YS1,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned int ROP_Code,unsigned short X_W,unsigned short Y_H);
void BTE_Memory_Copy_Chroma_key(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned long Background_color,unsigned short X_W,unsigned short Y_H);
RA8889的代碼是透明開放的,我們可以逐層進(jìn)去看實(shí)際算法,也可以查看具體的寄存器操作,初步接觸瑞佑的芯片可以先用用API即可,有興趣的話可以進(jìn)入底層查看代碼,相當(dāng)靈活。我們進(jìn)入一個(gè)API函數(shù)代碼看看:
void BTE_Memory_Copy(
unsigned long S0_Addr // Start address of Source 0
,
unsigned short S0_W // image width of Source 0 (recommend = canvas image width)
,
unsigned short XS0 // coordinate X of Source 0
,
unsigned short YS0 // coordinate Y of Source 0
,
unsigned long S1_Addr // Start address of Source 1
,
unsigned short S1_W // image width of Source 1 (recommend = canvas image width)
,
unsigned short XS1 // coordinate X of Source 1
,
unsigned short YS1 // coordinate Y of Source 1
,
unsigned long Des_Addr // start address of Destination
,
unsigned short Des_W // image width of Destination (recommend = canvas image width)
,
unsigned short XDes // coordinate X of Destination
,
unsigned short YDes // coordinate Y of Destination
,
unsigned int ROP_Code
/*ROP_Code :
0000b 0(Blackness)
0001b ~S0!E~S1 or ~(S0+S1)
0010b ~S0!ES1
0011b ~S0
0100b S0!E~S1
0101b ~S1
0110b S0^S1
0111b ~S0 + ~S1 or ~(S0 + S1)
1000b S0!ES1
1001b ~(S0^S1)
1010b S1
1011b ~S0+S1
1100b S0
1101b S0+~S1
1110b S0+S1
1111b 1(whiteness)*/
,
unsigned short X_W // X_W : Width of BTE Window
,
unsigned short Y_H // Y_H : Length of BTE Window
)
{
BTE_S0_Memory_Start_Address(S0_Addr);
BTE_S0_Image_Width(S0_W);
BTE_S0_Window_Start_XY(XS0, YS0);BTE_S1_Memory_Start_Address(S1_Addr);
BTE_S1_Image_Width(S1_W);
BTE_S1_Window_Start_XY(XS1, YS1);BTE_Destination_Memory_Start_Address(Des_Addr);
BTE_Destination_Image_Width(Des_W);
BTE_Destination_Window_Start_XY(XDes, YDes);BTE_ROP_Code(ROP_Code);
BTE_Operation_Code(0x02); // BTE Operation: Memory copy (move) with ROP.
BTE_Window_Size(X_W, Y_H);
BTE_Enable();
Check_BTE_Busy();
}瑞佑的API是可以從函數(shù)名推測(cè)其功能的,有些函數(shù)名稱包含了參數(shù)信息,跟據(jù)參數(shù)名稱就可判斷參數(shù)功能,具體的參數(shù)在API函數(shù)都有作了詳細(xì)說明,實(shí)際寫代碼時(shí)可以再進(jìn)入函數(shù)查詢。
針對(duì)BTE_Memory_Copy這個(gè)函數(shù),參數(shù)可分為五個(gè)部分,參考下方圖解說明:
所有圖像操作API函數(shù)都包括S0、S1和Des三部份。比如BTE_Memory_Copy_Chroma_key相比BTE_Memory_Copy只是換了一個(gè)參數(shù)Background_color,這個(gè)參數(shù)作用是復(fù)制時(shí)同時(shí)剔除這個(gè)背景顏色,其它功能都相近了。
二、圖像延展
圖像延展指的是把1bpp圖像延展為16bpp圖像。1bpp圖片高度不限,寬度須為8的倍數(shù)。當(dāng)我們將1bpp寫入顯存時(shí),實(shí)際顯示出來圖像看起來水平方向壓扁了一樣。通過BTE_Memory_Copy_ColorExpansion這個(gè)函數(shù)轉(zhuǎn)換,數(shù)據(jù)為1轉(zhuǎn)為前景色,數(shù)據(jù)為0會(huì)轉(zhuǎn)為背景色,如果換作BTE_Memory_Copy_ColorExpansion_Chroma_key函數(shù),則只將數(shù)據(jù)1轉(zhuǎn)換為前景色,數(shù)據(jù)0不處理,即為透明色。這個(gè)功能在我們做圖標(biāo)、數(shù)字表盤是相當(dāng)有用的功能!
圖形延展API函數(shù):
void BTE_Memory_Copy_ColorExpansion(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned short X_W,unsigned short Y_H,unsigned long Foreground_color,unsigned long Background_color);
void BTE_Memory_Copy_ColorExpansion_Chroma_key(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned short X_W,unsigned short Y_H,unsigned long Foreground_color);
圖形延展實(shí)際效果:
三、淡入淡出
淡入淡出是通過RA8889的硬件加速功能實(shí)現(xiàn)的,通過控制 alpha 值即可控制兩張圖片的明淡效果,這種功能如果采用單片機(jī)進(jìn)行軟件處理,那會(huì)占用相當(dāng)大的資源,很難實(shí)用,而通過RA8889/RA8876可輕松實(shí)現(xiàn)該功能。淡入淡出API函數(shù):
void BTE_Alpha_Blending_Picture_Mode(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long S1_Addr,unsigned short S1_W,unsigned short XS1,unsigned short YS1,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned short X_W,unsigned short Y_H,unsigned char alpha);
淡入淡出實(shí)例演示:
https://live.csdn.net/v/359248
第十講 THE END
分享到:
相關(guān)熱詞搜索:RA8889 RA8876 單片機(jī) 驅(qū)動(dòng) 彩屏
上一篇:第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:認(rèn)識(shí)顯存
下一篇:第十一講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:播放avi視頻
>>延伸閱讀:0