55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
|
/************************************************************************//**
|
||
|
* \file main.c
|
||
|
* \brief Program main file for MODBUS controller
|
||
|
***************************************************************************/
|
||
|
|
||
|
|
||
|
#include <xc.h>
|
||
|
#include <stdint.h>
|
||
|
#include <stdbool.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#include "lcd/lcd.h"
|
||
|
#include "pwm.h"
|
||
|
#include "measure.h"
|
||
|
#include "modbus.h"
|
||
|
#include "uart.h"
|
||
|
|
||
|
#define _XTAL_FREQ 64000000L
|
||
|
/**
|
||
|
* Initialize clock, buttons, leds and interrupts
|
||
|
*/
|
||
|
void init_hw()
|
||
|
{
|
||
|
OSCCON3 = 0; // runs at 64MHz
|
||
|
LCD_Init(LCD_2x16);
|
||
|
adc_init();
|
||
|
modbus_init(0x80);
|
||
|
pwm_init();
|
||
|
uart_init();
|
||
|
// Interrupts configuration
|
||
|
PEIE = 1;
|
||
|
GIE = 1;
|
||
|
}
|
||
|
|
||
|
uint8_t tmpStr[30];
|
||
|
uint16_t u; ///< Voltage in milliovolts
|
||
|
uint16_t i; ///< Current in microamperes
|
||
|
uint16_t p; ///< Power in microwatts
|
||
|
|
||
|
uint16_t offset;
|
||
|
uint16_t pwm = 512;
|
||
|
|
||
|
void main(void)
|
||
|
{
|
||
|
init_hw();
|
||
|
|
||
|
LCD_2x16_WriteMsg((unsigned char *)"Welcome ! ", 0); // display on line 0
|
||
|
LCD_2x16_WriteMsg((unsigned char *)"*-*-*-*-*-*-*-*-", 1); // display on line 1
|
||
|
|
||
|
// TODO -> complete measure of current offset
|
||
|
|
||
|
while (true) {
|
||
|
// TODO -> complete the main loop
|
||
|
}
|
||
|
}
|