Deadzone: yes this is a common issue with the joysticks. Usually, it results in a high pitched buzzing sound.
Very basic code that I wrote, and that my team currently uses:
while(true)
{
if (vexRT[Ch2] > 15)
{
motor[rightBack] = vexRT[Ch2];
motor[rightFront] = vexRT[Ch2];
}
if (vexRT[Ch2] < -15)
{
motor[rightBack] = vexRT[Ch2];
motor[rightFront] = vexRT[Ch2];
}
wait1Msec(5);
motor[rightBack] = 0;
motor[rightFront] = 0;
}//end of while true
This code is for a basic tank drive where channel 2 is on the right side of the drive. The same will work for the right side if the joystick channel and motor assignments are changed.
Basically, if the joystick is like a slider, think of the slider on your phone to adjust the brightness, so it has a different value at a different position. Sometimes the joysticks don’t return back to its true center, so it doesn’t return a value of 0. With the code, you posted above,
motor1 = vexRT[ch1]
it basically says set the motor to the value of the joystick at all times. So it may try to return a value of 7 to the motors, which is not enough to make them move, this is basically stalling your motor and causes the high pitched buzzing sound. I don’t think this is bad for the motors, nor does it drain the battery much, so it is not absolutely necessary. But the code is not too complicated, and it works well so it doesn’t hurt to use.
Looking back at:
while(true)
{
if (vexRT[Ch2] > 15) // postivie deadzone constant: 15
{
motor[rightBack] = vexRT[Ch2];
motor[rightFront] = vexRT[Ch2];
}
if (vexRT[Ch2] < -15) // negative deadzone constant: -15
{
motor[rightBack] = vexRT[Ch2];
motor[rightFront] = vexRT[Ch2];
}
wait1Msec(5);
motor[rightBack] = 0;
motor[rightFront] = 0;
}//end of while true
All the program says is if the joystick is OUTSIDE the deadzone (-15 to 15) then, set the motor power equal to the joystick value. I’m pretty sure the joysticks max out at a value of -127 to 127 so you don’t have to worry about them feeding values too high for the motors.
The code doesn’t have any else statements, but it is implied that if none of the if statements are true, then they will not be executed, so the motor values are set to a default of 0. The default value of 0 is very important because otherwise, the motors will not stop. 
There is no specific calculation to receive the deadzone constant. Think of it like choosing what values of the joystick you want to be included in the deadzone, and remember that the joystick can produce negative and positive values. I think 15 works great, so I would not recommend changing it, but you can try anything between 10-20. Don’t go too high or else you will not be able to make fine driving movements.
Good Luck!!