Está interrumpiendo el Timer antes de que se ejecute la asignación del valor 1400 a la variable ang. El Timer interrumpe cada 256 * 128 instrucciones. Eso a 8Mhz son 16.384 mS lo que significa que el Timer va a interrumpir varias veces antes debido a las demoras que pusiste previas a la asignación. Por eso "parece" que no la tomase.
Probá asignandole el valor 1400 antes de el while().
el programa que algo asi y sigue sin funcionar, a esto te referias?
#include "Z:\Vereertbrugghen\siguelineas\servo\pruebas\1.h"
#int_RTCC
int16 ang;
RTCC_isr()
{
int i;
for(i=0;i!=10;i++)
{
OUTPUT_HIGH (PIN_A0);
delay_us(ang);
OUTPUT_LOW(PIN_A0);
delay_ms(10);
}
}
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
setup_oscillator(OSC_8MHZ);
// TODO: USER CODE!!
ang = 1400;
while(true)
{
/*
OUTPUT_HIGH(PIN_A1);
delay_ms(200);
OUTPUT_LOW(PIN_A1);
delay_ms(200);*/
ang = 1400;
}
}