/********************************************/
/*LED Data Port Configuration Code          */
/*PIC32MX795F512L-80I/PF                    */
/*PIC32MX695F512L-80I/PF                    */
/********************************************/

#include <xc.h>

#include "MainBrain.h"

void LED_Port_Init(void)
{    
    AD1PCFGbits.PCFG7 = 1;
    AD1PCFGbits.PCFG6 = 1;
    
    //Status Port
    TRISBbits.TRISB7 = 0;
    TRISBbits.TRISB6 = 0;
    TRISGbits.TRISG13 = 0;
    TRISDbits.TRISD2 = 0;
    
    TRISCbits.TRISC1 = 0;
    TRISCbits.TRISC2 = 0;
    TRISCbits.TRISC3 = 0;
    TRISCbits.TRISC4 = 0;
    
    TRISFbits.TRISF8 = 0;
    TRISFbits.TRISF2 = 0;
        
    //Light all LEDs and hold
    PORTBbits.RB7 = 1;
    PORTBbits.RB6 = 1;
    PORTGbits.RG13 = 1;
    PORTDbits.RD2 = 1;
    PORTCbits.RC1 = 1;
    PORTCbits.RC2 = 1;
    PORTCbits.RC3 = 1;
    PORTCbits.RC4 = 1;
    PORTFbits.RF8 = 1;
    PORTFbits.RF2 = 1;
      

    //Delay
    int i;
    for(i=0;i<0xfffff;i++);
        
    //Turn off all LEDs
    PORTBbits.RB7 = 0;
    PORTBbits.RB6 = 0;
    PORTGbits.RG13 = 0;
    PORTDbits.RD2 = 0;
    PORTCbits.RC1 = 0;
    PORTCbits.RC2 = 0;
    PORTCbits.RC3 = 0;
    PORTCbits.RC4 = 0;
    PORTFbits.RF8 = 0;
    PORTFbits.RF2 = 0;
    
    return;
}

void LED_Port(unsigned led_port_data)
{
    int temp = led_port_data;
    
    //LED0
    temp = led_port_data & 0x01;  
    PORTBbits.RB7 = temp;
    
    //LED_1
    temp = led_port_data & 0x02;
    temp = temp >> 1;
    PORTBbits.RB6 = temp;
    
    //LED_2
    temp = led_port_data & 0x04;
    temp = temp >> 2;
    PORTGbits.RG13 = temp;
    
    //LED_3
    temp = led_port_data & 0x08;
    temp = temp >> 3;
    PORTDbits.RD2 = temp;
    
    //LED_4
    temp = led_port_data & 0x10;
    temp = temp >> 4;
    PORTCbits.RC1 = temp;
    
    //LED_5
    temp = led_port_data & 0x20;
    temp = temp >> 5;
    PORTCbits.RC2 = temp;
    
    //LED_6
    temp = led_port_data & 0x40;
    temp = temp >> 6;
    PORTCbits.RC3 = temp;
    
    //LED_7
    temp = led_port_data & 0x80;
    temp = temp >> 7;
    PORTCbits.RC4 = temp;
       
}