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

📄 use_mouse_driver.h

📁 MSP430z_f247.rar
💻 H
字号:
# ifndef _USE_MOUSE_DRIVER_H_
    # define _USE_MOUSE_DRIVER_H_
/*****************************************************************
*   声明库名称:光电鼠标驱动配置库                               *
*   版本:      v0.02                                            *
*   作者:      I ROBOT                                          *
*   创建日期:  Copyright (C) 2008年10月29日                     *
*----------------------------------------------------------------*
*   [支持库]                                                     *
*   支持库名称:                                                 *
*   支持库版本:                                                 *
*   支持库说明:                                                 *
*----------------------------------------------------------------*
*   [版本更新]                                                   *
*   更新:      I ROBOT                                          *
*   更新日期:                                                    *
*   版本:                                                       *
*----------------------------------------------------------------*
*   [版本历史]                                                   *
*        v0.01  创建版本,配置光电鼠标与AVR的接口与采样方式      *
*----------------------------------------------------------------*
*   [使用说明]                                                   *
*            1.配置光电鼠标与MCU的接口与采样方式                 *
*****************************************************************/

/********************
* 头 文 件 配 置 区 *
********************/
# include "AVR_Environment_Configure.h"
/********************
*   系 统 宏 定 义  *
********************/

/*----------------------*
*     代码移植配置区    *
*----------------------*/

//TODO:在这里根据移植的环境配置

/*---------------------------------------------*
*            MCU与Mouse的接口配置              *
*---------------------------------------------*/

//TODO:在这里修改移植配置

/*
# ifndef MCU_MOUSE_INTERFACE_CONFIGURE
    # define MCU_MOUSE_INTERFACE_CONFIGURE
    
    # define DDR_MOUSE_CLK      (DDR_PD2)
    # define DDR_MOUSE_DATA     (DDR_PD0)
    
    # define WRITE_MOUSE_CLK    (WRITE_PD2)
    # define WRITE_MOUSE_DATA   (WRITE_PD0)
    
    # define READ_MOUSE_CLK     (READ_PD2)
    # define READ_MOUSE_DATA    (READ_PD0)
    
# endif
*/
/*---------------------------------------------*
*             Mouse采样方式配置                *
*---------------------------------------------*/

//TODO:在这里配置Mouse的采样方式
# ifndef SAMPLING_METHODS_CONFIGURE 
    
    # define SAMPLING_METHODS_CONFIGURE
    
   // # define USE_ONLY_PIN_CONFIGURE 
    
    # define USE_PIN_AND_EINT_CONFIGURE  
    //# define USE_EINT_AND_USART_CONFIGURE
# endif

/********************
*   常 数 宏 定 义  *
********************/

/*----------------------*
*    代码移植非配置区   *
*----------------------*/

//TODO:通用代码不必修改

/*---------------------------------------------*
*              Mouse数据格式宏定义             *
*---------------------------------------------*/
# ifndef MOUSE_DATA_FORMAT
    # define MOUSE_DATA_FROMAT
    
    # define MOUSE_Y_OVF    7
    # define MOUSE_X_OVF    6
    # define MOUSE_Y_SIGN   5
    # define MOUSE_X_SIGN   4
    # define MOUSE_RESERVE  3
    # define MOUSE_M_BTN_DOWN   2
    # define MOUSE_R_BTN_DOWN   1
    # define MOUSE_L_BTN_DOWN   0  
     
# endif

/*---------------------------------------------*
*           Mouse数据帧格式宏定义              *
*---------------------------------------------*/
# ifndef MOUSE_DATA_FRAME_FORMAT
    # define MOUSE_DATA_FRAME_FORMAT
    
    # define MOUSE_FRAME_SIZE   11
    # define MOUSE_FRAME_NUM    3
    # define FRAME_START_BIT    0
    # define FRAME_DATA0_BIT    1
    # define FRAME_DATA1_BIT    2
    # define FRAME_DATA2_BIT    3
    # define FRAME_DATA3_BIT    4
    # define FRAME_DATA4_BIT    5
    # define FRAME_DATA5_BIT    6
    # define FRAME_DATA6_BIT    7
    # define FRAME_DATA7_BIT    8
    # define FRAME_PARITY_BIT   9
    # define FRAME_STOP_BIT     10
    
    
# endif

/*---------------------------------------------*
*             Mouse指令宏定义                  *
*---------------------------------------------*/
# ifndef MOUSE_INSTRUCTION
    # define MOUSE_INSTRUCTION
    
    # define MOUSE_RESET    0XFF
    # define MOUSE_LIVE     0XF4
    # define MOUSE_ACK_1    0xFA
    # define MOUSE_ACK_2    0XAA
    # define MOUSE_ACK_3    0X00
# endif
/********************
*   动 作 宏 定 义  *
********************/

/*---------------------------------------------*
*            MCU与Mouse数据流操作宏定义        *
*---------------------------------------------*/
# ifndef MCU_MOUSE_DATA_STREAM_CONTROL
    # define MCU_MOUSE_DATA_STREAM_CONTROL
    
    //TODO:在这里添加只使用端口配置的接口配置代码
    # ifdef USE_ONLY_PIN_CONFIGURE
    
       

    # endif

    //TODO:在这里添加使用端口和外中断配置的接口配置代码
    # ifdef USE_PIN_AND_EINT_CONFIGURE
		
		# define WRITE_MOUSE_CLK_HIGH     (P1OUT |= BIT4)
        # define WRITE_MOUSE_CLK_LOW      (P1OUT &= ~BIT4)
  
        # define WRITE_MOUSE_DATA_HIGH    (P4OUT |= BIT7)
        # define WRITE_MOUSE_DATA_LOW     (P4OUT &= ~BIT7)
        
        # define READ_MOUSE_CLK_     (P1IN&BIT4)
        # define READ_MOUSE_DATA_    (P4IN&BIT7)
    # endif
    
    //TODO:在这里添加只使用外中断和串口配置的接口配置代码
    # ifdef USE_EINT_AND_USART_CONFIGURE
    # endif
# endif

/*---------------------------------------------*
*           MCU与Mouse数据流方向宏定义         *
*---------------------------------------------*/
# ifndef MCU_MOUSE_DATA_STREAM_DIRECTION
    # define MCU_MOUSE_DATA_STREAM_DIRECTION
    
    //TODO:在这里添加只使用端口配置的数据流代码
    # ifdef USE_ONLY_PIN_CONFIGURE


    # endif
    
    //TODO:在这里添加使用端口和外中断配置的数据流代码
    # ifdef USE_PIN_AND_EINT_CONFIGURE


		# define DATA_FROM_MOUSE    do\
                                    {\
                                        P4DIR &= ~BIT7;\
                                        P4OUT |= BIT7;\
                                    }\
                                    while (0);
        # define MOUSE_DATA_FROM_MCU    do\
                                        {\
                                            P4DIR |= BIT7;\
                                        }\
                                    while (0);

        # define CLK_FROM_MOUSE     do\
                                    {\
                                        P1DIR &= ~BIT4;\
                                        P1OUT |= BIT4;\
                                    }\
                                    while (0);
        # define MOUSE_CLK_FROM_MCU do\
                                    {\
                                        P1DIR |= BIT4;\
                                    }\
                                    while (0);

    # endif
   
    //TODO:在这里添加只使用外中断和串口配置的数据流代码
    # ifdef USE_EINT_AND_USART_CONFIGURE
    # endif
# endif
/*---------------------------------------------*
*           MCU与Mouse控制指令宏定义           *
*---------------------------------------------*/
# ifndef MCU_MOUSE_CONTROL_INSTRUCTION
    # define MCU_MOUSE_CONTROL_INSTRUCTION
    
    # define WAIT_MOUSE_CLK_LOW     do\
                                    {\
                                        while (READ_MOUSE_CLK_);\
                                    }\
                                    while (0);
    # define WAIT_MOUSE_CLK_HIGH    do\
                                    {\
                                        while (!(READ_MOUSE_CLK_));\
                                    }\
                                    while (0);
# endif

/*---------------------------------------------*
*           Mouse中断资源插入函数配置          *
*---------------------------------------------*/
# ifndef MOUSE_ISR_INSERT_CODE
    # define MOUSE_ISR_INSERT_CODE
    
    # ifdef USE_ONLY_PIN_CONFIGURE
    # endif
    
    # ifdef USE_PIN_AND_EINT_CONFIGURE
    
        # define INSERT_MOUSE_EINT_ISR_CODE     (Insert_Mouse_EINT_ISR_Code())
    # endif
    
    # ifdef USE_EINT_AND_USART_CONFIGURE
    # endif
# endif
                                                   
/********************
*  模块结构体定义区 *
********************/
typedef struct Mouse_Struct
{
    INT16 x;
    INT16 y;
    BOOL b_Left_Btn_Down;
    BOOL b_Right_Btn_Down;
}Mouse;
/********************
*   函 数 声 明 区  *
********************/


/*---------------------------------------------*
*             公 有 函 数 声 明 区             *
*---------------------------------------------*/
extern void Mouse_Hardware_Configure(void);

extern void Mouse_Init(void);

/*---------------------------------------------*
*             私 有 函 数 声 明 区             *
*---------------------------------------------*/

//TODO:在这里添加只使用端口配置的函数声明
# ifdef USE_ONLY_PIN_CONFIGURE
    extern Mouse *Mouse_Data_Process(void);
# endif

//TODO:在这里添加使用端口和外中断配置的函数声明
# ifdef USE_PIN_AND_EINT_CONFIGURE
    extern void Insert_Mouse_EINT_ISR_Code(void);
# endif

//TODO:在这里添加使用外中断和串口配置的函数声明
# ifdef USE_EINT_AND_USART_CONFIGURE
# endif

/********************
*   模块函数声明区  *
********************/

/********************
*   模块变量声明区  *
********************/

/********************
*   全局变量声明区  *
********************/

# endif

⌨️ 快捷键说明

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