??? 01/09/08 17:03 Read: times |
#149201 - details Responding to: ???'s previous message |
This code is one part of a big system, there are 2 microcontrollers talk serially with each others, I write the code for one of them, they send the data from the other microcontroller as follows:
- send a byte (0x41 or 0x42 or 0x43 or 0x44 or 0x05) , I have to check the serial port till I receive this byte, if I don't receive it during certain time , I perform certain code. - if I received the first byte, and it's really one of the previous values, I begin to receive the 16 bytes data and I have to wait till I receive all of them correctly or the system will not complete. Now, I can receive the first byte which is 0x41, but I can't receive the 16 bytes data * I knew that I received it from certain actions in the rest of the system on the simulator "protus" * I used Keil to dubugg the code and it worked normally but it's not working in the system. * I replaced the Pointer with the array itself but also it doesn't work. i.e. ==> R_serial () interrupt 4 { if(RI) { serialR = SBUF; CompDataRx[count]= serial; ++count; RI=0; } else TI = 0; } void main() { while(1) { SerialInit(9600); SendCompAddress(); for(i=0; i<=255; i++) { CompState = SerialReceive(); switch(CompState) { case 0x41: count = 0; while(count!=15); ...... ................................. } *** Thank You All for Help |