uuu, casi no lo revise, pero empeza con la estructura de prog...
siempre empieza en el main, y alli dentro la primera zona se usa para inicializar tooooodo lo q quiereas y luego un loop infinito donde se hace el trabajo rutinario..
las rutinas de int. gralmente se ponen antes q el main, esto es mas q nada para ayuda al compilador y no tener q repetir los header de cada rutina en la cabecera ( eso tiene un nombre q ahora no me sale...)
la interrupcion q se habilita ultimo es siempre la global....
una cosa mas, cada vez q compiles con CCS (al principio al menos) si conoces asm fijate en el listing de asembler maso q te genero, pq si esta mal ( como sucedio con tu inicializacion) no te dice nada y no te lo compila tampoco...
el orden es, inicializo timer primero
despues habilito la int del timer y luego la global...
#include <16f88.h>
#fuses HS,NOWDT
#use delay(clock=8000000)
#use rs232(baud=9600, xmit=PIN_B0,rcv=PIN_B1)
int8 x;
void main() {
set_tris_b(0x00);
set_tris_a(0x00);
setup_adc_ports(NO_ANALOGS);
setup_timer_0(RTCC_DIV_256,RTCC_INTERNAL);
enable_interrupts(INT_TMR0);
enable_interrupts(GLOBAL);
do {
if (x==1)
output_high(PIN_B4);
else
output_low(PIN_B4);
} while (1);
}
#INT_TIMER0
tmr_handler() {
x^=1;
}
no la probe, pero es mas probable q asi funcione....
suerte...