/** @File Name main.c @Summary This is the generated main.c using PIC24 / dsPIC33 / PIC32MM MCUs. @Description This source file provides main entry point for system initialization and application code development. Generation Information : Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.171.4 Device : PIC24FV16KM202 The generated drivers are tested against the following: Compiler : XC16 v2.10 MPLAB : MPLAB X v6.05 */ /** Section: Included Files */ #include "mcc_generated_files/system.h" #include "SPI.h" #include /* Main application */ uint8_t activeResistors[2] = {0x00,0x00}; uint8_t desired150, desired68 = 0; bool relay_delay = false; static uint8_t* timeoutcounter; void TMR1_Process(void); int main(void) { // initialize the device SYSTEM_Initialize(); //OSCCONbits.SOSCEN = 0; SPI_slaveDeselect(); _LATA0 = _LATA1 = 0;//_LATA4 = 1; //Activate gate driver chips _LATA4 = 1; Message_HWCR(); _LATB6 = 0; _LATB7 = 1; _LATB8 = 1; TMR1_SetInterruptHandler(&TMR1_Process); while (1) { timeoutcounter = getTimeoutCounter(); desired150 = getI2CArray(1) & 0x0F; desired68 = (getI2CArray(1) >> 4) & 0x07; if (relay_delay) { active(activeResistors); if (*timeoutcounter < 2) { _LATB8 = 1; relay_delay = false; if (desired150 < activeResistors[0]) { Message_OUT(activeResistors[0] - 1, activeResistors[1], 1); } else if (desired150 > activeResistors[0]) { Message_OUT(activeResistors[0] + 1, activeResistors[1], 1); } else if (desired68 < activeResistors[1]) { Message_OUT(activeResistors[0], activeResistors[1] - 1, 0); } else if (desired68 > activeResistors[1]) { Message_OUT(activeResistors[0], activeResistors[1] + 1, 0); } } else //Open contactors if I2C communication is broken. { if (relay_delay) Message_OUT(activeResistors[0] - 1, activeResistors[1] - 1, 0); _LATB7 = 1; //Make sure activity light is off _LATB8 = 0; //Message_HWCROCL(); } } //Message_OUT(15, 0, 1); //(desired150, desired68, relay_delay); //if(activeResistors[1]==3){_LATB8=0;} //else{_LATB8=1;} } return 1; } void __attribute__ ((weak)) TMR1_Process(void) { relay_delay = !relay_delay; incrementTimeoutCounter(); } /** End of File */