【发布时间】:2017-02-09 09:11:48
【问题描述】:
正如我的问题所说,要通过其地址访问端口,我们可以将其写为 "&PORTA" 吗??
在我的问题中,我想使用 Modbus 协议从/向 HMI 读取/写入端口值。
我有一个结构数组:
typedef struct func_code_reg {
volatile uint16_t addr;
volatile uint16_t *data;
}RW_REG_DATA;
// described as
RW_REG_DATA rwCoilStatusTbl[] = {
// Addr Data_Register
{ 0, &rwCoil_0000 },
{ 1, &rwCoil_0001 },
};
HMI 每次读取数据时,都会读取寄存器&rwCoil_000x
的当前值每当 HMI 写入数据时,寄存器 &rwCoil_000x 都会更新。
相反,我想使用 &PORTA 来读取端口状态或更新端口状态。
有可能吗?? &如果可能的话,它是更新端口状态的正确方法吗??
或者任何更好的方法,请指导我。
(我用的是dsPic33E系列)
【问题讨论】:
-
&rwCoil_0000或&rwCoil_0001的值是多少?它是否映射到某个端口? -
@Swanand,&rwCoil_000x 是一个 16 位寄存器。它尚未与端口映射。我没有办法用 Port 映射它,因为 rwCoil_000x 的值将随机更新。
-
再次,&rwCoil_0000 或 &rwCoil_0001 的值是多少?
-
@Swanand,考虑 rwCoil_0000 = 0x55 & rwCoil_0001 = 0xAA
-
我假设您已将 rwCoil_0000 声明为 uint16_t 变量
标签: microcontroller microchip mplab xc16