Necesito ayuda con un PIC16F887 y la placa de demostración de 44 pines de Microchip. Está siendo programado con un PicKit2.
En esta placa de demostración, hay un botón pulsador conectado a RB0 de tal manera que el nivel en el pin está alto todo el tiempo, y al presionar el botón el nivel baja. El propósito del botón es simular una señal de interrupción externa. Estoy intentando experimentar con interrupciones en este chip, pero no puedo leer ningún cambio de estado en este pin.
Tengo un simple fragmento de código que prueba el estado de RB0 y establece RD0 en consecuencia. Sin embargo, no pasa nada si se presiona o no el botón.
¿Alguien puede ver algo mal aquí? Sé que el IC en sí está bien ya que puedo ejecutar otros programas que no usan este pin de entrada.
Aquí hay un PDF en la pizarra de demostración si alguien está interesado. enlace
#include <pic16f887.h>
#include <htc.h>
__CONFIG (0x20E4);
__CONFIG (0x2EFF);
void main(void){
int i;
int k;
TRISB = 0xff; //set PORTB as inputs
TRISD = 0x00; // Set PORTD as an Output
while(1)
{
RD0=RB0;
}
Hice los siguientes cambios según la solución de Dave a continuación, sin cambios.
void main(void){
int i;
TRISB = 0xff; //set PORTB as inputs
TRISD = 0x00; // Set PORTD as an Output
while(1)
{
i=PORTB;
PORTD=i;
}
}