TODOPIC
Microcontroladores PIC => dsPIC => Mensaje iniciado por: letxu2 en 08 de Mayo de 2007, 13:34:55
-
Hola, estoy descubriendo mikroC, y os parecera una chorrada, pero no soy capaz de capturar cuando se pulsa un pulsador.
Creo haberlo probado todo, esta bien configuradas las entradas. este es el codigo que he escrito:
if(PORTDbits.RD0)
{
if (temperaturaPilotoInterno>16||temperaturaPilotoInterno<25) {
temperaturaPilotoInterno=temperaturaPilotoInterno+1;
IntToStr(temperaturaPilotoInterno,mensajeTempPilotoInterno);
T6963C_write_text(mensajeTempPilotoInterno,23, 2, T6963C_ROM_MODE_XOR) ;
}
Delay_ms(300) ;
}
Podria alguien echarme una mano?? Muchas gracias
-
¿Sólo te falla esa parte del programa y el resto funciona, o el micro no hace nada?. Habría que ver más partes del programa y un esquema de tu circuito para intentar aproximar una solución.
A pesar de eso, sí que he descubierto algo raro en tu programa:
if (temperaturaPilotoInterno>16||temperaturaPilotoInterno<25) {
Esa condición será cierta SIEMPRE, puesto que has utilizado el operador || (OR) en lugar de && (AND).
Yo lo pondría así:
if ((temperaturaPilotoInterno>16) && (temperaturaPilotoInterno<25)) {
Por cierto, creo que tu programa ganaría bastante en "legibilidad" si utilizaras más los espacios en blanco.
-
Si el resto el programa funciona perfectamente, lo unico q no hace es entrar en el if cada vez que se pulsa el pulsador. gracias por lo de la condicion. El problema q tengo es q no se si lo de PORT<> es correcto para detectar q se ha pulsador el pulsador.gracias
-
Buennass:
Yo no programo en MikroC, no se como es tu programa pero a lo mejor necesitas meter el if dentro de un while para esperar ese evento en el puerto RD0 para que no se pase la instrucción, otra opción que tienes es programar alguna interrupción de ese puerto. Espero haberte ayudado,
suerte,