📄 movement_control.h.bak
字号:
enum Control_Signal_2{C_T_TilitNEG_EN , C_MoveAllToZero , C_CP_ChooseLarge , C_CP_ChooseMiddle ,
C_CP_ChooseSmall};
//定义输出信号
//Q 代表输出
enum Output_Signal_1{Q_T_TilitPOS , Q_T_TilitNEG , Q_TL_AngulationHead , Q_TL_AngulationFoot ,
Q_La_MoveOutside ,Q_La_MoveInside , Q_L_MoveHead , Q_L_MoveFoot ,
Q_SID_MoveUp , Q_SID_MoveDown ,
Q_SC_MoveHead , Q_SC_MoveFoot , Q_RF_RoteClock , Q_RF_RoteAngiClock};
enum Output_Signal_2{Q_Angulation_5 , Q_Angulation_4 , Q_Angulation_3 , Q_Angulation_2 ,
Q_Angulation_1 , Q_SID_3 , Q_SID_2 , Q_SID_1
};
//定义输出信号
//Q 代表输出
enum Output_Q0{Q_CP_SmallLED , Q_CP_MiddleLED , Q_CP_LargeLED , Q_PositionLED ,
Q_Motor_Alarm , Q_En_Move , Q_CP_Direction , Q_CP_Power};
//定义软定时器
enum Soft_Timer_Dispatch{Tilit_Timer,Lateral_Timer,BX_Timer};
enum Soft_Timer_Signal{Timer_RunOrStop,Timer_Flag, TON, TOF,StartToCount};
//定义本地标志
enum Local_Signal_1{V_Tilit_EnTilit,V_Tilit_EnStopZero,V_CompressorForce_Limit,V_SID_POSEDGE,
V_Lateral_MoveDirection};
enum Local_Signal_2{V_GIM_NMS,V_GIM_PMS};
//定义保护标志
enum Protect_Signal_1{V_T_ProtectTL,V_T_ProtectL};
// Structure Define
//*****************************************************************************************************************
struct Switch_Data
{
INT16U Last_Flag;
INT16U Now_Flag;
};
struct Control_Data
{
INT16U Last_Flag;
INT16U Now_Flag;
};
struct Output_Data
{
INT16U Last_Flag;
INT16U Now_Flag;
};
struct Protect_Data
{
INT16U Last_Flag;
INT16U Now_Flag;
};
struct Soft_Timer
{
INT16U Last_Flag;
INT16U Now_Flag;
INT16U DelayTime;
};
//-----------------------------------------------------------------------------------------------------------------
//TL16C554相关控制开始
//-----------------------------------------------------------------------------------------------------------------
#define URT_CLK 11059200 // 串口晶振波特率SYSCLK frequency in Hz
//波特率定义
#define UART_A_Baud 9600
#define UART_B_Baud 9600
#define UART_C_Baud 19200
#define UART_D_Baud 19200
#define Read_TL16C554_INIT() (TL_16C554_INIT_SY = TL16C554_INIT,TL_16C554_INIT_SY)
//串口芯片控制端口定义
/****************TL16C554 A口接口定义*********************/
//TL16C554与CPLD相关中断向量
#define TL16C554_INIT XBYTE[0x8000]
//TL16C554寄存器地址
#define TL16C554_A_LCR XBYTE[0x8103]
#define TL16C554_A_FCR XBYTE[0x8102]
#define TL16C554_A_MCR XBYTE[0x8104]
#define TL16C554_A_DLL XBYTE[0x8100]
#define TL16C554_A_DLM XBYTE[0x8101]
#define TL16C554_A_IER XBYTE[0x8101]
#define TL16C554_A_LSR XBYTE[0x8105]
#define TL16C554_A_MSR XBYTE[0x8106]
#define TL16C554_A_RBR XBYTE[0x8100]
#define TL16C554_A_THR XBYTE[0x8100]
#define TL16C554_B_LCR XBYTE[0x8203]
#define TL16C554_B_FCR XBYTE[0x8202]
#define TL16C554_B_MCR XBYTE[0x8204]
#define TL16C554_B_DLL XBYTE[0x8200]
#define TL16C554_B_DLM XBYTE[0x8201]
#define TL16C554_B_IER XBYTE[0x8201]
#define TL16C554_B_LSR XBYTE[0x8205]
#define TL16C554_B_MSR XBYTE[0x8206]
#define TL16C554_B_RBR XBYTE[0x8200]
#define TL16C554_B_THR XBYTE[0x8200]
#define TL16C554_C_LCR XBYTE[0x8303]
#define TL16C554_C_FCR XBYTE[0x8302]
#define TL16C554_C_MCR XBYTE[0x8304]
#define TL16C554_C_DLL XBYTE[0x8300]
#define TL16C554_C_DLM XBYTE[0x8301]
#define TL16C554_C_IER XBYTE[0x8301]
#define TL16C554_C_LSR XBYTE[0x8305]
#define TL16C554_C_MSR XBYTE[0x8306]
#define TL16C554_C_RBR XBYTE[0x8300]
#define TL16C554_C_THR XBYTE[0x8300]
#define TL16C554_D_LCR XBYTE[0x8403]
#define TL16C554_D_FCR XBYTE[0x8402]
#define TL16C554_D_MCR XBYTE[0x8404]
#define TL16C554_D_DLL XBYTE[0x8400]
#define TL16C554_D_DLM XBYTE[0x8401]
#define TL16C554_D_IER XBYTE[0x8401]
#define TL16C554_D_LSR XBYTE[0x8405]
#define TL16C554_D_MSR XBYTE[0x8406]
#define TL16C554_D_RBR XBYTE[0x8400]
#define TL16C554_D_THR XBYTE[0x8400]
//RS485发送控制端定义
sbit RSSET_554 = P1^5;
sbit RS485_SEND = P1^7;
/***********************************/
//通讯命令字定义
#define Read_FRENIC 'R' //读出数据
#define Write_FRENIC_Comm 'W' //写入数据
#define Rest 'E' //复位命令
#define Fudamental 'F' //基本功能
#define Extension 'E' //端子功能
#define Control 'C' //控制功能
#define Motor1 'P' //电动机1
#define Motor2 'A' //电动机2
#define High 'H' //高级功能
#define FREMIC_Mov_Control 'S' //标准帧通讯控制
#define Standm 'M' //标准帧监视器用
//写16C554控制字
#define Write_TL16C554(TL16C554_ADD,TL16C554_REG) (TL16C554_ADD = TL16C554_REG)
//读16C554寄存器
#define Rread_TL16C554(TL16C554_ADD) (TL16C554_REG = TL16C554_ADD,TL16C554_REG)
//通过各个串口发送数据
#define SendChar_UART_A(SendChar) (TL16C554_A_THR = SendChar)
#define SendChar_UART_B(SendChar) (TL16C554_B_THR = SendChar)
#define SendChar_UART_C(SendChar) (TL16C554_C_THR = SendChar)
#define SendChar_UART_D(SendChar) (TL16C554_D_THR = SendChar)
//通过各个串口接收数据
#define RevvChar_UART_A() (RevvChar_A = TL16C554_A_RBR,RevvChar_A)
#define RevvChar_UART_B() (RevvChar_B = TL16C554_B_RBR,RevvChar_B)
#define RevvChar_UART_C() (RevvChar_C = TL16C554_C_RBR,RevvChar_C)
#define RevvChar_UART_D() (RevvChar_D = TL16C554_D_RBR,RevvChar_D)
//定时器2相关操作
#define Timer2_On() (TR2 = 1)
#define Timer2_Off() (TR2 = 0)
#define RevvCharNumber 0x08 //中断一次接收字节数
#define Ttimer_2 20 //定时器2的中断时间17ms
//TL16C554相关控制结束
//-----------------------------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -