Saludos.
Estoy perdido con algo tan simple como leer el estado de un PIN.
Si, ya lo se, es de primero, pero me estoy volviendo loco.
Os adjunto el programa para ver si alguien tiene idea de por que no funciona (el valo siempre es '0')
Situavción actual: PIN_C4 con una resiatencia de 10K a +5. Entre C4 y masa un pulsador.
Supongo: Pulsador sin activar, valor de C4 = 1, pulsador activado valor de C4 = 0.
Pues no: Siempre es 0.
Lo más curioso es que la simulacion en PROTEUS 7.6 SP0 Build 8304 funciona perfecta.
CCS = Version 4.104
#include <18f4550.h>
#fuses HS, PLL5, CPUDIV1, NOWDT, PUT, BROWNOUT, NOLVP, MCLR
#use delay(clock=20M)
#define CONTACT_1 PIN_C4
#define SEND PIN_C6
#define RECEIVE PIN_C7
#use RS232(baud=9600,xmit=SEND,rcv=RECEIVE,stream=STANDARD)
#include <lcd.c>
void main(void) {
char cContact1_Status;
lcd_init();
delay_ms(6);
printf(lcd_putc, "Test entradas\r\n");
do{
if (input_state(CONTACT_1)) cContact1_Status = '1';
else cContact1_Status = '0';
fprintf(STANDARD, "Estado de C4=%c\r\n",cContact1_Status);
} while(true);
}
Entiendo que algo estoy haciendo mal, ya que he probado en todas las entrads del puerto C y el resultado es el mismo.
Gracias anticipadas.
jc