title: Why this program work in PORTB but Doesn't work in PORTA (MPLAB XC8)?
body: <p>This is a simple program to on/off led in XC8 (Microchip):</p>
  
  <p>1) This code work :</p>
  
  <pre><code>#include &lt;xc.h&gt; 
  
  #define _XTAL_FREQ 4000000 
  
  #pragma config FOSC = HS  // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
  #pragma config WDTE = OFF       // Watchdog Timer Disable bit (WDT disabled)
  #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
  #pragma config MCLRE = OFF      // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
  #pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
  #pragma config LVP = OFF        // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
  #pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
  #pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
  
   void main()
  {
       TRISB0=1;
       TRISB4=0;
  
      if (RB0==1)
      {
          RB4 = 1;
      }
      else
      {
          RB4 = 0;
      }
  
  } 
  </code></pre>
  
  <p><a href="http://i.stack.imgur.com/bJ7X2.jpg" rel="nofollow">Switch Connected to portb RB0</a></p>
  
  <p>2) This code doesn't work :</p>
  
  <pre><code>#include &lt;xc.h&gt; // Librería XC8
  
  #define _XTAL_FREQ 4000000 // Indicamos a que frecuencia de reloj esta funcionando el micro
  
  // PIC16F648A Configuration Bit Settings
  #pragma config FOSC = HS  // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
  #pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
  #pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
  #pragma config MCLRE = OFF      // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
  #pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
  #pragma config LVP = OFF        // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
  #pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
  #pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)
  
   void main()
  {
       TRISA0=1;
       TRISB4=0;
  
      if (RA0==1)
      {
          RB4 = 1;
      }
      else
      {
          RB4 = 0;
      }
  
  }  
  </code></pre>
  
  <p><a href="http://i.stack.imgur.com/JYwWN.jpg" rel="nofollow">Switch Connected to port RA0</a></p>
  
  <p>Why I can on led If I get port B but not in port A ?</p>
  
  <p>Best Regards.</p>