Best way to deal with multiple tasks that need to read RTC in very short period?

pugglewuggle wrote on Tuesday, March 15, 2016:

Is there an efficient way to communicate with an external RTC and then share that time/value with many tasks that could be requesting that value at any moment without an expensive in/out queue implementation between requesting tasks and the actual RTC task? Surely someone has had to do this before. Thanks!

heinbali01 wrote on Tuesday, March 15, 2016:

Hi pugglewuggle,

Is it possible to express the current time as e.g. seconds after 1-1-1970?

Note that there are date-conversion functions in

 FreeRTOS-Plus-FAT\ff_time.c

The cheapest way to share a 32-bit value on a 32-bit MCU would be to declare it as volatile variable:

volatile u32_t ulRTCTime;

( provide an access function if you want to avoid the use of global variables ).

If the architecture not support 32-bit access, you will need a mutex/semaphore to protect the value from getting changed while reading it.

Regards.