可在顯示屏上繪出與手寫筆跡基本一致的連續(xù)曲線。下面是繪線示例程序:
//繪線函數(shù),起點(diǎn)坐標(biāo)為(x_start,y_start),終點(diǎn)坐標(biāo)為(x_end,y_end),scnum為顯示緩沖區(qū)號
void lcd_line(unsigned char y_start,unsigned int x_start,unsigned char y_end,unsigned int x_end,unsigned char scnum) {
unsigned int add_x,add_y,dx,dy;
unsigned int l_long;//線段包含的點(diǎn)數(shù)
int sign_x,sign_y;//線段的走向
int x,y;
int nx,ny;
nx=x_start;ny=y_start;
if(x_end>=x_start){ dx=x_end-x_start;sign_x=1;}
else {dx=x_start-x_end;sign_x=-1;}
if(y_end>=y_start) {dy=y_end-y_start;sign_y=1;}
else {dy=y_start-y_end;sign_y=-1;}
l_long=dx+dy;
if(l_long==0) return;
add_x=l_long/2;
add_y=add_x;
while(x !=x_end||y !=y_end) {add_x+=dx;
add_y+=dy;
if(x !=x_end)
x=x_start+(add_x/l_long)*sign_x;
if(y !=y_end)
y=y_start+(add_y/l_long)*sign_y;
if(nx !=x||ny !=y) {
nx=x;ny=y;
lcd_pt(y,x,1,scnum);//在顯示屏上顯示一個點(diǎn)
}
}
}
3.4 字符辨識結(jié)果的處理
在觸摸屏上書寫完一個字符后,ePH1200會將辨識結(jié)果以數(shù)據(jù)包的形式輸出,數(shù)據(jù)包的內(nèi)容為若干個備選字符的Unicode/GB2312編碼。根據(jù)這些編碼,通過索引顯示字模庫,可將各備選字符在顯示屏上依次顯示出來;隨后就可以根據(jù)需要,利用觸摸屏或按鍵選取相應(yīng)的字符。這樣就完成了漢字的手寫輸入。
結(jié)語
漢字的手寫輸入解決方案多種多樣,ePH1200作為一款手寫體的辨識芯片,為小型嵌入式系統(tǒng)應(yīng)用增加手寫漢字輸入功能帶來了方便。本文介紹的只是針對特定微控制器MSP430的一種典型硬件接口和軟件設(shè)計(jì)方法,但由于ePH1200接口簡單,因此采用其他微控制器的應(yīng)用,設(shè)計(jì)方法大同小異。





