Solo un pequeño detalle Firepic, el 255 de la fórmula ¿no debiera de ser 256?Tienes razón...
Claro que deberás definir "i" como una variable int16 y "una_hora" como una variable tipo bit (servirá como bandera para indicar si ha transcurrido o no la hora). Ambas deberás definirlas en la cabecera como variables globales.
La i la tendrás que definir como int32 (los int16 "solo" llegan hasta 65536)
Saludos!-----------------------------------------------------------------------------------------------------------------------
Algo así podría funcionar:Código: C
#INT_RTCC void interrupcion_timer () { i++; if (i>275735) { i=0; una_hora=1; } set_rtcc (0); } void main (void) { una_hora=0; i=0; setup_timer_0 (RTCC_INTERNAL, RTCC_DIV_256); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); while (TRUE) { if (!una_hora) { //codigo cuando no ha pasado la hora... } else { //codigo de lo que hay que hacer cuando pase la hora... } } }
Aquí usarías timer0 con pre-escala de 256, entonces 255*256*4*(20e6^-1)*275735 aprox = 3600s = 1hora.
Claro que deberás definir "i" como una variable int16 y "una_hora" como una variable tipo bit (servirá como bandera para indicar si ha transcurrido o no la hora). Ambas deberás definirlas en la cabecera como variables globales.
Creo que así debería funcionar... no lo compilé, así que pruebalo y dices que tal...
Dale pues, nos leemos! :mrgreen: