📄 dpram.h.svn-base
字号:
/*******************************************************************************************
* MODBUS Master/Slaver Module
* Coded by XUWANSU
* 2007/6/14
*******************************************************************************************
* 双口RAM区 : 4k
* 数据内存区: 0x300个WORD(1536个char) *2(DATA&STS)
* 旗语区 : 8个char
* 配置参数区: 4*8char(四个SCC各8char,波特率,主/从,奇偶校验,从站地址,主站超时等待时间)
* CMDLINE
* word:高位在前,低位在后
*******************************************************************************************/
#ifndef MOD360_DPRAM_H
#define MOD360_DPRAM_H
#ifndef M_ARCH_ARM93XX#define Dualport_BASE 0x500000#define Dualport_SEM 0x501000#else#define Dualport_BASE 0xffb40000#define Dualport_SEM 0xffb41000
#endif
//数据内存区
//-----------------------------------------------------------------------------------
//数据区起始地址及数量的可变定义
#define HRDATA_BASE ((volatile unsigned char *)(Dualport_BASE+0x20)) //总数据区,所有的数据均在此数据区中
#define HRDATA_SIZE 0xE60
#define MODBUS_REGDATA_OFFSET 0 //modbus寄存器类的数据在总数据区中的偏移
#define MODBUS_COILDATA_OFFSET 0 //modbuscoil类型的数据在总数据区中的偏移
#define MODBUS_MAX_REG 1800 //最大的寄存器地址
#define MODBUS_MAX_COIL 60000 //最大的线圈(BOOL量)地址
//-----------------------------------------------------------------------------------
#define DIAG_SEND_MSG 1
#define DIAG_RECV_MSG 0
//TXT配置界面
#define WORDLINE ((char *)(Dualport_BASE+0xE80)) //字符串打印区域,250字节
#define WORDLINE_LEN 60 //BYTE
//调试信息输出界面
#define DIAG_INF ((unsigned char *)(Dualport_BASE+0xF00)) //数据,250字节
#define DIAG_INF_LEN 60 //BYTE
//0xF00-0xF20,站状态,bit(0/1),每个端口64bit,表示64个站的状态,0异常,1正常
#define HRSTS ((volatile unsigned char *)(Dualport_BASE+0xF80))
#define HRSTS_LEN 0x20 //32BYTE
#define DIAG_INT_FLAG (*(volatile unsigned char *)(Dualport_BASE+0xFA0)) //中断类型,2字节
#define WORDLINE_NEWFLAG (*(volatile unsigned char *)(Dualport_BASE+0xFA1)) //数据更新标志,2字节
#define HRDATA_NEWFLAG (*(volatile unsigned char *)(Dualport_BASE+0xFA2)) //数据区写入标志
//数据锁定信号
#define READY_DATA (*(volatile unsigned char *)(Dualport_SEM+0)) //DATA&STS
#define READY_DIAG_INF (*(volatile unsigned char *)(Dualport_SEM+1))
#define READY_WORDLINE (*(volatile unsigned char *)(Dualport_SEM+2))
//DIAG_INT_FLAG 中断类型
#define INIT_READY 0xBB //初始化完成
#define NORMAL_ANSWER 0xDD //普通返回信息
#define LISTEN_MODE 0xFF //调试信息
#define NEW_WRITE 0xAA //WordLine新命令标记
#define USED 0 //用完一定要清哈
//M/S
#define PRO_MODBUS_S 0
#define PRO_MODBUS_M 1
#define PROT_SHGE 2
#define PROT_SAC 3
#define PROT_WATT 4
#define PROT_XJ 5
#define PROT_ABB 6
#define PROT_SYNC 7
#define PROT_UPS 8
#define PRO_DC 9
//baudrate
#define BAUD_4800 0
#define BAUD_9600 1
#define BAUD_19200 2
#define BAUD_57600 3
#define BAUD_115200 4
//parity
#define PARITY_N 0
#define PARITY_E 1
#define PARITY_O 2
//COM
#define COM1 0
#define COM2 1
#define COM3 2
#define COM4 3
#endif /*MOD360_DPRAM_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -