⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui_mouse_driverps2.c

📁 S3C44B0X在UCOSII的源码
💻 C
字号:
/***********************************************************************************************************                                                uC/GUI*                        Universal graphic software for embedded applications**                       (c) Copyright 2002, Micrium Inc., Weston, FL*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH**              礐/GUI is protected by international copyright laws. Knowledge of the*              source code may not be used to write a similar product. This file may*              only be used in accordance with a license and should not be redistributed*              in any way. We appreciate your understanding and fairness.*----------------------------------------------------------------------File        : GUITOUCH.CPurpose     : Touch screen manager----------------------------------------------------------------------This module handles the touch screen. It is configured in the fileGUITouch.conf.h (Should be located in the Config\ directory).----------------------------------------------------------------------*/#include "LCD_Private.H"      /* private modul definitions & config */#include "GUI_Protected.h"/***********************************************************************                Local Variables & Defines************************************************************************/static int  _ScreenX              = 0;    /* x-pos         */static int  _ScreenY              = 0;    /* y-pos         */static int  _NumBytesInBuffer     = 0;    /* bytes in rx buffer */static U8   _Buttons              = 0;    /* button status */static U8   _abInBuffer[3];               /* mouse rx buffer *//***********************************************************************           _EvaPacket***********************************************************************  Process data packet from mouse:              D7    D6    D5    D4    D3    D2    D1    D0            -----------------------------------------------  1st byte  | --    --    Y-    X-     1    --    LB    RB  2nd byte  | X7    X6    X5    X4    X3    X2    X1    X0  3rd byte  | Y7    Y6    Y5    Y4    Y3    Y2    Y1    Y0  */static void _EvaPacket(void) {  char a;  GUI_HID_STATE State;  _Buttons = _abInBuffer[0] & 0x03;  a = _abInBuffer[1];  // test x move sign.  if(_abInBuffer[0] & 0x10) {    a=-a;    _ScreenX  -= a;  }        /* direction is negative, move left */  else {    _ScreenX  += a;  }  a = _abInBuffer[2];  // test y move sign.  if(_abInBuffer[0] & 0x20) {    a=-a;    _ScreenY  += a;  }  /* direction is negative, move down */ else {    _ScreenY  -= a;  }  /* check min/max positions */      if (_ScreenX < 0) {    _ScreenX = 0;  } else if (_ScreenX > LCD_XSIZE-1) {    _ScreenX = LCD_XSIZE-1;  } if (_ScreenY < 0) {    _ScreenY = 0;  } else if (_ScreenY > LCD_YSIZE-1) {    _ScreenY = LCD_YSIZE-1;  }  /* signal new mouse data */  State.x       = _ScreenX;  State.y       = _ScreenY;  State.Pressed = _Buttons;  GUI_MOUSE_StoreState(&State);}/***********************************************************************       GUI_MOUSE_DRIVER_PS2_OnRx : Mouse receive interrupt handler***********************************************************************  The PS2 mouse interrupt gets in three bytes from the mouse, then wakes  up  the mouse LSR.*/void GUI_MOUSE_DRIVER_PS2_OnRx(unsigned char Data) {  if (!_NumBytesInBuffer) {    /* check for start frame */    if ((Data & 0x0c) == 0x08) {      _abInBuffer[0] = Data;      _NumBytesInBuffer++;    }  } else {    _abInBuffer[_NumBytesInBuffer] = Data;    _NumBytesInBuffer++;    if (_NumBytesInBuffer >= 3) {      _EvaPacket();      _NumBytesInBuffer = 0;    }  }}/***********************************************************************       GUI_MOUSE_DRIVER_PS2_Init************************************************************************/void GUI_MOUSE_DRIVER_PS2_Init(void) {  _NumBytesInBuffer = 0; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -