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

📄 use_photoelectricity_mouse_driver.h

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

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

/*---------------------------------------------*
*     Photoelectricity_Mouse采样方式配置       *
*---------------------------------------------*/

//TODO:在这里配置Photoelectricity_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

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

/*---------------------------------------------*
*    Photoelectricity_Mouse数据常量宏定义      *
*---------------------------------------------*/
# ifndef PHOTOELECTRICITY_MOUSE_CONST_DATA
    # define PHOTOELECTRICITY_MOUSE_CONST_DATA
    
    # define FRAME_LENGTH_11    11
    # define MOUSE_DATA_SIZE    3
    # define MOUSE_LEFT_KEY     0
    # define MOUSE_RIGHT_KEY    1
    # define MOUSE_MID_KEY  2
    # define MOUSE_X_SIGN   4
    # define MOUSE_Y_SIGN   5
    # define MOUSE_X_OVF    6
    # define MOUSE_Y_OVF    7
    
    # define MOUSE_DATA_MAX 256
    # define ERROR_DATA 10
    
    # define MOUSE_DA0_BIT  1
    # define MOUSE_DA7_BIT  8
    
    # define ODD_PARITY     1
# endif

/*---------------------------------------------*
*       Photoelectricity_Mouse指令宏定义       *
*---------------------------------------------*/
# ifndef PHOTOELECTRICITY_MOUSE_INSTRUCTION
    # define PHOTOELECTRICITY_MOUSE_INSTRUCTION
    
    # define MOUSE_RESET    0XFF
    # define MOUSE_LIVE     0XF4
    # define MOUSE_ACK_BYTE1    0xFA
    # define MOUSE_ACK_BYTE2    0XAA
    # define MOUSE_ACK_BYTE3    0X00
# endif
/********************
*   动 作 宏 定 义  *
********************/

/*---------------------------------------------*
*    MCU与Photoelectricity_Mouse接口宏定义     *
*---------------------------------------------*/
# ifndef MCU_PHOTOELECTRICITY_MOUSE_INTERFACE
    # define MCU_PHOTOELECTRICITY_MOUSE_INTERFACE
    
    //TODO:在这里添加只使用端口配置的接口配置代码
    # ifdef USE_ONLY_PIN_CONFIGURE
    
        # define MOUSE_CLK_HIGH     (PORTB |= BIT(PD1))
        # define MOUSE_CLK_LOW      (PORTB &= ~BIT(PB1))
        # define MOUSE_DATA_HIGH    (PORTB |= BIT(PB0))
        # define MOUSE_DATA_LOW     (PORTB &= ~BIT(PB0))
        
    # endif

    //TODO:在这里添加使用端口和外中断配置的接口配置代码
    # ifdef USE_PIN_AND_EINT_CONFIGURE
    # endif
    
    //TODO:在这里添加只使用外中断和串口配置的接口配置代码
    # ifdef USE_EINT_AND_USART_CONFIGURE
    # endif
# endif

/*---------------------------------------------*
*    MCU与Photoelectricity_Mouse数据流宏定义   *
*---------------------------------------------*/
# ifndef MCU_PHOTOELECTRICITY_MOUSE_DATA_STREAM
    # define MCU_PHOTOELECTRICITY_MOUSE_DATA_STREAM
    
    //TODO:在这里添加只使用端口配置的数据流代码
    # ifdef USE_ONLY_PIN_CONFIGURE
    
        # define DATA_FROM_MOUSE    do\
                                    {\
                                        DDRB &= ~BIT(PB0);\
                                        PORTB |= BIT(PB0);\
                                    }\
                                    while (0);
        # define DATA_FROM_AVR      (DDRB |= BIT(PB0))
        # define CLK_FROM_MOUSE     do\
                                    {\
                                        DDRB &= ~BIT(PB1);\
                                        PORTB |= BIT(PB1);\
                                    }\
                                    while (0);
        # define CLK_FROM_AVR       (DDRB |= BIT(PB1))
        
        # define AVR_READ_MOUSE_CLK     (PINB&BIT(PB1))
        # define AVR_READ_MOUSE_DATA    (PINB&BIT(PB0))
        
    # endif
    
    //TODO:在这里添加使用端口和外中断配置的数据流代码
    # ifdef USE_PIN_AND_EINT_CONFIGURE
    # endif
   
    //TODO:在这里添加只使用外中断和串口配置的数据流代码
    # ifdef USE_EINT_AND_USART_CONFIGURE
    # endif
# endif
/*---------------------------------------------*
*    MCU与Photoelectricity_Mouse操作宏定义     *
*---------------------------------------------*/
# ifndef MCU_PHOTOELECTRICITY_MOUSE_CONTROL_INSTRUCTION
    # define MCU_PHOTOELECTRICITY_MOUSE_CONTROL_INSTRUCTION
    
    # define WAIT_MOUSE_CLK_LOW     do\
                                    {\
                                        while (AVR_READ_MOUSE_CLK);\
                                    }\
                                    while (0);
    # define WAIT_MOUSE_CLK_HIGH    do\
                                    {\
                                        while (!(AVR_READ_MOUSE_CLK));\
                                    }\
                                    while (0);
# endif
                                                   
/********************
*  模块结构体定义区 *
********************/
struct Mouse_Struct
{
    INT16 x;
    INT16 y;
    BOOL b_Left_Key_Down;
    BOOL b_Right_Key_Down;
};
/********************
*   函 数 声 明 区  *
********************/


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

static void MCU_Register_Configure(void);

static void MCU_Port_Configure(void);

static UINT16 Group_Frame(UINT8 chData);

static void Translate_Frame_To_Mouse(UINT8 chData);

static UINT8 Reiceve_Mouse_Frame(void);

void Mouse_Init(void);
/*---------------------------------------------*
*             私 有 函 数 声 明 区             *
*---------------------------------------------*/

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

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

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

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

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

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

# endif

⌨️ 快捷键说明

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