migration
This commit is contained in:
		
							
								
								
									
										120
									
								
								main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								main.c
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||||
|  | */ | ||||||
		Reference in New Issue
	
	Block a user