ImagenImagenImagenImagen
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#...

Moderador: Junta Directiva

Responder
mocodepavo
Mensajes: 1
Registrado: Jue Dic 03, 2009 1:18 am

detectar flancos.

Mensaje por mocodepavo » Jue Dic 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



Avatar de Usuario
Heli
Usuario Experto
Usuario Experto
Mensajes: 747
Registrado: Mar May 23, 2006 7:47 am
Nombre: Heli Tejedor
Ubicación: Alcala de Henares
Contactar:

Re: detectar flancos.

Mensaje por Heli » Jue Dic 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:

Código: Seleccionar todo

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
Mensajes: 1082
Registrado: Mié Jun 07, 2006 11:09 pm
Nombre: Francisco Javier Sánchez
Ubicación: Vejer de la Frontera
Contactar:

Re: detectar flancos.

Mensaje por FJ_Sanchez » Jue Dic 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
Mensajes: 3867
Registrado: Lun Nov 07, 2005 3:10 pm
Ubicación: Barbaros del Valle
Contactar:

Re: detectar flancos.

Mensaje por Ranganok » Jue Dic 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"

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados