Skip to content
Browse files

Testing and setting the delay to a minimum value needs to occur only

if delay is not zero, otherwise the timer is not turned off when it
should be. Move the test and setting back inside the block that is only
executed if delay > 0.
  • Loading branch information...
1 parent 408718d commit f555887eb58ca1adcd1be0354eea434e4e71f6f9 @madscifi madscifi committed with May 14, 2011
Showing with 6 additions and 6 deletions.
  1. +6 −6 timer.c
View
12 timer.c
@@ -135,12 +135,6 @@ void timer_init()
/// specify how long until the step timer should fire
void setTimer(uint32_t delay)
{
- // if the delay is too small use a minimum delay so that there is time
- // to set everything up before the timer expires.
-
- if (delay < 17 )
- delay = 17;
-
// save interrupt flag
uint8_t sreg = SREG;
uint16_t step_start = 0;
@@ -154,6 +148,12 @@ void setTimer(uint32_t delay)
if (delay > 0) {
+ // if the delay is too small use a minimum delay so that there is time
+ // to set everything up before the timer expires.
+
+ if (delay < 17 )
+ delay = 17;
+
// Assume all steps belong to one move. Within one move the delay is
// from one step to the next one, which should be more or less the same
// as from one step interrupt to the next one. The last step interrupt happend

0 comments on commit f555887

Please sign in to comment.
Something went wrong with that request. Please try again.