ImageImageImageImage
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

detectar flancos.

Postea aqui toda la parte de programación del lenguaje C, C++, C#...

Moderator: Junta Directiva

Post Reply
mocodepavo
Posts: 1
Joined: Thu Dec 03, 2009 1:18 am

detectar flancos.

Post by mocodepavo » Thu Dec 03, 2009 1:36 am

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. 8O

User avatar
Heli
Usuario Experto
Usuario Experto
Posts: 747
Joined: Tue May 23, 2006 7:47 am
Nombre: Heli Tejedor
Location: Alcala de Henares
Contact:

Re: detectar flancos.

Post by Heli » Thu Dec 03, 2009 8:34 am

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:

Code: Select all

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.
¡No es imposible, lo que pasa es que no sabes como hacerlo!
http://heli.xbot.es/" onclick="window.open(this.href);return false;

FJ_Sanchez
Usuario Desarrollador
Usuario Desarrollador
Posts: 1082
Joined: Wed Jun 07, 2006 11:09 pm
Nombre: Francisco Javier Sánchez
Location: Vejer de la Frontera
Contact:

Re: detectar flancos.

Post by FJ_Sanchez » Thu Dec 03, 2009 10:41 am

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.
_ _ _ _ _ _ _ _ _ _

Hack your mind \\ F.J. Sánchez

Okupa tu mente. \\ _ _ _ _ _ _ _ _ _ _ _ _

Ranganok
Usuario Desarrollador
Usuario Desarrollador
Posts: 3874
Joined: Mon Nov 07, 2005 3:10 pm
Location: Barbaros del Valle
Contact:

Re: detectar flancos.

Post by Ranganok » Thu Dec 03, 2009 12:56 pm

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

S2

Ranganok Schahzaman
skiras.blogspot.com

"En igualdad de condiciones la explicación más sencilla es la cierta"

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest