DE2 NIOS ucos2/ucgui (with usb mouse)
usb mouse ref : http://www.myfpga.org/discuz/viewthread.php?tid=34&extra=page%3D1
一、功能說明
主要包函3個task
(1)ccd_snapshot_task (更新影像層圖片)
(2)task_ucgui (osd層執行ucgui的DIALOG_Radio Sample)
(3)usb_mouse_task(處理usb mouse polling之輸入,再由GUI_MOUSE_StoreState函式設定鼠標)
二、編譯說明
(1)設定支持ucos2及mouse
GUIConf.h
#define GUI_OS (1)
#define GUI_SUPPORT_CURSOR (1)
編譯產生libucguios.a
(2)於nios project中加入library及include路徑
三、顯示鼠標
void task_ucgui(void* pdata) { GUI_Init(); GUI_CURSOR_Select(&GUI_CursorArrowS); GUI_CURSOR_SetPosition(160,120); GUI_CURSOR_Show(); WM_SetCallback(WM_HBKWIN, &_cbBkWindow); WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */ while (1) { GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0); GUI_Delay(1000); } }
四、傳送滑鼠座標
while(MOUSE_PollStatus(MsHandle, &X, &Y, &PressedMask)){ //while(MYMOUSE_GetPosition(&X, &Y, &PressedMask)){ if (PressedMask){ printf("[APP]X=%d, Y=%d, PressedMask=%02Xh\r\n", X,Y, PressedMask); }else{ printf("[APP]X=%d, Y=%d\r\n", X,Y); } GUI_PID_STATE State; State.x = X; State.y = Y; State.Pressed = PressedMask; GUI_MOUSE_StoreState(&State); }