#include "BoardCfg.h" int InitBoard() { HEARTBEAT_LED_1_PIN_DIR = PIN_OUTPUT; // HEARTBEAT_LED_2_PIN_DIR = PIN_OUTPUT; // HEARTBEAT_LED_2_PIN = LED_ON; HEARTBEAT_LED_1_PIN = LED_ON; GP_DEBUG_1_PIN_DIR = PIN_OUTPUT; GP_DEBUG_1_PIN = 0; GP_DEBUG_2_PIN_DIR = PIN_OUTPUT; GP_DEBUG_2_PIN = 0; SPI_SDI_PIN_DIR = PIN_INPUT; SD_SPI_SS_PIN_DIR = PIN_OUTPUT; SPI_SDO_PIN_DIR = PIN_OUTPUT; SPI_SCK_PIN_DIR = PIN_OUTPUT; //Wifi (WINC1500 module) WIFI_SPI_SS_PIN_DIR = PIN_OUTPUT; WIFI_SPI_SS_PIN = 1; WIFI_IRQ_PIN_DIR = PIN_INPUT; // WIFI_WAKE_PIN_DIR = PIN_OUTPUT; // WIFI_WAKE_PIN = 1; WIFI_SPI_CFG_PIN_DIR = PIN_OUTPUT; WIFI_SPI_CFG_PIN = 0; WIFI_CHP_EN_PIN_DIR = PIN_OUTPUT; WIFI_CHP_EN_PIN = 0; WIFI_CHP_RST_PIN_DIR = PIN_OUTPUT; WIFI_CHP_RST_PIN = 0; //Wifi chip IRQ IEC0bits.INT0IE = 0; IFS0bits.INT0IF = 0; INTCONbits.INT0EP = 0; //Rising edge IPC0bits.INT0IP = 3; IPC0bits.INT0IS = 0; IEC0bits.INT0IE = 1; //Wifi chip SPI SPI2CON = 0; SPI2CONbits.MSTEN = 1; SPI2CONbits.CKE = 0; SPI2CONbits.SMP = 0; SPI2CONbits.CKP = 0; SPI2BRG = SPICalculateBRG(PERIPHERAL_FREQ, 500000); SPI2CONbits.ON = 1; //Control knob encoder KNOB_PH_A_PIN_DIR = PIN_INPUT; KNOB_PH_B_PIN_DIR = PIN_INPUT; KNOB_TGLE_BTN_PIN_DIR = PIN_INPUT; IEC0bits.INT1IE = 0; IFS0bits.INT1IF = 0; INTCONbits.INT1EP = 1; //Rising edge IPC1bits.INT1IP = 2; IPC1bits.INT1IS = 1; // IEC0bits.INT1IE = 1; //Led controller PWM LED_PWM_PIN_DIR = PIN_OUTPUT; LED_PWM_PIN = 0; OC3CON = 0; OC3R = 0; OC3RS = 2000; //50% PWM OC3CONbits.OCTSEL = 0; OC3CONbits.OCM = 0b110; //PWM mode, no fault protection T2CONbits.TON = 0; // Disable Timer T2CONbits.TCS = 0; // Select internal instruction cycle clock T2CONbits.TGATE = 0; // Disable Gated Timer mode T2CONbits.TCKPS = 0b00; // Select 1:1 Prescaler TMR2 = 0x00; // Clear timer register //PR2 = 256; // Load the period value PR2 = PWM_RANGE_MAX; //10KHz @ 80MHz IPC2bits.T2IP = 0x01; // Set Timer 2 Interrupt Priority Level IFS0bits.T2IF = 0; // Clear Timer 2 Interrupt Flag IEC0bits.T2IE = 0; // Disable Timer 2 interrupt T2CONbits.TON = 1; // Start Timer OC3CONbits.ON = 1; return RET_OK; }