View Single Post
Old March 24th, 2015   #7
StephenYim
Junior Member
 
Join Date: Mar 2015
Posts: 11
Default

mDelay_usec(100); //minimum delay 172us
rdm_response_msg[0] = 0xFE;
rdm_response_msg[1] = 0xFE;
rdm_response_msg[2] = 0xFE;
rdm_response_msg[3] = 0xFE;
rdm_response_msg[4] = 0xFE;
rdm_response_msg[5] = 0xFE;
rdm_response_msg[6] = 0xFE;
rdm_response_msg[7] = 0xAA;
rdm_response_msg[8] = (ManufacturerIDH & 0xFF) | 0xAA;
rdm_response_msg[9] = (ManufacturerIDH & 0xFF) | 0x55;
rdm_response_msg[10] = (ManufacturerIDL & 0xFF) | 0xAA;
rdm_response_msg[11] = (ManufacturerIDL & 0xFF) | 0x55;



//mUID.llbytes.Char0=0x00;
// mUID.llbytes.Char1=0x00;
//mUID.llbytes.Char2=(ManufacturerIDH & 0xFF);
// mUID.llbytes.Char3=(ManufacturerIDL & 0xFF);
// mUID.llbytes.Char4=1;
// mUID.llbytes.Char5=1;
// mUID.llbytes.Char6=1;
// mUID.llbytes.Char7=1;

rdm_response_msg[12] = (mUID.llbytes.Char4 & 0xFF) | 0xAA;
rdm_response_msg[13] = (mUID.llbytes.Char4 & 0xFF) | 0x55;
rdm_response_msg[14] = (mUID.llbytes.Char5 & 0xFF) | 0xAA;
rdm_response_msg[15] = (mUID.llbytes.Char5 & 0xFF) | 0x55;
rdm_response_msg[16] = (mUID.llbytes.Char6 & 0xFF) | 0xAA;
rdm_response_msg[17] = (mUID.llbytes.Char6 & 0xFF) | 0x55;
rdm_response_msg[18] = (mUID.llbytes.Char7 & 0xFF) | 0xAA;
rdm_response_msg[19] = (mUID.llbytes.Char7 & 0xFF) | 0x55;
/*

rdm_response_msg[12] = (mSerialID->lbytes.Char0 & 0xFF) | 0xAA;
rdm_response_msg[13] = (mSerialID->lbytes.Char0 & 0xFF) | 0x55;
rdm_response_msg[14] = (mSerialID->lbytes.Char1 & 0xFF) | 0xAA;
rdm_response_msg[15] = (mSerialID->lbytes.Char1 & 0xFF) | 0x55;
rdm_response_msg[16] = (mSerialID->lbytes.Char2 & 0xFF) | 0xAA;
rdm_response_msg[17] = (mSerialID->lbytes.Char2 & 0xFF) | 0x55;
rdm_response_msg[18] = (mSerialID->lbytes.Char3 & 0xFF) | 0xAA;
rdm_response_msg[19] = (mSerialID->lbytes.Char3 & 0xFF) | 0x55;
*/
//Update mCRC
Cal_CRC(&rdm_response_msg[8], 12);

rdm_response_msg[20] = (mCRC.ibytes.HChar & 0xFF) | 0xAA;
rdm_response_msg[21] = (mCRC.ibytes.HChar & 0xFF) | 0x55;
rdm_response_msg[22] = (mCRC.ibytes.LChar & 0xFF) | 0xAA;
rdm_response_msg[23] = (mCRC.ibytes.LChar & 0xFF) | 0x55;

GPIOSetValue(DMX_DIR_PORT_ADD,MaskValue(DMX_DIR_Pin),DMX_DIR_SetTX);

DMX_RDM_Transmit(rdm_response_msg,24,0/*NO BREAK*/,MarkTime);

mDelay_usec(100); //dealy
GPIOSetValue(DMX_DIR_PORT_ADD,MaskValue(DMX_DIR_Pin),DMX_DIR_SetRX);

Above is the source code. I had delay 100us before sending my reply, and delay 100us before setting the RS485 Tranceiver to RX mode. There for, I can't find any problem with the timing. And dear ericthegeek, thanks for your time&help.
StephenYim is offline   Reply With Quote