@@ -61,14 +61,25 @@ class SoftwareTimer
6161 void stop (void ) { xTimerStop (_handle, 0 ); }
6262 void reset (void ) { xTimerReset (_handle, 0 ); }
6363
64- BaseType_t startFromISR (BaseType_t* pxHigherPriorityTaskWoken = NULL ) {
65- return xTimerStartFromISR (_handle, pxHigherPriorityTaskWoken);
64+ bool startFromISR (void ) {
65+ BaseType_t ret, xHigherPriorityTaskWoken = pdFALSE;
66+ ret = xTimerStartFromISR (_handle, &xHigherPriorityTaskWoken);
67+ portYIELD_FROM_ISR (xHigherPriorityTaskWoken);
68+ return (ret == pdPASS);
6669 }
67- BaseType_t stopFromISR (BaseType_t* pxHigherPriorityTaskWoken = NULL ) {
68- return xTimerStopFromISR (_handle, pxHigherPriorityTaskWoken);
70+
71+ bool stopFromISR (void ) {
72+ BaseType_t ret, xHigherPriorityTaskWoken = pdFALSE;
73+ ret = xTimerStopFromISR (_handle, &xHigherPriorityTaskWoken);
74+ portYIELD_FROM_ISR (xHigherPriorityTaskWoken);
75+ return (ret == pdPASS);
6976 }
70- BaseType_t resetFromISR (BaseType_t* pxHigherPriorityTaskWoken = NULL ) {
71- return xTimerResetFromISR (_handle, pxHigherPriorityTaskWoken);
77+
78+ bool resetFromISR (void ) {
79+ BaseType_t ret, xHigherPriorityTaskWoken = pdFALSE;
80+ ret = xTimerResetFromISR (_handle, &xHigherPriorityTaskWoken);
81+ portYIELD_FROM_ISR (xHigherPriorityTaskWoken);
82+ return (ret == pdPASS);
7283 }
7384
7485 void setPeriod (uint32_t ms)
0 commit comments