diff --git a/host/python/codegen/analogvariables.py b/host/python/codegen/analogvariables.py index ae602088d24da9aa99e2516ed66375ab187919b1..659ad546bfd1b1eb429d7a6ff70e1ba8e3306d07 100644 --- a/host/python/codegen/analogvariables.py +++ b/host/python/codegen/analogvariables.py @@ -25,199 +25,142 @@ def voltage2channel_ADC(_voltage): return adc_channel -DA FARE: definisci una f.ne per invertire (in modo da scrivere meno codice) - -convert_chn2meas_DUL_BOARDTEMP -convert_meas2chn_DUL_BOARDTEMP - -convert_chn2meas_TEMP2 -convert_meas2chn_TEMP2 - -convert_chn2meas_TEMP1 -convert_meas2chn_TEMP1 - -convert_chn2meas_VEOC_RTN_I -convert_meas2chn_VEOC_RTN_I - -convert_chn2meas_VEOC_FWR_I -convert_meas2chn_VEOC_FWR_I - -convert_chn2meas_HYDRO_I -convert_meas2chn_HYDRO_I - -convert_chn2meas_INPUT_V -convert_meas2chn_INPUT_V - -convert_chn2meas_LBL_I -convert_meas2chn_LBL_I - -convert_chn2meas_GLRA_I -convert_meas2chn_GLRA_I - -convert_chn2meas_GLRB_I -convert_meas2chn_GLRB_I - -convert_chn2meas_PWB_I -convert_meas2chn_PWB_I - - - - -# -# def channel2current_MON_DU_I(_channel): -# """ -# Converter from ADC channel to current for an ACS724 sensor -# According to formula in schematics: -# DU_I_MON Voltage Range: -# @ Ta=25C to 150C & VCC=4.5V ... 4.9V -# Vout=1.21V ... 1.36V @ 0A -# Vout=1.78V ... 1.99V @ 600mA -# Vout=4.03V ... 4.51V @ 3A -# DU_I_Mon(A)=[#ch @ (I_Actual) - #ch @ (0A)]/K -# @ Ta=25C K(max)=215.2; K(min)=194.7 -# Recalculating using nominal component values (and ACS datasheet formula) @ VCC = 5V : -# Vadc = (89/33) * (0.5 + 0.4 * I) -# Thus: -# I = ((33/89) * Vadc - 0.5) / 0.4 -# """ -# return ((33. / 89.) * channel2voltage_ADC(_channel) - 0.5) / 0.4 -# -# -# def current2channel_MON_DU_I(_current): -# """ -# Converter from current to ADC channel for an ACS724 sensor -# see channel2current_MON_DU_I for comments -# """ -# return voltage2channel_ADC((89. / 33.) * (0.5 + 0.4 * _current)) -# -# -# def channel2voltage_MON_BPS_V(_channel): -# """ -# Converter from ADC channel to voltage read on the BPS_V_MON (as defined in schematic, or MON_BPS_V, as defined in code) -# According to formulas in schematics: -# BPS_V_MON Voltage Range: -# ~ 3.05V @ 300V -# ~ 3.63V @ 360V -# ~ 3.73V @ 375V -# ~ 3.83V @ 380V -# """ -# x0, y0 = voltage2channel_ADC(3.05), 300. -# x1, y1 = voltage2channel_ADC(3.83), 380. -# return linear_regression(x0, y0, x1, y1, _channel) -# -# -# def voltage2channel_MON_BPS_V(_voltage): -# """ -# Converter from voltage read on the BPS_V_MON (as defined in schematic, or MON_BPS_V, as defined in code) to ADC channel -# see channel2voltage_MON_BPS_V for comments -# """ -# x0, y0 = 300., voltage2channel_ADC(3.05) -# x1, y1 = 380., voltage2channel_ADC(3.83) -# return linear_regression(x0, y0, x1, y1, _voltage) -# -# -# def channel2current_MON_5V_I(_channel): -# """ -# Converter from ADC channel to current on the 5V -# According to formulas in schematics: -# 5V_I_Mon Vout Range: -# ~ 0mV @ 0mA -# ~ 1.8V @ 3A -# ~ 5.0V @ 8.3A (Full Scale) -# Sens=8.13mA/count -# """ -# x0, y0 = voltage2channel_ADC(0.), 0. -# x1, y1 = voltage2channel_ADC(0.5*5.), 0.5*8.3 -# return linear_regression(x0, y0, x1, y1, _channel) -# -# -# def current2channel_MON_5V_I(_current): -# """ -# Converter from current on the 5V to ADC channel -# see channel2current_MON_5V_I for comments -# """ -# x0, y0 = 0., voltage2channel_ADC(0.) -# x1, y1 = 0.5* 8.3, voltage2channel_ADC(0.5 * 5.) -# return linear_regression(x0, y0, x1, y1, _current) -# -# -# def channel2current_12V(_channel): -# """ -# Converter from ADC channel to current on one of the 12V lines -# LBL_I_Mon/HYDRO_I_Mon Vout Range: -# 1) @ Ta=-40C to 85C & VCC 3.2V ... 3.4V -# Vout=38mV ... 610mV @ 0mA -# Vout=3.23V ... 4.08V @ 800mA -# 2) @ Ta=25C & VCC 3.29V ... 3.31V -# Vout=206mV ... 370mV @ 0mA -# Vout=496mV ... 670mV @ 70mA -# Vout=3.52V ... 3.79V @ 800mA -# LBL_I_Mon(mA)=[#ch @ (I_Actual) - #ch @ (0mA)]*K -# @ Ta=25C K(max)=1.37; K(min)=1.15 -# We assume data for T=25C -# """ -# x0 = voltage2channel_ADC((0.206 + 0.370) / 2.) -# y0 = 0. -# x1 = voltage2channel_ADC((3.52 + 3.79) / 2.) -# y1 = 0.8 -# return linear_regression(x0, y0, x1, y1, _channel) -# -# -# def current2channel_12V(_current): -# """ -# Converter from current on one of the 12V lines to ADC channel -# see channel2current_12V for comments -# """ -# x0 = 0. -# y0 = voltage2channel_ADC((0.206 + 0.370) / 2.) -# x1 = 0.8 -# y1 = voltage2channel_ADC((3.52 + 3.79) / 2.) -# return linear_regression(x0, y0, x1, y1, _current) -# -# -# def channel2temperature_THEATSINK(_channel): -# """ -# Converter from ADC channel to heatsink temperature -# To be done. For now just use ADC voltage conversion -# """ -# return channel2voltage_ADC(_channel) -# -# -# def temperature2channel_THEATSINK(_temperature): -# """ -# Converter from heatsink temperature to ADC channel -# To be done. For now just use ADC voltage conversion -# """ -# return voltage2channel_ADC(_temperature) -# -# -# def channel2temperature_TBOARD(_channel): -# """ -# Converter from ADC channel to heatsink temperature -# From schematics: -# DUL Board Temperature -# Sensor Voltage Range: -# ~ 1.0V @ 0C -# ~ 1.5V @ 25C -# ~ 3.0V @ 100C -# """ -# x0 = voltage2channel_ADC(1.) -# y0 = 0. -# x1 = voltage2channel_ADC(3.) -# y1 = 100. -# return linear_regression(x0, y0, x1, y1, _channel) -# -# -# def temperature2channel_TBOARD(_temperature): -# """ -# Converter from ADC channel to heatsink temperature -# see channel2temperature_TBOARD for comments -# """ -# x0 = 0. -# y0 = voltage2channel_ADC(1.) -# x1 = 100. -# y1 = voltage2channel_ADC(3.) -# return linear_regression(x0, y0, x1, y1, _temperature) +def convert_chn2meas_DUL_BOARDTEMP(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 1.5V @ 25C + # ~ 3.0V @ 100C + v = channel2voltage_ADC(_chn) + v0 = 1.5; meas0 = 25.; v1 = 3.0; meas1 = 100. + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_TEMP2(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 0.7V@30C + # ~ 3.2V@100C + v = channel2voltage_ADC(_chn) + v0 = 0.7; meas0 = 30.; v1 = 3.2; meas1 = 100. + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_TEMP1(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # same as TEMP2 + return convert_chn2meas_TEMP2(_chn) + + +def convert_chn2meas_VEOC_RTN_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 1.36V@0A + # ~ 4.51V@3A + v = channel2voltage_ADC(_chn) + v0 = 1.36; meas0 = 0.; v1 = 4.51; meas1 = 3. + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_VEOC_FWR_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # same as VEOC_RTN_I + return convert_chn2meas_VEOC_RTN_I(_chn) + + +def convert_chn2meas_HYDRO_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 0.45V@40mA + # ~ 4.5V@400mA + v = channel2voltage_ADC(_chn) + v0 = 0.45; meas0 = 0.040; v1 = 4.5; meas1 = 0.4 + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_INPUT_V(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 1,3V@260V + # ~ 2.0V@400V + v = channel2voltage_ADC(_chn) + v0 = 1.3; meas0 = 260.; v1 = 2.; meas1 = 400. + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_LBL_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 0.45V@70mA + # ~ 4.5V@700mA + v = channel2voltage_ADC(_chn) + v0 = 0.45; meas0 = 0.070; v1 = 4.5; meas1 = 0.7 + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_GLRA_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 3.6V@5.3A + v = channel2voltage_ADC(_chn) + v0 = 0.; meas0 = 0.; v1 = 3.6; meas1 = 5.3 + return linear_regression(v0, meas0, v1, meas1, v) + + +def convert_chn2meas_GLRB_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # same as GLRA_I + return convert_chn2meas_GLRA_I(_chn) + + +def convert_chn2meas_PWB_I(_chn): + # from Rocco's "mapping" doc (vers. 15.02.2021): + # ~ 3.6V@2.6A + v = channel2voltage_ADC(_chn) + v0 = 0.; meas0 = 0.; v1 = 3.6; meas1 = 2.6 + return linear_regression(v0, meas0, v1, meas1, v) + + +def __convert_maes2chn_invert_relation(_chn2meas, _meas): + meas0 = _chn2meas(100) + meas1 = _chn2meas(5000) + return linear_regression(meas0, 100, meas1, 5000, _meas) + + +def convert_meas2chn_DUL_BOARDTEMP(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_DUL_BOARDTEMP, _meas) + + +def convert_meas2chn_TEMP2(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_TEMP2, _meas) + + +def convert_meas2chn_TEMP1(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_TEMP1, _meas) + + +def convert_meas2chn_VEOC_RTN_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_VEOC_RTN_I, _meas) + + +def convert_meas2chn_VEOC_FWR_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_VEOC_FWR_I, _meas) + + +def convert_meas2chn_HYDRO_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_HYDRO_I, _meas) + + +def convert_meas2chn_INPUT_V(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_INPUT_V, _meas) + + +def convert_meas2chn_LBL_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_LBL_I, _meas) + + +def convert_meas2chn_GLRA_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_GLRA_I, _meas) + + +def convert_meas2chn_GLRB_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_GLRB_I, _meas) + + +def convert_meas2chn_PWB_I(_meas): + return __convert_maes2chn_invert_relation(convert_chn2meas_PWB_I, _meas) class AnalogVariableList: @@ -396,7 +339,7 @@ class AnalogVariableList: alarm_fast=AnalogAlarmDescriptor( enum_index=alarm_enum_index+1, enable_default=False, - threshold_default=0.80, # TODO + threshold_default=0.35, # TODO timeout_default_ms=50. # TODO ) ) @@ -444,13 +387,13 @@ class AnalogVariableList: alarm_slow=AnalogAlarmDescriptor( enum_index=alarm_enum_index, enable_default=False, - threshold_default=0.60, # TODO + threshold_default=0.50, # TODO timeout_default_ms=100. # TODO ), alarm_fast=AnalogAlarmDescriptor( enum_index=alarm_enum_index+1, enable_default=False, - threshold_default=0.90, # TODO + threshold_default=0.60, # TODO timeout_default_ms=50. # TODO ) ) @@ -471,13 +414,13 @@ class AnalogVariableList: alarm_slow=AnalogAlarmDescriptor( enum_index=alarm_enum_index, enable_default=False, - threshold_default=12.0, # TODO + threshold_default=6.0, # TODO timeout_default_ms=100. # TODO ), alarm_fast=AnalogAlarmDescriptor( enum_index=alarm_enum_index+1, enable_default=False, - threshold_default=12.0, # TODO + threshold_default=6.0, # TODO timeout_default_ms=100. # TODO ) ) @@ -498,13 +441,13 @@ class AnalogVariableList: alarm_slow=AnalogAlarmDescriptor( enum_index=alarm_enum_index, enable_default=False, - threshold_default=12.0, # TODO + threshold_default=6.0, # TODO timeout_default_ms=100. # TODO ), alarm_fast=AnalogAlarmDescriptor( enum_index=alarm_enum_index+1, enable_default=False, - threshold_default=12.0, # TODO + threshold_default=6.0, # TODO timeout_default_ms=100. # TODO ) ) diff --git a/host/python/codegen/output/templates/alarm_callbacks.tpl.c b/host/python/codegen/output/templates/alarm_callbacks.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..30cb7f1f1dfa28344c47a6a85178d8b752867045 --- /dev/null +++ b/host/python/codegen/output/templates/alarm_callbacks.tpl.c @@ -0,0 +1,120 @@ +// Auto-generated template file: alarm_callbacks.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + +#include "generated/sources/variables.h" + +// Callback function for alarm on analog variable MON_DUL_BOARDTEMP (DUL board temperature sensor) +void alarm_MON_DUL_BOARDTEMP() { + // TODO implement auto-generated callback function alarm_MON_DUL_BOARDTEMP +} + +// Callback function for alarm on analog variable MON_TEMP2 (VICOR2 Heatsink (connector J12) temperature sensor signal acquisition) +void alarm_MON_TEMP2() { + // TODO implement auto-generated callback function alarm_MON_TEMP2 +} + +// Callback function for alarm on analog variable MON_TEMP1 (VICOR1 Heatsink (connector J1) temperature sensor signal acquisition ) +void alarm_MON_TEMP1() { + // TODO implement auto-generated callback function alarm_MON_TEMP1 +} + +// Callback function for alarm on analog variable MON_VEOC_RTN_I (DU backbone return current sensor signal acquisition ) +void alarm_MON_VEOC_RTN_I() { + // TODO implement auto-generated callback function alarm_MON_VEOC_RTN_I +} + +// Callback function for alarm on analog variable MON_VEOC_FWR_I (DU backbone forward current sensor signal acquisition ) +void alarm_MON_VEOC_FWR_I() { + // TODO implement auto-generated callback function alarm_MON_VEOC_FWR_I +} + +// Callback function for alarm on analog variable MON_HYDRO_I (HYDRO current sensor signal acquisition ) +void alarm_MON_HYDRO_I() { + // TODO implement auto-generated callback function alarm_MON_HYDRO_I +} + +// Callback function for alarm on analog variable MON_INPUT_V (Main Input Line voltage sensor signal acquisition ) +void alarm_MON_INPUT_V() { + // TODO implement auto-generated callback function alarm_MON_INPUT_V +} + +// Callback function for alarm on analog variable MON_LBL_I (LBL current sensor signal acquisition ) +void alarm_MON_LBL_I() { + // TODO implement auto-generated callback function alarm_MON_LBL_I +} + +// Callback function for alarm on analog variable MON_GLRA_I (GLENAIR-A current sensor signal acquisition) +void alarm_MON_GLRA_I() { + // TODO implement auto-generated callback function alarm_MON_GLRA_I +} + +// Callback function for alarm on analog variable MON_GLRB_I (GLENAIR-B current sensor signal acquisition) +void alarm_MON_GLRB_I() { + // TODO implement auto-generated callback function alarm_MON_GLRB_I +} + +// Callback function for alarm on analog variable MON_PWB_I (POWER BOARD current sensor signal acquisition) +void alarm_MON_PWB_I() { + // TODO implement auto-generated callback function alarm_MON_PWB_I +} + +// Callback function for alarm on analog variable FLAG_DUL_ALARMPOS1 (DUL current limiting on VEOC direct alarm 1) +void alarm_FLAG_DUL_ALARMPOS1() { + // TODO implement auto-generated callback function alarm_FLAG_DUL_ALARMPOS1 +} + +// Callback function for alarm on analog variable FLAG_DUL_ALARMPOS2 (DUL current limiting on VEOC direct alarm 2) +void alarm_FLAG_DUL_ALARMPOS2() { + // TODO implement auto-generated callback function alarm_FLAG_DUL_ALARMPOS2 +} + +// Callback function for alarm on analog variable FLAG_DUL_ALARMNEG1 (DUL current limiting on VEOC return alarm 1) +void alarm_FLAG_DUL_ALARMNEG1() { + // TODO implement auto-generated callback function alarm_FLAG_DUL_ALARMNEG1 +} + +// Callback function for alarm on analog variable FLAG_DUL_ALARMNEG2 (DUL current limiting on VEOC return alarm 2) +void alarm_FLAG_DUL_ALARMNEG2() { + // TODO implement auto-generated callback function alarm_FLAG_DUL_ALARMNEG2 +} + +// Callback function for alarm on analog variable FLAG_HYDRO_PWR_FAULT (Fault status acquisition of 12V ISO HYDRO power line) +void alarm_FLAG_HYDRO_PWR_FAULT() { + // TODO implement auto-generated callback function alarm_FLAG_HYDRO_PWR_FAULT +} + +// Callback function for alarm on analog variable FLAG_LBL_PWR_FAULT (Fault status acquisition of 12V ISO LBL power line) +void alarm_FLAG_LBL_PWR_FAULT() { + // TODO implement auto-generated callback function alarm_FLAG_LBL_PWR_FAULT +} + +// Callback function for alarm on analog variable FLAG_GLRA_FAULT (Fault status acquisition of 12V GLENAIR-A power line) +void alarm_FLAG_GLRA_FAULT() { + // TODO implement auto-generated callback function alarm_FLAG_GLRA_FAULT +} + +// Callback function for alarm on analog variable FLAG_GLRB_FAULT (Fault status acquisition of 12V GLENAIR-B power line) +void alarm_FLAG_GLRB_FAULT() { + // TODO implement auto-generated callback function alarm_FLAG_GLRB_FAULT +} + +// Callback function for alarm on analog variable FLAG_POWERBOARD_FAULT (Fault status acquisition of 12V POWER BOARD power line) +void alarm_FLAG_POWERBOARD_FAULT() { + // TODO implement auto-generated callback function alarm_FLAG_POWERBOARD_FAULT +} + +// Callback function for alarm on analog variable FLAG_GLRA_GOOD (Power good status acquisition of 12V GLENAIR-A power line) +void alarm_FLAG_GLRA_GOOD() { + // TODO implement auto-generated callback function alarm_FLAG_GLRA_GOOD +} + +// Callback function for alarm on analog variable FLAG_GLRB_GOOD (Power good status acquisition of 12V GLENAIR-B power line) +void alarm_FLAG_GLRB_GOOD() { + // TODO implement auto-generated callback function alarm_FLAG_GLRB_GOOD +} + +// Callback function for alarm on analog variable FLAG_POWERBOARD_GOOD (Power good status acquisition of 12V POWER BOARD power line) +void alarm_FLAG_POWERBOARD_GOOD() { + // TODO implement auto-generated callback function alarm_FLAG_POWERBOARD_GOOD +} + diff --git a/host/python/codegen/output/templates/commands/command_ALARM_ENABLE.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_ENABLE.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..76df87c3578823d72abd588d73ba74b0a412e0e7 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_ENABLE.tpl.c @@ -0,0 +1,48 @@ +// Auto-generated template file: command_ALARM_ENABLE.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_ENABLE(void) { + // Command: ALARM_ENABLE + // Description: Enable or disable one of the alarms. Can be used to get the current enable status without changing it (see request payload field) + // + // Request code: CMDCODE_ALARM_ENABLE_REQ + // Response code: CMDCODE_ALARM_ENABLE_REQ + // Request payload (length in bytes is 2): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // field #1 (1 byte) [type: enum_enablestate_nc_t] : ENABLESTATE_NC (Enable state) + // Response payload (length in bytes is 2): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // field #1 (1 byte) [type: enum_enablestate_t] : ENABLESTATE (Enable state) + + // Auto-generated section: request payload fields reading + enum_alarm_number_t req_alarm_number = (enum_alarm_number_t)communication_request_payload_retrieve_uint8_t(); + enum_enablestate_nc_t req_enablestate_nc = (enum_enablestate_nc_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number + if((uint8_t)req_alarm_number < (uint8_t)enum_alarm_number_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number > (uint8_t)enum_alarm_number_t_max) return ERR_RANGE; + // checking range for enum field req_enablestate_nc + if((uint8_t)req_enablestate_nc < (uint8_t)enum_enablestate_nc_t_min) return ERR_RANGE; + if((uint8_t)req_enablestate_nc > (uint8_t)enum_enablestate_nc_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_ENABLE + + // TODO: assign response field ALARM_NUMBER in command ALARM_ENABLE callback + enum_alarm_number_t resp_alarm_number = -1; + + // TODO: assign response field ENABLESTATE in command ALARM_ENABLE callback + enum_enablestate_t resp_enablestate = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_alarm_number); + communication_response_payload_append_uint8_t((uint8_t)resp_enablestate); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_FIRECOUNT_GET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_FIRECOUNT_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..7e76e1f2f1de4321d03e61c14bf51636fb4e7cbe --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_FIRECOUNT_GET.tpl.c @@ -0,0 +1,43 @@ +// Auto-generated template file: command_ALARM_FIRECOUNT_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_FIRECOUNT_GET(void) { + // Command: ALARM_FIRECOUNT_GET + // Description: Get the current fire counter of one alarm + // + // Request code: CMDCODE_ALARM_FIRECOUNT_GET_REQ + // Response code: CMDCODE_ALARM_FIRECOUNT_GET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // Response payload (length in bytes is 3): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // field #1 (2 bytes) [type: uint16_t ] : FIRECOUNT (Fire count value) + + // Auto-generated section: request payload fields reading + enum_alarm_number_t req_alarm_number = (enum_alarm_number_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number + if((uint8_t)req_alarm_number < (uint8_t)enum_alarm_number_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number > (uint8_t)enum_alarm_number_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_FIRECOUNT_GET + + // TODO: assign response field ALARM_NUMBER in command ALARM_FIRECOUNT_GET callback + enum_alarm_number_t resp_alarm_number = -1; + + // TODO: assign response field FIRECOUNT in command ALARM_FIRECOUNT_GET callback + uint16_t resp_firecount = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_alarm_number); + communication_response_payload_append_uint16_t((uint16_t)resp_firecount); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_FIRED_GET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_FIRED_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..9d96d1179a46ac4d755c00da540ec2c776dbb041 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_FIRED_GET.tpl.c @@ -0,0 +1,43 @@ +// Auto-generated template file: command_ALARM_FIRED_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_FIRED_GET(void) { + // Command: ALARM_FIRED_GET + // Description: Get the has-fired flag of one alarm (or all alarms OR-ed) + // + // Request code: CMDCODE_ALARM_FIRED_GET_REQ + // Response code: CMDCODE_ALARM_FIRED_GET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_ext_t] : ALARM_NUMBER_EXT (Alarm number) + // Response payload (length in bytes is 2): + // field #0 (1 byte) [type: enum_alarm_number_ext_t] : ALARM_NUMBER_EXT (Alarm number) + // field #1 (1 byte) [type: enum_firedstate_t] : FIREDSTATE (Fired state) + + // Auto-generated section: request payload fields reading + enum_alarm_number_ext_t req_alarm_number_ext = (enum_alarm_number_ext_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number_ext + if((uint8_t)req_alarm_number_ext < (uint8_t)enum_alarm_number_ext_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number_ext > (uint8_t)enum_alarm_number_ext_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_FIRED_GET + + // TODO: assign response field ALARM_NUMBER_EXT in command ALARM_FIRED_GET callback + enum_alarm_number_ext_t resp_alarm_number_ext = -1; + + // TODO: assign response field FIREDSTATE in command ALARM_FIRED_GET callback + enum_firedstate_t resp_firedstate = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_alarm_number_ext); + communication_response_payload_append_uint8_t((uint8_t)resp_firedstate); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_FIRED_RESET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_FIRED_RESET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..bce1c1da9791933a9b93f6978c80b6151770f831 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_FIRED_RESET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_ALARM_FIRED_RESET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_FIRED_RESET(void) { + // Command: ALARM_FIRED_RESET + // Description: Reset the has-fired flag of one alarm (or all alarms) + // + // Request code: CMDCODE_ALARM_FIRED_RESET_REQ + // Response code: CMDCODE_ALARM_FIRED_RESET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_all_t] : ALARM_NUMBER_ALL (Alarm number) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_alarm_number_all_t req_alarm_number_all = (enum_alarm_number_all_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number_all + if((uint8_t)req_alarm_number_all < (uint8_t)enum_alarm_number_all_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number_all > (uint8_t)enum_alarm_number_all_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_FIRED_RESET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_MAXCOUNT_GET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_MAXCOUNT_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..35036709abb0d2f2cf60da533c6eb13066522015 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_MAXCOUNT_GET.tpl.c @@ -0,0 +1,43 @@ +// Auto-generated template file: command_ALARM_MAXCOUNT_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_MAXCOUNT_GET(void) { + // Command: ALARM_MAXCOUNT_GET + // Description: Get the maximum counter value reached by one of the alarms (use command ALARM_MAXCOUNT_RESET to reset it to zero) + // + // Request code: CMDCODE_ALARM_MAXCOUNT_GET_REQ + // Response code: CMDCODE_ALARM_MAXCOUNT_GET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // Response payload (length in bytes is 3): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // field #1 (2 bytes) [type: uint16_t ] : MAXCOUNT (Max count value) + + // Auto-generated section: request payload fields reading + enum_alarm_number_t req_alarm_number = (enum_alarm_number_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number + if((uint8_t)req_alarm_number < (uint8_t)enum_alarm_number_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number > (uint8_t)enum_alarm_number_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_MAXCOUNT_GET + + // TODO: assign response field ALARM_NUMBER in command ALARM_MAXCOUNT_GET callback + enum_alarm_number_t resp_alarm_number = -1; + + // TODO: assign response field MAXCOUNT in command ALARM_MAXCOUNT_GET callback + uint16_t resp_maxcount = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_alarm_number); + communication_response_payload_append_uint16_t((uint16_t)resp_maxcount); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_MAXCOUNT_RESET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_MAXCOUNT_RESET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..11040762e45e03828a801c99190c2f8d7e41178c --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_MAXCOUNT_RESET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_ALARM_MAXCOUNT_RESET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_MAXCOUNT_RESET(void) { + // Command: ALARM_MAXCOUNT_RESET + // Description: Reset the maximum counter value of one alarm (or all alarms) + // + // Request code: CMDCODE_ALARM_MAXCOUNT_RESET_REQ + // Response code: CMDCODE_ALARM_MAXCOUNT_RESET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_all_t] : ALARM_NUMBER_ALL (Alarm number) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_alarm_number_all_t req_alarm_number_all = (enum_alarm_number_all_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number_all + if((uint8_t)req_alarm_number_all < (uint8_t)enum_alarm_number_all_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number_all > (uint8_t)enum_alarm_number_all_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_MAXCOUNT_RESET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_THRESHOLD_GET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_THRESHOLD_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..3c3cc61d8f8c4f302a67ecfa005fc7de4fb7884f --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_THRESHOLD_GET.tpl.c @@ -0,0 +1,43 @@ +// Auto-generated template file: command_ALARM_THRESHOLD_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_THRESHOLD_GET(void) { + // Command: ALARM_THRESHOLD_GET + // Description: Get the threshold value of one analog alarm + // + // Request code: CMDCODE_ALARM_THRESHOLD_GET_REQ + // Response code: CMDCODE_ALARM_THRESHOLD_GET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_analog_t] : ALARM_NUMBER_ANALOG (Alarm number) + // Response payload (length in bytes is 3): + // field #0 (1 byte) [type: enum_alarm_number_analog_t] : ALARM_NUMBER_ANALOG (Alarm number) + // field #1 (2 bytes) [type: uint16_t ] : THRESHOLD (Threshold value) + + // Auto-generated section: request payload fields reading + enum_alarm_number_analog_t req_alarm_number_analog = (enum_alarm_number_analog_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number_analog + if((uint8_t)req_alarm_number_analog < (uint8_t)enum_alarm_number_analog_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number_analog > (uint8_t)enum_alarm_number_analog_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_THRESHOLD_GET + + // TODO: assign response field ALARM_NUMBER_ANALOG in command ALARM_THRESHOLD_GET callback + enum_alarm_number_analog_t resp_alarm_number_analog = -1; + + // TODO: assign response field THRESHOLD in command ALARM_THRESHOLD_GET callback + uint16_t resp_threshold = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_alarm_number_analog); + communication_response_payload_append_uint16_t((uint16_t)resp_threshold); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_THRESHOLD_SET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_THRESHOLD_SET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..df47853997b5276fb85a8c3bc63ca614ada4d109 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_THRESHOLD_SET.tpl.c @@ -0,0 +1,35 @@ +// Auto-generated template file: command_ALARM_THRESHOLD_SET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_THRESHOLD_SET(void) { + // Command: ALARM_THRESHOLD_SET + // Description: Set the threshold value of one analog alarm + // + // Request code: CMDCODE_ALARM_THRESHOLD_SET_REQ + // Response code: CMDCODE_ALARM_THRESHOLD_SET_REQ + // Request payload (length in bytes is 3): + // field #0 (1 byte) [type: enum_alarm_number_analog_t] : ALARM_NUMBER_ANALOG (Alarm number) + // field #1 (2 bytes) [type: uint16_t ] : THRESHOLD (Threshold value) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_alarm_number_analog_t req_alarm_number_analog = (enum_alarm_number_analog_t)communication_request_payload_retrieve_uint8_t(); + uint16_t req_threshold = (uint16_t)communication_request_payload_retrieve_uint16_t(); + // checking range for enum field req_alarm_number_analog + if((uint8_t)req_alarm_number_analog < (uint8_t)enum_alarm_number_analog_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number_analog > (uint8_t)enum_alarm_number_analog_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_THRESHOLD_SET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_TIMEOUT_GET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_TIMEOUT_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..3756e7502cc527c861ee75b187e8f3eb2be28cfb --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_TIMEOUT_GET.tpl.c @@ -0,0 +1,43 @@ +// Auto-generated template file: command_ALARM_TIMEOUT_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_TIMEOUT_GET(void) { + // Command: ALARM_TIMEOUT_GET + // Description: Get the timeout value of one alarm + // + // Request code: CMDCODE_ALARM_TIMEOUT_GET_REQ + // Response code: CMDCODE_ALARM_TIMEOUT_GET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // Response payload (length in bytes is 3): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // field #1 (2 bytes) [type: uint16_t ] : TIMEOUT (Timeout value) + + // Auto-generated section: request payload fields reading + enum_alarm_number_t req_alarm_number = (enum_alarm_number_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_alarm_number + if((uint8_t)req_alarm_number < (uint8_t)enum_alarm_number_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number > (uint8_t)enum_alarm_number_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_TIMEOUT_GET + + // TODO: assign response field ALARM_NUMBER in command ALARM_TIMEOUT_GET callback + enum_alarm_number_t resp_alarm_number = -1; + + // TODO: assign response field TIMEOUT in command ALARM_TIMEOUT_GET callback + uint16_t resp_timeout = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_alarm_number); + communication_response_payload_append_uint16_t((uint16_t)resp_timeout); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ALARM_TIMEOUT_SET.tpl.c b/host/python/codegen/output/templates/commands/command_ALARM_TIMEOUT_SET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..1c11fa6f0811831e325eea1d015f86ff77f12f55 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ALARM_TIMEOUT_SET.tpl.c @@ -0,0 +1,35 @@ +// Auto-generated template file: command_ALARM_TIMEOUT_SET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ALARM_TIMEOUT_SET(void) { + // Command: ALARM_TIMEOUT_SET + // Description: Set the timeout of one alarm + // + // Request code: CMDCODE_ALARM_TIMEOUT_SET_REQ + // Response code: CMDCODE_ALARM_TIMEOUT_SET_REQ + // Request payload (length in bytes is 3): + // field #0 (1 byte) [type: enum_alarm_number_t] : ALARM_NUMBER (Alarm number) + // field #1 (2 bytes) [type: uint16_t ] : TIMEOUT (Timeout value) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_alarm_number_t req_alarm_number = (enum_alarm_number_t)communication_request_payload_retrieve_uint8_t(); + uint16_t req_timeout = (uint16_t)communication_request_payload_retrieve_uint16_t(); + // checking range for enum field req_alarm_number + if((uint8_t)req_alarm_number < (uint8_t)enum_alarm_number_t_min) return ERR_RANGE; + if((uint8_t)req_alarm_number > (uint8_t)enum_alarm_number_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ALARM_TIMEOUT_SET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_BOARDTIME.tpl.c b/host/python/codegen/output/templates/commands/command_BOARDTIME.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..eaab7e8e96cb1e8e5ca5482f97c608b843a5527c --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_BOARDTIME.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_BOARDTIME.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_BOARDTIME(void) { + // Command: BOARDTIME + // Description: Time since last reset + // + // Request code: CMDCODE_BOARDTIME_REQ + // Response code: CMDCODE_BOARDTIME_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 4): + // field #0 (4 bytes) [type: uint32_t ] : SECONDS (Seconds since reset) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_BOARDTIME + + // TODO: assign response field SECONDS in command BOARDTIME callback + uint32_t resp_seconds = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint32_t((uint32_t)resp_seconds); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ECHO1.tpl.c b/host/python/codegen/output/templates/commands/command_ECHO1.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..49dbdd653bafae6b4ed1ad700589c015b9f2a0f2 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ECHO1.tpl.c @@ -0,0 +1,35 @@ +// Auto-generated template file: command_ECHO1.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ECHO1(void) { + // Command: ECHO1 + // Description: Echo (1 byte) + // + // Request code: CMDCODE_ECHO1_REQ + // Response code: CMDCODE_ECHO1_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: uint8_t ] : VALUE (Echoed byte) + // Response payload (length in bytes is 1): + // field #0 (1 byte) [type: uint8_t ] : VALUE (Echoed byte) + + // Auto-generated section: request payload fields reading + uint8_t req_value = (uint8_t)communication_request_payload_retrieve_uint8_t(); + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ECHO1 + + // TODO: assign response field VALUE in command ECHO1 callback + uint8_t resp_value = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_value); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ECHO32.tpl.c b/host/python/codegen/output/templates/commands/command_ECHO32.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..dae3401d38649599661f3f25d5a8f483688d1c2b --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ECHO32.tpl.c @@ -0,0 +1,252 @@ +// Auto-generated template file: command_ECHO32.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ECHO32(void) { + // Command: ECHO32 + // Description: Echo (32 bytes) + // + // Request code: CMDCODE_ECHO32_REQ + // Response code: CMDCODE_ECHO32_REQ + // Request payload (length in bytes is 32): + // field #0 (1 byte) [type: uint8_t ] : VALUE_0 (Echoed byte) + // field #1 (1 byte) [type: uint8_t ] : VALUE_1 (Echoed byte) + // field #2 (1 byte) [type: uint8_t ] : VALUE_2 (Echoed byte) + // field #3 (1 byte) [type: uint8_t ] : VALUE_3 (Echoed byte) + // field #4 (1 byte) [type: uint8_t ] : VALUE_4 (Echoed byte) + // field #5 (1 byte) [type: uint8_t ] : VALUE_5 (Echoed byte) + // field #6 (1 byte) [type: uint8_t ] : VALUE_6 (Echoed byte) + // field #7 (1 byte) [type: uint8_t ] : VALUE_7 (Echoed byte) + // field #8 (1 byte) [type: uint8_t ] : VALUE_8 (Echoed byte) + // field #9 (1 byte) [type: uint8_t ] : VALUE_9 (Echoed byte) + // field #10 (1 byte) [type: uint8_t ] : VALUE_10 (Echoed byte) + // field #11 (1 byte) [type: uint8_t ] : VALUE_11 (Echoed byte) + // field #12 (1 byte) [type: uint8_t ] : VALUE_12 (Echoed byte) + // field #13 (1 byte) [type: uint8_t ] : VALUE_13 (Echoed byte) + // field #14 (1 byte) [type: uint8_t ] : VALUE_14 (Echoed byte) + // field #15 (1 byte) [type: uint8_t ] : VALUE_15 (Echoed byte) + // field #16 (1 byte) [type: uint8_t ] : VALUE_16 (Echoed byte) + // field #17 (1 byte) [type: uint8_t ] : VALUE_17 (Echoed byte) + // field #18 (1 byte) [type: uint8_t ] : VALUE_18 (Echoed byte) + // field #19 (1 byte) [type: uint8_t ] : VALUE_19 (Echoed byte) + // field #20 (1 byte) [type: uint8_t ] : VALUE_20 (Echoed byte) + // field #21 (1 byte) [type: uint8_t ] : VALUE_21 (Echoed byte) + // field #22 (1 byte) [type: uint8_t ] : VALUE_22 (Echoed byte) + // field #23 (1 byte) [type: uint8_t ] : VALUE_23 (Echoed byte) + // field #24 (1 byte) [type: uint8_t ] : VALUE_24 (Echoed byte) + // field #25 (1 byte) [type: uint8_t ] : VALUE_25 (Echoed byte) + // field #26 (1 byte) [type: uint8_t ] : VALUE_26 (Echoed byte) + // field #27 (1 byte) [type: uint8_t ] : VALUE_27 (Echoed byte) + // field #28 (1 byte) [type: uint8_t ] : VALUE_28 (Echoed byte) + // field #29 (1 byte) [type: uint8_t ] : VALUE_29 (Echoed byte) + // field #30 (1 byte) [type: uint8_t ] : VALUE_30 (Echoed byte) + // field #31 (1 byte) [type: uint8_t ] : VALUE_31 (Echoed byte) + // Response payload (length in bytes is 32): + // field #0 (1 byte) [type: uint8_t ] : VALUE_0 (Echoed byte) + // field #1 (1 byte) [type: uint8_t ] : VALUE_1 (Echoed byte) + // field #2 (1 byte) [type: uint8_t ] : VALUE_2 (Echoed byte) + // field #3 (1 byte) [type: uint8_t ] : VALUE_3 (Echoed byte) + // field #4 (1 byte) [type: uint8_t ] : VALUE_4 (Echoed byte) + // field #5 (1 byte) [type: uint8_t ] : VALUE_5 (Echoed byte) + // field #6 (1 byte) [type: uint8_t ] : VALUE_6 (Echoed byte) + // field #7 (1 byte) [type: uint8_t ] : VALUE_7 (Echoed byte) + // field #8 (1 byte) [type: uint8_t ] : VALUE_8 (Echoed byte) + // field #9 (1 byte) [type: uint8_t ] : VALUE_9 (Echoed byte) + // field #10 (1 byte) [type: uint8_t ] : VALUE_10 (Echoed byte) + // field #11 (1 byte) [type: uint8_t ] : VALUE_11 (Echoed byte) + // field #12 (1 byte) [type: uint8_t ] : VALUE_12 (Echoed byte) + // field #13 (1 byte) [type: uint8_t ] : VALUE_13 (Echoed byte) + // field #14 (1 byte) [type: uint8_t ] : VALUE_14 (Echoed byte) + // field #15 (1 byte) [type: uint8_t ] : VALUE_15 (Echoed byte) + // field #16 (1 byte) [type: uint8_t ] : VALUE_16 (Echoed byte) + // field #17 (1 byte) [type: uint8_t ] : VALUE_17 (Echoed byte) + // field #18 (1 byte) [type: uint8_t ] : VALUE_18 (Echoed byte) + // field #19 (1 byte) [type: uint8_t ] : VALUE_19 (Echoed byte) + // field #20 (1 byte) [type: uint8_t ] : VALUE_20 (Echoed byte) + // field #21 (1 byte) [type: uint8_t ] : VALUE_21 (Echoed byte) + // field #22 (1 byte) [type: uint8_t ] : VALUE_22 (Echoed byte) + // field #23 (1 byte) [type: uint8_t ] : VALUE_23 (Echoed byte) + // field #24 (1 byte) [type: uint8_t ] : VALUE_24 (Echoed byte) + // field #25 (1 byte) [type: uint8_t ] : VALUE_25 (Echoed byte) + // field #26 (1 byte) [type: uint8_t ] : VALUE_26 (Echoed byte) + // field #27 (1 byte) [type: uint8_t ] : VALUE_27 (Echoed byte) + // field #28 (1 byte) [type: uint8_t ] : VALUE_28 (Echoed byte) + // field #29 (1 byte) [type: uint8_t ] : VALUE_29 (Echoed byte) + // field #30 (1 byte) [type: uint8_t ] : VALUE_30 (Echoed byte) + // field #31 (1 byte) [type: uint8_t ] : VALUE_31 (Echoed byte) + + // Auto-generated section: request payload fields reading + uint8_t req_value_0 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_1 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_2 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_3 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_4 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_5 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_6 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_7 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_8 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_9 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_10 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_11 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_12 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_13 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_14 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_15 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_16 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_17 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_18 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_19 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_20 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_21 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_22 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_23 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_24 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_25 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_26 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_27 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_28 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_29 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_30 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_31 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ECHO32 + + // TODO: assign response field VALUE_0 in command ECHO32 callback + uint8_t resp_value_0 = -1; + + // TODO: assign response field VALUE_1 in command ECHO32 callback + uint8_t resp_value_1 = -1; + + // TODO: assign response field VALUE_2 in command ECHO32 callback + uint8_t resp_value_2 = -1; + + // TODO: assign response field VALUE_3 in command ECHO32 callback + uint8_t resp_value_3 = -1; + + // TODO: assign response field VALUE_4 in command ECHO32 callback + uint8_t resp_value_4 = -1; + + // TODO: assign response field VALUE_5 in command ECHO32 callback + uint8_t resp_value_5 = -1; + + // TODO: assign response field VALUE_6 in command ECHO32 callback + uint8_t resp_value_6 = -1; + + // TODO: assign response field VALUE_7 in command ECHO32 callback + uint8_t resp_value_7 = -1; + + // TODO: assign response field VALUE_8 in command ECHO32 callback + uint8_t resp_value_8 = -1; + + // TODO: assign response field VALUE_9 in command ECHO32 callback + uint8_t resp_value_9 = -1; + + // TODO: assign response field VALUE_10 in command ECHO32 callback + uint8_t resp_value_10 = -1; + + // TODO: assign response field VALUE_11 in command ECHO32 callback + uint8_t resp_value_11 = -1; + + // TODO: assign response field VALUE_12 in command ECHO32 callback + uint8_t resp_value_12 = -1; + + // TODO: assign response field VALUE_13 in command ECHO32 callback + uint8_t resp_value_13 = -1; + + // TODO: assign response field VALUE_14 in command ECHO32 callback + uint8_t resp_value_14 = -1; + + // TODO: assign response field VALUE_15 in command ECHO32 callback + uint8_t resp_value_15 = -1; + + // TODO: assign response field VALUE_16 in command ECHO32 callback + uint8_t resp_value_16 = -1; + + // TODO: assign response field VALUE_17 in command ECHO32 callback + uint8_t resp_value_17 = -1; + + // TODO: assign response field VALUE_18 in command ECHO32 callback + uint8_t resp_value_18 = -1; + + // TODO: assign response field VALUE_19 in command ECHO32 callback + uint8_t resp_value_19 = -1; + + // TODO: assign response field VALUE_20 in command ECHO32 callback + uint8_t resp_value_20 = -1; + + // TODO: assign response field VALUE_21 in command ECHO32 callback + uint8_t resp_value_21 = -1; + + // TODO: assign response field VALUE_22 in command ECHO32 callback + uint8_t resp_value_22 = -1; + + // TODO: assign response field VALUE_23 in command ECHO32 callback + uint8_t resp_value_23 = -1; + + // TODO: assign response field VALUE_24 in command ECHO32 callback + uint8_t resp_value_24 = -1; + + // TODO: assign response field VALUE_25 in command ECHO32 callback + uint8_t resp_value_25 = -1; + + // TODO: assign response field VALUE_26 in command ECHO32 callback + uint8_t resp_value_26 = -1; + + // TODO: assign response field VALUE_27 in command ECHO32 callback + uint8_t resp_value_27 = -1; + + // TODO: assign response field VALUE_28 in command ECHO32 callback + uint8_t resp_value_28 = -1; + + // TODO: assign response field VALUE_29 in command ECHO32 callback + uint8_t resp_value_29 = -1; + + // TODO: assign response field VALUE_30 in command ECHO32 callback + uint8_t resp_value_30 = -1; + + // TODO: assign response field VALUE_31 in command ECHO32 callback + uint8_t resp_value_31 = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_value_0); + communication_response_payload_append_uint8_t((uint8_t)resp_value_1); + communication_response_payload_append_uint8_t((uint8_t)resp_value_2); + communication_response_payload_append_uint8_t((uint8_t)resp_value_3); + communication_response_payload_append_uint8_t((uint8_t)resp_value_4); + communication_response_payload_append_uint8_t((uint8_t)resp_value_5); + communication_response_payload_append_uint8_t((uint8_t)resp_value_6); + communication_response_payload_append_uint8_t((uint8_t)resp_value_7); + communication_response_payload_append_uint8_t((uint8_t)resp_value_8); + communication_response_payload_append_uint8_t((uint8_t)resp_value_9); + communication_response_payload_append_uint8_t((uint8_t)resp_value_10); + communication_response_payload_append_uint8_t((uint8_t)resp_value_11); + communication_response_payload_append_uint8_t((uint8_t)resp_value_12); + communication_response_payload_append_uint8_t((uint8_t)resp_value_13); + communication_response_payload_append_uint8_t((uint8_t)resp_value_14); + communication_response_payload_append_uint8_t((uint8_t)resp_value_15); + communication_response_payload_append_uint8_t((uint8_t)resp_value_16); + communication_response_payload_append_uint8_t((uint8_t)resp_value_17); + communication_response_payload_append_uint8_t((uint8_t)resp_value_18); + communication_response_payload_append_uint8_t((uint8_t)resp_value_19); + communication_response_payload_append_uint8_t((uint8_t)resp_value_20); + communication_response_payload_append_uint8_t((uint8_t)resp_value_21); + communication_response_payload_append_uint8_t((uint8_t)resp_value_22); + communication_response_payload_append_uint8_t((uint8_t)resp_value_23); + communication_response_payload_append_uint8_t((uint8_t)resp_value_24); + communication_response_payload_append_uint8_t((uint8_t)resp_value_25); + communication_response_payload_append_uint8_t((uint8_t)resp_value_26); + communication_response_payload_append_uint8_t((uint8_t)resp_value_27); + communication_response_payload_append_uint8_t((uint8_t)resp_value_28); + communication_response_payload_append_uint8_t((uint8_t)resp_value_29); + communication_response_payload_append_uint8_t((uint8_t)resp_value_30); + communication_response_payload_append_uint8_t((uint8_t)resp_value_31); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_ECHO4.tpl.c b/host/python/codegen/output/templates/commands/command_ECHO4.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..66bbea53cb8af500bffef4523659cca46fcee2fd --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_ECHO4.tpl.c @@ -0,0 +1,56 @@ +// Auto-generated template file: command_ECHO4.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_ECHO4(void) { + // Command: ECHO4 + // Description: Echo (4 bytes) + // + // Request code: CMDCODE_ECHO4_REQ + // Response code: CMDCODE_ECHO4_REQ + // Request payload (length in bytes is 4): + // field #0 (1 byte) [type: uint8_t ] : VALUE_0 (Echoed byte) + // field #1 (1 byte) [type: uint8_t ] : VALUE_1 (Echoed byte) + // field #2 (1 byte) [type: uint8_t ] : VALUE_2 (Echoed byte) + // field #3 (1 byte) [type: uint8_t ] : VALUE_3 (Echoed byte) + // Response payload (length in bytes is 4): + // field #0 (1 byte) [type: uint8_t ] : VALUE_0 (Echoed byte) + // field #1 (1 byte) [type: uint8_t ] : VALUE_1 (Echoed byte) + // field #2 (1 byte) [type: uint8_t ] : VALUE_2 (Echoed byte) + // field #3 (1 byte) [type: uint8_t ] : VALUE_3 (Echoed byte) + + // Auto-generated section: request payload fields reading + uint8_t req_value_0 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_1 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_2 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + uint8_t req_value_3 = (uint8_t)communication_request_payload_retrieve_uint8_t(); + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_ECHO4 + + // TODO: assign response field VALUE_0 in command ECHO4 callback + uint8_t resp_value_0 = -1; + + // TODO: assign response field VALUE_1 in command ECHO4 callback + uint8_t resp_value_1 = -1; + + // TODO: assign response field VALUE_2 in command ECHO4 callback + uint8_t resp_value_2 = -1; + + // TODO: assign response field VALUE_3 in command ECHO4 callback + uint8_t resp_value_3 = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_value_0); + communication_response_payload_append_uint8_t((uint8_t)resp_value_1); + communication_response_payload_append_uint8_t((uint8_t)resp_value_2); + communication_response_payload_append_uint8_t((uint8_t)resp_value_3); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_LASTCOMMANDTIME.tpl.c b/host/python/codegen/output/templates/commands/command_LASTCOMMANDTIME.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..66e025132ddce5bf6534465ffedfddf9bc0268a2 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_LASTCOMMANDTIME.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_LASTCOMMANDTIME.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_LASTCOMMANDTIME(void) { + // Command: LASTCOMMANDTIME + // Description: Time since last command + // + // Request code: CMDCODE_LASTCOMMANDTIME_REQ + // Response code: CMDCODE_LASTCOMMANDTIME_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 4): + // field #0 (4 bytes) [type: uint32_t ] : SECONDS (Seconds since last command) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_LASTCOMMANDTIME + + // TODO: assign response field SECONDS in command LASTCOMMANDTIME callback + uint32_t resp_seconds = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint32_t((uint32_t)resp_seconds); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_LASTERROR.tpl.c b/host/python/codegen/output/templates/commands/command_LASTERROR.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..40b55ad740aab050075a20f91e799b1505cad054 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_LASTERROR.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_LASTERROR.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_LASTERROR(void) { + // Command: LASTERROR + // Description: Return the last occurred error, and reset it to NOERR value + // + // Request code: CMDCODE_LASTERROR_REQ + // Response code: CMDCODE_LASTERROR_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 1): + // field #0 (1 byte) [type: uint8_t ] : ERRCODE (Error code) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_LASTERROR + + // TODO: assign response field ERRCODE in command LASTERROR callback + uint8_t resp_errcode = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_errcode); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_RESCUE_ENABLE.tpl.c b/host/python/codegen/output/templates/commands/command_RESCUE_ENABLE.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..67a185e17f2abc77d09054d528bce0be61959de2 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_RESCUE_ENABLE.tpl.c @@ -0,0 +1,38 @@ +// Auto-generated template file: command_RESCUE_ENABLE.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_RESCUE_ENABLE(void) { + // Command: RESCUE_ENABLE + // Description: Enable or disable auto-rescue (or read enable status) + // + // Request code: CMDCODE_RESCUE_ENABLE_REQ + // Response code: CMDCODE_RESCUE_ENABLE_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_enablestate_nc_t] : ENABLESTATE_NC (Enable state) + // Response payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_enablestate_t] : ENABLESTATE (Enable state) + + // Auto-generated section: request payload fields reading + enum_enablestate_nc_t req_enablestate_nc = (enum_enablestate_nc_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_enablestate_nc + if((uint8_t)req_enablestate_nc < (uint8_t)enum_enablestate_nc_t_min) return ERR_RANGE; + if((uint8_t)req_enablestate_nc > (uint8_t)enum_enablestate_nc_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_RESCUE_ENABLE + + // TODO: assign response field ENABLESTATE in command RESCUE_ENABLE callback + enum_enablestate_t resp_enablestate = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_enablestate); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_RESCUE_STATUS_GET.tpl.c b/host/python/codegen/output/templates/commands/command_RESCUE_STATUS_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..750c364a0e6109d5b815daaf236d91f14f55fd0e --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_RESCUE_STATUS_GET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_RESCUE_STATUS_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_RESCUE_STATUS_GET(void) { + // Command: RESCUE_STATUS_GET + // Description: Get the auto-rescue current status (fired or not) + // + // Request code: CMDCODE_RESCUE_STATUS_GET_REQ + // Response code: CMDCODE_RESCUE_STATUS_GET_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_firedstate_t] : FIREDSTATE (Fired state) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_RESCUE_STATUS_GET + + // TODO: assign response field FIREDSTATE in command RESCUE_STATUS_GET callback + enum_firedstate_t resp_firedstate = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_firedstate); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_RESCUE_STATUS_RESET.tpl.c b/host/python/codegen/output/templates/commands/command_RESCUE_STATUS_RESET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..d27fc2e3012a1bbe56e2db5f2feb47b50e2b6780 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_RESCUE_STATUS_RESET.tpl.c @@ -0,0 +1,28 @@ +// Auto-generated template file: command_RESCUE_STATUS_RESET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_RESCUE_STATUS_RESET(void) { + // Command: RESCUE_STATUS_RESET + // Description: Reset the auto-rescue current status + // + // Request code: CMDCODE_RESCUE_STATUS_RESET_REQ + // Response code: CMDCODE_RESCUE_STATUS_RESET_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_RESCUE_STATUS_RESET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_RESCUE_TIMEOUT_GET.tpl.c b/host/python/codegen/output/templates/commands/command_RESCUE_TIMEOUT_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..fcec35c55a8fc4ec9bd4c8c0852d7afb294b9dff --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_RESCUE_TIMEOUT_GET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_RESCUE_TIMEOUT_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_RESCUE_TIMEOUT_GET(void) { + // Command: RESCUE_TIMEOUT_GET + // Description: Get the auto-rescue timeout value + // + // Request code: CMDCODE_RESCUE_TIMEOUT_GET_REQ + // Response code: CMDCODE_RESCUE_TIMEOUT_GET_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 2): + // field #0 (2 bytes) [type: uint16_t ] : RESCUE_TIMEOUT (Timeout value) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_RESCUE_TIMEOUT_GET + + // TODO: assign response field RESCUE_TIMEOUT in command RESCUE_TIMEOUT_GET callback + uint16_t resp_rescue_timeout = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint16_t((uint16_t)resp_rescue_timeout); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_RESCUE_TIMEOUT_SET.tpl.c b/host/python/codegen/output/templates/commands/command_RESCUE_TIMEOUT_SET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..f64cd342ac50d1c67e2b65e8f156c841db867e67 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_RESCUE_TIMEOUT_SET.tpl.c @@ -0,0 +1,30 @@ +// Auto-generated template file: command_RESCUE_TIMEOUT_SET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_RESCUE_TIMEOUT_SET(void) { + // Command: RESCUE_TIMEOUT_SET + // Description: Set the auto-rescue timeout value + // + // Request code: CMDCODE_RESCUE_TIMEOUT_SET_REQ + // Response code: CMDCODE_RESCUE_TIMEOUT_SET_REQ + // Request payload (length in bytes is 2): + // field #0 (2 bytes) [type: uint16_t ] : RESCUE_TIMEOUT (Timeout value) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + uint16_t req_rescue_timeout = (uint16_t)communication_request_payload_retrieve_uint16_t(); + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_RESCUE_TIMEOUT_SET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGE_GETALL.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGE_GETALL.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..44169c1fbf71bd4b453612f4e3fe0c3144ac2f03 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGE_GETALL.tpl.c @@ -0,0 +1,83 @@ +// Auto-generated template file: command_SENSOR_AVERAGE_GETALL.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_AVERAGE_GETALL(void) { + // Command: SENSOR_AVERAGE_GETALL + // Description: Get all sensors' mean values + // + // Request code: CMDCODE_SENSOR_AVERAGE_GETALL_REQ + // Response code: CMDCODE_SENSOR_AVERAGE_GETALL_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 22): + // field #0 (2 bytes) [type: uint16_t ] : MON_DUL_BOARDTEMP_MEAN (Variable MON_DUL_BOARDTEMP mean) + // field #1 (2 bytes) [type: uint16_t ] : MON_TEMP2_MEAN (Variable MON_TEMP2 mean) + // field #2 (2 bytes) [type: uint16_t ] : MON_TEMP1_MEAN (Variable MON_TEMP1 mean) + // field #3 (2 bytes) [type: uint16_t ] : MON_VEOC_RTN_I_MEAN (Variable MON_VEOC_RTN_I mean) + // field #4 (2 bytes) [type: uint16_t ] : MON_VEOC_FWR_I_MEAN (Variable MON_VEOC_FWR_I mean) + // field #5 (2 bytes) [type: uint16_t ] : MON_HYDRO_I_MEAN (Variable MON_HYDRO_I mean) + // field #6 (2 bytes) [type: uint16_t ] : MON_INPUT_V_MEAN (Variable MON_INPUT_V mean) + // field #7 (2 bytes) [type: uint16_t ] : MON_LBL_I_MEAN (Variable MON_LBL_I mean) + // field #8 (2 bytes) [type: uint16_t ] : MON_GLRA_I_MEAN (Variable MON_GLRA_I mean) + // field #9 (2 bytes) [type: uint16_t ] : MON_GLRB_I_MEAN (Variable MON_GLRB_I mean) + // field #10 (2 bytes) [type: uint16_t ] : MON_PWB_I_MEAN (Variable MON_PWB_I mean) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_AVERAGE_GETALL + + // TODO: assign response field MON_DUL_BOARDTEMP_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_dul_boardtemp_mean = -1; + + // TODO: assign response field MON_TEMP2_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_temp2_mean = -1; + + // TODO: assign response field MON_TEMP1_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_temp1_mean = -1; + + // TODO: assign response field MON_VEOC_RTN_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_veoc_rtn_i_mean = -1; + + // TODO: assign response field MON_VEOC_FWR_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_veoc_fwr_i_mean = -1; + + // TODO: assign response field MON_HYDRO_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_hydro_i_mean = -1; + + // TODO: assign response field MON_INPUT_V_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_input_v_mean = -1; + + // TODO: assign response field MON_LBL_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_lbl_i_mean = -1; + + // TODO: assign response field MON_GLRA_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_glra_i_mean = -1; + + // TODO: assign response field MON_GLRB_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_glrb_i_mean = -1; + + // TODO: assign response field MON_PWB_I_MEAN in command SENSOR_AVERAGE_GETALL callback + uint16_t resp_mon_pwb_i_mean = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_dul_boardtemp_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp2_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp1_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_rtn_i_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_fwr_i_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_hydro_i_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_input_v_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_lbl_i_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glra_i_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glrb_i_mean); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_pwb_i_mean); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGING_PRESCALER_GET.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGING_PRESCALER_GET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..89f955bf8633f87a3b4ac3f1fd6d86bb916059c8 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGING_PRESCALER_GET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_SENSOR_AVERAGING_PRESCALER_GET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_AVERAGING_PRESCALER_GET(void) { + // Command: SENSOR_AVERAGING_PRESCALER_GET + // Description: Get the value of the prescaler used to compute sensors' averages + // + // Request code: CMDCODE_SENSOR_AVERAGING_PRESCALER_GET_REQ + // Response code: CMDCODE_SENSOR_AVERAGING_PRESCALER_GET_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_averagingprescaler_t] : AVERAGINGPRESCALER (Variable averaging prescaler) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_AVERAGING_PRESCALER_GET + + // TODO: assign response field AVERAGINGPRESCALER in command SENSOR_AVERAGING_PRESCALER_GET callback + enum_averagingprescaler_t resp_averagingprescaler = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_averagingprescaler); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGING_PRESCALER_SET.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGING_PRESCALER_SET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..b757f6b19d395ed2a7606096871229e639cf20d3 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_AVERAGING_PRESCALER_SET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_SENSOR_AVERAGING_PRESCALER_SET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_AVERAGING_PRESCALER_SET(void) { + // Command: SENSOR_AVERAGING_PRESCALER_SET + // Description: Set the value of the prescaler used to compute sensors' averages + // + // Request code: CMDCODE_SENSOR_AVERAGING_PRESCALER_SET_REQ + // Response code: CMDCODE_SENSOR_AVERAGING_PRESCALER_SET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_averagingprescaler_t] : AVERAGINGPRESCALER (Variable averaging prescaler) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_averagingprescaler_t req_averagingprescaler = (enum_averagingprescaler_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_averagingprescaler + if((uint8_t)req_averagingprescaler < (uint8_t)enum_averagingprescaler_t_min) return ERR_RANGE; + if((uint8_t)req_averagingprescaler > (uint8_t)enum_averagingprescaler_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_AVERAGING_PRESCALER_SET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_GET_SINGLE.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_GET_SINGLE.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..a69f20b62c3b0993b0f480da6f55ca95309dcecb --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_GET_SINGLE.tpl.c @@ -0,0 +1,58 @@ +// Auto-generated template file: command_SENSOR_GET_SINGLE.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_GET_SINGLE(void) { + // Command: SENSOR_GET_SINGLE + // Description: Get one sensor's current value, offset value, max value, and mean value + // + // Request code: CMDCODE_SENSOR_GET_SINGLE_REQ + // Response code: CMDCODE_SENSOR_GET_SINGLE_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_variable_number_t] : VARIABLE_NUMBER (Variable number) + // Response payload (length in bytes is 9): + // field #0 (1 byte) [type: enum_variable_number_t] : VARIABLE_NUMBER (Variable number) + // field #1 (2 bytes) [type: uint16_t ] : VALUE (Last acquired sensor value (0/1 for digital sensors)) + // field #2 (2 bytes) [type: uint16_t ] : OFFSET (Sensor offset value (acquired at start-up, reports zero for digital sensors)) + // field #3 (2 bytes) [type: uint16_t ] : MAXVALUE (Sensor maximum value since last reset (0/1 for digital sensors)) + // field #4 (2 bytes) [type: uint16_t ] : MEANVALUE (Sensor mean value (0 for digital sensors)) + + // Auto-generated section: request payload fields reading + enum_variable_number_t req_variable_number = (enum_variable_number_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_variable_number + if((uint8_t)req_variable_number < (uint8_t)enum_variable_number_t_min) return ERR_RANGE; + if((uint8_t)req_variable_number > (uint8_t)enum_variable_number_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_GET_SINGLE + + // TODO: assign response field VARIABLE_NUMBER in command SENSOR_GET_SINGLE callback + enum_variable_number_t resp_variable_number = -1; + + // TODO: assign response field VALUE in command SENSOR_GET_SINGLE callback + uint16_t resp_value = -1; + + // TODO: assign response field OFFSET in command SENSOR_GET_SINGLE callback + uint16_t resp_offset = -1; + + // TODO: assign response field MAXVALUE in command SENSOR_GET_SINGLE callback + uint16_t resp_maxvalue = -1; + + // TODO: assign response field MEANVALUE in command SENSOR_GET_SINGLE callback + uint16_t resp_meanvalue = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_variable_number); + communication_response_payload_append_uint16_t((uint16_t)resp_value); + communication_response_payload_append_uint16_t((uint16_t)resp_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_meanvalue); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_MAXVALUES_GETALL.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_MAXVALUES_GETALL.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..01394da2452dbad8f778eafcc894fdb635147780 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_MAXVALUES_GETALL.tpl.c @@ -0,0 +1,143 @@ +// Auto-generated template file: command_SENSOR_MAXVALUES_GETALL.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_MAXVALUES_GETALL(void) { + // Command: SENSOR_MAXVALUES_GETALL + // Description: Get all sensors' max values + // + // Request code: CMDCODE_SENSOR_MAXVALUES_GETALL_REQ + // Response code: CMDCODE_SENSOR_MAXVALUES_GETALL_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 34): + // field #0 (2 bytes) [type: uint16_t ] : MON_DUL_BOARDTEMP_MAXVALUE (Variable MON_DUL_BOARDTEMP max value) + // field #1 (2 bytes) [type: uint16_t ] : MON_TEMP2_MAXVALUE (Variable MON_TEMP2 max value) + // field #2 (2 bytes) [type: uint16_t ] : MON_TEMP1_MAXVALUE (Variable MON_TEMP1 max value) + // field #3 (2 bytes) [type: uint16_t ] : MON_VEOC_RTN_I_MAXVALUE (Variable MON_VEOC_RTN_I max value) + // field #4 (2 bytes) [type: uint16_t ] : MON_VEOC_FWR_I_MAXVALUE (Variable MON_VEOC_FWR_I max value) + // field #5 (2 bytes) [type: uint16_t ] : MON_HYDRO_I_MAXVALUE (Variable MON_HYDRO_I max value) + // field #6 (2 bytes) [type: uint16_t ] : MON_INPUT_V_MAXVALUE (Variable MON_INPUT_V max value) + // field #7 (2 bytes) [type: uint16_t ] : MON_LBL_I_MAXVALUE (Variable MON_LBL_I max value) + // field #8 (2 bytes) [type: uint16_t ] : MON_GLRA_I_MAXVALUE (Variable MON_GLRA_I max value) + // field #9 (2 bytes) [type: uint16_t ] : MON_GLRB_I_MAXVALUE (Variable MON_GLRB_I max value) + // field #10 (2 bytes) [type: uint16_t ] : MON_PWB_I_MAXVALUE (Variable MON_PWB_I max value) + // field #11 (1 byte) [type: enum_flag_dul_alarmpos1_state_t] : FLAG_DUL_ALARMPOS1_STATE (FLAG_DUL_ALARMPOS1 status) + // field #12 (1 byte) [type: enum_flag_dul_alarmpos2_state_t] : FLAG_DUL_ALARMPOS2_STATE (FLAG_DUL_ALARMPOS2 status) + // field #13 (1 byte) [type: enum_flag_dul_alarmneg1_state_t] : FLAG_DUL_ALARMNEG1_STATE (FLAG_DUL_ALARMNEG1 status) + // field #14 (1 byte) [type: enum_flag_dul_alarmneg2_state_t] : FLAG_DUL_ALARMNEG2_STATE (FLAG_DUL_ALARMNEG2 status) + // field #15 (1 byte) [type: enum_flag_hydro_pwr_fault_state_t] : FLAG_HYDRO_PWR_FAULT_STATE (FLAG_HYDRO_PWR_FAULT status) + // field #16 (1 byte) [type: enum_flag_lbl_pwr_fault_state_t] : FLAG_LBL_PWR_FAULT_STATE (FLAG_LBL_PWR_FAULT status) + // field #17 (1 byte) [type: enum_flag_glra_fault_state_t] : FLAG_GLRA_FAULT_STATE (FLAG_GLRA_FAULT status) + // field #18 (1 byte) [type: enum_flag_glrb_fault_state_t] : FLAG_GLRB_FAULT_STATE (FLAG_GLRB_FAULT status) + // field #19 (1 byte) [type: enum_flag_powerboard_fault_state_t] : FLAG_POWERBOARD_FAULT_STATE (FLAG_POWERBOARD_FAULT status) + // field #20 (1 byte) [type: enum_flag_glra_good_state_t] : FLAG_GLRA_GOOD_STATE (FLAG_GLRA_GOOD status) + // field #21 (1 byte) [type: enum_flag_glrb_good_state_t] : FLAG_GLRB_GOOD_STATE (FLAG_GLRB_GOOD status) + // field #22 (1 byte) [type: enum_flag_powerboard_good_state_t] : FLAG_POWERBOARD_GOOD_STATE (FLAG_POWERBOARD_GOOD status) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_MAXVALUES_GETALL + + // TODO: assign response field MON_DUL_BOARDTEMP_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_dul_boardtemp_maxvalue = -1; + + // TODO: assign response field MON_TEMP2_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_temp2_maxvalue = -1; + + // TODO: assign response field MON_TEMP1_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_temp1_maxvalue = -1; + + // TODO: assign response field MON_VEOC_RTN_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_veoc_rtn_i_maxvalue = -1; + + // TODO: assign response field MON_VEOC_FWR_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_veoc_fwr_i_maxvalue = -1; + + // TODO: assign response field MON_HYDRO_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_hydro_i_maxvalue = -1; + + // TODO: assign response field MON_INPUT_V_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_input_v_maxvalue = -1; + + // TODO: assign response field MON_LBL_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_lbl_i_maxvalue = -1; + + // TODO: assign response field MON_GLRA_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_glra_i_maxvalue = -1; + + // TODO: assign response field MON_GLRB_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_glrb_i_maxvalue = -1; + + // TODO: assign response field MON_PWB_I_MAXVALUE in command SENSOR_MAXVALUES_GETALL callback + uint16_t resp_mon_pwb_i_maxvalue = -1; + + // TODO: assign response field FLAG_DUL_ALARMPOS1_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_dul_alarmpos1_state_t resp_flag_dul_alarmpos1_state = -1; + + // TODO: assign response field FLAG_DUL_ALARMPOS2_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_dul_alarmpos2_state_t resp_flag_dul_alarmpos2_state = -1; + + // TODO: assign response field FLAG_DUL_ALARMNEG1_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_dul_alarmneg1_state_t resp_flag_dul_alarmneg1_state = -1; + + // TODO: assign response field FLAG_DUL_ALARMNEG2_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_dul_alarmneg2_state_t resp_flag_dul_alarmneg2_state = -1; + + // TODO: assign response field FLAG_HYDRO_PWR_FAULT_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_hydro_pwr_fault_state_t resp_flag_hydro_pwr_fault_state = -1; + + // TODO: assign response field FLAG_LBL_PWR_FAULT_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_lbl_pwr_fault_state_t resp_flag_lbl_pwr_fault_state = -1; + + // TODO: assign response field FLAG_GLRA_FAULT_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_glra_fault_state_t resp_flag_glra_fault_state = -1; + + // TODO: assign response field FLAG_GLRB_FAULT_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_glrb_fault_state_t resp_flag_glrb_fault_state = -1; + + // TODO: assign response field FLAG_POWERBOARD_FAULT_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_powerboard_fault_state_t resp_flag_powerboard_fault_state = -1; + + // TODO: assign response field FLAG_GLRA_GOOD_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_glra_good_state_t resp_flag_glra_good_state = -1; + + // TODO: assign response field FLAG_GLRB_GOOD_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_glrb_good_state_t resp_flag_glrb_good_state = -1; + + // TODO: assign response field FLAG_POWERBOARD_GOOD_STATE in command SENSOR_MAXVALUES_GETALL callback + enum_flag_powerboard_good_state_t resp_flag_powerboard_good_state = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_dul_boardtemp_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp2_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp1_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_rtn_i_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_fwr_i_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_hydro_i_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_input_v_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_lbl_i_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glra_i_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glrb_i_maxvalue); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_pwb_i_maxvalue); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmpos1_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmpos2_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmneg1_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmneg2_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_hydro_pwr_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_lbl_pwr_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glra_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glrb_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_powerboard_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glra_good_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glrb_good_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_powerboard_good_state); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_MAXVALUE_RESET.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_MAXVALUE_RESET.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..029ea3bb98afd4740b568d8747cc9d1373ac711c --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_MAXVALUE_RESET.tpl.c @@ -0,0 +1,33 @@ +// Auto-generated template file: command_SENSOR_MAXVALUE_RESET.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_MAXVALUE_RESET(void) { + // Command: SENSOR_MAXVALUE_RESET + // Description: Reset the max value of one sensor (or all sensors) + // + // Request code: CMDCODE_SENSOR_MAXVALUE_RESET_REQ + // Response code: CMDCODE_SENSOR_MAXVALUE_RESET_REQ + // Request payload (length in bytes is 1): + // field #0 (1 byte) [type: enum_variable_number_all_t] : VARIABLE_NUMBER_ALL (Variable number) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_variable_number_all_t req_variable_number_all = (enum_variable_number_all_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_variable_number_all + if((uint8_t)req_variable_number_all < (uint8_t)enum_variable_number_all_t_min) return ERR_RANGE; + if((uint8_t)req_variable_number_all > (uint8_t)enum_variable_number_all_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_MAXVALUE_RESET + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_OFFSETS_GETALL.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_OFFSETS_GETALL.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..afcc1f04765d08be07d1ba2b7451728a484e3541 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_OFFSETS_GETALL.tpl.c @@ -0,0 +1,83 @@ +// Auto-generated template file: command_SENSOR_OFFSETS_GETALL.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_OFFSETS_GETALL(void) { + // Command: SENSOR_OFFSETS_GETALL + // Description: Get all sensors' offsets + // + // Request code: CMDCODE_SENSOR_OFFSETS_GETALL_REQ + // Response code: CMDCODE_SENSOR_OFFSETS_GETALL_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 22): + // field #0 (2 bytes) [type: uint16_t ] : MON_DUL_BOARDTEMP_OFFSET (Variable MON_DUL_BOARDTEMP offset) + // field #1 (2 bytes) [type: uint16_t ] : MON_TEMP2_OFFSET (Variable MON_TEMP2 offset) + // field #2 (2 bytes) [type: uint16_t ] : MON_TEMP1_OFFSET (Variable MON_TEMP1 offset) + // field #3 (2 bytes) [type: uint16_t ] : MON_VEOC_RTN_I_OFFSET (Variable MON_VEOC_RTN_I offset) + // field #4 (2 bytes) [type: uint16_t ] : MON_VEOC_FWR_I_OFFSET (Variable MON_VEOC_FWR_I offset) + // field #5 (2 bytes) [type: uint16_t ] : MON_HYDRO_I_OFFSET (Variable MON_HYDRO_I offset) + // field #6 (2 bytes) [type: uint16_t ] : MON_INPUT_V_OFFSET (Variable MON_INPUT_V offset) + // field #7 (2 bytes) [type: uint16_t ] : MON_LBL_I_OFFSET (Variable MON_LBL_I offset) + // field #8 (2 bytes) [type: uint16_t ] : MON_GLRA_I_OFFSET (Variable MON_GLRA_I offset) + // field #9 (2 bytes) [type: uint16_t ] : MON_GLRB_I_OFFSET (Variable MON_GLRB_I offset) + // field #10 (2 bytes) [type: uint16_t ] : MON_PWB_I_OFFSET (Variable MON_PWB_I offset) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_OFFSETS_GETALL + + // TODO: assign response field MON_DUL_BOARDTEMP_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_dul_boardtemp_offset = -1; + + // TODO: assign response field MON_TEMP2_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_temp2_offset = -1; + + // TODO: assign response field MON_TEMP1_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_temp1_offset = -1; + + // TODO: assign response field MON_VEOC_RTN_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_veoc_rtn_i_offset = -1; + + // TODO: assign response field MON_VEOC_FWR_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_veoc_fwr_i_offset = -1; + + // TODO: assign response field MON_HYDRO_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_hydro_i_offset = -1; + + // TODO: assign response field MON_INPUT_V_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_input_v_offset = -1; + + // TODO: assign response field MON_LBL_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_lbl_i_offset = -1; + + // TODO: assign response field MON_GLRA_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_glra_i_offset = -1; + + // TODO: assign response field MON_GLRB_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_glrb_i_offset = -1; + + // TODO: assign response field MON_PWB_I_OFFSET in command SENSOR_OFFSETS_GETALL callback + uint16_t resp_mon_pwb_i_offset = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_dul_boardtemp_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp2_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp1_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_rtn_i_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_fwr_i_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_hydro_i_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_input_v_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_lbl_i_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glra_i_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glrb_i_offset); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_pwb_i_offset); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SENSOR_VALUES_GETALL.tpl.c b/host/python/codegen/output/templates/commands/command_SENSOR_VALUES_GETALL.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..a8c23fa81cfb4bfbc316323e4c3277f4896aa0f2 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SENSOR_VALUES_GETALL.tpl.c @@ -0,0 +1,143 @@ +// Auto-generated template file: command_SENSOR_VALUES_GETALL.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SENSOR_VALUES_GETALL(void) { + // Command: SENSOR_VALUES_GETALL + // Description: Get all sensors' values + // + // Request code: CMDCODE_SENSOR_VALUES_GETALL_REQ + // Response code: CMDCODE_SENSOR_VALUES_GETALL_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 34): + // field #0 (2 bytes) [type: uint16_t ] : MON_DUL_BOARDTEMP_VALUE (Variable MON_DUL_BOARDTEMP last acquired value) + // field #1 (2 bytes) [type: uint16_t ] : MON_TEMP2_VALUE (Variable MON_TEMP2 last acquired value) + // field #2 (2 bytes) [type: uint16_t ] : MON_TEMP1_VALUE (Variable MON_TEMP1 last acquired value) + // field #3 (2 bytes) [type: uint16_t ] : MON_VEOC_RTN_I_VALUE (Variable MON_VEOC_RTN_I last acquired value) + // field #4 (2 bytes) [type: uint16_t ] : MON_VEOC_FWR_I_VALUE (Variable MON_VEOC_FWR_I last acquired value) + // field #5 (2 bytes) [type: uint16_t ] : MON_HYDRO_I_VALUE (Variable MON_HYDRO_I last acquired value) + // field #6 (2 bytes) [type: uint16_t ] : MON_INPUT_V_VALUE (Variable MON_INPUT_V last acquired value) + // field #7 (2 bytes) [type: uint16_t ] : MON_LBL_I_VALUE (Variable MON_LBL_I last acquired value) + // field #8 (2 bytes) [type: uint16_t ] : MON_GLRA_I_VALUE (Variable MON_GLRA_I last acquired value) + // field #9 (2 bytes) [type: uint16_t ] : MON_GLRB_I_VALUE (Variable MON_GLRB_I last acquired value) + // field #10 (2 bytes) [type: uint16_t ] : MON_PWB_I_VALUE (Variable MON_PWB_I last acquired value) + // field #11 (1 byte) [type: enum_flag_dul_alarmpos1_state_t] : FLAG_DUL_ALARMPOS1_STATE (FLAG_DUL_ALARMPOS1 status) + // field #12 (1 byte) [type: enum_flag_dul_alarmpos2_state_t] : FLAG_DUL_ALARMPOS2_STATE (FLAG_DUL_ALARMPOS2 status) + // field #13 (1 byte) [type: enum_flag_dul_alarmneg1_state_t] : FLAG_DUL_ALARMNEG1_STATE (FLAG_DUL_ALARMNEG1 status) + // field #14 (1 byte) [type: enum_flag_dul_alarmneg2_state_t] : FLAG_DUL_ALARMNEG2_STATE (FLAG_DUL_ALARMNEG2 status) + // field #15 (1 byte) [type: enum_flag_hydro_pwr_fault_state_t] : FLAG_HYDRO_PWR_FAULT_STATE (FLAG_HYDRO_PWR_FAULT status) + // field #16 (1 byte) [type: enum_flag_lbl_pwr_fault_state_t] : FLAG_LBL_PWR_FAULT_STATE (FLAG_LBL_PWR_FAULT status) + // field #17 (1 byte) [type: enum_flag_glra_fault_state_t] : FLAG_GLRA_FAULT_STATE (FLAG_GLRA_FAULT status) + // field #18 (1 byte) [type: enum_flag_glrb_fault_state_t] : FLAG_GLRB_FAULT_STATE (FLAG_GLRB_FAULT status) + // field #19 (1 byte) [type: enum_flag_powerboard_fault_state_t] : FLAG_POWERBOARD_FAULT_STATE (FLAG_POWERBOARD_FAULT status) + // field #20 (1 byte) [type: enum_flag_glra_good_state_t] : FLAG_GLRA_GOOD_STATE (FLAG_GLRA_GOOD status) + // field #21 (1 byte) [type: enum_flag_glrb_good_state_t] : FLAG_GLRB_GOOD_STATE (FLAG_GLRB_GOOD status) + // field #22 (1 byte) [type: enum_flag_powerboard_good_state_t] : FLAG_POWERBOARD_GOOD_STATE (FLAG_POWERBOARD_GOOD status) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SENSOR_VALUES_GETALL + + // TODO: assign response field MON_DUL_BOARDTEMP_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_dul_boardtemp_value = -1; + + // TODO: assign response field MON_TEMP2_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_temp2_value = -1; + + // TODO: assign response field MON_TEMP1_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_temp1_value = -1; + + // TODO: assign response field MON_VEOC_RTN_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_veoc_rtn_i_value = -1; + + // TODO: assign response field MON_VEOC_FWR_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_veoc_fwr_i_value = -1; + + // TODO: assign response field MON_HYDRO_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_hydro_i_value = -1; + + // TODO: assign response field MON_INPUT_V_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_input_v_value = -1; + + // TODO: assign response field MON_LBL_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_lbl_i_value = -1; + + // TODO: assign response field MON_GLRA_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_glra_i_value = -1; + + // TODO: assign response field MON_GLRB_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_glrb_i_value = -1; + + // TODO: assign response field MON_PWB_I_VALUE in command SENSOR_VALUES_GETALL callback + uint16_t resp_mon_pwb_i_value = -1; + + // TODO: assign response field FLAG_DUL_ALARMPOS1_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_dul_alarmpos1_state_t resp_flag_dul_alarmpos1_state = -1; + + // TODO: assign response field FLAG_DUL_ALARMPOS2_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_dul_alarmpos2_state_t resp_flag_dul_alarmpos2_state = -1; + + // TODO: assign response field FLAG_DUL_ALARMNEG1_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_dul_alarmneg1_state_t resp_flag_dul_alarmneg1_state = -1; + + // TODO: assign response field FLAG_DUL_ALARMNEG2_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_dul_alarmneg2_state_t resp_flag_dul_alarmneg2_state = -1; + + // TODO: assign response field FLAG_HYDRO_PWR_FAULT_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_hydro_pwr_fault_state_t resp_flag_hydro_pwr_fault_state = -1; + + // TODO: assign response field FLAG_LBL_PWR_FAULT_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_lbl_pwr_fault_state_t resp_flag_lbl_pwr_fault_state = -1; + + // TODO: assign response field FLAG_GLRA_FAULT_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_glra_fault_state_t resp_flag_glra_fault_state = -1; + + // TODO: assign response field FLAG_GLRB_FAULT_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_glrb_fault_state_t resp_flag_glrb_fault_state = -1; + + // TODO: assign response field FLAG_POWERBOARD_FAULT_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_powerboard_fault_state_t resp_flag_powerboard_fault_state = -1; + + // TODO: assign response field FLAG_GLRA_GOOD_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_glra_good_state_t resp_flag_glra_good_state = -1; + + // TODO: assign response field FLAG_GLRB_GOOD_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_glrb_good_state_t resp_flag_glrb_good_state = -1; + + // TODO: assign response field FLAG_POWERBOARD_GOOD_STATE in command SENSOR_VALUES_GETALL callback + enum_flag_powerboard_good_state_t resp_flag_powerboard_good_state = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_dul_boardtemp_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp2_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_temp1_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_rtn_i_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_veoc_fwr_i_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_hydro_i_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_input_v_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_lbl_i_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glra_i_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_glrb_i_value); + communication_response_payload_append_uint16_t((uint16_t)resp_mon_pwb_i_value); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmpos1_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmpos2_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmneg1_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_dul_alarmneg2_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_hydro_pwr_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_lbl_pwr_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glra_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glrb_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_powerboard_fault_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glra_good_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_glrb_good_state); + communication_response_payload_append_uint8_t((uint8_t)resp_flag_powerboard_good_state); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_SWITCH_CONTROL.tpl.c b/host/python/codegen/output/templates/commands/command_SWITCH_CONTROL.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..082909751a4bac001013fe6f6f76c1ec80fe09a9 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_SWITCH_CONTROL.tpl.c @@ -0,0 +1,48 @@ +// Auto-generated template file: command_SWITCH_CONTROL.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_SWITCH_CONTROL(void) { + // Command: SWITCH_CONTROL + // Description: Control one of the switches or enable lines of the board. Can be used to get the current switch status without changing it (see request payload field status) + // + // Request code: CMDCODE_SWITCH_CONTROL_REQ + // Response code: CMDCODE_SWITCH_CONTROL_REQ + // Request payload (length in bytes is 2): + // field #0 (1 byte) [type: enum_switchnum_t] : SWITCHNUM (Switch number) + // field #1 (1 byte) [type: enum_switchstate_nc_t] : SWITCHSTATE_NC (Switch state) + // Response payload (length in bytes is 2): + // field #0 (1 byte) [type: enum_switchnum_t] : SWITCHNUM (Switch number) + // field #1 (1 byte) [type: enum_switchstate_t] : SWITCHSTATE (Switch state) + + // Auto-generated section: request payload fields reading + enum_switchnum_t req_switchnum = (enum_switchnum_t)communication_request_payload_retrieve_uint8_t(); + enum_switchstate_nc_t req_switchstate_nc = (enum_switchstate_nc_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_switchnum + if((uint8_t)req_switchnum < (uint8_t)enum_switchnum_t_min) return ERR_RANGE; + if((uint8_t)req_switchnum > (uint8_t)enum_switchnum_t_max) return ERR_RANGE; + // checking range for enum field req_switchstate_nc + if((uint8_t)req_switchstate_nc < (uint8_t)enum_switchstate_nc_t_min) return ERR_RANGE; + if((uint8_t)req_switchstate_nc > (uint8_t)enum_switchstate_nc_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_SWITCH_CONTROL + + // TODO: assign response field SWITCHNUM in command SWITCH_CONTROL callback + enum_switchnum_t resp_switchnum = -1; + + // TODO: assign response field SWITCHSTATE in command SWITCH_CONTROL callback + enum_switchstate_t resp_switchstate = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint8_t((uint8_t)resp_switchnum); + communication_response_payload_append_uint8_t((uint8_t)resp_switchstate); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_USER_PIN_CONTROL.tpl.c b/host/python/codegen/output/templates/commands/command_USER_PIN_CONTROL.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..1f56e45f28b274eba17b167c9ec578960158db2e --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_USER_PIN_CONTROL.tpl.c @@ -0,0 +1,38 @@ +// Auto-generated template file: command_USER_PIN_CONTROL.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_USER_PIN_CONTROL(void) { + // Command: USER_PIN_CONTROL + // Description: Control one user pin + // + // Request code: CMDCODE_USER_PIN_CONTROL_REQ + // Response code: CMDCODE_USER_PIN_CONTROL_REQ + // Request payload (length in bytes is 2): + // field #0 (1 byte) [type: enum_pinnum_t] : PINNUM (User pin number) + // field #1 (1 byte) [type: enum_pinstate_t] : PINSTATE (Status) + // Response payload (length in bytes is 0): + + // Auto-generated section: request payload fields reading + enum_pinnum_t req_pinnum = (enum_pinnum_t)communication_request_payload_retrieve_uint8_t(); + enum_pinstate_t req_pinstate = (enum_pinstate_t)communication_request_payload_retrieve_uint8_t(); + // checking range for enum field req_pinnum + if((uint8_t)req_pinnum < (uint8_t)enum_pinnum_t_min) return ERR_RANGE; + if((uint8_t)req_pinnum > (uint8_t)enum_pinnum_t_max) return ERR_RANGE; + // checking range for enum field req_pinstate + if((uint8_t)req_pinstate < (uint8_t)enum_pinstate_t_min) return ERR_RANGE; + if((uint8_t)req_pinstate > (uint8_t)enum_pinstate_t_max) return ERR_RANGE; + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_USER_PIN_CONTROL + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_VALCHECK.tpl.c b/host/python/codegen/output/templates/commands/command_VALCHECK.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..774fb50b3d7e997febdc53a1b9b3c1da2926f5fe --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_VALCHECK.tpl.c @@ -0,0 +1,58 @@ +// Auto-generated template file: command_VALCHECK.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_VALCHECK(void) { + // Command: VALCHECK + // Description: Return a some data to check endianness + // + // Request code: CMDCODE_VALCHECK_REQ + // Response code: CMDCODE_VALCHECK_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 14): + // field #0 (4 bytes) [type: uint32_t ] : VALUE_0 (Read as 128) + // field #1 (4 bytes) [type: uint32_t ] : VALUE_1 (Read as 2**31 = 2147483648) + // field #2 (2 bytes) [type: uint16_t ] : VALUE_2 (Read as 128) + // field #3 (2 bytes) [type: uint16_t ] : VALUE_3 (Read as 2**15 = 32768) + // field #4 (1 byte) [type: uint8_t ] : VALUE_4 (Read as 4) + // field #5 (1 byte) [type: uint8_t ] : VALUE_5 (Read as 64) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_VALCHECK + + // TODO: assign response field VALUE_0 in command VALCHECK callback + uint32_t resp_value_0 = -1; + + // TODO: assign response field VALUE_1 in command VALCHECK callback + uint32_t resp_value_1 = -1; + + // TODO: assign response field VALUE_2 in command VALCHECK callback + uint16_t resp_value_2 = -1; + + // TODO: assign response field VALUE_3 in command VALCHECK callback + uint16_t resp_value_3 = -1; + + // TODO: assign response field VALUE_4 in command VALCHECK callback + uint8_t resp_value_4 = -1; + + // TODO: assign response field VALUE_5 in command VALCHECK callback + uint8_t resp_value_5 = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint32_t((uint32_t)resp_value_0); + communication_response_payload_append_uint32_t((uint32_t)resp_value_1); + communication_response_payload_append_uint16_t((uint16_t)resp_value_2); + communication_response_payload_append_uint16_t((uint16_t)resp_value_3); + communication_response_payload_append_uint8_t((uint8_t)resp_value_4); + communication_response_payload_append_uint8_t((uint8_t)resp_value_5); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/output/templates/commands/command_VERSION.tpl.c b/host/python/codegen/output/templates/commands/command_VERSION.tpl.c new file mode 100644 index 0000000000000000000000000000000000000000..d480555c93a28f4d738bc837ffa113c4c41297a9 --- /dev/null +++ b/host/python/codegen/output/templates/commands/command_VERSION.tpl.c @@ -0,0 +1,68 @@ +// Auto-generated template file: command_VERSION.tpl.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + + +#include "../typedefs.h" +#include "../communication.h" +#include "../hardware.h" + +err_t command_VERSION(void) { + // Command: VERSION + // Description: Report embedded code versioning information + // + // Request code: CMDCODE_VERSION_REQ + // Response code: CMDCODE_VERSION_REQ + // Request payload (length in bytes is 0): + // Response payload (length in bytes is 13): + // field #0 (4 bytes) [type: uint32_t ] : FIRMWARE_TARGET (Target of the firmware) + // field #1 (2 bytes) [type: uint16_t ] : COMMAND_TABLE_VERSION (Version of the current command table) + // field #2 (2 bytes) [type: uint16_t ] : TEMPLATE_GENERATION_YEAR (Template generation year) + // field #3 (1 byte) [type: uint8_t ] : TEMPLATE_GENERATION_MONTH (Template generation month) + // field #4 (1 byte) [type: uint8_t ] : TEMPLATE_GENERATION_DAY (Template generation day) + // field #5 (1 byte) [type: uint8_t ] : TEMPLATE_GENERATION_HOUR (Template generation hour) + // field #6 (1 byte) [type: uint8_t ] : TEMPLATE_GENERATION_MINUTE (Template generation minute) + // field #7 (1 byte) [type: uint8_t ] : TEMPLATE_GENERATION_SECOND (Template generation second) + + // Auto-generated section: request payload fields reading + // End of auto-generated section + + // USER CODE HERE + // TODO implement command callback function command_VERSION + + // TODO: assign response field FIRMWARE_TARGET in command VERSION callback + uint32_t resp_firmware_target = -1; + + // TODO: assign response field COMMAND_TABLE_VERSION in command VERSION callback + uint16_t resp_command_table_version = -1; + + // TODO: assign response field TEMPLATE_GENERATION_YEAR in command VERSION callback + uint16_t resp_template_generation_year = -1; + + // TODO: assign response field TEMPLATE_GENERATION_MONTH in command VERSION callback + uint8_t resp_template_generation_month = -1; + + // TODO: assign response field TEMPLATE_GENERATION_DAY in command VERSION callback + uint8_t resp_template_generation_day = -1; + + // TODO: assign response field TEMPLATE_GENERATION_HOUR in command VERSION callback + uint8_t resp_template_generation_hour = -1; + + // TODO: assign response field TEMPLATE_GENERATION_MINUTE in command VERSION callback + uint8_t resp_template_generation_minute = -1; + + // TODO: assign response field TEMPLATE_GENERATION_SECOND in command VERSION callback + uint8_t resp_template_generation_second = -1; + + // Auto-generated section: response payload fields writing + communication_response_payload_appender_reset(); + communication_response_payload_append_uint32_t((uint32_t)resp_firmware_target); + communication_response_payload_append_uint16_t((uint16_t)resp_command_table_version); + communication_response_payload_append_uint16_t((uint16_t)resp_template_generation_year); + communication_response_payload_append_uint8_t((uint8_t)resp_template_generation_month); + communication_response_payload_append_uint8_t((uint8_t)resp_template_generation_day); + communication_response_payload_append_uint8_t((uint8_t)resp_template_generation_hour); + communication_response_payload_append_uint8_t((uint8_t)resp_template_generation_minute); + communication_response_payload_append_uint8_t((uint8_t)resp_template_generation_second); + return NOERR; + // End of auto-generated section +} diff --git a/host/python/codegen/versioning.pkl b/host/python/codegen/versioning.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1cc940874e412ea8150f63111f1325b526747302 --- /dev/null +++ b/host/python/codegen/versioning.pkl @@ -0,0 +1,2 @@ +I2 +. \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/BPD_MCC_config.mc3 b/micro/BPD-V01-FIRMWARE.X/BPD_MCC_config.mc3 new file mode 100644 index 0000000000000000000000000000000000000000..167ef7085d3f06df27b1b43e92dc7c43330fb1df --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/BPD_MCC_config.mc3 @@ -0,0 +1,5148 @@ +<config configVersion="1.1" device="PIC18F46K22" coreVersion="5.0.2"> + <usedClasses class="java.util.HashMap"> + <entry> + <string>TMR0</string> + <string>class com.microchip.mcc.mcu8.modules.tmr0_v1.TMR0</string> + </entry> + <entry> + <string>System Module</string> + <string>class com.microchip.mcc.mcu8.systemManager.SystemManager</string> + </entry> + <entry> + <string>ADC</string> + <string>class com.microchip.mcc.mcu8.modules.adc.ADC</string> + </entry> + <entry> + <string>FVR</string> + <string>class com.microchip.mcc.mcu8.modules.fvr.FVR</string> + </entry> + <entry> + <string>INTERNAL OSCILLATOR</string> + <string>class com.microchip.mcc.mcu8.systemManager.osc.Osc</string> + </entry> + <entry> + <string>WDT</string> + <string>class com.microchip.mcc.mcu8.systemManager.wdt.WDT</string> + </entry> + <entry> + <string>Pin Module</string> + <string>class com.microchip.mcc.mcu8.pinManager.PinManager</string> + </entry> + <entry> + <string>CCP5</string> + <string>class com.microchip.mcc.mcu8.modules.ccp_v3.CCP</string> + </entry> + <entry> + <string>EUSART1</string> + <string>class com.microchip.mcc.mcu8.modules.eusart.EUSART</string> + </entry> + <entry> + <string>RESET</string> + <string>class com.microchip.mcc.mcu8.systemManager.reset.RESET</string> + </entry> + <entry> + <string>Interrupt Module</string> + <string>class com.microchip.mcc.mcu8.interruptManager.InterruptManager</string> + </entry> + <entry> + <string>TMR2</string> + <string>class com.microchip.mcc.mcu8.modules.tmr2_v3.TMR2</string> + </entry> + </usedClasses> + <usedLibraries class="java.util.ArrayList"> + <ILibraryFile class="com.microchip.mcc.core.library.BaseLibraryFile" libraryClass="com.microchip.mcc.mcu8.Mcu8PeripheralLibrary" version="1.81.7"/> + </usedLibraries> + <tokenMap class="java.util.HashMap"> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="SWTXBufferSize"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB5"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMRCS"/> + <value>FOSC/4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="ADC" registerAlias="ADCON2"/> + <value>61</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="220"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC7" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISC"/> + <value>191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG7H"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB7" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="CSRC"/> + <value>slave_mode</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB5"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC3" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC7" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSTS" alias="clock"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PRISD" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="prescaleDivisor"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="HFOFST"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="ADC" registerAlias="ADRESH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC4"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="pinHiderKey"/> + <value>internal</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="soscPinHiderKey"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISB"/> + <value>255</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADPREF"/> + <value>FVRbuf2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD3"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB4"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS"/> + <value>FOSC/16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB4" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD6" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE0" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD7" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="off/reset"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="BAUDCON"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMRCS" alias="T0CKI"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="compareAssignedTimerDisplay"/> + <value>Timer 1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PSA" alias="not_assigned"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS"/> + <value>FOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB4"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="ADC" registerAlias="ADCON0"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE1" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TMRON" alias="off"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD4"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD5" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IDLEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="MFIntOsc31.25KHzClockInHz"/> + <value>31250</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD6" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB5" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="IESO" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT3" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="validateSignal"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC3"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD6" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="ADC" registerAlias="ADCON1"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="pwmFrequencyDisplay"/> + <value>25000.000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISD"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISE"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD2" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="PD" alias="POR or CLRWDT"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Setoutput"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="order"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD7" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9D"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="tickerFactor"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="UseHighLowPriority"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD3" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD7" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="CDAFVR" alias="2x"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TRMT" alias="TSR_empty"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB7"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE3"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="inputMode"/> + <value>periodMode</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD1"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP3" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB2"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="250KHz_MFINTOSC/2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON"/> + <value>112</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN8"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN7"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB3"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC4" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN9"/> + <value>9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN4"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="CDAFVR" alias="1x"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN3"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN6"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN5"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC6"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN0"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="512"/> + <value>36</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN2"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS"/> + <value>32768</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN1"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TMRON" alias="on"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISA"/> + <value>127</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PRISD" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR3" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="IESO" alias="ON"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="NOSLP"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="CDAFVR" alias="4x"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="PBADEN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="PBADEN"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC5" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IPEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD2"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="250"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="preemptiveHigh"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PLLRDY" alias="NOPLL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="RCIDL" alias="idle"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR"/> + <value>occurred</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB3"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="T08BIT" alias="16-bit"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE2" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PRISD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="CallbackFuncRate"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB2"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="preemptiveLow"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC5"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TXEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA1" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA7" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD3" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="systemClockValue"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="prMatchValue"/> + <value>159</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA3" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB5"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD3" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA7" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="HFOFST" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA6"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA7"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA4"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA5"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA3"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA0"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA1"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomSoftwarePll"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="FERR" alias="error"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="actualPeriod"/> + <value>0.0003</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE2" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="ADON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB0" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC4" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD2"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SPEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="TO" alias="sleep"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB7"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB6" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB5"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="WPUB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB1"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="RCIO6"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CCP5" registerAlias="CCPRH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB6"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB3"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB4"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB1"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA6"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="BRG16" alias="8bit_generator"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB0"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD0"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PRICLKEN" alias="ON"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE1" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="PBADEN" alias="ON"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="285"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC5" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CurrentPllString"/> + <value> (4x PLL)</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB6"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD4"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR0" registerAlias="T0CON"/> + <value>212</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB5" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC6"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC7"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC4"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC5"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC3"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC0"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC1"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE0"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="IPEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE1"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA5"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB0"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC"/> + <value>INTIO67</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG2L"/> + <value>31</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB6" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC4" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="CallbackFuncRate"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IPEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD3"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB2" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="Frc"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="1MHz_HFINTOSC/16"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE2" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD7"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="DCB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD5"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMRSE"/> + <value>Increment_hi_lo</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD6"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD0"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD3"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9"/> + <value>8-bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD4"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD1"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB1" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="prescaledFreq"/> + <value>500000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB7" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="captureAssignedTimerDisplay"/> + <value>Timer 1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC1"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP3MX"/> + <value>PORTB5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB3" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="FERR" alias="no_error"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PLLCFG" alias="ON"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="HFOFST" alias="ON"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="HSMP"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA0" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="CDAFVR" alias="off"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD4" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC2"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB3"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="timerstart"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC6" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD0" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD0"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR2" registerAlias="TMR"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD5" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="FERR"/> + <value>no_error</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD1" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC0"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC5" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA5" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD1"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB0" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="enable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="FOSC/4"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="FOSC/2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC6" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD4" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="8192"/> + <value>52</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="FOSC/8"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB4"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC2" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="tickerFactor"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR2" registerAlias="TCON"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA7"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="baudRateErrorLabel"/> + <value>Error: 0.040 %</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG2H"/> + <value>60</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="TMR0H" settingAlias="TMR0H"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SYNC" alias="synchronous"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SPEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:5"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:4"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:3"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="32"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:9"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="System Module" name="generateMain"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:8"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:7"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="DT1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:6"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="INTCON2" settingAlias="nWPUEN" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="INTSRC"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="clockFreq"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="PWM"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="LFIOFS"/> + <value>not stable</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="LVP" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="BASE_ADDRESS"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="SPBRGL"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="RI" alias="did not occur"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD7" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9" alias="9-bit"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="enable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="4096"/> + <value>48</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA4"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PRICLKEN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="TMRI" settingAlias="order"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="pwmCCPRDisplayValue"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="minPeriod"/> + <value>0.000002</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7H" settingAlias="EBTRB" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TMRI" settingAlias="order"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="EUSART1_TXIISRFunction"/> + <value>TxDefaultInterruptHandler</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="maxPeriod"/> + <value>0.000512</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="16MHz_HFINTOSC"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="RESET" registerAlias="RCON"/> + <value>80</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="16"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="IESO"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDOVF" alias="overflow"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="GO_nDONE"/> + <value>stop</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA5"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="128"/> + <value>28</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="INTCON2" settingAlias="nWPUEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="externalFrequency"/> + <value>100000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTB" alias="OFF"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPRH" settingAlias="CCPRH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="SPBRGH"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR" alias="did not occur"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="HFIOFS" alias="not stable"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="SelectedInterruptIndexHigh"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADNREF" alias="VSS"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADNREF" alias="external"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="MULTI_VECTOR_ENABLE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG3H"/> + <value>191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="RI"/> + <value>did not occur</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="CTMU"/> + <value>channel_CTMU</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="conversionTime"/> + <value>2.875 us</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TCKPS"/> + <value>1:4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPB" alias="OFF"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="requestedPeriod"/> + <value>0.0003</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP2MX" alias="PORTC1"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="HFIntOscClockInHz"/> + <value>16000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="ADON"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomIRFC"/> + <value>16MHz_HFINTOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="P2BMX"/> + <value>PORTD2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:4"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:8"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="pwmResolution"/> + <value>9 bits</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB0"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="LVP" alias="ON"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP2MX" alias="PORTB3"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FCMEN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE1"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA2"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Falling edge"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7H" settingAlias="EBTRB" alias="OFF"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="FVRBuf2"/> + <value>31</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="OERR" alias="error"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTC" alias="OFF"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="dt_pin_direction"/> + <value>out</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="T3CMX"/> + <value>PORTC0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IDLEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADPREF" alias="external"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR" alias="occurred"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS"/> + <value>1:2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS"/> + <value>AN0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="BRG16"/> + <value>16bit_generator</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMR0ON" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA3"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="XINST"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="64"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="ON"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="pwmAssignedTimerDisplay"/> + <value>Timer 2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE2"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="PD"/> + <value>POR or CLRWDT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTB" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AquisitionTime"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="CDAFVR"/> + <value>4x</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG5L"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="16384"/> + <value>56</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="SBORDIS"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA0"/> + <value>AIN_DUL_BRD_TEMP</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATD"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD7"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD6" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IDLEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="STVREN" alias="ON"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="FVR" registerAlias="FVRCON"/> + <value>176</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="t0ckiPin"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="STVREN"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="8MHz_HFINTOSC/2"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPRL" settingAlias="CCPRL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="actpinEnable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:128"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADPREF" alias="FVRbuf2"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:64"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Rising edge"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="ADC_ADIISRFunction"/> + <value>ISR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATE"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="DEBUG"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTD" alias="OFF"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB0"/> + <value>DIN_GLR_B_PG</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="GO_nDONE" alias="start"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB1"/> + <value>AIN_PWB_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TMRI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="TMRI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE2"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC7" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7H" settingAlias="EBTRB"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="16th rising edge"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR0" registerAlias="TMR0L"/> + <value>106</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FCMEN" alias="ON"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA0"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="pllMultiplier"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD4" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPD" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="12"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="BRGH" alias="lo_speed"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA5"/> + <value>AIN_DU_FWR_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SYNC"/> + <value>asynchronous</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA6"/> + <value>DOUT_JP2_LED_D10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB0"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="tmr2freq"/> + <value>12500.000000000002</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA7"/> + <value>DOUT_JP1_LED_D9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Pin Module_RBIISRFunction"/> + <value>ISR_Pin Module_RBI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA1"/> + <value>AIN_VICOR2_TEMP</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="500KHz_MFINTOSC"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA2"/> + <value>AIN_VICOR1_TEMP</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECLPIO6"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA3"/> + <value>AIN_DU_RTN_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA4"/> + <value>DIN_HYDRO_PWR_FLT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPD"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="500KHz_HFINTOSC/32"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL"/> + <value>PWM5timer2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="ADDEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="baudprocessmode"/> + <value>easysetup</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOSEL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="16"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Toggle"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE0"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTC" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="20"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR0" registerAlias="TMR0H"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="TO" alias="POR or CLRWDT"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD5" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TRMT"/> + <value>TSR_empty</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="RCIDL"/> + <value>idle</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="EUSART1_RCIISRFunction"/> + <value>RxDefaultInterruptHandler</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WDT" name="wdtPeriod"/> + <value>131.07200</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Softinterrupt"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE1"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS" alias="SOSC"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SENDB"/> + <value>sync_break_complete</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="CCPPinName"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG5H"/> + <value>192</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="TXSTA"/> + <value>36</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC7"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA1"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="CCP5_CCPIISRFunction"/> + <value>ISR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB1"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="INTCON2" settingAlias="nWPUEN" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC6" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="2048"/> + <value>44</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="SCKP"/> + <value>async_noninverted_sync_fallingedge</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="4MHz_HFINTOSC/4"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMRSE" alias="Increment_hi_lo"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PSA" alias="assigned"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="LVP"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD5"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="validateTMR2"/> + <value>12500.000000000002</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="validateTMR1"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="ADC" registerAlias="ADRESL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="timerPeriodActual"/> + <value>0.00008</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="STVREN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="FVRBuf2"/> + <value>channel_FVRBuf2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB7"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC7" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="Compare Display"/> + <value>Toggle</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD7" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS" alias="FOSC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="MCLRE"/> + <value>EXTMCLR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="TXREG"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTD" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="PrechargeTime"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR2" registerAlias="PR"/> + <value>159</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:32"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="2MHz_HFINTOSC/8"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="FVR" name="cdafvrVoltage"/> + <value>4.096 V</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB6"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPD" alias="OFF"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECMPIO6"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PRICLKEN"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCRUN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="TO"/> + <value>POR or CLRWDT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPB"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD6"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="IVT_NAME"/> + <value>IVT1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="dependentModuleKey"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="31KHz_LFINTOSC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="ON"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="DTRXP"/> + <value>not_inverted</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="OERR" alias="no_error"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPB" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="TMRI" settingAlias="enable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PLLRDY" alias="PLL"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TMRI" settingAlias="enable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG7L"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD6" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD5" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE2" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP2MX"/> + <value>PORTC1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9" alias="9-bit"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB6" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CCP5" registerAlias="CCPTMRS"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMRSE" alias="Increment_lo_hi"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="31KHz_MFINTOSC/16"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TCKPS" alias="1:1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD0"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TCKPS" alias="1:4"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="TUN"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMR0ON"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC6"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADFM"/> + <value>left</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="ccpMode"/> + <value>off/reset</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD3" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA7" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD1"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="PWRTEN" alias="OFF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR" alias="did not occur"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE0"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOSEL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="INTIO7"/> + <value>9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB7" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSC_USED"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="XINST" alias="ON"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomFOSC"/> + <value>Internal oscillator block</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="CREN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPI" settingAlias="order"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD4" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="HFIOFS"/> + <value>not stable</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="4"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="2"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC7"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="8"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="nonpps"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB7" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA0" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE1"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC6" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="SWON"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC2"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:16"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC5" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMRCS" alias="FOSC/4"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="WUE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Clearoutput"/> + <value>9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="HFIOFS" alias="stable"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="baudRateComboBox"/> + <value>19200</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB6"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="FVREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE1"/> + <value>AIN_INPUT_V_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE2"/> + <value>AIN_LBL_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE3"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC5" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE0"/> + <value>AIN_HYDRO_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDOVF" alias="no_overflow"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="FVREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC6" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCGO"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT0"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="PLLEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD4"/> + <value>DOUT_HYDRO_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD5"/> + <value>DOUT_GLR_A_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD6"/> + <value>DOUT_GLR_B_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD7"/> + <value>DOUT_PWB_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="PWRTEN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD3"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD4" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="timerPeriod"/> + <value>0.00008</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC4"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="pllr"/> + <value>PRESENT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TMR" settingAlias="TMR"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="SWRXBufferSize"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA0" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA7" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSCI"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDOVF"/> + <value>no_overflow</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC0"/> + <value>DIN_PWB_PG</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC1"/> + <value>DIN_LBL_PWR_FLT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC2"/> + <value>DIN_GLR_A_FLT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD3" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:10"/> + <value>9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA1" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADNREF"/> + <value>VSS</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT1"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="ADPREF" alias="VDD"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="PrechargeCount"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSCO"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="ADDEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC5"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="PLLEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA1" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB6"/> + <value>DIN_ALRMNEG1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:12"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB7"/> + <value>DIN_ALRMNEG2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:11"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="1024"/> + <value>40</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:14"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:13"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB2"/> + <value>AIN_GLR_A_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="DTRXP" alias="inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:16"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB3"/> + <value>AIN_GLR_B_I_MON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TOUTPS" alias="1:15"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB4"/> + <value>DIN_ALRMPOS1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB5"/> + <value>DIN_ALRMPOS2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD0"/> + <value>DOUT_375V_RTN_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB0" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD1"/> + <value>DOUT_375V_FWR_SWTCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD2"/> + <value>DOUT_ISO_12V_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="CTSEL"/> + <value>Timer 1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD3"/> + <value>DOUT_LBL_SWITCH_ON_OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB6" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE2" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="packageId"/> + <value>TQFP44</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="scsTimer1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="System Module" name="CLOCK_FREQ"/> + <value>31.0 KHz</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD2"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLKOUT_ENABLE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD5" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="DTRXP" alias="not_inverted"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC7"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="BRGH"/> + <value>hi_speed</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC3"/> + <value>DIN_GLR_B_FLT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC4"/> + <value>DIN_PWB_FLT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC5"/> + <value>DIN_GLR_A_PG</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC6"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA3" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="TRIGSEL" alias="CCP5"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP2"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC2" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="PrescalerValue"/> + <value>1:4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="PR" settingAlias="PR"/> + <value>159</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM"/> + <value>off/reset</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT2"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC6"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="MCLRE" alias="EXTMCLR"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="ADDEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC2"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADFM" alias="left"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB3" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSTS" alias="intosc"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="captureMode"/> + <value>Falling edge</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP3MX" alias="PORTE0"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB3"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADRESL" settingAlias="ADRESL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SYNC" alias="asynchronous"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="FVREN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="190"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="clockFreq"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="PLLEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD7" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="4"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP1"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="0"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE0" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB1" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="DEBUG" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB4" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="MFIntOscClockInHz"/> + <value>500000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="tadValue"/> + <value>250.0 ns</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT3"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="compareMode"/> + <value>Toggle</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB1"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="ccpr"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC7"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="250KHz_HFINTOSC/64"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="FVRRDY" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="8"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT" alias="6"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE0"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PSA"/> + <value>assigned</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB0" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV"/> + <value>190</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD1" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="CTMU"/> + <value>29</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA5" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR0"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC3"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FCMEN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SPEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9" alias="8-bit"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TXEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="clockFreqKey"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS"/> + <value>1:32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG1H"/> + <value>40</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD2" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB3" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA6" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRE0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOFS" alias="not stable"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA6"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC4"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="defaultTadValue"/> + <value>11.5 * TAD = </value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP0"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF"/> + <value>16MHz_HFINTOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADRESH" settingAlias="ADRESH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="INTCON2"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRE1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="SCKP" alias="async_inverted_sync_risingedge"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRE2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN0"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="TMR0ON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR1"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN5"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN4"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC3" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN3"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN2"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC3"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN9"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN8"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN7"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN6"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="NOSLP"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="timerselpresence"/> + <value>timerselpresent</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CurrentSystemClockInHz"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomHardwarePll"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC0"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB5"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC7" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC4" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB1" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="SCKP" alias="async_noninverted_sync_fallingedge"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="XINST" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="T08BIT" alias="8-bit"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="RCIDL" alias="bit_received"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC5"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="LFIOFS" alias="stable"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="WUE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA7"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR2"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SENDB" alias="sync_break_complete"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD0" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TCKPS" alias="1:16"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD6" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB4"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC1"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE1" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB5" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="FVRRDY" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="DEBUG" alias="OFF"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL" alias="PWM5timer2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9" alias="8-bit"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="enableInterrupt"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECHPIO6"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="CSRC" alias="slave_mode"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL" alias="PWM5timer4"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL" alias="PWM5timer6"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD7"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOFS"/> + <value>not stable</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC3" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC1" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA2" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN26"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB3" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN25"/> + <value>25</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN24"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN23"/> + <value>23</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD0"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB5"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD2"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN27"/> + <value>27</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC2"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC3"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC4"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECLP"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC5"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN22"/> + <value>22</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB3" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN21"/> + <value>21</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN20"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="INTSRC" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR3"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB2" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA4" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN15"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD0" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="timerstart"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN14"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA4" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB2" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC2" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN13"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="TMR0L" settingAlias="TMR0L"/> + <value>106</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN12"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN19"/> + <value>19</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PLLCFG" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN18"/> + <value>18</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC0"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN17"/> + <value>17</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN16"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB2"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB3"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB4"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB5"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN11"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB6"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="AN10"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB7"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD0" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA0" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB1"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR1" alias="OFF"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="CREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTB"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR0" name="TMR0_TMRIISRFunction"/> + <value>ISR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA3" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="ADON" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC0" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCRUN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="timerPeriodMin"/> + <value>0.0000005</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD1" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB4"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA5" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC1" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="PD" alias="sleep"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA1" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP0" alias="OFF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD1" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="CCPTMRS"/> + <value>CCPTMRS1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE0" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG4L"/> + <value>133</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCGO" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB4" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB1" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB2"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB2" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA4" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE0"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD0" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE2"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD3"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD4"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD5"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD6"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD7"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC2" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECMP"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="256"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA0"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA5" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SENDB" alias="send_sync_break_next"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP3MX" alias="PORTB5"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD3" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB1" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCGO" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="ccpInputPin"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB3" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC3" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="T3CMX" alias="PORTC0"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="XT"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="RCSTA"/> + <value>144</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTC"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TXEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT0" alias="OFF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD5"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TCON" settingAlias="TMRON"/> + <value>on</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC3" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB7"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="T1oscen"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FVR" registerAlias="FVRCON" settingAlias="FVRRDY"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR0" alias="OFF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="4th rising edge"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="T3CMX" alias="PORTB5"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA4"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC0" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB4" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD2" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TRMT" alias="TSR_full"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CCP5" registerAlias="CCPRL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="ExternalClock"/> + <value>1000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOSEL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="31KHz_HFINTOSC/512"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="Capture Display"/> + <value>Falling edge</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA6" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE0" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB0" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="T08BIT"/> + <value>8-bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB3" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="HSHP"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB6"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD0" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE1" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA4" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP3"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB5" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD1" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA2"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB1" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="ccpOutputPin"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE1" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA5" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTD"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="sysClock"/> + <value>8000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN"/> + <value>SBORDIS</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD6"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE0" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC4" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC1" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="CSRC" alias="master_mode"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="WUE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPCON" settingAlias="CCPM" alias="Autoconversion"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA2" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA6" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB4" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB4" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="CK1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT1" alias="OFF"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA2" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD2" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR" alias="occurred"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="CHS" alias="DAC"/> + <value>30</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="TimerPeriodkey"/> + <value>12500.000000000002</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB5" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADFM" alias="right"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB0"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB0"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB5" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCB"/> + <value>240</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP2" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="BRGH" alias="hi_speed"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE1" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="FOSC/16"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN21"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN20"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB5"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN23"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB4"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="templateNameValue"/> + <value>eusart_interrupt</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN22"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB7"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN25"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB6"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN24"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN27"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN26"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="LP"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSTS"/> + <value>intosc</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB5" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC2"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT0" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR0" registerAlias="T0CON" settingAlias="PS" alias="1:256"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC1"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC4"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC3"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA3"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC4" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC0"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR2" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA2" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN10"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC5"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADI" settingAlias="order"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN16"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN18"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN17"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="BRG16" alias="16bit_generator"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="TMR2_TMRIISRFunction"/> + <value>ISR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AN19"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB0" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP3" alias="OFF"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD5"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="FOSC/32"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC3" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB5" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="INTSRC" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA5"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELD"/> + <value>255</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB1" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON1" settingAlias="TRIGSEL"/> + <value>CCP5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="pwmPeriod"/> + <value>4.0E-5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD4"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA6" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD4" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP1" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="clockFreq"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB5" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL" alias="CCP5timer5"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD2" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRE0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRE1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA7"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR0" registerAlias="TMRI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="CREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ACQT"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELE"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR2" registerAlias="TMRI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA4"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB0" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRE2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA6"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT2" alias="OFF"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="USB_LOADED"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA2" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="32768"/> + <value>60</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON0" settingAlias="GO_nDONE" alias="stop"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL" alias="CCP5timer1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC5" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG6L"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR3" alias="OFF"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR2" name="timerPeriodMax"/> + <value>0.000128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CCP5" registerAlias="CCPTMRS" settingAlias="CTSEL" alias="CCP5timer3"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FOSCClockValue"/> + <value>64000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB4" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT1" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA5" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD1" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="P2BMX" alias="PORTD2"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR1" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOFS" alias="stable"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS" alias="INTOSC"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG6H"/> + <value>224</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELB"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP2" alias="OFF"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA3" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9D"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="PR2value"/> + <value>159</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECHP"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="ADC" registerAlias="ADCON2" settingAlias="ADCS" alias="FOSC/64"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB4" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="MCLRE" alias="INTMCLR"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="eusartInterrupts"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="P2BMX" alias="PORTC0"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE0" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR"/> + <value>occurred</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB6" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE2"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD7"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC0" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC7" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB6" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA1"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="order"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD3"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="INTIO67"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD2"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD5"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD4"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP0" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB3" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="RI" alias="occurred"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB0" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD1"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="RC"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CCP5" registerAlias="CCPCON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD0"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB1" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD7"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD6"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT3" alias="OFF"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="order"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB0"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA0"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA1"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA2"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA3"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA4"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA5"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA6"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PLLCFG"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA7"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC1" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR2" alias="OFF"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC6" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="PWRTEN" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="LFIOFS" alias="not stable"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="LFIntOscClockInHz"/> + <value>31000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA2"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="AquisitionCount"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="DAC"/> + <value>channel_DAC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC2" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CCP5" registerAlias="CCPI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCRUN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC0" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR0" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ADC" name="samplingFrequency"/> + <value>119.403 kHz</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="OERR"/> + <value>no_error</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB2" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9"/> + <value>8-bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP1" alias="OFF"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PLLRDY"/> + <value>NOPLL</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD6"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD5" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CCP5" name="pwmDuCyDisplayValue"/> + <value>0.0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT2" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="useStdio"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELA"/> + <value>47</value> + </entry> + </tokenMap> + <generatedFileHashHistoryMap class="java.util.HashMap"> + <entry> + <file>mcc_generated_files/ccp5.c</file> + <hash>d3d1a0e29ab0d237e700f7bd5c0a067fbc73c0568c92f9195fdfddb804325641</hash> + </entry> + <entry> + <file>mcc_generated_files/interrupt_manager.h</file> + <hash>62222cff931c6f10ed6eaeb317caf0f701892a3b53aa4af02f4bbc9920755709</hash> + </entry> + <entry> + <file>mcc_generated_files/fvr.c</file> + <hash>24982a75b542982c020400313ec6e311aa40dbf519f028eccdff1e1b7d489568</hash> + </entry> + <entry> + <file>mcc_generated_files/tmr0.c</file> + <hash>77631caa3c2b5a163e6a041e9cf6a60dace26d2aa2b81f2bc7277b8d20826612</hash> + </entry> + <entry> + <file>mcc_generated_files/pin_manager.h</file> + <hash>63afe0661072367ed7f02048395b49f9b0d2f760e2f246b878b15047d394ba59</hash> + </entry> + <entry> + <file>mcc_generated_files/eusart1.h</file> + <hash>adaab835ea05ef3b79b26fd176fb2a8e6d4fbba509dd821f8e01b946f3839d4d</hash> + </entry> + <entry> + <file>main.c</file> + <hash>87bbe9578cf7703cdbfd9af1caeeb4c11efd4c03fde69c03bbc26710a79b1ca5</hash> + </entry> + <entry> + <file>mcc_generated_files/tmr2.h</file> + <hash>e450ed94162721f5ac2c245378419f8c38f0b9dcc95a4642bb4879b6d61b3312</hash> + </entry> + <entry> + <file>mcc_generated_files/tmr2.c</file> + <hash>ebb169b21ab8afecb20150f9c5cbc326d57004f1fe35f2b1dae82e59c660d136</hash> + </entry> + <entry> + <file>mcc_generated_files/ccp5.h</file> + <hash>4c837e89a497c0da762baf82095622c60cce353373ad6643b9d7a0a2fc66d513</hash> + </entry> + <entry> + <file>mcc_generated_files/adc.h</file> + <hash>97929390d649ab8a3dbad74decc8913595b5af6738f4b7582f54a6cffea4a9f4</hash> + </entry> + <entry> + <file>mcc_generated_files/tmr0.h</file> + <hash>01eb8c30d23fe9dfde3304de2e53f03d8881a6b61213adeeb85fb02cd6161c2e</hash> + </entry> + <entry> + <file>mcc_generated_files/device_config.h</file> + <hash>455315f4857de718383343a0bc9f905e09ceac38bd97f903d8521ad636b9f4b2</hash> + </entry> + <entry> + <file>mcc_generated_files/adc.c</file> + <hash>198e19c5c6435d1bed824bbdc3f045d3d1a7c313d869a9c8828aaf19e0d08344</hash> + </entry> + <entry> + <file>mcc_generated_files/eusart1.c</file> + <hash>e4692685821b770cc006efc6342fbb4e0534cec644499a4035f691ecd451d2aa</hash> + </entry> + <entry> + <file>mcc_generated_files/mcc.h</file> + <hash>eeff4ab321ba83391bc922417fe80acf75f67d6c4e49c2740deba77fc3fc5efb</hash> + </entry> + <entry> + <file>mcc_generated_files/device_config.c</file> + <hash>1a03314d224a4ddfcbee78607808e14e673be22bdfa19b5cdc5906eae36baa31</hash> + </entry> + <entry> + <file>mcc_generated_files/interrupt_manager.c</file> + <hash>e8b9dffb0d70449ea54caa68ec15f385c88175e6485055d92eac8801a039c407</hash> + </entry> + <entry> + <file>mcc_generated_files/fvr.h</file> + <hash>9370db448e1f6eadbd24bcd74ccdc505f1bd34051ea9f1be49baf6fdb0669b45</hash> + </entry> + <entry> + <file>mcc_generated_files/mcc.c</file> + <hash>9c706baea7f5d3f9f01a5516a88090d0159153c0aac4c5026a3d3bed0ae9cefa</hash> + </entry> + <entry> + <file>mcc_generated_files/pin_manager.c</file> + <hash>a5fa123b216f8086f9664a48b9db4d6db74b710f4ccc2b7ab5e99c329a2d0038</hash> + </entry> + </generatedFileHashHistoryMap> + <mc3libFileHashHistoryMap class="java.util.HashMap"/> +</config> \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/generated/sources/commandstable.c b/micro/BPD-V01-FIRMWARE.X/generated/sources/commandstable.c new file mode 100644 index 0000000000000000000000000000000000000000..0956ba2c54e28fe7a05e72ab34900d2becc0344b --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/generated/sources/commandstable.c @@ -0,0 +1,41 @@ +// Auto-generated file: commandstable.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + +#include "commandstable.h" + +// commans info table +command_info_t commands_info_table[COMMANDS_COUNT] = { + { .request_code = CMDCODE_SWITCH_CONTROL_REQ , .response_code = CMDCODE_SWITCH_CONTROL_RESP , .request_payload_len = 2 , .callback_ptr = command_SWITCH_CONTROL }, + { .request_code = CMDCODE_ALARM_ENABLE_REQ , .response_code = CMDCODE_ALARM_ENABLE_RESP , .request_payload_len = 2 , .callback_ptr = command_ALARM_ENABLE }, + { .request_code = CMDCODE_ALARM_TIMEOUT_SET_REQ , .response_code = CMDCODE_ALARM_TIMEOUT_SET_RESP , .request_payload_len = 3 , .callback_ptr = command_ALARM_TIMEOUT_SET }, + { .request_code = CMDCODE_ALARM_TIMEOUT_GET_REQ , .response_code = CMDCODE_ALARM_TIMEOUT_GET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_TIMEOUT_GET }, + { .request_code = CMDCODE_ALARM_MAXCOUNT_GET_REQ , .response_code = CMDCODE_ALARM_MAXCOUNT_GET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_MAXCOUNT_GET }, + { .request_code = CMDCODE_ALARM_MAXCOUNT_RESET_REQ , .response_code = CMDCODE_ALARM_MAXCOUNT_RESET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_MAXCOUNT_RESET }, + { .request_code = CMDCODE_ALARM_THRESHOLD_SET_REQ , .response_code = CMDCODE_ALARM_THRESHOLD_SET_RESP , .request_payload_len = 3 , .callback_ptr = command_ALARM_THRESHOLD_SET }, + { .request_code = CMDCODE_ALARM_THRESHOLD_GET_REQ , .response_code = CMDCODE_ALARM_THRESHOLD_GET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_THRESHOLD_GET }, + { .request_code = CMDCODE_ALARM_FIRED_GET_REQ , .response_code = CMDCODE_ALARM_FIRED_GET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_FIRED_GET }, + { .request_code = CMDCODE_ALARM_FIRED_RESET_REQ , .response_code = CMDCODE_ALARM_FIRED_RESET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_FIRED_RESET }, + { .request_code = CMDCODE_ALARM_FIRECOUNT_GET_REQ , .response_code = CMDCODE_ALARM_FIRECOUNT_GET_RESP , .request_payload_len = 1 , .callback_ptr = command_ALARM_FIRECOUNT_GET }, + { .request_code = CMDCODE_SENSOR_GET_SINGLE_REQ , .response_code = CMDCODE_SENSOR_GET_SINGLE_RESP , .request_payload_len = 1 , .callback_ptr = command_SENSOR_GET_SINGLE }, + { .request_code = CMDCODE_SENSOR_MAXVALUE_RESET_REQ , .response_code = CMDCODE_SENSOR_MAXVALUE_RESET_RESP , .request_payload_len = 1 , .callback_ptr = command_SENSOR_MAXVALUE_RESET }, + { .request_code = CMDCODE_SENSOR_VALUES_GETALL_REQ , .response_code = CMDCODE_SENSOR_VALUES_GETALL_RESP , .request_payload_len = 0 , .callback_ptr = command_SENSOR_VALUES_GETALL }, + { .request_code = CMDCODE_SENSOR_AVERAGE_GETALL_REQ , .response_code = CMDCODE_SENSOR_AVERAGE_GETALL_RESP , .request_payload_len = 0 , .callback_ptr = command_SENSOR_AVERAGE_GETALL }, + { .request_code = CMDCODE_SENSOR_OFFSETS_GETALL_REQ , .response_code = CMDCODE_SENSOR_OFFSETS_GETALL_RESP , .request_payload_len = 0 , .callback_ptr = command_SENSOR_OFFSETS_GETALL }, + { .request_code = CMDCODE_SENSOR_MAXVALUES_GETALL_REQ , .response_code = CMDCODE_SENSOR_MAXVALUES_GETALL_RESP , .request_payload_len = 0 , .callback_ptr = command_SENSOR_MAXVALUES_GETALL }, + { .request_code = CMDCODE_SENSOR_AVERAGING_PRESCALER_SET_REQ , .response_code = CMDCODE_SENSOR_AVERAGING_PRESCALER_SET_RESP , .request_payload_len = 1 , .callback_ptr = command_SENSOR_AVERAGING_PRESCALER_SET }, + { .request_code = CMDCODE_SENSOR_AVERAGING_PRESCALER_GET_REQ , .response_code = CMDCODE_SENSOR_AVERAGING_PRESCALER_GET_RESP , .request_payload_len = 0 , .callback_ptr = command_SENSOR_AVERAGING_PRESCALER_GET }, + { .request_code = CMDCODE_BOARDTIME_REQ , .response_code = CMDCODE_BOARDTIME_RESP , .request_payload_len = 0 , .callback_ptr = command_BOARDTIME }, + { .request_code = CMDCODE_LASTCOMMANDTIME_REQ , .response_code = CMDCODE_LASTCOMMANDTIME_RESP , .request_payload_len = 0 , .callback_ptr = command_LASTCOMMANDTIME }, + { .request_code = CMDCODE_VERSION_REQ , .response_code = CMDCODE_VERSION_RESP , .request_payload_len = 0 , .callback_ptr = command_VERSION }, + { .request_code = CMDCODE_LASTERROR_REQ , .response_code = CMDCODE_LASTERROR_RESP , .request_payload_len = 0 , .callback_ptr = command_LASTERROR }, + { .request_code = CMDCODE_RESCUE_ENABLE_REQ , .response_code = CMDCODE_RESCUE_ENABLE_RESP , .request_payload_len = 1 , .callback_ptr = command_RESCUE_ENABLE }, + { .request_code = CMDCODE_RESCUE_STATUS_GET_REQ , .response_code = CMDCODE_RESCUE_STATUS_GET_RESP , .request_payload_len = 0 , .callback_ptr = command_RESCUE_STATUS_GET }, + { .request_code = CMDCODE_RESCUE_STATUS_RESET_REQ , .response_code = CMDCODE_RESCUE_STATUS_RESET_RESP , .request_payload_len = 0 , .callback_ptr = command_RESCUE_STATUS_RESET }, + { .request_code = CMDCODE_RESCUE_TIMEOUT_SET_REQ , .response_code = CMDCODE_RESCUE_TIMEOUT_SET_RESP , .request_payload_len = 2 , .callback_ptr = command_RESCUE_TIMEOUT_SET }, + { .request_code = CMDCODE_RESCUE_TIMEOUT_GET_REQ , .response_code = CMDCODE_RESCUE_TIMEOUT_GET_RESP , .request_payload_len = 0 , .callback_ptr = command_RESCUE_TIMEOUT_GET }, + { .request_code = CMDCODE_USER_PIN_CONTROL_REQ , .response_code = CMDCODE_USER_PIN_CONTROL_RESP , .request_payload_len = 2 , .callback_ptr = command_USER_PIN_CONTROL }, + { .request_code = CMDCODE_ECHO1_REQ , .response_code = CMDCODE_ECHO1_RESP , .request_payload_len = 1 , .callback_ptr = command_ECHO1 }, + { .request_code = CMDCODE_ECHO4_REQ , .response_code = CMDCODE_ECHO4_RESP , .request_payload_len = 4 , .callback_ptr = command_ECHO4 }, + { .request_code = CMDCODE_ECHO32_REQ , .response_code = CMDCODE_ECHO32_RESP , .request_payload_len = 32 , .callback_ptr = command_ECHO32 }, + { .request_code = CMDCODE_VALCHECK_REQ , .response_code = CMDCODE_VALCHECK_RESP , .request_payload_len = 0 , .callback_ptr = command_VALCHECK } +}; diff --git a/micro/BPD-V01-FIRMWARE.X/generated/sources/commandstable.h b/micro/BPD-V01-FIRMWARE.X/generated/sources/commandstable.h new file mode 100644 index 0000000000000000000000000000000000000000..2d2b9d92ec69c180fb62385c3a274a93e5157663 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/generated/sources/commandstable.h @@ -0,0 +1,199 @@ +// Auto-generated file: commandstable.h +// Generation timestamp: 2021-05-28 16:22:48.444169 + +#ifndef _AUTOGENERATED_COMMANDSTABLE_H +#define _AUTOGENERATED_COMMANDSTABLE_H + +# include "../../typedefs.h" + +// number of defined commands +#define COMMANDS_COUNT 34 + +// make command table available to anyone including this file +extern command_info_t commands_info_table[COMMANDS_COUNT]; + +// Command codes +#define CMDCODE_SWITCH_CONTROL_REQ 64 +#define CMDCODE_SWITCH_CONTROL_RESP 65 +#define CMDCODE_ALARM_ENABLE_REQ 66 +#define CMDCODE_ALARM_ENABLE_RESP 67 +#define CMDCODE_ALARM_TIMEOUT_SET_REQ 68 +#define CMDCODE_ALARM_TIMEOUT_SET_RESP 69 +#define CMDCODE_ALARM_TIMEOUT_GET_REQ 70 +#define CMDCODE_ALARM_TIMEOUT_GET_RESP 71 +#define CMDCODE_ALARM_MAXCOUNT_GET_REQ 72 +#define CMDCODE_ALARM_MAXCOUNT_GET_RESP 73 +#define CMDCODE_ALARM_MAXCOUNT_RESET_REQ 74 +#define CMDCODE_ALARM_MAXCOUNT_RESET_RESP 75 +#define CMDCODE_ALARM_THRESHOLD_SET_REQ 76 +#define CMDCODE_ALARM_THRESHOLD_SET_RESP 77 +#define CMDCODE_ALARM_THRESHOLD_GET_REQ 78 +#define CMDCODE_ALARM_THRESHOLD_GET_RESP 79 +#define CMDCODE_ALARM_FIRED_GET_REQ 80 +#define CMDCODE_ALARM_FIRED_GET_RESP 81 +#define CMDCODE_ALARM_FIRED_RESET_REQ 82 +#define CMDCODE_ALARM_FIRED_RESET_RESP 83 +#define CMDCODE_ALARM_FIRECOUNT_GET_REQ 84 +#define CMDCODE_ALARM_FIRECOUNT_GET_RESP 85 +#define CMDCODE_SENSOR_GET_SINGLE_REQ 86 +#define CMDCODE_SENSOR_GET_SINGLE_RESP 87 +#define CMDCODE_SENSOR_MAXVALUE_RESET_REQ 88 +#define CMDCODE_SENSOR_MAXVALUE_RESET_RESP 89 +#define CMDCODE_SENSOR_VALUES_GETALL_REQ 90 +#define CMDCODE_SENSOR_VALUES_GETALL_RESP 91 +#define CMDCODE_SENSOR_AVERAGE_GETALL_REQ 92 +#define CMDCODE_SENSOR_AVERAGE_GETALL_RESP 93 +#define CMDCODE_SENSOR_OFFSETS_GETALL_REQ 94 +#define CMDCODE_SENSOR_OFFSETS_GETALL_RESP 95 +#define CMDCODE_SENSOR_MAXVALUES_GETALL_REQ 96 +#define CMDCODE_SENSOR_MAXVALUES_GETALL_RESP 97 +#define CMDCODE_SENSOR_AVERAGING_PRESCALER_SET_REQ 98 +#define CMDCODE_SENSOR_AVERAGING_PRESCALER_SET_RESP 99 +#define CMDCODE_SENSOR_AVERAGING_PRESCALER_GET_REQ 100 +#define CMDCODE_SENSOR_AVERAGING_PRESCALER_GET_RESP 101 +#define CMDCODE_BOARDTIME_REQ 102 +#define CMDCODE_BOARDTIME_RESP 103 +#define CMDCODE_LASTCOMMANDTIME_REQ 104 +#define CMDCODE_LASTCOMMANDTIME_RESP 105 +#define CMDCODE_VERSION_REQ 106 +#define CMDCODE_VERSION_RESP 107 +#define CMDCODE_LASTERROR_REQ 108 +#define CMDCODE_LASTERROR_RESP 109 +#define CMDCODE_RESCUE_ENABLE_REQ 110 +#define CMDCODE_RESCUE_ENABLE_RESP 111 +#define CMDCODE_RESCUE_STATUS_GET_REQ 112 +#define CMDCODE_RESCUE_STATUS_GET_RESP 113 +#define CMDCODE_RESCUE_STATUS_RESET_REQ 114 +#define CMDCODE_RESCUE_STATUS_RESET_RESP 115 +#define CMDCODE_RESCUE_TIMEOUT_SET_REQ 116 +#define CMDCODE_RESCUE_TIMEOUT_SET_RESP 117 +#define CMDCODE_RESCUE_TIMEOUT_GET_REQ 118 +#define CMDCODE_RESCUE_TIMEOUT_GET_RESP 119 +#define CMDCODE_USER_PIN_CONTROL_REQ 120 +#define CMDCODE_USER_PIN_CONTROL_RESP 121 +#define CMDCODE_ECHO1_REQ 122 +#define CMDCODE_ECHO1_RESP 123 +#define CMDCODE_ECHO4_REQ 124 +#define CMDCODE_ECHO4_RESP 125 +#define CMDCODE_ECHO32_REQ 126 +#define CMDCODE_ECHO32_RESP 127 +#define CMDCODE_VALCHECK_REQ 128 +#define CMDCODE_VALCHECK_RESP 129 +#define CMDCODE_INVALID_REQ 254 +#define CMDCODE_INVALID_RESP 255 + +// Callback functions + +// Callback for command SWITCH_CONTROL (request code: 64), Control one of the switches or enable lines of the board. Can be used to get the current switch status without changing it (see request payload field status) +err_t command_SWITCH_CONTROL(void); + +// Callback for command ALARM_ENABLE (request code: 66), Enable or disable one of the alarms. Can be used to get the current enable status without changing it (see request payload field) +err_t command_ALARM_ENABLE(void); + +// Callback for command ALARM_TIMEOUT_SET (request code: 68), Set the timeout of one alarm +err_t command_ALARM_TIMEOUT_SET(void); + +// Callback for command ALARM_TIMEOUT_GET (request code: 70), Get the timeout value of one alarm +err_t command_ALARM_TIMEOUT_GET(void); + +// Callback for command ALARM_MAXCOUNT_GET (request code: 72), Get the maximum counter value reached by one of the alarms (use command ALARM_MAXCOUNT_RESET to reset it to zero) +err_t command_ALARM_MAXCOUNT_GET(void); + +// Callback for command ALARM_MAXCOUNT_RESET (request code: 74), Reset the maximum counter value of one alarm (or all alarms) +err_t command_ALARM_MAXCOUNT_RESET(void); + +// Callback for command ALARM_THRESHOLD_SET (request code: 76), Set the threshold value of one analog alarm +err_t command_ALARM_THRESHOLD_SET(void); + +// Callback for command ALARM_THRESHOLD_GET (request code: 78), Get the threshold value of one analog alarm +err_t command_ALARM_THRESHOLD_GET(void); + +// Callback for command ALARM_FIRED_GET (request code: 80), Get the has-fired flag of one alarm (or all alarms OR-ed) +err_t command_ALARM_FIRED_GET(void); + +// Callback for command ALARM_FIRED_RESET (request code: 82), Reset the has-fired flag of one alarm (or all alarms) +err_t command_ALARM_FIRED_RESET(void); + +// Callback for command ALARM_FIRECOUNT_GET (request code: 84), Get the current fire counter of one alarm +err_t command_ALARM_FIRECOUNT_GET(void); + +// Callback for command SENSOR_GET_SINGLE (request code: 86), Get one sensor's current value, offset value, max value, and mean value +err_t command_SENSOR_GET_SINGLE(void); + +// Callback for command SENSOR_MAXVALUE_RESET (request code: 88), Reset the max value of one sensor (or all sensors) +err_t command_SENSOR_MAXVALUE_RESET(void); + +// Callback for command SENSOR_VALUES_GETALL (request code: 90), Get all sensors' values +err_t command_SENSOR_VALUES_GETALL(void); + +// Callback for command SENSOR_AVERAGE_GETALL (request code: 92), Get all sensors' mean values +err_t command_SENSOR_AVERAGE_GETALL(void); + +// Callback for command SENSOR_OFFSETS_GETALL (request code: 94), Get all sensors' offsets +err_t command_SENSOR_OFFSETS_GETALL(void); + +// Callback for command SENSOR_MAXVALUES_GETALL (request code: 96), Get all sensors' max values +err_t command_SENSOR_MAXVALUES_GETALL(void); + +// Callback for command SENSOR_AVERAGING_PRESCALER_SET (request code: 98), Set the value of the prescaler used to compute sensors' averages +err_t command_SENSOR_AVERAGING_PRESCALER_SET(void); + +// Callback for command SENSOR_AVERAGING_PRESCALER_GET (request code: 100), Get the value of the prescaler used to compute sensors' averages +err_t command_SENSOR_AVERAGING_PRESCALER_GET(void); + +// Callback for command BOARDTIME (request code: 102), Time since last reset +err_t command_BOARDTIME(void); + +// Callback for command LASTCOMMANDTIME (request code: 104), Time since last command +err_t command_LASTCOMMANDTIME(void); + +// Callback for command VERSION (request code: 106), Report embedded code versioning information +err_t command_VERSION(void); + +// Callback for command LASTERROR (request code: 108), Return the last occurred error, and reset it to NOERR value +err_t command_LASTERROR(void); + +// Callback for command RESCUE_ENABLE (request code: 110), Enable or disable auto-rescue (or read enable status) +err_t command_RESCUE_ENABLE(void); + +// Callback for command RESCUE_STATUS_GET (request code: 112), Get the auto-rescue current status (fired or not) +err_t command_RESCUE_STATUS_GET(void); + +// Callback for command RESCUE_STATUS_RESET (request code: 114), Reset the auto-rescue current status +err_t command_RESCUE_STATUS_RESET(void); + +// Callback for command RESCUE_TIMEOUT_SET (request code: 116), Set the auto-rescue timeout value +err_t command_RESCUE_TIMEOUT_SET(void); + +// Callback for command RESCUE_TIMEOUT_GET (request code: 118), Get the auto-rescue timeout value +err_t command_RESCUE_TIMEOUT_GET(void); + +// Callback for command USER_PIN_CONTROL (request code: 120), Control one user pin +err_t command_USER_PIN_CONTROL(void); + +// Callback for command ECHO1 (request code: 122), Echo (1 byte) +err_t command_ECHO1(void); + +// Callback for command ECHO4 (request code: 124), Echo (4 bytes) +err_t command_ECHO4(void); + +// Callback for command ECHO32 (request code: 126), Echo (32 bytes) +err_t command_ECHO32(void); + +// Callback for command VALCHECK (request code: 128), Return a some data to check endianness +err_t command_VALCHECK(void); + +// Callback for command INVALID (request code: 254), Invalid command (used in firmware, not implemented) +err_t command_INVALID(void); + +// Versioning data +#define COMMAND_TABLE_VERSION_NUM 2 +#define TEMPLATE_GENERATION_YEAR 2021 +#define TEMPLATE_GENERATION_MONTH 5 +#define TEMPLATE_GENERATION_DAY 28 +#define TEMPLATE_GENERATION_HOUR 16 +#define TEMPLATE_GENERATION_MINUTE 22 +#define TEMPLATE_GENERATION_SECOND 48 + + +#endif // _AUTOGENERATED_COMMANDSTABLE_H diff --git a/micro/BPD-V01-FIRMWARE.X/generated/sources/datatypes.h b/micro/BPD-V01-FIRMWARE.X/generated/sources/datatypes.h new file mode 100644 index 0000000000000000000000000000000000000000..16bab1862ac23249b41035ef0e24a55a87a9c33d --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/generated/sources/datatypes.h @@ -0,0 +1,433 @@ +// Auto-generated file: datatypes.h +// Generation timestamp: 2021-05-28 16:22:48.444169 + +#ifndef _AUTOGENERATED_DATATYPES_H +#define _AUTOGENERATED_DATATYPES_H + + +// FLAG_LBL_PWR_FAULT status +typedef enum { + FLAG_LBL_PWR_FAULT_STATE_LOW = 0, + FLAG_LBL_PWR_FAULT_STATE_HIGH = 1 +} enum_flag_lbl_pwr_fault_state_t; + +#define enum_flag_lbl_pwr_fault_state_t_min FLAG_LBL_PWR_FAULT_STATE_LOW +#define enum_flag_lbl_pwr_fault_state_t_max FLAG_LBL_PWR_FAULT_STATE_HIGH + +// FLAG_DUL_ALARMPOS1 status +typedef enum { + FLAG_DUL_ALARMPOS1_STATE_LOW = 0, + FLAG_DUL_ALARMPOS1_STATE_HIGH = 1 +} enum_flag_dul_alarmpos1_state_t; + +#define enum_flag_dul_alarmpos1_state_t_min FLAG_DUL_ALARMPOS1_STATE_LOW +#define enum_flag_dul_alarmpos1_state_t_max FLAG_DUL_ALARMPOS1_STATE_HIGH + +// Enable state +typedef enum { + ENABLESTATE_DISABLED = 0, + ENABLESTATE_ENABLED = 1 +} enum_enablestate_t; + +#define enum_enablestate_t_min ENABLESTATE_DISABLED +#define enum_enablestate_t_max ENABLESTATE_ENABLED + +// Variable number +typedef enum { + VARIABLE_NUMBER_ALL_MON_DUL_BOARDTEMP = 1, + VARIABLE_NUMBER_ALL_MON_TEMP2 = 2, + VARIABLE_NUMBER_ALL_MON_TEMP1 = 3, + VARIABLE_NUMBER_ALL_MON_VEOC_RTN_I = 4, + VARIABLE_NUMBER_ALL_MON_VEOC_FWR_I = 5, + VARIABLE_NUMBER_ALL_MON_HYDRO_I = 6, + VARIABLE_NUMBER_ALL_MON_INPUT_V = 7, + VARIABLE_NUMBER_ALL_MON_LBL_I = 8, + VARIABLE_NUMBER_ALL_MON_GLRA_I = 9, + VARIABLE_NUMBER_ALL_MON_GLRB_I = 10, + VARIABLE_NUMBER_ALL_MON_PWB_I = 11, + VARIABLE_NUMBER_ALL_FLAG_DUL_ALARMPOS1 = 12, + VARIABLE_NUMBER_ALL_FLAG_DUL_ALARMPOS2 = 13, + VARIABLE_NUMBER_ALL_FLAG_DUL_ALARMNEG1 = 14, + VARIABLE_NUMBER_ALL_FLAG_DUL_ALARMNEG2 = 15, + VARIABLE_NUMBER_ALL_FLAG_HYDRO_PWR_FAULT = 16, + VARIABLE_NUMBER_ALL_FLAG_LBL_PWR_FAULT = 17, + VARIABLE_NUMBER_ALL_FLAG_GLRA_FAULT = 18, + VARIABLE_NUMBER_ALL_FLAG_GLRB_FAULT = 19, + VARIABLE_NUMBER_ALL_FLAG_POWERBOARD_FAULT = 20, + VARIABLE_NUMBER_ALL_FLAG_GLRA_GOOD = 21, + VARIABLE_NUMBER_ALL_FLAG_GLRB_GOOD = 22, + VARIABLE_NUMBER_ALL_FLAG_POWERBOARD_GOOD = 23, + VARIABLE_NUMBER_ALL_ALL_VARIABLES = 24 +} enum_variable_number_all_t; + +#define enum_variable_number_all_t_min VARIABLE_NUMBER_ALL_MON_DUL_BOARDTEMP +#define enum_variable_number_all_t_max VARIABLE_NUMBER_ALL_ALL_VARIABLES + +// FLAG_DUL_ALARMPOS2 status +typedef enum { + FLAG_DUL_ALARMPOS2_STATE_LOW = 0, + FLAG_DUL_ALARMPOS2_STATE_HIGH = 1 +} enum_flag_dul_alarmpos2_state_t; + +#define enum_flag_dul_alarmpos2_state_t_min FLAG_DUL_ALARMPOS2_STATE_LOW +#define enum_flag_dul_alarmpos2_state_t_max FLAG_DUL_ALARMPOS2_STATE_HIGH + +// FLAG_HYDRO_PWR_FAULT status +typedef enum { + FLAG_HYDRO_PWR_FAULT_STATE_LOW = 0, + FLAG_HYDRO_PWR_FAULT_STATE_HIGH = 1 +} enum_flag_hydro_pwr_fault_state_t; + +#define enum_flag_hydro_pwr_fault_state_t_min FLAG_HYDRO_PWR_FAULT_STATE_LOW +#define enum_flag_hydro_pwr_fault_state_t_max FLAG_HYDRO_PWR_FAULT_STATE_HIGH + +// Variable number +typedef enum { + VARIABLE_NUMBER_MON_DUL_BOARDTEMP = 1, + VARIABLE_NUMBER_MON_TEMP2 = 2, + VARIABLE_NUMBER_MON_TEMP1 = 3, + VARIABLE_NUMBER_MON_VEOC_RTN_I = 4, + VARIABLE_NUMBER_MON_VEOC_FWR_I = 5, + VARIABLE_NUMBER_MON_HYDRO_I = 6, + VARIABLE_NUMBER_MON_INPUT_V = 7, + VARIABLE_NUMBER_MON_LBL_I = 8, + VARIABLE_NUMBER_MON_GLRA_I = 9, + VARIABLE_NUMBER_MON_GLRB_I = 10, + VARIABLE_NUMBER_MON_PWB_I = 11, + VARIABLE_NUMBER_FLAG_DUL_ALARMPOS1 = 12, + VARIABLE_NUMBER_FLAG_DUL_ALARMPOS2 = 13, + VARIABLE_NUMBER_FLAG_DUL_ALARMNEG1 = 14, + VARIABLE_NUMBER_FLAG_DUL_ALARMNEG2 = 15, + VARIABLE_NUMBER_FLAG_HYDRO_PWR_FAULT = 16, + VARIABLE_NUMBER_FLAG_LBL_PWR_FAULT = 17, + VARIABLE_NUMBER_FLAG_GLRA_FAULT = 18, + VARIABLE_NUMBER_FLAG_GLRB_FAULT = 19, + VARIABLE_NUMBER_FLAG_POWERBOARD_FAULT = 20, + VARIABLE_NUMBER_FLAG_GLRA_GOOD = 21, + VARIABLE_NUMBER_FLAG_GLRB_GOOD = 22, + VARIABLE_NUMBER_FLAG_POWERBOARD_GOOD = 23 +} enum_variable_number_t; + +#define enum_variable_number_t_min VARIABLE_NUMBER_MON_DUL_BOARDTEMP +#define enum_variable_number_t_max VARIABLE_NUMBER_FLAG_POWERBOARD_GOOD + +// Enable state +typedef enum { + ENABLESTATE_NC_DISABLED = 0, + ENABLESTATE_NC_ENABLED = 1, + ENABLESTATE_NC_NO_CHANGE = 2 +} enum_enablestate_nc_t; + +#define enum_enablestate_nc_t_min ENABLESTATE_NC_DISABLED +#define enum_enablestate_nc_t_max ENABLESTATE_NC_NO_CHANGE + +// Alarm number +typedef enum { + ALARM_NUMBER_EXT_ALARM_SLOW_MON_DUL_BOARDTEMP = 1, + ALARM_NUMBER_EXT_ALARM_FAST_MON_DUL_BOARDTEMP = 2, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_TEMP2 = 3, + ALARM_NUMBER_EXT_ALARM_FAST_MON_TEMP2 = 4, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_TEMP1 = 5, + ALARM_NUMBER_EXT_ALARM_FAST_MON_TEMP1 = 6, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_VEOC_RTN_I = 7, + ALARM_NUMBER_EXT_ALARM_FAST_MON_VEOC_RTN_I = 8, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_VEOC_FWR_I = 9, + ALARM_NUMBER_EXT_ALARM_FAST_MON_VEOC_FWR_I = 10, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_HYDRO_I = 11, + ALARM_NUMBER_EXT_ALARM_FAST_MON_HYDRO_I = 12, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_INPUT_V = 13, + ALARM_NUMBER_EXT_ALARM_FAST_MON_INPUT_V = 14, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_LBL_I = 15, + ALARM_NUMBER_EXT_ALARM_FAST_MON_LBL_I = 16, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_GLRA_I = 17, + ALARM_NUMBER_EXT_ALARM_FAST_MON_GLRA_I = 18, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_GLRB_I = 19, + ALARM_NUMBER_EXT_ALARM_FAST_MON_GLRB_I = 20, + ALARM_NUMBER_EXT_ALARM_SLOW_MON_PWB_I = 21, + ALARM_NUMBER_EXT_ALARM_FAST_MON_PWB_I = 22, + ALARM_NUMBER_EXT_ALARM_FLAG_DUL_ALARMPOS1 = 23, + ALARM_NUMBER_EXT_ALARM_FLAG_DUL_ALARMPOS2 = 24, + ALARM_NUMBER_EXT_ALARM_FLAG_DUL_ALARMNEG1 = 25, + ALARM_NUMBER_EXT_ALARM_FLAG_DUL_ALARMNEG2 = 26, + ALARM_NUMBER_EXT_ALARM_FLAG_HYDRO_PWR_FAULT = 27, + ALARM_NUMBER_EXT_ALARM_FLAG_LBL_PWR_FAULT = 28, + ALARM_NUMBER_EXT_ALARM_FLAG_GLRA_FAULT = 29, + ALARM_NUMBER_EXT_ALARM_FLAG_GLRB_FAULT = 30, + ALARM_NUMBER_EXT_ALARM_FLAG_POWERBOARD_FAULT = 31, + ALARM_NUMBER_EXT_ALARM_FLAG_GLRA_GOOD = 32, + ALARM_NUMBER_EXT_ALARM_FLAG_GLRB_GOOD = 33, + ALARM_NUMBER_EXT_ALARM_FLAG_POWERBOARD_GOOD = 34, + ALARM_NUMBER_EXT_ALARMS_ALL_ORED = 35 +} enum_alarm_number_ext_t; + +#define enum_alarm_number_ext_t_min ALARM_NUMBER_EXT_ALARM_SLOW_MON_DUL_BOARDTEMP +#define enum_alarm_number_ext_t_max ALARM_NUMBER_EXT_ALARMS_ALL_ORED + +// Alarm number +typedef enum { + ALARM_NUMBER_ALARM_SLOW_MON_DUL_BOARDTEMP = 1, + ALARM_NUMBER_ALARM_FAST_MON_DUL_BOARDTEMP = 2, + ALARM_NUMBER_ALARM_SLOW_MON_TEMP2 = 3, + ALARM_NUMBER_ALARM_FAST_MON_TEMP2 = 4, + ALARM_NUMBER_ALARM_SLOW_MON_TEMP1 = 5, + ALARM_NUMBER_ALARM_FAST_MON_TEMP1 = 6, + ALARM_NUMBER_ALARM_SLOW_MON_VEOC_RTN_I = 7, + ALARM_NUMBER_ALARM_FAST_MON_VEOC_RTN_I = 8, + ALARM_NUMBER_ALARM_SLOW_MON_VEOC_FWR_I = 9, + ALARM_NUMBER_ALARM_FAST_MON_VEOC_FWR_I = 10, + ALARM_NUMBER_ALARM_SLOW_MON_HYDRO_I = 11, + ALARM_NUMBER_ALARM_FAST_MON_HYDRO_I = 12, + ALARM_NUMBER_ALARM_SLOW_MON_INPUT_V = 13, + ALARM_NUMBER_ALARM_FAST_MON_INPUT_V = 14, + ALARM_NUMBER_ALARM_SLOW_MON_LBL_I = 15, + ALARM_NUMBER_ALARM_FAST_MON_LBL_I = 16, + ALARM_NUMBER_ALARM_SLOW_MON_GLRA_I = 17, + ALARM_NUMBER_ALARM_FAST_MON_GLRA_I = 18, + ALARM_NUMBER_ALARM_SLOW_MON_GLRB_I = 19, + ALARM_NUMBER_ALARM_FAST_MON_GLRB_I = 20, + ALARM_NUMBER_ALARM_SLOW_MON_PWB_I = 21, + ALARM_NUMBER_ALARM_FAST_MON_PWB_I = 22, + ALARM_NUMBER_ALARM_FLAG_DUL_ALARMPOS1 = 23, + ALARM_NUMBER_ALARM_FLAG_DUL_ALARMPOS2 = 24, + ALARM_NUMBER_ALARM_FLAG_DUL_ALARMNEG1 = 25, + ALARM_NUMBER_ALARM_FLAG_DUL_ALARMNEG2 = 26, + ALARM_NUMBER_ALARM_FLAG_HYDRO_PWR_FAULT = 27, + ALARM_NUMBER_ALARM_FLAG_LBL_PWR_FAULT = 28, + ALARM_NUMBER_ALARM_FLAG_GLRA_FAULT = 29, + ALARM_NUMBER_ALARM_FLAG_GLRB_FAULT = 30, + ALARM_NUMBER_ALARM_FLAG_POWERBOARD_FAULT = 31, + ALARM_NUMBER_ALARM_FLAG_GLRA_GOOD = 32, + ALARM_NUMBER_ALARM_FLAG_GLRB_GOOD = 33, + ALARM_NUMBER_ALARM_FLAG_POWERBOARD_GOOD = 34 +} enum_alarm_number_t; + +#define enum_alarm_number_t_min ALARM_NUMBER_ALARM_SLOW_MON_DUL_BOARDTEMP +#define enum_alarm_number_t_max ALARM_NUMBER_ALARM_FLAG_POWERBOARD_GOOD + +// Switch state +typedef enum { + SWITCHSTATE_NC_OPEN = 0, + SWITCHSTATE_NC_CLOSED = 1, + SWITCHSTATE_NC_NO_CHANGE = 2 +} enum_switchstate_nc_t; + +#define enum_switchstate_nc_t_min SWITCHSTATE_NC_OPEN +#define enum_switchstate_nc_t_max SWITCHSTATE_NC_NO_CHANGE + +// Alarm number +typedef enum { + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_DUL_BOARDTEMP = 1, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_DUL_BOARDTEMP = 2, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_TEMP2 = 3, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_TEMP2 = 4, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_TEMP1 = 5, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_TEMP1 = 6, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_VEOC_RTN_I = 7, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_VEOC_RTN_I = 8, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_VEOC_FWR_I = 9, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_VEOC_FWR_I = 10, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_HYDRO_I = 11, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_HYDRO_I = 12, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_INPUT_V = 13, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_INPUT_V = 14, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_LBL_I = 15, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_LBL_I = 16, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_GLRA_I = 17, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_GLRA_I = 18, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_GLRB_I = 19, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_GLRB_I = 20, + ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_PWB_I = 21, + ALARM_NUMBER_ANALOG_ALARM_FAST_MON_PWB_I = 22 +} enum_alarm_number_analog_t; + +#define enum_alarm_number_analog_t_min ALARM_NUMBER_ANALOG_ALARM_SLOW_MON_DUL_BOARDTEMP +#define enum_alarm_number_analog_t_max ALARM_NUMBER_ANALOG_ALARM_FAST_MON_PWB_I + +// FLAG_GLRA_FAULT status +typedef enum { + FLAG_GLRA_FAULT_STATE_LOW = 0, + FLAG_GLRA_FAULT_STATE_HIGH = 1 +} enum_flag_glra_fault_state_t; + +#define enum_flag_glra_fault_state_t_min FLAG_GLRA_FAULT_STATE_LOW +#define enum_flag_glra_fault_state_t_max FLAG_GLRA_FAULT_STATE_HIGH + +// FLAG_GLRB_FAULT status +typedef enum { + FLAG_GLRB_FAULT_STATE_LOW = 0, + FLAG_GLRB_FAULT_STATE_HIGH = 1 +} enum_flag_glrb_fault_state_t; + +#define enum_flag_glrb_fault_state_t_min FLAG_GLRB_FAULT_STATE_LOW +#define enum_flag_glrb_fault_state_t_max FLAG_GLRB_FAULT_STATE_HIGH + +// Fired state +typedef enum { + FIREDSTATE_NO = 0, + FIREDSTATE_YES = 1 +} enum_firedstate_t; + +#define enum_firedstate_t_min FIREDSTATE_NO +#define enum_firedstate_t_max FIREDSTATE_YES + +// FLAG_POWERBOARD_GOOD status +typedef enum { + FLAG_POWERBOARD_GOOD_STATE_LOW = 0, + FLAG_POWERBOARD_GOOD_STATE_HIGH = 1 +} enum_flag_powerboard_good_state_t; + +#define enum_flag_powerboard_good_state_t_min FLAG_POWERBOARD_GOOD_STATE_LOW +#define enum_flag_powerboard_good_state_t_max FLAG_POWERBOARD_GOOD_STATE_HIGH + +// FLAG_GLRA_GOOD status +typedef enum { + FLAG_GLRA_GOOD_STATE_LOW = 0, + FLAG_GLRA_GOOD_STATE_HIGH = 1 +} enum_flag_glra_good_state_t; + +#define enum_flag_glra_good_state_t_min FLAG_GLRA_GOOD_STATE_LOW +#define enum_flag_glra_good_state_t_max FLAG_GLRA_GOOD_STATE_HIGH + +// FLAG_DUL_ALARMNEG1 status +typedef enum { + FLAG_DUL_ALARMNEG1_STATE_LOW = 0, + FLAG_DUL_ALARMNEG1_STATE_HIGH = 1 +} enum_flag_dul_alarmneg1_state_t; + +#define enum_flag_dul_alarmneg1_state_t_min FLAG_DUL_ALARMNEG1_STATE_LOW +#define enum_flag_dul_alarmneg1_state_t_max FLAG_DUL_ALARMNEG1_STATE_HIGH + +// FLAG_DUL_ALARMNEG2 status +typedef enum { + FLAG_DUL_ALARMNEG2_STATE_LOW = 0, + FLAG_DUL_ALARMNEG2_STATE_HIGH = 1 +} enum_flag_dul_alarmneg2_state_t; + +#define enum_flag_dul_alarmneg2_state_t_min FLAG_DUL_ALARMNEG2_STATE_LOW +#define enum_flag_dul_alarmneg2_state_t_max FLAG_DUL_ALARMNEG2_STATE_HIGH + +// Status +typedef enum { + PINSTATE_LOW = 0, + PINSTATE_HIGH = 1 +} enum_pinstate_t; + +#define enum_pinstate_t_min PINSTATE_LOW +#define enum_pinstate_t_max PINSTATE_HIGH + +// User pin number +typedef enum { + PINNUM_SWITCH_LED_D9 = 1, + PINNUM_SWITCH_LED_D10 = 2 +} enum_pinnum_t; + +#define enum_pinnum_t_min PINNUM_SWITCH_LED_D9 +#define enum_pinnum_t_max PINNUM_SWITCH_LED_D10 + +// Switch number +typedef enum { + SWITCHNUM_SWITCH_VEOC_RETURN = 1, + SWITCHNUM_SWITCH_VEOC_DIRECT = 2, + SWITCHNUM_SWITCH_12V = 3, + SWITCHNUM_SWITCH_LBL = 4, + SWITCHNUM_SWITCH_HYDRO = 5, + SWITCHNUM_SWITCH_GLRA = 6, + SWITCHNUM_SWITCH_GLRB = 7, + SWITCHNUM_SWITCH_PWB = 8 +} enum_switchnum_t; + +#define enum_switchnum_t_min SWITCHNUM_SWITCH_VEOC_RETURN +#define enum_switchnum_t_max SWITCHNUM_SWITCH_PWB + +// FLAG_GLRB_GOOD status +typedef enum { + FLAG_GLRB_GOOD_STATE_LOW = 0, + FLAG_GLRB_GOOD_STATE_HIGH = 1 +} enum_flag_glrb_good_state_t; + +#define enum_flag_glrb_good_state_t_min FLAG_GLRB_GOOD_STATE_LOW +#define enum_flag_glrb_good_state_t_max FLAG_GLRB_GOOD_STATE_HIGH + +// Variable averaging prescaler +typedef enum { + AVERAGINGPRESCALER_1 = 1, + AVERAGINGPRESCALER_2 = 2, + AVERAGINGPRESCALER_3 = 3, + AVERAGINGPRESCALER_4 = 4, + AVERAGINGPRESCALER_5 = 5, + AVERAGINGPRESCALER_6 = 6, + AVERAGINGPRESCALER_7 = 7, + AVERAGINGPRESCALER_8 = 8, + AVERAGINGPRESCALER_9 = 9, + AVERAGINGPRESCALER_10 = 10, + AVERAGINGPRESCALER_11 = 11, + AVERAGINGPRESCALER_12 = 12, + AVERAGINGPRESCALER_13 = 13, + AVERAGINGPRESCALER_14 = 14 +} enum_averagingprescaler_t; + +#define enum_averagingprescaler_t_min AVERAGINGPRESCALER_1 +#define enum_averagingprescaler_t_max AVERAGINGPRESCALER_14 + +// Switch state +typedef enum { + SWITCHSTATE_OPEN = 0, + SWITCHSTATE_CLOSED = 1 +} enum_switchstate_t; + +#define enum_switchstate_t_min SWITCHSTATE_OPEN +#define enum_switchstate_t_max SWITCHSTATE_CLOSED + +// Alarm number +typedef enum { + ALARM_NUMBER_ALL_ALARM_SLOW_MON_DUL_BOARDTEMP = 1, + ALARM_NUMBER_ALL_ALARM_FAST_MON_DUL_BOARDTEMP = 2, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_TEMP2 = 3, + ALARM_NUMBER_ALL_ALARM_FAST_MON_TEMP2 = 4, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_TEMP1 = 5, + ALARM_NUMBER_ALL_ALARM_FAST_MON_TEMP1 = 6, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_VEOC_RTN_I = 7, + ALARM_NUMBER_ALL_ALARM_FAST_MON_VEOC_RTN_I = 8, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_VEOC_FWR_I = 9, + ALARM_NUMBER_ALL_ALARM_FAST_MON_VEOC_FWR_I = 10, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_HYDRO_I = 11, + ALARM_NUMBER_ALL_ALARM_FAST_MON_HYDRO_I = 12, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_INPUT_V = 13, + ALARM_NUMBER_ALL_ALARM_FAST_MON_INPUT_V = 14, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_LBL_I = 15, + ALARM_NUMBER_ALL_ALARM_FAST_MON_LBL_I = 16, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_GLRA_I = 17, + ALARM_NUMBER_ALL_ALARM_FAST_MON_GLRA_I = 18, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_GLRB_I = 19, + ALARM_NUMBER_ALL_ALARM_FAST_MON_GLRB_I = 20, + ALARM_NUMBER_ALL_ALARM_SLOW_MON_PWB_I = 21, + ALARM_NUMBER_ALL_ALARM_FAST_MON_PWB_I = 22, + ALARM_NUMBER_ALL_ALARM_FLAG_DUL_ALARMPOS1 = 23, + ALARM_NUMBER_ALL_ALARM_FLAG_DUL_ALARMPOS2 = 24, + ALARM_NUMBER_ALL_ALARM_FLAG_DUL_ALARMNEG1 = 25, + ALARM_NUMBER_ALL_ALARM_FLAG_DUL_ALARMNEG2 = 26, + ALARM_NUMBER_ALL_ALARM_FLAG_HYDRO_PWR_FAULT = 27, + ALARM_NUMBER_ALL_ALARM_FLAG_LBL_PWR_FAULT = 28, + ALARM_NUMBER_ALL_ALARM_FLAG_GLRA_FAULT = 29, + ALARM_NUMBER_ALL_ALARM_FLAG_GLRB_FAULT = 30, + ALARM_NUMBER_ALL_ALARM_FLAG_POWERBOARD_FAULT = 31, + ALARM_NUMBER_ALL_ALARM_FLAG_GLRA_GOOD = 32, + ALARM_NUMBER_ALL_ALARM_FLAG_GLRB_GOOD = 33, + ALARM_NUMBER_ALL_ALARM_FLAG_POWERBOARD_GOOD = 34, + ALARM_NUMBER_ALL_ALARMS_ALL = 35 +} enum_alarm_number_all_t; + +#define enum_alarm_number_all_t_min ALARM_NUMBER_ALL_ALARM_SLOW_MON_DUL_BOARDTEMP +#define enum_alarm_number_all_t_max ALARM_NUMBER_ALL_ALARMS_ALL + +// FLAG_POWERBOARD_FAULT status +typedef enum { + FLAG_POWERBOARD_FAULT_STATE_LOW = 0, + FLAG_POWERBOARD_FAULT_STATE_HIGH = 1 +} enum_flag_powerboard_fault_state_t; + +#define enum_flag_powerboard_fault_state_t_min FLAG_POWERBOARD_FAULT_STATE_LOW +#define enum_flag_powerboard_fault_state_t_max FLAG_POWERBOARD_FAULT_STATE_HIGH + + +#endif // _AUTOGENERATED_DATATYPES_H diff --git a/micro/BPD-V01-FIRMWARE.X/generated/sources/variables.c b/micro/BPD-V01-FIRMWARE.X/generated/sources/variables.c new file mode 100644 index 0000000000000000000000000000000000000000..0f15ea9b42b74903dc529345f051bbbcb0bbb852 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/generated/sources/variables.c @@ -0,0 +1,899 @@ +// Auto-generated file: variables.c +// Generation timestamp: 2021-05-28 16:22:48.444169 + +#include "variables.h" +# include "../../configuration.h" + +analog_variable_t analog_variables[ANALOG_VARIABLES_COUNT] = { +// Variable: MON_DUL_BOARDTEMP (DUL board temperature sensor) +{ + .channel = 0, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 35200, // 60.0 C + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 35200, // 60.0 C + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_DUL_BOARDTEMP + } +},// Variable: MON_TEMP2 (VICOR2 Heatsink (connector J12) temperature sensor signal acquisition) +{ + .channel = 1, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 28343, // 60.0 C + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 28343, // 60.0 C + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_TEMP2 + } +},// Variable: MON_TEMP1 (VICOR1 Heatsink (connector J1) temperature sensor signal acquisition ) +{ + .channel = 2, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 28343, // 60.0 C + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 28343, // 60.0 C + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_TEMP1 + } +},// Variable: MON_VEOC_RTN_I (DU backbone return current sensor signal acquisition ) +{ + .channel = 3, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = true, + .threshold = 63760, // 2.5 A + .timeout = 1, // 5.0 ms (6.6 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = true, + .threshold = 46960, // 1.5 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_VEOC_RTN_I + } +},// Variable: MON_VEOC_FWR_I (DU backbone forward current sensor signal acquisition ) +{ + .channel = 4, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = true, + .threshold = 62080, // 2.4 A + .timeout = 1, // 5.0 ms (6.6 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = true, + .threshold = 45280, // 1.4 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_VEOC_FWR_I + } +},// Variable: MON_HYDRO_I (HYDRO current sensor signal acquisition ) +{ + .channel = 5, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 63000, // 0.35 A + .timeout = 8, // 50.0 ms (52.8 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 27000, // 0.15 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_HYDRO_I + } +},// Variable: MON_INPUT_V (Main Input Line voltage sensor signal acquisition ) +{ + .channel = 6, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 32400, // 405.0 V + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 32400, // 405.0 V + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_INPUT_V + } +},// Variable: MON_LBL_I (LBL current sensor signal acquisition ) +{ + .channel = 7, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 61714, // 0.6 A + .timeout = 8, // 50.0 ms (52.8 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 51429, // 0.5 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_LBL_I + } +},// Variable: MON_GLRA_I (GLENAIR-A current sensor signal acquisition) +{ + .channel = 8, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 65208, // 6.0 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 65208, // 6.0 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_GLRA_I + } +},// Variable: MON_GLRB_I (GLENAIR-B current sensor signal acquisition) +{ + .channel = 9, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 65208, // 6.0 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 65208, // 6.0 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_GLRB_I + } +},// Variable: MON_PWB_I (POWER BOARD current sensor signal acquisition) +{ + .channel = 10, + .value = 0, + .sum_curr = 0, + .sum_last = 0, + .sum_counter = 0, + .offset = 0, + .value_max = 0, + .alarms = { + .fast = { + .enabled = false, + .threshold = 39877, // 1.8 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .slow = { + .enabled = false, + .threshold = 39877, // 1.8 A + .timeout = 15, // 100.0 ms (99.0 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0 + }, + .callback = alarm_MON_PWB_I + } +}}; + +#include "../../mcc_generated_files/mcc.h" + +digital_variable_t digital_variables[DIGITAL_VARIABLES_COUNT] = { +// Variable: FLAG_DUL_ALARMPOS1 (DUL current limiting on VEOC direct alarm 1) +{ + .readfunc = ioread_DIN_ALRMPOS1, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_DUL_ALARMPOS1_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_DUL_ALARMPOS1 + } +},// Variable: FLAG_DUL_ALARMPOS2 (DUL current limiting on VEOC direct alarm 2) +{ + .readfunc = ioread_DIN_ALRMPOS2, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_DUL_ALARMPOS2_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_DUL_ALARMPOS2 + } +},// Variable: FLAG_DUL_ALARMNEG1 (DUL current limiting on VEOC return alarm 1) +{ + .readfunc = ioread_DIN_ALRMNEG1, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_DUL_ALARMNEG1_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_DUL_ALARMNEG1 + } +},// Variable: FLAG_DUL_ALARMNEG2 (DUL current limiting on VEOC return alarm 2) +{ + .readfunc = ioread_DIN_ALRMNEG2, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_DUL_ALARMNEG2_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_DUL_ALARMNEG2 + } +},// Variable: FLAG_HYDRO_PWR_FAULT (Fault status acquisition of 12V ISO HYDRO power line) +{ + .readfunc = ioread_DIN_HYDRO_PWR_FLT, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_HYDRO_PWR_FAULT_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_HYDRO_PWR_FAULT + } +},// Variable: FLAG_LBL_PWR_FAULT (Fault status acquisition of 12V ISO LBL power line) +{ + .readfunc = ioread_DIN_LBL_PWR_FLT, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_LBL_PWR_FAULT_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_LBL_PWR_FAULT + } +},// Variable: FLAG_GLRA_FAULT (Fault status acquisition of 12V GLENAIR-A power line) +{ + .readfunc = ioread_DIN_GLR_A_FLT, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_GLRA_FAULT_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_GLRA_FAULT + } +},// Variable: FLAG_GLRB_FAULT (Fault status acquisition of 12V GLENAIR-B power line) +{ + .readfunc = ioread_DIN_GLR_B_FLT, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_GLRB_FAULT_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_GLRB_FAULT + } +},// Variable: FLAG_POWERBOARD_FAULT (Fault status acquisition of 12V POWER BOARD power line) +{ + .readfunc = ioread_DIN_PWB_FLT, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_POWERBOARD_FAULT_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_POWERBOARD_FAULT + } +},// Variable: FLAG_GLRA_GOOD (Power good status acquisition of 12V GLENAIR-A power line) +{ + .readfunc = ioread_DIN_GLR_A_PG, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_GLRA_GOOD_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_GLRA_GOOD + } +},// Variable: FLAG_GLRB_GOOD (Power good status acquisition of 12V GLENAIR-B power line) +{ + .readfunc = ioread_DIN_GLR_B_PG, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_GLRB_GOOD_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_GLRB_GOOD + } +},// Variable: FLAG_POWERBOARD_GOOD (Power good status acquisition of 12V POWER BOARD power line) +{ + .readfunc = ioread_DIN_PWB_PG, + .value = 0, + .value_max = 0, + .alarm = { + .enabled = DEFAULT_FLAG_POWERBOARD_GOOD_ENABLED, + .timeout = 19, // 1.5 ms (1.52 ms real) + .timeout_counter = 0, + .timeout_counter_max = 0, + .firecount = 0, + .callback = alarm_FLAG_POWERBOARD_GOOD + } +}}; + +// IO read function for variable FLAG_DUL_ALARMPOS1 +digital_value_t ioread_DIN_ALRMPOS1(void) { + return (digital_value_t)(0 != DIN_ALRMPOS1_GetValue()); +} + + +// IO read function for variable FLAG_DUL_ALARMPOS2 +digital_value_t ioread_DIN_ALRMPOS2(void) { + return (digital_value_t)(0 != DIN_ALRMPOS2_GetValue()); +} + + +// IO read function for variable FLAG_DUL_ALARMNEG1 +digital_value_t ioread_DIN_ALRMNEG1(void) { + return (digital_value_t)(0 != DIN_ALRMNEG1_GetValue()); +} + + +// IO read function for variable FLAG_DUL_ALARMNEG2 +digital_value_t ioread_DIN_ALRMNEG2(void) { + return (digital_value_t)(0 != DIN_ALRMNEG2_GetValue()); +} + + +// IO read function for variable FLAG_HYDRO_PWR_FAULT +digital_value_t ioread_DIN_HYDRO_PWR_FLT(void) { + return (digital_value_t)(0 != DIN_HYDRO_PWR_FLT_GetValue()); +} + + +// IO read function for variable FLAG_LBL_PWR_FAULT +digital_value_t ioread_DIN_LBL_PWR_FLT(void) { + return (digital_value_t)(0 != DIN_LBL_PWR_FLT_GetValue()); +} + + +// IO read function for variable FLAG_GLRA_FAULT +digital_value_t ioread_DIN_GLR_A_FLT(void) { + return (digital_value_t)(0 != DIN_GLR_A_FLT_GetValue()); +} + + +// IO read function for variable FLAG_GLRB_FAULT +digital_value_t ioread_DIN_GLR_B_FLT(void) { + return (digital_value_t)(0 != DIN_GLR_B_FLT_GetValue()); +} + + +// IO read function for variable FLAG_POWERBOARD_FAULT +digital_value_t ioread_DIN_PWB_FLT(void) { + return (digital_value_t)(0 != DIN_PWB_FLT_GetValue()); +} + + +// IO read function for variable FLAG_GLRA_GOOD +digital_value_t ioread_DIN_GLR_A_PG(void) { + return (digital_value_t)(0 != DIN_GLR_A_PG_GetValue()); +} + + +// IO read function for variable FLAG_GLRB_GOOD +digital_value_t ioread_DIN_GLR_B_PG(void) { + return (digital_value_t)(0 != DIN_GLR_B_PG_GetValue()); +} + + +// IO read function for variable FLAG_POWERBOARD_GOOD +digital_value_t ioread_DIN_PWB_PG(void) { + return (digital_value_t)(0 != DIN_PWB_PG_GetValue()); +} + + +switches_t switches = { + .state_SWITCH_VEOC_RETURN = SWITCHSTATE_OPEN, + .state_SWITCH_VEOC_DIRECT = SWITCHSTATE_OPEN, + .state_SWITCH_12V = SWITCHSTATE_OPEN, + .state_SWITCH_LBL = SWITCHSTATE_OPEN, + .state_SWITCH_HYDRO = SWITCHSTATE_OPEN, + .state_SWITCH_GLRA = SWITCHSTATE_OPEN, + .state_SWITCH_GLRB = SWITCHSTATE_OPEN, + .state_SWITCH_PWB = SWITCHSTATE_OPEN +}; + + +// close switch SWITCH_VEOC_RETURN and update switch structure +void switch_SWITCH_VEOC_RETURN_set_closed(void) { + DOUT_375V_RTN_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_VEOC_RETURN = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_VEOC_RETURN and update switch structure +void switch_SWITCH_VEOC_RETURN_set_open(void) { + DOUT_375V_RTN_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_VEOC_RETURN = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_VEOC_RETURN and update switch structure +void switch_SWITCH_VEOC_RETURN_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_VEOC_RETURN_set_closed(); + }else{ + switch_SWITCH_VEOC_RETURN_set_open(); + } +} + +// get switch SWITCH_VEOC_RETURN current status +enum_switchstate_t switch_SWITCH_VEOC_RETURN_get(void) { + return switches.state_SWITCH_VEOC_RETURN; +} + + +// close switch SWITCH_VEOC_DIRECT and update switch structure +void switch_SWITCH_VEOC_DIRECT_set_closed(void) { + DOUT_375V_FWR_SWTCH_ON_OFF_SetHigh(); + switches.state_SWITCH_VEOC_DIRECT = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_VEOC_DIRECT and update switch structure +void switch_SWITCH_VEOC_DIRECT_set_open(void) { + DOUT_375V_FWR_SWTCH_ON_OFF_SetLow(); + switches.state_SWITCH_VEOC_DIRECT = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_VEOC_DIRECT and update switch structure +void switch_SWITCH_VEOC_DIRECT_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_VEOC_DIRECT_set_closed(); + }else{ + switch_SWITCH_VEOC_DIRECT_set_open(); + } +} + +// get switch SWITCH_VEOC_DIRECT current status +enum_switchstate_t switch_SWITCH_VEOC_DIRECT_get(void) { + return switches.state_SWITCH_VEOC_DIRECT; +} + + +// close switch SWITCH_12V and update switch structure +void switch_SWITCH_12V_set_closed(void) { + DOUT_ISO_12V_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_12V = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_12V and update switch structure +void switch_SWITCH_12V_set_open(void) { + DOUT_ISO_12V_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_12V = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_12V and update switch structure +void switch_SWITCH_12V_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_12V_set_closed(); + }else{ + switch_SWITCH_12V_set_open(); + } +} + +// get switch SWITCH_12V current status +enum_switchstate_t switch_SWITCH_12V_get(void) { + return switches.state_SWITCH_12V; +} + + +// close switch SWITCH_LBL and update switch structure +void switch_SWITCH_LBL_set_closed(void) { + DOUT_LBL_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_LBL = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_LBL and update switch structure +void switch_SWITCH_LBL_set_open(void) { + DOUT_LBL_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_LBL = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_LBL and update switch structure +void switch_SWITCH_LBL_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_LBL_set_closed(); + }else{ + switch_SWITCH_LBL_set_open(); + } +} + +// get switch SWITCH_LBL current status +enum_switchstate_t switch_SWITCH_LBL_get(void) { + return switches.state_SWITCH_LBL; +} + + +// close switch SWITCH_HYDRO and update switch structure +void switch_SWITCH_HYDRO_set_closed(void) { + DOUT_HYDRO_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_HYDRO = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_HYDRO and update switch structure +void switch_SWITCH_HYDRO_set_open(void) { + DOUT_HYDRO_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_HYDRO = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_HYDRO and update switch structure +void switch_SWITCH_HYDRO_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_HYDRO_set_closed(); + }else{ + switch_SWITCH_HYDRO_set_open(); + } +} + +// get switch SWITCH_HYDRO current status +enum_switchstate_t switch_SWITCH_HYDRO_get(void) { + return switches.state_SWITCH_HYDRO; +} + + +// close switch SWITCH_GLRA and update switch structure +void switch_SWITCH_GLRA_set_closed(void) { + DOUT_GLR_A_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_GLRA = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_GLRA and update switch structure +void switch_SWITCH_GLRA_set_open(void) { + DOUT_GLR_A_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_GLRA = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_GLRA and update switch structure +void switch_SWITCH_GLRA_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_GLRA_set_closed(); + }else{ + switch_SWITCH_GLRA_set_open(); + } +} + +// get switch SWITCH_GLRA current status +enum_switchstate_t switch_SWITCH_GLRA_get(void) { + return switches.state_SWITCH_GLRA; +} + + +// close switch SWITCH_GLRB and update switch structure +void switch_SWITCH_GLRB_set_closed(void) { + DOUT_GLR_B_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_GLRB = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_GLRB and update switch structure +void switch_SWITCH_GLRB_set_open(void) { + DOUT_GLR_B_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_GLRB = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_GLRB and update switch structure +void switch_SWITCH_GLRB_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_GLRB_set_closed(); + }else{ + switch_SWITCH_GLRB_set_open(); + } +} + +// get switch SWITCH_GLRB current status +enum_switchstate_t switch_SWITCH_GLRB_get(void) { + return switches.state_SWITCH_GLRB; +} + + +// close switch SWITCH_PWB and update switch structure +void switch_SWITCH_PWB_set_closed(void) { + DOUT_PWB_SWITCH_ON_OFF_SetHigh(); + switches.state_SWITCH_PWB = SWITCHSTATE_CLOSED; +} + +// open switch SWITCH_PWB and update switch structure +void switch_SWITCH_PWB_set_open(void) { + DOUT_PWB_SWITCH_ON_OFF_SetLow(); + switches.state_SWITCH_PWB = SWITCHSTATE_OPEN; +} + +// set state of switch SWITCH_PWB and update switch structure +void switch_SWITCH_PWB_set(enum_switchstate_t _state) { + if(_state == SWITCHSTATE_CLOSED) { + switch_SWITCH_PWB_set_closed(); + }else{ + switch_SWITCH_PWB_set_open(); + } +} + +// get switch SWITCH_PWB current status +enum_switchstate_t switch_SWITCH_PWB_get(void) { + return switches.state_SWITCH_PWB; +} + + +// return the switch state set function by switch enum +switch_state_set_func_t switch_get_function_set_by_enum(enum_switchnum_t _switch_index) { + switch(_switch_index) { + case SWITCHNUM_SWITCH_VEOC_RETURN: return switch_SWITCH_VEOC_RETURN_set; + case SWITCHNUM_SWITCH_VEOC_DIRECT: return switch_SWITCH_VEOC_DIRECT_set; + case SWITCHNUM_SWITCH_12V: return switch_SWITCH_12V_set; + case SWITCHNUM_SWITCH_LBL: return switch_SWITCH_LBL_set; + case SWITCHNUM_SWITCH_HYDRO: return switch_SWITCH_HYDRO_set; + case SWITCHNUM_SWITCH_GLRA: return switch_SWITCH_GLRA_set; + case SWITCHNUM_SWITCH_GLRB: return switch_SWITCH_GLRB_set; + case SWITCHNUM_SWITCH_PWB: return switch_SWITCH_PWB_set; + } + // this should never be reached + error_die_forever(); + // but, just in case (if we neutralize the error function): + return switch_SWITCH_PWB_set; +} + +// return the switch state get function by switch enum +switch_state_get_func_t switch_get_function_get_by_enum(enum_switchnum_t _switch_index) { + switch(_switch_index) { + case SWITCHNUM_SWITCH_VEOC_RETURN: return switch_SWITCH_VEOC_RETURN_get; + case SWITCHNUM_SWITCH_VEOC_DIRECT: return switch_SWITCH_VEOC_DIRECT_get; + case SWITCHNUM_SWITCH_12V: return switch_SWITCH_12V_get; + case SWITCHNUM_SWITCH_LBL: return switch_SWITCH_LBL_get; + case SWITCHNUM_SWITCH_HYDRO: return switch_SWITCH_HYDRO_get; + case SWITCHNUM_SWITCH_GLRA: return switch_SWITCH_GLRA_get; + case SWITCHNUM_SWITCH_GLRB: return switch_SWITCH_GLRB_get; + case SWITCHNUM_SWITCH_PWB: return switch_SWITCH_PWB_get; + } + // this should never be reached + error_die_forever(); + // but, just in case (if we neutralize the error function): + return switch_SWITCH_PWB_get; +} + + +userpins_t userpins = { + .state_SWITCH_LED_D9 = PINSTATE_LOW, + .state_SWITCH_LED_D10 = PINSTATE_LOW +}; + + +// set pin SWITCH_LED_D9 high and update userpins structure +void userpin_SWITCH_LED_D9_set_high(void) { + DOUT_JP1_LED_D9_SetHigh(); + userpins.state_SWITCH_LED_D9 = PINSTATE_HIGH; +} + +// set pin SWITCH_LED_D9 low and update userpins structure +void userpin_SWITCH_LED_D9_set_low(void) { + DOUT_JP1_LED_D9_SetLow(); + userpins.state_SWITCH_LED_D9 = PINSTATE_LOW; +} + +// set state of userpin SWITCH_LED_D9 and update userpins structure +void userpin_SWITCH_LED_D9_set(enum_pinstate_t _state) { + if(_state == PINSTATE_HIGH) { + userpin_SWITCH_LED_D9_set_high(); + }else{ + userpin_SWITCH_LED_D9_set_low(); + } +} + +// get user pin SWITCH_LED_D9 current status +enum_pinstate_t userpin_SWITCH_LED_D9_get(void) { + return userpins.state_SWITCH_LED_D9; +} + + +// set pin SWITCH_LED_D10 high and update userpins structure +void userpin_SWITCH_LED_D10_set_high(void) { + DOUT_JP2_LED_D10_SetHigh(); + userpins.state_SWITCH_LED_D10 = PINSTATE_HIGH; +} + +// set pin SWITCH_LED_D10 low and update userpins structure +void userpin_SWITCH_LED_D10_set_low(void) { + DOUT_JP2_LED_D10_SetLow(); + userpins.state_SWITCH_LED_D10 = PINSTATE_LOW; +} + +// set state of userpin SWITCH_LED_D10 and update userpins structure +void userpin_SWITCH_LED_D10_set(enum_pinstate_t _state) { + if(_state == PINSTATE_HIGH) { + userpin_SWITCH_LED_D10_set_high(); + }else{ + userpin_SWITCH_LED_D10_set_low(); + } +} + +// get user pin SWITCH_LED_D10 current status +enum_pinstate_t userpin_SWITCH_LED_D10_get(void) { + return userpins.state_SWITCH_LED_D10; +} + + +// return the user pin state set function by user pin enum +userpin_state_set_func_t userpin_get_function_set_by_enum(enum_pinnum_t _userpin_index) { + switch(_userpin_index) { + case PINNUM_SWITCH_LED_D9: return userpin_SWITCH_LED_D9_set; + case PINNUM_SWITCH_LED_D10: return userpin_SWITCH_LED_D10_set; + } + // this should never be reached + error_die_forever(); + // but, just in case (if we neutralize the error function): + return userpin_SWITCH_LED_D10_set; +} + +// return the user pin state get function by user pin enum +userpin_state_get_func_t userpin_get_function_get_by_enum(enum_pinnum_t _userpin_index) { + switch(_userpin_index) { + case PINNUM_SWITCH_LED_D9: return userpin_SWITCH_LED_D9_get; + case PINNUM_SWITCH_LED_D10: return userpin_SWITCH_LED_D10_get; + } + // this should never be reached + error_die_forever(); + // but, just in case (if we neutralize the error function): + return userpin_SWITCH_LED_D10_get; +} + diff --git a/micro/BPD-V01-FIRMWARE.X/generated/sources/variables.h b/micro/BPD-V01-FIRMWARE.X/generated/sources/variables.h new file mode 100644 index 0000000000000000000000000000000000000000..20868239395a8c0d2a616bf3c787657fdc551e7c --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/generated/sources/variables.h @@ -0,0 +1,283 @@ +// Auto-generated file: variables.h +// Generation timestamp: 2021-05-28 16:22:48.444169 + +#ifndef _AUTOGENERATED_VARIABLES_H +#define _AUTOGENERATED_VARIABLES_H + + +#include "../../typedefs.h" + +// analog reading info structure +typedef struct { + analog_channel_t channel; // ADC channel from which the variable can be read + analog_value_t value; // last acquired value + analog_variable_sum_t sum_curr; // current sum (to compute average) + analog_variable_sum_t sum_last; // last computed sum + analog_variable_sum_counter_t sum_counter; // current count for sum computation + analog_value_t offset; // offset value + analog_value_t value_max; // max value acquired + analogalarm_dual_info_t alarms; // structure maintaining all the info related to the slow and fast alarms +} analog_variable_t; + +// number of defined analog variables +#define ANALOG_VARIABLES_COUNT 11 + +#define ANALOG_VARIABLE_INDEX_MON_DUL_BOARDTEMP 0 // index of the analog variable MON_DUL_BOARDTEMP inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_TEMP2 1 // index of the analog variable MON_TEMP2 inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_TEMP1 2 // index of the analog variable MON_TEMP1 inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_VEOC_RTN_I 3 // index of the analog variable MON_VEOC_RTN_I inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_VEOC_FWR_I 4 // index of the analog variable MON_VEOC_FWR_I inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_HYDRO_I 5 // index of the analog variable MON_HYDRO_I inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_INPUT_V 6 // index of the analog variable MON_INPUT_V inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_LBL_I 7 // index of the analog variable MON_LBL_I inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_GLRA_I 8 // index of the analog variable MON_GLRA_I inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_GLRB_I 9 // index of the analog variable MON_GLRB_I inside analog_variables array +#define ANALOG_VARIABLE_INDEX_MON_PWB_I 10 // index of the analog variable MON_PWB_I inside analog_variables array + +// make analog variable list available to anyone including this file +extern analog_variable_t analog_variables[ANALOG_VARIABLES_COUNT]; + +// Callback function for alarm on analog variable MON_DUL_BOARDTEMP (DUL board temperature sensor) +void alarm_MON_DUL_BOARDTEMP(); + +// Callback function for alarm on analog variable MON_TEMP2 (VICOR2 Heatsink (connector J12) temperature sensor signal acquisition) +void alarm_MON_TEMP2(); + +// Callback function for alarm on analog variable MON_TEMP1 (VICOR1 Heatsink (connector J1) temperature sensor signal acquisition ) +void alarm_MON_TEMP1(); + +// Callback function for alarm on analog variable MON_VEOC_RTN_I (DU backbone return current sensor signal acquisition ) +void alarm_MON_VEOC_RTN_I(); + +// Callback function for alarm on analog variable MON_VEOC_FWR_I (DU backbone forward current sensor signal acquisition ) +void alarm_MON_VEOC_FWR_I(); + +// Callback function for alarm on analog variable MON_HYDRO_I (HYDRO current sensor signal acquisition ) +void alarm_MON_HYDRO_I(); + +// Callback function for alarm on analog variable MON_INPUT_V (Main Input Line voltage sensor signal acquisition ) +void alarm_MON_INPUT_V(); + +// Callback function for alarm on analog variable MON_LBL_I (LBL current sensor signal acquisition ) +void alarm_MON_LBL_I(); + +// Callback function for alarm on analog variable MON_GLRA_I (GLENAIR-A current sensor signal acquisition) +void alarm_MON_GLRA_I(); + +// Callback function for alarm on analog variable MON_GLRB_I (GLENAIR-B current sensor signal acquisition) +void alarm_MON_GLRB_I(); + +// Callback function for alarm on analog variable MON_PWB_I (POWER BOARD current sensor signal acquisition) +void alarm_MON_PWB_I(); + +// digital reading info structure +typedef struct { + digital_value_readfunc_t readfunc; // function to read the value (must be defined by user) + digital_value_t value; // last acquired value + digital_value_t value_max; // max value acquired (...) + digitalalarm_info_t alarm; // structure maintaining all the info related to the alarm +} digital_variable_t; + +// number of defined analog variables +#define DIGITAL_VARIABLES_COUNT 12 + +#define DIGITAL_VARIABLE_INDEX_FLAG_DUL_ALARMPOS1 0 // index of the analog variable FLAG_DUL_ALARMPOS1 inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_DUL_ALARMPOS2 1 // index of the analog variable FLAG_DUL_ALARMPOS2 inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_DUL_ALARMNEG1 2 // index of the analog variable FLAG_DUL_ALARMNEG1 inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_DUL_ALARMNEG2 3 // index of the analog variable FLAG_DUL_ALARMNEG2 inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_HYDRO_PWR_FAULT 4 // index of the analog variable FLAG_HYDRO_PWR_FAULT inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_LBL_PWR_FAULT 5 // index of the analog variable FLAG_LBL_PWR_FAULT inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_GLRA_FAULT 6 // index of the analog variable FLAG_GLRA_FAULT inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_GLRB_FAULT 7 // index of the analog variable FLAG_GLRB_FAULT inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_POWERBOARD_FAULT 8 // index of the analog variable FLAG_POWERBOARD_FAULT inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_GLRA_GOOD 9 // index of the analog variable FLAG_GLRA_GOOD inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_GLRB_GOOD 10 // index of the analog variable FLAG_GLRB_GOOD inside analog_variables array +#define DIGITAL_VARIABLE_INDEX_FLAG_POWERBOARD_GOOD 11 // index of the analog variable FLAG_POWERBOARD_GOOD inside analog_variables array + +// make digital variable list available to anyone including this file +extern digital_variable_t digital_variables[DIGITAL_VARIABLES_COUNT]; + +// IO read function for variable FLAG_DUL_ALARMPOS1 +digital_value_t ioread_DIN_ALRMPOS1(void); + +// IO read function for variable FLAG_DUL_ALARMPOS2 +digital_value_t ioread_DIN_ALRMPOS2(void); + +// IO read function for variable FLAG_DUL_ALARMNEG1 +digital_value_t ioread_DIN_ALRMNEG1(void); + +// IO read function for variable FLAG_DUL_ALARMNEG2 +digital_value_t ioread_DIN_ALRMNEG2(void); + +// IO read function for variable FLAG_HYDRO_PWR_FAULT +digital_value_t ioread_DIN_HYDRO_PWR_FLT(void); + +// IO read function for variable FLAG_LBL_PWR_FAULT +digital_value_t ioread_DIN_LBL_PWR_FLT(void); + +// IO read function for variable FLAG_GLRA_FAULT +digital_value_t ioread_DIN_GLR_A_FLT(void); + +// IO read function for variable FLAG_GLRB_FAULT +digital_value_t ioread_DIN_GLR_B_FLT(void); + +// IO read function for variable FLAG_POWERBOARD_FAULT +digital_value_t ioread_DIN_PWB_FLT(void); + +// IO read function for variable FLAG_GLRA_GOOD +digital_value_t ioread_DIN_GLR_A_PG(void); + +// IO read function for variable FLAG_GLRB_GOOD +digital_value_t ioread_DIN_GLR_B_PG(void); + +// IO read function for variable FLAG_POWERBOARD_GOOD +digital_value_t ioread_DIN_PWB_PG(void); + +// Callback function for alarm on digital variable FLAG_DUL_ALARMPOS1 (DUL current limiting on VEOC direct alarm 1) +void alarm_FLAG_DUL_ALARMPOS1(); + +// Callback function for alarm on digital variable FLAG_DUL_ALARMPOS2 (DUL current limiting on VEOC direct alarm 2) +void alarm_FLAG_DUL_ALARMPOS2(); + +// Callback function for alarm on digital variable FLAG_DUL_ALARMNEG1 (DUL current limiting on VEOC return alarm 1) +void alarm_FLAG_DUL_ALARMNEG1(); + +// Callback function for alarm on digital variable FLAG_DUL_ALARMNEG2 (DUL current limiting on VEOC return alarm 2) +void alarm_FLAG_DUL_ALARMNEG2(); + +// Callback function for alarm on digital variable FLAG_HYDRO_PWR_FAULT (Fault status acquisition of 12V ISO HYDRO power line) +void alarm_FLAG_HYDRO_PWR_FAULT(); + +// Callback function for alarm on digital variable FLAG_LBL_PWR_FAULT (Fault status acquisition of 12V ISO LBL power line) +void alarm_FLAG_LBL_PWR_FAULT(); + +// Callback function for alarm on digital variable FLAG_GLRA_FAULT (Fault status acquisition of 12V GLENAIR-A power line) +void alarm_FLAG_GLRA_FAULT(); + +// Callback function for alarm on digital variable FLAG_GLRB_FAULT (Fault status acquisition of 12V GLENAIR-B power line) +void alarm_FLAG_GLRB_FAULT(); + +// Callback function for alarm on digital variable FLAG_POWERBOARD_FAULT (Fault status acquisition of 12V POWER BOARD power line) +void alarm_FLAG_POWERBOARD_FAULT(); + +// Callback function for alarm on digital variable FLAG_GLRA_GOOD (Power good status acquisition of 12V GLENAIR-A power line) +void alarm_FLAG_GLRA_GOOD(); + +// Callback function for alarm on digital variable FLAG_GLRB_GOOD (Power good status acquisition of 12V GLENAIR-B power line) +void alarm_FLAG_GLRB_GOOD(); + +// Callback function for alarm on digital variable FLAG_POWERBOARD_GOOD (Power good status acquisition of 12V POWER BOARD power line) +void alarm_FLAG_POWERBOARD_GOOD(); + +#include "../../errors.h" + + +typedef struct { + enum_switchstate_t state_SWITCH_VEOC_RETURN; // status of switch SWITCH_VEOC_RETURN, DU backbone ON/OFF return line control (high=ON) + enum_switchstate_t state_SWITCH_VEOC_DIRECT; // status of switch SWITCH_VEOC_DIRECT, DU backbone ON/OFF forward line control (high=ON) + enum_switchstate_t state_SWITCH_12V; // status of switch SWITCH_12V, DC-DC TDK 5/12V ISO ON/OFF control (high=ON) + enum_switchstate_t state_SWITCH_LBL; // status of switch SWITCH_LBL, 12V ISO LBL power ON/OFF control (high=ON) + enum_switchstate_t state_SWITCH_HYDRO; // status of switch SWITCH_HYDRO, 12V ISO HYDRO power ON/OFF control (high=ON) + enum_switchstate_t state_SWITCH_GLRA; // status of switch SWITCH_GLRA, 12V GLENAIR-A power ON/OFF control (high=ON) + enum_switchstate_t state_SWITCH_GLRB; // status of switch SWITCH_GLRB, 12V GLENAIR-B power ON/OFF control (high=ON) + enum_switchstate_t state_SWITCH_PWB; // status of switch SWITCH_PWB, 12V POWER BOARD power ON/OFF control (high=ON) +} switches_t; + +extern switches_t switches; + +// control functions for switch SWITCH_VEOC_RETURN, DU backbone ON/OFF return line control (high=ON) +void switch_SWITCH_VEOC_RETURN_set_closed(void); +void switch_SWITCH_VEOC_RETURN_set_open(void); +void switch_SWITCH_VEOC_RETURN_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_VEOC_RETURN_get(void); + + +// control functions for switch SWITCH_VEOC_DIRECT, DU backbone ON/OFF forward line control (high=ON) +void switch_SWITCH_VEOC_DIRECT_set_closed(void); +void switch_SWITCH_VEOC_DIRECT_set_open(void); +void switch_SWITCH_VEOC_DIRECT_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_VEOC_DIRECT_get(void); + + +// control functions for switch SWITCH_12V, DC-DC TDK 5/12V ISO ON/OFF control (high=ON) +void switch_SWITCH_12V_set_closed(void); +void switch_SWITCH_12V_set_open(void); +void switch_SWITCH_12V_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_12V_get(void); + + +// control functions for switch SWITCH_LBL, 12V ISO LBL power ON/OFF control (high=ON) +void switch_SWITCH_LBL_set_closed(void); +void switch_SWITCH_LBL_set_open(void); +void switch_SWITCH_LBL_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_LBL_get(void); + + +// control functions for switch SWITCH_HYDRO, 12V ISO HYDRO power ON/OFF control (high=ON) +void switch_SWITCH_HYDRO_set_closed(void); +void switch_SWITCH_HYDRO_set_open(void); +void switch_SWITCH_HYDRO_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_HYDRO_get(void); + + +// control functions for switch SWITCH_GLRA, 12V GLENAIR-A power ON/OFF control (high=ON) +void switch_SWITCH_GLRA_set_closed(void); +void switch_SWITCH_GLRA_set_open(void); +void switch_SWITCH_GLRA_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_GLRA_get(void); + + +// control functions for switch SWITCH_GLRB, 12V GLENAIR-B power ON/OFF control (high=ON) +void switch_SWITCH_GLRB_set_closed(void); +void switch_SWITCH_GLRB_set_open(void); +void switch_SWITCH_GLRB_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_GLRB_get(void); + + +// control functions for switch SWITCH_PWB, 12V POWER BOARD power ON/OFF control (high=ON) +void switch_SWITCH_PWB_set_closed(void); +void switch_SWITCH_PWB_set_open(void); +void switch_SWITCH_PWB_set(enum_switchstate_t _state); +enum_switchstate_t switch_SWITCH_PWB_get(void); + + +// return the switch state set function by switch enum +typedef void (*switch_state_set_func_t)(enum_switchstate_t _state); +switch_state_set_func_t switch_get_function_set_by_enum(enum_switchnum_t _switch_index); + +// return the switch state get function by switch enum +typedef enum_switchstate_t (*switch_state_get_func_t)(void); +switch_state_get_func_t switch_get_function_get_by_enum(enum_switchnum_t _switch_index); + + +typedef struct { + enum_pinstate_t state_SWITCH_LED_D9; // status of usr pin SWITCH_LED_D9, Line IN/OUT not assigned. Free line available on JP1 jumper. Usable in output to turn on the LED + enum_pinstate_t state_SWITCH_LED_D10; // status of usr pin SWITCH_LED_D10, Line IN/OUT not assigned. Free line available on JP2 jumper. Usable in output to turn on the LED +} userpins_t; + +extern userpins_t userpins; + +// control functions for user pin SWITCH_LED_D9, Line IN/OUT not assigned. Free line available on JP1 jumper. Usable in output to turn on the LED +void userpin_SWITCH_LED_D9_set_high(void); +void userpin_SWITCH_LED_D9_set_low(void); +void userpin_SWITCH_LED_D9_set(enum_pinstate_t _state); +enum_pinstate_t userpin_SWITCH_LED_D9_get(void); + + +// control functions for user pin SWITCH_LED_D10, Line IN/OUT not assigned. Free line available on JP2 jumper. Usable in output to turn on the LED +void userpin_SWITCH_LED_D10_set_high(void); +void userpin_SWITCH_LED_D10_set_low(void); +void userpin_SWITCH_LED_D10_set(enum_pinstate_t _state); +enum_pinstate_t userpin_SWITCH_LED_D10_get(void); + + +// return the user pin state set function by user pin enum +typedef void (*userpin_state_set_func_t)(enum_pinstate_t _state); +userpin_state_set_func_t userpin_get_function_set_by_enum(enum_pinnum_t _userpin_index); + +// return the user pin state get function by user pin enum +typedef enum_pinstate_t (*userpin_state_get_func_t)(void); +userpin_state_get_func_t userpin_get_function_get_by_enum(enum_pinnum_t _userpin_index); + + +#endif // _AUTOGENERATED_VARIABLES_H diff --git a/micro/BPD-V01-FIRMWARE.X/irqs.c b/micro/BPD-V01-FIRMWARE.X/irqs.c new file mode 100644 index 0000000000000000000000000000000000000000..d3cfeaa51cc354f96fca6199acf69fb3eb77fb96 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/irqs.c @@ -0,0 +1,83 @@ +/* + * File: irqs.c + * Author: Carlo Alessandro Nicolau @ INFN + * + * Firmware for BPD board. + * Interrupt service routines. + * + */ + +STO RIVEDENDO QUESTO QUI... + +#include "irqs.h" +#include "adcreader.h" +#include "generated/sources/variables.h" +#include "timing.h" + +// local functions +void _manage_digital_variables(void); +void _manage_digital_variable(digital_variable_t* _p_variable); + +// "slow" timer interrupt service routine +void irq_timer_slow(void) { + // update the adcreader state machine + adcreader_tick_irq(); + + // update timing register + timing_tick_irq(); +} + +// "fast" timer interrupt service routine +void irq_timer_fast(void) { + // manage digital alarms + _manage_digital_variables(); +} + +void _manage_digital_variables(void) { + for(uint8_t idx = 0; idx < DIGITAL_VARIABLES_COUNT; idx++) { + _manage_digital_variable(&(digital_variables[idx])); + } +} + +void _manage_digital_variable(digital_variable_t* _p_variable) { + // read digital variables + _p_variable->value = _p_variable->readfunc(); + + // and update value_max + if(_p_variable->value > _p_variable->value_max) { + _p_variable->value_max = _p_variable->value; + } + // check if timout counter has to be incremented + if(_p_variable->value > 0) { + // increment counter + _p_variable->alarm.timeout_counter += 1; + // avoid wrapping on increment (not very elegant...) + if(_p_variable->alarm.timeout_counter == 0) { + _p_variable->alarm.timeout_counter -= 1; + } + // update alarm counter stats + if(_p_variable->alarm.timeout_counter_max < _p_variable->alarm.timeout_counter) { + _p_variable->alarm.timeout_counter_max = _p_variable->alarm.timeout_counter; + } + }else{ + // or reset the counter + _p_variable->alarm.timeout_counter = 0; + } + // check if alarm has fired + if(_p_variable->alarm.enabled) { + // check if timeout was reached + if(_p_variable->alarm.timeout_counter > _p_variable->alarm.timeout) { + // perform the alarm action + _p_variable->alarm.callback(); + // increment the fire counter + _p_variable->alarm.firecount += 1; + // avoid wrapping on increment (not very elegant...) + if(_p_variable->alarm.firecount == 0) { + _p_variable->alarm.firecount -= 1; + } + // reset alarm timeout counter + _p_variable->alarm.timeout_counter = 0; + } + } + +} diff --git a/micro/BPD-V01-FIRMWARE.X/irqs.h b/micro/BPD-V01-FIRMWARE.X/irqs.h new file mode 100644 index 0000000000000000000000000000000000000000..646ca7a5599051c3a54a142f542ed644fa31740f --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/irqs.h @@ -0,0 +1,19 @@ +/* + * File: irqs.c + * Author: Carlo Alessandro Nicolau @ INFN + * + * Firmware for BPD board. + * Interrupt service routines. + * + */ + +#ifndef __IRQS_H +#define __IRQS_H + +// "slow" timer interrupt service routine +void irq_timer_slow(void); + +// "fast" timer interrupt service routine +void irq_timer_fast(void); + +#endif // __IRQS_H \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/main.c b/micro/BPD-V01-FIRMWARE.X/main.c new file mode 100644 index 0000000000000000000000000000000000000000..697ae842572437d2901039e6118461fb6011e209 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/main.c @@ -0,0 +1,130 @@ +/* + * File: main.c + * Author: Carlo Alessandro Nicolau @ INFN + * + * Created on May 28, 2021, 4:29 PM + * + * Firmware for BPD-V01 board. + * Main. + * + */ + + +#include <pic18.h> + +#include "irqs.h" +#include "communication.h" +#include "errorcodes.h" +#include "errors.h" +#include "hardware.h" +#include "adcreader.h" +#include "timing.h" +#include "rescue.h" + +void init_mcu(void); +void init_comm(void); +void init_adcreader(void); +void start_irqs(void); +void sensors_acquire_offsets(void); +void alarms_enable(void); +void manage_incoming_data(void); +void _delay_seconds(uint8_t _seconds); + +void main(void) { + return; +} + +void init_mcu(void) { + // initializations (generated by MCC): IRQ Manager, PINs, Oscillator, Peripherals + SYSTEM_Initialize(); + // set the timer 0 and 2 interrupt service routine + // assuming interrupts are not currently enabled + TMR0_SetInterruptHandler(irq_timer_slow); // "slow" timer (208us period) + TMR2_SetInterruptHandler(irq_timer_fast); // "fast" timer (20us period) + // safety measure: 10ms delay + __delay_ms(10); +} + +void init_comm(void) { + // initialize the communication parser + communication_parser_reset(); +} + +void init_adcreader(void) { + adcreader_reset(); + adcreader_start(); +} + +void start_irqs(void){ + // activate interrupts + INTERRUPT_GlobalInterruptEnable(); + INTERRUPT_PeripheralInterruptEnable(); + // clean the serial port input buffer + while(serialport_dataready) serialport_read; + // start timer0 + TMR0_StartTimer(); + // start timer2 + TMR2_StartTimer(); + // at this point: + // - The TMR0 interrupt is constantly firing + // - The serial port receive buffer is clean +} + +void sensors_acquire_offsets(void) { + // ADC reader must have already started. + // We only need to read acquired values and wait properly. + // Note that the ADC is 10 bit, but data are left aligned to 16 bit, we thus + // have an headroom of 6 bits = 32 counts. + // Note also that stored offset values are initialized to zero. + userpin_SWITCH_LED_D10_set_high(); + userpin_SWITCH_LED_D9_set_high(); + _delay_seconds(5); // wait 5 seconds to make signals steady + userpin_SWITCH_LED_D9_set_low(); + for(uint8_t k = 0; k < 32; k++) { + __delay_ms(30); // 2.2 * 30 millis are (much) more than sufficient for ADC reader to acquire from all ADC channels + for(uint8_t varidx = 0; varidx < ANALOG_VARIABLES_COUNT; varidx++) { + analog_variables[varidx].offset += analog_variables[varidx].value/32; + } + } + userpin_SWITCH_LED_D10_set_low(); +} + +void alarms_enable(void) { + // not necessary since the alarms are already enabled by + // initializing the variables analog_variables and digital_variables + // (see variables.h in generated/sources) +} + +void manage_incoming_data(void) { + // check if a new byte is present in serial port receive buffer + if(serialport_dataready) { + // a byte is present, read it and parse it + communication_parser_appendbyte(serialport_read()); + } + // check if a complete command was received + if(communication_parser_commandready()) { + // a new complete command was received + // execute the received command and verify result + err_t retval = communication_parser_executecommand(); + if(NOERR == retval){ + // command correctly executed + // reset second counter since last received command + // (this function is called after the command was executed to be able to read its value) + timing_reset_seconds_since_last_command(); + // send the response to the host + // (it was created by the [...]_executecommand function) + communication_transmitter_sendresponse(); + }else{ + // do nothing + error_notify(retval); + } + // reset the parser + communication_parser_reset(); + } +} + +void _delay_seconds(uint8_t _seconds) { + while(_seconds--) { + __delay_ms(447); // value trimmed, takes into account the time used under irq + } +} diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/adc.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/adc.c new file mode 100644 index 0000000000000000000000000000000000000000..81eaf5efff1b7a02e78769eab197cad5f5118e5f --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/adc.c @@ -0,0 +1,136 @@ +/** + ADC Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + adc.c + + @Summary + This is the generated driver implementation file for the ADC driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This source file provides implementations for driver APIs for ADC. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.02 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <xc.h> +#include "adc.h" +#include "device_config.h" + + +/** + Section: ADC Module APIs +*/ + +void (*ADC_InterruptHandler)(void); + +void ADC_Initialize(void) +{ + // set the ADC to the options selected in the User Interface + + // TRIGSEL CCP5; NVCFG VSS; PVCFG FVRbuf2; + ADCON1 = 0x08; + + // ADFM left; ACQT 20; ADCS FOSC/16; + ADCON2 = 0x3D; + + // ADRESL 0; + ADRESL = 0x00; + + // ADRESH 0; + ADRESH = 0x00; + + // GO_nDONE stop; ADON enabled; CHS AN0; + ADCON0 = 0x01; + +} + +void ADC_SelectChannel(adc_channel_t channel) +{ + // select the A/D channel + ADCON0bits.CHS = channel; + // Turn on the ADC module + ADCON0bits.ADON = 1; +} + +void ADC_StartConversion(void) +{ + // Start the conversion + ADCON0bits.GO_nDONE = 1; +} + + +bool ADC_IsConversionDone(void) +{ + // Start the conversion + return ((bool)(!ADCON0bits.GO_nDONE)); +} + +adc_result_t ADC_GetConversionResult(void) +{ + // Conversion finished, return the result + return ((adc_result_t)((ADRESH << 8) + ADRESL)); +} + +adc_result_t ADC_GetConversion(adc_channel_t channel) +{ + // select the A/D channel + ADCON0bits.CHS = channel; + + // Turn on the ADC module + ADCON0bits.ADON = 1; + + // Start the conversion + ADCON0bits.GO_nDONE = 1; + + // Wait for the conversion to finish + while (ADCON0bits.GO_nDONE) + { + } + + // Conversion finished, return the result + return ((adc_result_t)((ADRESH << 8) + ADRESL)); +} + +void ADC_TemperatureAcquisitionDelay(void) +{ + __delay_us(200); +} +/** + End of File +*/ \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/adc.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/adc.h new file mode 100644 index 0000000000000000000000000000000000000000..af57ca5599b194d85da76e81737fc82817e48b3d --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/adc.h @@ -0,0 +1,338 @@ +/** + ADC Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + adc.h + + @Summary + This is the generated header file for the ADC driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for driver for ADC. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.02 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 ADC_H +#define ADC_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Data Types Definitions +*/ + +/** + * result size of an A/D conversion + */ + +typedef uint16_t adc_result_t; + +/** + * result type of a Double ADC conversion + */ +typedef struct +{ + adc_result_t adcResult1; + adc_result_t adcResult2; +} adc_sync_double_result_t; + +/** ADC Channel Definition + + @Summary + Defines the channels available for conversion. + + @Description + This routine defines the channels that are available for the module to use. + + Remarks: + None + */ + +typedef enum +{ + AIN_DUL_BRD_TEMP = 0x0, + AIN_VICOR2_TEMP = 0x1, + AIN_VICOR1_TEMP = 0x2, + AIN_DU_RTN_I_MON = 0x3, + AIN_DU_FWR_I_MON = 0x4, + AIN_HYDRO_I_MON = 0x5, + AIN_INPUT_V_MON = 0x6, + AIN_LBL_I_MON = 0x7, + AIN_GLR_A_I_MON = 0x8, + AIN_GLR_B_I_MON = 0x9, + AIN_PWB_I_MON = 0xA, + channel_CTMU = 0x1D, + channel_DAC = 0x1E, + channel_FVRBuf2 = 0x1F +} adc_channel_t; + +/** + Section: ADC Module APIs +*/ + +/** + @Summary + Initializes the ADC + + @Description + This routine initializes the Initializes the ADC. + This routine must be called before any other ADC routine is called. + This routine should only be called once during system initialization. + + @Preconditions + None + + @Param + None + + @Returns + None + + @Comment + + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + convertedValue = ADC_GetConversionResult(); + </code> +*/ +void ADC_Initialize(void); + +/** + @Summary + Allows selection of a channel for conversion + + @Description + This routine is used to select desired channel for conversion. + available + + @Preconditions + ADC_Initialize() function should have been called before calling this function. + + @Returns + None + + @Param + Pass in required channel number + "For available channel refer to enum under adc.h file" + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + ADC_SelectChannel(AN1_Channel); + ADC_StartConversion(); + convertedValue = ADC_GetConversionResult(); + </code> +*/ +void ADC_SelectChannel(adc_channel_t channel); + +/** + @Summary + Starts conversion + + @Description + This routine is used to start conversion of desired channel. + + @Preconditions + ADC_Initialize() function should have been called before calling this function. + + @Returns + None + + @Param + None + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + ADC_StartConversion(); + convertedValue = ADC_GetConversionResult(); + </code> +*/ +void ADC_StartConversion(void); + +/** + @Summary + Returns true when the conversion is completed otherwise false. + + @Description + This routine is used to determine if conversion is completed. + When conversion is complete routine returns true. It returns false otherwise. + + @Preconditions + ADC_Initialize() and ADC_StartConversion(void) + function should have been called before calling this function. + + @Returns + true - If conversion is complete + false - If conversion is not completed + + @Param + None + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + ADC_StartConversion(); + + while(!ADC_IsConversionDone()); + convertedValue = ADC_GetConversionResult(); + </code> + */ +bool ADC_IsConversionDone(void); + +/** + @Summary + Returns the ADC conversion value. + + @Description + This routine is used to get the analog to digital converted value. This + routine gets converted values from the channel specified. + + @Preconditions + This routine returns the conversion value only after the conversion is complete. + Completion status can be checked using + ADC_IsConversionDone() routine. + + @Returns + Returns the converted value. + + @Param + None + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + ADC_StartConversion(); + + while(ADC_IsConversionDone()); + + convertedValue = ADC_GetConversionResult(); + </code> + */ +adc_result_t ADC_GetConversionResult(void); + +/** + @Summary + Returns the ADC conversion value + also allows selection of a channel for conversion. + + @Description + This routine is used to select desired channel for conversion + and to get the analog to digital converted value. + + @Preconditions + ADC_Initialize() function should have been called before calling this function. + + @Returns + Returns the converted value. + + @Param + Pass in required channel number. + "For available channel refer to enum under adc.h file" + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + + conversion = ADC_GetConversion(AN1_Channel); + </code> +*/ +adc_result_t ADC_GetConversion(adc_channel_t channel); + +/** + @Summary + Acquisition Delay for temperature sensor + + @Description + This routine should be called when temperature sensor is used. + + @Preconditions + ADC_Initialize() function should have been called before calling this function. + + @Returns + None + + @Param + None + + @Example + <code> + uint16_t convertedValue; + + ADC_Initialize(); + ADC_StartConversion(); + ADC_temperatureAcquisitionDelay(); + convertedValue = ADC_GetConversionResult(); + </code> +*/ +void ADC_TemperatureAcquisitionDelay(void); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //ADC_H +/** + End of File +*/ + diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/ccp5.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/ccp5.c new file mode 100644 index 0000000000000000000000000000000000000000..ef69038f5da3e0e31c6a38b7f402a56994344393 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/ccp5.c @@ -0,0 +1,60 @@ +/** + CCP5 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + ccp5.c + + @Summary + This is the generated driver implementation file for the CCP5 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This source file provides implementations for driver APIs for CCP5. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <xc.h> +#include "ccp5.h" +void CCP5_Initialize(void) +{ + + // CCP5M off/reset; DC5B 0; + CCP5CON = 0x00; + + // CCPR5L 0; + CCPR5L = 0x00; + + // CCPR5H 0; + CCPR5H = 0x00; +} diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/ccp5.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/ccp5.h new file mode 100644 index 0000000000000000000000000000000000000000..715b8e35071298c753fbd5b0e41c65b097d5ee3b --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/ccp5.h @@ -0,0 +1,61 @@ +/** + CCP5 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + ccp5.h + + @Summary + This is the generated header file for the CCP5 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for driver for CCP5. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 CCP5_H +#define CCP5_H + +#include <xc.h> +/** + * Initialization routine that takes inputs from the GUI. + * @prototype void CCP5_Initialize(void) + * @param none + * @return none + * @comment + * @usage CCP5_Initialize(); + */ +void CCP5_Initialize(void); + +#endif // CCP5.h \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/device_config.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/device_config.c new file mode 100644 index 0000000000000000000000000000000000000000..b5d44914f5f39c1867096e7d49240323541cf345 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/device_config.c @@ -0,0 +1,108 @@ +/** + @Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + mcc.c + + @Summary: + This is the device_config.c 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.7 + Device : PIC18F46K22 + Driver Version : 2.00 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above or later + MPLAB : MPLAB X 5.45 +*/ + +/* + (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. +*/ + +// Configuration bits: selected in the GUI + +// CONFIG1H +#pragma config FOSC = INTIO67 // Oscillator Selection bits->Internal oscillator block +#pragma config PLLCFG = OFF // 4X PLL Enable->Oscillator used directly +#pragma config PRICLKEN = ON // Primary clock enable bit->Primary clock is always enabled +#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable bit->Fail-Safe Clock Monitor disabled +#pragma config IESO = OFF // Internal/External Oscillator Switchover bit->Oscillator Switchover mode disabled + +// CONFIG2L +#pragma config PWRTEN = OFF // Power-up Timer Enable bit->Power up timer disabled +#pragma config BOREN = SBORDIS // Brown-out Reset Enable bits->Brown-out Reset enabled in hardware only (SBOREN is disabled) +#pragma config BORV = 190 // Brown Out Reset Voltage bits->VBOR set to 1.90 V nominal + +// CONFIG2H +#pragma config WDTEN = OFF // Watchdog Timer Enable bits->Watch dog timer is always disabled. SWDTEN has no effect. +#pragma config WDTPS = 32768 // Watchdog Timer Postscale Select bits->1:32768 + +// CONFIG3H +#pragma config CCP2MX = PORTC1 // CCP2 MUX bit->CCP2 input/output is multiplexed with RC1 +#pragma config PBADEN = ON // PORTB A/D Enable bit->PORTB<5:0> pins are configured as analog input channels on Reset +#pragma config CCP3MX = PORTB5 // P3A/CCP3 Mux bit->P3A/CCP3 input/output is multiplexed with RB5 +#pragma config HFOFST = ON // HFINTOSC Fast Start-up->HFINTOSC output and ready status are not delayed by the oscillator stable status +#pragma config T3CMX = PORTC0 // Timer3 Clock input mux bit->T3CKI is on RC0 +#pragma config P2BMX = PORTD2 // ECCP2 B output mux bit->P2B is on RD2 +#pragma config MCLRE = EXTMCLR // MCLR Pin Enable bit->MCLR pin enabled, RE3 input pin disabled + +// CONFIG4L +#pragma config STVREN = ON // Stack Full/Underflow Reset Enable bit->Stack full/underflow will cause Reset +#pragma config LVP = ON // Single-Supply ICSP Enable bit->Single-Supply ICSP enabled if MCLRE is also 1 +#pragma config XINST = OFF // Extended Instruction Set Enable bit->Instruction set extension and Indexed Addressing mode disabled (Legacy mode) +#pragma config DEBUG = OFF // Background Debug->Disabled + +// CONFIG5L +#pragma config CP0 = OFF // Code Protection Block 0->Block 0 (000800-003FFFh) not code-protected +#pragma config CP1 = OFF // Code Protection Block 1->Block 1 (004000-007FFFh) not code-protected +#pragma config CP2 = OFF // Code Protection Block 2->Block 2 (008000-00BFFFh) not code-protected +#pragma config CP3 = OFF // Code Protection Block 3->Block 3 (00C000-00FFFFh) not code-protected + +// CONFIG5H +#pragma config CPB = OFF // Boot Block Code Protection bit->Boot block (000000-0007FFh) not code-protected +#pragma config CPD = OFF // Data EEPROM Code Protection bit->Data EEPROM not code-protected + +// CONFIG6L +#pragma config WRT0 = OFF // Write Protection Block 0->Block 0 (000800-003FFFh) not write-protected +#pragma config WRT1 = OFF // Write Protection Block 1->Block 1 (004000-007FFFh) not write-protected +#pragma config WRT2 = OFF // Write Protection Block 2->Block 2 (008000-00BFFFh) not write-protected +#pragma config WRT3 = OFF // Write Protection Block 3->Block 3 (00C000-00FFFFh) not write-protected + +// CONFIG6H +#pragma config WRTC = OFF // Configuration Register Write Protection bit->Configuration registers (300000-3000FFh) not write-protected +#pragma config WRTB = OFF // Boot Block Write Protection bit->Boot Block (000000-0007FFh) not write-protected +#pragma config WRTD = OFF // Data EEPROM Write Protection bit->Data EEPROM not write-protected + +// CONFIG7L +#pragma config EBTR0 = OFF // Table Read Protection Block 0->Block 0 (000800-003FFFh) not protected from table reads executed in other blocks +#pragma config EBTR1 = OFF // Table Read Protection Block 1->Block 1 (004000-007FFFh) not protected from table reads executed in other blocks +#pragma config EBTR2 = OFF // Table Read Protection Block 2->Block 2 (008000-00BFFFh) not protected from table reads executed in other blocks +#pragma config EBTR3 = OFF // Table Read Protection Block 3->Block 3 (00C000-00FFFFh) not protected from table reads executed in other blocks + +// CONFIG7H +#pragma config EBTRB = OFF // Boot Block Table Read Protection bit->Boot Block (000000-0007FFh) not protected from table reads executed in other blocks diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/device_config.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/device_config.h new file mode 100644 index 0000000000000000000000000000000000000000..4c9a42248c079ccaabd8fbe936da8c77674dd5e5 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/device_config.h @@ -0,0 +1,55 @@ +/** + @Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Header File + + @Company: + Microchip Technology Inc. + + @File Name: + mcc.c + + @Summary: + This is the device_config.h 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.7 + Device : PIC18F46K22 + Driver Version : 2.00 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above or later + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 DEVICE_CONFIG_H +#define DEVICE_CONFIG_H + +#define _XTAL_FREQ 64000000 + +#endif /* DEVICE_CONFIG_H */ +/** + End of File +*/ diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/eusart1.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/eusart1.c new file mode 100644 index 0000000000000000000000000000000000000000..c04e828bf21deb135a58dadc5ce52f4e1a8d38c5 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/eusart1.c @@ -0,0 +1,285 @@ +/** + 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.7 + Device : PIC18F46K22 + Driver Version : 2.1.1 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 eusart1TxHead = 0; +volatile uint8_t eusart1TxTail = 0; +volatile uint8_t eusart1TxBuffer[EUSART1_TX_BUFFER_SIZE]; +volatile uint8_t eusart1TxBufferRemaining; + +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_TxDefaultInterruptHandler)(void); +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); + PIE1bits.TX1IE = 0; + EUSART1_SetTxInterruptHandler(EUSART1_Transmit_ISR); + // Set the EUSART1 module to the options selected in the user interface. + + // ABDOVF no_overflow; CKTXP async_noninverted_sync_fallingedge; BRG16 16bit_generator; WUE disabled; ABDEN disabled; DTRXP not_inverted; + BAUDCON1 = 0x08; + + // SPEN enabled; RX9 8-bit; CREN enabled; ADDEN disabled; SREN disabled; + RCSTA1 = 0x90; + + // TX9 8-bit; TX9D 0; SENDB sync_break_complete; TXEN enabled; SYNC asynchronous; BRGH hi_speed; CSRC slave_mode; + TXSTA1 = 0x24; + + // + SPBRG1 = 0x40; + + // + SPBRGH1 = 0x03; + + + EUSART1_SetFramingErrorHandler(EUSART1_DefaultFramingErrorHandler); + EUSART1_SetOverrunErrorHandler(EUSART1_DefaultOverrunErrorHandler); + EUSART1_SetErrorHandler(EUSART1_DefaultErrorHandler); + + eusart1RxLastError.status = 0; + + // initializing the driver state + eusart1TxHead = 0; + eusart1TxTail = 0; + eusart1TxBufferRemaining = sizeof(eusart1TxBuffer); + + eusart1RxHead = 0; + eusart1RxTail = 0; + eusart1RxCount = 0; + + // enable receive interrupt + PIE1bits.RC1IE = 1; +} + +bool EUSART1_is_tx_ready(void) +{ + return (eusart1TxBufferRemaining ? true : false); +} + +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 == eusart1TxBufferRemaining) + { + } + + if(0 == PIE1bits.TX1IE) + { + TXREG1 = txData; + } + else + { + PIE1bits.TX1IE = 0; + eusart1TxBuffer[eusart1TxHead++] = txData; + if(sizeof(eusart1TxBuffer) <= eusart1TxHead) + { + eusart1TxHead = 0; + } + eusart1TxBufferRemaining--; + } + PIE1bits.TX1IE = 1; +} + + +void EUSART1_Transmit_ISR(void) +{ + + // add your EUSART1 interrupt custom code + if(sizeof(eusart1TxBuffer) > eusart1TxBufferRemaining) + { + TXREG1 = eusart1TxBuffer[eusart1TxTail++]; + if(sizeof(eusart1TxBuffer) <= eusart1TxTail) + { + eusart1TxTail = 0; + } + eusart1TxBufferRemaining++; + } + else + { + PIE1bits.TX1IE = 0; + } +} + +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_SetTxInterruptHandler(void (* interruptHandler)(void)){ + EUSART1_TxDefaultInterruptHandler = interruptHandler; +} + +void EUSART1_SetRxInterruptHandler(void (* interruptHandler)(void)){ + EUSART1_RxDefaultInterruptHandler = interruptHandler; +} +/** + End of File +*/ diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/eusart1.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/eusart1.h new file mode 100644 index 0000000000000000000000000000000000000000..b81caf7cc4fa70c928804494dfeee6ba5614ebc5 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/eusart1.h @@ -0,0 +1,516 @@ +/** + 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.7 + Device : PIC18F46K22 + Driver Version : 2.1.1 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <xc.h> +#include <stdbool.h> +#include <stdint.h> + +#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_TxDefaultInterruptHandler)(void); +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 + <code> + 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); + } + } + } + } + </code> +*/ +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 + <code> + 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); + } + } + } + } + </code> +*/ +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 + <code> + 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(); + } + } + } + </code> +*/ +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 + <code> + 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(); + } + } + } + } + </code> + */ +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 transmitter state machine and implements its ISR. + + @Description + This routine is used to maintain the driver's internal transmitter state + machine.This interrupt service routine is called when the state of the + transmitter 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_Transmit_ISR(void); + +/** + @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 transmit 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 transmit 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_SetTxInterruptHandler(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/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/fvr.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/fvr.c new file mode 100644 index 0000000000000000000000000000000000000000..ac78c2a9cc8494a814beb7397edf1a8b58eddcc5 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/fvr.c @@ -0,0 +1,71 @@ +/** + FVR Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + fvr.c + + @Summary + This is the generated driver implementation file for the FVR driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This source file provides APIs for FVR. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <xc.h> +#include "fvr.h" + +/** + Section: FVR APIs +*/ + +void FVR_Initialize(void) +{ + // FVRS 4x; FVREN enabled; + VREFCON0 = 0xB0; +} + +bool FVR_IsOutputReady(void) +{ + return (VREFCON0bits.FVRST); +} +/** + End of File +*/ + diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/fvr.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/fvr.h new file mode 100644 index 0000000000000000000000000000000000000000..2b4c9d807a9ab00488242ad4f81e5238b92f20fb --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/fvr.h @@ -0,0 +1,139 @@ +/** + FVR Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + fvr.h + + @Summary + This is the generated header file for the FVR driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for driver for FVR. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 FVR_H +#define FVR_H + +/** + Section: Included Files +*/ + +#include <stdbool.h> +#include <stdint.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: FVR APIs +*/ + +/** + @Summary + Initializes the FVR + + @Description + This routine initializes the FVR. + This routine must be called before any other FVR routine is called. + This routine should only be called once during system initialization. + + @Preconditions + None + + @Param + None + + @Returns + None + + @Comment + + + @Example + <code> + FVR_Initialize(); + </code> +*/ + void FVR_Initialize(void); + +/** + @Summary + Gets the FVR output ready status. + + @Description + This routine gets the FVR output ready status. + + @Preconditions + The FVR_Initialize() routine should be called + prior to use this routine. + + @Param + None + + @Returns + true - FVR module is ready for use. + false - FVR module is not ready for use. + + @Example + <code> + FVR_Initialize(); + + if(FVR_IsOutputReady()) + { + //user code + } + else + { + //user code + } + </code> +*/ +bool FVR_IsOutputReady(void); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif // FVR_H +/** + End of File +*/ + diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/interrupt_manager.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/interrupt_manager.c new file mode 100644 index 0000000000000000000000000000000000000000..19a3468acf2ce3033a62bd9246ffc9eae48f1baa --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/interrupt_manager.c @@ -0,0 +1,91 @@ +/** + 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.7 + Device : PIC18F46K22 + Driver Version : 2.04 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above or later + MPLAB : MPLAB X 5.45 +*/ + +/* + (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.TMR2IE == 1 && PIR1bits.TMR2IF == 1) + { + TMR2_ISR(); + } + else if(PIE1bits.TX1IE == 1 && PIR1bits.TX1IF == 1) + { + EUSART1_TxDefaultInterruptHandler(); + } + else if(PIE1bits.RC1IE == 1 && PIR1bits.RC1IF == 1) + { + EUSART1_RxDefaultInterruptHandler(); + } + else + { + //Unhandled Interrupt + } + } + else + { + //Unhandled Interrupt + } +} +/** + End of File +*/ diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/interrupt_manager.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/interrupt_manager.h new file mode 100644 index 0000000000000000000000000000000000000000..d3da510596ed5a1a7511c8df3eb86a84ac0be660 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/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.7 + Device : PIC18F46K22 + Driver Version : 2.03 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above or later + MPLAB : MPLAB X 5.45 +*/ + +/* + (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/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/mcc.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/mcc.c new file mode 100644 index 0000000000000000000000000000000000000000..1126d7144e3b4ba89b9e4118ca44ee5411d18568 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/mcc.c @@ -0,0 +1,81 @@ +/** + @Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + mcc.c + + @Summary: + This is the mcc.c 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.7 + Device : PIC18F46K22 + Driver Version : 2.00 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above or later + MPLAB : MPLAB X 5.45 +*/ + +/* + (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.h" + + +void SYSTEM_Initialize(void) +{ + + INTERRUPT_Initialize(); + PIN_MANAGER_Initialize(); + OSCILLATOR_Initialize(); + FVR_Initialize(); + CCP5_Initialize(); + ADC_Initialize(); + TMR2_Initialize(); + TMR0_Initialize(); + EUSART1_Initialize(); +} + +void OSCILLATOR_Initialize(void) +{ + // SCS FOSC; IRCF 16MHz_HFINTOSC; IDLEN disabled; + OSCCON = 0x70; + // PRISD enabled; SOSCGO disabled; MFIOSEL disabled; + OSCCON2 = 0x04; + // INTSRC disabled; PLLEN enabled; TUN 0; + OSCTUNE = 0x40; + // Wait for PLL to stabilize + while(PLLRDY == 0) + { + } +} + + +/** + End of File +*/ diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/mcc.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/mcc.h new file mode 100644 index 0000000000000000000000000000000000000000..7fca89bf3a0645735761d23c3a3fd86949c8511d --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/mcc.h @@ -0,0 +1,94 @@ +/** + @Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Header File + + @Company: + Microchip Technology Inc. + + @File Name: + mcc.h + + @Summary: + This is the mcc.h 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.7 + Device : PIC18F46K22 + Driver Version : 2.00 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above or later + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 MCC_H +#define MCC_H +#include <xc.h> +#include "device_config.h" +#include "pin_manager.h" +#include <stdint.h> +#include <stdbool.h> +#include <conio.h> +#include "interrupt_manager.h" +#include "fvr.h" +#include "ccp5.h" +#include "tmr2.h" +#include "tmr0.h" +#include "adc.h" +#include "eusart1.h" + + + +/** + * @Param + none + * @Returns + none + * @Description + Initializes the device to the default states configured in the + * MCC GUI + * @Example + SYSTEM_Initialize(void); + */ +void SYSTEM_Initialize(void); + +/** + * @Param + none + * @Returns + none + * @Description + Initializes the oscillator to the default states configured in the + * MCC GUI + * @Example + OSCILLATOR_Initialize(void); + */ +void OSCILLATOR_Initialize(void); + +#endif /* MCC_H */ +/** + End of File +*/ \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/pin_manager.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/pin_manager.c new file mode 100644 index 0000000000000000000000000000000000000000..9d0b81668093028e259375b8c7e3691ade006a6e --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/pin_manager.c @@ -0,0 +1,107 @@ +/** + Generated Pin Manager File + + Company: + Microchip Technology Inc. + + File Name: + pin_manager.c + + Summary: + This is the Pin Manager file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + Description: + This header file provides implementations for pin APIs for all pins selected in the GUI. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.11 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 + + Copyright (c) 2013 - 2015 released Microchip Technology Inc. All rights reserved. +*/ + +/* + (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 "pin_manager.h" + + + + + +void PIN_MANAGER_Initialize(void) +{ + /** + LATx registers + */ + LATE = 0x00; + LATD = 0x00; + LATA = 0x00; + LATB = 0x00; + LATC = 0x00; + + /** + TRISx registers + */ + TRISE = 0x07; + TRISA = 0x7F; + TRISB = 0xFF; + TRISC = 0xBF; + TRISD = 0x00; + + /** + ANSELx registers + */ + ANSELD = 0xFF; + ANSELC = 0x00; + ANSELB = 0x0E; + ANSELE = 0x07; + ANSELA = 0x2F; + + /** + WPUx registers + */ + WPUB = 0x00; + INTCON2bits.nRBPU = 1; + + + + + + + + +} + +void PIN_MANAGER_IOC(void) +{ + // Clear global Interrupt-On-Change flag + INTCONbits.RBIF = 0; +} + +/** + End of File +*/ \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/pin_manager.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/pin_manager.h new file mode 100644 index 0000000000000000000000000000000000000000..67eb38d229ebfd5f38f6dea5d42d6d3d1ad6467e --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/pin_manager.h @@ -0,0 +1,582 @@ +/** + @Generated Pin Manager Header File + + @Company: + Microchip Technology Inc. + + @File Name: + pin_manager.h + + @Summary: + This is the Pin Manager file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for driver for . + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.11 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 PIN_MANAGER_H +#define PIN_MANAGER_H + +/** + Section: Included Files +*/ + +#include <xc.h> + +#define INPUT 1 +#define OUTPUT 0 + +#define HIGH 1 +#define LOW 0 + +#define ANALOG 1 +#define DIGITAL 0 + +#define PULL_UP_ENABLED 1 +#define PULL_UP_DISABLED 0 + +// get/set AIN_DUL_BRD_TEMP aliases +#define AIN_DUL_BRD_TEMP_TRIS TRISAbits.TRISA0 +#define AIN_DUL_BRD_TEMP_LAT LATAbits.LATA0 +#define AIN_DUL_BRD_TEMP_PORT PORTAbits.RA0 +#define AIN_DUL_BRD_TEMP_ANS ANSELAbits.ANSA0 +#define AIN_DUL_BRD_TEMP_SetHigh() do { LATAbits.LATA0 = 1; } while(0) +#define AIN_DUL_BRD_TEMP_SetLow() do { LATAbits.LATA0 = 0; } while(0) +#define AIN_DUL_BRD_TEMP_Toggle() do { LATAbits.LATA0 = ~LATAbits.LATA0; } while(0) +#define AIN_DUL_BRD_TEMP_GetValue() PORTAbits.RA0 +#define AIN_DUL_BRD_TEMP_SetDigitalInput() do { TRISAbits.TRISA0 = 1; } while(0) +#define AIN_DUL_BRD_TEMP_SetDigitalOutput() do { TRISAbits.TRISA0 = 0; } while(0) +#define AIN_DUL_BRD_TEMP_SetAnalogMode() do { ANSELAbits.ANSA0 = 1; } while(0) +#define AIN_DUL_BRD_TEMP_SetDigitalMode() do { ANSELAbits.ANSA0 = 0; } while(0) + +// get/set AIN_VICOR2_TEMP aliases +#define AIN_VICOR2_TEMP_TRIS TRISAbits.TRISA1 +#define AIN_VICOR2_TEMP_LAT LATAbits.LATA1 +#define AIN_VICOR2_TEMP_PORT PORTAbits.RA1 +#define AIN_VICOR2_TEMP_ANS ANSELAbits.ANSA1 +#define AIN_VICOR2_TEMP_SetHigh() do { LATAbits.LATA1 = 1; } while(0) +#define AIN_VICOR2_TEMP_SetLow() do { LATAbits.LATA1 = 0; } while(0) +#define AIN_VICOR2_TEMP_Toggle() do { LATAbits.LATA1 = ~LATAbits.LATA1; } while(0) +#define AIN_VICOR2_TEMP_GetValue() PORTAbits.RA1 +#define AIN_VICOR2_TEMP_SetDigitalInput() do { TRISAbits.TRISA1 = 1; } while(0) +#define AIN_VICOR2_TEMP_SetDigitalOutput() do { TRISAbits.TRISA1 = 0; } while(0) +#define AIN_VICOR2_TEMP_SetAnalogMode() do { ANSELAbits.ANSA1 = 1; } while(0) +#define AIN_VICOR2_TEMP_SetDigitalMode() do { ANSELAbits.ANSA1 = 0; } while(0) + +// get/set AIN_VICOR1_TEMP aliases +#define AIN_VICOR1_TEMP_TRIS TRISAbits.TRISA2 +#define AIN_VICOR1_TEMP_LAT LATAbits.LATA2 +#define AIN_VICOR1_TEMP_PORT PORTAbits.RA2 +#define AIN_VICOR1_TEMP_ANS ANSELAbits.ANSA2 +#define AIN_VICOR1_TEMP_SetHigh() do { LATAbits.LATA2 = 1; } while(0) +#define AIN_VICOR1_TEMP_SetLow() do { LATAbits.LATA2 = 0; } while(0) +#define AIN_VICOR1_TEMP_Toggle() do { LATAbits.LATA2 = ~LATAbits.LATA2; } while(0) +#define AIN_VICOR1_TEMP_GetValue() PORTAbits.RA2 +#define AIN_VICOR1_TEMP_SetDigitalInput() do { TRISAbits.TRISA2 = 1; } while(0) +#define AIN_VICOR1_TEMP_SetDigitalOutput() do { TRISAbits.TRISA2 = 0; } while(0) +#define AIN_VICOR1_TEMP_SetAnalogMode() do { ANSELAbits.ANSA2 = 1; } while(0) +#define AIN_VICOR1_TEMP_SetDigitalMode() do { ANSELAbits.ANSA2 = 0; } while(0) + +// get/set AIN_DU_RTN_I_MON aliases +#define AIN_DU_RTN_I_MON_TRIS TRISAbits.TRISA3 +#define AIN_DU_RTN_I_MON_LAT LATAbits.LATA3 +#define AIN_DU_RTN_I_MON_PORT PORTAbits.RA3 +#define AIN_DU_RTN_I_MON_ANS ANSELAbits.ANSA3 +#define AIN_DU_RTN_I_MON_SetHigh() do { LATAbits.LATA3 = 1; } while(0) +#define AIN_DU_RTN_I_MON_SetLow() do { LATAbits.LATA3 = 0; } while(0) +#define AIN_DU_RTN_I_MON_Toggle() do { LATAbits.LATA3 = ~LATAbits.LATA3; } while(0) +#define AIN_DU_RTN_I_MON_GetValue() PORTAbits.RA3 +#define AIN_DU_RTN_I_MON_SetDigitalInput() do { TRISAbits.TRISA3 = 1; } while(0) +#define AIN_DU_RTN_I_MON_SetDigitalOutput() do { TRISAbits.TRISA3 = 0; } while(0) +#define AIN_DU_RTN_I_MON_SetAnalogMode() do { ANSELAbits.ANSA3 = 1; } while(0) +#define AIN_DU_RTN_I_MON_SetDigitalMode() do { ANSELAbits.ANSA3 = 0; } while(0) + +// get/set DIN_HYDRO_PWR_FLT aliases +#define DIN_HYDRO_PWR_FLT_TRIS TRISAbits.TRISA4 +#define DIN_HYDRO_PWR_FLT_LAT LATAbits.LATA4 +#define DIN_HYDRO_PWR_FLT_PORT PORTAbits.RA4 +#define DIN_HYDRO_PWR_FLT_SetHigh() do { LATAbits.LATA4 = 1; } while(0) +#define DIN_HYDRO_PWR_FLT_SetLow() do { LATAbits.LATA4 = 0; } while(0) +#define DIN_HYDRO_PWR_FLT_Toggle() do { LATAbits.LATA4 = ~LATAbits.LATA4; } while(0) +#define DIN_HYDRO_PWR_FLT_GetValue() PORTAbits.RA4 +#define DIN_HYDRO_PWR_FLT_SetDigitalInput() do { TRISAbits.TRISA4 = 1; } while(0) +#define DIN_HYDRO_PWR_FLT_SetDigitalOutput() do { TRISAbits.TRISA4 = 0; } while(0) + +// get/set AIN_DU_FWR_I_MON aliases +#define AIN_DU_FWR_I_MON_TRIS TRISAbits.TRISA5 +#define AIN_DU_FWR_I_MON_LAT LATAbits.LATA5 +#define AIN_DU_FWR_I_MON_PORT PORTAbits.RA5 +#define AIN_DU_FWR_I_MON_ANS ANSELAbits.ANSA5 +#define AIN_DU_FWR_I_MON_SetHigh() do { LATAbits.LATA5 = 1; } while(0) +#define AIN_DU_FWR_I_MON_SetLow() do { LATAbits.LATA5 = 0; } while(0) +#define AIN_DU_FWR_I_MON_Toggle() do { LATAbits.LATA5 = ~LATAbits.LATA5; } while(0) +#define AIN_DU_FWR_I_MON_GetValue() PORTAbits.RA5 +#define AIN_DU_FWR_I_MON_SetDigitalInput() do { TRISAbits.TRISA5 = 1; } while(0) +#define AIN_DU_FWR_I_MON_SetDigitalOutput() do { TRISAbits.TRISA5 = 0; } while(0) +#define AIN_DU_FWR_I_MON_SetAnalogMode() do { ANSELAbits.ANSA5 = 1; } while(0) +#define AIN_DU_FWR_I_MON_SetDigitalMode() do { ANSELAbits.ANSA5 = 0; } while(0) + +// get/set DOUT_JP2_LED_D10 aliases +#define DOUT_JP2_LED_D10_TRIS TRISAbits.TRISA6 +#define DOUT_JP2_LED_D10_LAT LATAbits.LATA6 +#define DOUT_JP2_LED_D10_PORT PORTAbits.RA6 +#define DOUT_JP2_LED_D10_SetHigh() do { LATAbits.LATA6 = 1; } while(0) +#define DOUT_JP2_LED_D10_SetLow() do { LATAbits.LATA6 = 0; } while(0) +#define DOUT_JP2_LED_D10_Toggle() do { LATAbits.LATA6 = ~LATAbits.LATA6; } while(0) +#define DOUT_JP2_LED_D10_GetValue() PORTAbits.RA6 +#define DOUT_JP2_LED_D10_SetDigitalInput() do { TRISAbits.TRISA6 = 1; } while(0) +#define DOUT_JP2_LED_D10_SetDigitalOutput() do { TRISAbits.TRISA6 = 0; } while(0) + +// get/set DOUT_JP1_LED_D9 aliases +#define DOUT_JP1_LED_D9_TRIS TRISAbits.TRISA7 +#define DOUT_JP1_LED_D9_LAT LATAbits.LATA7 +#define DOUT_JP1_LED_D9_PORT PORTAbits.RA7 +#define DOUT_JP1_LED_D9_SetHigh() do { LATAbits.LATA7 = 1; } while(0) +#define DOUT_JP1_LED_D9_SetLow() do { LATAbits.LATA7 = 0; } while(0) +#define DOUT_JP1_LED_D9_Toggle() do { LATAbits.LATA7 = ~LATAbits.LATA7; } while(0) +#define DOUT_JP1_LED_D9_GetValue() PORTAbits.RA7 +#define DOUT_JP1_LED_D9_SetDigitalInput() do { TRISAbits.TRISA7 = 1; } while(0) +#define DOUT_JP1_LED_D9_SetDigitalOutput() do { TRISAbits.TRISA7 = 0; } while(0) + +// get/set DIN_GLR_B_PG aliases +#define DIN_GLR_B_PG_TRIS TRISBbits.TRISB0 +#define DIN_GLR_B_PG_LAT LATBbits.LATB0 +#define DIN_GLR_B_PG_PORT PORTBbits.RB0 +#define DIN_GLR_B_PG_WPU WPUBbits.WPUB0 +#define DIN_GLR_B_PG_ANS ANSELBbits.ANSB0 +#define DIN_GLR_B_PG_SetHigh() do { LATBbits.LATB0 = 1; } while(0) +#define DIN_GLR_B_PG_SetLow() do { LATBbits.LATB0 = 0; } while(0) +#define DIN_GLR_B_PG_Toggle() do { LATBbits.LATB0 = ~LATBbits.LATB0; } while(0) +#define DIN_GLR_B_PG_GetValue() PORTBbits.RB0 +#define DIN_GLR_B_PG_SetDigitalInput() do { TRISBbits.TRISB0 = 1; } while(0) +#define DIN_GLR_B_PG_SetDigitalOutput() do { TRISBbits.TRISB0 = 0; } while(0) +#define DIN_GLR_B_PG_SetPullup() do { WPUBbits.WPUB0 = 1; } while(0) +#define DIN_GLR_B_PG_ResetPullup() do { WPUBbits.WPUB0 = 0; } while(0) +#define DIN_GLR_B_PG_SetAnalogMode() do { ANSELBbits.ANSB0 = 1; } while(0) +#define DIN_GLR_B_PG_SetDigitalMode() do { ANSELBbits.ANSB0 = 0; } while(0) + +// get/set AIN_PWB_I_MON aliases +#define AIN_PWB_I_MON_TRIS TRISBbits.TRISB1 +#define AIN_PWB_I_MON_LAT LATBbits.LATB1 +#define AIN_PWB_I_MON_PORT PORTBbits.RB1 +#define AIN_PWB_I_MON_WPU WPUBbits.WPUB1 +#define AIN_PWB_I_MON_ANS ANSELBbits.ANSB1 +#define AIN_PWB_I_MON_SetHigh() do { LATBbits.LATB1 = 1; } while(0) +#define AIN_PWB_I_MON_SetLow() do { LATBbits.LATB1 = 0; } while(0) +#define AIN_PWB_I_MON_Toggle() do { LATBbits.LATB1 = ~LATBbits.LATB1; } while(0) +#define AIN_PWB_I_MON_GetValue() PORTBbits.RB1 +#define AIN_PWB_I_MON_SetDigitalInput() do { TRISBbits.TRISB1 = 1; } while(0) +#define AIN_PWB_I_MON_SetDigitalOutput() do { TRISBbits.TRISB1 = 0; } while(0) +#define AIN_PWB_I_MON_SetPullup() do { WPUBbits.WPUB1 = 1; } while(0) +#define AIN_PWB_I_MON_ResetPullup() do { WPUBbits.WPUB1 = 0; } while(0) +#define AIN_PWB_I_MON_SetAnalogMode() do { ANSELBbits.ANSB1 = 1; } while(0) +#define AIN_PWB_I_MON_SetDigitalMode() do { ANSELBbits.ANSB1 = 0; } while(0) + +// get/set AIN_GLR_A_I_MON aliases +#define AIN_GLR_A_I_MON_TRIS TRISBbits.TRISB2 +#define AIN_GLR_A_I_MON_LAT LATBbits.LATB2 +#define AIN_GLR_A_I_MON_PORT PORTBbits.RB2 +#define AIN_GLR_A_I_MON_WPU WPUBbits.WPUB2 +#define AIN_GLR_A_I_MON_ANS ANSELBbits.ANSB2 +#define AIN_GLR_A_I_MON_SetHigh() do { LATBbits.LATB2 = 1; } while(0) +#define AIN_GLR_A_I_MON_SetLow() do { LATBbits.LATB2 = 0; } while(0) +#define AIN_GLR_A_I_MON_Toggle() do { LATBbits.LATB2 = ~LATBbits.LATB2; } while(0) +#define AIN_GLR_A_I_MON_GetValue() PORTBbits.RB2 +#define AIN_GLR_A_I_MON_SetDigitalInput() do { TRISBbits.TRISB2 = 1; } while(0) +#define AIN_GLR_A_I_MON_SetDigitalOutput() do { TRISBbits.TRISB2 = 0; } while(0) +#define AIN_GLR_A_I_MON_SetPullup() do { WPUBbits.WPUB2 = 1; } while(0) +#define AIN_GLR_A_I_MON_ResetPullup() do { WPUBbits.WPUB2 = 0; } while(0) +#define AIN_GLR_A_I_MON_SetAnalogMode() do { ANSELBbits.ANSB2 = 1; } while(0) +#define AIN_GLR_A_I_MON_SetDigitalMode() do { ANSELBbits.ANSB2 = 0; } while(0) + +// get/set AIN_GLR_B_I_MON aliases +#define AIN_GLR_B_I_MON_TRIS TRISBbits.TRISB3 +#define AIN_GLR_B_I_MON_LAT LATBbits.LATB3 +#define AIN_GLR_B_I_MON_PORT PORTBbits.RB3 +#define AIN_GLR_B_I_MON_WPU WPUBbits.WPUB3 +#define AIN_GLR_B_I_MON_ANS ANSELBbits.ANSB3 +#define AIN_GLR_B_I_MON_SetHigh() do { LATBbits.LATB3 = 1; } while(0) +#define AIN_GLR_B_I_MON_SetLow() do { LATBbits.LATB3 = 0; } while(0) +#define AIN_GLR_B_I_MON_Toggle() do { LATBbits.LATB3 = ~LATBbits.LATB3; } while(0) +#define AIN_GLR_B_I_MON_GetValue() PORTBbits.RB3 +#define AIN_GLR_B_I_MON_SetDigitalInput() do { TRISBbits.TRISB3 = 1; } while(0) +#define AIN_GLR_B_I_MON_SetDigitalOutput() do { TRISBbits.TRISB3 = 0; } while(0) +#define AIN_GLR_B_I_MON_SetPullup() do { WPUBbits.WPUB3 = 1; } while(0) +#define AIN_GLR_B_I_MON_ResetPullup() do { WPUBbits.WPUB3 = 0; } while(0) +#define AIN_GLR_B_I_MON_SetAnalogMode() do { ANSELBbits.ANSB3 = 1; } while(0) +#define AIN_GLR_B_I_MON_SetDigitalMode() do { ANSELBbits.ANSB3 = 0; } while(0) + +// get/set DIN_ALRMPOS1 aliases +#define DIN_ALRMPOS1_TRIS TRISBbits.TRISB4 +#define DIN_ALRMPOS1_LAT LATBbits.LATB4 +#define DIN_ALRMPOS1_PORT PORTBbits.RB4 +#define DIN_ALRMPOS1_WPU WPUBbits.WPUB4 +#define DIN_ALRMPOS1_ANS ANSELBbits.ANSB4 +#define DIN_ALRMPOS1_SetHigh() do { LATBbits.LATB4 = 1; } while(0) +#define DIN_ALRMPOS1_SetLow() do { LATBbits.LATB4 = 0; } while(0) +#define DIN_ALRMPOS1_Toggle() do { LATBbits.LATB4 = ~LATBbits.LATB4; } while(0) +#define DIN_ALRMPOS1_GetValue() PORTBbits.RB4 +#define DIN_ALRMPOS1_SetDigitalInput() do { TRISBbits.TRISB4 = 1; } while(0) +#define DIN_ALRMPOS1_SetDigitalOutput() do { TRISBbits.TRISB4 = 0; } while(0) +#define DIN_ALRMPOS1_SetPullup() do { WPUBbits.WPUB4 = 1; } while(0) +#define DIN_ALRMPOS1_ResetPullup() do { WPUBbits.WPUB4 = 0; } while(0) +#define DIN_ALRMPOS1_SetAnalogMode() do { ANSELBbits.ANSB4 = 1; } while(0) +#define DIN_ALRMPOS1_SetDigitalMode() do { ANSELBbits.ANSB4 = 0; } while(0) + +// get/set DIN_ALRMPOS2 aliases +#define DIN_ALRMPOS2_TRIS TRISBbits.TRISB5 +#define DIN_ALRMPOS2_LAT LATBbits.LATB5 +#define DIN_ALRMPOS2_PORT PORTBbits.RB5 +#define DIN_ALRMPOS2_WPU WPUBbits.WPUB5 +#define DIN_ALRMPOS2_ANS ANSELBbits.ANSB5 +#define DIN_ALRMPOS2_SetHigh() do { LATBbits.LATB5 = 1; } while(0) +#define DIN_ALRMPOS2_SetLow() do { LATBbits.LATB5 = 0; } while(0) +#define DIN_ALRMPOS2_Toggle() do { LATBbits.LATB5 = ~LATBbits.LATB5; } while(0) +#define DIN_ALRMPOS2_GetValue() PORTBbits.RB5 +#define DIN_ALRMPOS2_SetDigitalInput() do { TRISBbits.TRISB5 = 1; } while(0) +#define DIN_ALRMPOS2_SetDigitalOutput() do { TRISBbits.TRISB5 = 0; } while(0) +#define DIN_ALRMPOS2_SetPullup() do { WPUBbits.WPUB5 = 1; } while(0) +#define DIN_ALRMPOS2_ResetPullup() do { WPUBbits.WPUB5 = 0; } while(0) +#define DIN_ALRMPOS2_SetAnalogMode() do { ANSELBbits.ANSB5 = 1; } while(0) +#define DIN_ALRMPOS2_SetDigitalMode() do { ANSELBbits.ANSB5 = 0; } while(0) + +// get/set DIN_ALRMNEG1 aliases +#define DIN_ALRMNEG1_TRIS TRISBbits.TRISB6 +#define DIN_ALRMNEG1_LAT LATBbits.LATB6 +#define DIN_ALRMNEG1_PORT PORTBbits.RB6 +#define DIN_ALRMNEG1_WPU WPUBbits.WPUB6 +#define DIN_ALRMNEG1_SetHigh() do { LATBbits.LATB6 = 1; } while(0) +#define DIN_ALRMNEG1_SetLow() do { LATBbits.LATB6 = 0; } while(0) +#define DIN_ALRMNEG1_Toggle() do { LATBbits.LATB6 = ~LATBbits.LATB6; } while(0) +#define DIN_ALRMNEG1_GetValue() PORTBbits.RB6 +#define DIN_ALRMNEG1_SetDigitalInput() do { TRISBbits.TRISB6 = 1; } while(0) +#define DIN_ALRMNEG1_SetDigitalOutput() do { TRISBbits.TRISB6 = 0; } while(0) +#define DIN_ALRMNEG1_SetPullup() do { WPUBbits.WPUB6 = 1; } while(0) +#define DIN_ALRMNEG1_ResetPullup() do { WPUBbits.WPUB6 = 0; } while(0) + +// get/set DIN_ALRMNEG2 aliases +#define DIN_ALRMNEG2_TRIS TRISBbits.TRISB7 +#define DIN_ALRMNEG2_LAT LATBbits.LATB7 +#define DIN_ALRMNEG2_PORT PORTBbits.RB7 +#define DIN_ALRMNEG2_WPU WPUBbits.WPUB7 +#define DIN_ALRMNEG2_SetHigh() do { LATBbits.LATB7 = 1; } while(0) +#define DIN_ALRMNEG2_SetLow() do { LATBbits.LATB7 = 0; } while(0) +#define DIN_ALRMNEG2_Toggle() do { LATBbits.LATB7 = ~LATBbits.LATB7; } while(0) +#define DIN_ALRMNEG2_GetValue() PORTBbits.RB7 +#define DIN_ALRMNEG2_SetDigitalInput() do { TRISBbits.TRISB7 = 1; } while(0) +#define DIN_ALRMNEG2_SetDigitalOutput() do { TRISBbits.TRISB7 = 0; } while(0) +#define DIN_ALRMNEG2_SetPullup() do { WPUBbits.WPUB7 = 1; } while(0) +#define DIN_ALRMNEG2_ResetPullup() do { WPUBbits.WPUB7 = 0; } while(0) + +// get/set DIN_PWB_PG aliases +#define DIN_PWB_PG_TRIS TRISCbits.TRISC0 +#define DIN_PWB_PG_LAT LATCbits.LATC0 +#define DIN_PWB_PG_PORT PORTCbits.RC0 +#define DIN_PWB_PG_SetHigh() do { LATCbits.LATC0 = 1; } while(0) +#define DIN_PWB_PG_SetLow() do { LATCbits.LATC0 = 0; } while(0) +#define DIN_PWB_PG_Toggle() do { LATCbits.LATC0 = ~LATCbits.LATC0; } while(0) +#define DIN_PWB_PG_GetValue() PORTCbits.RC0 +#define DIN_PWB_PG_SetDigitalInput() do { TRISCbits.TRISC0 = 1; } while(0) +#define DIN_PWB_PG_SetDigitalOutput() do { TRISCbits.TRISC0 = 0; } while(0) + +// get/set DIN_LBL_PWR_FLT aliases +#define DIN_LBL_PWR_FLT_TRIS TRISCbits.TRISC1 +#define DIN_LBL_PWR_FLT_LAT LATCbits.LATC1 +#define DIN_LBL_PWR_FLT_PORT PORTCbits.RC1 +#define DIN_LBL_PWR_FLT_SetHigh() do { LATCbits.LATC1 = 1; } while(0) +#define DIN_LBL_PWR_FLT_SetLow() do { LATCbits.LATC1 = 0; } while(0) +#define DIN_LBL_PWR_FLT_Toggle() do { LATCbits.LATC1 = ~LATCbits.LATC1; } while(0) +#define DIN_LBL_PWR_FLT_GetValue() PORTCbits.RC1 +#define DIN_LBL_PWR_FLT_SetDigitalInput() do { TRISCbits.TRISC1 = 1; } while(0) +#define DIN_LBL_PWR_FLT_SetDigitalOutput() do { TRISCbits.TRISC1 = 0; } while(0) + +// get/set DIN_GLR_A_FLT aliases +#define DIN_GLR_A_FLT_TRIS TRISCbits.TRISC2 +#define DIN_GLR_A_FLT_LAT LATCbits.LATC2 +#define DIN_GLR_A_FLT_PORT PORTCbits.RC2 +#define DIN_GLR_A_FLT_ANS ANSELCbits.ANSC2 +#define DIN_GLR_A_FLT_SetHigh() do { LATCbits.LATC2 = 1; } while(0) +#define DIN_GLR_A_FLT_SetLow() do { LATCbits.LATC2 = 0; } while(0) +#define DIN_GLR_A_FLT_Toggle() do { LATCbits.LATC2 = ~LATCbits.LATC2; } while(0) +#define DIN_GLR_A_FLT_GetValue() PORTCbits.RC2 +#define DIN_GLR_A_FLT_SetDigitalInput() do { TRISCbits.TRISC2 = 1; } while(0) +#define DIN_GLR_A_FLT_SetDigitalOutput() do { TRISCbits.TRISC2 = 0; } while(0) +#define DIN_GLR_A_FLT_SetAnalogMode() do { ANSELCbits.ANSC2 = 1; } while(0) +#define DIN_GLR_A_FLT_SetDigitalMode() do { ANSELCbits.ANSC2 = 0; } while(0) + +// get/set DIN_GLR_B_FLT aliases +#define DIN_GLR_B_FLT_TRIS TRISCbits.TRISC3 +#define DIN_GLR_B_FLT_LAT LATCbits.LATC3 +#define DIN_GLR_B_FLT_PORT PORTCbits.RC3 +#define DIN_GLR_B_FLT_ANS ANSELCbits.ANSC3 +#define DIN_GLR_B_FLT_SetHigh() do { LATCbits.LATC3 = 1; } while(0) +#define DIN_GLR_B_FLT_SetLow() do { LATCbits.LATC3 = 0; } while(0) +#define DIN_GLR_B_FLT_Toggle() do { LATCbits.LATC3 = ~LATCbits.LATC3; } while(0) +#define DIN_GLR_B_FLT_GetValue() PORTCbits.RC3 +#define DIN_GLR_B_FLT_SetDigitalInput() do { TRISCbits.TRISC3 = 1; } while(0) +#define DIN_GLR_B_FLT_SetDigitalOutput() do { TRISCbits.TRISC3 = 0; } while(0) +#define DIN_GLR_B_FLT_SetAnalogMode() do { ANSELCbits.ANSC3 = 1; } while(0) +#define DIN_GLR_B_FLT_SetDigitalMode() do { ANSELCbits.ANSC3 = 0; } while(0) + +// get/set DIN_PWB_FLT aliases +#define DIN_PWB_FLT_TRIS TRISCbits.TRISC4 +#define DIN_PWB_FLT_LAT LATCbits.LATC4 +#define DIN_PWB_FLT_PORT PORTCbits.RC4 +#define DIN_PWB_FLT_ANS ANSELCbits.ANSC4 +#define DIN_PWB_FLT_SetHigh() do { LATCbits.LATC4 = 1; } while(0) +#define DIN_PWB_FLT_SetLow() do { LATCbits.LATC4 = 0; } while(0) +#define DIN_PWB_FLT_Toggle() do { LATCbits.LATC4 = ~LATCbits.LATC4; } while(0) +#define DIN_PWB_FLT_GetValue() PORTCbits.RC4 +#define DIN_PWB_FLT_SetDigitalInput() do { TRISCbits.TRISC4 = 1; } while(0) +#define DIN_PWB_FLT_SetDigitalOutput() do { TRISCbits.TRISC4 = 0; } while(0) +#define DIN_PWB_FLT_SetAnalogMode() do { ANSELCbits.ANSC4 = 1; } while(0) +#define DIN_PWB_FLT_SetDigitalMode() do { ANSELCbits.ANSC4 = 0; } while(0) + +// get/set DIN_GLR_A_PG aliases +#define DIN_GLR_A_PG_TRIS TRISCbits.TRISC5 +#define DIN_GLR_A_PG_LAT LATCbits.LATC5 +#define DIN_GLR_A_PG_PORT PORTCbits.RC5 +#define DIN_GLR_A_PG_ANS ANSELCbits.ANSC5 +#define DIN_GLR_A_PG_SetHigh() do { LATCbits.LATC5 = 1; } while(0) +#define DIN_GLR_A_PG_SetLow() do { LATCbits.LATC5 = 0; } while(0) +#define DIN_GLR_A_PG_Toggle() do { LATCbits.LATC5 = ~LATCbits.LATC5; } while(0) +#define DIN_GLR_A_PG_GetValue() PORTCbits.RC5 +#define DIN_GLR_A_PG_SetDigitalInput() do { TRISCbits.TRISC5 = 1; } while(0) +#define DIN_GLR_A_PG_SetDigitalOutput() do { TRISCbits.TRISC5 = 0; } while(0) +#define DIN_GLR_A_PG_SetAnalogMode() do { ANSELCbits.ANSC5 = 1; } while(0) +#define DIN_GLR_A_PG_SetDigitalMode() do { ANSELCbits.ANSC5 = 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) +#define RC6_SetAnalogMode() do { ANSELCbits.ANSC6 = 1; } while(0) +#define RC6_SetDigitalMode() do { ANSELCbits.ANSC6 = 0; } while(0) + +// get/set RC7 procedures +#define RC7_SetHigh() do { LATCbits.LATC7 = 1; } while(0) +#define RC7_SetLow() do { LATCbits.LATC7 = 0; } while(0) +#define RC7_Toggle() do { LATCbits.LATC7 = ~LATCbits.LATC7; } while(0) +#define RC7_GetValue() PORTCbits.RC7 +#define RC7_SetDigitalInput() do { TRISCbits.TRISC7 = 1; } while(0) +#define RC7_SetDigitalOutput() do { TRISCbits.TRISC7 = 0; } while(0) +#define RC7_SetAnalogMode() do { ANSELCbits.ANSC7 = 1; } while(0) +#define RC7_SetDigitalMode() do { ANSELCbits.ANSC7 = 0; } while(0) + +// get/set DOUT_375V_RTN_SWITCH_ON_OFF aliases +#define DOUT_375V_RTN_SWITCH_ON_OFF_TRIS TRISDbits.TRISD0 +#define DOUT_375V_RTN_SWITCH_ON_OFF_LAT LATDbits.LATD0 +#define DOUT_375V_RTN_SWITCH_ON_OFF_PORT PORTDbits.RD0 +#define DOUT_375V_RTN_SWITCH_ON_OFF_ANS ANSELDbits.ANSD0 +#define DOUT_375V_RTN_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD0 = 1; } while(0) +#define DOUT_375V_RTN_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD0 = 0; } while(0) +#define DOUT_375V_RTN_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD0 = ~LATDbits.LATD0; } while(0) +#define DOUT_375V_RTN_SWITCH_ON_OFF_GetValue() PORTDbits.RD0 +#define DOUT_375V_RTN_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD0 = 1; } while(0) +#define DOUT_375V_RTN_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD0 = 0; } while(0) +#define DOUT_375V_RTN_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD0 = 1; } while(0) +#define DOUT_375V_RTN_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD0 = 0; } while(0) + +// get/set DOUT_375V_FWR_SWTCH_ON_OFF aliases +#define DOUT_375V_FWR_SWTCH_ON_OFF_TRIS TRISDbits.TRISD1 +#define DOUT_375V_FWR_SWTCH_ON_OFF_LAT LATDbits.LATD1 +#define DOUT_375V_FWR_SWTCH_ON_OFF_PORT PORTDbits.RD1 +#define DOUT_375V_FWR_SWTCH_ON_OFF_ANS ANSELDbits.ANSD1 +#define DOUT_375V_FWR_SWTCH_ON_OFF_SetHigh() do { LATDbits.LATD1 = 1; } while(0) +#define DOUT_375V_FWR_SWTCH_ON_OFF_SetLow() do { LATDbits.LATD1 = 0; } while(0) +#define DOUT_375V_FWR_SWTCH_ON_OFF_Toggle() do { LATDbits.LATD1 = ~LATDbits.LATD1; } while(0) +#define DOUT_375V_FWR_SWTCH_ON_OFF_GetValue() PORTDbits.RD1 +#define DOUT_375V_FWR_SWTCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD1 = 1; } while(0) +#define DOUT_375V_FWR_SWTCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD1 = 0; } while(0) +#define DOUT_375V_FWR_SWTCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD1 = 1; } while(0) +#define DOUT_375V_FWR_SWTCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD1 = 0; } while(0) + +// get/set DOUT_ISO_12V_SWITCH_ON_OFF aliases +#define DOUT_ISO_12V_SWITCH_ON_OFF_TRIS TRISDbits.TRISD2 +#define DOUT_ISO_12V_SWITCH_ON_OFF_LAT LATDbits.LATD2 +#define DOUT_ISO_12V_SWITCH_ON_OFF_PORT PORTDbits.RD2 +#define DOUT_ISO_12V_SWITCH_ON_OFF_ANS ANSELDbits.ANSD2 +#define DOUT_ISO_12V_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD2 = 1; } while(0) +#define DOUT_ISO_12V_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD2 = 0; } while(0) +#define DOUT_ISO_12V_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD2 = ~LATDbits.LATD2; } while(0) +#define DOUT_ISO_12V_SWITCH_ON_OFF_GetValue() PORTDbits.RD2 +#define DOUT_ISO_12V_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD2 = 1; } while(0) +#define DOUT_ISO_12V_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD2 = 0; } while(0) +#define DOUT_ISO_12V_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD2 = 1; } while(0) +#define DOUT_ISO_12V_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD2 = 0; } while(0) + +// get/set DOUT_LBL_SWITCH_ON_OFF aliases +#define DOUT_LBL_SWITCH_ON_OFF_TRIS TRISDbits.TRISD3 +#define DOUT_LBL_SWITCH_ON_OFF_LAT LATDbits.LATD3 +#define DOUT_LBL_SWITCH_ON_OFF_PORT PORTDbits.RD3 +#define DOUT_LBL_SWITCH_ON_OFF_ANS ANSELDbits.ANSD3 +#define DOUT_LBL_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD3 = 1; } while(0) +#define DOUT_LBL_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD3 = 0; } while(0) +#define DOUT_LBL_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD3 = ~LATDbits.LATD3; } while(0) +#define DOUT_LBL_SWITCH_ON_OFF_GetValue() PORTDbits.RD3 +#define DOUT_LBL_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD3 = 1; } while(0) +#define DOUT_LBL_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD3 = 0; } while(0) +#define DOUT_LBL_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD3 = 1; } while(0) +#define DOUT_LBL_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD3 = 0; } while(0) + +// get/set DOUT_HYDRO_SWITCH_ON_OFF aliases +#define DOUT_HYDRO_SWITCH_ON_OFF_TRIS TRISDbits.TRISD4 +#define DOUT_HYDRO_SWITCH_ON_OFF_LAT LATDbits.LATD4 +#define DOUT_HYDRO_SWITCH_ON_OFF_PORT PORTDbits.RD4 +#define DOUT_HYDRO_SWITCH_ON_OFF_ANS ANSELDbits.ANSD4 +#define DOUT_HYDRO_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD4 = 1; } while(0) +#define DOUT_HYDRO_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD4 = 0; } while(0) +#define DOUT_HYDRO_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD4 = ~LATDbits.LATD4; } while(0) +#define DOUT_HYDRO_SWITCH_ON_OFF_GetValue() PORTDbits.RD4 +#define DOUT_HYDRO_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD4 = 1; } while(0) +#define DOUT_HYDRO_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD4 = 0; } while(0) +#define DOUT_HYDRO_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD4 = 1; } while(0) +#define DOUT_HYDRO_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD4 = 0; } while(0) + +// get/set DOUT_GLR_A_SWITCH_ON_OFF aliases +#define DOUT_GLR_A_SWITCH_ON_OFF_TRIS TRISDbits.TRISD5 +#define DOUT_GLR_A_SWITCH_ON_OFF_LAT LATDbits.LATD5 +#define DOUT_GLR_A_SWITCH_ON_OFF_PORT PORTDbits.RD5 +#define DOUT_GLR_A_SWITCH_ON_OFF_ANS ANSELDbits.ANSD5 +#define DOUT_GLR_A_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD5 = 1; } while(0) +#define DOUT_GLR_A_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD5 = 0; } while(0) +#define DOUT_GLR_A_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD5 = ~LATDbits.LATD5; } while(0) +#define DOUT_GLR_A_SWITCH_ON_OFF_GetValue() PORTDbits.RD5 +#define DOUT_GLR_A_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD5 = 1; } while(0) +#define DOUT_GLR_A_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD5 = 0; } while(0) +#define DOUT_GLR_A_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD5 = 1; } while(0) +#define DOUT_GLR_A_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD5 = 0; } while(0) + +// get/set DOUT_GLR_B_SWITCH_ON_OFF aliases +#define DOUT_GLR_B_SWITCH_ON_OFF_TRIS TRISDbits.TRISD6 +#define DOUT_GLR_B_SWITCH_ON_OFF_LAT LATDbits.LATD6 +#define DOUT_GLR_B_SWITCH_ON_OFF_PORT PORTDbits.RD6 +#define DOUT_GLR_B_SWITCH_ON_OFF_ANS ANSELDbits.ANSD6 +#define DOUT_GLR_B_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD6 = 1; } while(0) +#define DOUT_GLR_B_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD6 = 0; } while(0) +#define DOUT_GLR_B_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD6 = ~LATDbits.LATD6; } while(0) +#define DOUT_GLR_B_SWITCH_ON_OFF_GetValue() PORTDbits.RD6 +#define DOUT_GLR_B_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD6 = 1; } while(0) +#define DOUT_GLR_B_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD6 = 0; } while(0) +#define DOUT_GLR_B_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD6 = 1; } while(0) +#define DOUT_GLR_B_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD6 = 0; } while(0) + +// get/set DOUT_PWB_SWITCH_ON_OFF aliases +#define DOUT_PWB_SWITCH_ON_OFF_TRIS TRISDbits.TRISD7 +#define DOUT_PWB_SWITCH_ON_OFF_LAT LATDbits.LATD7 +#define DOUT_PWB_SWITCH_ON_OFF_PORT PORTDbits.RD7 +#define DOUT_PWB_SWITCH_ON_OFF_ANS ANSELDbits.ANSD7 +#define DOUT_PWB_SWITCH_ON_OFF_SetHigh() do { LATDbits.LATD7 = 1; } while(0) +#define DOUT_PWB_SWITCH_ON_OFF_SetLow() do { LATDbits.LATD7 = 0; } while(0) +#define DOUT_PWB_SWITCH_ON_OFF_Toggle() do { LATDbits.LATD7 = ~LATDbits.LATD7; } while(0) +#define DOUT_PWB_SWITCH_ON_OFF_GetValue() PORTDbits.RD7 +#define DOUT_PWB_SWITCH_ON_OFF_SetDigitalInput() do { TRISDbits.TRISD7 = 1; } while(0) +#define DOUT_PWB_SWITCH_ON_OFF_SetDigitalOutput() do { TRISDbits.TRISD7 = 0; } while(0) +#define DOUT_PWB_SWITCH_ON_OFF_SetAnalogMode() do { ANSELDbits.ANSD7 = 1; } while(0) +#define DOUT_PWB_SWITCH_ON_OFF_SetDigitalMode() do { ANSELDbits.ANSD7 = 0; } while(0) + +// get/set AIN_HYDRO_I_MON aliases +#define AIN_HYDRO_I_MON_TRIS TRISEbits.TRISE0 +#define AIN_HYDRO_I_MON_LAT LATEbits.LATE0 +#define AIN_HYDRO_I_MON_PORT PORTEbits.RE0 +#define AIN_HYDRO_I_MON_ANS ANSELEbits.ANSE0 +#define AIN_HYDRO_I_MON_SetHigh() do { LATEbits.LATE0 = 1; } while(0) +#define AIN_HYDRO_I_MON_SetLow() do { LATEbits.LATE0 = 0; } while(0) +#define AIN_HYDRO_I_MON_Toggle() do { LATEbits.LATE0 = ~LATEbits.LATE0; } while(0) +#define AIN_HYDRO_I_MON_GetValue() PORTEbits.RE0 +#define AIN_HYDRO_I_MON_SetDigitalInput() do { TRISEbits.TRISE0 = 1; } while(0) +#define AIN_HYDRO_I_MON_SetDigitalOutput() do { TRISEbits.TRISE0 = 0; } while(0) +#define AIN_HYDRO_I_MON_SetAnalogMode() do { ANSELEbits.ANSE0 = 1; } while(0) +#define AIN_HYDRO_I_MON_SetDigitalMode() do { ANSELEbits.ANSE0 = 0; } while(0) + +// get/set AIN_INPUT_V_MON aliases +#define AIN_INPUT_V_MON_TRIS TRISEbits.TRISE1 +#define AIN_INPUT_V_MON_LAT LATEbits.LATE1 +#define AIN_INPUT_V_MON_PORT PORTEbits.RE1 +#define AIN_INPUT_V_MON_ANS ANSELEbits.ANSE1 +#define AIN_INPUT_V_MON_SetHigh() do { LATEbits.LATE1 = 1; } while(0) +#define AIN_INPUT_V_MON_SetLow() do { LATEbits.LATE1 = 0; } while(0) +#define AIN_INPUT_V_MON_Toggle() do { LATEbits.LATE1 = ~LATEbits.LATE1; } while(0) +#define AIN_INPUT_V_MON_GetValue() PORTEbits.RE1 +#define AIN_INPUT_V_MON_SetDigitalInput() do { TRISEbits.TRISE1 = 1; } while(0) +#define AIN_INPUT_V_MON_SetDigitalOutput() do { TRISEbits.TRISE1 = 0; } while(0) +#define AIN_INPUT_V_MON_SetAnalogMode() do { ANSELEbits.ANSE1 = 1; } while(0) +#define AIN_INPUT_V_MON_SetDigitalMode() do { ANSELEbits.ANSE1 = 0; } while(0) + +// get/set AIN_LBL_I_MON aliases +#define AIN_LBL_I_MON_TRIS TRISEbits.TRISE2 +#define AIN_LBL_I_MON_LAT LATEbits.LATE2 +#define AIN_LBL_I_MON_PORT PORTEbits.RE2 +#define AIN_LBL_I_MON_ANS ANSELEbits.ANSE2 +#define AIN_LBL_I_MON_SetHigh() do { LATEbits.LATE2 = 1; } while(0) +#define AIN_LBL_I_MON_SetLow() do { LATEbits.LATE2 = 0; } while(0) +#define AIN_LBL_I_MON_Toggle() do { LATEbits.LATE2 = ~LATEbits.LATE2; } while(0) +#define AIN_LBL_I_MON_GetValue() PORTEbits.RE2 +#define AIN_LBL_I_MON_SetDigitalInput() do { TRISEbits.TRISE2 = 1; } while(0) +#define AIN_LBL_I_MON_SetDigitalOutput() do { TRISEbits.TRISE2 = 0; } while(0) +#define AIN_LBL_I_MON_SetAnalogMode() do { ANSELEbits.ANSE2 = 1; } while(0) +#define AIN_LBL_I_MON_SetDigitalMode() do { ANSELEbits.ANSE2 = 0; } while(0) + +/** + @Param + none + @Returns + none + @Description + GPIO and peripheral I/O initialization + @Example + PIN_MANAGER_Initialize(); + */ +void PIN_MANAGER_Initialize (void); + +/** + * @Param + none + * @Returns + none + * @Description + Interrupt on Change Handling routine + * @Example + PIN_MANAGER_IOC(); + */ +void PIN_MANAGER_IOC(void); + + + +#endif // PIN_MANAGER_H +/** + End of File +*/ \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr0.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr0.c new file mode 100644 index 0000000000000000000000000000000000000000..7b0e92255329c7f254627c1d5edd51c1ea3eb165 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr0.c @@ -0,0 +1,158 @@ +/** + 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.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <xc.h> +#include "tmr0.h" + +/** + Section: Global Variables Definitions +*/ + +void (*TMR0_InterruptHandler)(void); + +volatile uint8_t timer0ReloadVal; + +/** + Section: TMR0 APIs +*/ + + +void TMR0_Initialize(void) +{ + // Set TMR0 to the options selected in the User Interface + + // TMR0H 0; + TMR0H = 0x00; + + // TMR0L 106; + TMR0L = 0x6A; + + + // Load TMR0 value to the 8-bit reload variable + timer0ReloadVal = 106; + + // 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:32; T08BIT 8-bit; T0SE Increment_hi_lo; T0CS FOSC/4; TMR0ON enabled; PSA assigned; + T0CON = 0xD4; +} + +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; +} + +uint8_t TMR0_ReadTimer(void) +{ + uint8_t readVal; + + // read Timer0, low register only + readVal = TMR0L; + + return readVal; +} + +void TMR0_WriteTimer(uint8_t timerVal) +{ + // Write to the Timer0 registers, low register only + TMR0L = timerVal; + } + +void TMR0_Reload(void) +{ + //Write to the Timer0 register + TMR0L = timer0ReloadVal; +} + + +void TMR0_ISR(void) +{ + + // clear the TMR0 interrupt flag + INTCONbits.TMR0IF = 0; + + // reload TMR0 + TMR0L = 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/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr0.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr0.h new file mode 100644 index 0000000000000000000000000000000000000000..2a0080840e6b97befc29dc0187494ab2cdc993d5 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/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.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <stdint.h> +#include <stdbool.h> + +#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 + <code> + main() + { + // Initialize TMR0 module + TMR0_Initialize(); + + // Do something else... + } + </code> +*/ +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 + <code> + // Initialize TMR0 module + + // Start TMR0 + TMR0_StartTimer(); + + // Do something else... + </code> +*/ +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 + <code> + // Initialize TMR0 module + + // Start TMR0 + TMR0_StartTimer(); + + // Do something else... + + // Stop TMR0; + TMR0_StopTimer(); + </code> +*/ +void TMR0_StopTimer(void); + +/** + @Summary + Reads the 8 bits TMR0 register value. + + @Description + This function reads the 8 bits TMR0 register value and return it. + + @Preconditions + Initialize the TMR0 before calling this function. + + @Param + None + + @Returns + This function returns the 8 bits value of TMR0 register. + + @Example + <code> + // 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(); + } + </code> +*/ +uint8_t TMR0_ReadTimer(void); + +/** + @Summary + Writes the 8 bits value to TMR0 register. + + @Description + This function writes the 8 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 + <code> + #define PERIOD 0x80 + #define ZERO 0x00 + + while(1) + { + // Read the TMR0 register + if(ZERO == TMR0_ReadTimer()) + { + // Do something else... + + // Write the TMR0 register + TMR0_WriteTimer(PERIOD); + } + + // Do something else... + } + </code> +*/ +void TMR0_WriteTimer(uint8_t timerVal); + +/** + @Summary + Reload the 8 bits value to TMR0 register. + + @Description + This function reloads the 8 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 + <code> + while(1) + { + if(TMR0IF) + { + // Do something else... + + // clear the TMR0 interrupt flag + TMR0IF = 0; + + // Reload the initial value of TMR0 + TMR0_Reload(); + } + } + </code> +*/ +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/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr2.c b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr2.c new file mode 100644 index 0000000000000000000000000000000000000000..d32b0b67aee98cfaba02e12dd753df9ce89ee515 --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr2.c @@ -0,0 +1,143 @@ +/** + TMR2 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + tmr2.c + + @Summary + This is the generated driver implementation file for the TMR2 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This source file provides APIs for TMR2. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 <xc.h> +#include "tmr2.h" + +/** + Section: Global Variables Definitions +*/ + +void (*TMR2_InterruptHandler)(void); + +/** + Section: TMR2 APIs +*/ + +void TMR2_Initialize(void) +{ + // Set TMR2 to the options selected in the User Interface + + // PR2 159; + PR2 = 0x9F; + + // TMR2 0; + TMR2 = 0x00; + + // Clearing IF flag before enabling the interrupt. + PIR1bits.TMR2IF = 0; + + // Enabling TMR2 interrupt. + PIE1bits.TMR2IE = 1; + + // Set Default Interrupt Handler + TMR2_SetInterruptHandler(TMR2_DefaultInterruptHandler); + + // T2CKPS 1:4; T2OUTPS 1:2; TMR2ON on; + T2CON = 0x0D; +} + +void TMR2_StartTimer(void) +{ + // Start the Timer by writing to TMRxON bit + T2CONbits.TMR2ON = 1; +} + +void TMR2_StopTimer(void) +{ + // Stop the Timer by writing to TMRxON bit + T2CONbits.TMR2ON = 0; +} + +uint8_t TMR2_ReadTimer(void) +{ + uint8_t readVal; + + readVal = TMR2; + + return readVal; +} + +void TMR2_WriteTimer(uint8_t timerVal) +{ + // Write to the Timer2 register + TMR2 = timerVal; +} + +void TMR2_LoadPeriodRegister(uint8_t periodVal) +{ + PR2 = periodVal; +} + +void TMR2_ISR(void) +{ + + // clear the TMR2 interrupt flag + PIR1bits.TMR2IF = 0; + + if(TMR2_InterruptHandler) + { + TMR2_InterruptHandler(); + } +} + + +void TMR2_SetInterruptHandler(void (* InterruptHandler)(void)){ + TMR2_InterruptHandler = InterruptHandler; +} + +void TMR2_DefaultInterruptHandler(void){ + // add your TMR2 interrupt custom code + // or set custom function using TMR2_SetInterruptHandler() +} + +/** + End of File +*/ \ No newline at end of file diff --git a/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr2.h b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr2.h new file mode 100644 index 0000000000000000000000000000000000000000..e4fa63eb432a8c85e9ff39a1f7a93acf410c51ee --- /dev/null +++ b/micro/BPD-V01-FIRMWARE.X/mcc_generated_files/tmr2.h @@ -0,0 +1,375 @@ +/** + TMR2 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + tmr2.h + + @Summary + This is the generated header file for the TMR2 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs + + @Description + This header file provides APIs for TMR2. + Generation Information : + Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7 + Device : PIC18F46K22 + Driver Version : 2.01 + The generated drivers are tested against the following: + Compiler : XC8 2.31 and above + MPLAB : MPLAB X 5.45 +*/ + +/* + (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 TMR2_H +#define TMR2_H + +/** + Section: Included Files +*/ + +#include <stdint.h> +#include <stdbool.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + Section: Macro Declarations +*/ + +/** + Section: TMR2 APIs +*/ + +/** + @Summary + Initializes the TMR2 module. + + @Description + This function initializes the TMR2 Registers. + This function must be called before any other TMR2 function is called. + + @Preconditions + None + + @Param + None + + @Returns + None + + @Comment + + + @Example + <code> + main() + { + // Initialize TMR2 module + TMR2_Initialize(); + + // Do something else... + } + </code> +*/ +void TMR2_Initialize(void); + +/** + @Summary + This function starts the TMR2. + + @Description + This function starts the TMR2 operation. + This function must be called after the initialization of TMR2. + + @Preconditions + Initialize the TMR2 before calling this function. + + @Param + None + + @Returns + None + + @Example + <code> + // Initialize TMR2 module + + // Start TMR2 + TMR2_StartTimer(); + + // Do something else... + </code> +*/ +void TMR2_StartTimer(void); + +/** + @Summary + This function stops the TMR2. + + @Description + This function stops the TMR2 operation. + This function must be called after the start of TMR2. + + @Preconditions + Initialize the TMR2 before calling this function. + + @Param + None + + @Returns + None + + @Example + <code> + // Initialize TMR2 module + + // Start TMR2 + TMR2_StartTimer(); + + // Do something else... + + // Stop TMR2; + TMR2_StopTimer(); + </code> +*/ +void TMR2_StopTimer(void); + +/** + @Summary + Reads the TMR2 register. + + @Description + This function reads the TMR2 register value and return it. + + @Preconditions + Initialize the TMR2 before calling this function. + + @Param + None + + @Returns + This function returns the current value of TMR2 register. + + @Example + <code> + // Initialize TMR2 module + + // Start TMR2 + TMR2_StartTimer(); + + // Read the current value of TMR2 + if(0 == TMR2_ReadTimer()) + { + // Do something else... + + // Reload the TMR value + TMR2_Reload(); + } + </code> +*/ +uint8_t TMR2_ReadTimer(void); + +/** + @Summary + Writes the TMR2 register. + + @Description + This function writes the TMR2 register. + This function must be called after the initialization of TMR2. + + @Preconditions + Initialize the TMR2 before calling this function. + + @Param + timerVal - Value to write into TMR2 register. + + @Returns + None + + @Example + <code> + #define PERIOD 0x80 + #define ZERO 0x00 + + while(1) + { + // Read the TMR2 register + if(ZERO == TMR2_ReadTimer()) + { + // Do something else... + + // Write the TMR2 register + TMR2_WriteTimer(PERIOD); + } + + // Do something else... + } + </code> +*/ +void TMR2_WriteTimer(uint8_t timerVal); + +/** + @Summary + Load value to Period Register. + + @Description + This function writes the value to PR2 register. + This function must be called after the initialization of TMR2. + + @Preconditions + Initialize the TMR2 before calling this function. + + @Param + periodVal - Value to load into TMR2 register. + + @Returns + None + + @Example + <code> + #define PERIOD1 0x80 + #define PERIOD2 0x40 + #define ZERO 0x00 + + while(1) + { + // Read the TMR2 register + if(ZERO == TMR2_ReadTimer()) + { + // Do something else... + + if(flag) + { + flag = 0; + + // Load Period 1 value + TMR2_LoadPeriodRegister(PERIOD1); + } + else + { + flag = 1; + + // Load Period 2 value + TMR2_LoadPeriodRegister(PERIOD2); + } + } + + // Do something else... + } + </code> +*/ +void TMR2_LoadPeriodRegister(uint8_t periodVal); + +/** + @Summary + Timer Interrupt Service Routine + + @Description + Timer Interrupt Service Routine is called by the Interrupt Manager. + + @Preconditions + Initialize the TMR2 module with interrupt before calling this isr. + + @Param + None + + @Returns + None +*/ +void TMR2_ISR(void); + +/** + @Summary + Set Timer Interrupt Handler + + @Description + This sets the function to be called during the ISR + + @Preconditions + Initialize the TMR2 module with interrupt before calling this. + + @Param + Address of function to be set + + @Returns + None +*/ + void TMR2_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 TMR2 module with interrupt before calling this isr. + + @Param + None + + @Returns + None +*/ +extern void (*TMR2_InterruptHandler)(void); + +/** + @Summary + Default Timer Interrupt Handler + + @Description + This is the default Interrupt Handler function + + @Preconditions + Initialize the TMR2 module with interrupt before calling this isr. + + @Param + None + + @Returns + None +*/ +void TMR2_DefaultInterruptHandler(void); + + + #ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif // TMR2_H +/** + End of File +*/ +