Info

This question is closed. Reopen it to edit or answer.

I'm attempting to get something to perform only for a certain amount of time. Is there a function for this?

1 view (last 30 days)
I'm trying to get part of my program to execute for only half a second. I have the following code..
case 'backward'
display('Going Backwards')
Portarduino.analogWrite(rspeed,50);
Portarduino.analogWrite(lspeed,50);
Portarduino.digitalWrite(rdir,1);
Portarduino.digitalWrite(ldir,1);
pause(0.00001)
robotstatus='mainloop'
And I only want this to perform for .5 seconds. Can someone give me some guidance? Thank you!
  2 Comments
Ced
Ced on 16 Apr 2016
Have you tried using tic and toc? I don't have the hardware, so I can't check, but I could image that something like this might work:
% --> Get command to drive backwards for 5 seconds
display('Going Backwards')
tic
while ( toc < 5 )
Portarduino.analogWrite(rspeed,50);
Portarduino.analogWrite(lspeed,50);
Portarduino.digitalWrite(rdir,1);
Portarduino.digitalWrite(ldir,1);
pause(0.00001)
robotstatus='mainloop'
end
PS: What is the sampling rate of your Arduino? 0.00001 seems unnecessarily fast to me.

Answers (0)

This question is closed.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!