diff --git a/.gitignore b/.gitignore index 4c111fb..013cac4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ solar_panel.X/build/ solar_panel.X/debug/ -solar_panel.X/dist/ \ No newline at end of file +solar_panel.X/dist/ +build/ +debug/ +dist/ \ No newline at end of file diff --git a/solar_panel.X/Makefile b/Makefile similarity index 100% rename from solar_panel.X/Makefile rename to Makefile diff --git a/solar_panel.X/crc.c b/crc.c similarity index 100% rename from solar_panel.X/crc.c rename to crc.c diff --git a/solar_panel.X/crc.h b/crc.h similarity index 100% rename from solar_panel.X/crc.h rename to crc.h diff --git a/solar_panel.X/lcd/arialRoundedMTBold18ptBitmaps.c b/lcd/arialRoundedMTBold18ptBitmaps.c similarity index 100% rename from solar_panel.X/lcd/arialRoundedMTBold18ptBitmaps.c rename to lcd/arialRoundedMTBold18ptBitmaps.c diff --git a/solar_panel.X/lcd/ft5xx6.c b/lcd/ft5xx6.c similarity index 100% rename from solar_panel.X/lcd/ft5xx6.c rename to lcd/ft5xx6.c diff --git a/solar_panel.X/lcd/ft5xx6.h b/lcd/ft5xx6.h similarity index 100% rename from solar_panel.X/lcd/ft5xx6.h rename to lcd/ft5xx6.h diff --git a/solar_panel.X/lcd/lcd.c b/lcd/lcd.c similarity index 100% rename from solar_panel.X/lcd/lcd.c rename to lcd/lcd.c diff --git a/solar_panel.X/lcd/lcd.h b/lcd/lcd.h similarity index 100% rename from solar_panel.X/lcd/lcd.h rename to lcd/lcd.h diff --git a/solar_panel.X/lcd/ssd1963_cmd.h b/lcd/ssd1963_cmd.h similarity index 100% rename from solar_panel.X/lcd/ssd1963_cmd.h rename to lcd/ssd1963_cmd.h diff --git a/solar_panel.X/main.c b/main.c similarity index 87% rename from solar_panel.X/main.c rename to main.c index e43bd5c..de0ff6a 100644 --- a/solar_panel.X/main.c +++ b/main.c @@ -44,11 +44,15 @@ #include "mcc_generated_files/mcc.h" #include "lcd/lcd.h" #include "measure.h" +#include "modbus.h" #define MAX_COL 16 /* Main application */ +void resetTMR0(void); +void endFrame(void); + void main(void) { // Initialize the device @@ -57,6 +61,7 @@ void main(void) Lcd_Init(); adc_init(); + modbus_init(0x80); uint16_t offsetCurrent = 0; offsetCurrent = measure_current(offsetCurrent); @@ -65,17 +70,19 @@ void main(void) // Use the following macros to: // Enable the Global Interrupts - //INTERRUPT_GlobalInterruptEnable(); + INTERRUPT_GlobalInterruptEnable(); // Disable the Global Interrupts //INTERRUPT_GlobalInterruptDisable(); // Enable the Peripheral Interrupts - //INTERRUPT_PeripheralInterruptEnable(); + INTERRUPT_PeripheralInterruptEnable(); // Disable the Peripheral Interrupts //INTERRUPT_PeripheralInterruptDisable(); uint16_t foo = 512; + EUSART1_SetRxInterruptHandler(resetTMR0); + TMR0_SetInterruptHandler(endFrame); while (1) { foo = ++foo%1023; @@ -94,6 +101,20 @@ void main(void) } } + + +void resetTMR0(void){ + INTCONbits.TMR0IF = 0; + TMR0_Reload(); + TMR0_StartTimer(); +} + +void endFrame(void){ + TMR0_StopTimer(); + modbus_analyse_and_answer(); + + // TODO +} /** End of File */ \ No newline at end of file diff --git a/solar_panel.X/mcc_generated_files/adc.c b/mcc_generated_files/adc.c similarity index 100% rename from solar_panel.X/mcc_generated_files/adc.c rename to mcc_generated_files/adc.c diff --git a/solar_panel.X/mcc_generated_files/adc.h b/mcc_generated_files/adc.h similarity index 100% rename from solar_panel.X/mcc_generated_files/adc.h rename to mcc_generated_files/adc.h diff --git a/solar_panel.X/mcc_generated_files/device_config.c b/mcc_generated_files/device_config.c similarity index 100% rename from solar_panel.X/mcc_generated_files/device_config.c rename to mcc_generated_files/device_config.c diff --git a/solar_panel.X/mcc_generated_files/device_config.h b/mcc_generated_files/device_config.h similarity index 100% rename from solar_panel.X/mcc_generated_files/device_config.h rename to mcc_generated_files/device_config.h diff --git a/solar_panel.X/mcc_generated_files/epwm1.c b/mcc_generated_files/epwm1.c similarity index 100% rename from solar_panel.X/mcc_generated_files/epwm1.c rename to mcc_generated_files/epwm1.c diff --git a/solar_panel.X/mcc_generated_files/epwm1.h b/mcc_generated_files/epwm1.h similarity index 100% rename from solar_panel.X/mcc_generated_files/epwm1.h rename to mcc_generated_files/epwm1.h diff --git a/mcc_generated_files/eusart1.c b/mcc_generated_files/eusart1.c new file mode 100644 index 0000000..5700d00 --- /dev/null +++ b/mcc_generated_files/eusart1.c @@ -0,0 +1,239 @@ +/** + EUSART1 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + eusart1.c + + @Summary + This is the generated driver implementation file for the EUSART1 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This source file provides APIs for EUSART1. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.1.1 + The generated drivers are tested against the following: + Compiler : XC8 2.36 and above + MPLAB : MPLAB X 6.00 +*/ + +/* + (c) 2018 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software and any + derivatives exclusively with Microchip products. It is your responsibility to comply with third party + license terms applicable to your use of third party software (including open source software) that + may accompany Microchip software. + + THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY + IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS + FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT + OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS + SOFTWARE. +*/ + +/** + Section: Included Files +*/ +#include "eusart1.h" + +/** + Section: Macro Declarations +*/ + +#define EUSART1_TX_BUFFER_SIZE 8 +#define EUSART1_RX_BUFFER_SIZE 8 + +/** + Section: Global Variables +*/ + +volatile uint8_t eusart1RxHead = 0; +volatile uint8_t eusart1RxTail = 0; +volatile uint8_t eusart1RxBuffer[EUSART1_RX_BUFFER_SIZE]; +volatile eusart1_status_t eusart1RxStatusBuffer[EUSART1_RX_BUFFER_SIZE]; +volatile uint8_t eusart1RxCount; +volatile eusart1_status_t eusart1RxLastError; + +/** + Section: EUSART1 APIs +*/ +void (*EUSART1_RxDefaultInterruptHandler)(void); + +void (*EUSART1_FramingErrorHandler)(void); +void (*EUSART1_OverrunErrorHandler)(void); +void (*EUSART1_ErrorHandler)(void); + +void EUSART1_DefaultFramingErrorHandler(void); +void EUSART1_DefaultOverrunErrorHandler(void); +void EUSART1_DefaultErrorHandler(void); + +void EUSART1_Initialize(void) +{ + // disable interrupts before changing states + PIE1bits.RC1IE = 0; + EUSART1_SetRxInterruptHandler(EUSART1_Receive_ISR); + // Set the EUSART1 module to the options selected in the user interface. + + // ABDOVF no_overflow; SCKP async_noninverted_sync_fallingedge; BRG16 16bit_generator; WUE disabled; ABDEN disabled; RXDTP not_inverted; + BAUDCON1 = 0x08; + + // SPEN enabled; RX9 9-bit; CREN enabled; ADDEN disabled; SREN disabled; + RCSTA1 = 0xD0; + + // TX9 9-bit; TX9D 0; SENDB sync_break_complete; TXEN enabled; SYNC asynchronous; BRGH hi_speed; CSRC master_mode; + TXSTA1 = 0xE4; + + // + SPBRG1 = 0x8A; + + // + SPBRGH1 = 0x02; + + + EUSART1_SetFramingErrorHandler(EUSART1_DefaultFramingErrorHandler); + EUSART1_SetOverrunErrorHandler(EUSART1_DefaultOverrunErrorHandler); + EUSART1_SetErrorHandler(EUSART1_DefaultErrorHandler); + + eusart1RxLastError.status = 0; + + + eusart1RxHead = 0; + eusart1RxTail = 0; + eusart1RxCount = 0; + + // enable receive interrupt + PIE1bits.RC1IE = 1; +} + +bool EUSART1_is_tx_ready(void) +{ + return (bool)(PIR1bits.TX1IF && TXSTA1bits.TXEN); +} + +bool EUSART1_is_rx_ready(void) +{ + return (eusart1RxCount ? true : false); +} + +bool EUSART1_is_tx_done(void) +{ + return TXSTA1bits.TRMT; +} + +eusart1_status_t EUSART1_get_last_status(void){ + return eusart1RxLastError; +} + +uint8_t EUSART1_Read(void) +{ + uint8_t readValue = 0; + + while(0 == eusart1RxCount) + { + } + + eusart1RxLastError = eusart1RxStatusBuffer[eusart1RxTail]; + + readValue = eusart1RxBuffer[eusart1RxTail++]; + if(sizeof(eusart1RxBuffer) <= eusart1RxTail) + { + eusart1RxTail = 0; + } + PIE1bits.RC1IE = 0; + eusart1RxCount--; + PIE1bits.RC1IE = 1; + + return readValue; +} + +void EUSART1_Write(uint8_t txData) +{ + while(0 == PIR1bits.TX1IF) + { + } + + TXREG1 = txData; // Write the data byte to the USART. +} + + + +void EUSART1_Receive_ISR(void) +{ + + eusart1RxStatusBuffer[eusart1RxHead].status = 0; + + if(RCSTA1bits.FERR){ + eusart1RxStatusBuffer[eusart1RxHead].ferr = 1; + EUSART1_FramingErrorHandler(); + } + + if(RCSTA1bits.OERR){ + eusart1RxStatusBuffer[eusart1RxHead].oerr = 1; + EUSART1_OverrunErrorHandler(); + } + + if(eusart1RxStatusBuffer[eusart1RxHead].status){ + EUSART1_ErrorHandler(); + } else { + EUSART1_RxDataHandler(); + } + + // or set custom function using EUSART1_SetRxInterruptHandler() +} + +void EUSART1_RxDataHandler(void){ + // use this default receive interrupt handler code + eusart1RxBuffer[eusart1RxHead++] = RCREG1; + if(sizeof(eusart1RxBuffer) <= eusart1RxHead) + { + eusart1RxHead = 0; + } + eusart1RxCount++; +} + +void EUSART1_DefaultFramingErrorHandler(void){} + +void EUSART1_DefaultOverrunErrorHandler(void){ + // EUSART1 error - restart + + RCSTA1bits.CREN = 0; + RCSTA1bits.CREN = 1; + +} + +void EUSART1_DefaultErrorHandler(void){ + EUSART1_RxDataHandler(); +} + +void EUSART1_SetFramingErrorHandler(void (* interruptHandler)(void)){ + EUSART1_FramingErrorHandler = interruptHandler; +} + +void EUSART1_SetOverrunErrorHandler(void (* interruptHandler)(void)){ + EUSART1_OverrunErrorHandler = interruptHandler; +} + +void EUSART1_SetErrorHandler(void (* interruptHandler)(void)){ + EUSART1_ErrorHandler = interruptHandler; +} + + +void EUSART1_SetRxInterruptHandler(void (* interruptHandler)(void)){ + EUSART1_RxDefaultInterruptHandler = interruptHandler; +} +/** + End of File +*/ diff --git a/mcc_generated_files/eusart1.h b/mcc_generated_files/eusart1.h new file mode 100644 index 0000000..2a70662 --- /dev/null +++ b/mcc_generated_files/eusart1.h @@ -0,0 +1,476 @@ +/** + EUSART1 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + eusart1.h + + @Summary + This is the generated header file for the EUSART1 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for driver for EUSART1. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.1.1 + The generated drivers are tested against the following: + Compiler : XC8 2.36 and above + MPLAB : MPLAB X 6.00 +*/ + +/* + (c) 2018 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software and any + derivatives exclusively with Microchip products. It is your responsibility to comply with third party + license terms applicable to your use of third party software (including open source software) that + may accompany Microchip software. + + THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY + IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS + FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT + OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS + SOFTWARE. +*/ + +#ifndef EUSART1_H +#define EUSART1_H + +/** + Section: Included Files +*/ + +#include +#include +#include + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + Section: Macro Declarations +*/ + +#define EUSART1_DataReady (EUSART1_is_rx_ready()) + +/** + Section: Data Type Definitions +*/ + +typedef union { + struct { + unsigned perr : 1; + unsigned ferr : 1; + unsigned oerr : 1; + unsigned reserved : 5; + }; + uint8_t status; +}eusart1_status_t; + +/** + Section: Global variables + */ +extern volatile uint8_t eusart1TxBufferRemaining; +extern volatile uint8_t eusart1RxCount; + +/** + Section: EUSART1 APIs +*/ +extern void (*EUSART1_RxDefaultInterruptHandler)(void); + +/** + @Summary + Initialization routine that takes inputs from the EUSART1 GUI. + + @Description + This routine initializes the EUSART1 driver. + This routine must be called before any other EUSART1 routine is called. + + @Preconditions + None + + @Param + None + + @Returns + None + + @Comment + +*/ +void EUSART1_Initialize(void); + +/** + @Summary + Checks if the EUSART1 transmitter is ready to transmit data + + @Description + This routine checks if EUSART1 transmitter is ready + to accept and transmit data byte + + @Preconditions + EUSART1_Initialize() function should have been called + before calling this function. + EUSART1 transmitter should be enabled before calling + this function + + @Param + None + + @Returns + Status of EUSART1 transmitter + TRUE: EUSART1 transmitter is ready + FALSE: EUSART1 transmitter is not ready + + @Example + + void main(void) + { + volatile uint8_t rxData; + + // Initialize the device + SYSTEM_Initialize(); + + while(1) + { + // Logic to echo received data + if(EUSART1_is_rx_ready()) + { + rxData = UART1_Read(); + if(EUSART1_is_tx_ready()) + { + EUSART1Write(rxData); + } + } + } + } + +*/ +bool EUSART1_is_tx_ready(void); + +/** + @Summary + Checks if the EUSART1 receiver ready for reading + + @Description + This routine checks if EUSART1 receiver has received data + and ready to be read + + @Preconditions + EUSART1_Initialize() function should be called + before calling this function + EUSART1 receiver should be enabled before calling this + function + + @Param + None + + @Returns + Status of EUSART1 receiver + TRUE: EUSART1 receiver is ready for reading + FALSE: EUSART1 receiver is not ready for reading + + @Example + + void main(void) + { + volatile uint8_t rxData; + + // Initialize the device + SYSTEM_Initialize(); + + while(1) + { + // Logic to echo received data + if(EUSART1_is_rx_ready()) + { + rxData = UART1_Read(); + if(EUSART1_is_tx_ready()) + { + EUSART1_Write(rxData); + } + } + } + } + +*/ +bool EUSART1_is_rx_ready(void); + +/** + @Summary + Checks if EUSART1 data is transmitted + + @Description + This function return the status of transmit shift register + + @Preconditions + EUSART1_Initialize() function should be called + before calling this function + EUSART1 transmitter should be enabled and EUSART1_Write + should be called before calling this function + + @Param + None + + @Returns + Status of EUSART1 receiver + TRUE: Data completely shifted out if the USART shift register + FALSE: Data is not completely shifted out of the shift register + + @Example + + void main(void) + { + volatile uint8_t rxData; + + // Initialize the device + SYSTEM_Initialize(); + + while(1) + { + if(EUSART1_is_tx_ready()) + { + LED_0_SetHigh(); + EUSART1Write(rxData); + } + if(EUSART1_is_tx_done() + { + LED_0_SetLow(); + } + } + } + +*/ +bool EUSART1_is_tx_done(void); + +/** + @Summary + Gets the error status of the last read byte. + + @Description + This routine gets the error status of the last read byte. + + @Preconditions + EUSART1_Initialize() function should have been called + before calling this function. The returned value is only + updated after a read is called. + + @Param + None + + @Returns + the status of the last read byte + + @Example + + void main(void) + { + volatile uint8_t rxData; + volatile eusart1_status_t rxStatus; + + // Initialize the device + SYSTEM_Initialize(); + + // Enable the Global Interrupts + INTERRUPT_GlobalInterruptEnable(); + + while(1) + { + // Logic to echo received data + if(EUSART1_is_rx_ready()) + { + rxData = EUSART1_Read(); + rxStatus = EUSART1_get_last_status(); + if(rxStatus.ferr){ + LED_0_SetHigh(); + } + } + } + } + + */ +eusart1_status_t EUSART1_get_last_status(void); + +/** + @Summary + Read a byte of data from the EUSART1. + + @Description + This routine reads a byte of data from the EUSART1. + + @Preconditions + EUSART1_Initialize() function should have been called + before calling this function. The transfer status should be checked to see + if the receiver is not empty before calling this function. + + @Param + None + + @Returns + A data byte received by the driver. +*/ +uint8_t EUSART1_Read(void); + + /** + @Summary + Writes a byte of data to the EUSART1. + + @Description + This routine writes a byte of data to the EUSART1. + + @Preconditions + EUSART1_Initialize() function should have been called + before calling this function. The transfer status should be checked to see + if transmitter is not busy before calling this function. + + @Param + txData - Data byte to write to the EUSART1 + + @Returns + None +*/ +void EUSART1_Write(uint8_t txData); + + +/** + @Summary + Maintains the driver's receiver state machine and implements its ISR + + @Description + This routine is used to maintain the driver's internal receiver state + machine.This interrupt service routine is called when the state of the + receiver needs to be maintained in a non polled manner. + + @Preconditions + EUSART1_Initialize() function should have been called + for the ISR to execute correctly. + + @Param + None + + @Returns + None +*/ +void EUSART1_Receive_ISR(void); + +/** + @Summary + Maintains the driver's receiver state machine + + @Description + This routine is called by the receive state routine and is used to maintain + the driver's internal receiver state machine. It should be called by a custom + ISR to maintain normal behavior + + @Preconditions + EUSART1_Initialize() function should have been called + for the ISR to execute correctly. + + @Param + None + + @Returns + None +*/ +void EUSART1_RxDataHandler(void); + +/** + @Summary + Set EUSART1 Framing Error Handler + + @Description + This API sets the function to be called upon EUSART1 framing error + + @Preconditions + Initialize the EUSART1 before calling this API + + @Param + Address of function to be set as framing error handler + + @Returns + None +*/ +void EUSART1_SetFramingErrorHandler(void (* interruptHandler)(void)); + +/** + @Summary + Set EUSART1 Overrun Error Handler + + @Description + This API sets the function to be called upon EUSART1 overrun error + + @Preconditions + Initialize the EUSART1 module before calling this API + + @Param + Address of function to be set as overrun error handler + + @Returns + None +*/ +void EUSART1_SetOverrunErrorHandler(void (* interruptHandler)(void)); + +/** + @Summary + Set EUSART1 Error Handler + + @Description + This API sets the function to be called upon EUSART1 error + + @Preconditions + Initialize the EUSART1 module before calling this API + + @Param + Address of function to be set as error handler + + @Returns + None +*/ +void EUSART1_SetErrorHandler(void (* interruptHandler)(void)); + + +/** + @Summary + Sets the receive handler function to be called by the interrupt service + + @Description + Calling this function will set a new custom function that will be + called when the receive interrupt needs servicing. + + @Preconditions + EUSART1_Initialize() function should have been called + for the ISR to execute correctly. + + @Param + A pointer to the new function + + @Returns + None +*/ +void EUSART1_SetRxInterruptHandler(void (* interruptHandler)(void)); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif // EUSART1_H +/** + End of File +*/ diff --git a/mcc_generated_files/interrupt_manager.c b/mcc_generated_files/interrupt_manager.c new file mode 100644 index 0000000..dcd3f6b --- /dev/null +++ b/mcc_generated_files/interrupt_manager.c @@ -0,0 +1,83 @@ +/** + Generated Interrupt Manager Source File + + @Company: + Microchip Technology Inc. + + @File Name: + interrupt_manager.c + + @Summary: + This is the Interrupt Manager file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description: + This header file provides implementations for global interrupt handling. + For individual peripheral handlers please see the peripheral driver for + all modules selected in the GUI. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.04 + The generated drivers are tested against the following: + Compiler : XC8 2.36 and above or later + MPLAB : MPLAB X 6.00 +*/ + +/* + (c) 2018 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software and any + derivatives exclusively with Microchip products. It is your responsibility to comply with third party + license terms applicable to your use of third party software (including open source software) that + may accompany Microchip software. + + THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY + IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS + FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT + OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS + SOFTWARE. +*/ + +#include "interrupt_manager.h" +#include "mcc.h" + +void INTERRUPT_Initialize (void) +{ + // Disable Interrupt Priority Vectors (16CXXX Compatibility Mode) + RCONbits.IPEN = 0; +} + +void __interrupt() INTERRUPT_InterruptManager (void) +{ + // interrupt handler + if(INTCONbits.TMR0IE == 1 && INTCONbits.TMR0IF == 1) + { + TMR0_ISR(); + } + else if(INTCONbits.PEIE == 1) + { + if(PIE1bits.RC1IE == 1 && PIR1bits.RC1IF == 1) + { + EUSART1_RxDefaultInterruptHandler(); + } + else + { + //Unhandled Interrupt + } + } + else + { + //Unhandled Interrupt + } +} +/** + End of File +*/ diff --git a/mcc_generated_files/interrupt_manager.h b/mcc_generated_files/interrupt_manager.h new file mode 100644 index 0000000..62274b4 --- /dev/null +++ b/mcc_generated_files/interrupt_manager.h @@ -0,0 +1,115 @@ +/** + Generated Interrupt Manager Header File + + @Company: + Microchip Technology Inc. + + @File Name: + interrupt_manager.h + + @Summary: + This is the Interrupt Manager file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description: + This header file provides implementations for global interrupt handling. + For individual peripheral handlers please see the peripheral driver for + all modules selected in the GUI. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.03 + The generated drivers are tested against the following: + Compiler : XC8 2.36 and above or later + MPLAB : MPLAB X 6.00 +*/ + +/* + (c) 2018 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software and any + derivatives exclusively with Microchip products. It is your responsibility to comply with third party + license terms applicable to your use of third party software (including open source software) that + may accompany Microchip software. + + THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY + IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS + FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT + OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS + SOFTWARE. +*/ + +#ifndef INTERRUPT_MANAGER_H +#define INTERRUPT_MANAGER_H + + +/** + * @Param + none + * @Returns + none + * @Description + This macro will enable global interrupts. + * @Example + INTERRUPT_GlobalInterruptEnable(); + */ +#define INTERRUPT_GlobalInterruptEnable() (INTCONbits.GIE = 1) + +/** + * @Param + none + * @Returns + none + * @Description + This macro will disable global interrupts. + * @Example + INTERRUPT_GlobalInterruptDisable(); + */ +#define INTERRUPT_GlobalInterruptDisable() (INTCONbits.GIE = 0) +/** + * @Param + none + * @Returns + none + * @Description + This macro will enable peripheral interrupts. + * @Example + INTERRUPT_PeripheralInterruptEnable(); + */ +#define INTERRUPT_PeripheralInterruptEnable() (INTCONbits.PEIE = 1) + +/** + * @Param + none + * @Returns + none + * @Description + This macro will disable peripheral interrupts. + * @Example + INTERRUPT_PeripheralInterruptDisable(); + */ +#define INTERRUPT_PeripheralInterruptDisable() (INTCONbits.PEIE = 0) + +/** + * @Param + none + * @Returns + none + * @Description + Initializes PIC18 peripheral interrupt priorities; enables/disables priority vectors + * @Example + INTERRUPT_Initialize(); + */ +void INTERRUPT_Initialize (void); + +#endif // INTERRUPT_MANAGER_H +/** + End of File +*/ diff --git a/solar_panel.X/mcc_generated_files/mcc.c b/mcc_generated_files/mcc.c similarity index 96% rename from solar_panel.X/mcc_generated_files/mcc.c rename to mcc_generated_files/mcc.c index 00f5e92..e33f30d 100644 --- a/solar_panel.X/mcc_generated_files/mcc.c +++ b/mcc_generated_files/mcc.c @@ -50,11 +50,14 @@ void SYSTEM_Initialize(void) { + INTERRUPT_Initialize(); PIN_MANAGER_Initialize(); OSCILLATOR_Initialize(); + ADC_Initialize(); EPWM1_Initialize(); TMR2_Initialize(); - ADC_Initialize(); + TMR0_Initialize(); + EUSART1_Initialize(); } void OSCILLATOR_Initialize(void) diff --git a/solar_panel.X/mcc_generated_files/mcc.h b/mcc_generated_files/mcc.h similarity index 97% rename from solar_panel.X/mcc_generated_files/mcc.h rename to mcc_generated_files/mcc.h index 3e771aa..01e4f94 100644 --- a/solar_panel.X/mcc_generated_files/mcc.h +++ b/mcc_generated_files/mcc.h @@ -52,9 +52,12 @@ #include #include #include +#include "interrupt_manager.h" #include "epwm1.h" #include "tmr2.h" #include "adc.h" +#include "tmr0.h" +#include "eusart1.h" diff --git a/solar_panel.X/mcc_generated_files/pin_manager.c b/mcc_generated_files/pin_manager.c similarity index 99% rename from solar_panel.X/mcc_generated_files/pin_manager.c rename to mcc_generated_files/pin_manager.c index 0d327cb..4363a88 100644 --- a/solar_panel.X/mcc_generated_files/pin_manager.c +++ b/mcc_generated_files/pin_manager.c @@ -71,7 +71,7 @@ void PIN_MANAGER_Initialize(void) TRISG = 0xFF; TRISB = 0xFF; TRISH = 0xFF; - TRISC = 0xFB; + TRISC = 0xBB; TRISD = 0xFF; TRISJ = 0xFF; diff --git a/solar_panel.X/mcc_generated_files/pin_manager.h b/mcc_generated_files/pin_manager.h similarity index 91% rename from solar_panel.X/mcc_generated_files/pin_manager.h rename to mcc_generated_files/pin_manager.h index 47c5454..16dddbc 100644 --- a/solar_panel.X/mcc_generated_files/pin_manager.h +++ b/mcc_generated_files/pin_manager.h @@ -75,6 +75,14 @@ #define RC2_SetDigitalInput() do { TRISCbits.TRISC2 = 1; } while(0) #define RC2_SetDigitalOutput() do { TRISCbits.TRISC2 = 0; } while(0) +// get/set RC6 procedures +#define RC6_SetHigh() do { LATCbits.LATC6 = 1; } while(0) +#define RC6_SetLow() do { LATCbits.LATC6 = 0; } while(0) +#define RC6_Toggle() do { LATCbits.LATC6 = ~LATCbits.LATC6; } while(0) +#define RC6_GetValue() PORTCbits.RC6 +#define RC6_SetDigitalInput() do { TRISCbits.TRISC6 = 1; } while(0) +#define RC6_SetDigitalOutput() do { TRISCbits.TRISC6 = 0; } while(0) + // get/set voltage aliases #define voltage_TRIS TRISFbits.TRISF0 #define voltage_LAT LATFbits.LATF0 diff --git a/mcc_generated_files/tmr0.c b/mcc_generated_files/tmr0.c new file mode 100644 index 0000000..d2d9627 --- /dev/null +++ b/mcc_generated_files/tmr0.c @@ -0,0 +1,167 @@ +/** + TMR0 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + tmr0.c + + @Summary + This is the generated driver implementation file for the TMR0 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This source file provides APIs for TMR0. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.36 and above + MPLAB : MPLAB X 6.00 +*/ + +/* + (c) 2018 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software and any + derivatives exclusively with Microchip products. It is your responsibility to comply with third party + license terms applicable to your use of third party software (including open source software) that + may accompany Microchip software. + + THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY + IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS + FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT + OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS + SOFTWARE. +*/ + +/** + Section: Included Files +*/ + +#include +#include "tmr0.h" + +/** + Section: Global Variables Definitions +*/ + +void (*TMR0_InterruptHandler)(void); + +volatile uint16_t timer0ReloadVal; + +/** + Section: TMR0 APIs +*/ + + +void TMR0_Initialize(void) +{ + // Set TMR0 to the options selected in the User Interface + + //Enable 16bit timer mode before assigning value to TMR0H + T0CONbits.T08BIT = 0; + + // TMR0H 158; + TMR0H = 0x9E; + + // TMR0L 87; + TMR0L = 0x57; + + + // Load TMR0 value to the 16-bit reload variable + timer0ReloadVal = (uint16_t)((TMR0H << 8) | TMR0L); + + // Clear Interrupt flag before enabling the interrupt + INTCONbits.TMR0IF = 0; + + // Enabling TMR0 interrupt. + INTCONbits.TMR0IE = 1; + + // Set Default Interrupt Handler + TMR0_SetInterruptHandler(TMR0_DefaultInterruptHandler); + + // T0PS 1:2; T08BIT 16-bit; T0SE Increment_hi_lo; T0CS FOSC/4; TMR0ON enabled; PSA not_assigned; + T0CON = 0x98; +} + +void TMR0_StartTimer(void) +{ + // Start the Timer by writing to TMR0ON bit + T0CONbits.TMR0ON = 1; +} + +void TMR0_StopTimer(void) +{ + // Stop the Timer by writing to TMR0ON bit + T0CONbits.TMR0ON = 0; +} + +uint16_t TMR0_ReadTimer(void) +{ + uint16_t readVal; + uint8_t readValLow; + uint8_t readValHigh; + + readValLow = TMR0L; + readValHigh = TMR0H; + readVal = ((uint16_t)readValHigh << 8) + readValLow; + + return readVal; +} + +void TMR0_WriteTimer(uint16_t timerVal) +{ + // Write to the Timer0 register + TMR0H = timerVal >> 8; + TMR0L = (uint8_t) timerVal; +} + +void TMR0_Reload(void) +{ + // Write to the Timer0 register + TMR0H = timer0ReloadVal >> 8; + TMR0L = (uint8_t) timer0ReloadVal; +} + +void TMR0_ISR(void) +{ + + // clear the TMR0 interrupt flag + INTCONbits.TMR0IF = 0; + + // reload TMR0 + // Write to the Timer0 register + TMR0H = timer0ReloadVal >> 8; + TMR0L = (uint8_t) timer0ReloadVal; + + if(TMR0_InterruptHandler) + { + TMR0_InterruptHandler(); + } + + // add your TMR0 interrupt custom code +} + + +void TMR0_SetInterruptHandler(void (* InterruptHandler)(void)){ + TMR0_InterruptHandler = InterruptHandler; +} + +void TMR0_DefaultInterruptHandler(void){ + // add your TMR0 interrupt custom code + // or set custom function using TMR0_SetInterruptHandler() +} + +/** + End of File +*/ \ No newline at end of file diff --git a/mcc_generated_files/tmr0.h b/mcc_generated_files/tmr0.h new file mode 100644 index 0000000..38df85d --- /dev/null +++ b/mcc_generated_files/tmr0.h @@ -0,0 +1,356 @@ +/** + TMR0 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + tmr0.h + + @Summary + This is the generated header file for the TMR0 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for TMR0. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.36 and above + MPLAB : MPLAB X 6.00 +*/ + +/* + (c) 2018 Microchip Technology Inc. and its subsidiaries. + + Subject to your compliance with these terms, you may use Microchip software and any + derivatives exclusively with Microchip products. It is your responsibility to comply with third party + license terms applicable to your use of third party software (including open source software) that + may accompany Microchip software. + + THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER + EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY + IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS + FOR A PARTICULAR PURPOSE. + + IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, + INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND + WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP + HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO + THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL + CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT + OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS + SOFTWARE. +*/ + +#ifndef TMR0_H +#define TMR0_H + +/** + Section: Included Files +*/ + +#include +#include + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + + +/** + Section: TMR0 APIs +*/ + +/** + @Summary + Initializes the TMR0. + + @Description + This function initializes the TMR0 Registers. + This function must be called before any other TMR0 function is called. + + @Preconditions + None + + @Param + None + + @Returns + None + + @Comment + + + @Example + + main() + { + // Initialize TMR0 module + TMR0_Initialize(); + + // Do something else... + } + +*/ +void TMR0_Initialize(void); + +/** + @Summary + This function starts the TMR0. + + @Description + This function starts the TMR0 operation. + This function must be called after the initialization of TMR0. + + @Preconditions + Initialize the TMR0 before calling this function. + + @Param + None + + @Returns + None + + @Example + + // Initialize TMR0 module + + // Start TMR0 + TMR0_StartTimer(); + + // Do something else... + +*/ +void TMR0_StartTimer(void); + +/** + @Summary + This function stops the TMR0. + + @Description + This function stops the TMR0 operation. + This function must be called after the start of TMR0. + + @Preconditions + Initialize the TMR0 before calling this function. + + @Param + None + + @Returns + None + + @Example + + // Initialize TMR0 module + + // Start TMR0 + TMR0_StartTimer(); + + // Do something else... + + // Stop TMR0; + TMR0_StopTimer(); + +*/ +void TMR0_StopTimer(void); + + +/** + @Summary + Reads the 16 bits TMR0 register value. + + @Description + This function reads the 16 bits TMR0 register value and return it. + + @Preconditions + Initialize the TMR0 before calling this function. + + @Param + None + + @Returns + This function returns the 16 bits value of TMR0 register. + + @Example + + // Initialize TMR0 module + + // Start TMR0 + TMR0_StartTimer(); + + // Read the current value of TMR0 + if(0 == TMR0_ReadTimer()) + { + // Do something else... + + // Reload the TMR value + TMR0_Reload(); + } + +*/ +uint16_t TMR0_ReadTimer(void); + +/** + @Summary + Writes the 16 bits value to TMR0 register. + + @Description + This function writes the 16 bits value to TMR0 register. + This function must be called after the initialization of TMR0. + + @Preconditions + Initialize the TMR0 before calling this function. + + @Param + timerVal - Value to write into TMR0 register. + + @Returns + None + + @Example + + #define PERIOD 0x8000 + #define ZERO 0x0000 + + while(1) + { + //Read the TMR0 register + if(ZERO == TMR0_ReadTimer()) + { + // Do something else... + + // Write the TMR0 register + TMR0_WriteTimer(PERIOD); + } + + // Do something else... + } + +*/ +void TMR0_WriteTimer(uint16_t timerVal); + +/** + @Summary + Reload the 16 bits value to TMR0 register. + + @Description + This function reloads the 16 bit value to TMR0 register. + This function must be called to write initial value into TMR0 register. + + @Preconditions + Initialize the TMR0 before calling this function. + + @Param + None + + @Returns + None + + @Example + + while(1) + { + if(TMR0IF) + { + // Do something else... + + // clear the TMR0 interrupt flag + TMR0IF = 0; + + // Reload the initial value of TMR0 + TMR0_Reload(); + } + } + +*/ +void TMR0_Reload(void); + +/** + @Summary + Timer Interrupt Service Routine + + @Description + Timer Interrupt Service Routine is called by the Interrupt Manager. + + @Preconditions + Initialize the TMR0 module with interrupt before calling this isr. + + @Param + None + + @Returns + None + */ +void TMR0_ISR(void); + + +/** + @Summary + Set Timer Interrupt Handler + + @Description + This sets the function to be called during the ISR + + @Preconditions + Initialize the TMR0 module with interrupt before calling this. + + @Param + Address of function to be set + + @Returns + None +*/ + void TMR0_SetInterruptHandler(void (* InterruptHandler)(void)); + +/** + @Summary + Timer Interrupt Handler + + @Description + This is a function pointer to the function that will be called during the ISR + + @Preconditions + Initialize the TMR0 module with interrupt before calling this isr. + + @Param + None + + @Returns + None +*/ +extern void (*TMR0_InterruptHandler)(void); + +/** + @Summary + Default Timer Interrupt Handler + + @Description + This is the default Interrupt Handler function + + @Preconditions + Initialize the TMR0 module with interrupt before calling this isr. + + @Param + None + + @Returns + None +*/ +void TMR0_DefaultInterruptHandler(void); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif // TMR0_H +/** + End of File +*/ \ No newline at end of file diff --git a/solar_panel.X/mcc_generated_files/tmr2.c b/mcc_generated_files/tmr2.c similarity index 100% rename from solar_panel.X/mcc_generated_files/tmr2.c rename to mcc_generated_files/tmr2.c diff --git a/solar_panel.X/mcc_generated_files/tmr2.h b/mcc_generated_files/tmr2.h similarity index 100% rename from solar_panel.X/mcc_generated_files/tmr2.h rename to mcc_generated_files/tmr2.h diff --git a/solar_panel.X/measure.c b/measure.c similarity index 100% rename from solar_panel.X/measure.c rename to measure.c diff --git a/solar_panel.X/measure.h b/measure.h similarity index 100% rename from solar_panel.X/measure.h rename to measure.h diff --git a/solar_panel.X/modbus.c b/modbus.c similarity index 87% rename from solar_panel.X/modbus.c rename to modbus.c index 604747c..c6c8523 100644 --- a/solar_panel.X/modbus.c +++ b/modbus.c @@ -1,6 +1,6 @@ #include "modbus.h" #include "crc.h" -//#include "uart.h" +#include "uart.h" #include #include #include @@ -37,9 +37,11 @@ void modbus_timer(void) } -uint8_t modbus_analyse_and_answer(void) -{ +uint8_t modbus_analyse_and_answer(void) { // TODO -> complete the modbus analyse and answer + rx_buf[0] = 0; + + //sprintf(tx_buf, "%i", modbusAddress, ); } @@ -63,5 +65,5 @@ void modbus_send(uint8_t length) void modbus_init(uint8_t address) { modbusAddress = address; - // TODO -> configute timer for modbus usage + // TODO -> confikre timer for modbus usage } \ No newline at end of file diff --git a/solar_panel.X/modbus.h b/modbus.h similarity index 100% rename from solar_panel.X/modbus.h rename to modbus.h diff --git a/solar_panel.X/nbproject/Makefile-default.mk b/nbproject/Makefile-default.mk similarity index 68% rename from solar_panel.X/nbproject/Makefile-default.mk rename to nbproject/Makefile-default.mk index c9750c4..c184ead 100644 --- a/solar_panel.X/nbproject/Makefile-default.mk +++ b/nbproject/Makefile-default.mk @@ -30,12 +30,12 @@ ifeq ($(TYPE_IMAGE), DEBUG_RUN) IMAGE_TYPE=debug OUTPUT_SUFFIX=elf DEBUGGABLE_SUFFIX=elf -FINAL_IMAGE=${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +FINAL_IMAGE=${DISTDIR}/solar_panel.${IMAGE_TYPE}.${OUTPUT_SUFFIX} else IMAGE_TYPE=production OUTPUT_SUFFIX=hex DEBUGGABLE_SUFFIX=elf -FINAL_IMAGE=${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +FINAL_IMAGE=${DISTDIR}/solar_panel.${IMAGE_TYPE}.${OUTPUT_SUFFIX} endif ifeq ($(COMPARE_BUILD), true) @@ -57,17 +57,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE} DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} # Source Files Quoted if spaced -SOURCEFILES_QUOTED_IF_SPACED=lcd/lcd.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/pin_manager.c mcc_generated_files/adc.c main.c crc.c measure.c modbus.c mcc_generated_files/epwm1.c mcc_generated_files/tmr2.c +SOURCEFILES_QUOTED_IF_SPACED=lcd/lcd.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/pin_manager.c mcc_generated_files/adc.c mcc_generated_files/epwm1.c mcc_generated_files/tmr2.c mcc_generated_files/eusart1.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c main.c crc.c measure.c modbus.c uart.c # Object Files Quoted if spaced -OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/lcd/lcd.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/adc.p1 ${OBJECTDIR}/main.p1 ${OBJECTDIR}/crc.p1 ${OBJECTDIR}/measure.p1 ${OBJECTDIR}/modbus.p1 ${OBJECTDIR}/mcc_generated_files/epwm1.p1 ${OBJECTDIR}/mcc_generated_files/tmr2.p1 -POSSIBLE_DEPFILES=${OBJECTDIR}/lcd/lcd.p1.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d ${OBJECTDIR}/mcc_generated_files/adc.p1.d ${OBJECTDIR}/main.p1.d ${OBJECTDIR}/crc.p1.d ${OBJECTDIR}/measure.p1.d ${OBJECTDIR}/modbus.p1.d ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d +OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/lcd/lcd.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/adc.p1 ${OBJECTDIR}/mcc_generated_files/epwm1.p1 ${OBJECTDIR}/mcc_generated_files/tmr2.p1 ${OBJECTDIR}/mcc_generated_files/eusart1.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/main.p1 ${OBJECTDIR}/crc.p1 ${OBJECTDIR}/measure.p1 ${OBJECTDIR}/modbus.p1 ${OBJECTDIR}/uart.p1 +POSSIBLE_DEPFILES=${OBJECTDIR}/lcd/lcd.p1.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d ${OBJECTDIR}/mcc_generated_files/adc.p1.d ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d ${OBJECTDIR}/main.p1.d ${OBJECTDIR}/crc.p1.d ${OBJECTDIR}/measure.p1.d ${OBJECTDIR}/modbus.p1.d ${OBJECTDIR}/uart.p1.d # Object Files -OBJECTFILES=${OBJECTDIR}/lcd/lcd.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/adc.p1 ${OBJECTDIR}/main.p1 ${OBJECTDIR}/crc.p1 ${OBJECTDIR}/measure.p1 ${OBJECTDIR}/modbus.p1 ${OBJECTDIR}/mcc_generated_files/epwm1.p1 ${OBJECTDIR}/mcc_generated_files/tmr2.p1 +OBJECTFILES=${OBJECTDIR}/lcd/lcd.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/adc.p1 ${OBJECTDIR}/mcc_generated_files/epwm1.p1 ${OBJECTDIR}/mcc_generated_files/tmr2.p1 ${OBJECTDIR}/mcc_generated_files/eusart1.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/main.p1 ${OBJECTDIR}/crc.p1 ${OBJECTDIR}/measure.p1 ${OBJECTDIR}/modbus.p1 ${OBJECTDIR}/uart.p1 # Source Files -SOURCEFILES=lcd/lcd.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/pin_manager.c mcc_generated_files/adc.c main.c crc.c measure.c modbus.c mcc_generated_files/epwm1.c mcc_generated_files/tmr2.c +SOURCEFILES=lcd/lcd.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/pin_manager.c mcc_generated_files/adc.c mcc_generated_files/epwm1.c mcc_generated_files/tmr2.c mcc_generated_files/eusart1.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c main.c crc.c measure.c modbus.c uart.c @@ -88,7 +88,7 @@ FIXDEPS=fixDeps ifneq ($(INFORMATION_MESSAGE), ) @echo $(INFORMATION_MESSAGE) endif - ${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} + ${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/solar_panel.${IMAGE_TYPE}.${OUTPUT_SUFFIX} MP_PROCESSOR_OPTION=18F97J60 # ------------------------------------------------------------------------------------ @@ -134,6 +134,46 @@ ${OBJECTDIR}/mcc_generated_files/adc.p1: mcc_generated_files/adc.c nbproject/Ma @-${MV} ${OBJECTDIR}/mcc_generated_files/adc.d ${OBJECTDIR}/mcc_generated_files/adc.p1.d @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/adc.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ +${OBJECTDIR}/mcc_generated_files/epwm1.p1: mcc_generated_files/epwm1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/epwm1.p1 mcc_generated_files/epwm1.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/epwm1.d ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/tmr2.p1: mcc_generated_files/tmr2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/tmr2.p1 mcc_generated_files/tmr2.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/tmr2.d ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/eusart1.p1: mcc_generated_files/eusart1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/eusart1.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/eusart1.p1 mcc_generated_files/eusart1.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/eusart1.d ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1: mcc_generated_files/interrupt_manager.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 mcc_generated_files/interrupt_manager.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/tmr0.p1: mcc_generated_files/tmr0.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/tmr0.p1 mcc_generated_files/tmr0.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/tmr0.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + ${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/main.p1.d @@ -166,21 +206,13 @@ ${OBJECTDIR}/modbus.p1: modbus.c nbproject/Makefile-${CND_CONF}.mk @-${MV} ${OBJECTDIR}/modbus.d ${OBJECTDIR}/modbus.p1.d @${FIXDEPS} ${OBJECTDIR}/modbus.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ -${OBJECTDIR}/mcc_generated_files/epwm1.p1: mcc_generated_files/epwm1.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/mcc_generated_files" - @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d - @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1 - ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/epwm1.p1 mcc_generated_files/epwm1.c - @-${MV} ${OBJECTDIR}/mcc_generated_files/epwm1.d ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d - @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/mcc_generated_files/tmr2.p1: mcc_generated_files/tmr2.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/mcc_generated_files" - @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d - @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1 - ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/tmr2.p1 mcc_generated_files/tmr2.c - @-${MV} ${OBJECTDIR}/mcc_generated_files/tmr2.d ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d - @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ +${OBJECTDIR}/uart.p1: uart.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}" + @${RM} ${OBJECTDIR}/uart.p1.d + @${RM} ${OBJECTDIR}/uart.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=snap -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/uart.p1 uart.c + @-${MV} ${OBJECTDIR}/uart.d ${OBJECTDIR}/uart.p1.d + @${FIXDEPS} ${OBJECTDIR}/uart.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ else ${OBJECTDIR}/lcd/lcd.p1: lcd/lcd.c nbproject/Makefile-${CND_CONF}.mk @@ -223,6 +255,46 @@ ${OBJECTDIR}/mcc_generated_files/adc.p1: mcc_generated_files/adc.c nbproject/Ma @-${MV} ${OBJECTDIR}/mcc_generated_files/adc.d ${OBJECTDIR}/mcc_generated_files/adc.p1.d @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/adc.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ +${OBJECTDIR}/mcc_generated_files/epwm1.p1: mcc_generated_files/epwm1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/epwm1.p1 mcc_generated_files/epwm1.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/epwm1.d ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/tmr2.p1: mcc_generated_files/tmr2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/tmr2.p1 mcc_generated_files/tmr2.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/tmr2.d ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/eusart1.p1: mcc_generated_files/eusart1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/eusart1.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/eusart1.p1 mcc_generated_files/eusart1.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/eusart1.d ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/eusart1.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1: mcc_generated_files/interrupt_manager.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 mcc_generated_files/interrupt_manager.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/tmr0.p1: mcc_generated_files/tmr0.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/tmr0.p1 mcc_generated_files/tmr0.c + @-${MV} ${OBJECTDIR}/mcc_generated_files/tmr0.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d + @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ + ${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/main.p1.d @@ -255,21 +327,13 @@ ${OBJECTDIR}/modbus.p1: modbus.c nbproject/Makefile-${CND_CONF}.mk @-${MV} ${OBJECTDIR}/modbus.d ${OBJECTDIR}/modbus.p1.d @${FIXDEPS} ${OBJECTDIR}/modbus.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ -${OBJECTDIR}/mcc_generated_files/epwm1.p1: mcc_generated_files/epwm1.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/mcc_generated_files" - @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d - @${RM} ${OBJECTDIR}/mcc_generated_files/epwm1.p1 - ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/epwm1.p1 mcc_generated_files/epwm1.c - @-${MV} ${OBJECTDIR}/mcc_generated_files/epwm1.d ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d - @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/epwm1.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ - -${OBJECTDIR}/mcc_generated_files/tmr2.p1: mcc_generated_files/tmr2.c nbproject/Makefile-${CND_CONF}.mk - @${MKDIR} "${OBJECTDIR}/mcc_generated_files" - @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d - @${RM} ${OBJECTDIR}/mcc_generated_files/tmr2.p1 - ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/mcc_generated_files/tmr2.p1 mcc_generated_files/tmr2.c - @-${MV} ${OBJECTDIR}/mcc_generated_files/tmr2.d ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d - @${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr2.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ +${OBJECTDIR}/uart.p1: uart.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}" + @${RM} ${OBJECTDIR}/uart.p1.d + @${RM} ${OBJECTDIR}/uart.p1 + ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/uart.p1 uart.c + @-${MV} ${OBJECTDIR}/uart.d ${OBJECTDIR}/uart.p1.d + @${FIXDEPS} ${OBJECTDIR}/uart.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ endif @@ -288,15 +352,15 @@ endif # ------------------------------------------------------------------------------------ # Rules for buildStep: link ifeq ($(TYPE_IMAGE), DEBUG_RUN) -${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk +${DISTDIR}/solar_panel.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk @${MKDIR} ${DISTDIR} - ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.map -D__DEBUG=1 -mdebugger=snap -DXPRJ_default=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} - @${RM} ${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.hex + ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/solar_panel.${IMAGE_TYPE}.map -D__DEBUG=1 -mdebugger=snap -DXPRJ_default=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/solar_panel.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} + @${RM} ${DISTDIR}/solar_panel.${IMAGE_TYPE}.hex else -${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk +${DISTDIR}/solar_panel.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk @${MKDIR} ${DISTDIR} - ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.map -DXPRJ_default=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/solar_panel.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} + ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/solar_panel.${IMAGE_TYPE}.map -DXPRJ_default=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/solar_panel.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} endif diff --git a/solar_panel.X/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties similarity index 80% rename from solar_panel.X/nbproject/Makefile-genesis.properties rename to nbproject/Makefile-genesis.properties index 8b9d6e6..2dac5f0 100644 --- a/solar_panel.X/nbproject/Makefile-genesis.properties +++ b/nbproject/Makefile-genesis.properties @@ -1,14 +1,14 @@ # -#Fri Mar 03 13:24:37 CET 2023 +#Thu Mar 09 15:57:40 CET 2023 default.languagetoolchain.version=2.40 default.Pack.dfplocation=C\:\\Program Files\\Microchip\\MPLABX\\v6.00\\packs\\Microchip\\PIC18F-J_DFP\\1.5.44 conf.ids=default default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc8\\v2.40\\bin host.id=3awj-afwq-rl -configurations-xml=080b6b0e67e3ef40b76cf6528cd7e334 +configurations-xml=5e78976b44c48e5125d650f70012f653 default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b user-defined-mime-resolver-xml=none default.com-microchip-mplab-nbide-toolchain-xc8-XC8LanguageToolchain.md5=ab1e0737b447a24f7366e9fd8fe5a2f0 -proj.dir=C\:\\Users\\remi\\Downloads\\MCU\\solar_panel\\solar_panel.X +proj.dir=C\:\\Users\\remi\\MPLABXProjects\\solar_panel host.platform=windows diff --git a/solar_panel.X/nbproject/Makefile-impl.mk b/nbproject/Makefile-impl.mk similarity index 98% rename from solar_panel.X/nbproject/Makefile-impl.mk rename to nbproject/Makefile-impl.mk index f72cccd..a5b9960 100644 --- a/solar_panel.X/nbproject/Makefile-impl.mk +++ b/nbproject/Makefile-impl.mk @@ -24,7 +24,7 @@ CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} # Project Name -PROJECTNAME=solar_panel.X +PROJECTNAME=solar_panel # Active Configuration DEFAULTCONF=default diff --git a/solar_panel.X/nbproject/Makefile-local-default.mk b/nbproject/Makefile-local-default.mk similarity index 100% rename from solar_panel.X/nbproject/Makefile-local-default.mk rename to nbproject/Makefile-local-default.mk diff --git a/nbproject/Makefile-variables.mk b/nbproject/Makefile-variables.mk new file mode 100644 index 0000000..3b32a6c --- /dev/null +++ b/nbproject/Makefile-variables.mk @@ -0,0 +1,10 @@ +# +# Generated - do not edit! +# +# NOCDDL +# +CND_BASEDIR=`pwd` +# default configuration +CND_ARTIFACT_DIR_default=dist/default/production +CND_ARTIFACT_NAME_default=solar_panel.production.hex +CND_ARTIFACT_PATH_default=dist/default/production/solar_panel.production.hex diff --git a/solar_panel.X/nbproject/configurations.xml b/nbproject/configurations.xml similarity index 95% rename from solar_panel.X/nbproject/configurations.xml rename to nbproject/configurations.xml index 4e9670e..f6809b7 100644 --- a/solar_panel.X/nbproject/configurations.xml +++ b/nbproject/configurations.xml @@ -16,10 +16,14 @@ mcc_generated_files/adc.h mcc_generated_files/epwm1.h mcc_generated_files/tmr2.h + mcc_generated_files/interrupt_manager.h + mcc_generated_files/tmr0.h + mcc_generated_files/eusart1.h crc.h measure.h modbus.h + uart.h mcc_generated_files/adc.c mcc_generated_files/epwm1.c mcc_generated_files/tmr2.c + mcc_generated_files/eusart1.c + mcc_generated_files/interrupt_manager.c + mcc_generated_files/tmr0.c main.c crc.c measure.c modbus.c + uart.c + file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/modbus.c file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/measure.c - file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/measure.h + file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/modbus.h file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/main.c - file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/lcd/lcd.c - file:/C:/Program%20Files/Microchip/xc8/v2.40/pic/sources/c99/common/lomod.c + file:/C:/Program%20Files/Microchip/xc8/v2.40/pic/sources/c99/common/lwmod.c + file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/mcc_generated_files/interrupt_manager.c + file:/C:/Program%20Files/Microchip/xc8/v2.40/pic/sources/c99/common/aomod.c + file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/mcc_generated_files/tmr0.c + file:/C:/Users/remi/Downloads/MCU/solar_panel/solar_panel.X/mcc_generated_files/eusart1.c diff --git a/solar_panel.X/nbproject/project.xml b/nbproject/project.xml similarity index 100% rename from solar_panel.X/nbproject/project.xml rename to nbproject/project.xml diff --git a/solar_panel.X/old_main.c b/old_main.c similarity index 100% rename from solar_panel.X/old_main.c rename to old_main.c diff --git a/solar_panel.X/nbproject/Makefile-variables.mk b/solar_panel.X/nbproject/Makefile-variables.mk deleted file mode 100644 index dcae15c..0000000 --- a/solar_panel.X/nbproject/Makefile-variables.mk +++ /dev/null @@ -1,10 +0,0 @@ -# -# Generated - do not edit! -# -# NOCDDL -# -CND_BASEDIR=`pwd` -# default configuration -CND_ARTIFACT_DIR_default=dist/default/production -CND_ARTIFACT_NAME_default=solar_panel.X.production.hex -CND_ARTIFACT_PATH_default=dist/default/production/solar_panel.X.production.hex diff --git a/solar_panel.X/solar_panel.mc3 b/solar_panel.mc3 similarity index 89% rename from solar_panel.X/solar_panel.mc3 rename to solar_panel.mc3 index 7f6f718..0787f8a 100644 --- a/solar_panel.X/solar_panel.mc3 +++ b/solar_panel.mc3 @@ -9,6 +9,10 @@ ECCP1 class com.microchip.mcc.mcu8.modules.eccp.ECCP + + EUSART1 + class com.microchip.mcc.mcu8.modules.eusart.EUSART + INTERNAL OSCILLATOR class com.microchip.mcc.mcu8.systemManager.osc_v3.Osc @@ -29,6 +33,10 @@ System Module class com.microchip.mcc.mcu8.systemManager.SystemManager + + TMR0 + class com.microchip.mcc.mcu8.modules.tmr0_v1.TMR0 + TMR2 class com.microchip.mcc.mcu8.modules.tmr2_v3.TMR2 @@ -750,6 +758,378 @@ automatic_restart + + + enabled + + + + disabled + + + + RxDefaultInterruptHandler + + + + TxDefaultInterruptHandler + + + + 8 + + + + 8 + + + + 9600 + + + + Error: 0.006 % + + + + easysetup + + + + out + + + + enabled + + + + 25000000 + + + + eusart_interrupt + + + + disabled + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 0 + + + + 1 + + + + 1 + + + + 0 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 0 + + + + 1 + + + + 1 + + + + 0 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 8 + + + + 208 + + + + 2 + + + + 138 + + + + 0 + + + + 228 + + + + disabled + + + + no_overflow + + + + 16bit_generator + + + + not_inverted + + + + idle + + + + async_noninverted_sync_fallingedge + + + + disabled + + + + enabled + + + + disabled + + + + -1 + + + + 1 + + + + disabled + + + + enabled + + + + no_error + + + + no_error + + + + 9-bit + + + + 0 + + + + enabled + + + + disabled + + + + disabled + + + + disabled + + + + -1 + + + + 1 + + + + hi_speed + + + + master_mode + + + + sync_break_complete + + + + asynchronous + + + + TSR_empty + + + + 9-bit + + + + 0 + + + + enabled + @@ -4084,7 +4464,7 @@ - 251 + 187 @@ -4556,7 +4936,7 @@ - input + output @@ -5214,6 +5594,194 @@ OFF + + + 0 + + + + ISR + + + + 0.004 + + + + 25000000 + + + + 100000 + + + + 0.0104856 + + + + 0.00000016 + + + + enabled + + + + 1 + + + + 6250000 + + + + 0.004 + + + + disabled + + + + 0 + + + + enabled + + + + 6 + + + + 3 + + + + 0 + + + + 7 + + + + 4 + + + + 1 + + + + 5 + + + + 2 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 0 + + + + 1 + + + + 1 + + + + 0 + + + + 152 + + + + 158 + + + + 87 + + + + 1:2 + + + + not_assigned + + + + 16-bit + + + + enabled + + + + FOSC/4 + + + + Increment_hi_lo + + + + 158 + + + + 87 + + + + enabled + + + + disabled + + + + -1 + + + + 1 + 0 @@ -5402,12 +5970,24 @@ mcc_generated_files\mcc.h - 163eeab73ba2645b62407134fd74f192252b4a78fc740ce8959eebb831a39c2e + 52b447a5dc446f42c76e7a13f2403349cfdc20fc87fe880892a4f08ac41ec7ec mcc_generated_files\device_config.h e658a4cb6ac1c79b2a52ab2754ebce26d229cbe4bd8464122f3272d1e76e5881 + + mcc_generated_files\interrupt_manager.h + 5c311e57ab563c3fadc6e5c40b1e425436e9366c40e5772f46f393a9f8ed9d39 + + + mcc_generated_files\eusart1.h + cb7a354159e217ac3955f23cce6d01d65df54018be773e73654ec951df42a7e9 + + + mcc_generated_files\tmr0.h + 60487f4faa42d9fec7389ebc68c7a0a01ec6343892ddd4f936b3e776d62a07b0 + main.c 30e3e0e5956e494fcd566f1509f2f2bbc404d25265a77934114af7c9d1fcdbd7 @@ -5420,14 +6000,14 @@ mcc_generated_files\tmr2.h 9c49623fe191eb686818b525571464bbc0f83e271367728272f8bce53b917f55 - - mcc_generated_files\pin_manager.h - a29093f3260f4f5a4c9bb40015c68aed2bf30664c16fade6df5035f8d97e736e - mcc_generated_files\tmr2.c 05c23c08bae910023f51fd801fa4b4107358a34dbad1624e66d9a30249d1fe86 + + mcc_generated_files\pin_manager.h + 87e93cc6f9494828e660861178e9a299efbe16d73a441d92e3dca2a1cf6d54ed + mcc_generated_files\adc.h 58eb4471903133ed806f7edbfce9c3cc4e0af3536917c8f81ad1cbdb72d919fc @@ -5436,9 +6016,13 @@ mcc_generated_files\epwm1.h e1dacec839b43c4ec99f1710c3a7872ce32d2ea6dfe3856eb466e690b7ea75c9 + + mcc_generated_files\tmr0.c + f8a9d57b93e4810bdf2401ef043ce48c9d645ba81f2241dee96977286f6fb164 + mcc_generated_files\pin_manager.c - f23627897b323c5e312c50538e92449a15673b1b943138129b8c0214ac47a4d4 + 1f9236370706611180887eedcb54392c08476036ee99409ce0d9a1f39ef165fb mcc_generated_files\epwm1.c @@ -5450,7 +6034,15 @@ mcc_generated_files\mcc.c - eda682c043199d8627daf3584afc45a08bb3bb8526554f70c327ca6e3b587544 + 32ff3e2dadb25f5b8ccb3d70520f2b25f98e471a9bccb87758edd960e922e48c + + + mcc_generated_files\interrupt_manager.c + 9bec65c4415d6a1861d1d33f5aecfcf2c426de3ac2962449aec821b45c527ef2 + + + mcc_generated_files\eusart1.c + d8ed730bd093892491a853d1821faa71f3a66365e71b5728f5d34612524be6ec \ No newline at end of file diff --git a/uart.c b/uart.c new file mode 100644 index 0000000..8d8717e --- /dev/null +++ b/uart.c @@ -0,0 +1,7 @@ +#include "uart.h" + +void uart_send(uint8_t *tx_buf, uint8_t length){ + for (uint8_t i = 0; i < length; i++){ + EUSART1_Write(tx_buf[i]); + } +} diff --git a/uart.h b/uart.h new file mode 100644 index 0000000..57db5f4 --- /dev/null +++ b/uart.h @@ -0,0 +1,18 @@ +/* + * File: uart.h + * Author: remi + * + * Created on March 3, 2023, 3:23 PM + */ + +#ifndef UART_H +#define UART_H + +#include "mcc_generated_files/mcc.h" + +void uart_send(uint8_t *tx_buf, uint8_t length); + + + +#endif /* UART_H */ +