diff --git a/epicardium/modules/vibra.c b/epicardium/modules/vibra.c index 8b10d19b64815d7ae9d46b8bbc58bb60b74be065..da1325093b6866037c1882da6ad79d613ee833a4 100644 --- a/epicardium/modules/vibra.c +++ b/epicardium/modules/vibra.c @@ -27,15 +27,21 @@ void epic_vibra_vibrate(int millis) { int ticks = millis * (configTICK_RATE_HZ / 1000); + /* Make sure the duration is valid */ + if (ticks < 1) { + /* Disable a potentially running motor */ + epic_vibra_set(0); + return; + } + if (vibra_timer == NULL) { vibra_timer = xTimerCreateStatic( "vibratimer", ticks, - pdFALSE, + pdFALSE, /* one-shot */ 0, vTimerCallback, - &vibra_timer_data - ); + &vibra_timer_data); } if (vibra_timer != NULL) { epic_vibra_set(1);