Hola buenas. Vereis tengo un pequeño problema. Estoy haciendo un programa en C para un pic 16F873A. Es mi primer programa en C, asiq ue estoy teniendo algun que otro problemillas. En este caso tiene que ver con las entradas. El caso que quiero que lea una entrada y decida, pero al simularlo luego con proteus tengo problemas
Vereis lo que pasa es que al activar la entrada esta se queda activa aunque deje de tener un valor necesario para activarla. Os coloco un programa que he hecho para las pruebas. es muy simple, solo activa una salida en B si se activa una entrada en A. a ver en ensamblador se que deberia leer el registro para que desapareciera el valor, pero en C... como lo hago???? El caso que en proteus veo que al inicio la salida B0 es nula (xq asi se lo obligo al inicio del programa) al activar A0 se activa B0, pero al quitar el generador de A0 sigue activa la salida B0.
gracias a todos y a ver si dais con lo que hago mal o con lo que me falta
///////////////////////////// DIRECTIVAS DE PREPROCESADO /////////////////////////////
#include <16F873A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#byte port_b=6
////////////////////////////////////// RUTINAS ////////////////////////////////////////
/////////////////////////////////////// PRINCIPAL //////////////////////////////////////
void main() {
set_tris_b(0x00);
set_tris_a(0xff);
setup_adc_ports(no_analogs);
port_b=0x00;
While (TRUE) {
output_bit(Pin_B0,input(PIN_A0));
}
}