2023-03-09 15:06:17 +00:00
|
|
|
/**
|
|
|
|
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){
|
2023-03-10 12:23:14 +00:00
|
|
|
volatile uint8_t dummy;
|
|
|
|
dummy = EUSART1_Read();
|
|
|
|
|
|
|
|
|
2023-03-09 15:06:17 +00:00
|
|
|
TMR0_Reload();
|
|
|
|
TMR0_StartTimer();
|
|
|
|
}
|
|
|
|
|
|
|
|
void endFrame(void){
|
2023-03-10 12:23:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
INTCONbits.TMR0IF = 0;
|
2023-03-09 15:06:17 +00:00
|
|
|
TMR0_StopTimer();
|
|
|
|
modbus_analyse_and_answer();
|
|
|
|
|
|
|
|
// TODO
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
End of File
|
|
|
|
*/
|