No pana, esta EXCELENTE tu proceso, yo cometia el grave error, de volver a setear(perdida de 2 ciclos) el TMR0, con tu proceso es casi excacto.
Solo repaso pana:
Para el cristal de 4mhz:
1mhz(1/2 de preescaler)=500khz el periodo para esta frecuencia es t=1/f=1/500000=0.000002 seg ahora el periodo por el numero maximo de pulsos que soporta el tmr usado(tmr0,1,2) T*TMR(o,1,2)=(0.000002)(256)= TEMPORIZACION para este escaler y este reloj externo y esto es =0.000512 seg=0.512mseg
Entonces necesitamos cada 250 mseg(para que sea parejo el muestreo cada segundo) esto nos lleva a Cuantas interrupciones de (0.512mSeg) se necesitan para obtener250mseg
Resolviendo como bien dice el pana Khasistos(Genio!!!)
artificio=250mseg/0.512mseg, se van los segundos, se van los milies, teniendo un artificio de 488.28125, tomamos el entero y el 0.28125 es nuestro error.
Ahora si entendi pana
aqui vuelvo a poner el codigo que si esta parando a 250 ms y con la correcion que pude hacer gracias a tu ayuda Pana:
DEVICE=16F628
ON_INTERRUPT INTERRUPCION
CONFIG INTRC_OSC_NOCLKOUT,WDT_OFF,PWRTE_ON,CP_OFF,BODEN_OFF,LVP_OFF,MCLRE_OFF
DECLARE LCD_DTPIN PORTA.0
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTA.4
ALL_DIGITAL=TRUE
PORTB_PULLUPS=ON
Dim TMR1 As TMR1L.WORD
Dim TMR0_POSTCOUNT1 As WORD
Dim CONTEO As word
Dim BANDERA As Bit
Dim RESULTADO As word
GoTo INICIO
INTERRUPCION:
DEC TMR0_POSTCOUNT1
If TMR0_POSTCOUNT1 = 0 Then
clear T1CON.0
TMR0_POSTCOUNT1 =488
CONTEO = TMR1
Clear TMR1
set BANDERA
set T1CON.0
End If
clear INTCON.2
CONTEXT RESTORE
INICIO:
TMR0_POSTCOUNT1 = 489
clear OPTION_REG.0
clear OPTION_REG.1
clear OPTION_REG.2
clear OPTION_REG.5
clear OPTION_REG.3
clear INTCON.2
T1CON = %00000110
set T1CON.0
set INTCON.5
clear BANDERA
set INTCON.7
TMR0 =0
Loop:
If BANDERA = 1 Then
RESULTADO = CONTEO * 4
PRINT AT 1,1,"FREC = ",DEC6 RESULTADO ,"Hz"
clear BANDERA
End If
GOTO LOOP
Stop
Peo aun no hay exactitud, :S ,, hay que seguir analizando las interupciones.
Gracias pana, ahora si 100% CLARO!!!!, a 500ms trabaja mejor seria 977 de artificio en int, 976 de artificio inicial con 1:2 de preescaler,
Un abrazo