From a5315c03a703f7e54891990c01d5d59abd44138d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Thu, 9 Mar 2023 16:06:17 +0100 Subject: [PATCH] migration --- main.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 main.c diff --git a/main.c b/main.c new file mode 100644 index 0000000..de0ff6a --- /dev/null +++ b/main.c @@ -0,0 +1,120 @@ +/** + Generated Main Source File + + Company: + Microchip Technology Inc. + + File Name: + main.c + + Summary: + This is the main file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + Description: + This header file provides implementations for driver APIs for all modules selected in the GUI. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8 + Device : PIC18F97J60 + Driver Version : 2.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 "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 + SYSTEM_Initialize(); + EPWM1_LoadDutyValue(0); + + Lcd_Init(); + adc_init(); + modbus_init(0x80); + uint16_t offsetCurrent = 0; + offsetCurrent = measure_current(offsetCurrent); + + // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts + // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global and Peripheral Interrupts + // Use the following macros to: + + // Enable the Global Interrupts + INTERRUPT_GlobalInterruptEnable(); + + // Disable the Global Interrupts + //INTERRUPT_GlobalInterruptDisable(); + + // Enable the Peripheral Interrupts + INTERRUPT_PeripheralInterruptEnable(); + + // Disable the Peripheral Interrupts + //INTERRUPT_PeripheralInterruptDisable(); + uint16_t foo = 512; + EUSART1_SetRxInterruptHandler(resetTMR0); + TMR0_SetInterruptHandler(endFrame); + while (1) + { + foo = ++foo%1023; + EPWM1_LoadDutyValue(foo); + uint16_t valueV = measure_voltage(); + uint16_t valueI = measure_current(offsetCurrent); + + char msg[MAX_COL+1]; + //LCD_2x16_WriteCmd(0x01); // clear display + + sprintf(msg, "U = %04d [mV] ", valueV); + LCD_2x16_WriteMsg(msg,0); + + sprintf(msg, "I = %04d [uA] ", valueI); + LCD_2x16_WriteMsg(msg,1); + + } +} + + +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