static void PIOS_gcsrcvr_Supervisor(uintptr_t gcsrcvr_id) { /* Recover our device context */ struct pios_gcsrcvr_dev * gcsrcvr_dev = (struct pios_gcsrcvr_dev *)gcsrcvr_id; if (!PIOS_gcsrcvr_validate(gcsrcvr_dev)) { /* Invalid device specified */ return; } /* * RTC runs at 625Hz. */ if(++(gcsrcvr_dev->supv_timer) < (PIOS_GCSRCVR_TIMEOUT_MS * 1000 / 625)) { return; } gcsrcvr_dev->supv_timer = 0; if (!gcsrcvr_dev->Fresh) for (int32_t i = 0; i < GCSRECEIVER_CHANNEL_NUMELEM; i++) gcsreceiverdata.Channel[i] = PIOS_RCVR_TIMEOUT; gcsrcvr_dev->Fresh = false; }
static void PIOS_gcsrcvr_Supervisor(uint32_t gcsrcvr_id) { /* Recover our device context */ struct pios_gcsrcvr_dev * gcsrcvr_dev = (struct pios_gcsrcvr_dev *)gcsrcvr_id; if (!PIOS_gcsrcvr_validate(gcsrcvr_dev)) { /* Invalid device specified */ return; } /* * RTC runs at 625Hz so divide down the base rate so * that this loop runs at 25Hz. */ if(++(gcsrcvr_dev->supv_timer) < 25) { return; } gcsrcvr_dev->supv_timer = 0; if (!gcsrcvr_dev->Fresh) for (int32_t i = 0; i < GCSRECEIVER_CHANNEL_NUMELEM; i++) gcsreceiverdata.Channel[i] = PIOS_RCVR_TIMEOUT; gcsrcvr_dev->Fresh = FALSE; }