fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

detectar flancos.
 
Avisos
Vaciar todo

detectar flancos.

4 Respuestas
4 Usuarios
0 Reactions
7,821 Visitas
mocodepavo
Respuestas: 1
Topic starter
(@mocodepavo)
New Member
Registrado: hace 15 años

Hola , a ver si alguien me puede ayudar, tengo un programa en el que necesito detectar flancos de bajada en los puertos del microcontrolador.

¿ cómo lo hacen ustedes?

Yo lo que he hecho es lo siguiente pero no sé si es correcto, por ejemplo detectar flanco de bajada en el puerto P2:

while ( ! P2);
While ( P2); ..........// instrucciones.

ó por el contrario :

While (P2);
while(! P2) ;........................// instrucciones

¿ cual creen que es correcta?
Ayuda por fi. 😯

Responder
3 respuestas
heli
Respuestas: 748
 Heli
(@heli)
Ardero
Registrado: hace 19 años

Esa es una forma de hacerlo, pero tiene el problema de que el micro se queda parado esperando a que se cumpla la condición.
Otra forma de hacerlo sin que se quede parado el micro es esta:

static int1 P2_Anterior; // Variable auxiliar tipo bit, int1 para el compilador CCS
...
...
// Se lee: Si P2 es 1 y P2 antes era 0 (es que ha cambiado de 0 a 1)
if (P2 && !P2_Anterior) // Esto detecta el franco ascendente
{ ....
}
...
// Se lee: Si P2 es 0 y P2 antes era 1 (es que ha cambiado de 1 a 0)
if (!P2 && P2_Anterior) // Esto detecta el franco descendente
{ ....
}
...
P2_Anterior = P2; // Importante, después de usar P2_Anterior hay que asignarle el valor actual de P2

Solo se necesita una variable de bit auxiliar para recordar el estado anterior de la variable consultada.

Responder
fj_sanchez
Respuestas: 1083
(@fj_sanchez)
Ardero
Registrado: hace 18 años

Bueno, como consejo asegurate de que la señal no tenga muchos rebotes o ruido, sino puede confundirse con flancos. Por otro lado, también puedes hacerlo con una interrupción, de manera que la rutina salte automáticamente, esto no te lo recomiendo si los flancos se van a suceder muy rápido unos tras otros.

Un saludo.

Responder
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

En los pics lo detecta automáticamente (por Hardware) en las interrupciones externas.

S2

Ranganok Schahzaman

Responder
Compartir: