Hola amigos del foro:
Estoy tratando de hacer un contador por flanco ascendente/descendente, el cual debe contar
N pulsos, (10500), de frecuencia variable, desde 0...300 cs.
Mostrar en la salida un pulso con periodo 50 %.
Esto debe de ser así por que a dicha salida la necesito utilizar en otro contador el cual tiene
varios displays de 7 segmentos, y mientra refresca pasa un periodo de tiempo grande, el cual me hace perder varios pulsos de la fracuencia inicial.
Pensé que para mi lo mas facil es hacer otro contador aparte, el cual no tiene que perder tiempo
prendiendo los display. El problema es que no me funcionó bien en proteus.(no apaga la salida)
Como tengo muy pocos conocimientos de tema, agradezco me ayuden.Creo que manejando interrupciones
se puede hacer, pero es imposible para mí.
Copie, y modifique parte de un código que encontre por ahí, pero funciono a medias, agradezco lo corrijan
'****************************************************************
'* Name : DIVISOR *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 28/11/2006 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
TRISB=0
TRISA=%00000001 'porta.0 entrada de pulso sensor
'porta.1 salida de pulso
CONT VAR WORD
flag var bit
CONT=0 '
inicio:
PORTB =0
if flag = 0 then
if PORTA.0 = 0 then 'para cambiar al otro flanco cambiar el 1 por 0
cont = cont+1 'con un 1 censa en flanco de subida
flag = 1 'con 0 censa en flanco de bajada
endif
endif
if flag = 1 then
if PORTA.0 = 1 then 'para cambiar al otro flanco cambiar el 0 por 1
flag = 0 'con un 0 censa en flanco de subida
endif 'con 1 censa en flanco de bajada
endif
if cont=2 then 'aquí empieza a contar pulsos
high porta.1 'despues de 2 (5250) pulsos activa porta.1
if cont>4 then 'despues de4 (10500) pulsos activa porta.1
low porta.1 ' pero.... no deactiva ?
CONT=0
endif
endif
goto inicio 'SOLO ACTIVA PORTA.1 PERO NO LA DESACTIVA CUANDO
'ALCANZA A 4 (10500) pulsos, talvez no cuenta?
end 'creo que hay algo mal en las últimas lineas,... por lo menos.
'Simulado en proteus
'la parte que no funciona fué la que hice yo