|
void canReset(BYTE port){
BYTE huge*ptr;
ptr=(BYTE huge*)MK_FP(segment+0x200*port,0x100);
BYTE V;
V=*ptr;
*ptr=v;
delay(100);
}
段选地址A19-A12:0xD0000;A11A10A9A8:0000选中A片SJA1000;A11A10A9A8:0010选中B片SJA1000;A7-A0位为A、B片SJA1000片内地址。
问题1》为什么SJA1000硬件复位口是segment+0x100;是不是片选信号上升沿或高电平能复位SJA1000。
问题2》为什么“ptr=(BYTE huge*)MK_FP(segment+0x200*port,0x100);”而不是“ptr=(BYTE huge*)MK_FP(segment+0x20*port,0x100);”段地址不是要乘以16吗?
问题3》 V=*ptr;
*ptr=v;
目的是什么,该地址读写均无法完成,因为此地址不存在操作单元。
|
|