6
« : junio 29, 2014, 23:41:51 pm »
Buenas,
Para un proyecto de domotica, tengo una Stx8081 conectada a 8 Stx570s. La idea es que las entradas de las placas de expansion detecten los cambios en las teclas de iluminacion de la casa. Ya en las primeras pruebas tuve problemas con la deteccion de eventos de las stx570, mi programa no respondio de acuerdo a lo esperado, por lo que hice un programa bien simple para ver que esta pasando:
static A = 0
PlcMain()
{
ExPortSetEvent() //Habilito el evento OnExPort
for (new i = 0; i <= 7; i++) //Inicializo las 8 placas Stx570
{
Stx570_Init(i)
}
for(;;) //Loop que trae por default el programa base
{
}
return 0
}
@OnExPort() //Evento que detecta el cambio de estado en una placa de expansion
{
A = A + 1 //Incrementar en uno nuestra variable
LcdClear() //Limpiar el Lcd
LcdPrintf(0, 0, "%d", A) //Imprimir el valor de nuestra variable
PauseMS(200) // Esto es para evitar un rebote en la tecla
}
Conecte una tecla en una entrada de una de las placas. Cuando prendo la tecla se enciende el led testigo de dicha entrada, cuando apago la tecla lo mismo sucede con el led. Digamos que electricamente esta todo bien.
Si no entiendo mal, se supone que cada vez que la tecla cambia de estado, este programa deberia actualizar el LCD mostrando un numero que se incrementa en 1. Prendo la tecla, se muestra un 1, apago, se muestra un 2, prendo nuevamente, se muestra un 3....
Sin embargo, lo que sucede es que cuando la tecla cambia a posicion ON nuestra variable se incrementa en 2 unidades y cuando pasa a OFF el evento no se dispara.
Aclaro que ya verifique que cada placa tiene su respectiva direccion I2C, todas con el jumper en Multiple, menos la ultima que es Single. Tambien hice el proceso de alta de las placas en el software de acuerdo al manual.
Estoy un tanto perdido con lo que esta pasando.
Aguardo comentarios.
Muchas gracias,
Pablo