DE2 NIOS ucos2/ucgui (with usb mouse)

nios_ucos2_ucgui

 

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路徑

image

 

三、顯示鼠標

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);
                            }

 

程式碼:NIOS-uCOS2-uCGUI.7z

posted @ 2011-08-28 21:13  jnote  阅读(781)  评论(0编辑  收藏  举报