Saludos a todos
les tengo una rutina en assembler para calcular los
pulsos de baja frecuencia es la siguiente:
dos registro nada más:
CONTA_1 EQU 1BH
CONTEO EQU 21H
una deficición nada más:
#DEFINE BIT_CONTEO PORTB,0 ;BIT QUE HABILITA CONTEO INTERNO TIMER OPTION
rutina para calcular tiempo de pulso:
CONTAR: BTFSS BIT_CONTEO ;SE MANTIENE AQUI ESPERANDO NIVEL ALTO
GOTO $-1
BTFSC BIT_CONTEO ;PREGUNTA SI EL NIVEL AHORA ES BAJO
GOTO $-1 ;SI LO ES SALTA Y CUENTA, SINO RETROCEDE
INCRE_1: CALL DELAY_1MS ;RETARDO DE 1 Mseg
INCF CONTA_1,0 ;INCREMENTA CONTADOR CONTA_1
MOVWF CONTA_1 ;SACO DATO PARA SABER SI ES CERO
BTFSC STATUS,2 ;VERIFICA SI SE REBOSO CONTADOR SINO CUENTA
INCF CONTEO,1 ;INCREMETA SEGUNDO CONTADOR
BTFSS BIT_CONTEO ;
GOTO INCRE_1
return
La rutina incrementa dos contadores uno es CONTA_1 que es el menos significativo
el otro es CONTEO que es el más significativo, cada incremento es de 1 milisegundo
supongamos que conto 456, eso multiplicado por 1 mseg da como ancho de pulso
456 mseg. es facil de usar. CUALQUIER MEJOR POR FAVOR COLOQUENLA AQUI MISMO
GRACIAS DE ANTEMANO.