Buenas,
En C30 tienes la funcion __delay32(unsigned long counter)
está escrita en ensamblador y tienes que pasarle el numero de cuentas que se desea generar. Para eso, algo tan facil como generarte luego en la cabecera algo como:
// External oscillator frequency with PLL enable
#define SYSCLK 8000000
#define FCY SYSCLK*4/2 //pll enabled
// Defines para calcular los ciclos para determinados tiempos
// Se suma uno al final para asegurarnos que tenemos el tiempo minimo deseado
// en caso de que la division no fuese exacta
// si se quiere el valor exacto (y no minimo) quitar el "+1" final
#define US_10 (1*FCY/100000)+1
#define US_25 (25*FCY/1000000)+1
#define US_50 (5*FCY/100000)+1
#define US_100 (1*FCY/10000)+1
#define US_250 (25*FCY/100000)+1
#define US_500 (5*FCY/10000)+1
#define MS_10 (1*FCY/100)+1
#define MS_25 (25*FCY/1000)+1
#define MS_50 (5*FCY/100)+1
#define MS_100 (1*FCY/10)+1
#define MS_250 (25*FCY/100)+1
#define MS_500 (5*FCY/10)+1
Un saludo,