I have found for controlling the framerate its best to let the game loop run as fast as the target machine can render the graphics, but you control all movement with an elapsed time value. Here is link to an article I wrote on the subject:

http://www.softbeat.com/articles/article1.htm