If you just want a simple turn, don't use myRobot.Drive, just use ArcadeDrive, like this:
Code:
#define TURN_TOLERANCE 0.5
void Turn(float angle)
{
float targetHeading = gyro.GetAngle() + angle;
while (fabs(targetHeading - gyro.GetAngle()) > TURN_TOLERANCE)
{
myRobot.ArcadeDrive(0.0, (angle < 0.0)? -0.5: 0.5);
}
}
However, if you want to adjust the turn power according to how far you are from your target, then you need to use PID.
BTW, you should really fix your signs by calling myRobot->SetInvertedMotor(), you will benefit from it in the long run.