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

📄 use_encode_roll_driver.h

📁 MSP430z_f247.rar
💻 H
字号:
# ifndef _USE_ENCODE_ROLL_DRIVER_H_
    # define _USE_ENCODE_ROLL_DRIVER_H_
/*****************************************************************
*   声明库名称:旋转编码器驱动配置库                             *
*   版本:      v0.01                                            *
*   作者:      I ROBOT                                          *
*   创建日期:  Copyright (C) 2008年10月24日                     *
*----------------------------------------------------------------*
*   [支持库]                                                     *
*   支持库名称:                                                 *
*   支持库版本:                                                 *
*   支持库说明:                                                 *
*----------------------------------------------------------------*
*   [版本更新]                                                   *
*   更新:      I ROBOT                                          *
*   更新日期:                                                    *
*   版本:                                                       *
*----------------------------------------------------------------*
*   [版本历史]                                                   *
*        v0.01  创建版本,配置了编码器与AVR的数据流(外中断)接口  *
*----------------------------------------------------------------*
*   [使用说明]                                                   *
*            1.根据自己的需要和AVR环境配置AVR与编码器的数据流接口*
*****************************************************************/

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

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

/********************
*   动 作 宏 定 义  *
********************/

/*---------------------------------------------*
*    Encode_Roll A 相 边 沿 检 测 宏 定 义     *
*---------------------------------------------*/

//TODO:在这里添加外中断A相边沿检测的代码
# ifndef ENCODE_ROLL_A_EDGE_DETECT
    # define ENCODE_ROLL_A_EDGE_DETECT
    
    # define A_USE_RISING_EDGE_DETECT   do\
                                        {\
                                            MCUCR |= BIT(ISC01)|BIT(ISC00);\
                                        }\
                                        while (0);
    # define A_USE_FALLING_EDGE_DETECT  do\
                                        {\
                                            MCUCR = BIT(ISC01)|\
                                            (MCUCR&(~BIT(ISC00)));\
                                        }\
                                        while (0);
# endif

/*---------------------------------------------*
*    Encode_Roll B 相 边 沿 检 测 宏 定 义     *
*---------------------------------------------*/

//TODO:在这里添加外中断B相边沿检测的代码
# ifndef ENCODE_ROLL_B_EDGE_DETECT
    # define ENCODE_B_ROLL_EDGE_DETECT
    
    # define B_USE_RISING_EDGE_DETECT   do\
                                        {\
                                            MCUCR |= BIT(ISC11)|BIT(ISC10);\
                                        }\
                                        while (0);
    # define B_USE_FALLING_EDGE_DETECT  do\
                                        {\
                                            MCUCR = BIT(ISC11)|\
                                            (MCUCR&(~BIT(ISC10)));\
                                        }\
                                        while (0);
# endif

/*---------------------------------------------*
*              4 倍 频 检 测                   *
*---------------------------------------------*/

//TODO:在这里添加4倍频率边沿配置的代码
# ifndef _4_TIMES_DETECT
    # define _4_TIMES_DETECT
    
    # define A_RISING_AND_B_HIGH    (PIND&BIT(PD3))
    # define A_FALLING_AND_B_HIGH   (PIND&BIT(PD3))
    
    # define B_RISING_AND_A_HIGH    (PIND&BIT(PD2))
    # define B_FALLING_AND_A_HIGH   (PIND&BIT(PD2))
# endif
                                          
/********************
*  模块结构体定义区 *
********************/

/********************
*   函 数 声 明 区  *
********************/
extern void Encode_Roll_Hardware_Configure(void);

static void MCU_Register_Configure(void);

static void MCU_Port_Configure(void);

static void INT0_ISR_PHASE_A(void);

static void INT1_ISR_PHASE_B(void);
/********************
*   模块函数声明区  *
********************/

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

/********************
*   全局变量声明区  *
********************/
extern INT32 g_dwPulse_Counter;

# endif

⌨️ 快捷键说明

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