Tengo una placa olimex con una PIC16LF76 (Esquema - El PIC ES una foto diferente):
Estoy intentando cambiar el LED cuando se presiona el botón, mi código C parece:
#include <xc.h>
#pragma config FOSC = HS // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT enabled)
#pragma config CP = OFF // FLASH Program Memory Code Protection bit (Code protection off)
#pragma config BOREN = OFF
int main() {
TRISA = 0x20;
ADCON0 = 0b111;
while(1){
if((PORTA & 0x20)==0) {
PORTA |= 0x01;
} else {
PORTA &= ~0x01;
}
}
}
¿Qué va mal (algo similar funcionaría para Atmel AVR)? Mi compilador es XC8 y estoy usando MPLabX. Puedo confirmar que el interruptor funciona, y también lo hace el LED, ya que he probado estas partes de la placa olimex individualmente e independientemente sin el chip PIC en la placa.
EDITAR:
He intentado las respuestas proporcionadas todavía en vano. También el LED está encendido a pesar de no encenderlo.