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

📄 movement_control.h.bak

📁 UCOSii for c8051f020
💻 BAK
📖 第 1 页 / 共 2 页
字号:
//***************************************************************************************************************
// FILE NAME         : MovementControl.h
// FILE DESCRIPTION  :
// TARGET DEVICE     : C8051F021
// CREATED ON        : 2007.12.29
// CREATED BY        : yuanwq
// VERSION           :
// MODIFY  RECORD    :
//****************************************************************************************************************

#define Q0_Address 0x9100

//****************************************************************************************************************
//SMBus
#define WRITE          0x00      //----------------------------------------------------------- SMBus WRITE command
#define READ           0x01      //------------------------------------------------------------ SMBus READ command

#define MovementRUN    1
#define MovementSTOP   2

#define MovementPOS    3
#define MovementNEG    4

#define MovementUP     5
#define MovementDOWN   6

#define MovementHEAD   7
#define MovementFOOT   8

#define MovementINSIDE   9
#define MovementOUTSIDE  10
// Macro Define
//****************************************************************************************************************
             
#define _Nop()               _nop_()        //----------------------------------------------------------定义空指令 

#define SET_BIT(v,n)        (v|=(0x01<<n))          //------------------------------------------- 置位变量v的第n位  
#define CLR_BIT(v,n)        (v&=(~(0x01<<n)))       //------------------------------------------- 清位变量v的第n位  
#define CHECK_BIT(v,n)      (v&(0x01<<n))           //----------------------------------- 检测变量v的第n位为0还是1

#define SET_STATUS(v,n)     ((v.Now_Flag)|=(0x01<<n))          //----------------------------- 置位STATUS v的第n位  
#define CLR_STATUS(v,n)     ((v.Now_Flag)&=(~(0x01<<n)))       //----------------------------- 清位STATUS v的第n位  
#define CHECK_STATUS(v,n)   ((v.Now_Flag)&(0x01<<n))           //--------------------- 检测STATUS v的第n位为0还是1


#define UPDATE_EDGE(v,n) (v.Last_Flag = (v.Now_Flag &(0x01<<n)) | (v.Last_Flag&(~(0x01<<n))))
#define IS_POS_EDGE(v,n) ( (v.Now_Flag&(0x01<<n))&&(!(v.Last_Flag&(0x01<<n))) ?(UPDATE_EDGE(v,n),1):0)    
#define IS_NEG_EDGE(v,n) ( !(v.Now_Flag&(0x01<<n))&&((v.Last_Flag&(0x01<<n))) ?(UPDATE_EDGE(v,n),1):0)
 
//I - 定时器ID  S - 方式(TON,TOF) D - 延时时间 
#define SOFT_TIMER_RUN(I,S,D) (SET_STATUS(Soft_Timer[I],Timer_RunOrStop),SET_STATUS(Soft_Timer[I],S),Soft_Timer[I].DelayTime=D)
#define SOFT_TIMER_STOP(I) (CLR_STATUS(Soft_Timer[I],Timer_RunOrStop))

#define TO_ASCII(h) ((h < 0x0A)?(h + 0x30):(h + 0x37)) 
#define TO_INT(h) ((h) = (h)-0x30)

#define START_TXtoPC() (SBUF0 = 0x01)
//Constant Define
//****************************************************************************************************************

#define BAUDRATE               19200           //---------------------------------------- Baud rate of UART in bps
#define SYSCLK                 20000000        //------------------------------------------ SYSCLK frequency in Hz

#define SoftVerNumMaj            1             //------------------------------------------------- MCU软件主版本号
#define SoftVerNumMin            0             //------------------------------------------------- MCU软件副版本号
#define SoftVerNumRel            0             //--------------------------------------------------- MCU软件发行号 

//定义软定时器使用的数目
#define MAX_SOFT_TIMER           4 

//定义SMBus相关常量
// SMBus states:
// MT = Master Transmitter
// MR = Master Receiver
#define  SMB_BUS_ERROR  0x00        //------------------------------------------------------ (all modes) BUS ERROR
#define  SMB_START      0x08        //------------------------------------------------ (MT & MR) START transmitted
#define  SMB_RP_START   0x10        //--------------------------------------------------- (MT & MR) repeated START
#define  SMB_MTADDACK   0x18        //----------------------------------------- (MT) Slave address + W transmitted
                                    //--------------------------------------------------------------- ACK received
#define  SMB_MTADDNACK  0x20        //----------------------------------------- (MT) Slave address + W transmitted
                                    //-------------------------------------------------------------- NACK received
#define  SMB_MTDBACK    0x28        //------------------------------------- (MT) data byte transmitted; ACK rec'vd
#define  SMB_MTDBNACK   0x30        //------------------------------------ (MT) data byte transmitted; NACK rec'vd
#define  SMB_MTARBLOST  0x38        //------------------------------------------------------ (MT) arbitration lost
#define  SMB_MRADDACK   0x40        //----------------------------------------- (MR) Slave address + R transmitted
                                    //--------------------------------------------------------------- ACK received
#define  SMB_MRADDNACK  0x48        //----------------------------------------- (MR) Slave address + R transmitted
                                    //-------------------------------------------------------------- NACK received
#define  SMB_MRDBACK    0x50        //------------------------------------- (MR) data byte rec'vd; ACK transmitted
#define  SMB_MRDBNACK   0x58        //------------------------------------ (MR) data byte rec'vd; NACK transmitted

