Не понятно для чего вы используете
volatile для локальной переменной. Если без
volatile, то тогда компилятор скорее всего разместит ее в регистре.
Вот еще один путь снижения объема кода
Код
void delay_ms(int time)
{
int Timer1 = 51;
while(time--)
while(Timer1--)
WDR;
}
Здесь переменная Timer вообще не нужна.
Операция сравнения с нулем выполняется быстрее, чем с каким-либо другим числом.
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.