This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Serial communication

Hi, I tried communication between two uC. Steps are
1) uC1 sends a request (1 byte) to uC2.
2) On receiving this byte, uC2 sends three bytes of data to uC1.
3) uC1 waits for completion of the data reception and stores the data in an array.

All the three steps works ( I am able to display the received bytes correctly using LEDs)
But the problem is I need to add about 1sec delay before every time request is sent from uC1.

(I set a flag to low before sending the request, this flag (global bit) is set to one by the UART ISR when 3 bytes are received. After sending the request, the main program waits for this bit to become high, and then proceeds.Without the additional delay, this bit does not seem to change.)

Is there anything wrong in my method? Why this delay becomes necessary?

Parents
  • You could have a transfer problem.

    Or you could have a problem with your delay.

    How do you implement your delay? If the delay is handled by a timer with one-second granularity, then that delay can result in a zero delay if you call the delay function just before the timer ticks. So have you made sure that your design guarantees a minimum delay time of 1000ms?

Reply
  • You could have a transfer problem.

    Or you could have a problem with your delay.

    How do you implement your delay? If the delay is handled by a timer with one-second granularity, then that delay can result in a zero delay if you call the delay function just before the timer ticks. So have you made sure that your design guarantees a minimum delay time of 1000ms?

Children
No data