//定义运动控制协议相关常量
//帧格式定义
#define SOH 		0x01
#define ENQ 		0x05
#define SPC 		0x20
#define ETX 		0x03
#define ACK		  0x06
#define NCK		  0x15
#define NAK		  0x15
//电机转速-频率常量
#define T_FRE_STEP02   2           //------------------------------------------------------------- 5.5度/秒 -- 50HZ
#define T_FRE_STEP10   9

#define L_FRE_STEP02    1          //------------------------------------------------------------ 100mm/s -- 33.7HZ
#define L_FRE_STEP10    3  
#define L_FRE_STEP50    17

#define A_FRE_STEP02    1          //------------------------------------------------------------ 100mm/s -- 33.7HZ
#define A_FRE_STEP10    3  
#define A_FRE_STEP50    17


#define T_SPEED_STEP02   2         //------------------------------------------------------------- 5.5度/秒 -- 50HZ
#define T_SPEED_STEP10   10

#define L_SPEED_STEP02    2        //------------------------------------------------------------ 100mm/s -- 33.7HZ
#define L_SPEED_STEP10    10  
#define L_SPEED_STEP50    50

#define A_SPEED_STEP02    2        //------------------------------------------------------------ 100mm/s -- 33.7HZ
#define A_SPEED_STEP10    10  
#define A_SPEED_STEP50    50


//定义通讯相关常值
//*****************************************************************************************************************
#define COM_BLOCK_NUM     15
#define COM_BLOCK_SIZE    12

//定义各限位、极保信号常值
//*****************************************************************************************************************

//P 代表极保开关,I 代表限位输入开关 ,A 代表对象区域标志 ,C 代表控制信号
//T - 床体 , L - 床纵 , La - 床横 , TL - 立柱 ,SC - 滑架 , SID - SID , CP - 压迫器  
//Level - 水平 , NLevel - 非水平 ,Head - 头端 , Foot - 足端
//Up - 往上,Down - 往下
//Low - 高速,High - 低速,Stop - 停止
//-----------------------------床体运动状态标志------------------------------//
enum Table_Movement_SY{TT_P_L , TT_P_H , TT_N_L ,TT_N_H ,TT_Stop};
enum TL_Movement_SY{TL_Head_L , TL_Head_H , TL_Foot_L ,TL_Foot_H ,TL_Stop};
enum SC_Movement_SY{SC_Head_L , SC_Head_H , SC_Foot_L ,SC_Foot_H ,SC_Stop};
enum SID_Movement_SY{SID_Up , SID_Down , SID_Stop};
//-----------------------------床体运动状态标志------------------------------//                            
enum Table_Tiliting_Signal{ P_T_N90 , I_T_N90 , A_Table_NEG , I_T_0 ,
                            A_Table_ZERO , A_Table_POS , I_T_P90 , P_T_P90 };

enum TableTop_Lognitudinal_Signal{P_L_Head , I_L_LevelHead , V_L_Head , A_L_NLevelHead , 
                                  P_L_NLevelHead , I_L_NLevelHead , A_L_LevelHead , I_L_Middle , 
                                  A_L_Middle , A_L_LevelFoot , I_L_NLevelFoot , P_L_NLevelFoot ,
                                  A_L_NLevelFoot , V_L_Foot , I_L_LevelFoot , P_L_Foot}; 

enum TableTop_Lateral_Signal{P_La_Outside , I_La_Outside , A_La_Outside , I_La_Middle , 
                             A_La_Middle , A_La_Inside , I_La_Inside , P_La_Inside};

enum Tube_Longitudinal_Signal{P_TL_Head , I_TL_Head , A_TL_Head , I_TL_Confirm ,
                              A_TL_Confirm , A_TL_Foot , I_TL_Foot , P_TL_Foot ,
                              V_TL_P40 , V_TL_N40 ,V_TL_ZERO ,V_TL_SC_LessThan6};

enum Scanning_Signal{P_SC_Head , I_SC_LevelHead , A_SC_NLevelHead , I_SC_NLevelHead , 
                     A_SC_LevelHead , I_SC_Confirm , A_SC_Confirm , A_SC_LevelFoot  ,
                     I_SC_NLevelFoot , A_SC_NLevelFoot , I_SC_LevelFoot , P_SC_Foot};

enum SID_Signal{P_SID_Down , I_SID_1 , I_SID_2 , I_SID_3 , 
                I_SID_4 , I_SID_5 , P_SID_Up};

enum Compressor_Signal{I_CP_Down , I_CP_PressLimit , I_CP_PressLarge , I_CP_PressMiddle , 
                       I_CP_PressSmall , I_CP_Orignal};

enum Other_Signal{I_EnMove ,I_EmergenceStop};

//定义控制信号
//RF - 旋转脚踏板  IL - 影像联动(ImageLinkage)
enum Control_Signal_1{C_T_TilitPOS , C_T_TilitNEG ,  C_TL_AngulationHead , C_TL_AngulationFoot , 
                      C_La_MoveOutside ,C_La_MoveInside , C_L_MoveHead , C_L_MoveFoot , 
                      C_SID_MoveUp , C_SID_MoveDown , C_CP_MoveUp ,C_CP_MoveDown , 
                      C_IL_MoveHead , C_IL_MoveFoot , C_RF_RoteClock , C_RF_RoteAngiClock};

⌨️ 快捷键说明

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