Use single periodic callback if possible The problem with multiple callbacks is that the higher rate can interrupt a lower rate callback. int number = 0; void periodic_callback_10hz(uint32_t count) { number++; } // This can interrupt the 10hz in the middle of its operations void periodic_callback_100hz(uint32_t count) { number++; } Use this instead: int number = 0; void periodic_callback_10hz(uint32_t count) { //number++; } // This can interrupt the 10hz in the middle of its operations void periodic_callback_100hz(uint32_t count) { if (0 == (count % 10)) { number++; } number++; }