Simulacion en Proteus codigo con C CCS

Buenas tardes, he estado haciendo pequeñas pruebas con simulación usando ISIS (Proteus). No se si alguien ha observado lo mismo que yo, pero en cuanto a las ordenes de delay_us(Valor), simulando el programa que tiene esas ordenes en ISIS no se corresponden los valores medidos con los programados con valores inferiores a los 100us. Por ejemplo para sacar una señal cuadrada (50% de duty-cycle) de 10 us en estado alto y bajo al poner el codigo siguiente:
for (Ciclo=0;Ciclo<10;++Ciclo)
{
bit_clear(PORTB,0);
delay_us(10);
bit_set(PORTB,0);
delay_us(10);
}
la simulación vista en el osciloscopio de 4 canales de ISIS no concuerda y he llegado a la conclusión de que hay que poner lo siguiente:
for (Ciclo=0;Ciclo<10;++Ciclo)
{
bit_clear(PORTB,0);
delay_us(9);
bit_set(PORTB,0);
delay_us(2);
}
ya que sin poner delays en us, poner un estado alto en el pin muestra 8us en esado alto y 1us en estado bajo, con lo que si queriamos 10 us se le ha de restar al valor deseado 8 para estados altos y 1 para estados bajos.

En simulación real, es decir con el chip grabado no lo he probado y supongo que sera correcto poner delay_us(10) si queremos 10 microsegundos de retardo. Si alguien quiere probarlo me parecería una buena cosa a tener en cuenta al momento de simular con dicho programa. Me gustaría poder verificar mi hipótesis.
Muchas gracias.
Atentamente
Carlos
Ing:Tec.Ind.