From e5b15677be113dd14a9820ae8993269a09a62707 Mon Sep 17 00:00:00 2001 From: kruger <kruger@astron.nl> Date: Tue, 2 Feb 2021 21:22:31 +0100 Subject: [PATCH] First working version --- Makefile | 113 + MyConfig.mc3 | 10724 ++++++++++++++++++++++ README.md | 5 +- log.txt | 12 + main.c | 152 + mainloop.c | 65 + mcc_generated_files/clock.c | 86 + mcc_generated_files/clock.h | 80 + mcc_generated_files/cmp1.c | 103 + mcc_generated_files/cmp1.h | 213 + mcc_generated_files/cmp2.c | 103 + mcc_generated_files/cmp2.h | 213 + mcc_generated_files/cmp3.c | 103 + mcc_generated_files/cmp3.h | 213 + mcc_generated_files/cvr.c | 66 + mcc_generated_files/cvr.h | 95 + mcc_generated_files/i2c1.c | 319 + mcc_generated_files/i2c1.h | 122 + mcc_generated_files/i2c1_auto.c | 556 ++ mcc_generated_files/i2c1_auto.h | 490 + mcc_generated_files/i2c1_cur.c | 318 + mcc_generated_files/ic1.c | 138 + mcc_generated_files/ic1.c.fall | 138 + mcc_generated_files/ic1.c.off | 138 + mcc_generated_files/ic1.h | 362 + mcc_generated_files/ic2.c | 138 + mcc_generated_files/ic2.h | 362 + mcc_generated_files/ic3.c | 138 + mcc_generated_files/ic3.h | 362 + mcc_generated_files/interrupt_manager.c | 62 + mcc_generated_files/interrupt_manager.h | 167 + mcc_generated_files/mcc.c | 47 + mcc_generated_files/mcc.h | 75 + mcc_generated_files/memory/flash.h | 78 + mcc_generated_files/memory/flash.s | 631 ++ mcc_generated_files/pin_manager.c | 110 + mcc_generated_files/pin_manager.c.in | 107 + mcc_generated_files/pin_manager.c.out | 107 + mcc_generated_files/pin_manager.c.spi | 110 + mcc_generated_files/pin_manager.h | 678 ++ mcc_generated_files/spi1.c | 234 + mcc_generated_files/spi1.c.off | 234 + mcc_generated_files/spi1.h | 260 + mcc_generated_files/spi2.c | 234 + mcc_generated_files/spi2.h | 260 + mcc_generated_files/spi3.c | 234 + mcc_generated_files/spi3.h | 260 + mcc_generated_files/system.c | 137 + mcc_generated_files/system.h | 70 + mcc_generated_files/tmr3.c | 186 + mcc_generated_files/tmr3.h | 329 + mcc_generated_files/traps.c | 128 + mcc_generated_files/traps.h | 87 + nbproject/Makefile-default.mk | 595 ++ nbproject/Makefile-genesis.properties | 10 + nbproject/Makefile-impl.mk | 69 + nbproject/Makefile-local-default.mk | 37 + nbproject/Makefile-variables.mk | 13 + nbproject/Package-default.bash | 73 + nbproject/configurations.xml | 350 + nbproject/private/configurations.xml | 25 + nbproject/private/private.xml | 7 + nbproject/project.xml | 29 + src/HBA1.c | 8 + src/HBA1.h | 15 + src/HBA1_RX.c | 3 + src/HBA1_RX.h | 18 + src/HBA1_TX.c | 3 + src/HBA1_TX.h | 24 + src/HBA2.c | 8 + src/HBA2.h | 16 + src/HBA2_RX.c | 3 + src/HBA2_RX.h | 18 + src/HBA2_TX.c | 3 + src/HBA2_TX.h | 24 + src/HBA3.c | 8 + src/HBA3.h | 15 + src/HBA3_RX.c | 3 + src/HBA3_RX.h | 18 + src/HBA3_TX.c | 3 + src/HBA3_TX.h | 24 + src/HBAx.c | 103 + src/HBAx_RX.c | 110 + src/HBAx_TX.c | 78 + src/HBAx_i2c.c | 42 + src/crc16.c | 150 + src/crc16.h | 14 + src/rcu2_i2c.c | 70 + src/rcu2_i2c.h | 9 + src/registers.c | 42 + src/registers.h | 46 + src/xc.h | 2 + 92 files changed, 22838 insertions(+), 2 deletions(-) create mode 100644 Makefile create mode 100644 MyConfig.mc3 create mode 100644 log.txt create mode 100644 main.c create mode 100644 mainloop.c create mode 100644 mcc_generated_files/clock.c create mode 100644 mcc_generated_files/clock.h create mode 100644 mcc_generated_files/cmp1.c create mode 100644 mcc_generated_files/cmp1.h create mode 100644 mcc_generated_files/cmp2.c create mode 100644 mcc_generated_files/cmp2.h create mode 100644 mcc_generated_files/cmp3.c create mode 100644 mcc_generated_files/cmp3.h create mode 100644 mcc_generated_files/cvr.c create mode 100644 mcc_generated_files/cvr.h create mode 100644 mcc_generated_files/i2c1.c create mode 100644 mcc_generated_files/i2c1.h create mode 100644 mcc_generated_files/i2c1_auto.c create mode 100644 mcc_generated_files/i2c1_auto.h create mode 100644 mcc_generated_files/i2c1_cur.c create mode 100644 mcc_generated_files/ic1.c create mode 100644 mcc_generated_files/ic1.c.fall create mode 100644 mcc_generated_files/ic1.c.off create mode 100644 mcc_generated_files/ic1.h create mode 100644 mcc_generated_files/ic2.c create mode 100644 mcc_generated_files/ic2.h create mode 100644 mcc_generated_files/ic3.c create mode 100644 mcc_generated_files/ic3.h create mode 100644 mcc_generated_files/interrupt_manager.c create mode 100644 mcc_generated_files/interrupt_manager.h create mode 100644 mcc_generated_files/mcc.c create mode 100644 mcc_generated_files/mcc.h create mode 100644 mcc_generated_files/memory/flash.h create mode 100644 mcc_generated_files/memory/flash.s create mode 100644 mcc_generated_files/pin_manager.c create mode 100644 mcc_generated_files/pin_manager.c.in create mode 100644 mcc_generated_files/pin_manager.c.out create mode 100644 mcc_generated_files/pin_manager.c.spi create mode 100644 mcc_generated_files/pin_manager.h create mode 100644 mcc_generated_files/spi1.c create mode 100644 mcc_generated_files/spi1.c.off create mode 100644 mcc_generated_files/spi1.h create mode 100644 mcc_generated_files/spi2.c create mode 100644 mcc_generated_files/spi2.h create mode 100644 mcc_generated_files/spi3.c create mode 100644 mcc_generated_files/spi3.h create mode 100644 mcc_generated_files/system.c create mode 100644 mcc_generated_files/system.h create mode 100644 mcc_generated_files/tmr3.c create mode 100644 mcc_generated_files/tmr3.h create mode 100644 mcc_generated_files/traps.c create mode 100644 mcc_generated_files/traps.h create mode 100644 nbproject/Makefile-default.mk create mode 100644 nbproject/Makefile-genesis.properties create mode 100644 nbproject/Makefile-impl.mk create mode 100644 nbproject/Makefile-local-default.mk create mode 100644 nbproject/Makefile-variables.mk create mode 100644 nbproject/Package-default.bash create mode 100644 nbproject/configurations.xml create mode 100644 nbproject/private/configurations.xml create mode 100644 nbproject/private/private.xml create mode 100644 nbproject/project.xml create mode 100644 src/HBA1.c create mode 100644 src/HBA1.h create mode 100644 src/HBA1_RX.c create mode 100644 src/HBA1_RX.h create mode 100644 src/HBA1_TX.c create mode 100644 src/HBA1_TX.h create mode 100644 src/HBA2.c create mode 100644 src/HBA2.h create mode 100644 src/HBA2_RX.c create mode 100644 src/HBA2_RX.h create mode 100644 src/HBA2_TX.c create mode 100644 src/HBA2_TX.h create mode 100644 src/HBA3.c create mode 100644 src/HBA3.h create mode 100644 src/HBA3_RX.c create mode 100644 src/HBA3_RX.h create mode 100644 src/HBA3_TX.c create mode 100644 src/HBA3_TX.h create mode 100644 src/HBAx.c create mode 100644 src/HBAx_RX.c create mode 100644 src/HBAx_TX.c create mode 100644 src/HBAx_i2c.c create mode 100644 src/crc16.c create mode 100644 src/crc16.h create mode 100644 src/rcu2_i2c.c create mode 100644 src/rcu2_i2c.h create mode 100644 src/registers.c create mode 100644 src/registers.h create mode 100644 src/xc.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fca8e2c --- /dev/null +++ b/Makefile @@ -0,0 +1,113 @@ +# +# There exist several targets which are by default empty and which can be +# used for execution of your targets. These targets are usually executed +# before and after some main targets. They are: +# +# .build-pre: called before 'build' target +# .build-post: called after 'build' target +# .clean-pre: called before 'clean' target +# .clean-post: called after 'clean' target +# .clobber-pre: called before 'clobber' target +# .clobber-post: called after 'clobber' target +# .all-pre: called before 'all' target +# .all-post: called after 'all' target +# .help-pre: called before 'help' target +# .help-post: called after 'help' target +# +# Targets beginning with '.' are not intended to be called on their own. +# +# Main targets can be executed directly, and they are: +# +# build build a specific configuration +# clean remove built files from a configuration +# clobber remove all built files +# all build all configurations +# help print help mesage +# +# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and +# .help-impl are implemented in nbproject/makefile-impl.mk. +# +# Available make variables: +# +# CND_BASEDIR base directory for relative paths +# CND_DISTDIR default top distribution directory (build artifacts) +# CND_BUILDDIR default top build directory (object files, ...) +# CONF name of current configuration +# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration) +# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration) +# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration) +# CND_PACKAGE_DIR_${CONF} directory of package (current configuration) +# CND_PACKAGE_NAME_${CONF} name of package (current configuration) +# CND_PACKAGE_PATH_${CONF} path to package (current configuration) +# +# NOCDDL + + +# Environment +MKDIR=mkdir +CP=cp +CCADMIN=CCadmin +RANLIB=ranlib + + +# build +build: .build-post + +.build-pre: +# Add your pre 'build' code here... + +.build-post: .build-impl +# Add your post 'build' code here... + + +# clean +clean: .clean-post + +.clean-pre: +# Add your pre 'clean' code here... +# WARNING: the IDE does not call this target since it takes a long time to +# simply run make. Instead, the IDE removes the configuration directories +# under build and dist directly without calling make. +# This target is left here so people can do a clean when running a clean +# outside the IDE. + +.clean-post: .clean-impl +# Add your post 'clean' code here... + + +# clobber +clobber: .clobber-post + +.clobber-pre: +# Add your pre 'clobber' code here... + +.clobber-post: .clobber-impl +# Add your post 'clobber' code here... + + +# all +all: .all-post + +.all-pre: +# Add your pre 'all' code here... + +.all-post: .all-impl +# Add your post 'all' code here... + + +# help +help: .help-post + +.help-pre: +# Add your pre 'help' code here... + +.help-post: .help-impl +# Add your post 'help' code here... + + + +# include project implementation makefile +include nbproject/Makefile-impl.mk + +# include project make variables +include nbproject/Makefile-variables.mk diff --git a/MyConfig.mc3 b/MyConfig.mc3 new file mode 100644 index 0000000..509f0d1 --- /dev/null +++ b/MyConfig.mc3 @@ -0,0 +1,10724 @@ +<config configVersion="1.1" device="PIC24FJ64GA702" coreVersion="4.85.0"> + <usedClasses class="java.util.HashMap"> + <entry> + <string>SPI2</string> + <string>class com.microchip.mcc.mcu16.modules.spi_upb.SPI</string> + </entry> + <entry> + <string>SPI3</string> + <string>class com.microchip.mcc.mcu16.modules.spi_upb.SPI</string> + </entry> + <entry> + <string>Main Manager</string> + <string>class com.microchip.mcc.mcu16.mainManager.MainManager</string> + </entry> + <entry> + <string>SPI1</string> + <string>class com.microchip.mcc.mcu16.modules.spi_upb.SPI</string> + </entry> + <entry> + <string>WATCHDOG</string> + <string>class com.microchip.mcc.mcu16.systemManager.wdt.Wdt</string> + </entry> + <entry> + <string>Pin Module</string> + <string>class com.microchip.mcc.mcu16.pinManager.PinManager</string> + </entry> + <entry> + <string>RESET</string> + <string>class com.microchip.mcc.mcu16.systemManager.reset.RESET</string> + </entry> + <entry> + <string>ICD</string> + <string>class com.microchip.mcc.mcu16.systemManager.icd.Icd</string> + </entry> + <entry> + <string>Interrupt Module</string> + <string>class com.microchip.mcc.mcu16.interruptManager.InterruptManager</string> + </entry> + <entry> + <string>FLASH</string> + <string>class com.microchip.mcc.mcu16.modules.flash.FLASH</string> + </entry> + <entry> + <string>System Module</string> + <string>class com.microchip.mcc.mcu16.systemManager.DefaultSystemManagerMcu16</string> + </entry> + <entry> + <string>JTAG</string> + <string>class com.microchip.mcc.mcu16.systemManager.jtag.JTAG</string> + </entry> + <entry> + <string>CMP3</string> + <string>class com.microchip.mcc.mcu16.modules.cmp.CMP</string> + </entry> + <entry> + <string>CMP2</string> + <string>class com.microchip.mcc.mcu16.modules.cmp.CMP</string> + </entry> + <entry> + <string>INTERNAL OSCILLATOR</string> + <string>class com.microchip.mcc.mcu16.systemManager.clk.Clock</string> + </entry> + <entry> + <string>CMP1</string> + <string>class com.microchip.mcc.mcu16.modules.cmp.CMP</string> + </entry> + <entry> + <string>I2C1</string> + <string>class com.microchip.mcc.mcu16.modules.i2c.I2C</string> + </entry> + <entry> + <string>IC1</string> + <string>class com.microchip.mcc.mcu16.modules.ic.IC</string> + </entry> + <entry> + <string>IC3</string> + <string>class com.microchip.mcc.mcu16.modules.ic.IC</string> + </entry> + <entry> + <string>IC2</string> + <string>class com.microchip.mcc.mcu16.modules.ic.IC</string> + </entry> + <entry> + <string>TMR3</string> + <string>class com.microchip.mcc.mcu16.modules.tmr.TMR</string> + </entry> + <entry> + <string>CVR</string> + <string>class com.microchip.mcc.mcu16.modules.cvref.CVREF</string> + </entry> + <entry> + <string>com.microchip.mcc.mcu16.Mcu16PeripheralLibraryLibraryModule</string> + <string>class com.microchip.mcc.protocolServices.base.modules.librarymodule.LibraryModule</string> + </entry> + </usedClasses> + <usedLibraries class="java.util.ArrayList"> + <ILibraryFile class="com.microchip.mcc.core.library.BaseLibraryFile" libraryClass="com.microchip.mcc.mcu16.Mcu16PeripheralLibrary" version="1.167.0"/> + </usedLibraries> + <tokenMap class="java.util.HashMap"> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB9"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR2" settingAlias="INT4R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7" settingAlias="DMA1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP4 Sync\Trigger"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="CPDIV"/> + <value>1:1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllGraphicsSelect"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTWIN" alias="WIN50"/> + <value>256</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICBNE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="RXWIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="PRI"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB13" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSS"/> + <value>DISABLED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIBUSY" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="ROI"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB13" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="combinedTimer"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STLOCK" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SRMTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MODE16" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SRMTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="BOEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SRMTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SCIE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITBE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB15"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIBUFH" settingAlias="SPIBUFH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="ADC1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS"/> + <value>PS32768</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCLK" alias="LPRC"/> + <value>24576</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8" settingAlias="CLC2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIBUFH" settingAlias="SPIBUFH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIBUFH" settingAlias="SPIBUFH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="CKE" alias="Idle to Active"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSS" alias="HIGH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCLK"/> + <value>LPRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="FRMERR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIRBEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTWIN" alias="WIN37"/> + <value>512</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C3OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR13" settingAlias="RP27R"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C3EVT" alias="enabled"/> + <value>1</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.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB15" alias="disabled"/> + <value>0</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="Pin Module" name="iocUserSet RB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB9"/> + <value>disabled</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="Pin Module" registerAlias="LATB" settingAlias="LATB14"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C1EVT" alias="disabled"/> + <value>0</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.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="IC32" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="actualPeriod"/> + <value>0.131072</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB14" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="PADCON" settingAlias="IOCON" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSEN" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet VSS3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="SCL1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet VSS2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB8" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB14" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTWIN" alias="WIN25"/> + <value>768</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Simple Capture mode: Falling"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB13" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.940%"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="Right Justified"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="LOCK"/> + <value>out of lock</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C1EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FPOR" settingAlias="BOREN"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="MSSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="MSSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="MSSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="BUSYEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITBEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR11"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="U2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITUREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP1 Capture\Compare"/> + <value>19</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLKPinsOutput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.987%"/> + <value>21</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMADRL" settingAlias="NVMADRL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP2 Sync\Trigger"/> + <value>5</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.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC"/> + <value>FRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="COUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="ACKDT"/> + <value>Sends ACK</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FOSCSEL"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMSYNC"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMSYNC"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMSYNC"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="MSSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.175%"/> + <value>25</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.423%"/> + <value>55</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB12" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMKEY" settingAlias="NVMKEY"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB14" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB8"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR3"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C3EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB15" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR1"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="FRC"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR2"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR8" settingAlias="RP17R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="inputMode"/> + <value>customTmrMode</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB9" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="DCO"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CADD" settingAlias="I2CADD"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="I2C1_SICIISRFunction"/> + <value>ISR_I2C1_SICI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="CMPMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB12" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureRefClkOutoutEnable"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC"/> + <value>FRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7" settingAlias="DMA1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB9"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC2"/> + <value>17</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C1OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet AVSS"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC3"/> + <value>18</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIROV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_SOSC"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC1"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="prescaledFreq"/> + <value>500000.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="OscfdivEnable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICI" alias="Every 2nd event"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR2" settingAlias="RP5R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="TRAPR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="ENHBUF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureCANFDClock"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="BOEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="CF" alias="clock failure"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSDI" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MSTEN" alias="Master"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="SOSC"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB2"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STLOCK" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="PADCON" settingAlias="IOCON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SCKxIO"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPIFE" alias="Frame Sync pulse coincides"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB10"/> + <value>clear</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="SPI2" registerAlias="SPICON1H" settingAlias="SPISGNEXT" alias="sign-extended"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="Autotune"/> + <value>Disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="CMPMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPIEN" alias="enabled"/> + <value>1</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 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.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE"/> + <value>PLL96DIV4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.363%"/> + <value>35</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="ClockSwitching"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="SCL"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB13" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="DNVPEN" alias="DISABLE"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT_ROSEL"/> + <value>FOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FICD" settingAlias="ICS"/> + <value>PGD1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="SDA"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICI" alias="Every 3rd event"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB9"/> + <value>none</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 RB8"/> + <value>none</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.CustomKey" moduleName="Pin Module" name="ioc RB6"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CVR" name="CMP3Dependency"/> + <value>CVR</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.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Prescaler Capture mode: Every 16th rising"/> + <value>5</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.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB11" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPIFE" alias="Frame Sync pulse precedes"/> + <value>0</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.CustomKey" moduleName="Pin Module" name="ioc RB2"/> + <value>none</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.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MCLKEN" alias="FOSC/2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL"/> + <value>TMR3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL"/> + <value>TMR3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureRefoClockTrim"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CPOL" alias="Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MODE16" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CREF" alias="CVREF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="IC32" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL"/> + <value>TMR3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SCIE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWDTEN" alias="ON_DIS_SLEEP"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMPOL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB3"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="FRMERR" alias="enabled"/> + <value>1</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.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB11" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB11" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="DIVSWEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="TXWIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR5" settingAlias="ICM1R"/> + <value>63</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.SettingKey" moduleName="Pin Module" registerAlias="RPOR4" settingAlias="RP8R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CVR" name="CMP2Dependency"/> + <value>CVR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR12"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="EXTR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR13"/> + <value>1792</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Simple Capture mode: Rising"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="IESO"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCFDIV" settingAlias="TRIM"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SDAHT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITUREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="MICI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITBE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="ADC1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR12"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICI" alias="Every"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="IESO" alias="ON"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB12" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_USB"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMSYNC" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSWEN" alias="Switch is Complete"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIBUSY"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.269%"/> + <value>27</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIBUSY"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIBUSY"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SOSCEN"/> + <value>disabled</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="SPI3" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="I2S"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="SCKxIO"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB12"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.517%"/> + <value>53</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="LPCFG" alias="OFF"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB13"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureFrcScaler"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR28" settingAlias="SDI3R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="CF"/> + <value>no clock failure</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP4MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SDAHT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR19"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMOP" alias="Double-word programming operation"/> + <value>1</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.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="ICTRIG" alias="Trigger"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB12" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WATCHDOG" name="ClockInput"/> + <value>31000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="tickerFactor"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR11" settingAlias="OCFBR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS256"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR3" registerAlias="TMR"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCLK" alias="FRC"/> + <value>16384</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Interrupt mode"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR18"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR6" settingAlias="RP12R"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="IGNTUR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTWIN" alias="WIN75"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SCKxIO"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="IGNTUR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB11"/> + <value>clear</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR0" settingAlias="RP0R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="IGNTUR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR22" settingAlias="SCK2R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="OSCPinsOutput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="IOL1WAY" alias="ON"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.282%"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR0" settingAlias="INT1R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPICON2L"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB9" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPICON2L"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPICON2L"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB11" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPITXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="GCSTAT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPITXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="COUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.222%"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CON" alias="disabled"/> + <value>0</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.CustomKey" moduleName="SPI1" name="SPI1_SPIIISRFunction"/> + <value>ISR_SPI1_SPII</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="SOSCHP" alias="ON"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL" alias="Any Change"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="Pll_Dependent_Clock_Switching"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="TXWIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR3" registerAlias="TCON"/> + <value>32784</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPITXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB10" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCDIV"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="POSCMOD" alias="XT"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="BUSYEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICBNE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPIFE" alias="Frame Sync pulse coincides"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CCH" alias="Internal selectable reference voltage"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CEVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="SPISGNEXT" alias="sign-extended"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureSoscClock"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="RCEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="pinkey"/> + <value>Not Imported</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="PMPMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureRefoOutputPinEnable"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C1OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.235%"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITBE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="DIVSWEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Edge Detect Capture"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="combinedMode"/> + <value>MASTER</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMONO" alias="stereo"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICTSEL" alias="FOSC/2"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSDI" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="RTCCMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITUR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FDEVOPT1"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Simple Capture mode: Rising"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWDTEN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR7" settingAlias="IC1R"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Prescaler Capture mode: Every 16th rising"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TECS"/> + <value>SOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CREF" alias="C1INA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC3MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="LOCK" alias="out of lock"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="I2C2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="PRIPLL"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="pinkey"/> + <value>Not Imported</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ODCB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="FRMERR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="ALTI2C1" alias="ALTI2CDIS"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CWRP" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="RXWIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C1EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="TRSTAT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="Requested CAN Clock Frequency"/> + <value>20000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="CMIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ODCA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWPSA"/> + <value>PR128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="COUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="combinedMode"/> + <value>MASTER</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCKPS"/> + <value>1:8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SDIxIN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="D_nA"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="I2S"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCS" alias="External"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.316%"/> + <value>36</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="FRMERREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureRefoClockDivider"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C1EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C1EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C1EVT"/> + <value>disabled</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="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="8xPLL or USB-PLL"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCS"/> + <value>FOSC/2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL"/> + <value>FOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureSoscEnable"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C3OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="TXWIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMSYNC" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="CMIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GWRP" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="COUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FWDT"/> + <value>27551</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureRefoClockSource"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREFP"/> + <value>CVR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="RBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C3EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.316%"/> + <value>28</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.470%"/> + <value>54</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="RXMSK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SDIxIN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GWRP"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="A10M" alias="7 Bit"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet AVDD"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR3" settingAlias="T3CKR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FICD" settingAlias="ICS" alias="PGD3"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FICD" settingAlias="ICS" alias="PGD2"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="pinkey"/> + <value>Not Imported</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FICD" settingAlias="ICS" alias="PGD1"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCLK" alias="SYSCLK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CVR" registerAlias="ANCFG"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICBNE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICTSEL" alias="FOSC/2"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB15" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CSS" alias="DISABLED"/> + <value>3584</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="PLLEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C1OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="SDA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB10" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR25" settingAlias="CLCINAR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP4 Sync\Trigger"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="RXMSK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="RXMSK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C1OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C1OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT_ENABLE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="minPeriod"/> + <value>0.000004</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA0"/> + <value>IO_RA0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE"/> + <value>1:8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="RXWIEN" alias="disabled"/> + <value>0</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="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.329%"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITUR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureRefoClockDivSwitch"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SLEEP" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="CPDIV" alias="1:2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="SOSCSEL" alias="ON"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="CPDIV" alias="1:1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="CPDIV" alias="1:4"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="CPDIV" alias="1:8"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="TRAPR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITBEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITBEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB0"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP5MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB1"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Simple Capture mode: Falling"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TECS" alias="T3CK"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB3" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C1OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMONO"/> + <value>stereo</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMONO"/> + <value>stereo</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="PCM/DSP"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMONO"/> + <value>stereo</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureCodeGuard"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.564%"/> + <value>52</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA1"/> + <value>SDO1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA2"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA3"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="PMPMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITBEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA4"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSDO" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="ClockSource"/> + <value>FRC Oscillator</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="SDIxIN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="ENHBUF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMOP" alias="Row programming operation"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="REFOMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CTMU"/> + <value>28</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="SOSC"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMOP"/> + <value>Double-word programming operation</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SRMTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="I2C2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockPostscaler2"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8" settingAlias="CLC1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CEVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="CLKLOCK"/> + <value>unlocked</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GSS" alias="DISABLED"/> + <value>192</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="CLKLOCK" alias="locked"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB9" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="OpMode"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="DCO"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C3OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICSIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="IGNTUR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITBE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITBE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:4"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCMX" alias="LPRC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS4096"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="PLLSS" alias="PLL_FRC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="32"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SRMTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:8"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CMP3" name="Dependent Module"/> + <value>CVR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="ICTRIG"/> + <value>Sync</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="ICTRIG"/> + <value>Sync</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="ICTRIG"/> + <value>Sync</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="AHEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR29" settingAlias="SS3R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="RBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITBE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.893%"/> + <value>19</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ACKSTAT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="IGNTUR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MSTEN" alias="Slave"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="TimerFrequency"/> + <value>4000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCFDIV"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR1"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WREN" alias="Inhibit Flash program/erase operations"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR3"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C1EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CREF" alias="CVREF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="FRMERREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="SLEEP"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="TMR3" registerAlias="PR"/> + <value>65535</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SCLREL" alias="Releases"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="TRSTAT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="16"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="OSCIOFCN" alias="OFF"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureClockSource"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WR" alias="Program or erase operation is complete and inactive"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="TXWIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureFrcEnable"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ADD10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CMP2" name="Dependent Module"/> + <value>CVR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="CKE"/> + <value>Idle to Active</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB15" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR12" settingAlias="TCKIAR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="I2C1_MICIISRFunction"/> + <value>ISR_I2C1_MICI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="CKE"/> + <value>Idle to Active</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="CKE"/> + <value>Idle to Active</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CPOL" alias="Not Inverted"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSB"/> + <value>53764</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BWRP" alias="OFF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C3EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="REFOMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMOP" alias="Chip erase user memory (does not erase Device ID, customer OTP or executive memory)"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR19" settingAlias="U2CTSR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREFM"/> + <value>Band gap voltage</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="customPR"/> + <value>65535</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Off"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="combinedMode"/> + <value>MASTER</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SLEEP" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMSYNC" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CTRN"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSA"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_PRIMARY"/> + <value>8000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="MSSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB5" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITBFEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SPI3_SPITXIISRFunction"/> + <value>ISR_SPI3_SPITXI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITBFEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITBFEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITUR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP3MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CSS" alias="HIGH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIRBEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVRSS" alias="(VREF+) - (VREF-)"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.846%"/> + <value>18</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="LPRC"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM"/> + <value>Simple Capture mode: Falling</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD6"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="I2CSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM"/> + <value>Simple Capture mode: Falling</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CMP1" name="Dependent Module"/> + <value>CVR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM"/> + <value>Simple Capture mode: Falling</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICOV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR21"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSDI" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.658%"/> + <value>50</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB8" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIROV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Off"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR1" settingAlias="INT2R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIURDTL" settingAlias="SPIURDTL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIURDTL" settingAlias="SPIURDTL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIURDTL" settingAlias="SPIURDTL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="LPRC"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Prescaler Capture mode: Every 4th rising"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureOscfDivisor"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TGATE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR20"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVROE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MODE32" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD6" settingAlias="SPI3MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMPOL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="WDTO" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="TXWIEN"/> + <value>disabled</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.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="VREGS" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STLPOL"/> + <value>Interrupt when STLOCK is 1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITUREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICI" alias="Every"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CCH" alias="C3INB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CCH" alias="C3INC"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CCH" alias="C3IND"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="BCL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB13" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Simple Capture mode: Rising"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICI" alias="Every 3rd event"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB11" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.363%"/> + <value>29</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.611%"/> + <value>51</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMONO" alias="mono"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB13" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FICD" settingAlias="JTAGEN" alias="ON"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="URDTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB9" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR3"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB11" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR1"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="FOSC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="ICTRIG" alias="Sync"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="URDTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="URDTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="URDTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="AHEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CREF" alias="CVREF"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc AVSS"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR25"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MODE32"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MODE32"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB15" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.094%"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="ICTRIG" alias="Trigger"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MODE32"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="SOSCSEL" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSC" settingAlias="FCKSM"/> + <value>CSECMD</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="MSSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR6" settingAlias="ICM4R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITBFEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL" alias="High to Low : Not Inverted"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB13"/> + <value>disabled</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.SettingKey" moduleName="Pin Module" registerAlias="RPOR7" settingAlias="RP15R"/> + <value>23</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="OpMode"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="EXTR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="TXWIEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="U2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="TXWIEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="BUSYEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="SPISGNEXT" alias="not sign-extended"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="ROI" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITBEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB2"/> + <value>disabled</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.RegisterKey" moduleName="System Module" registerAlias="FSEC"/> + <value>36847</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="COE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GSS" alias="STNDRD"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="RXWIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN"/> + <value>Center frequency</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR23"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR1" settingAlias="RP3R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="DISSLW" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="0x0"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TGATE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICBNE"/> + <value>disabled</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="CVR" registerAlias="CVRCON" settingAlias="CVREN" alias="Powered Off"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Prescaler Capture mode: Every 16th rising"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICBNE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICBNE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="packageId"/> + <value>DIP28</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB12" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STLPOL" alias="Interrupt when STLOCK is 1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="FRMERREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CWRP"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STLPOL" alias="Interrupt when STLOCK is 0"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="TXWIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNA" settingAlias="IOCNA4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="ClockFrequency"/> + <value>10000.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR22"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIRBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="BOEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SWDTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SCLREL" alias="Holds"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSDO" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB14" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICOV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="OpMode"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SPI2_SPIIISRFunction"/> + <value>ISR_SPI2_SPII</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="IC32" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc VSS3"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMOP" alias="Erase a page of program or executive memory"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="FRMERR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc VSS2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICI_INT" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICI_INT" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB5" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TGATE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWDTEN" alias="ON"/> + <value>96</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MODE32" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="PEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB11" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICI_INT" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB8" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="SICI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB8" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="VREGS" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C2OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB13" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR29"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB15" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCNB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="PLLEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP3MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR3" settingAlias="RP6R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SBCDE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ACKTIM" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name VSS3"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name VSS2"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIROV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP1"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB14" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIRBE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSDI" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL" alias="Disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockChange"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMSYPW" alias="One clock wide"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR28"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB9" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR12" settingAlias="RP24R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICI" alias="Every 4th event"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCNA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR20" settingAlias="SDI1R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="SPI1_SPITXIISRFunction"/> + <value>ISR_SPI1_SPITXI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB8" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP2"/> + <value>25</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP3"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.141%"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="I2CSIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.705%"/> + <value>49</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="CMIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="AIVTDIS"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICI"/> + <value>Every</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.188%"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICI"/> + <value>Every</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITUR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMONO" alias="stereo"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB9" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="CKE" alias="Idle to Active"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="IGNROV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICI"/> + <value>Every</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB9" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="RBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIROV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WINDIS"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREFM" alias="Band gap voltage"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIROV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="SPI2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="DISSLW" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIROV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB12" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP3 Capture\Compare"/> + <value>21</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB12" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C3EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="RXWIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP3 Sync\Trigger"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IOLOCK"/> + <value>not-active</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureOscfdivEnable"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB10" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="SPISGNEXT"/> + <value>not sign-extended</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIRBEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICI_INT" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="SPISGNEXT"/> + <value>not sign-extended</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICI_INT" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICI_INT" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="SPISGNEXT"/> + <value>not sign-extended</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="MSSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMSYPW"/> + <value>One clock wide</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP1 Capture\Compare"/> + <value>19</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMSYPW"/> + <value>One clock wide</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="SPI2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMSYPW"/> + <value>One clock wide</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB12" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureVcoDivider"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SRMT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS1024"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="CKP" alias="Idle:High, Active:Low"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C1EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB14" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockPrescaler"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITBEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name AVSS"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR5" settingAlias="RP10R"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ACKTIM" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB14" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="DISSLW"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB14" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SRMT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB12" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB12" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB9" alias="clear"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="Left Justified"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB8" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="MICI" settingAlias="enable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB13" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB8" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB13" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TECS" alias="SOSC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MSTEN" alias="Slave"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CREF" alias="C2INA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWPSA" alias="PR32"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL" alias="Low to High : Inverted"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB11" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CCH" alias="C2INC"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CCH" alias="C2IND"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name NMCLR"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CCH" alias="C2INB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CCH" alias="Internal selectable reference voltage"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="CMIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIROVEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMPOL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL" alias="Low to High : Not Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB9" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc VCAP1"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB5" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSCK" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB15" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.457%"/> + <value>33</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet NMCLR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C2OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="DIVSWEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB15" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="FRMERR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="DNVPEN" alias="ENABLE"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="IC3" registerAlias="ICCON2"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1"/> + <value>output</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.RegisterKey" moduleName="IC1" registerAlias="ICCON2"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="IC2" registerAlias="ICCON2"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB13" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FPOR"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="STREN" alias="enabled"/> + <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.CustomKey" moduleName="INTERNAL OSCILLATOR" name="PllPrescaler"/> + <value>1:4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP1"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP2"/> + <value>25</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="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP3"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="PEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICOV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FBSLIM"/> + <value>8191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Pin Module_IOCIISRFunction"/> + <value>ISR_Pin Module_IOCI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIROV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITUR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SBCDE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.047%"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIRBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB8" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="TMPRPIN" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="PRI"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C3EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MODE16"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MODE16"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MODE16"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP2 Capture\Compare"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CTMU"/> + <value>28</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPIFE" alias="Frame Sync pulse precedes"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="IGNROV" alias="enabled"/> + <value>1</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="TMR3" registerAlias="TCON" settingAlias="TON" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="CKE" alias="Idle to Active"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB9" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STORPOL" alias="Interrupt when STOR is 0"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="COE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STORPOL" alias="Interrupt when STOR is 1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SRMT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB4"/> + <value>disabled</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="System Module" registerAlias="FOSC" settingAlias="FCKSM" alias="CSECMD"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="FCKSM" alias="CSECME"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="IC32" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="TRIGSTAT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SRMTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet VDD2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIRXI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIRXI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="FLASH" registerAlias="NVMCON"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIRXI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="FRC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="SPI2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB9" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="BOREN" alias="ON"/> + <value>3</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="IOCPDB" settingAlias="IOCPDB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CSS"/> + <value>DISABLED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockSource"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="IWCOL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREN" alias="Powered On"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSWEN" alias="Request Switch"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="VREGS"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SRMTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIRBE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIRBE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIRBE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C1EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STOR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FOSC"/> + <value>99</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="IGNTUR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet VCAP1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="IGNTUR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP3 Sync\Trigger"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPITXI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPITXI" settingAlias="priority"/> + <value>1</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="SPI3" registerAlias="SPICON1H" settingAlias="FRMSYNC" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.410%"/> + <value>30</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.SettingKey" moduleName="SPI1" registerAlias="SPITXI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc AVDD"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllTwoStagePostScaler"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="PADCON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CBRG" settingAlias="I2CBRG"/> + <value>18</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="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="LPRC"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SBCDE" alias="disabled"/> + <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.CustomKey" moduleName="INTERNAL OSCILLATOR" name="PllEnable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CMP1" name="CMP1_CMIISRFunction"/> + <value>ISR_CMP1_CMI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIRBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIRBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMPOL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIRBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSDO" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SMP" alias="End"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.410%"/> + <value>34</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CPOL" alias="Not Inverted"/> + <value>0</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="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.047%"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Interrupt mode"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITUR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="customClkOut"/> + <value>OSC2 is general purpose digital I/O pin</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPISIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="UpdateOSCFractionalClock"/> + <value>FRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPISIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPISIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB8" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="FLASH" name="DemoCodeGeneration"/> + <value>false</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="GCSTAT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB14" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="SICI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MSTEN" alias="Slave"/> + <value>0</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>disabled</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.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICOV" alias="disabled"/> + <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.CustomKey" moduleName="Pin Module" name="trisUserSetRB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MODE32" alias="enabled"/> + <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.CustomKey" moduleName="Pin Module" name="trisUserSetRB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CVR" name="CMP4Dependency"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSDO" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB8"/> + <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>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>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB7"/> + <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>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIRBEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONH" settingAlias="RODIV"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CMP2" name="CMP2_CMIISRFunction"/> + <value>ISR_CMP2_CMI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.752%"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMADRH" settingAlias="NVMADRH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CREF" alias="C3INA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="FRMERR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPISIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C1OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="RXWIEN" alias="enabled"/> + <value>1</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="TMR3" registerAlias="TCON" settingAlias="TCKPS" alias="1:8"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC1"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CCH" alias="Internal selectable reference voltage"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSCK" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC2"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCKPS" alias="1:1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC3"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center frequency"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="FOSC/2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.799%"/> + <value>17</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB11" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVRSS"/> + <value>AVDD – AVSS</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="ClockFrequency"/> + <value>10000.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="STREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL" alias="Low to High : Inverted"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSCPinsInput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIRBE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSDI" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="FRMERREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="FRMERREN"/> + <value>disabled</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.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVROE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="FRMERREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB15" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC3MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="ROI" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WRERR" alias="The program or erase operation completed normally"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="U1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA0"/> + <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="IOCFA" settingAlias="IOCFA3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="IDLE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA4"/> + <value>disabled</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.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="WDTO" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="EXTR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CMP3" name="CMP3_CMIISRFunction"/> + <value>ISR_CMP3_CMI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB0"/> + <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.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllFeedbackDivisor"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICTSEL" alias="FOSC/2"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Prescaler Capture mode: Every 4th rising"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVROE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8" settingAlias="CLC2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="SFTSWP"/> + <value>Awaiting panel swap using BOOTSWP instruction</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="CKP" alias="Idle:High, Active:Low"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name AVDD"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="A10M" alias="10 Bit"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="CRCMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GSS" alias="HIGH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="BaudRate"/> + <value>100000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="ClockFrequency"/> + <value>10000.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB9" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPII" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPII" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCS" alias="FOSC/2"/> + <value>0</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.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="TXWIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPII" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR18" settingAlias="U1CTSR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="BUSYEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSSLP"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITUREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC3"/> + <value>18</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC1"/> + <value>16</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="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC2"/> + <value>17</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="HLVDMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="FRC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSCK"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="CMIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="CF" alias="no clock failure"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSCK"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSCK"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="FRMERREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxPll"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SWDTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="CKP" alias="Idle:Low, Active:High"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="TRIGSTAT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL" alias="High to Low : Not Inverted"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WREN" alias="Enable Flash program/erase operations"/> + <value>1</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="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIBUFL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIBUFL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIBUFL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSS" alias="STNDRD"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="RXWIEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="RXWIEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIRBE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SPI3_SPIIISRFunction"/> + <value>ISR_SPI3_SPII</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="RXWIEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MCLKEN" alias="FOSC/2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="OSCPinsInput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WINDIS" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="I2C2MD"/> + <value>enabled</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="Pin Module" name="trisUserSetRA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA3"/> + <value>enabled</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.CustomKey" moduleName="Pin Module" name="trisUserSetRA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="UseSosc"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C3OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="IC2" registerAlias="ICCON1"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="IC3" registerAlias="ICCON1"/> + <value>2</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.CustomKey" moduleName="TMR3" name="callBackRate"/> + <value>0.131072</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="AIVTDIS" alias="OFF"/> + <value>32768</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="IC1" registerAlias="ICCON1"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITBFEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR2"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSC" settingAlias="PLLSS"/> + <value>PLL_FRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR3"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITBEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="REFOMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDA" settingAlias="IOCPDA2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR1"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMPOL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="I2CEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MCLKEN"/> + <value>FOSC/2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MCLKEN"/> + <value>FOSC/2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MCLKEN"/> + <value>FOSC/2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="CMIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="CTMUMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL" alias="High to Low : Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB11"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="CMIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="CMIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREFP" alias="CVR"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIRBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T3MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="PRI"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP2 Capture\Compare"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WATCHDOG" name="TimerPeriod"/> + <value>135.300s</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR4" settingAlias="RP9R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="IC3" name="IC3_ICI_INTISRFunction"/> + <value>ISR_IC3_ICI_INT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMSYPW" alias="One clock wide"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CEVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C2OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISB"/> + <value>27515</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMSIDL" alias="Flash voltage regulator is active during Idle mode"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL" alias="Low to High : Not Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB8" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS2048"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="P" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MODE32" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP4MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIROVEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SMP" alias="End"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="COE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="PRIPLL"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB10"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WINDIS" alias="OFF"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITUREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="TRIGSTAT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITUREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="TRIGSTAT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITUREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="IOL1WAY" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="TRIGSTAT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="ANCFG" settingAlias="VBG2EN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP3"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CON" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.094%"/> + <value>62</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB9" alias="set"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSDI" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP1"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMONO" alias="stereo"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CMP2"/> + <value>25</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="LPRC"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP3 Capture\Compare"/> + <value>21</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Maximum frequency deviation"/> + <value>31</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="IGNROV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL" alias="Disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP3 Sync\Trigger"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIROV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPITUR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITUR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITUR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C2EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="IGNTUR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIRBE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STORPOL"/> + <value>Interrupt when STOR is 1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL" alias="Low to High : Inverted"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIBUFH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIBUFH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIBUFH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPISIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR5" settingAlias="ICM2R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CMP1" registerAlias="CMCON"/> + <value>57362</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CMP2" registerAlias="CMCON"/> + <value>57361</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="ICTRIG" alias="Trigger"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CMP3" registerAlias="CMCON"/> + <value>57360</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR21" settingAlias="SS1R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP4 Capture\Compare"/> + <value>22</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCDIV" settingAlias="DIV"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.799%"/> + <value>47</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CCH"/> + <value>C2INC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CCH"/> + <value>C1IND</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="ACKDT" alias="Sends ACK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR11" settingAlias="OCFAR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CCH"/> + <value>C3INB</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CREF"/> + <value>CVREF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="inputmode"/> + <value>easysetup</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CREF"/> + <value>CVREF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CREF"/> + <value>CVREF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="CMIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="ANCFG" settingAlias="VBG2EN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureIESOUpdate"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="CTMUMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.611%"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="STRICT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMSYPW" alias="One serial word length"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR6" settingAlias="RP13R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMONO" alias="mono"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB14" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="TRAPR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR13" settingAlias="RP26R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPII" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPII" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STOR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPII" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C2EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR0" settingAlias="RP1R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SRMTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SRMT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISA"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="PCIE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="URDTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.658%"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB15" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT_RODIV"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB12"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB11"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITUREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB10"/> + <value>SDO2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WRERR" alias="An improper program or erase sequence attempt, or termination occurred"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MCLKEN" alias="MCLK"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB15"/> + <value>SDO3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB14"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="BOREN" alias="SBOREN"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB13"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="IESO" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T2MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SPI2_SPITXIISRFunction"/> + <value>ISR_SPI2_SPITXI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICI" alias="Every 4th event"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR22" settingAlias="SDI2R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="PCM/DSP"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FICD" settingAlias="JTAGEN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.752%"/> + <value>48</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_FOSC2"/> + <value>4000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="CKE" alias="Active to Idle"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="RCEN" alias="disabled"/> + <value>0</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="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="I2C1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="R_nW" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP4MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="DHEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="I2CEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="P" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPII" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPII" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPII" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="LPCFG" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="SOSC"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB15"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSCK" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR2" settingAlias="RP4R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC3"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC1"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="CTMUMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC2"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICOV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="RETEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="OE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMI" settingAlias="flag"/> + <value>disabled</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.SettingKey" moduleName="CMP3" registerAlias="CMI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB13" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSWEN"/> + <value>Switch is Complete</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:128"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="MICI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="PllClock"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="FRCPLL"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="clockSourceSelect"/> + <value>FOSC/2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="SOSCHP" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITBEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS8192"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FICD" settingAlias="ICS" alias="NONE"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB5" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="FRMERR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="FRMERR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSC" settingAlias="POSCMOD"/> + <value>NONE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="FRMERR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="I2COV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA0" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIBUSY" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Off"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP1 Sync\Trigger"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCFB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB14"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB15" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="FRMERREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.034%"/> + <value>42</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SOSCEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePoscErrataWorkaround"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB5" alias="enabled"/> + <value>1</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="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIROVEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIRBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="I2CEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_FRC"/> + <value>8000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCFA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="ADC1"/> + <value>27</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="localClockFreq"/> + <value>4000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR0" settingAlias="OCTRIG1R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="FRMERREN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="FRC"/> + <value>0</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.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIRBE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.705%"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB13"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="CKP" alias="Idle:Low, Active:High"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB12" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="URDTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITBFEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="PLLEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICSIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPITBFEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREN"/> + <value>Powered On</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SMP" alias="Middle"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL" alias="High to Low : Not Inverted"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="ICTRIG" alias="Sync"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="PCIE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="GCSTAT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SCLREL"/> + <value>Holds</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="8"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA3"/> + <value>disabled</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="Pin Module" registerAlias="ODCA" settingAlias="ODCA2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="4"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="5"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="6"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="7"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CPOL" alias="Not Inverted"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="TRIGSTAT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOFSEL" alias="3"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="CM"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFOPinsInput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS16384"/> + <value>14</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="REFCLKI"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="STRICT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICOV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WATCHDOG" name="clockSourceSelect"/> + <value>CLOCK_LPRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="None"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSC" settingAlias="OSCIOFCN"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STOR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STLOCK"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB12"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="IGNROV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="S" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSEN" alias="OFF"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="RCEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="P2ACTIV"/> + <value>Partition 1 is mapped into the active region</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.846%"/> + <value>46</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIBUFL" settingAlias="SPIBUFL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC"/> + <value>FRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SPI2_SPIRXIISRFunction"/> + <value>ISR_SPI2_SPIRXI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="IGNTUR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB8" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="POSCEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SRMTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIBUFL" settingAlias="SPIBUFL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIBUFL" settingAlias="SPIBUFL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="SPI1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSDO" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="R_nW" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR8" settingAlias="RP16R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="PLLSS" alias="PLL_PRI"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="I2C1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB14" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="I2COV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD6" settingAlias="SPI3MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIRBEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CEVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="TBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR7"/> + <value>2051</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIRBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA1"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIRBEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MODE16" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="FCKSM" alias="CSDCMD"/> + <value>128</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Prescaler Capture mode: Every 4th rising"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB7" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC1"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC2"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="OC3"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPISIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCFA" settingAlias="IOCFA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MODE32" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB13" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR6"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSDO" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="IC1" name="IC1_ICI_INTISRFunction"/> + <value>ISR_IC1_ICI_INT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP4 Sync\Trigger"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB9" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="Right Justified"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB7" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB12" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="SPISGNEXT" alias="not sign-extended"/> + <value>0</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.CustomKey" moduleName="TMR3" name="TMR3_TIISRFunction"/> + <value>ISR_TMR3_TI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="CKE" alias="Active to Idle"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB14" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="customMasterSlaveViewerEnable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SMEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR5"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA0"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOTUN" settingAlias="DCOTUN"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA2"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC3MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="S"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB9" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="ADC1"/> + <value>27</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STSRC"/> + <value>SOSC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB8" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="RESET" registerAlias="RCON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="IWCOL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSCK" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BWRP" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP1 Sync\Trigger"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:16"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="ALTCMPI" alias="ENABLE"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CMP2" registerAlias="CMSTAT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="BUSYEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CMP1" registerAlias="CMSTAT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CMP3" registerAlias="CMSTAT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIROVEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="P2ACTIV" alias="Partition 1 is mapped into the active region"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB8" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR8"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="TBF"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIRXI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB11" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCMX" alias="WDTCLK"/> + <value>2048</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIRXI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="OSCIOFCN" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITUREN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIRXI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SWR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB5" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB15" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="FRC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICI" alias="Every 2nd event"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB8" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMOD"/> + <value>I2S</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMOD"/> + <value>I2S</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMOD"/> + <value>I2S</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="POSCEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="EnableSPIControl"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="UpdatePllPrescalerClock"/> + <value>2000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD6" settingAlias="SPI3MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="SPI1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.141%"/> + <value>61</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA3"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR28" settingAlias="SCK3R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet VDD2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR2"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="CRCMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="HLVDMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C2EVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:32"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIRBE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="POSCEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="timerExtPinSelection"/> + <value>FALSE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="ENHBUF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITBFEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP2 Sync\Trigger"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="None"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB6" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WRERR"/> + <value>The program or erase operation completed normally</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.SettingKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICOV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICOV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICOV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR1"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="CKP" alias="Idle:High, Active:Low"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="UpdateCpuDivisorClock"/> + <value>16000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCI" settingAlias="flag"/> + <value>disabled</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="SPI1" registerAlias="SPICON1L" settingAlias="SMP" alias="Middle"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.188%"/> + <value>60</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SRMT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB12" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR7" settingAlias="IC2R"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR12" settingAlias="TCKIBR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMSIDL"/> + <value>Flash voltage regulator is active during Idle mode</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="ACKDT" alias="Sends NACK"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB13" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="Left Justified"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockFBDivisor"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="UpdatePllPrescalerOptions"/> + <value>[1:2, 1:3, 1:4, 4:1, DISABLED]</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB15" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="RETEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR23" settingAlias="SS2R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIBRGL"/> + <value>199</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIBRGL"/> + <value>199</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON" settingAlias="DCOEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIBRGL"/> + <value>199</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB11" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB14" alias="enabled"/> + <value>1</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.CustomKey" moduleName="IC2" name="IC2_ICI_INTISRFunction"/> + <value>ISR_IC2_ICI_INT</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="ICTRIG" alias="Sync"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB9" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="BUSYEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="CKP" alias="Idle:Low, Active:High"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIRBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPITBEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BWRP"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB8" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP2 Capture\Compare"/> + <value>20</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="TRIGSTAT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C2OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="ACKEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR3"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPIBUSY" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="A10M"/> + <value>7 Bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOTUN"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="EnableSPIControl"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="SPI1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB2" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllPostScaler"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="P"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB15" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="DHEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR2" settingAlias="OCTRIG2R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllScaler"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SMEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="IC32" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="RSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C2OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MODE16" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="ALTI2C1" alias="ALTI2CEN"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="DISABLED"/> + <value>120</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GWRP" alias="OFF"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="TBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS16"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="NVMSIDL" alias="Flash voltage regulator goes into Standby mode during Idle mode"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="BOREN" alias="NO_SLEEP"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPISIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="MasterMode"/> + <value>Slave</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.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCPDB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="DOZE" alias="1:64"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SCIE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL" alias="High to Low : Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="IWCOL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IDLE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MODE32" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SMP"/> + <value>Middle</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCA" settingAlias="ODCA4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="EnableSPIControl"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SMP"/> + <value>Middle</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SMP"/> + <value>Middle</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.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="RTCCMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPINR0"/> + <value>16191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCKPS" alias="1:256"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVRSS" alias="AVDD – AVSS"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSCPinsOutput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPIFE" alias="Frame Sync pulse precedes"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCPDA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIROV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICI" alias="Every 3rd event"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT_OE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="STREN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR19" settingAlias="U2RXR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="COE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="SOSCHP"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IOLOCK" alias="not-active"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CPOL"/> + <value>Inverted</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CCH" alias="C1IND"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CPOL"/> + <value>Inverted</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CCH" alias="C1INC"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB14" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.893%"/> + <value>45</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CCH" alias="C1INB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="OSCFDIV"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP1 Capture\Compare"/> + <value>19</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS32"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB4"/> + <value>disabled</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.SettingKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CPOL"/> + <value>Inverted</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS512"/> + <value>9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPITBFEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR18" settingAlias="U1RXR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FPOR" settingAlias="DNVPEN"/> + <value>ENABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C2EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SWR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB15"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB14"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB13"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureClockChange"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="ANCFG" settingAlias="VBG2EN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB12"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS64"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMSYPW" alias="One serial word length"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CBRG"/> + <value>18</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB11"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB10"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="ACKEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="ENHBUF"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="ENHBUF"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="ENHBUF"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB3" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CSS" alias="STNDRD"/> + <value>3072</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR25" settingAlias="CLCINBR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IDLE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB6" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="COUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T3MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="COUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="AHEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="COUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMPOL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="IC3" name="Trigger Source Mode"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWDTEN" alias="ON_SWDTEN"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMPOL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMPOL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB9" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD4" settingAlias="HLVDMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="IGNROV" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB4" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SMP" alias="End"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB5" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSC" settingAlias="IOL1WAY"/> + <value>ON</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="requestedPeriod"/> + <value>0.131</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SRMT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICI" alias="Every"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICI" alias="Every 4th event"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPIEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPIEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="SFTSWP" alias="Awaiting panel swap using BOOTSWP instruction"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMPOL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.564%"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPIEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV"/> + <value>12288</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MCLKEN" alias="MCLK"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="prescaleDivisor"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="R_nW"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CPOL" alias="Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPDB" settingAlias="IOCPDB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMSYPW" alias="One clock wide"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CWRP" alias="OFF"/> + <value>256</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="IC32" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="LPRC"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CEVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.235%"/> + <value>59</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CEVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CEVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="RSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockEnable"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STSRC" alias="SOSC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="RTCCMD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="CRCMD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="URDTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TECS" alias="TMRCK"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB15" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8" settingAlias="CLC1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR3" settingAlias="RP7R"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SPIFunctionMode"/> + <value>SPI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA2" alias="analog"/> + <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.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPIEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CON" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPA" settingAlias="IOCPA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="PMPMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="CKE" alias="Active to Idle"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="IGNROV" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8" settingAlias="CLC1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICM" alias="Edge Detect Capture"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IOPUWR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7" settingAlias="DMA0MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL" alias="Any Change"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="CTMU"/> + <value>28</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="PADCON" settingAlias="IOCON"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CEVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSCK" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIIMSKL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.034%"/> + <value>22</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIIMSKL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC3MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIIMSKL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB15" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIRXI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIRXI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIRXI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="SDOxOUT"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="IC1" name="Trigger Source Mode"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCPB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIROVEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C2EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="timerMaxCount"/> + <value>65535</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C2EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C2EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB0" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB12" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FrcEnable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="SPI1_SPIRXIISRFunction"/> + <value>ISR_SPI1_SPIRXI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.517%"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet VSS2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="SWDTEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet VSS3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.987%"/> + <value>43</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Interrupt mode"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="FICD"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPITXI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="SICI" settingAlias="enable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCPA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPITXI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSSLP" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPITXI" settingAlias="enable"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="POSCMOD" alias="EC"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPITXI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR1"/> + <value>11</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS128"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPITXI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR2"/> + <value>12</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="U1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPITXI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="TMR3"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIURDTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name VCAP1"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMSYNC" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICBNE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA1" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="CVR" registerAlias="CVRCON"/> + <value>136</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIURDTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIURDTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIROVEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIROVEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIROVEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MCLKEN" alias="FOSC/2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="IC2" name="Trigger Source Mode"/> + <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.SettingKey" moduleName="Pin Module" registerAlias="RPOR12" settingAlias="RP25R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMSYNC" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR5" settingAlias="RP11R"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB9"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB2" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC"/> + <value>FRC</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIRXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIRXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIRXI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIIMSKH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB14" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="GSS"/> + <value>DISABLED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICI_INT" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIIMSKH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV12"/> + <value>56</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIIMSKH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllCpuDivScaler"/> + <value>NOTAVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMI" settingAlias="flag"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB14" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAuxClockPostscaler"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" 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.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB11" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="P2ACTIV" alias="Partition 2 is mapped into the active region"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB15"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="ALTCMPI"/> + <value>DISABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICSIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA3" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ACKSTAT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICI_INT" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="ADC1"/> + <value>27</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICI_INT" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSSLP" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITBF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="COE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="IOPUWR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SDOxOUT"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="TRIGSTAT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKH" settingAlias="TXMSK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIBUSY" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKH" settingAlias="TXMSK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREFM" alias="VREF+"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKH" settingAlias="TXMSK"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WATCHDOG" name="customViewerUpdate"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="DHEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="T3MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7" settingAlias="DMA0MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB8" alias="input"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="U1MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CPOL" alias="Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="OE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet AVSS"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPIFE"/> + <value>Frame Sync pulse precedes</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPIFE"/> + <value>Frame Sync pulse precedes</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SPIFE"/> + <value>Frame Sync pulse precedes</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB6"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB7"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CON" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB8"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB9"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB2"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.329%"/> + <value>57</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB3"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB4"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB5"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C2OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C2OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FICD" settingAlias="JTAGEN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL"/> + <value>Disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="EVPOL"/> + <value>Disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="SPISGNEXT" alias="sign-extended"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C2OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL"/> + <value>Disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="PRI"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB1" alias="analog"/> + <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="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STSIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB14"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB8"/> + <value>input</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SDOxOUT"/> + <value>enabled</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.SettingKey" moduleName="SPI3" registerAlias="SPIURDTH" settingAlias="SPIURDTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIURDTH" settingAlias="SPIURDTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="None"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIURDTH" settingAlias="SPIURDTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPIURDTL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPIURDTL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="SFTSWP" alias="Partitions successfully swapped using BOOTSWP instruction"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPIURDTL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.175%"/> + <value>39</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPITBE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPISIDL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="DataModeSelect"/> + <value>8 bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR3" settingAlias="T2CKR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.128%"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.282%"/> + <value>58</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="RETEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="FLASH" registerAlias="NVMKEY"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="PR" settingAlias="PR"/> + <value>65535</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WR" alias="Initiates a Flash memory program or erase operation"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="FRCPLL"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WREN"/> + <value>Inhibit Flash program/erase operations</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="MICI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA3"/> + <value>enabled</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.CustomKey" moduleName="Pin Module" name="anselUserSetRA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC3MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CMSK"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.470%"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="T3CK"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="DCOCON"/> + <value>1792</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MSTEN" alias="Master"/> + <value>1</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="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB15" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SPIBUSY" alias="enabled"/> + <value>1</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.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IOPUWR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB9" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAutoTune"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR8"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB13"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB13" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="IGNROV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="IGNROV"/> + <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.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MCLKEN" alias="MCLK"/> + <value>1</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="Pin Module" name="anselUserSetRB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICBNE" alias="disabled"/> + <value>0</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.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="DCO"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="TRIGSTAT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="IGNROV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB13" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="DataModeSelect"/> + <value>8 bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB9"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CADD"/> + <value>64</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR6" settingAlias="ICM3R"/> + <value>63</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.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ACKTIM"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SRMT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SRMT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPISTATL" settingAlias="SRMT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB11" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR7"/> + <value>5888</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSCK" alias="enabled"/> + <value>1</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="INTERNAL OSCILLATOR" name="FeatureUsb"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SCLKPinsInput"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="CKP"/> + <value>Idle:Low, Active:High</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD3" settingAlias="CMPMD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WATCHDOG" name="customMasterSlaveViewerEnable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="CKP"/> + <value>Idle:Low, Active:High</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C3OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ODCB" settingAlias="ODCB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="OSCFDIV"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="POSCMOD" alias="NONE"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="CKP"/> + <value>Idle:Low, Active:High</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="maxPeriod"/> + <value>0.131072</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="MSTEN"/> + <value>Master</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MSTEN"/> + <value>Master</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="SICI" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="MSTEN"/> + <value>Master</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP5MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2"/> + <value>output</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR6"/> + <value>26</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB13" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="COE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMSYPW" alias="One serial word length"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB12"/> + <value>analog</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="OC1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICI_INT" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICI_INT" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICI_INT" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVR"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI3" name="SPI3_SPIRXIISRFunction"/> + <value>ISR_SPI3_SPIRXI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP4 Capture\Compare"/> + <value>22</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC3"/> + <value>18</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB14" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC1"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="IC2"/> + <value>17</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP2 Sync\Trigger"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="DataModeSelect"/> + <value>8 bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB11" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB13" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="COE"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB12" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="COE"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT_DIVSWITCH"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="COE"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.222%"/> + <value>38</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CVR" registerAlias="CVRCON" settingAlias="CVREFP" alias="VREF+"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWDTEN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="RSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB11" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllEnable"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.940%"/> + <value>44</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="PCIE"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C2EVT" alias="enabled"/> + <value>1</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="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="SOSC"/> + <value>5</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.269%"/> + <value>37</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="PCM/DSP"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA0" alias="analog"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SOSCEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR23" settingAlias="TXCKR"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet VCAP1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR1" settingAlias="INT3R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB12" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureAvcoDivider"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="OE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP5MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD2" settingAlias="IC3MD" alias="disabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB12" alias="digital"/> + <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.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB13" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7" settingAlias="DMA0MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR7" settingAlias="RP14R"/> + <value>0</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.RegisterKey" moduleName="SPI3" registerAlias="SPICON1H"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPICON1H"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPICON1H"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="TMPRPIN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="ENHBUF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FailSafe"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCFB" settingAlias="IOCFB12" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C1OUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPOR1" settingAlias="RP2R"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="STRICT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeatureClockSwitching"/> + <value>AVAILABLE</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="CVR" name="CMP1Dependency"/> + <value>CVR</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CpuDivisor"/> + <value>1:1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP1MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MODE16" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB11" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_LPRC"/> + <value>31000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICTSEL"/> + <value>TMR3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICTSEL"/> + <value>TMR3</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.SettingKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICTSEL"/> + <value>TMR3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSS" alias="DISABLED"/> + <value>6</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.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C3EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR0"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB10" alias="output"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITBE" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FeaturePllDisplayScaler"/> + <value>UNSUPPORTED</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C3EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C3EVT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICM" alias="Simple Capture mode: Falling"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="CLKLOCK" alias="unlocked"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="PRIPLL"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ADD10" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="LOCK" alias="in lock"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FSEC" settingAlias="BSEN"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C3OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS4"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="I2C1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIBRGL" settingAlias="SPIBRGL"/> + <value>199</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIBRGL" settingAlias="SPIBRGL"/> + <value>199</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS2"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="FLASH" registerAlias="NVMADRH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MODE16" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD5" settingAlias="CCP3MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIBRGL" settingAlias="SPIBRGL"/> + <value>199</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB6"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB1" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB7"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB8"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB9"/> + <value>disabled</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.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.128%"/> + <value>40</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCI" settingAlias="priority"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON1" settingAlias="ICSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS8"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+1.081%"/> + <value>23</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="D_nA" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFOPinsOutput"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="URDTEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IOLOCK" alias="active"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C1OUT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR1"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD7" settingAlias="DMA1MD"/> + <value>enabled</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.RegisterKey" moduleName="SPI3" registerAlias="SPICON1L"/> + <value>32801</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.RegisterKey" moduleName="SPI2" registerAlias="SPICON1L"/> + <value>32801</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="ICD" name="customMasterSlaveViewerEnable"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR3"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPICON1L"/> + <value>32801</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC1" registerAlias="ICCON1" settingAlias="ICTSEL" alias="TMR2"/> + <value>1</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.OptionKey" moduleName="System Module" registerAlias="FPOR" settingAlias="BOREN" alias="OFF"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C2EVT" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TSIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="SWR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TON"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CCONH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITBF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA3" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="UI_OSCTUN_SETTING"/> + <value>Center frequency</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-0.376%"/> + <value>56</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="S" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR8" settingAlias="IC3R"/> + <value>13</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="FLASH" registerAlias="NVMCON" settingAlias="WR"/> + <value>Program or erase operation is complete and inactive</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCPUB"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCONH" settingAlias="SDAHT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="SMEN"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TSIDL" alias="enabled"/> + <value>1</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="System Module" registerAlias="FWDT" settingAlias="WDTPS" alias="PS32768"/> + <value>15</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="MSSEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD8" settingAlias="CLC2MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="FNOSC" alias="OSCFDIV"/> + <value>7</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR5"/> + <value>10</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.376%"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR3"/> + <value>512</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="USBFrequency"/> + <value>24000000</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="I2C1" registerAlias="I2CCON" settingAlias="PEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCPUA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="REFCLKOUT_INPUT_FREQUENCY"/> + <value/> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet AVDD"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="SSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSA" settingAlias="ANSELA1" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR4"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CCON"/> + <value>33536</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SSEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="I2COV"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP3 Capture\Compare"/> + <value>21</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="FRMCNT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB1"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR2"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet NMCLR"/> + <value>disabled</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.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCLK" alias="SOSC"/> + <value>8192</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="TMPRPIN" alias="OFF"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA1" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="FRMCNT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="FRMCNT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CTRN" settingAlias="I2CTXDATA"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="BCL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTCMX"/> + <value>WDTCLK</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB0" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="CLKDIV" settingAlias="OSCFDIVSRC" alias="PRIPLL"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="FRCPLL"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="BUSYEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="BUSYEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPISIDL" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="BUSYEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSDI"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSDI"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="ENHBUF" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSDI"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="COSC" alias="DCO"/> + <value>6</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="RPOR1"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLKPinsInput"/> + <value>disabled</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.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB0" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CMSK" settingAlias="AMSK"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="URDTEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TECS" alias="LPRC"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMSTAT" settingAlias="C3OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMSTAT" settingAlias="C3OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C3OUT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB0"/> + <value>digital</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="NOSC" alias="SOSC"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="TRSTAT"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB12"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="WDTO"/> + <value>disabled</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.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICM" alias="Edge Detect Capture"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FBSLIM" settingAlias="BSLIM"/> + <value>8191</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="Right Justified"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPISTATL" settingAlias="SPITBE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="GCEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL" alias="High to Low : Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL" alias="Any Change"/> + <value>3</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROACTIV"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency-1.081%"/> + <value>41</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CEVT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICBNE" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="I2C1" name="InternalClock"/> + <value>4000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="ADC1MD"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1H" settingAlias="AUDEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB2" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="ALTCMPI" alias="DISABLE"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPII" settingAlias="context"/> + <value>OFF</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.SettingKey" moduleName="SPI1" registerAlias="SPII" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPII" settingAlias="context"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FDEVOPT1" settingAlias="ALTI2C1"/> + <value>ALTI2CDIS</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FWDT" settingAlias="WDTWIN"/> + <value>WIN25</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV6"/> + <value>40</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV5"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV4"/> + <value>24</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV3"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV2"/> + <value>8</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV1"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="Left Justified"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP1 Sync\Trigger"/> + <value>4</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSCSEL" settingAlias="PLLMODE" alias="PLL96DIV8"/> + <value>48</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc NMCLR"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="FOSC" settingAlias="SOSCSEL"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="EVPOL" alias="Low to High : Not Inverted"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB3"/> + <value>disabled</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.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="REFOCONL" settingAlias="ROSEL" alias="Primary Oscillator"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB1" alias="disabled"/> + <value>0</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.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="ACKEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB0" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI3" registerAlias="SPISTATL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI2" registerAlias="SPISTATL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="SPI1" registerAlias="SPISTATL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="AIVTDIS" alias="ON"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Center Frequency+0.423%"/> + <value>9</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC2" registerAlias="ICCON2" settingAlias="IC32"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="IC32"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="IC1" registerAlias="ICCON2" settingAlias="IC32"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="FLASH" name="FLASH_NVMIISRFunction"/> + <value>ISR_FLASH_NVMI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIROVEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC3" registerAlias="ICCON2" settingAlias="SYNCSEL" alias="MCCP4 Capture\Compare"/> + <value>22</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="ioc VDD2"/> + <value>none</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="I2C1" registerAlias="I2CSTAT"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPB" settingAlias="IOCPB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="CM" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="MSSEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="SPISGNEXT" alias="not sign-extended"/> + <value>0</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.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB4"/> + <value>disabled</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.CustomKey" moduleName="Pin Module" name="iocUserSet RA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RPINR20" settingAlias="SCK1R"/> + <value>63</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB3" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB15" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI1" name="SPIFunctionMode"/> + <value>SPI</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="COUT" alias="disabled"/> + <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.SettingKey" moduleName="System Module" registerAlias="FPOR" settingAlias="LPCFG"/> + <value>OFF</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SMP" alias="Middle"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIRBFEN" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB2" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="EVPOL" alias="Disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="TMR3" registerAlias="TCON" settingAlias="TCKPS" alias="1:64"/> + <value>2</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FWDT" settingAlias="FWPSA" alias="PR128"/> + <value>16</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA2" alias="enabled"/> + <value>1</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="FOSCSEL" settingAlias="FNOSC" alias="FRCPLL"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="COUT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name VDD2"/> + <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.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="CM" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP2" registerAlias="CMCON" settingAlias="CON"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="TMR3" name="timerBitMode"/> + <value>16 Bit</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP1" registerAlias="CMCON" settingAlias="CON"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="FLASH" registerAlias="NVMADRL"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="ENHBUF" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="STEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="IC2" registerAlias="ICCON1" settingAlias="ICI" alias="Every 2nd event"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="CMP3" registerAlias="CMCON" settingAlias="CON"/> + <value>enabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="PMD1" settingAlias="U2MD" alias="enabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="DISSDO"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="BCL" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPICON1H" settingAlias="AUDMOD" alias="I2S"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="DISSDO"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPIIMSKL" settingAlias="SPIRBEN"/> + <value>disabled</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="INTERNAL OSCILLATOR" registerAlias="OSCTUN" settingAlias="TUN" alias="Minimum frequency deviation"/> + <value>32</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPIIMSKL" settingAlias="SPIRBEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPIIMSKL" settingAlias="SPIRBEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="DISSDO"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="CMP1" registerAlias="CMSTAT" settingAlias="C2OUT" alias="enabled"/> + <value>1</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.OptionKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="GCEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB5"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="SPI2" name="SPIFunctionMode"/> + <value>SPI</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.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="GCEN"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA0"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA1"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA2"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA3"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA4"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1H" settingAlias="AUDMONO" alias="mono"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FSEC" settingAlias="CSS" alias="ENHNCD"/> + <value>2048</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ACKSTAT" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLOCK_FOSC"/> + <value>8000000</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="FOSC" settingAlias="POSCMOD" alias="HS"/> + <value>2</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.OptionKey" moduleName="SPI1" registerAlias="SPICON1L" settingAlias="SPIEN" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCNB" settingAlias="IOCNB14" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUA" settingAlias="IOCPUA4" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="ADD10" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI1" registerAlias="SPISTATL" settingAlias="SPIBUSY" alias="disabled"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB15"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSB" settingAlias="ANSELB3" alias="digital"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI2" registerAlias="SPICON1L" settingAlias="MSTEN" alias="Master"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="I2C1" registerAlias="I2CCON" settingAlias="I2CSIDL"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI1" registerAlias="SPICON2L" settingAlias="WLENGTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB10"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="I2C1" registerAlias="I2CSTAT" settingAlias="D_nA" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI3" registerAlias="SPICON2L" settingAlias="WLENGTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="SPI3" registerAlias="SPICON1L" settingAlias="SPIFE" alias="Frame Sync pulse coincides"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCPUB" settingAlias="IOCPUB1" alias="enabled"/> + <value>1</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="SPI2" registerAlias="SPICON2L" settingAlias="WLENGTH"/> + <value>0</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB13"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB14"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB11"/> + <value>disabled</value> + </entry> + <entry> + <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB12"/> + <value>disabled</value> + </entry> + </tokenMap> + <generatedFileHashHistoryMap class="java.util.HashMap"> + <entry> + <file>mcc_generated_files/interrupt_manager.h</file> + <hash>bcf1a91bd7415175ce3356b06a67272d03b923c54921d3415d89217594e6e4f0</hash> + </entry> + <entry> + <file>mcc_generated_files/spi3.c</file> + <hash>8b20bca8adde9ef5157c56b2fdab259066d3f1f8549de8e5593112222f46adb0</hash> + </entry> + <entry> + <file>mcc_generated_files/spi1.c</file> + <hash>adb939dc3c73532aa9225f4bdb4336ef4f9f676ea81b8be3709fc3c4411af744</hash> + </entry> + <entry> + <file>mcc_generated_files/spi2.c</file> + <hash>8a5328652396b7dbd16d309004a36102aaf84db5340ad32ef32ce20d3bf5e0ff</hash> + </entry> + <entry> + <file>mcc_generated_files/ic3.h</file> + <hash>6dc88d769295b9ae5a790a47534dff2c1f7c8b8eaed93569446e0a30a252f54e</hash> + </entry> + <entry> + <file>mcc_generated_files/ic2.h</file> + <hash>8a2fbab44b859dd66fc741f35cb1e207499b4ca2e9050408215dbc791ec29b56</hash> + </entry> + <entry> + <file>mcc_generated_files/system.c</file> + <hash>921c8064bef54265750802ba3bc29ff5b0dbd54f07cd2a9410e2d565437f3b6f</hash> + </entry> + <entry> + <file>mcc_generated_files/cvr.c</file> + <hash>b4df6819032805ee3779d38eed567b556f18fe6a49a1cd0995094a1257784b06</hash> + </entry> + <entry> + <file>mcc_generated_files/ic3.c</file> + <hash>4664656ada4da052ea7228db8675d0de0fc215b9efd851e21165022ad5ff25b9</hash> + </entry> + <entry> + <file>mcc_generated_files/ic1.h</file> + <hash>734aead6137a30ed3bcb34b75b343b49e9bfc47cc68a0d2327d62d2de1dbd919</hash> + </entry> + <entry> + <file>mcc_generated_files/clock.h</file> + <hash>c96640fdd2d53db8f4adca9e6022666a3f04ec7ea7e0dab66a31fe847a3dd576</hash> + </entry> + <entry> + <file>mcc_generated_files/spi2.h</file> + <hash>be61291652af098b4c6e1d398208def3341e765b4fb32eded33ed4d98b5daeef</hash> + </entry> + <entry> + <file>mcc_generated_files/cvr.h</file> + <hash>b21d538c708c522c36936e7dc07f1437d10f418a390802cba7677e64283997d0</hash> + </entry> + <entry> + <file>mcc_generated_files/spi3.h</file> + <hash>19b994e7413c2a6b3f98234c93961b22b508cdb11ebfda8b585514594604f1e1</hash> + </entry> + <entry> + <file>mcc_generated_files/clock.c</file> + <hash>3c27d45753af9ec332b1f2f522a61fb258ca7240f45c5b22222d84a4b949a086</hash> + </entry> + <entry> + <file>mcc_generated_files/ic2.c</file> + <hash>48302fea78e9588b61217984df85587d70ace4c71a2271ade17f19fef056846d</hash> + </entry> + <entry> + <file>mcc_generated_files/ic1.c</file> + <hash>71170e8fba7c703c1ad6cbddc646eb033a4ee6768770f7c71caed94ae5a19875</hash> + </entry> + <entry> + <file>mcc_generated_files/spi1.h</file> + <hash>524b15637606b4b36f20e21d0f87c395f4ec69c6690640844a7dc75b821451ef</hash> + </entry> + <entry> + <file>mcc_generated_files/memory/flash.h</file> + <hash>b007f92343a8c898e8d58f27c90b63d47b1f096045cd74472a5d8b45ff57f9cd</hash> + </entry> + <entry> + <file>mcc_generated_files/cmp2.c</file> + <hash>bc0571b2ec0a2d8d65d71795b7ef80b13750f1ccb8cb9a6938e21c1a252a58ee</hash> + </entry> + <entry> + <file>mcc_generated_files/cmp1.c</file> + <hash>0ba72040e797deaee66c4c2740a92ac9da1b4619b6c900f173faa2c7eda8a259</hash> + </entry> + <entry> + <file>mcc_generated_files/mcc.h</file> + <hash>0a1c130e082e8d2107cf1490c13082db12a98926c7cba78fe6db9a18e1507908</hash> + </entry> + <entry> + <file>mcc_generated_files/cmp3.c</file> + <hash>57f7f70ca416d3ff0d1c07e31a1c394ad3ea9335472b66e18f2841c7e59a3d53</hash> + </entry> + <entry> + <file>mcc_generated_files/interrupt_manager.c</file> + <hash>b265e9397776f56faaeb9b79e151b0f5b7f7b70acf1f213b78865992dedeae77</hash> + </entry> + <entry> + <file>mcc_generated_files/cmp1.h</file> + <hash>5513b308d4514147aae5aeb5522795c6285a07853d02afd75b39fe58551a724e</hash> + </entry> + <entry> + <file>mcc_generated_files/mcc.c</file> + <hash>f20f3885034c856c23562fd59228285bc4d9399d93c30ff0acdfba6334800ceb</hash> + </entry> + <entry> + <file>mcc_generated_files/pin_manager.c</file> + <hash>1175331b2625f6b8123e5bba886b1e5a8437bd9944e2a6f82a664f05ecc00191</hash> + </entry> + <entry> + <file>mcc_generated_files/cmp3.h</file> + <hash>eab3d002dcc410467734ae7af47a338fc0911599cbe23fc3b64bfa963c50c5e6</hash> + </entry> + <entry> + <file>mcc_generated_files/cmp2.h</file> + <hash>7c3e7eb74d12deb3fd0d04714477f6a0c347a56d315e750ef193a1f09a2df57c</hash> + </entry> + <entry> + <file>mcc_generated_files/pin_manager.h</file> + <hash>ccbcb78c3c6ed517ad46298202c294c4ba3144598148e800e74132ecca2874a1</hash> + </entry> + <entry> + <file>main.c</file> + <hash>07c169b2872875cc9a0e0b0209d18946fbac47fc0d065bd4c6e98aca0ef2f48e</hash> + </entry> + <entry> + <file>mcc_generated_files/memory/flash.s</file> + <hash>891740d9afbab1b02190a17ab0195e7114ece8a87d1162ec7dac73ab33fb2657</hash> + </entry> + <entry> + <file>mcc_generated_files/traps.h</file> + <hash>316d8a62361b2012ad398149cc416a189c1cc2c761080766e4c73d7b31fa7349</hash> + </entry> + <entry> + <file>mcc_generated_files/tmr3.h</file> + <hash>e26442f350838c4c0e2b4fd62fdfbd7525b4fc3c56ee4db955e3a9b284aef288</hash> + </entry> + <entry> + <file>mcc_generated_files/traps.c</file> + <hash>50ff8dbad8a485482f20ab140b9f1a757e92bf08110960eaeb549961f900078f</hash> + </entry> + <entry> + <file>mcc_generated_files/tmr3.c</file> + <hash>b28510d6c1773ab442625900e4df92f53464ab74a6022d3d8c92aace7ea019f3</hash> + </entry> + <entry> + <file>mcc_generated_files/i2c1.h</file> + <hash>68a75bff4d54c03492ee092ec7998ba8de11943407d637077750942f12d0246e</hash> + </entry> + <entry> + <file>mcc_generated_files/system.h</file> + <hash>bebeb50b11a5fb26b5b009c51380b5f857ba66eea0d7361c5d577c5c6d978c05</hash> + </entry> + <entry> + <file>mcc_generated_files/i2c1.c</file> + <hash>ad8a05bc5024add6ef408c27847f107f323f0306cce89014da91b9d53407ec30</hash> + </entry> + </generatedFileHashHistoryMap> + <mc3libFileHashHistoryMap class="java.util.HashMap"/> +</config> \ No newline at end of file diff --git a/README.md b/README.md index 45cc389..3df0ccd 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# sample-data-repo - +C program running on the RCU2 to translate between i2c and three HBATs. +Compiled with MPLAB X IDE v5.35 +Microcontroller: PIC24FJ64GA702 \ No newline at end of file diff --git a/log.txt b/log.txt new file mode 100644 index 0000000..1bc2580 --- /dev/null +++ b/log.txt @@ -0,0 +1,12 @@ +MCC setup +System: FRC Osc (8 MHz), (1:2 Postscaler = 4 MHz??) +CMP3: Use timer 3, inverted output, input(non-invert: CVREF) +I2C: Slave, addr: 0x20, Mask=0x3. DISSLW: disable. SMEN enable (0x8300) +Tmr3: FOSC/2, 1:8 prescaler, 250ms Period +CRC:Poly: CRC16, value 8005, XOR 65535 (not reversed), seed: 0, Direct, Start Msb, Data: 8 bits Start Lsb +SPI: 8bit, Clock: 0x63 = 10kHz baud (C7?) +IC: Simple Capture: Falling, TMR3 (trigger?) + +Replace: I2C1, CRC modules + +CVR: Avdd_Avss, Value =12 (out of 16) diff --git a/main.c b/main.c new file mode 100644 index 0000000..9178b14 --- /dev/null +++ b/main.c @@ -0,0 +1,152 @@ + + +/** + Section: Included Files +*/ +#include "mcc_generated_files/system.h" +#include "mcc_generated_files/i2c1.h" +#include "mcc_generated_files/ic1.h" +#include "mcc_generated_files/ic2.h" +#include "mcc_generated_files/ic3.h" +#include "mcc_generated_files/pin_manager.h" +#include "mcc_generated_files/tmr3.h" +#include "src/rcu2_i2c.h" +#include "src/HBA1_RX.h" +#include "src/HBA1_TX.h" +#include "src/HBA1.h" +#include "src/HBA2_RX.h" +#include "src/HBA2_TX.h" +#include "src/HBA2.h" +#include "src/HBA3_RX.h" +#include "src/HBA3_TX.h" +#include "src/HBA3.h" +#include "src/registers.h" +/* + Main application + */ +void LED_on() {_LATA0=1;}; +void LED_off() {_LATA0=0;}; +I2C_SLAVE_STATES I2Cstate; +bool I2CbusyTX=false; +uint16_t HBA1_IC_previous,HBA2_IC_previous,HBA3_IC_previous; +uint16_t cnt=0; //Sleep on overflow + +typedef enum +{ + HBA_STATE_IDLE, + HBA_STATE_TX, + HBA_STATE_WAIT, + HBA_STATE_RX +} HBA_STATES; + + +HBA_STATES HBA1_state; +HBA_STATES HBA2_state; +HBA_STATES HBA3_state; + +void Handle_I2C(void){ + I2Cstate=SI2C1Interrupt(); + switch (I2Cstate){ + case I2C_EVENT_TX_REQUEST: + I2C_Send(I2C_TX_request()); + break; + case I2C_EVENT_RX: + I2C_packet(); + break; + } +} + +void GoToSleep(){ + LED_off(); + // IC1CON1 = 0x00; //Input capture off +// IC2CON1 = 0x00; +// IC3CON1 = 0x00; +// SPI1CON1Lbits.SPIEN=0; //Disable SPI so that we can make pin high = output low + SPI1CON1Lbits.DISSDO=1; + SPI2CON1Lbits.DISSDO=1; + SPI3CON1Lbits.DISSDO=1; +//SPI2CON1Lbits.SPIEN=0; +// SPI3CON1Lbits.SPIEN=0; + IEC1bits.SI2C1IE = 1; //Enable global interrupt so that we wake up on I2C + Sleep(); + HBA1_state=HBA_STATE_IDLE; + IEC1bits.SI2C1IE = 0; + // IC1CON1 = 0x02; //Input capture on + // IC2CON1 = 0x02; + // IC3CON1 = 0x02; + LED_on(); +} + +#define HBA_(name) HBA1_ ## name +#define SPI_(name) SPI1 ## name +#define IC_(name) IC1 ## name +#define IC2IntFlag IFS0bits.IC1IF +#include "mainloop.c" + +#undef HBA_ +#undef SPI_ +#undef IC_ +#undef IC2IntFlag + +#define HBA_(name) HBA2_ ## name +#define SPI_(name) SPI2 ## name +#define IC_(name) IC2 ## name +#define IC2IntFlag IFS0bits.IC2IF +#include "mainloop.c" +#undef HBA_ +#undef SPI_ +#undef IC_ +#undef IC2IntFlag + +#define HBA_(name) HBA3_ ## name +#define SPI_(name) SPI3 ## name +#define IC_(name) IC3 ## name +#define IC2IntFlag IFS2bits.IC3IF +#include "mainloop.c" +#undef HBA_ +#undef SPI_ +#undef IC_ +#undef IC2IntFlag + +int main(void) +{ + // initialize the device + SYSTEM_Initialize(); + LED_on(); //LED On when awake + Register_defaults(); + IC1_Start(); + IC2_Start(); + IC3_Start(); + //TMR3_Stop();//Timer is started on first edge from HBA + //__builtin_disable_interrupts(); + //SPI1CON1Lbits.SPIEN=0; + SPI1CON1Lbits.DISSDO=1; //Disable output pin for SPI + SPI2CON1Lbits.DISSDO=1; //Disable output pin for SPI + SPI3CON1Lbits.DISSDO=1; //Disable output pin for SPI + _LATA1=1; + _LATB10=1; + _LATB15=1; //SPI pins high = 0V output + //SPI1BUFL=~0x00; + + HBA1_state=HBA_STATE_IDLE; + while (1) + { + if ((++cnt==0) && (HBA1_state==HBA_STATE_IDLE)) GoToSleep(); //go to sleep //cnt reset each time a characters is TX or RX, or I2C interrupt + //Handle I2C + if (I2C_interrupt) {Handle_I2C();cnt=0;} + if ((I2Cstate==S_SLAVE_RECEIVE_MODE) && (I2C1STATbits.P==1)) { + I2C_packet(); + I2Cstate=S_SLAVE_IDLE; + } + HBA1_mainloop(); + HBA2_mainloop(); + HBA3_mainloop(); + } + return 1; +} +/** + End of File +*/ + +//MCC I2C setup: registes=20,12,8300,0,3,0,0 +//MCC I2C setup: registes=40,12,8300,0,3,0,0 (DISSLW,SMEN) \ No newline at end of file diff --git a/mainloop.c b/mainloop.c new file mode 100644 index 0000000..78beffb --- /dev/null +++ b/mainloop.c @@ -0,0 +1,65 @@ + + +inline void HBA_(Handle_IC_Capture)() +{ + HBA_(IC_previous)=TMR3; + if (HBA_(state)==HBA_STATE_RX) {while (IC_(CON1bits).ICBNE) HBA_(RX_edge)(IC_(_CaptureDataRead)());} + else { + HBA_(IC_previous)=TMR3; + HBA_(state)=HBA_STATE_RX; + HBA_(decode_start)(); + } +} +inline void HBA_(mainloop)() +{ + switch (HBA_(state)) { + case HBA_STATE_IDLE: + if (HBA_(TX_waiting)()) HBA_(state)=HBA_STATE_TX; + break; + case HBA_STATE_TX: + if (SPI_(STATLbits).SPITBF) break; //Do nothing until finished transmitting character + cnt=0; + if (HBA_(TX_waiting)()) //If we have more to transmit: + { if (SPI_(CON1Lbits).DISSDO==1) SPI_(CON1Lbits).DISSDO=0; //Enable output pin for SPI + SPI_(BUFL) = ~(HBA_(TX_next)()); + } else { //If shift register empty, go to waiting state + HBA_(state)=HBA_STATE_WAIT; + HBA_(IC_previous)=TMR3; + //IC1_previous=IC1_CaptureDataRead() + //IC1_Start(); + if (IC_(CON1bits).ICBNE) IC_(_CaptureDataRead)(); //clear buffer + if (IC2IntFlag) IC2IntFlag=0; //clear interupt flag + } + break; + case HBA_STATE_WAIT: //Wait until we have a edge or a time-out + cnt=0; + if (IC2IntFlag) { + IC2IntFlag=0; + HBA_(Handle_IC_Capture)(); //State change to RX + break; + } +// if ((TMR3-IC1_previous>Get_TXRX_Timeout()) && (TMR3-IC1_previous<0xffff-Get_TXRX_Timeout())) { +// if ((TMR3-IC1_previous>Get_TXRX_Timeout())) { + if (((TMR3-HBA_(IC_previous)))>Get_TXRX_Timeout()) { + if (HBA_RX_Mode()==2) if (HBA_(I2CReg_waiting)()) HBA_(start_TX)(); + //IC1_Stop(); + HBA_(state)=HBA_STATE_IDLE; + } + break; + case HBA_STATE_RX: //Process edges until we have a time-out + cnt=0; + if (IC2IntFlag) { + IC2IntFlag=0; + HBA_(Handle_IC_Capture)(); + cnt=0; + break;} +// if ((TMR3-IC1_previous>Get_RX_Timeout()) && (TMR3-IC1_previous<0xffff-Get_RX_Timeout())) { + if (TMR3-HBA_(IC_previous)>Get_RX_Timeout()) { + HBA_(RX_finished)(); + if (HBA_RX_Mode()==2) {HBA_(I2CReg_decode_responce)();if (HBA_(I2CReg_waiting)()) HBA_(start_TX)();} + HBA_(state)=HBA_STATE_IDLE; + //IC1_Stop(); + } + break; + } +} diff --git a/mcc_generated_files/clock.c b/mcc_generated_files/clock.c new file mode 100644 index 0000000..b9c17f9 --- /dev/null +++ b/mcc_generated_files/clock.c @@ -0,0 +1,86 @@ +/** + @Generated PIC24 / dsPIC33 / PIC32MM MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + clock.c + + @Summary: + This is the clock.c file generated using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This header file provides implementations for driver APIs for all modules selected in the GUI. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#include <stdint.h> +#include "xc.h" +#include "clock.h" + +void CLOCK_Initialize(void) +{ + // CPDIV 1:1; PLLEN disabled; DOZE 1:8; RCDIV FRC; DOZEN disabled; ROI disabled; + CLKDIV = 0x3000; + // STOR disabled; STORPOL Interrupt when STOR is 1; STSIDL disabled; STLPOL Interrupt when STLOCK is 1; STLOCK disabled; STSRC SOSC; STEN disabled; TUN Center frequency; + OSCTUN = 0x00; + // ROEN disabled; ROSWEN disabled; ROSEL FOSC; ROOUT disabled; ROSIDL disabled; ROSLP disabled; + REFOCONL = 0x00; + // RODIV 0; + REFOCONH = 0x00; + // DCOTUN 0; + DCOTUN = 0x00; + // DCOFSEL 8; DCOEN disabled; + DCOCON = 0x700; + // DIV 0; + OSCDIV = 0x00; + // TRIM 0; + OSCFDIV = 0x00; + // AD1MD enabled; T3MD enabled; T1MD enabled; U2MD enabled; T2MD enabled; U1MD enabled; SPI2MD enabled; SPI1MD enabled; I2C1MD enabled; + PMD1 = 0x00; + // IC3MD enabled; OC1MD enabled; IC2MD enabled; OC2MD enabled; IC1MD enabled; OC3MD enabled; + PMD2 = 0x00; + // PMPMD enabled; RTCCMD enabled; CMPMD enabled; CRCMD enabled; I2C2MD enabled; + PMD3 = 0x00; + // CTMUMD enabled; REFOMD enabled; LVDMD enabled; + PMD4 = 0x00; + // CCP2MD enabled; CCP1MD enabled; CCP4MD enabled; CCP3MD enabled; CCP5MD enabled; + PMD5 = 0x00; + // SPI3MD enabled; + PMD6 = 0x00; + // DMA1MD enabled; DMA0MD enabled; + PMD7 = 0x00; + // CLC1MD enabled; CLC2MD enabled; + PMD8 = 0x00; + // CF no clock failure; NOSC FRC; SOSCEN disabled; POSCEN disabled; CLKLOCK unlocked; OSWEN Switch is Complete; IOLOCK not-active; + __builtin_write_OSCCONH((uint8_t) (0x00)); + __builtin_write_OSCCONL((uint8_t) (0x00)); +} diff --git a/mcc_generated_files/clock.h b/mcc_generated_files/clock.h new file mode 100644 index 0000000..ac5fed6 --- /dev/null +++ b/mcc_generated_files/clock.h @@ -0,0 +1,80 @@ +/** + @Generated PIC24 / dsPIC33 / PIC32MM MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + clock.h + + @Summary: + This is the clock.h file generated using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This header file provides implementations for driver APIs for all modules selected in the GUI. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef CLOCK_H +#define CLOCK_H + +/** + Section: Included Files +*/ + +#include <stdbool.h> + +#ifndef _XTAL_FREQ +#define _XTAL_FREQ 8000000UL +#endif + +#define CLOCK_SystemFrequencyGet() (8000000UL) + +#define CLOCK_PeripheralFrequencyGet() (CLOCK_SystemFrequencyGet() / 2) + +#define CLOCK_InstructionFrequencyGet() (CLOCK_SystemFrequencyGet() / 2) +/** + * @Param + none + * @Returns + none + * @Description + Initializes the oscillator to the default states configured in the + * MCC GUI + * @Example + CLOCK_Initialize(void); + */ +void CLOCK_Initialize(void); + + +#endif /* CLOCK_H */ +/** + End of File +*/ \ No newline at end of file diff --git a/mcc_generated_files/cmp1.c b/mcc_generated_files/cmp1.c new file mode 100644 index 0000000..9ec08a6 --- /dev/null +++ b/mcc_generated_files/cmp1.c @@ -0,0 +1,103 @@ + +/** + CMP1 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + cmp1.c + + @Summary + This is the generated driver implementation file for the CMP1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides implementations for driver APIs for CMP1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "cmp1.h" + +/** + Section: Driver Interface +*/ + +void CMP1_Initialize(void) +{ + + // CMIDL disabled; + CMSTAT = 0x00; + // CON enabled; CPOL Inverted; EVPOL Disabled; COE enabled; CCH C1IND; CREF CVREF; CEVT disabled; + CM1CON = 0xE012 & ~(0x8000); + + + CMP1_Enable(); +} + +bool CMP1_OutputStatusGet(void) +{ + return (CM1CONbits.COUT); +} +bool CMP1_EventStatusGet(void) +{ + return (CM1CONbits.CEVT); +} +void CMP1_EventStatusReset(void) +{ + CM1CONbits.CEVT = 0; +} + +void __attribute__ ((weak)) CMP1_CallBack(void) +{ + // Add your custom callback code here +} + +void CMP1_Tasks ( void ) +{ + if(IFS1bits.CMIF) + { + // CMP1 callback function + CMP1_CallBack(); + + // Clear the CEVT bit to enable further interrupts + CMP1_EventStatusReset(); + + // clear the CMP1 interrupt flag + IFS1bits.CMIF = 0; + } +} + +/** + End of File +*/ diff --git a/mcc_generated_files/cmp1.h b/mcc_generated_files/cmp1.h new file mode 100644 index 0000000..1def086 --- /dev/null +++ b/mcc_generated_files/cmp1.h @@ -0,0 +1,213 @@ +/** + CMP1 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + cmp1.h + + @Summary + This is the generated header file for the CMP1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for CMP1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _CMP1_H +#define _CMP1_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdbool.h> +#include <stdint.h> +#include <stdlib.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + @Summary + This function initializes Comparator instance : 1 + + @Description + This routine initializes the Comparator driver instance for : 1, + making it ready for clients to open and use it. It also initializes any + internal data structures. + + @Param + None. + + @Returns + None + + @Comment + +*/ +void CMP1_Initialize(void); + +/** + @Summary + This function returns the output of the comparator + + @Description + This routine returns the output of the comparator. It returns a bool which + is the output of the comparator. + + @Param + None. + + @Returns + None + +*/ +bool CMP1_OutputStatusGet(void); + + +/** + @Summary + This function returns the if the comparator event has occurred or not + + @Description + This routine returns true if the comparator event has occurred. It returns false + if the comparator event has not occurred yet. + + @Param + None. + + @Returns + bool. + +*/ +bool CMP1_EventStatusGet(void); + +/** + @Summary + This function resets the event status bit of the comparator. + + @Description + This routine resets the event status bit of the comparator after the comparator + event has occurred. + + @Param + None. + + @Returns + bool. + +*/ +void CMP1_EventStatusReset(void); + +/** + @Summary + Callback for CMP1. + + @Description + This routine is callback for CMP1 + + @Param + None. + + @Returns + None + + @Example + Refer to CMP1_Initialize(); for an example +*/ +void CMP1_CallBack(void); + +/** + @Summary + Polled implementation + + @Description + This routine is used to implement the tasks for polled implementations. + + @Preconditions + CMP1_Initialize() function should have been + called before calling this function. + + @Returns + None + + @Param + None + + @Example + Refer to CMP1_Initialize(); for an example + +*/ +void CMP1_Tasks(void); + +/****************************************************************************** +* +* Function: CMP1_Enable +* Description: Enables the CMP module +* +* Parameters: None +* Return Value: None +******************************************************************************/ +inline static void CMP1_Enable(void) +{ + CM1CONbits.CON = 1; +} + +/****************************************************************************** +* +* Function: CMP1_Disable +* Description: Disables the CMP module +* +* Parameters: None +* Return Value: None +******************************************************************************/ +inline static void CMP1_Disable(void) +{ + CM1CONbits.CON = 0; +} + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_CMP1_H + +/** + End of File +*/ diff --git a/mcc_generated_files/cmp2.c b/mcc_generated_files/cmp2.c new file mode 100644 index 0000000..39967a2 --- /dev/null +++ b/mcc_generated_files/cmp2.c @@ -0,0 +1,103 @@ + +/** + CMP2 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + cmp2.c + + @Summary + This is the generated driver implementation file for the CMP2 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides implementations for driver APIs for CMP2. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "cmp2.h" + +/** + Section: Driver Interface +*/ + +void CMP2_Initialize(void) +{ + + // CMIDL disabled; + CMSTAT = 0x00; + // CON enabled; CPOL Inverted; EVPOL Disabled; COE enabled; CCH C2INC; CREF CVREF; CEVT disabled; + CM2CON = 0xE011 & ~(0x8000); + + + CMP2_Enable(); +} + +bool CMP2_OutputStatusGet(void) +{ + return (CM2CONbits.COUT); +} +bool CMP2_EventStatusGet(void) +{ + return (CM2CONbits.CEVT); +} +void CMP2_EventStatusReset(void) +{ + CM2CONbits.CEVT = 0; +} + +void __attribute__ ((weak)) CMP2_CallBack(void) +{ + // Add your custom callback code here +} + +void CMP2_Tasks ( void ) +{ + if(IFS1bits.CMIF) + { + // CMP2 callback function + CMP2_CallBack(); + + // Clear the CEVT bit to enable further interrupts + CMP2_EventStatusReset(); + + // clear the CMP2 interrupt flag + IFS1bits.CMIF = 0; + } +} + +/** + End of File +*/ diff --git a/mcc_generated_files/cmp2.h b/mcc_generated_files/cmp2.h new file mode 100644 index 0000000..05b4b10 --- /dev/null +++ b/mcc_generated_files/cmp2.h @@ -0,0 +1,213 @@ +/** + CMP2 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + cmp2.h + + @Summary + This is the generated header file for the CMP2 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for CMP2. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _CMP2_H +#define _CMP2_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdbool.h> +#include <stdint.h> +#include <stdlib.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + @Summary + This function initializes Comparator instance : 2 + + @Description + This routine initializes the Comparator driver instance for : 2, + making it ready for clients to open and use it. It also initializes any + internal data structures. + + @Param + None. + + @Returns + None + + @Comment + +*/ +void CMP2_Initialize(void); + +/** + @Summary + This function returns the output of the comparator + + @Description + This routine returns the output of the comparator. It returns a bool which + is the output of the comparator. + + @Param + None. + + @Returns + None + +*/ +bool CMP2_OutputStatusGet(void); + + +/** + @Summary + This function returns the if the comparator event has occurred or not + + @Description + This routine returns true if the comparator event has occurred. It returns false + if the comparator event has not occurred yet. + + @Param + None. + + @Returns + bool. + +*/ +bool CMP2_EventStatusGet(void); + +/** + @Summary + This function resets the event status bit of the comparator. + + @Description + This routine resets the event status bit of the comparator after the comparator + event has occurred. + + @Param + None. + + @Returns + bool. + +*/ +void CMP2_EventStatusReset(void); + +/** + @Summary + Callback for CMP2. + + @Description + This routine is callback for CMP2 + + @Param + None. + + @Returns + None + + @Example + Refer to CMP2_Initialize(); for an example +*/ +void CMP2_CallBack(void); + +/** + @Summary + Polled implementation + + @Description + This routine is used to implement the tasks for polled implementations. + + @Preconditions + CMP2_Initialize() function should have been + called before calling this function. + + @Returns + None + + @Param + None + + @Example + Refer to CMP2_Initialize(); for an example + +*/ +void CMP2_Tasks(void); + +/****************************************************************************** +* +* Function: CMP2_Enable +* Description: Enables the CMP module +* +* Parameters: None +* Return Value: None +******************************************************************************/ +inline static void CMP2_Enable(void) +{ + CM2CONbits.CON = 1; +} + +/****************************************************************************** +* +* Function: CMP2_Disable +* Description: Disables the CMP module +* +* Parameters: None +* Return Value: None +******************************************************************************/ +inline static void CMP2_Disable(void) +{ + CM2CONbits.CON = 0; +} + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_CMP2_H + +/** + End of File +*/ diff --git a/mcc_generated_files/cmp3.c b/mcc_generated_files/cmp3.c new file mode 100644 index 0000000..82203a4 --- /dev/null +++ b/mcc_generated_files/cmp3.c @@ -0,0 +1,103 @@ + +/** + CMP3 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + cmp3.c + + @Summary + This is the generated driver implementation file for the CMP3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides implementations for driver APIs for CMP3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "cmp3.h" + +/** + Section: Driver Interface +*/ + +void CMP3_Initialize(void) +{ + + // CMIDL disabled; + CMSTAT = 0x00; + // CON enabled; CPOL Inverted; EVPOL Disabled; COE enabled; CCH C3INB; CREF CVREF; CEVT disabled; + CM3CON = 0xE010 & ~(0x8000); + + + CMP3_Enable(); +} + +bool CMP3_OutputStatusGet(void) +{ + return (CM3CONbits.COUT); +} +bool CMP3_EventStatusGet(void) +{ + return (CM3CONbits.CEVT); +} +void CMP3_EventStatusReset(void) +{ + CM3CONbits.CEVT = 0; +} + +void __attribute__ ((weak)) CMP3_CallBack(void) +{ + // Add your custom callback code here +} + +void CMP3_Tasks ( void ) +{ + if(IFS1bits.CMIF) + { + // CMP3 callback function + CMP3_CallBack(); + + // Clear the CEVT bit to enable further interrupts + CMP3_EventStatusReset(); + + // clear the CMP3 interrupt flag + IFS1bits.CMIF = 0; + } +} + +/** + End of File +*/ diff --git a/mcc_generated_files/cmp3.h b/mcc_generated_files/cmp3.h new file mode 100644 index 0000000..106bd5d --- /dev/null +++ b/mcc_generated_files/cmp3.h @@ -0,0 +1,213 @@ +/** + CMP3 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + cmp3.h + + @Summary + This is the generated header file for the CMP3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for CMP3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _CMP3_H +#define _CMP3_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdbool.h> +#include <stdint.h> +#include <stdlib.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + @Summary + This function initializes Comparator instance : 3 + + @Description + This routine initializes the Comparator driver instance for : 3, + making it ready for clients to open and use it. It also initializes any + internal data structures. + + @Param + None. + + @Returns + None + + @Comment + +*/ +void CMP3_Initialize(void); + +/** + @Summary + This function returns the output of the comparator + + @Description + This routine returns the output of the comparator. It returns a bool which + is the output of the comparator. + + @Param + None. + + @Returns + None + +*/ +bool CMP3_OutputStatusGet(void); + + +/** + @Summary + This function returns the if the comparator event has occurred or not + + @Description + This routine returns true if the comparator event has occurred. It returns false + if the comparator event has not occurred yet. + + @Param + None. + + @Returns + bool. + +*/ +bool CMP3_EventStatusGet(void); + +/** + @Summary + This function resets the event status bit of the comparator. + + @Description + This routine resets the event status bit of the comparator after the comparator + event has occurred. + + @Param + None. + + @Returns + bool. + +*/ +void CMP3_EventStatusReset(void); + +/** + @Summary + Callback for CMP3. + + @Description + This routine is callback for CMP3 + + @Param + None. + + @Returns + None + + @Example + Refer to CMP3_Initialize(); for an example +*/ +void CMP3_CallBack(void); + +/** + @Summary + Polled implementation + + @Description + This routine is used to implement the tasks for polled implementations. + + @Preconditions + CMP3_Initialize() function should have been + called before calling this function. + + @Returns + None + + @Param + None + + @Example + Refer to CMP3_Initialize(); for an example + +*/ +void CMP3_Tasks(void); + +/****************************************************************************** +* +* Function: CMP3_Enable +* Description: Enables the CMP module +* +* Parameters: None +* Return Value: None +******************************************************************************/ +inline static void CMP3_Enable(void) +{ + CM3CONbits.CON = 1; +} + +/****************************************************************************** +* +* Function: CMP3_Disable +* Description: Disables the CMP module +* +* Parameters: None +* Return Value: None +******************************************************************************/ +inline static void CMP3_Disable(void) +{ + CM3CONbits.CON = 0; +} + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_CMP3_H + +/** + End of File +*/ diff --git a/mcc_generated_files/cvr.c b/mcc_generated_files/cvr.c new file mode 100644 index 0000000..83df9ea --- /dev/null +++ b/mcc_generated_files/cvr.c @@ -0,0 +1,66 @@ + +/** + CVR Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + cvr.c + + @Summary + This is the generated driver implementation file for the CVR driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides implementations for driver APIs for CVR. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "cvr.h" + +/** + Section: Driver Interface +*/ + +void CVR_Initialize(void) +{ + // CVREN Powered On; CVREFP CVR; CVRSS AVDD ? AVSS; CVREFM Band gap voltage; CVROE disabled; CVR 8; + CVRCON = 0x8C; + // VBGEN2 disabled; + ANCFG |= 0x00; +} + +/** + End of File +*/ diff --git a/mcc_generated_files/cvr.h b/mcc_generated_files/cvr.h new file mode 100644 index 0000000..45bf2ab --- /dev/null +++ b/mcc_generated_files/cvr.h @@ -0,0 +1,95 @@ + +/** + CVR Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + cvr.h + + @Summary + This is the generated header file for the CVR driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for CVR. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _CVR_H +#define _CVR_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdbool.h> +#include <stdint.h> +#include <stdlib.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + @Summary + This function initializes CVR + + @Description + This routine initializes the CVR driver index, making it + ready for clients to open and use it. It also initializes any internal data + structures. + + @Param + None. + + @Returns + None + + @Comment + +*/ +void CVR_Initialize(void); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_CVR_H + +/** + End of File +*/ diff --git a/mcc_generated_files/i2c1.c b/mcc_generated_files/i2c1.c new file mode 100644 index 0000000..53a7818 --- /dev/null +++ b/mcc_generated_files/i2c1.c @@ -0,0 +1,319 @@ + +/** + I2C1 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + i2c1.c + + @Summary + This is the generated header file for the i2c1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for i2c1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.166.1 + Device : PIC24FJ128GA204 + + The generated drivers are tested against the following: + Compiler : XC16 v1.41 + MPLAB : MPLAB X v5.30 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#include "i2c1.h" +//#include "mcc_generated_files/pin_manager.h" +/** + Section: Data Types +*/ + +/** + I2C Slave Driver State Enumeration + + @Summary + Defines the different states of the i2c slave. + + @Description + This defines the different states that the i2c slave + used to process transactions on the i2c bus. +*/ + + +/** + Section: Macro Definitions +*/ +/* defined for I2C1 */ +#define I2C1_TRANSMIT_REG I2C1TRN // Defines the transmit register used to send data. +#define I2C1_RECEIVE_REG I2C1RCV // Defines the receive register used to receive data. + +#define I2C1_MASK_REG I2C1MSK // Defines the address mask register. +#define I2C1_ADDRESS_REG I2C1ADD // Defines the address register. + +// The following control bits are used in the I2C state machine to manage +// the I2C module and determine next states. +#define I2C1_GENERAL_CALL_ENABLE_BIT I2C1CONLbits.GCEN // I2C General Call enable control bit. +#define I2C1_10_BIT_ADDRESS_ENABLE_BIT I2C1CONLbits.A10M // I2C Address Mode (7 or 10 bit address) control bit. +#define I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT I2C1CONLbits.SCLREL // I2C clock stretch/release control bit. +#define I2C1_ENABLE I2C1CONLbits.I2CEN // I2C General Call enable control bit. + +// The following status bits are used in the I2C state machine to determine +// the next states. + +#define I2C1_READ_NOT_WRITE_STATUS_BIT I2C1STATbits.R_W // I2C current transaction read/write status bit. +#define I2C1_DATA_NOT_ADDRESS_STATUS_BIT I2C1STATbits.D_A // I2C last byte receive was data/address status bit. +#define I2C1_RECEIVE_OVERFLOW_STATUS_BIT I2C1STATbits.I2COV // I2C receive buffer overflow status bit. +#define I2C1_GENERAL_CALL_ADDRESS_STATUS_BIT I2C1STATbits.GCSTAT // I2C General Call status bit. +#define I2C1_ACKNOWLEDGE_STATUS_BIT I2C1STATbits.ACKSTAT // I2C ACK status bit. +#define I2C1_STOP_STATUS_BIT I2C1STATbits.P //Stop bit + +#define EMULATE_EEPROM_SIZE 64 +/** + Section: Local Functions +*/ + +inline void __attribute__ ((always_inline)) I2C1_TransmitProcess(void); +inline void __attribute__ ((always_inline)) I2C1_ReceiveProcess(void); + +/** + Section: Local Variables +*/ +uint8_t I2C_length; +uint8_t I2C_address; +uint8_t I2C_data[64]; + +inline uint8_t* I2C_Buffer(void) {return I2C_data;} +inline uint8_t I2C_Buffer_Length(void) {return I2C_length;} +inline uint8_t I2C_Address(void) {return I2C_address;} + +static I2C_SLAVE_STATES i2c1_slave_state; +//static uint8_t *p_i2c1_write_pointer; +//static uint8_t *p_i2c1_read_pointer; + +/** + Prototype: void I2C1_Initialize(void) + Input: none + Output: none + Description: I2C1_Initialize is an + initialization routine that takes inputs from the GUI. + Comment: + Usage: I2C1_Initialize(); +*/ +void I2C1_Initialize(void) +{ + + // initialize the hardware + // ACKEN disabled; STRICT disabled; STREN disabled; GCEN disabled; SMEN enabled; DISSLW disabled; I2CSIDL disabled; ACKDT Sends ACK; SCLREL Holds; RSEN disabled; A10M 7 Bit; PEN disabled; RCEN disabled; SEN disabled; I2CEN enabled; + I2C1CONL = 0x8300; +// I2C1CONL = 0x8000; + // BCL disabled; D_nA disabled; R_nW disabled; P disabled; S disabled; I2COV disabled; IWCOL disabled; + I2C1STAT = 0x00; + // ADD 32; + I2C1_SlaveAddressSet(0x40); + // MSK 7; + I2C1_SlaveAddressMaskSet(0x03); + + // make sure this is set first + i2c1_slave_state = S_SLAVE_IDLE; + +// I2C1_ReadPointerSet(NULL); +// I2C1_WritePointerSet(NULL); + + /* SI2C1 - I2C1 Slave Events */ + // clear the master interrupt flag + IFS1bits.SI2C1IF = 0; + // enable the master interrupt + //IEC1bits.SI2C1IE = 1; + +} + + +uint8_t I2C_tx_cnt; + +void I2C_Send(uint8_t len){ + I2C_length=len; + I2C1_TRANSMIT_REG = I2C_data[I2C_tx_cnt++]; + if (I2C_tx_cnt>=I2C_length) I2C_tx_cnt=0; + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; +} + +void __attribute__ ( ( interrupt, no_auto_psv ) ) _SI2C1Interrupt ( void ) +{ +//_LATA0=1; +IEC1bits.SI2C1IE = 0; +IFS1bits.SI2C1IF = 1; +} +I2C_SLAVE_STATES SI2C1Interrupt ( void ) +{ + + //static bool prior_address_match = false; + //static bool not_busy = true; + uint8_t dummy; + + // NOTE: The slave driver will always acknowledge + // any address match. + IFS1bits.SI2C1IF = 0; + + switch (i2c1_slave_state) + { + case S_SLAVE_IDLE: + case S_SLAVE_RECEIVE_MODE: + if (I2C1_DATA_NOT_ADDRESS_STATUS_BIT == 0) { + if (I2C1_READ_NOT_WRITE_STATUS_BIT == 0) //Write or Read + { + + I2C_length=0; + I2C_address=I2C1_RECEIVE_REG>>1; + i2c1_slave_state = S_SLAVE_RECEIVE_MODE; + } + else + { + I2C_address = I2C1_RECEIVE_REG>>1; + i2c1_slave_state = S_SLAVE_TRANSMIT_MODE; + I2C_tx_cnt=0; + IFS1bits.SI2C1IF = 1; + return I2C_EVENT_TX_REQUEST; //Main program must follow with TX + } + + } + //if (i2c1_slave_state == S_SLAVE_RECEIVE_MODE) { + if (I2C1_DATA_NOT_ADDRESS_STATUS_BIT == 1) + { + // check if we are overflowing the receive buffer + if (I2C1_RECEIVE_OVERFLOW_STATUS_BIT != 1) + { + I2C_data[I2C_length++]=I2C1_RECEIVE_REG; + } + else + { + // overflow detected! + I2C_data[I2C_length++]=I2C1_RECEIVE_REG; + I2C1_RECEIVE_OVERFLOW_STATUS_BIT = 0; + } + } + if (I2C1_STOP_STATUS_BIT==1) { + i2c1_slave_state = S_SLAVE_IDLE; + return I2C_EVENT_RX; + } + //} + break; + case S_SLAVE_TRANSMIT_MODE: + if (I2C1_ACKNOWLEDGE_STATUS_BIT == 0) + { + // prepare next data + //I2C1_StatusCallback(I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED); + + // transmit more data + I2C1_TRANSMIT_REG = I2C_data[I2C_tx_cnt++]; + if (I2C_tx_cnt>=I2C_length) I2C_tx_cnt=0; + // set the SCL clock to be released + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + + } + else //if (I2C1_ACKNOWLEDGE_STATUS_BIT == 1) + { + // no more data to be sent so we go to idle state + i2c1_slave_state = S_SLAVE_IDLE; + } + break; + + + default: + // should never happen, if we ever get here stay here forever + while(1); + i2c1_slave_state = S_SLAVE_IDLE; + I2C1_ENABLE=0; + I2C1_ENABLE=1; + break; + } + + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + + // clear the slave interrupt flag + return i2c1_slave_state; +} +/* +void I2C1_ReadPointerSet(uint8_t *p) +{ + p_i2c1_read_pointer = p; +} + +void I2C1_WritePointerSet(uint8_t *p) +{ + p_i2c1_write_pointer = p; +} + +uint8_t *I2C1_ReadPointerGet(void) +{ + return (p_i2c1_read_pointer); +} + +uint8_t *I2C1_WritePointerGet(void) +{ + return (p_i2c1_write_pointer); +} +*/ +void I2C1_SlaveAddressMaskSet( + uint16_t mask) +{ + I2C1_MASK_REG = mask; +} + +void I2C1_SlaveAddressSet( + uint16_t address) +{ + I2C1_10_BIT_ADDRESS_ENABLE_BIT = false; + i2c1_slave_state = S_SLAVE_IDLE; + I2C1_ADDRESS_REG = address; +} +/* +inline void __attribute__ ((always_inline)) I2C1_TransmitProcess(void) +{ + // get the data to be transmitted + + // sanity check (to avoid stress) + if (p_i2c1_read_pointer == NULL) + return; + + I2C1_TRANSMIT_REG = *p_i2c1_read_pointer; + + // set the SCL clock to be released + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + +} + +inline void __attribute__ ((always_inline)) I2C1_ReceiveProcess(void) +{ + // store the received data + + // sanity check (to avoid stress) + if (p_i2c1_write_pointer == NULL) + return; + + *p_i2c1_write_pointer = I2C1_RECEIVE_REG; + +} + +*/ diff --git a/mcc_generated_files/i2c1.h b/mcc_generated_files/i2c1.h new file mode 100644 index 0000000..4c070d2 --- /dev/null +++ b/mcc_generated_files/i2c1.h @@ -0,0 +1,122 @@ + +/** + I2C1 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + i2c1.h + + @Summary + This is the generated header file for the I2C1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for I2C1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.166.1 + Device : PIC24FJ128GA204 + + The generated drivers are tested against the following: + Compiler : XC16 v1.41 + MPLAB : MPLAB X v5.30 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _I2C1_H +#define _I2C1_H + +#include <stdint.h> +#include <stdbool.h> +#include <stddef.h> +#include <xc.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +typedef enum +{ + S_SLAVE_IDLE, + S_SLAVE_RECEIVE_MODE, + S_SLAVE_TRANSMIT_MODE, + S_SLAVE_LOW_BYTE_ADDRESS_DETECT, + I2C_EVENT_TX_REQUEST, + I2C_EVENT_RX + +} I2C_SLAVE_STATES; + +#define I2C_interrupt IFS1bits.SI2C1IF + + + +#define I2C1_SLAVE_DEFAULT_ADDRESS 99 + +uint8_t* I2C_Buffer(void); +uint8_t I2C_Buffer_Length(void); +uint8_t I2C_Address(void); + + +void I2C1_Initialize(void); +void I2C_Send(uint8_t len); +void I2C1_SlaveAddressMaskSet( + uint16_t mask); + + + +void I2C1_SlaveAddressSet( + uint16_t address); + + +/* + +void I2C1_ReadPointerSet(uint8_t *p); + + + +void I2C1_WritePointerSet(uint8_t *p); + + + +uint8_t *I2C1_ReadPointerGet(void); + + + +uint8_t *I2C1_WritePointerGet(void); +*/ + + +I2C_SLAVE_STATES SI2C1Interrupt ( void ); + +//bool I2C1_StatusCallback(I2C1_SLAVE_DRIVER_STATUS status); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif // _I2C1_H \ No newline at end of file diff --git a/mcc_generated_files/i2c1_auto.c b/mcc_generated_files/i2c1_auto.c new file mode 100644 index 0000000..4bcdf69 --- /dev/null +++ b/mcc_generated_files/i2c1_auto.c @@ -0,0 +1,556 @@ + +/** + I2C1 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + i2c1.c + + @Summary + This is the generated header file for the i2c1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for i2c1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#include "i2c1.h" + +/** + Section: Data Types +*/ + +/** + I2C Slave Driver State Enumeration + + @Summary + Defines the different states of the i2c slave. + + @Description + This defines the different states that the i2c slave + used to process transactions on the i2c bus. +*/ +typedef enum +{ + S_SLAVE_IDLE, + S_SLAVE_RECEIVE_MODE, + S_SLAVE_TRANSMIT_MODE, + S_SLAVE_LOW_BYTE_ADDRESS_DETECT, + +} I2C_SLAVE_STATES; + +/** + Section: Macro Definitions +*/ +/* defined for I2C1 */ +#define I2C1_TRANSMIT_REG I2C1TRN // Defines the transmit register used to send data. +#define I2C1_RECEIVE_REG I2C1RCV // Defines the receive register used to receive data. + +#define I2C1_MASK_REG I2C1MSK // Defines the address mask register. +#define I2C1_ADDRESS_REG I2C1ADD // Defines the address register. + +// The following control bits are used in the I2C state machine to manage +// the I2C module and determine next states. +#define I2C1_GENERAL_CALL_ENABLE_BIT I2C1CONLbits.GCEN // I2C General Call enable control bit. +#define I2C1_10_BIT_ADDRESS_ENABLE_BIT I2C1CONLbits.A10M // I2C Address Mode (7 or 10 bit address) control bit. +#define I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT I2C1CONLbits.SCLREL // I2C clock stretch/release control bit. + +// The following status bits are used in the I2C state machine to determine +// the next states. + +#define I2C1_READ_NOT_WRITE_STATUS_BIT I2C1STATbits.R_W // I2C current transaction read/write status bit. +#define I2C1_DATA_NOT_ADDRESS_STATUS_BIT I2C1STATbits.D_A // I2C last byte receive was data/address status bit. +#define I2C1_RECEIVE_OVERFLOW_STATUS_BIT I2C1STATbits.I2COV // I2C receive buffer overflow status bit. +#define I2C1_GENERAL_CALL_ADDRESS_STATUS_BIT I2C1STATbits.GCSTAT // I2C General Call status bit. +#define I2C1_ACKNOWLEDGE_STATUS_BIT I2C1STATbits.ACKSTAT // I2C ACK status bit. + +#define EMULATE_EEPROM_SIZE 64 +/** + Section: Local Functions +*/ + +inline void __attribute__ ((always_inline)) I2C1_TransmitProcess(void); +inline void __attribute__ ((always_inline)) I2C1_ReceiveProcess(void); + +/** + Section: Local Variables +*/ + +static I2C_SLAVE_STATES i2c1_slave_state; +static uint8_t *p_i2c1_write_pointer; +static uint8_t *p_i2c1_read_pointer; + +/** + Prototype: void I2C1_Initialize(void) + Input: none + Output: none + Description: I2C1_Initialize is an + initialization routine that takes inputs from the GUI. + Comment: + Usage: I2C1_Initialize(); +*/ +void I2C1_Initialize(void) +{ + + // initialize the hardware + // ACKEN disabled; STRICT disabled; STREN disabled; GCEN disabled; SMEN enabled; DISSLW disabled; I2CSIDL disabled; ACKDT Sends ACK; SCLREL Holds; RSEN disabled; A10M 7 Bit; PEN disabled; RCEN disabled; SEN disabled; I2CEN enabled; + I2C1CONL = 0x8300; + // BCL disabled; D_nA disabled; R_nW disabled; P disabled; S disabled; I2COV disabled; IWCOL disabled; + I2C1STAT = 0x00; + // ADD 32; + I2C1_SlaveAddressSet(0x20); + // MSK 3; + I2C1_SlaveAddressMaskSet(0x03); + + // make sure this is set first + i2c1_slave_state = S_SLAVE_IDLE; + + I2C1_ReadPointerSet(NULL); + I2C1_WritePointerSet(NULL); + + /* SI2C1 - I2C1 Slave Events */ + // clear the master interrupt flag + IFS1bits.SI2C1IF = 0; + // enable the master interrupt + IEC1bits.SI2C1IE = 1; + +} + + +void __attribute__ ( ( interrupt, no_auto_psv ) ) _SI2C1Interrupt ( void ) +{ + + static bool prior_address_match = false; + static bool not_busy = true; + uint8_t dummy; + + // NOTE: The slave driver will always acknowledge + // any address match. + + switch (i2c1_slave_state) + { + case S_SLAVE_IDLE: + case S_SLAVE_RECEIVE_MODE: + + /* When at S_SLAVE_RECEIVE_MODE this mode there + will be two types of incoming transactions: + 1. Data sent by master + 2. A restart or start detection + + But from the point of view of the firmware, there is + no difference between S_SLAVE_IDLE and S_SLAVE_RECEIVE_MODE + states, since the types of incoming transactions will be + the same so we share the code here. + */ + + if ( + // case of 7-bit address detected + ( (I2C1_10_BIT_ADDRESS_ENABLE_BIT == 0) && + (I2C1_DATA_NOT_ADDRESS_STATUS_BIT == 0) + ) + || + // case of general address call detected + ( (I2C1_GENERAL_CALL_ENABLE_BIT == 1) && + (I2C1_GENERAL_CALL_ADDRESS_STATUS_BIT == 1) + ) + ) + { + + if (I2C1_READ_NOT_WRITE_STATUS_BIT == 0) + { + // it is a write, go to receive mode + + I2C1_StatusCallback(I2C1_SLAVE_RECEIVE_REQUEST_DETECTED); + + // Receive the data if valid + I2C1_ReceiveProcess(); + i2c1_slave_state = S_SLAVE_RECEIVE_MODE; + } + else + { + // read the receive register only when + // we are ready for the next transaction. + // this one is a dummy read + dummy = I2C1_RECEIVE_REG; + + // it is a read, go to transmit mode + + I2C1_StatusCallback(I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED); + + // during this portion, the master is expecting the + // slave for a reply. So the returned status of + // the callback at this point cannot be used to + // delay the reply if needed. + // In other words, the slave has to reply to the master. + // Therefore, the transmit will be performed. + + I2C1_TransmitProcess(); + i2c1_slave_state = S_SLAVE_TRANSMIT_MODE; + } + + } + + else if + ( + // case of 10-bit high address detected + ( (I2C1_10_BIT_ADDRESS_ENABLE_BIT == 1) && + (I2C1_DATA_NOT_ADDRESS_STATUS_BIT == 0) + ) + ) + { + if (I2C1_READ_NOT_WRITE_STATUS_BIT == 0) + { + // it is the detection of high byte address of + // 10-bit address, go to detection of low byte address + prior_address_match = false; + i2c1_slave_state = S_SLAVE_LOW_BYTE_ADDRESS_DETECT; + + } + else // if (I2C1_READ_NOT_WRITE_STATUS_BIT == 1) + { + if (prior_address_match == true) + { + // it is the detection of high byte + // address of 10-bit address, but the next + // transaction is read transaction (so it + // is a restart). + // set the transmit register with the data + // to transmit then go to transmit mode + + I2C1_StatusCallback(I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED); + + // during this portion, the master is expecting the + // slave for a reply. So the returned status of + // the callback at this point cannot be used to + // delay the reply if needed. + // In other words, the slave has to reply to the master. + // Therefore, the transmit will be performed. + + I2C1_TransmitProcess(); + i2c1_slave_state = S_SLAVE_TRANSMIT_MODE; + } + else + { + // it is the detection of high byte address of + // 10-bit address, but next transaction is a write. + // go to detection of low byte address + prior_address_match = false; + i2c1_slave_state = S_SLAVE_LOW_BYTE_ADDRESS_DETECT; + + } + } + + // dummy read is needed + dummy = I2C1_RECEIVE_REG; + } + + // this if statement is to make sure we only save incoming + // data when we are truly in receiving mode + if (i2c1_slave_state == S_SLAVE_RECEIVE_MODE) + { + // case of data received + if (I2C1_DATA_NOT_ADDRESS_STATUS_BIT == 1) + { + // check if we are overflowing the receive buffer + if (I2C1_RECEIVE_OVERFLOW_STATUS_BIT != 1) + { + I2C1_ReceiveProcess(); + not_busy = I2C1_StatusCallback(I2C1_SLAVE_RECEIVED_DATA_DETECTED); + } + else + { + // overflow detected! + // read the buffer to reset the buffer full flag + // and clear the overflow bit + // then do nothing so the master + // will resend the data + dummy = I2C1_RECEIVE_REG; + I2C1_RECEIVE_OVERFLOW_STATUS_BIT = 0; + } + } + } + + break; + + case S_SLAVE_LOW_BYTE_ADDRESS_DETECT: + // Note that this state will only get + // executed when 10-bit address is set + + // we send receive request but we do not actually know + // if the next one is a data from master since the + // next one can be a restart with a transmit request. + // When that happens, the next state will take care of it. + // This is just the nature of i2c bus protocol. + not_busy = I2C1_StatusCallback(I2C1_SLAVE_10BIT_RECEIVE_REQUEST_DETECTED); + + // set this flag to indicate we have + // full 10-bit address detection + prior_address_match = true; + + if (not_busy) + { + // dummy read is needed + dummy = I2C1_RECEIVE_REG; + } + + i2c1_slave_state = S_SLAVE_RECEIVE_MODE; + + break; + + case S_SLAVE_TRANSMIT_MODE: + + // this is the state where an ACK or NACK is expected + // to occur after the slave has placed data to the + // transmit register. + + // if the transaction was ACK'ed, more data needs to be sent + // if the transaction was NACK'ed then we don't need to send + // more data + if (I2C1_ACKNOWLEDGE_STATUS_BIT == 0) + { + // prepare next data + I2C1_StatusCallback(I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED); + + // transmit more data + I2C1_TransmitProcess(); + + } + else //if (I2C1_ACKNOWLEDGE_STATUS_BIT == 1) + { + // no more data to be sent so we go to idle state + i2c1_slave_state = S_SLAVE_IDLE; + } + break; + + + default: + // should never happen, if we ever get here stay here forever + while(1); + break; + } + + + // clear the slave interrupt flag + IFS1bits.SI2C1IF = 0; + +} + +void I2C1_ReadPointerSet(uint8_t *p) +{ + p_i2c1_read_pointer = p; +} + +void I2C1_WritePointerSet(uint8_t *p) +{ + p_i2c1_write_pointer = p; +} + +uint8_t *I2C1_ReadPointerGet(void) +{ + return (p_i2c1_read_pointer); +} + +uint8_t *I2C1_WritePointerGet(void) +{ + return (p_i2c1_write_pointer); +} + +void I2C1_SlaveAddressMaskSet( + uint16_t mask) +{ + I2C1_MASK_REG = mask; +} + +void I2C1_SlaveAddressSet( + uint16_t address) +{ + if (address > 0x7F) + { + // use 10 bit address + I2C1_10_BIT_ADDRESS_ENABLE_BIT = true; + } + else + { + // use 7 bit address + I2C1_10_BIT_ADDRESS_ENABLE_BIT = false; + } + i2c1_slave_state = S_SLAVE_IDLE; + I2C1_ADDRESS_REG = address; + +} + +inline void __attribute__ ((always_inline)) I2C1_TransmitProcess(void) +{ + // get the data to be transmitted + + // sanity check (to avoid stress) + if (p_i2c1_read_pointer == NULL) + return; + + I2C1_TRANSMIT_REG = *p_i2c1_read_pointer; + + // set the SCL clock to be released + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + +} + +inline void __attribute__ ((always_inline)) I2C1_ReceiveProcess(void) +{ + // store the received data + + // sanity check (to avoid stress) + if (p_i2c1_write_pointer == NULL) + return; + + *p_i2c1_write_pointer = I2C1_RECEIVE_REG; + +} + +/* Note: This is an example of the I2C1_StatusCallback() + implementation. This is an emulated EEPROM Memory + configured to act as a I2C Slave Device. + For specific slave device implementation, remove + or modify this function to the specific slave device + behavior. +*/ + +static uint8_t i2c1_slaveWriteData = 0xAA; + +bool I2C1_StatusCallback(I2C1_SLAVE_DRIVER_STATUS status) +{ + + // this emulates the slave device memory where data written to slave + // is placed and data read from slave is taken + /* + Emulate EEPORM default memory size is 64bytes + + Emulate EEPORM Read/Write Instruction: + -------------------------------------- + Byte Write Instruction: + |Start|slave Addr + w|Ack|AddrHighByte|Ack|AddrLowByte|Ack|data|Nack|Stop| + + Page Write Instruction: + |Start|slave Addr + w|Ack|AddrHighByte|Ack|AddrLowByte|Ack|dataByte n|Ack|...|data Byte n+x|Nack|Stop| + + Byte Read Instruction: + |Start|slave Addr + r|Ack|AddrHighByte|Ack|AddrLowByte|Ack|data|Nack|Stop| + + Page Read Instruction: + |Start|slave Addr + r|Ack|AddrHighByte|Ack|AddrLowByte|Ack|dataByte n|Ack|...|dataByte n+x|Nack|Stop| + */ + + static uint8_t EMULATE_EEPROM_Memory[EMULATE_EEPROM_SIZE] = + { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + }; + + static uint16_t address, addrByteCount; + static bool addressState = true; + + switch (status) + { + case I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED: + // set up the slave driver buffer transmit pointer + I2C1_ReadPointerSet(&EMULATE_EEPROM_Memory[address++]); + if(address >= EMULATE_EEPROM_SIZE) { + address = 0; + } + break; + + case I2C1_SLAVE_RECEIVE_REQUEST_DETECTED: + + addrByteCount = 0; + addressState = true; + + // set up the slave driver buffer receive pointer + I2C1_WritePointerSet(&i2c1_slaveWriteData); + break; + + case I2C1_SLAVE_RECEIVED_DATA_DETECTED: + + if (addressState == true) + { + // get the address of the memory being written + if (addrByteCount == 0) + { + address = (i2c1_slaveWriteData << 8) & 0xFF00; + addrByteCount++; + } + else if (addrByteCount == 1) + { + address = address | i2c1_slaveWriteData; + addrByteCount = 0; + addressState = false; + } + + if(address >= EMULATE_EEPROM_SIZE) { + address = EMULATE_EEPROM_SIZE; + } + } + else // if (addressState == false) + { + // set the memory with the received data + EMULATE_EEPROM_Memory[address++] = i2c1_slaveWriteData; + if(address >= EMULATE_EEPROM_SIZE) { + address = 0; + } + } + + break; + + case I2C1_SLAVE_10BIT_RECEIVE_REQUEST_DETECTED: + + // do something here when 10-bit address is detected + + // 10-bit address is detected + + break; + + default: + break; + + } + + return true; +} + + + + diff --git a/mcc_generated_files/i2c1_auto.h b/mcc_generated_files/i2c1_auto.h new file mode 100644 index 0000000..95e41dd --- /dev/null +++ b/mcc_generated_files/i2c1_auto.h @@ -0,0 +1,490 @@ + +/** + I2C1 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + i2c1.h + + @Summary + This is the generated header file for the I2C1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for I2C1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _I2C1_H +#define _I2C1_H + +#include <stdint.h> +#include <stdbool.h> +#include <stddef.h> +#include <xc.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + I2C Slave Driver Status + + @Summary + Defines the different status that the slave driver has + detected over the i2c bus. + + @Description + This defines the different status that the slave driver has + detected over the i2c bus. The status is passed to the + I2C1_StatusCallback() callback function that is implemented by + the user of the slave driver as a parameter to inform the user + that there was a change in the status of the driver due to + transactions on the i2c bus. User of the slave driver can use these + to manage the read or write buffers. + + */ + +typedef enum +{ + /* This state indicates that the slave driver has detected a transmit request from the master. + The next transaction will be a read transaction. Application should prime the transmit + buffer with the valid data to be sent to the master using the: I2C1_ReadPointerSet() + + */ + I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED, + + /* This state indicates that the slave driver has detected a reception request from the master. + The next transaction will be a write transaction. Application should set up the receive + buffer by setting the location of the receive buffer using the: I2C1_WritePointerSet() + */ + I2C1_SLAVE_RECEIVE_REQUEST_DETECTED, + + /* This state indicates that the slave driver has received data from the master. + Application can use this status to process the received data set up the receive + buffer in anticipation of next reception in case the master sends more data. + See I2C1_SLAVE_RECEIVE_REQUEST_DETECTED. + */ + I2C1_SLAVE_RECEIVED_DATA_DETECTED, + + /* This state indicates that the slave driver has detected the most significant + byte of the 10-bit slave address. Another transaction with the least + significant byte of the 10-bit address with a read/write request will + be detected next. This second detection is automatically done by the + driver which may return one of the following: + a. I2C1_SLAVE_RECEIVE_REQUEST_DETECTED + b. I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED + c. I2C1_SLAVE_10BIT_RECEIVE_REQUEST_DETECTED + a or b is detected depending on the read/write bit of the received + control data. If c is detected next, the master decided to resend + the most significant address. + */ + I2C1_SLAVE_10BIT_RECEIVE_REQUEST_DETECTED, + +} I2C1_SLAVE_DRIVER_STATUS; + +#define I2C1_SLAVE_DEFAULT_ADDRESS 99 + +/** + @Summary + Initializes and enables the i2c slave instance : 1 + + @Description + This routine initializes the i2c slave driver instance for : 1 + index, making it ready for clients to open and use it. + + @Preconditions + None + + @Param + None + + @Returns + None + + @Example + <code> + + uint8_t SlaveReadBuffer; + uint8_t SlaveWriteBuffer; + + // initialize the i2c slave driver + I2C1_Initialize(); + + // set up the slave driver + + // initialize the location of the read buffer + I2C1_ReadPointerSet(SlaveReadBuffer); + // initialize the location of the write buffer + I2C1_WritePointerSet(SlaveWriteBuffer); + + </code> +*/ + +void I2C1_Initialize(void); + + +/** + @Summary + This function sets the slave address mask. + + @Description + This function sets the 10-bit slave address mask to be able to + respond to multiple addresses. This function should be called + after the initialization of the module. + + @Preconditions + None + + @Param + mask - The address mask to be used when filtering + addresses from the i2c master transactions. + + @Returns + None + + @Example + <code> + Refer to I2C1_SlaveAddressSet() for an example + </code> + +*/ + +void I2C1_SlaveAddressMaskSet( + uint16_t mask); + +/** + @Summary + This function sets the slave address. + + @Description + This function sets the 10-bit slave address to be used by the + module when filtering transactions from the i2c masters in the + bus. The function analyzes the given address and decides if + the 10-bit or 7-bit mode will be enabled. Once the function + returns, the given address is set for the slave module. + + This function should be called after the initialization of + the module. + + When changing the slave address the module must be idle. + + @Preconditions + None + + @Param + address - The address to be used to determine if the transaction + is intended for this slave module. + + @Returns + None + + @Example + <code> + // initialize the i2c slave driver + I2C1_Initialize(); + + // set the slave address and address mask if the default + // values set in the initialize is not the desired values. + I2C1_SlaveAddressMaskSet(0x0xF); + I2C1_SlaveAddressSet(0x3C); + + </code> + +*/ + +void I2C1_SlaveAddressSet( + uint16_t address); + + +/** + @Summary + This function sets the read pointer for the slave driver. + + @Description + This function sets the read pointer that the driver will + need to retrieve data that will be transmitted to the master + whenever the master requests a read. + + @Preconditions + None + + @Param + *p - The pointer to the read buffer, that will be used to transmit + data to the requesting i2c master. + + @Returns + None + + @Example + <code> + Refer to I2C1_Initialize() for an example + </code> + +*/ + +void I2C1_ReadPointerSet(uint8_t *p); + +/** + @Summary + This function sets the write pointer for the slave driver. + + @Description + This function sets the write pointer that the driver will + need to save data that will be received from the master + whenever the master requests a write. + + @Preconditions + None + + @Param + *p - The pointer to the read buffer, that will be used to transmit + data to the requesting i2c master. + + @Returns + None + + @Example + <code> + Refer to I2C1_Initialize() for an example + </code> + +*/ + +void I2C1_WritePointerSet(uint8_t *p); + +/** + @Summary + This function returns the current read pointer used by the + slave driver. + + @Description + This function returns the current read pointer used by the + slave driver. As the operation executes, the pointer is + incremented. User of the slave driver can use this function + to check on the current address that the pointer is pointing to. + + @Preconditions + None + + @Param + None + + @Returns + The current pointer used to transmit data to the requesting + i2c master + + @Example + <code> + uint8_t *pReadBuffer; + + pReadBuffer = I2C1_ReadPointerGet(); + </code> + +*/ + +uint8_t *I2C1_ReadPointerGet(void); + +/** + @Summary + This function returns the current write pointer used by the + slave driver. + + @Description + This function returns the current write pointer used by the + slave driver. As the operation executes, the pointer is + incremented. User of the slave driver can use this function + to check on the current address that the pointer is pointing to. + + @Preconditions + None + + @Param + None + + @Returns + The current pointer used to save received data from the requesting + i2c master + + @Example + <code> + uint8_t *pWriteBuffer; + + pWriteBuffer = I2C1_WritePointerGet(); + + </code> + +*/ + +uint8_t *I2C1_WritePointerGet(void); + +/** + @Summary + This application implemented function passes the + status of the i2c slave driver. + + @Description + This application implemented function passes the + status of the i2c slave driver. The status passed + can be used by the application to manage the read and + write buffers. This function is called by the slave + driver everytime there is an event in the i2c bus that caused + an interrupt in the i2c slave module to be asserted. + + The function will return boolean. The value of the return + will determine if the next received byte will be ack'ed or + nack'ed. By doing that, the application can have the + ability to delay incoming transactions. When a false is + returned, the next transactions will be nack'ed forcing the + master to restart the transactions. + + Returning a false will give the application a chance to + prepare for the next transactions (for example: a read + requests from the master) or process the recently received + data. + + @Preconditions + None + + @Param + status - The latest status of the slave driver due + to an event in the i2c bus. + + @Returns + True, if the application is ready for the next transaction. + False, if the application is not ready for the next transaction. + + @Example + <code> + + // Example implementation of the callback + + static uint8_t i2c1_slaveWriteData = 0xAA; + + bool I2C1_StatusCallback(I2C1_SLAVE_DRIVER_STATUS status) + { + + // this emulates the slave device memory where data written to slave + // is placed and data read from slave is taken + static uint8_t EMULATE_EEPROM_Memory[64] = + { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + }; + + static uint16_t address, addrByteCount; + static bool addressState = true; + + switch (status) + { + case I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED: + + // set up the slave driver buffer transmit pointer + I2C1_ReadPointerSet(&EMULATE_EEPROM_Memory[address]); + address++; + + break; + + case I2C1_SLAVE_RECEIVE_REQUEST_DETECTED: + + addrByteCount = 0; + addressState = true; + + // set up the slave driver buffer receive pointer + I2C1_WritePointerSet(&i2c1_slaveWriteData); + + break; + + case I2C1_SLAVE_RECEIVED_DATA_DETECTED: + + if (addressState == true) + { + // get the address of the memory being written + if (addrByteCount == 0) + { + address = (i2c1_slaveWriteData << 8) & 0xFF00; + addrByteCount++; + } + else if (addrByteCount == 1) + { + address = address | i2c1_slaveWriteData; + addrByteCount = 0; + addressState = false; + } + } + else // if (addressState == false) + { + // set the memory with the received data + EMULATE_EEPROM_Memory[address] = i2c1_slaveWriteData; + } + + break; + + case I2C1_SLAVE_10BIT_RECEIVE_REQUEST_DETECTED: + + // do something here when 10-bit address is detected + + // 10-bit address is detected + + break; + + default: + break; + + } + + return true; + } + + </code> + + */ + +#pragma message "I2C1_StatusCallback() is an Application implemented function. If this function is already implemented, you can turn off this message by deleting or commenting out this message." +bool I2C1_StatusCallback(I2C1_SLAVE_DRIVER_STATUS status); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif // _I2C1_H \ No newline at end of file diff --git a/mcc_generated_files/i2c1_cur.c b/mcc_generated_files/i2c1_cur.c new file mode 100644 index 0000000..05ec0e7 --- /dev/null +++ b/mcc_generated_files/i2c1_cur.c @@ -0,0 +1,318 @@ + +/** + I2C1 Generated Driver File + + @Company + Microchip Technology Inc. + + @File Name + i2c1.c + + @Summary + This is the generated header file for the i2c1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for i2c1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.166.1 + Device : PIC24FJ128GA204 + + The generated drivers are tested against the following: + Compiler : XC16 v1.41 + MPLAB : MPLAB X v5.30 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#include "i2c1.h" +//#include "mcc_generated_files/pin_manager.h" +/** + Section: Data Types +*/ + +/** + I2C Slave Driver State Enumeration + + @Summary + Defines the different states of the i2c slave. + + @Description + This defines the different states that the i2c slave + used to process transactions on the i2c bus. +*/ + + +/** + Section: Macro Definitions +*/ +/* defined for I2C1 */ +#define I2C1_TRANSMIT_REG I2C1TRN // Defines the transmit register used to send data. +#define I2C1_RECEIVE_REG I2C1RCV // Defines the receive register used to receive data. + +#define I2C1_MASK_REG I2C1MSK // Defines the address mask register. +#define I2C1_ADDRESS_REG I2C1ADD // Defines the address register. + +// The following control bits are used in the I2C state machine to manage +// the I2C module and determine next states. +#define I2C1_GENERAL_CALL_ENABLE_BIT I2C1CONLbits.GCEN // I2C General Call enable control bit. +#define I2C1_10_BIT_ADDRESS_ENABLE_BIT I2C1CONLbits.A10M // I2C Address Mode (7 or 10 bit address) control bit. +#define I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT I2C1CONLbits.SCLREL // I2C clock stretch/release control bit. + +// The following status bits are used in the I2C state machine to determine +// the next states. + +#define I2C1_READ_NOT_WRITE_STATUS_BIT I2C1STATbits.R_W // I2C current transaction read/write status bit. +#define I2C1_DATA_NOT_ADDRESS_STATUS_BIT I2C1STATbits.D_A // I2C last byte receive was data/address status bit. +#define I2C1_RECEIVE_OVERFLOW_STATUS_BIT I2C1STATbits.I2COV // I2C receive buffer overflow status bit. +#define I2C1_GENERAL_CALL_ADDRESS_STATUS_BIT I2C1STATbits.GCSTAT // I2C General Call status bit. +#define I2C1_ACKNOWLEDGE_STATUS_BIT I2C1STATbits.ACKSTAT // I2C ACK status bit. +#define I2C1_STOP_STATUS_BIT I2C1STATbits.P //Stop bit + +#define EMULATE_EEPROM_SIZE 64 +/** + Section: Local Functions +*/ + +inline void __attribute__ ((always_inline)) I2C1_TransmitProcess(void); +inline void __attribute__ ((always_inline)) I2C1_ReceiveProcess(void); + +/** + Section: Local Variables +*/ +uint8_t I2C_length; +uint8_t I2C_address; +uint8_t I2C_data[64]; + +inline uint8_t* I2C_Buffer(void) {return I2C_data;} +inline uint8_t I2C_Buffer_Length(void) {return I2C_length;} +inline uint8_t I2C_Address(void) {return I2C_address;} + +static I2C_SLAVE_STATES i2c1_slave_state; +//static uint8_t *p_i2c1_write_pointer; +//static uint8_t *p_i2c1_read_pointer; + +/** + Prototype: void I2C1_Initialize(void) + Input: none + Output: none + Description: I2C1_Initialize is an + initialization routine that takes inputs from the GUI. + Comment: + Usage: I2C1_Initialize(); +*/ +void I2C1_Initialize(void) +{ + + // initialize the hardware + // ACKEN disabled; STRICT disabled; STREN disabled; GCEN disabled; SMEN enabled; DISSLW disabled; I2CSIDL disabled; ACKDT Sends ACK; SCLREL Holds; RSEN disabled; A10M 7 Bit; PEN disabled; RCEN disabled; SEN disabled; I2CEN enabled; + I2C1CONL = 0x8300; + // BCL disabled; D_nA disabled; R_nW disabled; P disabled; S disabled; I2COV disabled; IWCOL disabled; + I2C1STAT = 0x00; + // ADD 32; + I2C1_SlaveAddressSet(0x20); + // MSK 7; + I2C1_SlaveAddressMaskSet(0x07); + + // make sure this is set first + i2c1_slave_state = S_SLAVE_IDLE; + +// I2C1_ReadPointerSet(NULL); +// I2C1_WritePointerSet(NULL); + + /* SI2C1 - I2C1 Slave Events */ + // clear the master interrupt flag + IFS1bits.SI2C1IF = 0; + // enable the master interrupt + //IEC1bits.SI2C1IE = 1; + +} + + +uint8_t I2C_tx_cnt; + +void I2C_Send(uint8_t len){ + I2C_length=len; + I2C1_TRANSMIT_REG = I2C_data[I2C_tx_cnt++]; + if (I2C_tx_cnt>=I2C_length) I2C_tx_cnt=0; + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; +} + +I2C_SLAVE_STATES SI2C1Interrupt ( void ) +{ + + //static bool prior_address_match = false; + //static bool not_busy = true; + //uint8_t dummy; + + // NOTE: The slave driver will always acknowledge + // any address match. + IFS1bits.SI2C1IF = 0; + + switch (i2c1_slave_state) + { + case S_SLAVE_IDLE: + case S_SLAVE_RECEIVE_MODE: + if (I2C1_DATA_NOT_ADDRESS_STATUS_BIT== 0) + { + if (I2C1_READ_NOT_WRITE_STATUS_BIT == 0) //Write or Read + { + + I2C_length=0; + I2C_address=I2C1_RECEIVE_REG>>1; + i2c1_slave_state = S_SLAVE_RECEIVE_MODE; + } + else + { + I2C_address = I2C1_RECEIVE_REG>>1; + i2c1_slave_state = S_SLAVE_TRANSMIT_MODE; + I2C_tx_cnt=0; + return I2C_EVENT_TX_REQUEST; //Main program must follow with TX + } + + } + + if (I2C1_DATA_NOT_ADDRESS_STATUS_BIT == 1) + { + // check if we are overflowing the receive buffer + if (I2C1_RECEIVE_OVERFLOW_STATUS_BIT != 1) + { + I2C_data[I2C_length++]=I2C1_RECEIVE_REG; + } + else + { + // overflow detected! + I2C_data[I2C_length++]=I2C1_RECEIVE_REG; + I2C1_RECEIVE_OVERFLOW_STATUS_BIT = 0; + } + } + if (I2C1_STOP_STATUS_BIT==1) { + i2c1_slave_state = S_SLAVE_IDLE; + return I2C_EVENT_RX; + } + break; + + case S_SLAVE_TRANSMIT_MODE: + if (I2C1_ACKNOWLEDGE_STATUS_BIT == 0) + { + // prepare next data + //I2C1_StatusCallback(I2C1_SLAVE_TRANSMIT_REQUEST_DETECTED); + + // transmit more data + I2C1_TRANSMIT_REG = I2C_data[I2C_tx_cnt++]; + if (I2C_tx_cnt>=I2C_length) I2C_tx_cnt=0; + // set the SCL clock to be released + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + + } + else //if (I2C1_ACKNOWLEDGE_STATUS_BIT == 1) + { + // no more data to be sent so we go to idle state + i2c1_slave_state = S_SLAVE_IDLE; + } + break; + + + default: + // should never happen, if we ever get here stay here forever + while(1); + break; + } + + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + + // clear the slave interrupt flag + return i2c1_slave_state; +} +/* +void I2C1_ReadPointerSet(uint8_t *p) +{ + p_i2c1_read_pointer = p; +} + +void I2C1_WritePointerSet(uint8_t *p) +{ + p_i2c1_write_pointer = p; +} + +uint8_t *I2C1_ReadPointerGet(void) +{ + return (p_i2c1_read_pointer); +} + +uint8_t *I2C1_WritePointerGet(void) +{ + return (p_i2c1_write_pointer); +} +*/ +void I2C1_SlaveAddressMaskSet( + uint16_t mask) +{ + I2C1_MASK_REG = mask; +} + +void I2C1_SlaveAddressSet( + uint16_t address) +{ + if (address > 0x7F) + { + // use 10 bit address + I2C1_10_BIT_ADDRESS_ENABLE_BIT = true; + } + else + { + // use 7 bit address + I2C1_10_BIT_ADDRESS_ENABLE_BIT = false; + } + i2c1_slave_state = S_SLAVE_IDLE; + I2C1_ADDRESS_REG = address; + +} +/* +inline void __attribute__ ((always_inline)) I2C1_TransmitProcess(void) +{ + // get the data to be transmitted + + // sanity check (to avoid stress) + if (p_i2c1_read_pointer == NULL) + return; + + I2C1_TRANSMIT_REG = *p_i2c1_read_pointer; + + // set the SCL clock to be released + I2C1_RELEASE_SCL_CLOCK_CONTROL_BIT = 1; + +} + +inline void __attribute__ ((always_inline)) I2C1_ReceiveProcess(void) +{ + // store the received data + + // sanity check (to avoid stress) + if (p_i2c1_write_pointer == NULL) + return; + + *p_i2c1_write_pointer = I2C1_RECEIVE_REG; + +} + +*/ diff --git a/mcc_generated_files/ic1.c b/mcc_generated_files/ic1.c new file mode 100644 index 0000000..b0d1df0 --- /dev/null +++ b/mcc_generated_files/ic1.c @@ -0,0 +1,138 @@ +/** + IC1 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + ic1.c + + @Summary + This is the generated source file for the IC1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for IC1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "ic1.h" + +/** + IC Mode. + + @Summary + Defines the IC Mode. + + @Description + This data type defines the IC Mode of operation. + +*/ + +static uint16_t gIC1Mode; + +/** + Section: Driver Interface +*/ + +void IC1_Initialize (void) +{ + // ICSIDL disabled; ICM Simple Capture mode: Falling; ICTSEL TMR3; ICI Every; + IC1CON1 = 0x02; + // SYNCSEL TMR3; TRIGSTAT disabled; IC32 disabled; ICTRIG Sync; + IC1CON2 = 0x0D; + + gIC1Mode = IC1CON1bits.ICM; + +} + + +void __attribute__ ((weak)) IC1_CallBack(void) +{ + // Add your custom callback code here +} + +void IC1_Tasks( void ) +{ + if(IFS0bits.IC1IF) + { + // IC1 callback function + IC1_CallBack(); + IFS0bits.IC1IF = 0; + } +} +void IC1_Start( void ) +{ + IC1CON1bits.ICM = gIC1Mode; +} + +void IC1_Stop( void ) +{ + IC1CON1bits.ICM = 0; +} + +uint16_t IC1_CaptureDataRead( void ) +{ + return(IC1BUF); +} + +void IC1_ManualTriggerSet( void ) +{ + IC1CON2bits.TRIGSTAT= true; +} + +bool IC1_TriggerStatusGet( void ) +{ + return( IC1CON2bits.TRIGSTAT ); +} + + +void IC1_TriggerStatusClear( void ) +{ + /* Clears the trigger status */ + IC1CON2bits.TRIGSTAT = 0; +} +bool IC1_HasCaptureBufferOverflowed( void ) +{ + return( IC1CON1bits.ICOV ); +} + + +bool IC1_IsCaptureBufferEmpty( void ) +{ + return( ! IC1CON1bits.ICBNE ); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/ic1.c.fall b/mcc_generated_files/ic1.c.fall new file mode 100644 index 0000000..b0d1df0 --- /dev/null +++ b/mcc_generated_files/ic1.c.fall @@ -0,0 +1,138 @@ +/** + IC1 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + ic1.c + + @Summary + This is the generated source file for the IC1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for IC1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "ic1.h" + +/** + IC Mode. + + @Summary + Defines the IC Mode. + + @Description + This data type defines the IC Mode of operation. + +*/ + +static uint16_t gIC1Mode; + +/** + Section: Driver Interface +*/ + +void IC1_Initialize (void) +{ + // ICSIDL disabled; ICM Simple Capture mode: Falling; ICTSEL TMR3; ICI Every; + IC1CON1 = 0x02; + // SYNCSEL TMR3; TRIGSTAT disabled; IC32 disabled; ICTRIG Sync; + IC1CON2 = 0x0D; + + gIC1Mode = IC1CON1bits.ICM; + +} + + +void __attribute__ ((weak)) IC1_CallBack(void) +{ + // Add your custom callback code here +} + +void IC1_Tasks( void ) +{ + if(IFS0bits.IC1IF) + { + // IC1 callback function + IC1_CallBack(); + IFS0bits.IC1IF = 0; + } +} +void IC1_Start( void ) +{ + IC1CON1bits.ICM = gIC1Mode; +} + +void IC1_Stop( void ) +{ + IC1CON1bits.ICM = 0; +} + +uint16_t IC1_CaptureDataRead( void ) +{ + return(IC1BUF); +} + +void IC1_ManualTriggerSet( void ) +{ + IC1CON2bits.TRIGSTAT= true; +} + +bool IC1_TriggerStatusGet( void ) +{ + return( IC1CON2bits.TRIGSTAT ); +} + + +void IC1_TriggerStatusClear( void ) +{ + /* Clears the trigger status */ + IC1CON2bits.TRIGSTAT = 0; +} +bool IC1_HasCaptureBufferOverflowed( void ) +{ + return( IC1CON1bits.ICOV ); +} + + +bool IC1_IsCaptureBufferEmpty( void ) +{ + return( ! IC1CON1bits.ICBNE ); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/ic1.c.off b/mcc_generated_files/ic1.c.off new file mode 100644 index 0000000..7cfb542 --- /dev/null +++ b/mcc_generated_files/ic1.c.off @@ -0,0 +1,138 @@ +/** + IC1 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + ic1.c + + @Summary + This is the generated source file for the IC1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for IC1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "ic1.h" + +/** + IC Mode. + + @Summary + Defines the IC Mode. + + @Description + This data type defines the IC Mode of operation. + +*/ + +static uint16_t gIC1Mode; + +/** + Section: Driver Interface +*/ + +void IC1_Initialize (void) +{ + // ICSIDL disabled; ICM Off; ICTSEL TMR3; ICI Every; + IC1CON1 = 0x00; + // SYNCSEL TMR3; TRIGSTAT disabled; IC32 disabled; ICTRIG Sync; + IC1CON2 = 0x0D; + + gIC1Mode = IC1CON1bits.ICM; + +} + + +void __attribute__ ((weak)) IC1_CallBack(void) +{ + // Add your custom callback code here +} + +void IC1_Tasks( void ) +{ + if(IFS0bits.IC1IF) + { + // IC1 callback function + IC1_CallBack(); + IFS0bits.IC1IF = 0; + } +} +void IC1_Start( void ) +{ + IC1CON1bits.ICM = gIC1Mode; +} + +void IC1_Stop( void ) +{ + IC1CON1bits.ICM = 0; +} + +uint16_t IC1_CaptureDataRead( void ) +{ + return(IC1BUF); +} + +void IC1_ManualTriggerSet( void ) +{ + IC1CON2bits.TRIGSTAT= true; +} + +bool IC1_TriggerStatusGet( void ) +{ + return( IC1CON2bits.TRIGSTAT ); +} + + +void IC1_TriggerStatusClear( void ) +{ + /* Clears the trigger status */ + IC1CON2bits.TRIGSTAT = 0; +} +bool IC1_HasCaptureBufferOverflowed( void ) +{ + return( IC1CON1bits.ICOV ); +} + + +bool IC1_IsCaptureBufferEmpty( void ) +{ + return( ! IC1CON1bits.ICBNE ); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/ic1.h b/mcc_generated_files/ic1.h new file mode 100644 index 0000000..1008f9f --- /dev/null +++ b/mcc_generated_files/ic1.h @@ -0,0 +1,362 @@ +/** + IC1 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + ic1.h + + @Summary + This is the generated header file for the IC1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for IC1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _IC1_H +#define _IC1_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Interface Routines +*/ + + +/** + @Summary + This function initializes IC instance : 1 + + @Description + This routine initializes the IC driver instance for : 1 + index, making it ready for clients to open and use it. + This routine must be called before any other IC1 routine is called. + + @Preconditions + None. + + @Param + None + + @Returns + None. + + @Example + <code> + bool bufferStatus; + uint16_t data; + + IC1_Initialize(); + + IC1_Start(); + + while(1) + { + bufferStatus = IC1_IsCaptureBufferEmpty( void ); + if(!bufferStatus) + { + data = IC1_CaptureDataRead(); + } + } + IC1_Stop(); + + </code> + +*/ + +void IC1_Initialize (void); + + +/** + @Summary + Callback for IC1. + + @Description + This routine is callback for IC1 + + @Param + None. + + @Returns + None + + @Example + Refer to IC1_Initialize(); for an example +*/ +void IC1_CallBack(void); + +/** + @Summary + Maintains the driver's state machine and implements its ISR + + @Description + This routine is used to maintain the driver's internal state + machine and implement its ISR for interrupt-driven implementations. + + @Preconditions + None. + + @Param + None + + @Returns + None. + + @Example + <code> + while (true) + { + IC1_Tasks(); + + // Do other tasks + } + </code> + +*/ + +void IC1_Tasks( void ); + + + +/** + @Summary + Enables the IC module with the corresponding operation mode. + + @Description + This routine enables the IC module with the corresponding operation mode. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC1_Initialize() for an example + +*/ + +void IC1_Start( void ); + /** + @Summary + Disables the IC module. + + @Description + This routine disables the IC module. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC1_Initialize() for an example + +*/ + +void IC1_Stop( void ); +/** + @Summary + Reads the captured data from buffer. + + @Description + This routine reads the captured data from buffer. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + Read data from buffer. + + @Example + Refer to IC1_Initialize() for an example + +*/ + +uint16_t IC1_CaptureDataRead( void ); + +/** + @Summary + Sets the manual trigger + + @Description + This routine sets the manual trigger + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC1_TriggerStatusGet() for an example + +*/ +void IC1_ManualTriggerSet( void ); + +/** + @Summary + Gets the status of the timer trigger. + + @Description + This routine gets the status of the timer trigger source if it has been triggered. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the timer trigger status. + true : When the timer source has triggered and is running + false : When the timer has not triggered and being held clear + + @Example + <\code> + if(IC1_TriggerStatusGet()) + { + IC1_TriggerStatusClear(); + } + <\code> +*/ + +bool IC1_TriggerStatusGet( void ); +/** + @Summary + Clears the status of the timer trigger. + + @Description + This routine clears the status of the timer trigger. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC1_TriggerStatusGet() for an example + +*/ + +void IC1_TriggerStatusClear( void ); +/** + @Summary + Gets the buffer overflow status. + + @Description + This routine gets the buffer overflow status. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the buffer overflow status. + true : When the capture buffer has overflowed + false : When the capture buffer has not overflowed + + @Example + <\code> + bool status; + + status = IC1_HasCaptureBufferOverflowed(); + <\code> +*/ + +bool IC1_HasCaptureBufferOverflowed( void ); +/** +@Summary + Gets the buffer empty status. + + @Description + This routine gets the buffer empty status. + + @Preconditions + IC1_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the buffer empty status. + True- If buffer empty + False-If buffer not empty + + @Example + Refer to IC1_Initialize() for an example + */ + +bool IC1_IsCaptureBufferEmpty( void ); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_IC1_H + +/** + End of File +*/ diff --git a/mcc_generated_files/ic2.c b/mcc_generated_files/ic2.c new file mode 100644 index 0000000..ffa1213 --- /dev/null +++ b/mcc_generated_files/ic2.c @@ -0,0 +1,138 @@ +/** + IC2 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + ic2.c + + @Summary + This is the generated source file for the IC2 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for IC2. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "ic2.h" + +/** + IC Mode. + + @Summary + Defines the IC Mode. + + @Description + This data type defines the IC Mode of operation. + +*/ + +static uint16_t gIC2Mode; + +/** + Section: Driver Interface +*/ + +void IC2_Initialize (void) +{ + // ICSIDL disabled; ICM Simple Capture mode: Falling; ICTSEL TMR3; ICI Every; + IC2CON1 = 0x02; + // SYNCSEL TMR3; TRIGSTAT disabled; IC32 disabled; ICTRIG Sync; + IC2CON2 = 0x0D; + + gIC2Mode = IC2CON1bits.ICM; + +} + + +void __attribute__ ((weak)) IC2_CallBack(void) +{ + // Add your custom callback code here +} + +void IC2_Tasks( void ) +{ + if(IFS0bits.IC2IF) + { + // IC2 callback function + IC2_CallBack(); + IFS0bits.IC2IF = 0; + } +} +void IC2_Start( void ) +{ + IC2CON1bits.ICM = gIC2Mode; +} + +void IC2_Stop( void ) +{ + IC2CON1bits.ICM = 0; +} + +uint16_t IC2_CaptureDataRead( void ) +{ + return(IC2BUF); +} + +void IC2_ManualTriggerSet( void ) +{ + IC2CON2bits.TRIGSTAT= true; +} + +bool IC2_TriggerStatusGet( void ) +{ + return( IC2CON2bits.TRIGSTAT ); +} + + +void IC2_TriggerStatusClear( void ) +{ + /* Clears the trigger status */ + IC2CON2bits.TRIGSTAT = 0; +} +bool IC2_HasCaptureBufferOverflowed( void ) +{ + return( IC2CON1bits.ICOV ); +} + + +bool IC2_IsCaptureBufferEmpty( void ) +{ + return( ! IC2CON1bits.ICBNE ); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/ic2.h b/mcc_generated_files/ic2.h new file mode 100644 index 0000000..2819e62 --- /dev/null +++ b/mcc_generated_files/ic2.h @@ -0,0 +1,362 @@ +/** + IC2 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + ic2.h + + @Summary + This is the generated header file for the IC2 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for IC2. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _IC2_H +#define _IC2_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Interface Routines +*/ + + +/** + @Summary + This function initializes IC instance : 2 + + @Description + This routine initializes the IC driver instance for : 2 + index, making it ready for clients to open and use it. + This routine must be called before any other IC2 routine is called. + + @Preconditions + None. + + @Param + None + + @Returns + None. + + @Example + <code> + bool bufferStatus; + uint16_t data; + + IC2_Initialize(); + + IC2_Start(); + + while(1) + { + bufferStatus = IC2_IsCaptureBufferEmpty( void ); + if(!bufferStatus) + { + data = IC2_CaptureDataRead(); + } + } + IC2_Stop(); + + </code> + +*/ + +void IC2_Initialize (void); + + +/** + @Summary + Callback for IC2. + + @Description + This routine is callback for IC2 + + @Param + None. + + @Returns + None + + @Example + Refer to IC2_Initialize(); for an example +*/ +void IC2_CallBack(void); + +/** + @Summary + Maintains the driver's state machine and implements its ISR + + @Description + This routine is used to maintain the driver's internal state + machine and implement its ISR for interrupt-driven implementations. + + @Preconditions + None. + + @Param + None + + @Returns + None. + + @Example + <code> + while (true) + { + IC2_Tasks(); + + // Do other tasks + } + </code> + +*/ + +void IC2_Tasks( void ); + + + +/** + @Summary + Enables the IC module with the corresponding operation mode. + + @Description + This routine enables the IC module with the corresponding operation mode. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC2_Initialize() for an example + +*/ + +void IC2_Start( void ); + /** + @Summary + Disables the IC module. + + @Description + This routine disables the IC module. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC2_Initialize() for an example + +*/ + +void IC2_Stop( void ); +/** + @Summary + Reads the captured data from buffer. + + @Description + This routine reads the captured data from buffer. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + Read data from buffer. + + @Example + Refer to IC2_Initialize() for an example + +*/ + +uint16_t IC2_CaptureDataRead( void ); + +/** + @Summary + Sets the manual trigger + + @Description + This routine sets the manual trigger + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC2_TriggerStatusGet() for an example + +*/ +void IC2_ManualTriggerSet( void ); + +/** + @Summary + Gets the status of the timer trigger. + + @Description + This routine gets the status of the timer trigger source if it has been triggered. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the timer trigger status. + true : When the timer source has triggered and is running + false : When the timer has not triggered and being held clear + + @Example + <\code> + if(IC2_TriggerStatusGet()) + { + IC2_TriggerStatusClear(); + } + <\code> +*/ + +bool IC2_TriggerStatusGet( void ); +/** + @Summary + Clears the status of the timer trigger. + + @Description + This routine clears the status of the timer trigger. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC2_TriggerStatusGet() for an example + +*/ + +void IC2_TriggerStatusClear( void ); +/** + @Summary + Gets the buffer overflow status. + + @Description + This routine gets the buffer overflow status. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the buffer overflow status. + true : When the capture buffer has overflowed + false : When the capture buffer has not overflowed + + @Example + <\code> + bool status; + + status = IC2_HasCaptureBufferOverflowed(); + <\code> +*/ + +bool IC2_HasCaptureBufferOverflowed( void ); +/** +@Summary + Gets the buffer empty status. + + @Description + This routine gets the buffer empty status. + + @Preconditions + IC2_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the buffer empty status. + True- If buffer empty + False-If buffer not empty + + @Example + Refer to IC2_Initialize() for an example + */ + +bool IC2_IsCaptureBufferEmpty( void ); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_IC2_H + +/** + End of File +*/ diff --git a/mcc_generated_files/ic3.c b/mcc_generated_files/ic3.c new file mode 100644 index 0000000..39a70c9 --- /dev/null +++ b/mcc_generated_files/ic3.c @@ -0,0 +1,138 @@ +/** + IC3 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + ic3.c + + @Summary + This is the generated source file for the IC3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for IC3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "ic3.h" + +/** + IC Mode. + + @Summary + Defines the IC Mode. + + @Description + This data type defines the IC Mode of operation. + +*/ + +static uint16_t gIC3Mode; + +/** + Section: Driver Interface +*/ + +void IC3_Initialize (void) +{ + // ICSIDL disabled; ICM Simple Capture mode: Falling; ICTSEL TMR3; ICI Every; + IC3CON1 = 0x02; + // SYNCSEL TMR3; TRIGSTAT disabled; IC32 disabled; ICTRIG Sync; + IC3CON2 = 0x0D; + + gIC3Mode = IC3CON1bits.ICM; + +} + + +void __attribute__ ((weak)) IC3_CallBack(void) +{ + // Add your custom callback code here +} + +void IC3_Tasks( void ) +{ + if(IFS2bits.IC3IF) + { + // IC3 callback function + IC3_CallBack(); + IFS2bits.IC3IF = 0; + } +} +void IC3_Start( void ) +{ + IC3CON1bits.ICM = gIC3Mode; +} + +void IC3_Stop( void ) +{ + IC3CON1bits.ICM = 0; +} + +uint16_t IC3_CaptureDataRead( void ) +{ + return(IC3BUF); +} + +void IC3_ManualTriggerSet( void ) +{ + IC3CON2bits.TRIGSTAT= true; +} + +bool IC3_TriggerStatusGet( void ) +{ + return( IC3CON2bits.TRIGSTAT ); +} + + +void IC3_TriggerStatusClear( void ) +{ + /* Clears the trigger status */ + IC3CON2bits.TRIGSTAT = 0; +} +bool IC3_HasCaptureBufferOverflowed( void ) +{ + return( IC3CON1bits.ICOV ); +} + + +bool IC3_IsCaptureBufferEmpty( void ) +{ + return( ! IC3CON1bits.ICBNE ); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/ic3.h b/mcc_generated_files/ic3.h new file mode 100644 index 0000000..04d1f9a --- /dev/null +++ b/mcc_generated_files/ic3.h @@ -0,0 +1,362 @@ +/** + IC3 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + ic3.h + + @Summary + This is the generated header file for the IC3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for IC3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _IC3_H +#define _IC3_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Interface Routines +*/ + + +/** + @Summary + This function initializes IC instance : 3 + + @Description + This routine initializes the IC driver instance for : 3 + index, making it ready for clients to open and use it. + This routine must be called before any other IC3 routine is called. + + @Preconditions + None. + + @Param + None + + @Returns + None. + + @Example + <code> + bool bufferStatus; + uint16_t data; + + IC3_Initialize(); + + IC3_Start(); + + while(1) + { + bufferStatus = IC3_IsCaptureBufferEmpty( void ); + if(!bufferStatus) + { + data = IC3_CaptureDataRead(); + } + } + IC3_Stop(); + + </code> + +*/ + +void IC3_Initialize (void); + + +/** + @Summary + Callback for IC3. + + @Description + This routine is callback for IC3 + + @Param + None. + + @Returns + None + + @Example + Refer to IC3_Initialize(); for an example +*/ +void IC3_CallBack(void); + +/** + @Summary + Maintains the driver's state machine and implements its ISR + + @Description + This routine is used to maintain the driver's internal state + machine and implement its ISR for interrupt-driven implementations. + + @Preconditions + None. + + @Param + None + + @Returns + None. + + @Example + <code> + while (true) + { + IC3_Tasks(); + + // Do other tasks + } + </code> + +*/ + +void IC3_Tasks( void ); + + + +/** + @Summary + Enables the IC module with the corresponding operation mode. + + @Description + This routine enables the IC module with the corresponding operation mode. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC3_Initialize() for an example + +*/ + +void IC3_Start( void ); + /** + @Summary + Disables the IC module. + + @Description + This routine disables the IC module. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC3_Initialize() for an example + +*/ + +void IC3_Stop( void ); +/** + @Summary + Reads the captured data from buffer. + + @Description + This routine reads the captured data from buffer. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + Read data from buffer. + + @Example + Refer to IC3_Initialize() for an example + +*/ + +uint16_t IC3_CaptureDataRead( void ); + +/** + @Summary + Sets the manual trigger + + @Description + This routine sets the manual trigger + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC3_TriggerStatusGet() for an example + +*/ +void IC3_ManualTriggerSet( void ); + +/** + @Summary + Gets the status of the timer trigger. + + @Description + This routine gets the status of the timer trigger source if it has been triggered. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the timer trigger status. + true : When the timer source has triggered and is running + false : When the timer has not triggered and being held clear + + @Example + <\code> + if(IC3_TriggerStatusGet()) + { + IC3_TriggerStatusClear(); + } + <\code> +*/ + +bool IC3_TriggerStatusGet( void ); +/** + @Summary + Clears the status of the timer trigger. + + @Description + This routine clears the status of the timer trigger. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + None. + + @Example + Refer to IC3_TriggerStatusGet() for an example + +*/ + +void IC3_TriggerStatusClear( void ); +/** + @Summary + Gets the buffer overflow status. + + @Description + This routine gets the buffer overflow status. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the buffer overflow status. + true : When the capture buffer has overflowed + false : When the capture buffer has not overflowed + + @Example + <\code> + bool status; + + status = IC3_HasCaptureBufferOverflowed(); + <\code> +*/ + +bool IC3_HasCaptureBufferOverflowed( void ); +/** +@Summary + Gets the buffer empty status. + + @Description + This routine gets the buffer empty status. + + @Preconditions + IC3_Initialize function should have been called + + @Param + None + + @Returns + Boolean value describing the buffer empty status. + True- If buffer empty + False-If buffer not empty + + @Example + Refer to IC3_Initialize() for an example + */ + +bool IC3_IsCaptureBufferEmpty( void ); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_IC3_H + +/** + End of File +*/ diff --git a/mcc_generated_files/interrupt_manager.c b/mcc_generated_files/interrupt_manager.c new file mode 100644 index 0000000..ec039c4 --- /dev/null +++ b/mcc_generated_files/interrupt_manager.c @@ -0,0 +1,62 @@ +/** + System Interrupts Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + interrupt_manager.h + + @Summary: + This is the generated driver implementation file for setting up the + interrupts using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This source file provides implementations for PIC24 / dsPIC33 / PIC32MM MCUs interrupts. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Includes +*/ +#include <xc.h> + +/** + void INTERRUPT_Initialize (void) +*/ +void INTERRUPT_Initialize (void) +{ + // MICI: MI2C1 - I2C1 Master Events + // Priority: 1 + // IPC4bits.MI2C1IP = 1; + // SICI: SI2C1 - I2C1 Slave Events + // Priority: 1 + IPC4bits.SI2C1IP = 1; + +} diff --git a/mcc_generated_files/interrupt_manager.h b/mcc_generated_files/interrupt_manager.h new file mode 100644 index 0000000..833d3f0 --- /dev/null +++ b/mcc_generated_files/interrupt_manager.h @@ -0,0 +1,167 @@ +/** + System Interrupts Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + interrupt_manager.h + + @Summary: + This is the generated driver implementation file for setting up the + interrupts using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This source file provides implementations for PIC24 / dsPIC33 / PIC32MM MCUs interrupts. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _INTERRUPT_MANAGER_H +#define _INTERRUPT_MANAGER_H + +/** + @Summary + Initializes the interrupt priorities of the PIC24FJ64GA702 + + @Description + This routine sets the interrupt priorities of the modules that have been configured + for the PIC24FJ64GA702 + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + void SYSTEM_Initialize(void) + { + // Other initializers are called from this function + INTERRUPT_Initialize (); + } + </code> + +*/ +void INTERRUPT_Initialize(void); + +/** + @Summary + Enables global interrupts of the PIC24FJ64GA702 + + @Description + This routine enables the global interrupt bit for the PIC24FJ64GA702 + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + void SYSTEM_Initialize(void) + { + // Other initializers are called from this function + INTERRUPT_GlobalEnable (); + } + </code> + +*/ +inline static void INTERRUPT_GlobalEnable(void) +{ + __builtin_enable_interrupts(); +} + +/** + @Summary + Disables global interrupts of the PIC24FJ64GA702 + + @Description + This routine disables the global interrupt bit for the PIC24FJ64GA702 + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + void SYSTEM_Initialize(void) + { + // Other initializers are called from this function + INTERRUPT_GlobalDisable (); + } + </code> + +*/ +inline static void INTERRUPT_GlobalDisable(void) +{ + __builtin_disable_interrupts(); +} + +/** + @Summary + Returns the interrupt vector number of the interrupt which is pending. + + @Description + This routine returns the interrupt vector number of the interrupt which is pending. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t ivrNum; + ivrNum = INTERRUPT_VectorNumberGet(); + </code> + +*/ +inline static uint16_t INTERRUPT_VectorNumberGet(void) +{ + return _VECNUM; +} + +#endif \ No newline at end of file diff --git a/mcc_generated_files/mcc.c b/mcc_generated_files/mcc.c new file mode 100644 index 0000000..dbd3b10 --- /dev/null +++ b/mcc_generated_files/mcc.c @@ -0,0 +1,47 @@ +/** + @Generated PIC24 / dsPIC33 / PIC32MM MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + mcc.c + + @Summary: + This is the mcc.c file generated using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + The configuration contents of this file are moved to system.c and this file will be removed in future MCC releases. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + End of File +*/ \ No newline at end of file diff --git a/mcc_generated_files/mcc.h b/mcc_generated_files/mcc.h new file mode 100644 index 0000000..9f60654 --- /dev/null +++ b/mcc_generated_files/mcc.h @@ -0,0 +1,75 @@ +/** + @Generated PIC24 / dsPIC33 / PIC32MM MCUs Header File + + @Company: + Microchip Technology Inc. + + @File Name: + mcc.h + + @Summary: + This is the mcc.h file generated using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This file will be removed in future MCC releases. Use system.h instead. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef MCC_H +#define MCC_H +#include <xc.h> +#include "system.h" +#include "clock.h" +#include "pin_manager.h" +#include <stdint.h> +#include <stdbool.h> + +#include "i2c1.h" +#include "ic3.h" +#include "ic2.h" +#include "ic1.h" +#include "memory/flash.h" +#include "cmp3.h" +#include "cmp2.h" +#include "cmp1.h" +#include "cvr.h" +#include "interrupt_manager.h" +#include "traps.h" +#include "spi3.h" +#include "spi2.h" +#include "spi1.h" +#include "tmr3.h" + +#warning "This file will be removed in future MCC releases. Use system.h instead." + +#endif /* MCC_H */ +/** + End of File +*/ \ No newline at end of file diff --git a/mcc_generated_files/memory/flash.h b/mcc_generated_files/memory/flash.h new file mode 100644 index 0000000..7f41eb9 --- /dev/null +++ b/mcc_generated_files/memory/flash.h @@ -0,0 +1,78 @@ +/** + FLASH Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + flash.h + + @Summary + This is the generated header file for the FLASH driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for FLASH. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + Driver Version : 1.00 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +#ifndef FLASH_H +#define FLASH_H + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> + +#define FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS 128 +#define FLASH_ERASE_PAGE_SIZE_IN_INSTRUCTIONS 1024 + +#define FLASH_ERASE_PAGE_SIZE_IN_PC_UNITS (FLASH_ERASE_PAGE_SIZE_IN_INSTRUCTIONS*2) +#define FLASH_WRITE_ROW_SIZE_IN_PC_UNITS (FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS*2) +#define FLASH_HAS_ECC 1 + +#define FLASH_UNLOCK_KEY 0x00AA0055 + +#define FLASH_ERASE_PAGE_MASK (~((FLASH_ERASE_PAGE_SIZE_IN_INSTRUCTIONS*2) - 1)) +void FLASH_Unlock(uint32_t key); +void FLASH_Lock(void); + +bool FLASH_ErasePage(uint32_t address); + +uint16_t FLASH_ReadWord16(uint32_t address); +uint32_t FLASH_ReadWord24(uint32_t address); + +bool FLASH_WriteDoubleWord16(uint32_t flashAddress, uint16_t Data0, uint16_t Data1); +bool FLASH_WriteDoubleWord24(uint32_t address, uint32_t Data0, uint32_t Data1 ); + +/* Program the flash one row at a time. */ + +/* FLASH_WriteRow24: Writes a single row of data from the location given in *data to + * the flash location in address. Since the flash is only 24 bits wide + * all data in the upper 8 bits of the source will be lost . + * The address in *data must be row aligned. + * returns true if successful */ + +bool FLASH_WriteRow24(uint32_t flashAddress, uint32_t *data); + +/* FLASH_WriteRow16: Writes a single row of data from the location in given in *data to + * to the flash location in address. Each 16 bit source data + * word is stored in the lower 16 bits of each flash entry and the + * upper 8 bits of the flash is not programmed. + * The address in *data must be row aligned. + * returns true if successful */ +bool FLASH_WriteRow16(uint32_t address, uint16_t *data); + + +uint16_t FLASH_GetErasePageOffset(uint32_t address); +uint32_t FLASH_GetErasePageAddress(uint32_t address); + + + + +#endif /* FLASH_H */ + diff --git a/mcc_generated_files/memory/flash.s b/mcc_generated_files/memory/flash.s new file mode 100644 index 0000000..1ae7e45 --- /dev/null +++ b/mcc_generated_files/memory/flash.s @@ -0,0 +1,631 @@ +;/******************************************************************************* +; flash.s for PIC24 and dsPIC33 Cores +; +; Summary: +; Assembly language optimized helper routines required flash functions +; +; Description: +; Assembly language optimized for flash access +; +;*******************************************************************************/ +; +;// DOM-IGNORE-BEGIN +;/******************************************************************************* +; Copyright (C) 2016 Microchip Technology Inc. +; +; MICROCHIP SOFTWARE NOTICE AND DISCLAIMER: You may use this software, and any +; derivatives created by any person or entity by or on your behalf, exclusively +; with Microchip's products. Microchip and its licensors retain all ownership +; and intellectual property rights in the accompanying software and in all +; derivatives here to. +; +; This software and any accompanying information is for suggestion only. It +; does not modify Microchip's standard warranty for its products. You agree +; that you are solely responsible for testing the software and determining its +; suitability. Microchip has no obligation to modify, test, certify, or +; support the software. +; +; THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER +; EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED +; WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR +; PURPOSE APPLY TO THIS SOFTWARE, ITS INTERACTION WITH MICROCHIP'S PRODUCTS, +; COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. +; +; IN NO EVENT, WILL MICROCHIP BE LIABLE, WHETHER IN CONTRACT, WARRANTY, TORT +; (INCLUDING NEGLIGENCE OR BREACH OF STATUTORY DUTY), STRICT LIABILITY, +; INDEMNITY, CONTRIBUTION, OR OTHERWISE, FOR ANY INDIRECT, SPECIAL, PUNITIVE, +; EXEMPLARY, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, FOR COST OR EXPENSE OF +; ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWSOEVER CAUSED, EVEN IF +; MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. +; TO THE FULLEST EXTENT ALLOWABLE 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. +; +; MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE +; TERMS. +;*******************************************************************************/ + .equ WRITE_DWORD_CODE, 0x4001 + .equ ERASE_PAGE_CODE, 0x4003 + .equ FLASH_WRITE_ROW_CODE, 0x4002 + .equ ERASE_WRITE_OP_MASK, 0x404F + .equ FLASH_ERASE_WRITE_OP_MASK, 0x404F + .equ FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS, 128 + .equ FLASH_ERASE_PAGE_SIZE_IN_INSTRUCTIONS, 1024 + .equ FLASH_ERASE_PAGE_SIZE_IN_PC_UNITS, 1024*2 + .equ FLASH_ERASE_PAGE_MASK, (~(FLASH_ERASE_PAGE_SIZE_IN_PC_UNITS - 1)) + + .data + .global _FlashKey +_FlashKey: .long 0xFFFFFFFF + + .text + .pushsection .NVM_flash, code + + +/** + * ;void FLASH_Unlock(uint32_t key); + * Used to program the flash key in memory variable located in RAM + * the valid key is 0x00AA0055 + * + * + * @param key 32-bit (unsigned long) for the key + * + * Registers used: w0 w1 + * + * Inputs: + * w0,w1 = long data - Flash Key to save (32 bits) + * + */ + + .global _FLASH_Unlock + .type _FLASH_Unlock, @function + reset + _FLASH_Unlock: + mov #_FlashKey, W2 + mov W0, [W2++] + mov W1, [W2] + return; + +/** + * ;void FLASH_Lock(); + * Locks the flash from programming by resetting the NVMKEY in memory + * + * + * @param key 32-bit (unsigned long) for the key + * + * Registers used: w0 w1 + * + * Inputs: + * w0,w1 = long data - Flash Key to save (32 bits) + * + */ + + .global _FLASH_Lock + .type _FLASH_Lock, @function + .extern NVMKEY + + reset + _FLASH_Lock: + clr W0 + clr W1 + rcall _FLASH_Unlock + clr NVMKEY + return; + + /** + * ;void FLASH_SendNvmKey(uint32_t key); + * Procedure to take the NVM key from memory and program the flash controller + * with it. A valid key is 0x00AA0055 + * + * + * @param key 32-bit (unsigned long) key + * + * Registers used: w0 w1 (Preserved) + * + * Inputs: + * w0,w1 = long data - Flash Key to use (32 bits) + */ + reset + .global _FLASH_SendNvmKey + .type _FLASH_SendNvmKey, @function + .extern NVMKEY + .extern TBLPAG + + reset +_FLASH_SendNvmKey: + push W0 + push W1 + push W2 + + mov #_FlashKey, w1 + + ; Disable interrupts + mov INTCON2, W2 ; Save Global Interrupt Enable bit. + bclr INTCON2, #15 ; Disable interrupts + + ; Write the KEY sequence + mov [W1++], W0 + mov W0, NVMKEY + mov [W1], W0 + mov W0, NVMKEY + bset NVMCON, #15 + + ; Insert two NOPs after programming + nop + nop + + ; Wait for operation to complete +prog_wait: + btsc NVMCON, #15 + bra prog_wait + + ; Re-enable interrupts, + btsc W2,#15 + BSET INTCON2, #15 ; Restore Global Interrupt Enable bit. + + pop W2 + pop W1 + pop W0 + return + + + +/** + * ;uint32_t FLASH_ReadWord24(uint32_t address); + * Reads the 24 bit instruction located at the address passed to this function. + * + * + * @param address 24-bit (unsigned long) specifying a target address + * that needs to be read. Needs to be aligned to an even + * address. + * + * Registers used: w0 w1 w2 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to read (24 bits) + * + * outputs: + * w0,w1 = 32 bit data contains the flash data read. + **/ + + reset + .global _FLASH_ReadWord24 + .type _FLASH_ReadWord24, @function + .extern TBLPAG + + + _FLASH_ReadWord24: + mov TBLPAG, W2 + mov W1, TBLPAG ; Little endian, w1 has MSW, w0 has LSX + tblrdh [W0], W1 ; read MSW of data to high latch + tblrdl [W0], W0 ; read LSW of data + mov W2, TBLPAG ; Restore register, + return + +/** + * ;uint16_t FLASH_ReadWord16(uint32_t address); + * Reads the 16 bit instruction located at the address passed to this function. + * Address must be aligned to an even address. + * + * + * @param address 24-bit (unsigned long) specifying a target address + * that needs to be read. Needs to be aligned to an even + * address. + * + * Registers used: w0 w1 w2 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to read (24 bits) + * + * outputs: + * w0 = 16 bit data contains the flash data read. + * + **/ + + reset + .global _FLASH_ReadWord16 + .type _FLASH_ReadWord16, @function + .extern TBLPAG + + + _FLASH_ReadWord16: + mov TBLPAG, W2 + mov W1, TBLPAG ; Little endian, w1 has MSW, w0 has LSX + tblrdl [W0], W0 ; read LSW of data + mov W2, TBLPAG ; restore register + return + + + +/** + * void FLASH_ErasePage(unsigned long address); + * Erases the page containing the specified address. Be very careful if calling + * this function as the function will erase any legal page, + * + * NOTE: This function can take upwards of 45ms on some device families and + * target pages to complete. At frequencies appreciably slower than the maximum + * device frequency, even longer may be required. Therefore, you may need to + * issue a ClrWdt() call before calling this function, assuming the Watchdog + * timer is enabled. This also means that you should not configure a watchdog + * timeout of less than ~64ms, even when you pre-clear the timeout. This + * function does NOT internally clear the watchdog for you as it is packaged as + * a library routine where not everyone would desire such behavior. + * + * @param address 24-bit (unsigned long) specifying the first address on the page + * to be erased. Must be page aligned. + * + * Registers used: w0 w1 w2 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to erase (24 bits) + * + * outputs: + * 0 - Fail + * 1 - Pass + * + **/ + + .global _FLASH_ErasePage + .type _FLASH_ErasePage, @function + .extern TBLPAG + .extern NVMCON + .extern NVMADRU + .extern NVMADR + reset + + + +_FLASH_ErasePage: + + mov #FLASH_ERASE_PAGE_SIZE_IN_PC_UNITS-1, w2 ; get mask and validate all lower bits = 0 + and w2, w0, w2 + bra NZ,3f + + mov #ERASE_PAGE_CODE, w2 + mov w2, NVMCON + mov w0, NVMADR + mov w1, NVMADRU ; MSB + + call _FLASH_SendNvmKey + + mov #1, w0 ; default return true + btsc NVMCON, #13 ; if error bit set, +3: mov #0, w0 ; return false + return; + + /** + * ;void FLASH_WriteDoubleWord24(uint32_t flashAddress, uint32_t instructionData0, uint32_t instructionData1); + * Writes two 24-bit instruction to the flash at the flashAdddress + * Only the lower 24 bits of each instruction will be written since the flash + * is only 24 bits wide and all data in the upper 8 bits will be lost. + * + * + * @param flashAddress 32 bit value specifying a target address in flash + * that this firmware will write to. It needs to be on a + * addresses divisible by 4. + * + * @param uint32_t instructionData0 24 bit instruction to be written first. + * @param uint32_t instructionData1 24 bit instruction to be written second. + * + * + * Registers used: w0 w1 w2 w3 w4 w5 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to write (24 bits) + * w2,w3 = long data - 24 bits of data to write to flash (24 bits) + * w4,w5 = long data - 24 bits of data to write to flash (24 bits) + * + * outputs: + * none + * + **/ + + .global _FLASH_WriteDoubleWord24 + .type _FLASH_WriteDoubleWord24, @function + .extern TBLPAG + .extern NVMCON + .extern NVMADRU + .extern NVMADR + reset + +_FLASH_WriteDoubleWord24: + btsc NVMCON, #15 ; Loop, blocking until last NVM operation is complete (WR is clear) + bra _FLASH_WriteDoubleWord24 + + btsc w0, #0 ; Check for a valid address Bit 0 and Bit 1 clear + bra 3f + btsc w0, #1 + bra 3f + +good24: + mov W1,NVMADRU + mov W0,NVMADR + + mov #WRITE_DWORD_CODE, W0 + mov W0, NVMCON + + mov TBLPAG, W0 ; save it + mov #0xFA,W1 + mov W1,TBLPAG + mov #0,W1 + + ; Perform the TBLWT instructions to write the latches + tblwtl W2,[W1] + tblwth W3,[W1++] + tblwtl W4,[W1] + tblwth w5,[W1++] + + call _FLASH_SendNvmKey + + + mov W0, TBLPAG + + mov #1, w0 ; default return true + btsc NVMCON, #13 ; if error bit set, +3: mov #0, w0 ; return false + + return; + + + + /** + * ;void FLASH_WriteDoubleWord16(uint32_t flashAddress, uint16_t Data0, uint16_t Data1); + * Writes two 16-bit words to the flash at the flashAdddress + * The upper 8 bits of the 24 bit flash entry will have its data programmed as + * 0xFF. + * + * + * @param flashAddress 32 bit value specifying a target address in flash + * that this firmware will write to. It needs to be on a + * addresses divisible by 4. + * + * @param uint16_t Data0 16 bit word to be written first. + * @param uint16_t Data1 16 bit word to be written second. + * + * Registers used: w0 w1 w2 w3 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to write (24 bits) + * w2 = 16 bit data - 16 bits of data to write to flash + * w3 = 16 bit data - 16 bits of data to write to flash + * + * outputs: + * none + * + **/ + + .global _FLASH_WriteDoubleWord16 + .type _FLASH_WriteDoubleWord16, @function + .extern TBLPAG + .extern NVMCON + .extern NVMADRU + .extern NVMADR + reset + + _FLASH_WriteDoubleWord16: + btsc NVMCON, #15 ; Loop, blocking until last NVM operation is complete (WR is clear) + bra _FLASH_WriteDoubleWord16 + + btsc w0, #0 ; Check for a valid address Bit 0 and Bit 1 clear + bra 3f + btsc w0, #1 + bra 3f + +good16: + mov W1,NVMADRU + mov W0,NVMADR + + mov TBLPAG, W1 ; save it + + mov #WRITE_DWORD_CODE, W0 + mov W0, NVMCON + + mov #0xFA,W0 + mov W0,TBLPAG + mov #0,W0 + + tblwtl W2,[W0] ; Perform the TBLWT instructions to write the latches + mov #0xFF,W2 + tblwth W2,[W0++] + tblwtl W3,[W0] + tblwth W2,[W0++] + + call _FLASH_SendNvmKey + + + mov w1, TBLPAG + + mov #1, w0 ; default return true + btsc NVMCON, #13 ; if error bit set, +3: mov #0, w0 ; return false + return; + + + + + +/** + * ;void FLASH_WriteRow24(uint32_t flashAddress, uint16_t *data); + * Writes a single Row to the address flashAddress from the sourceAddress + * Since this is passed as a 32 bit value + * and flash is only 24 bit wide, all data in the upper 8 bits will be lost. + * + * + * @param flashAddress 32 bit value specifying a target address in flash + * that this firmware will write to. It needs to be on a + * addresses divisible by 4. + * + * @param sourceAddress 16 bit value of the address to read the data from. + * + * Registers used: w0 w1 w2 w3 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to write (24 bits) + * w2 = 16 bit - 16 bits of data address to write to flash (16 bits) + * + * outputs: + * 0 - Failed + * 1 - Passed + * + **/ + + .global _FLASH_WriteRow24 + .type _FLASH_WriteRow24, @function + .extern TBLPAG + .extern NVMCON + .extern NVMADRU + .extern NVMADR + + reset + _FLASH_WriteRow24: + btsc NVMCON, #15 ; Loop, blocking until last NVM operation is complete (WR is clear) + bra _FLASH_WriteRow24 + + mov #((FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS*2)-1), w3 ; get mask and validate all lower bits = 0 + and w3, w0, w3 + bra NZ,3f + + + mov W0,NVMADR + mov W1,NVMADRU + + mov TBLPAG, W1 ; save it + + mov #0xFA,W0 + mov W0,TBLPAG + + mov #FLASH_WRITE_ROW_CODE, W0 + mov W0, NVMCON + + mov #0,W0 + mov #(FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS*2), W3 + +1: + tblwtl [W2++],[W0] ; Perform the TBLWT instructions to write the latches + tblwth [W2++],[W0++] + cp W3,W0 + bra NZ, 1b + + call _FLASH_SendNvmKey + + + mov w1, TBLPAG + + mov #1, w0 ; default return true + btsc NVMCON, #13 ; if error bit set, +3: mov #0, w0 ; return false + return; + + + + + + + +/** + * ;void FLASH_WriteRow16(uint32_t flashAddress, uint16_t *data); + * Writes a single Row to the address flashAddress from the Address *data + * There is no data written in bits 24-31 since there is no flash there. + * bits 16-23 are programmed as 0xFFs + * + * + * @param flashAddress 32 bit value specifying a target address in flash + * that this firmware will write to. It needs to be on a + * addresses divisible by 4. + * + * @param *data address of a 16 bit array of read the data from. + * + * Registers used: w0 w1 w2 w3 + * TBLPAG Preserved + * + * Inputs: + * w0,w1 = long data - Address in flash to write (24 bits) + * w2 = 16 bit - 16 bits of data address to write to flash (16 bits) + * + * outputs: + * 0 - Failed + * 1 - Passed + * + **/ + + .global _FLASH_WriteRow16 + .type _FLASH_WriteRow16, @function + .extern TBLPAG + .extern NVMCON + .extern NVMADRU + .extern NVMADR + reset + + _FLASH_WriteRow16: + btsc NVMCON, #15 ; Loop, blocking until last NVM operation is complete (WR is clear) + bra _FLASH_WriteRow16 + + mov #((FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS*2)-1), w3 ; get mask and validate all lower bits = 0 + and w3, w0, w3 + bra NZ,3f + + + mov W0,NVMADR + mov W1,NVMADRU + + mov TBLPAG, W1 ; save it + + mov #0xFA,W0 + mov W0,TBLPAG + + mov #FLASH_WRITE_ROW_CODE, W0 + mov W0, NVMCON + + mov #0,W0 + mov #(FLASH_WRITE_ROW_SIZE_IN_INSTRUCTIONS*2), W3 + mov #0xFF, W4 + +1: + tblwtl [W2++],[W0] ; Perform the TBLWT instructions to write the latches + tblwth W4 ,[W0++] + + cp W3,W0 + bra NZ, 1b + + call _FLASH_SendNvmKey + + + mov w1, TBLPAG + + mov #1, w0 ; default return true + btsc NVMCON, #13 ; if error bit set, +3: mov #0, w0 ; return false + return; + + +;uint16_t FLASH_GetErasePageOffset(uint32_t address) + .global _FLASH_GetErasePageOffset + .type _FLASH_GetErasePageOffset, @function + +_FLASH_GetErasePageOffset: + mov #((~FLASH_ERASE_PAGE_MASK) & 0xFFFF), W2 + and w2, w0, w0 + return + +;uint32_t FLASH_GetFlashPageAddress(uint32_t address); + + .global _FLASH_GetErasePageAddress + .type _FLASH_GetErasePageAddress, @function + +_FLASH_GetErasePageAddress: + + mov #(FLASH_ERASE_PAGE_MASK & 0xFFFF) , W2 ;LSW + and w2, w0, w0 + mov #((FLASH_ERASE_PAGE_MASK >> 16) & 0xFFFF), W2 ; MSW + and w2, w1, w1 + + return + + .popsection + diff --git a/mcc_generated_files/pin_manager.c b/mcc_generated_files/pin_manager.c new file mode 100644 index 0000000..a6b1742 --- /dev/null +++ b/mcc_generated_files/pin_manager.c @@ -0,0 +1,110 @@ +/** + PIN MANAGER Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + pin_manager.c + + @Summary: + This is the generated manager file for the PIC24 / dsPIC33 / PIC32MM MCUs device. This manager + configures the pins direction, initial state, analog setting. + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Description: + This source file provides implementations for PIN MANAGER. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + + +/** + Section: Includes +*/ + +#include <xc.h> +#include <stdio.h> +#include "pin_manager.h" + +/** + Section: Driver Interface Function Definitions +*/ +void PIN_MANAGER_Initialize (void) +{ + /**************************************************************************** + * Setting the Output Latch SFR(s) + ***************************************************************************/ + LATA = 0x0000; + LATB = 0x0000; + + /**************************************************************************** + * Setting the GPIO Direction SFR(s) + ***************************************************************************/ + TRISA = 0x0014; + TRISB = 0x6B7B; + + /**************************************************************************** + * Setting the Weak Pull Up and Weak Pull Down SFR(s) + ***************************************************************************/ + IOCPDA = 0x0000; + IOCPDB = 0x0000; + IOCPUA = 0x0000; + IOCPUB = 0x0000; + + /**************************************************************************** + * Setting the Open Drain SFR(s) + ***************************************************************************/ + ODCA = 0x0000; + ODCB = 0x0000; + + /**************************************************************************** + * Setting the Analog/Digital Configuration SFR(s) + ***************************************************************************/ + ANSA = 0x0007; + ANSB = 0xD204; + + /**************************************************************************** + * Set the PPS + ***************************************************************************/ + __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS + + RPOR6bits.RP12R = 0x001A; //RB12->CMP3:C3OUT + RPINR7bits.IC1R = 0x0003; //RB3->IC1:IC1 + RPOR1bits.RP2R = 0x0001; //RB2->CMP1:C1OUT + RPOR5bits.RP10R = 0x000A; //RB10->SPI2:SDO2 + RPOR7bits.RP15R = 0x0017; //RB15->SPI3:SDO3 + RPOR13bits.RP27R = 0x0007; //RA1->SPI1:SDO1 + RPINR7bits.IC2R = 0x0008; //RB8->IC2:IC2 + RPOR3bits.RP7R = 0x0002; //RB7->CMP2:C2OUT + RPINR8bits.IC3R = 0x000D; //RB13->IC3:IC3 + + __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS +} + diff --git a/mcc_generated_files/pin_manager.c.in b/mcc_generated_files/pin_manager.c.in new file mode 100644 index 0000000..a339b33 --- /dev/null +++ b/mcc_generated_files/pin_manager.c.in @@ -0,0 +1,107 @@ +/** + PIN MANAGER Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + pin_manager.c + + @Summary: + This is the generated manager file for the PIC24 / dsPIC33 / PIC32MM MCUs device. This manager + configures the pins direction, initial state, analog setting. + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Description: + This source file provides implementations for PIN MANAGER. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + + +/** + Section: Includes +*/ + +#include <xc.h> +#include <stdio.h> +#include "pin_manager.h" + +/** + Section: Driver Interface Function Definitions +*/ +void PIN_MANAGER_Initialize (void) +{ + /**************************************************************************** + * Setting the Output Latch SFR(s) + ***************************************************************************/ + LATA = 0x0000; + LATB = 0x0000; + + /**************************************************************************** + * Setting the GPIO Direction SFR(s) + ***************************************************************************/ + TRISA = 0x0016; + TRISB = 0xEF7B; + + /**************************************************************************** + * Setting the Weak Pull Up and Weak Pull Down SFR(s) + ***************************************************************************/ + IOCPDA = 0x0000; + IOCPDB = 0x0000; + IOCPUA = 0x0000; + IOCPUB = 0x0000; + + /**************************************************************************** + * Setting the Open Drain SFR(s) + ***************************************************************************/ + ODCA = 0x0000; + ODCB = 0x0000; + + /**************************************************************************** + * Setting the Analog/Digital Configuration SFR(s) + ***************************************************************************/ + ANSA = 0x0005; + ANSB = 0x5204; + + /**************************************************************************** + * Set the PPS + ***************************************************************************/ + __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS + + RPOR3bits.RP7R = 0x0002; //RB7->CMP2:C2OUT + RPINR8bits.IC3R = 0x000D; //RB13->IC3:IC3 + RPOR1bits.RP2R = 0x0001; //RB2->CMP1:C1OUT + RPINR7bits.IC2R = 0x0008; //RB8->IC2:IC2 + RPINR7bits.IC1R = 0x0003; //RB3->IC1:IC1 + RPOR6bits.RP12R = 0x001A; //RB12->CMP3:C3OUT + + __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS +} + diff --git a/mcc_generated_files/pin_manager.c.out b/mcc_generated_files/pin_manager.c.out new file mode 100644 index 0000000..260c719 --- /dev/null +++ b/mcc_generated_files/pin_manager.c.out @@ -0,0 +1,107 @@ +/** + PIN MANAGER Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + pin_manager.c + + @Summary: + This is the generated manager file for the PIC24 / dsPIC33 / PIC32MM MCUs device. This manager + configures the pins direction, initial state, analog setting. + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Description: + This source file provides implementations for PIN MANAGER. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + + +/** + Section: Includes +*/ + +#include <xc.h> +#include <stdio.h> +#include "pin_manager.h" + +/** + Section: Driver Interface Function Definitions +*/ +void PIN_MANAGER_Initialize (void) +{ + /**************************************************************************** + * Setting the Output Latch SFR(s) + ***************************************************************************/ + LATA = 0x0000; + LATB = 0x0000; + + /**************************************************************************** + * Setting the GPIO Direction SFR(s) + ***************************************************************************/ + TRISA = 0x0014; + TRISB = 0x6B7B; + + /**************************************************************************** + * Setting the Weak Pull Up and Weak Pull Down SFR(s) + ***************************************************************************/ + IOCPDA = 0x0000; + IOCPDB = 0x0000; + IOCPUA = 0x0000; + IOCPUB = 0x0000; + + /**************************************************************************** + * Setting the Open Drain SFR(s) + ***************************************************************************/ + ODCA = 0x0000; + ODCB = 0x0000; + + /**************************************************************************** + * Setting the Analog/Digital Configuration SFR(s) + ***************************************************************************/ + ANSA = 0x0007; + ANSB = 0xD204; + + /**************************************************************************** + * Set the PPS + ***************************************************************************/ + __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS + + RPOR6bits.RP12R = 0x001A; //RB12->CMP3:C3OUT + RPOR1bits.RP2R = 0x0001; //RB2->CMP1:C1OUT + RPOR3bits.RP7R = 0x0002; //RB7->CMP2:C2OUT + RPINR8bits.IC3R = 0x000D; //RB13->IC3:IC3 + RPINR7bits.IC1R = 0x0003; //RB3->IC1:IC1 + RPINR7bits.IC2R = 0x0008; //RB8->IC2:IC2 + + __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS +} + diff --git a/mcc_generated_files/pin_manager.c.spi b/mcc_generated_files/pin_manager.c.spi new file mode 100644 index 0000000..6b727d9 --- /dev/null +++ b/mcc_generated_files/pin_manager.c.spi @@ -0,0 +1,110 @@ +/** + PIN MANAGER Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + pin_manager.c + + @Summary: + This is the generated manager file for the PIC24 / dsPIC33 / PIC32MM MCUs device. This manager + configures the pins direction, initial state, analog setting. + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Description: + This source file provides implementations for PIN MANAGER. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + + +/** + Section: Includes +*/ + +#include <xc.h> +#include <stdio.h> +#include "pin_manager.h" + +/** + Section: Driver Interface Function Definitions +*/ +void PIN_MANAGER_Initialize (void) +{ + /**************************************************************************** + * Setting the Output Latch SFR(s) + ***************************************************************************/ + LATA = 0x0000; + LATB = 0x0000; + + /**************************************************************************** + * Setting the GPIO Direction SFR(s) + ***************************************************************************/ + TRISA = 0x0014; + TRISB = 0x6B7B; + + /**************************************************************************** + * Setting the Weak Pull Up and Weak Pull Down SFR(s) + ***************************************************************************/ + IOCPDA = 0x0000; + IOCPDB = 0x0000; + IOCPUA = 0x0000; + IOCPUB = 0x0000; + + /**************************************************************************** + * Setting the Open Drain SFR(s) + ***************************************************************************/ + ODCA = 0x0000; + ODCB = 0x0000; + + /**************************************************************************** + * Setting the Analog/Digital Configuration SFR(s) + ***************************************************************************/ + ANSA = 0x0007; + ANSB = 0xD204; + + /**************************************************************************** + * Set the PPS + ***************************************************************************/ + __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS + + RPINR7bits.IC1R = 0x0003; //RB3->IC1:IC1 + RPOR6bits.RP12R = 0x001A; //RB12->CMP3:C3OUT + RPOR5bits.RP10R = 0x000A; //RB10->SPI2:SDO2 + RPOR1bits.RP2R = 0x0001; //RB2->CMP1:C1OUT + RPINR8bits.IC3R = 0x000D; //RB13->IC3:IC3 + RPOR3bits.RP7R = 0x0002; //RB7->CMP2:C2OUT + RPOR7bits.RP15R = 0x0017; //RB15->SPI3:SDO3 + RPOR13bits.RP27R = 0x0007; //RA1->SPI1:SDO1 + RPINR7bits.IC2R = 0x0008; //RB8->IC2:IC2 + + __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS +} + diff --git a/mcc_generated_files/pin_manager.h b/mcc_generated_files/pin_manager.h new file mode 100644 index 0000000..7a93196 --- /dev/null +++ b/mcc_generated_files/pin_manager.h @@ -0,0 +1,678 @@ +/** + PIN MANAGER Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + pin_manager.h + + @Summary: + This is the generated manager file for the PIC24 / dsPIC33 / PIC32MM MCUs device. This manager + configures the pins direction, initial state, analog setting. + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Description: + This source file provides implementations for PIN MANAGER. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _PIN_MANAGER_H +#define _PIN_MANAGER_H +/** + Section: Includes +*/ +#include <xc.h> + +/** + Section: Device Pin Macros +*/ +/** + @Summary + Sets the GPIO pin, RA0, high using LATA0. + + @Description + Sets the GPIO pin, RA0, high using LATA0. + + @Preconditions + The RA0 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RA0 high (1) + IO_RA0_SetHigh(); + </code> + +*/ +#define IO_RA0_SetHigh() (_LATA0 = 1) +/** + @Summary + Sets the GPIO pin, RA0, low using LATA0. + + @Description + Sets the GPIO pin, RA0, low using LATA0. + + @Preconditions + The RA0 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RA0 low (0) + IO_RA0_SetLow(); + </code> + +*/ +#define IO_RA0_SetLow() (_LATA0 = 0) +/** + @Summary + Toggles the GPIO pin, RA0, using LATA0. + + @Description + Toggles the GPIO pin, RA0, using LATA0. + + @Preconditions + The RA0 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Toggle RA0 + IO_RA0_Toggle(); + </code> + +*/ +#define IO_RA0_Toggle() (_LATA0 ^= 1) +/** + @Summary + Reads the value of the GPIO pin, RA0. + + @Description + Reads the value of the GPIO pin, RA0. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t portValue; + + // Read RA0 + postValue = IO_RA0_GetValue(); + </code> + +*/ +#define IO_RA0_GetValue() _RA0 +/** + @Summary + Configures the GPIO pin, RA0, as an input. + + @Description + Configures the GPIO pin, RA0, as an input. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RA0 as an input + IO_RA0_SetDigitalInput(); + </code> + +*/ +#define IO_RA0_SetDigitalInput() (_TRISA0 = 1) +/** + @Summary + Configures the GPIO pin, RA0, as an output. + + @Description + Configures the GPIO pin, RA0, as an output. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RA0 as an output + IO_RA0_SetDigitalOutput(); + </code> + +*/ +#define IO_RA0_SetDigitalOutput() (_TRISA0 = 0) +/** + @Summary + Sets the GPIO pin, RA1, high using LATA1. + + @Description + Sets the GPIO pin, RA1, high using LATA1. + + @Preconditions + The RA1 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RA1 high (1) + SDO1_SetHigh(); + </code> + +*/ +#define SDO1_SetHigh() (_LATA1 = 1) +/** + @Summary + Sets the GPIO pin, RA1, low using LATA1. + + @Description + Sets the GPIO pin, RA1, low using LATA1. + + @Preconditions + The RA1 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RA1 low (0) + SDO1_SetLow(); + </code> + +*/ +#define SDO1_SetLow() (_LATA1 = 0) +/** + @Summary + Toggles the GPIO pin, RA1, using LATA1. + + @Description + Toggles the GPIO pin, RA1, using LATA1. + + @Preconditions + The RA1 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Toggle RA1 + SDO1_Toggle(); + </code> + +*/ +#define SDO1_Toggle() (_LATA1 ^= 1) +/** + @Summary + Reads the value of the GPIO pin, RA1. + + @Description + Reads the value of the GPIO pin, RA1. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t portValue; + + // Read RA1 + postValue = SDO1_GetValue(); + </code> + +*/ +#define SDO1_GetValue() _RA1 +/** + @Summary + Configures the GPIO pin, RA1, as an input. + + @Description + Configures the GPIO pin, RA1, as an input. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RA1 as an input + SDO1_SetDigitalInput(); + </code> + +*/ +#define SDO1_SetDigitalInput() (_TRISA1 = 1) +/** + @Summary + Configures the GPIO pin, RA1, as an output. + + @Description + Configures the GPIO pin, RA1, as an output. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RA1 as an output + SDO1_SetDigitalOutput(); + </code> + +*/ +#define SDO1_SetDigitalOutput() (_TRISA1 = 0) +/** + @Summary + Sets the GPIO pin, RB10, high using LATB10. + + @Description + Sets the GPIO pin, RB10, high using LATB10. + + @Preconditions + The RB10 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RB10 high (1) + SDO2_SetHigh(); + </code> + +*/ +#define SDO2_SetHigh() (_LATB10 = 1) +/** + @Summary + Sets the GPIO pin, RB10, low using LATB10. + + @Description + Sets the GPIO pin, RB10, low using LATB10. + + @Preconditions + The RB10 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RB10 low (0) + SDO2_SetLow(); + </code> + +*/ +#define SDO2_SetLow() (_LATB10 = 0) +/** + @Summary + Toggles the GPIO pin, RB10, using LATB10. + + @Description + Toggles the GPIO pin, RB10, using LATB10. + + @Preconditions + The RB10 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Toggle RB10 + SDO2_Toggle(); + </code> + +*/ +#define SDO2_Toggle() (_LATB10 ^= 1) +/** + @Summary + Reads the value of the GPIO pin, RB10. + + @Description + Reads the value of the GPIO pin, RB10. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t portValue; + + // Read RB10 + postValue = SDO2_GetValue(); + </code> + +*/ +#define SDO2_GetValue() _RB10 +/** + @Summary + Configures the GPIO pin, RB10, as an input. + + @Description + Configures the GPIO pin, RB10, as an input. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RB10 as an input + SDO2_SetDigitalInput(); + </code> + +*/ +#define SDO2_SetDigitalInput() (_TRISB10 = 1) +/** + @Summary + Configures the GPIO pin, RB10, as an output. + + @Description + Configures the GPIO pin, RB10, as an output. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RB10 as an output + SDO2_SetDigitalOutput(); + </code> + +*/ +#define SDO2_SetDigitalOutput() (_TRISB10 = 0) +/** + @Summary + Sets the GPIO pin, RB15, high using LATB15. + + @Description + Sets the GPIO pin, RB15, high using LATB15. + + @Preconditions + The RB15 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RB15 high (1) + SDO3_SetHigh(); + </code> + +*/ +#define SDO3_SetHigh() (_LATB15 = 1) +/** + @Summary + Sets the GPIO pin, RB15, low using LATB15. + + @Description + Sets the GPIO pin, RB15, low using LATB15. + + @Preconditions + The RB15 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Set RB15 low (0) + SDO3_SetLow(); + </code> + +*/ +#define SDO3_SetLow() (_LATB15 = 0) +/** + @Summary + Toggles the GPIO pin, RB15, using LATB15. + + @Description + Toggles the GPIO pin, RB15, using LATB15. + + @Preconditions + The RB15 must be set to an output. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Toggle RB15 + SDO3_Toggle(); + </code> + +*/ +#define SDO3_Toggle() (_LATB15 ^= 1) +/** + @Summary + Reads the value of the GPIO pin, RB15. + + @Description + Reads the value of the GPIO pin, RB15. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t portValue; + + // Read RB15 + postValue = SDO3_GetValue(); + </code> + +*/ +#define SDO3_GetValue() _RB15 +/** + @Summary + Configures the GPIO pin, RB15, as an input. + + @Description + Configures the GPIO pin, RB15, as an input. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RB15 as an input + SDO3_SetDigitalInput(); + </code> + +*/ +#define SDO3_SetDigitalInput() (_TRISB15 = 1) +/** + @Summary + Configures the GPIO pin, RB15, as an output. + + @Description + Configures the GPIO pin, RB15, as an output. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + // Sets the RB15 as an output + SDO3_SetDigitalOutput(); + </code> + +*/ +#define SDO3_SetDigitalOutput() (_TRISB15 = 0) + +/** + Section: Function Prototypes +*/ +/** + @Summary + Configures the pin settings of the PIC24FJ64GA702 + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Description + This is the generated manager file for the PIC24 / dsPIC33 / PIC32MM MCUs device. This manager + configures the pins direction, initial state, analog setting. + The peripheral pin select, PPS, configuration is also handled by this manager. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + void SYSTEM_Initialize(void) + { + // Other initializers are called from this function + PIN_MANAGER_Initialize(); + } + </code> + +*/ +void PIN_MANAGER_Initialize (void); + + + +#endif diff --git a/mcc_generated_files/spi1.c b/mcc_generated_files/spi1.c new file mode 100644 index 0000000..9dccb7e --- /dev/null +++ b/mcc_generated_files/spi1.c @@ -0,0 +1,234 @@ + +/** + SPI1 Generated Driver API Source File + + Company: + Microchip Technology Inc. + + File Name: + spi1.c + + @Summary + This is the generated source file for the SPI1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for SPI1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "spi1.h" + +/** + Section: File specific functions +*/ + +/** + SPI1 Transfer Mode Enumeration + + @Summary + Defines the Transfer Mode enumeration for SPI1. + + @Description + This defines the Transfer Mode enumeration for SPI1. + */ +typedef enum { + SPI1_TRANSFER_MODE_32BIT = 2, + SPI1_TRANSFER_MODE_16BIT = 1, + SPI1_TRANSFER_MODE_8BIT = 0 +}SPI1_TRANSFER_MODE; + +inline __attribute__((__always_inline__)) SPI1_TRANSFER_MODE SPI1_TransferModeGet(void); +void SPI1_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ); +uint16_t SPI1_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData); + +/** + Section: Driver Interface Function Definitions +*/ + + +void SPI1_Initialize (void) +{ + // AUDEN disabled; FRMEN disabled; AUDMOD I2S; FRMSYPW One clock wide; AUDMONO stereo; FRMCNT 0; MSSEN disabled; FRMPOL disabled; IGNROV disabled; SPISGNEXT not sign-extended; FRMSYNC disabled; URDTEN disabled; IGNTUR disabled; + SPI1CON1H = 0x00; + // WLENGTH 0; + SPI1CON2L = 0x00; + // SPIROV disabled; FRMERR disabled; + SPI1STATL = 0x00; + // SPI1BRGL 199; + SPI1BRGL = 0xC7; + // SPITBFEN disabled; SPITUREN disabled; FRMERREN disabled; SRMTEN disabled; SPIRBEN disabled; BUSYEN disabled; SPITBEN disabled; SPIROVEN disabled; SPIRBFEN disabled; + SPI1IMSKL = 0x00; + // RXMSK 0; TXWIEN disabled; TXMSK 0; RXWIEN disabled; + SPI1IMSKH = 0x00; + // SPI1URDTL 0; + SPI1URDTL = 0x00; + // SPI1URDTH 0; + SPI1URDTH = 0x00; + // SPIEN enabled; DISSDO disabled; MCLKEN FOSC/2; CKP Idle:Low, Active:High; SSEN disabled; MSTEN Master; MODE16 disabled; SMP Middle; DISSCK disabled; SPIFE Frame Sync pulse precedes; CKE Idle to Active; MODE32 disabled; SPISIDL disabled; ENHBUF enabled; DISSDI disabled; + SPI1CON1L = 0x8021; + +} + +void SPI1_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ) +{ + + while( SPI1STATLbits.SPITBF == true ) + { + + } + + SPI1BUFL = *((uint8_t*)pTransmitData); + + while ( SPI1STATLbits.SPIRBE == true) + { + + } + + *((uint8_t*)pReceiveData) = SPI1BUFL; +} + +uint16_t SPI1_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData) +{ + + uint16_t dataSentCount = 0; + uint16_t dataReceivedCount = 0; + uint16_t dummyDataReceived = 0; + uint16_t dummyDataTransmit = SPI1_DUMMY_DATA; + + uint8_t *pSend, *pReceived; + uint16_t addressIncrement; + uint16_t receiveAddressIncrement, sendAddressIncrement; + + addressIncrement = 1; + + // set the pointers and increment delta + // for transmit and receive operations + if (pTransmitData == NULL) + { + sendAddressIncrement = 0; + pSend = (uint8_t*)&dummyDataTransmit; + } + else + { + sendAddressIncrement = addressIncrement; + pSend = (uint8_t*)pTransmitData; + } + + if (pReceiveData == NULL) + { + receiveAddressIncrement = 0; + pReceived = (uint8_t*)&dummyDataReceived; + } + else + { + receiveAddressIncrement = addressIncrement; + pReceived = (uint8_t*)pReceiveData; + } + + + while( SPI1STATLbits.SPITBF == true ) + { + + } + + while (dataSentCount < byteCount) + { + if ( SPI1STATLbits.SPITBF != true ) + { + + SPI1BUFL = *pSend; + + pSend += sendAddressIncrement; + dataSentCount++; + + } + + if (SPI1STATLbits.SPIRBE == false) + { + + *pReceived = SPI1BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + + } + while (dataReceivedCount < byteCount) + { + if (SPI1STATLbits.SPIRBE == false) + { + + *pReceived = SPI1BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + } + + return dataSentCount; +} + +uint8_t SPI1_Exchange8bit( uint8_t data ) +{ + uint8_t receiveData; + + SPI1_Exchange(&data, &receiveData); + + return (receiveData); +} + + +uint16_t SPI1_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived) +{ + return (SPI1_ExchangeBuffer(dataTransmitted, byteCount, dataReceived)); +} + +inline __attribute__((__always_inline__)) SPI1_TRANSFER_MODE SPI1_TransferModeGet(void) +{ + if (SPI1CON1Lbits.MODE32 == 1) + return SPI1_TRANSFER_MODE_32BIT; + else if (SPI1CON1Lbits.MODE16 == 1) + return SPI1_TRANSFER_MODE_16BIT; + else + return SPI1_TRANSFER_MODE_8BIT; +} + +SPI1_STATUS SPI1_StatusGet() +{ + return(SPI1STATL); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/spi1.c.off b/mcc_generated_files/spi1.c.off new file mode 100644 index 0000000..8b92ac8 --- /dev/null +++ b/mcc_generated_files/spi1.c.off @@ -0,0 +1,234 @@ + +/** + SPI1 Generated Driver API Source File + + Company: + Microchip Technology Inc. + + File Name: + spi1.c + + @Summary + This is the generated source file for the SPI1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for SPI1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "spi1.h" + +/** + Section: File specific functions +*/ + +/** + SPI1 Transfer Mode Enumeration + + @Summary + Defines the Transfer Mode enumeration for SPI1. + + @Description + This defines the Transfer Mode enumeration for SPI1. + */ +typedef enum { + SPI1_TRANSFER_MODE_32BIT = 2, + SPI1_TRANSFER_MODE_16BIT = 1, + SPI1_TRANSFER_MODE_8BIT = 0 +}SPI1_TRANSFER_MODE; + +inline __attribute__((__always_inline__)) SPI1_TRANSFER_MODE SPI1_TransferModeGet(void); +void SPI1_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ); +uint16_t SPI1_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData); + +/** + Section: Driver Interface Function Definitions +*/ + + +void SPI1_Initialize (void) +{ + // AUDEN disabled; FRMEN disabled; AUDMOD I2S; FRMSYPW One clock wide; AUDMONO stereo; FRMCNT 0; MSSEN disabled; FRMPOL disabled; IGNROV disabled; SPISGNEXT not sign-extended; FRMSYNC disabled; URDTEN disabled; IGNTUR disabled; + SPI1CON1H = 0x00; + // WLENGTH 0; + SPI1CON2L = 0x00; + // SPIROV disabled; FRMERR disabled; + SPI1STATL = 0x00; + // SPI1BRGL 199; + SPI1BRGL = 0xC7; + // SPITBFEN disabled; SPITUREN disabled; FRMERREN disabled; SRMTEN disabled; SPIRBEN disabled; BUSYEN disabled; SPITBEN disabled; SPIROVEN disabled; SPIRBFEN disabled; + SPI1IMSKL = 0x00; + // RXMSK 0; TXWIEN disabled; TXMSK 0; RXWIEN disabled; + SPI1IMSKH = 0x00; + // SPI1URDTL 0; + SPI1URDTL = 0x00; + // SPI1URDTH 0; + SPI1URDTH = 0x00; + // SPIEN disabled; DISSDO disabled; MCLKEN FOSC/2; CKP Idle:Low, Active:High; SSEN disabled; MSTEN Master; MODE16 disabled; SMP Middle; DISSCK disabled; SPIFE Frame Sync pulse precedes; CKE Idle to Active; MODE32 disabled; SPISIDL disabled; ENHBUF enabled; DISSDI disabled; + SPI1CON1L = 0x21; + +} + +void SPI1_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ) +{ + + while( SPI1STATLbits.SPITBF == true ) + { + + } + + SPI1BUFL = *((uint8_t*)pTransmitData); + + while ( SPI1STATLbits.SPIRBE == true) + { + + } + + *((uint8_t*)pReceiveData) = SPI1BUFL; +} + +uint16_t SPI1_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData) +{ + + uint16_t dataSentCount = 0; + uint16_t dataReceivedCount = 0; + uint16_t dummyDataReceived = 0; + uint16_t dummyDataTransmit = SPI1_DUMMY_DATA; + + uint8_t *pSend, *pReceived; + uint16_t addressIncrement; + uint16_t receiveAddressIncrement, sendAddressIncrement; + + addressIncrement = 1; + + // set the pointers and increment delta + // for transmit and receive operations + if (pTransmitData == NULL) + { + sendAddressIncrement = 0; + pSend = (uint8_t*)&dummyDataTransmit; + } + else + { + sendAddressIncrement = addressIncrement; + pSend = (uint8_t*)pTransmitData; + } + + if (pReceiveData == NULL) + { + receiveAddressIncrement = 0; + pReceived = (uint8_t*)&dummyDataReceived; + } + else + { + receiveAddressIncrement = addressIncrement; + pReceived = (uint8_t*)pReceiveData; + } + + + while( SPI1STATLbits.SPITBF == true ) + { + + } + + while (dataSentCount < byteCount) + { + if ( SPI1STATLbits.SPITBF != true ) + { + + SPI1BUFL = *pSend; + + pSend += sendAddressIncrement; + dataSentCount++; + + } + + if (SPI1STATLbits.SPIRBE == false) + { + + *pReceived = SPI1BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + + } + while (dataReceivedCount < byteCount) + { + if (SPI1STATLbits.SPIRBE == false) + { + + *pReceived = SPI1BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + } + + return dataSentCount; +} + +uint8_t SPI1_Exchange8bit( uint8_t data ) +{ + uint8_t receiveData; + + SPI1_Exchange(&data, &receiveData); + + return (receiveData); +} + + +uint16_t SPI1_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived) +{ + return (SPI1_ExchangeBuffer(dataTransmitted, byteCount, dataReceived)); +} + +inline __attribute__((__always_inline__)) SPI1_TRANSFER_MODE SPI1_TransferModeGet(void) +{ + if (SPI1CON1Lbits.MODE32 == 1) + return SPI1_TRANSFER_MODE_32BIT; + else if (SPI1CON1Lbits.MODE16 == 1) + return SPI1_TRANSFER_MODE_16BIT; + else + return SPI1_TRANSFER_MODE_8BIT; +} + +SPI1_STATUS SPI1_StatusGet() +{ + return(SPI1STATL); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/spi1.h b/mcc_generated_files/spi1.h new file mode 100644 index 0000000..7d92513 --- /dev/null +++ b/mcc_generated_files/spi1.h @@ -0,0 +1,260 @@ + +/** + SPI1 Generated Driver API Header File + + Company: + Microchip Technology Inc. + + File Name: + spi1.h + + @Summary + This is the generated header file for the SPI1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for SPI1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _SPI1_H +#define _SPI1_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> +#include <stddef.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Data Type Definitions +*/ + +/** + SPI1_DUMMY_DATA + + @Summary + Dummy data to be sent. + + @Description + Dummy data to be sent, when no input buffer is specified in the buffer APIs. + */ +#define SPI1_DUMMY_DATA 0x0 + +/** + SPI1_FIFO_FILL_LIMIT + + @Summary + FIFO fill limit for data transmission. + + @Description + The amount of data to be filled in the FIFO during transmission. The maximum limit allowed is 8. + */ +#define SPI1_FIFO_FILL_LIMIT 0x8 + +//Check to make sure that the FIFO limit does not exceed the maximum allowed limit of 8 +#if (SPI1_FIFO_FILL_LIMIT > 8) + + #define SPI1_FIFO_FILL_LIMIT 8 + +#endif + +/** + SPI1 Status Enumeration + + @Summary + Defines the status enumeration for SPI1. + + @Description + This defines the status enumeration for SPI1. + */ +typedef enum { + SPI1_SHIFT_REGISTER_EMPTY = 1 << 7, + SPI1_RECEIVE_OVERFLOW = 1 << 6, + SPI1_RECEIVE_FIFO_EMPTY = 1 << 5, + SPI1_TRANSMIT_BUFFER_FULL = 1 << 1, + SPI1_RECEIVE_BUFFER_FULL = 1 << 0 +}SPI1_STATUS; + +/** + Section: Interface Routines +*/ + +/** + @Summary + Initializes the SPI instance : 1 + + @Description + This routine initializes the spi1 driver instance for : 1 + index, making it ready for clients to open and use it. + + This routine must be called before any other SPI1 routine is called. + This routine should only be called once during system initialization. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t myWriteBuffer[MY_BUFFER_SIZE]; + uint16_t myReadBuffer[MY_BUFFER_SIZE]; + uint16_t writeData; + uint16_t readData; + SPI1_STATUS status; + unsigned int total; + SPI1_Initialize; + + total = 0; + numberOfBytesFactor = 2; + do + { + total = SPI1_Exchange16bitBuffer( &myWriteBuffer[total], (MY_BUFFER_SIZE - total)*numberOfBytesFactor, &myReadBuffer[total]); + + // Do something else... + + } while( total < MY_BUFFER_SIZE ); + + readData = SPI1_Exchange16bit( writeData); + + status = SPI1_StatusGet(); + + </code> + +*/ + +void SPI1_Initialize (void); + + + + +/** + @Summary + Exchanges one byte of data from SPI1 + + @Description + This routine exchanges one byte of data from the SPI1. + This is a blocking routine. + + @Preconditions + The SPI1_Initialize routine must have been called for the specified + SPI1 driver instance. + + @Returns + Data read from SPI1 + + @Param + data - Data to be written onto SPI1. + + @Example + Refer to SPI1_Initialize() for an example +*/ + +uint8_t SPI1_Exchange8bit( uint8_t data ); + +/** + @Summary + Exchanges data from a buffer of size one byte from SPI1 + + @Description + This routine exchanges data from a buffer of size one byte from the SPI1. + This is a blocking routine. + + @Preconditions + The SPI1_Initialize routine must have been called for the specified + SPI1 driver instance. + + @Returns + Number of 8bit data written/read. + + @Param + dataTransmitted - Buffer of data to be written onto SPI1. + + @Param + byteCount - Number of bytes to be exchanged. + + @Param + dataReceived - Buffer of data to be read from SPI1. + + @Example + Refer to SPI1_Initialize() for an example + +*/ + +uint16_t SPI1_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived); + +/** + @Summary + Returns the value of the status register of SPI instance : 1 + + @Description + This routine returns the value of the status register of SPI1 driver instance : 1 + + @Preconditions + None. + + @Returns + Returns the value of the status register. + + @Param + None. + + @Example + Refer to SPI1_Initialize() for an example + +*/ + +SPI1_STATUS SPI1_StatusGet(void); + + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_SPI1_H + +/******************************************************************************* + End of File +*/ diff --git a/mcc_generated_files/spi2.c b/mcc_generated_files/spi2.c new file mode 100644 index 0000000..a47350a --- /dev/null +++ b/mcc_generated_files/spi2.c @@ -0,0 +1,234 @@ + +/** + SPI2 Generated Driver API Source File + + Company: + Microchip Technology Inc. + + File Name: + spi2.c + + @Summary + This is the generated source file for the SPI2 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for SPI2. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "spi2.h" + +/** + Section: File specific functions +*/ + +/** + SPI2 Transfer Mode Enumeration + + @Summary + Defines the Transfer Mode enumeration for SPI2. + + @Description + This defines the Transfer Mode enumeration for SPI2. + */ +typedef enum { + SPI2_TRANSFER_MODE_32BIT = 2, + SPI2_TRANSFER_MODE_16BIT = 1, + SPI2_TRANSFER_MODE_8BIT = 0 +}SPI2_TRANSFER_MODE; + +inline __attribute__((__always_inline__)) SPI2_TRANSFER_MODE SPI2_TransferModeGet(void); +void SPI2_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ); +uint16_t SPI2_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData); + +/** + Section: Driver Interface Function Definitions +*/ + + +void SPI2_Initialize (void) +{ + // AUDEN disabled; FRMEN disabled; AUDMOD I2S; FRMSYPW One clock wide; AUDMONO stereo; FRMCNT 0; MSSEN disabled; FRMPOL disabled; IGNROV disabled; SPISGNEXT not sign-extended; FRMSYNC disabled; URDTEN disabled; IGNTUR disabled; + SPI2CON1H = 0x00; + // WLENGTH 0; + SPI2CON2L = 0x00; + // SPIROV disabled; FRMERR disabled; + SPI2STATL = 0x00; + // SPI2BRGL 199; + SPI2BRGL = 0xC7; + // SPITBFEN disabled; SPITUREN disabled; FRMERREN disabled; SRMTEN disabled; SPIRBEN disabled; BUSYEN disabled; SPITBEN disabled; SPIROVEN disabled; SPIRBFEN disabled; + SPI2IMSKL = 0x00; + // RXMSK 0; TXWIEN disabled; TXMSK 0; RXWIEN disabled; + SPI2IMSKH = 0x00; + // SPI2URDTL 0; + SPI2URDTL = 0x00; + // SPI2URDTH 0; + SPI2URDTH = 0x00; + // SPIEN enabled; DISSDO disabled; MCLKEN FOSC/2; CKP Idle:Low, Active:High; SSEN disabled; MSTEN Master; MODE16 disabled; SMP Middle; DISSCK disabled; SPIFE Frame Sync pulse precedes; CKE Idle to Active; MODE32 disabled; SPISIDL disabled; ENHBUF enabled; DISSDI disabled; + SPI2CON1L = 0x8021; + +} + +void SPI2_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ) +{ + + while( SPI2STATLbits.SPITBF == true ) + { + + } + + SPI2BUFL = *((uint8_t*)pTransmitData); + + while ( SPI2STATLbits.SPIRBE == true) + { + + } + + *((uint8_t*)pReceiveData) = SPI2BUFL; +} + +uint16_t SPI2_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData) +{ + + uint16_t dataSentCount = 0; + uint16_t dataReceivedCount = 0; + uint16_t dummyDataReceived = 0; + uint16_t dummyDataTransmit = SPI2_DUMMY_DATA; + + uint8_t *pSend, *pReceived; + uint16_t addressIncrement; + uint16_t receiveAddressIncrement, sendAddressIncrement; + + addressIncrement = 1; + + // set the pointers and increment delta + // for transmit and receive operations + if (pTransmitData == NULL) + { + sendAddressIncrement = 0; + pSend = (uint8_t*)&dummyDataTransmit; + } + else + { + sendAddressIncrement = addressIncrement; + pSend = (uint8_t*)pTransmitData; + } + + if (pReceiveData == NULL) + { + receiveAddressIncrement = 0; + pReceived = (uint8_t*)&dummyDataReceived; + } + else + { + receiveAddressIncrement = addressIncrement; + pReceived = (uint8_t*)pReceiveData; + } + + + while( SPI2STATLbits.SPITBF == true ) + { + + } + + while (dataSentCount < byteCount) + { + if ( SPI2STATLbits.SPITBF != true ) + { + + SPI2BUFL = *pSend; + + pSend += sendAddressIncrement; + dataSentCount++; + + } + + if (SPI2STATLbits.SPIRBE == false) + { + + *pReceived = SPI2BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + + } + while (dataReceivedCount < byteCount) + { + if (SPI2STATLbits.SPIRBE == false) + { + + *pReceived = SPI2BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + } + + return dataSentCount; +} + +uint8_t SPI2_Exchange8bit( uint8_t data ) +{ + uint8_t receiveData; + + SPI2_Exchange(&data, &receiveData); + + return (receiveData); +} + + +uint16_t SPI2_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived) +{ + return (SPI2_ExchangeBuffer(dataTransmitted, byteCount, dataReceived)); +} + +inline __attribute__((__always_inline__)) SPI2_TRANSFER_MODE SPI2_TransferModeGet(void) +{ + if (SPI2CON1Lbits.MODE32 == 1) + return SPI2_TRANSFER_MODE_32BIT; + else if (SPI2CON1Lbits.MODE16 == 1) + return SPI2_TRANSFER_MODE_16BIT; + else + return SPI2_TRANSFER_MODE_8BIT; +} + +SPI2_STATUS SPI2_StatusGet() +{ + return(SPI2STATL); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/spi2.h b/mcc_generated_files/spi2.h new file mode 100644 index 0000000..3cdb9cd --- /dev/null +++ b/mcc_generated_files/spi2.h @@ -0,0 +1,260 @@ + +/** + SPI2 Generated Driver API Header File + + Company: + Microchip Technology Inc. + + File Name: + spi2.h + + @Summary + This is the generated header file for the SPI2 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for SPI2. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _SPI2_H +#define _SPI2_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> +#include <stddef.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Data Type Definitions +*/ + +/** + SPI2_DUMMY_DATA + + @Summary + Dummy data to be sent. + + @Description + Dummy data to be sent, when no input buffer is specified in the buffer APIs. + */ +#define SPI2_DUMMY_DATA 0x0 + +/** + SPI2_FIFO_FILL_LIMIT + + @Summary + FIFO fill limit for data transmission. + + @Description + The amount of data to be filled in the FIFO during transmission. The maximum limit allowed is 8. + */ +#define SPI2_FIFO_FILL_LIMIT 0x8 + +//Check to make sure that the FIFO limit does not exceed the maximum allowed limit of 8 +#if (SPI2_FIFO_FILL_LIMIT > 8) + + #define SPI2_FIFO_FILL_LIMIT 8 + +#endif + +/** + SPI2 Status Enumeration + + @Summary + Defines the status enumeration for SPI2. + + @Description + This defines the status enumeration for SPI2. + */ +typedef enum { + SPI2_SHIFT_REGISTER_EMPTY = 1 << 7, + SPI2_RECEIVE_OVERFLOW = 1 << 6, + SPI2_RECEIVE_FIFO_EMPTY = 1 << 5, + SPI2_TRANSMIT_BUFFER_FULL = 1 << 1, + SPI2_RECEIVE_BUFFER_FULL = 1 << 0 +}SPI2_STATUS; + +/** + Section: Interface Routines +*/ + +/** + @Summary + Initializes the SPI instance : 2 + + @Description + This routine initializes the spi2 driver instance for : 2 + index, making it ready for clients to open and use it. + + This routine must be called before any other SPI2 routine is called. + This routine should only be called once during system initialization. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t myWriteBuffer[MY_BUFFER_SIZE]; + uint16_t myReadBuffer[MY_BUFFER_SIZE]; + uint16_t writeData; + uint16_t readData; + SPI2_STATUS status; + unsigned int total; + SPI2_Initialize; + + total = 0; + numberOfBytesFactor = 2; + do + { + total = SPI2_Exchange16bitBuffer( &myWriteBuffer[total], (MY_BUFFER_SIZE - total)*numberOfBytesFactor, &myReadBuffer[total]); + + // Do something else... + + } while( total < MY_BUFFER_SIZE ); + + readData = SPI2_Exchange16bit( writeData); + + status = SPI2_StatusGet(); + + </code> + +*/ + +void SPI2_Initialize (void); + + + + +/** + @Summary + Exchanges one byte of data from SPI2 + + @Description + This routine exchanges one byte of data from the SPI2. + This is a blocking routine. + + @Preconditions + The SPI2_Initialize routine must have been called for the specified + SPI2 driver instance. + + @Returns + Data read from SPI2 + + @Param + data - Data to be written onto SPI2. + + @Example + Refer to SPI2_Initialize() for an example +*/ + +uint8_t SPI2_Exchange8bit( uint8_t data ); + +/** + @Summary + Exchanges data from a buffer of size one byte from SPI2 + + @Description + This routine exchanges data from a buffer of size one byte from the SPI2. + This is a blocking routine. + + @Preconditions + The SPI2_Initialize routine must have been called for the specified + SPI2 driver instance. + + @Returns + Number of 8bit data written/read. + + @Param + dataTransmitted - Buffer of data to be written onto SPI2. + + @Param + byteCount - Number of bytes to be exchanged. + + @Param + dataReceived - Buffer of data to be read from SPI2. + + @Example + Refer to SPI2_Initialize() for an example + +*/ + +uint16_t SPI2_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived); + +/** + @Summary + Returns the value of the status register of SPI instance : 2 + + @Description + This routine returns the value of the status register of SPI2 driver instance : 2 + + @Preconditions + None. + + @Returns + Returns the value of the status register. + + @Param + None. + + @Example + Refer to SPI2_Initialize() for an example + +*/ + +SPI2_STATUS SPI2_StatusGet(void); + + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_SPI2_H + +/******************************************************************************* + End of File +*/ diff --git a/mcc_generated_files/spi3.c b/mcc_generated_files/spi3.c new file mode 100644 index 0000000..35b9a93 --- /dev/null +++ b/mcc_generated_files/spi3.c @@ -0,0 +1,234 @@ + +/** + SPI3 Generated Driver API Source File + + Company: + Microchip Technology Inc. + + File Name: + spi3.c + + @Summary + This is the generated source file for the SPI3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for SPI3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include "spi3.h" + +/** + Section: File specific functions +*/ + +/** + SPI3 Transfer Mode Enumeration + + @Summary + Defines the Transfer Mode enumeration for SPI3. + + @Description + This defines the Transfer Mode enumeration for SPI3. + */ +typedef enum { + SPI3_TRANSFER_MODE_32BIT = 2, + SPI3_TRANSFER_MODE_16BIT = 1, + SPI3_TRANSFER_MODE_8BIT = 0 +}SPI3_TRANSFER_MODE; + +inline __attribute__((__always_inline__)) SPI3_TRANSFER_MODE SPI3_TransferModeGet(void); +void SPI3_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ); +uint16_t SPI3_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData); + +/** + Section: Driver Interface Function Definitions +*/ + + +void SPI3_Initialize (void) +{ + // AUDEN disabled; FRMEN disabled; AUDMOD I2S; FRMSYPW One clock wide; AUDMONO stereo; FRMCNT 0; MSSEN disabled; FRMPOL disabled; IGNROV disabled; SPISGNEXT not sign-extended; FRMSYNC disabled; URDTEN disabled; IGNTUR disabled; + SPI3CON1H = 0x00; + // WLENGTH 0; + SPI3CON2L = 0x00; + // SPIROV disabled; FRMERR disabled; + SPI3STATL = 0x00; + // SPI3BRGL 199; + SPI3BRGL = 0xC7; + // SPITBFEN disabled; SPITUREN disabled; FRMERREN disabled; SRMTEN disabled; SPIRBEN disabled; BUSYEN disabled; SPITBEN disabled; SPIROVEN disabled; SPIRBFEN disabled; + SPI3IMSKL = 0x00; + // RXMSK 0; TXWIEN disabled; TXMSK 0; RXWIEN disabled; + SPI3IMSKH = 0x00; + // SPI3URDTL 0; + SPI3URDTL = 0x00; + // SPI3URDTH 0; + SPI3URDTH = 0x00; + // SPIEN enabled; DISSDO disabled; MCLKEN FOSC/2; CKP Idle:Low, Active:High; SSEN disabled; MSTEN Master; MODE16 disabled; SMP Middle; DISSCK disabled; SPIFE Frame Sync pulse precedes; CKE Idle to Active; MODE32 disabled; SPISIDL disabled; ENHBUF enabled; DISSDI disabled; + SPI3CON1L = 0x8021; + +} + +void SPI3_Exchange( uint8_t *pTransmitData, uint8_t *pReceiveData ) +{ + + while( SPI3STATLbits.SPITBF == true ) + { + + } + + SPI3BUFL = *((uint8_t*)pTransmitData); + + while ( SPI3STATLbits.SPIRBE == true) + { + + } + + *((uint8_t*)pReceiveData) = SPI3BUFL; +} + +uint16_t SPI3_ExchangeBuffer(uint8_t *pTransmitData, uint16_t byteCount, uint8_t *pReceiveData) +{ + + uint16_t dataSentCount = 0; + uint16_t dataReceivedCount = 0; + uint16_t dummyDataReceived = 0; + uint16_t dummyDataTransmit = SPI3_DUMMY_DATA; + + uint8_t *pSend, *pReceived; + uint16_t addressIncrement; + uint16_t receiveAddressIncrement, sendAddressIncrement; + + addressIncrement = 1; + + // set the pointers and increment delta + // for transmit and receive operations + if (pTransmitData == NULL) + { + sendAddressIncrement = 0; + pSend = (uint8_t*)&dummyDataTransmit; + } + else + { + sendAddressIncrement = addressIncrement; + pSend = (uint8_t*)pTransmitData; + } + + if (pReceiveData == NULL) + { + receiveAddressIncrement = 0; + pReceived = (uint8_t*)&dummyDataReceived; + } + else + { + receiveAddressIncrement = addressIncrement; + pReceived = (uint8_t*)pReceiveData; + } + + + while( SPI3STATLbits.SPITBF == true ) + { + + } + + while (dataSentCount < byteCount) + { + if ( SPI3STATLbits.SPITBF != true ) + { + + SPI3BUFL = *pSend; + + pSend += sendAddressIncrement; + dataSentCount++; + + } + + if (SPI3STATLbits.SPIRBE == false) + { + + *pReceived = SPI3BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + + } + while (dataReceivedCount < byteCount) + { + if (SPI3STATLbits.SPIRBE == false) + { + + *pReceived = SPI3BUFL; + + pReceived += receiveAddressIncrement; + dataReceivedCount++; + } + } + + return dataSentCount; +} + +uint8_t SPI3_Exchange8bit( uint8_t data ) +{ + uint8_t receiveData; + + SPI3_Exchange(&data, &receiveData); + + return (receiveData); +} + + +uint16_t SPI3_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived) +{ + return (SPI3_ExchangeBuffer(dataTransmitted, byteCount, dataReceived)); +} + +inline __attribute__((__always_inline__)) SPI3_TRANSFER_MODE SPI3_TransferModeGet(void) +{ + if (SPI3CON1Lbits.MODE32 == 1) + return SPI3_TRANSFER_MODE_32BIT; + else if (SPI3CON1Lbits.MODE16 == 1) + return SPI3_TRANSFER_MODE_16BIT; + else + return SPI3_TRANSFER_MODE_8BIT; +} + +SPI3_STATUS SPI3_StatusGet() +{ + return(SPI3STATL); +} + +/** + End of File +*/ diff --git a/mcc_generated_files/spi3.h b/mcc_generated_files/spi3.h new file mode 100644 index 0000000..4cd42d0 --- /dev/null +++ b/mcc_generated_files/spi3.h @@ -0,0 +1,260 @@ + +/** + SPI3 Generated Driver API Header File + + Company: + Microchip Technology Inc. + + File Name: + spi3.h + + @Summary + This is the generated header file for the SPI3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for SPI3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _SPI3_H +#define _SPI3_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> +#include <stddef.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + +/** + Section: Data Type Definitions +*/ + +/** + SPI3_DUMMY_DATA + + @Summary + Dummy data to be sent. + + @Description + Dummy data to be sent, when no input buffer is specified in the buffer APIs. + */ +#define SPI3_DUMMY_DATA 0x0 + +/** + SPI3_FIFO_FILL_LIMIT + + @Summary + FIFO fill limit for data transmission. + + @Description + The amount of data to be filled in the FIFO during transmission. The maximum limit allowed is 8. + */ +#define SPI3_FIFO_FILL_LIMIT 0x8 + +//Check to make sure that the FIFO limit does not exceed the maximum allowed limit of 8 +#if (SPI3_FIFO_FILL_LIMIT > 8) + + #define SPI3_FIFO_FILL_LIMIT 8 + +#endif + +/** + SPI3 Status Enumeration + + @Summary + Defines the status enumeration for SPI3. + + @Description + This defines the status enumeration for SPI3. + */ +typedef enum { + SPI3_SHIFT_REGISTER_EMPTY = 1 << 7, + SPI3_RECEIVE_OVERFLOW = 1 << 6, + SPI3_RECEIVE_FIFO_EMPTY = 1 << 5, + SPI3_TRANSMIT_BUFFER_FULL = 1 << 1, + SPI3_RECEIVE_BUFFER_FULL = 1 << 0 +}SPI3_STATUS; + +/** + Section: Interface Routines +*/ + +/** + @Summary + Initializes the SPI instance : 3 + + @Description + This routine initializes the spi3 driver instance for : 3 + index, making it ready for clients to open and use it. + + This routine must be called before any other SPI3 routine is called. + This routine should only be called once during system initialization. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + <code> + uint16_t myWriteBuffer[MY_BUFFER_SIZE]; + uint16_t myReadBuffer[MY_BUFFER_SIZE]; + uint16_t writeData; + uint16_t readData; + SPI3_STATUS status; + unsigned int total; + SPI3_Initialize; + + total = 0; + numberOfBytesFactor = 2; + do + { + total = SPI3_Exchange16bitBuffer( &myWriteBuffer[total], (MY_BUFFER_SIZE - total)*numberOfBytesFactor, &myReadBuffer[total]); + + // Do something else... + + } while( total < MY_BUFFER_SIZE ); + + readData = SPI3_Exchange16bit( writeData); + + status = SPI3_StatusGet(); + + </code> + +*/ + +void SPI3_Initialize (void); + + + + +/** + @Summary + Exchanges one byte of data from SPI3 + + @Description + This routine exchanges one byte of data from the SPI3. + This is a blocking routine. + + @Preconditions + The SPI3_Initialize routine must have been called for the specified + SPI3 driver instance. + + @Returns + Data read from SPI3 + + @Param + data - Data to be written onto SPI3. + + @Example + Refer to SPI3_Initialize() for an example +*/ + +uint8_t SPI3_Exchange8bit( uint8_t data ); + +/** + @Summary + Exchanges data from a buffer of size one byte from SPI3 + + @Description + This routine exchanges data from a buffer of size one byte from the SPI3. + This is a blocking routine. + + @Preconditions + The SPI3_Initialize routine must have been called for the specified + SPI3 driver instance. + + @Returns + Number of 8bit data written/read. + + @Param + dataTransmitted - Buffer of data to be written onto SPI3. + + @Param + byteCount - Number of bytes to be exchanged. + + @Param + dataReceived - Buffer of data to be read from SPI3. + + @Example + Refer to SPI3_Initialize() for an example + +*/ + +uint16_t SPI3_Exchange8bitBuffer(uint8_t *dataTransmitted, uint16_t byteCount, uint8_t *dataReceived); + +/** + @Summary + Returns the value of the status register of SPI instance : 3 + + @Description + This routine returns the value of the status register of SPI3 driver instance : 3 + + @Preconditions + None. + + @Returns + Returns the value of the status register. + + @Param + None. + + @Example + Refer to SPI3_Initialize() for an example + +*/ + +SPI3_STATUS SPI3_StatusGet(void); + + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_SPI3_H + +/******************************************************************************* + End of File +*/ diff --git a/mcc_generated_files/system.c b/mcc_generated_files/system.c new file mode 100644 index 0000000..b854acc --- /dev/null +++ b/mcc_generated_files/system.c @@ -0,0 +1,137 @@ +/** + @Generated PIC24 / dsPIC33 / PIC32MM MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + system.h + + @Summary: + This is the sysetm.h file generated using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This header file provides implementations for driver APIs for all modules selected in the GUI. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +// Configuration bits: selected in the GUI + +// FSEC +#pragma config BWRP = OFF //Boot Segment Write-Protect bit->Boot Segment may be written +#pragma config BSS = DISABLED //Boot Segment Code-Protect Level bits->No Protection (other than BWRP) +#pragma config BSEN = OFF //Boot Segment Control bit->No Boot Segment +#pragma config GWRP = OFF //General Segment Write-Protect bit->General Segment may be written +#pragma config GSS = DISABLED //General Segment Code-Protect Level bits->No Protection (other than GWRP) +#pragma config CWRP = OFF //Configuration Segment Write-Protect bit->Configuration Segment may be written +#pragma config CSS = DISABLED //Configuration Segment Code-Protect Level bits->No Protection (other than CWRP) +#pragma config AIVTDIS = OFF //Alternate Interrupt Vector Table bit->Disabled AIVT + +// FBSLIM +#pragma config BSLIM = 8191 //Boot Segment Flash Page Address Limit bits->8191 + +// FOSCSEL +#pragma config FNOSC = FRC //Oscillator Source Selection->Internal Fast RC (FRC) +#pragma config PLLMODE = PLL96DIV4 //PLL Mode Selection->96 MHz PLL. Oscillator input is divided by 4 (16 MHz input) +#pragma config IESO = OFF //Two-speed Oscillator Start-up Enable bit->Start up with user-selected oscillator source + +// FOSC +#pragma config POSCMD = NONE //Primary Oscillator Mode Select bits->Primary Oscillator disabled +#pragma config OSCIOFCN = ON //OSC2 Pin Function bit->OSC2 is general purpose digital I/O pin +#pragma config SOSCSEL = OFF //SOSC Power Selection Configuration bits->Digital (SCLKI) mode +#pragma config PLLSS = PLL_FRC //PLL Secondary Selection Configuration bit->PLL is fed by the on-chip Fast RC (FRC) oscillator +#pragma config IOL1WAY = ON //Peripheral pin select configuration bit->Allow only one reconfiguration +#pragma config FCKSM = CSECMD //Clock Switching Mode bits->Clock switching is enabled,Fail-safe Clock Monitor is disabled + +// FWDT +#pragma config WDTPS = PS32768 //Watchdog Timer Postscaler bits->1:32768 +#pragma config FWPSA = PR128 //Watchdog Timer Prescaler bit->1:128 +#pragma config FWDTEN = OFF //Watchdog Timer Enable bits->WDT and SWDTEN disabled +#pragma config WINDIS = OFF //Watchdog Timer Window Enable bit->Watchdog Timer in Non-Window mode +#pragma config WDTWIN = WIN25 //Watchdog Timer Window Select bits->WDT Window is 25% of WDT period +#pragma config WDTCMX = WDTCLK //WDT MUX Source Select bits->WDT clock source is determined by the WDTCLK Configuration bits +#pragma config WDTCLK = LPRC //WDT Clock Source Select bits->WDT uses LPRC + +// FPOR +#pragma config BOREN = ON //Brown Out Enable bit->Brown Out Enable Bit +#pragma config LPCFG = OFF //Low power regulator control->No Retention Sleep +#pragma config DNVPEN = ENABLE //Downside Voltage Protection Enable bit->Downside protection enabled using ZPBOR when BOR is inactive + +// FICD +#pragma config ICS = PGD1 //ICD Communication Channel Select bits->Communicate on PGEC1 and PGED1 +#pragma config JTAGEN = OFF //JTAG Enable bit->JTAG is disabled + +// FDEVOPT1 +#pragma config ALTCMPI = DISABLE //Alternate Comparator Input Enable bit->C1INC, C2INC, and C3INC are on their standard pin locations +#pragma config TMPRPIN = OFF //Tamper Pin Enable bit->TMPRN pin function is disabled +#pragma config SOSCHP = ON //SOSC High Power Enable bit (valid only when SOSCSEL = 1->Enable SOSC high power mode (default) +#pragma config ALTI2C1 = ALTI2CDIS //Alternate I2C pin Location->ASDA1 and ASCL1 on RB5 and RB6 + +#include "pin_manager.h" +#include "clock.h" +#include "system.h" +#include "i2c1.h" +#include "ic3.h" +#include "ic2.h" +#include "ic1.h" +#include "memory/flash.h" +#include "cmp3.h" +#include "cmp2.h" +#include "cmp1.h" +#include "cvr.h" +#include "interrupt_manager.h" +#include "traps.h" +#include "spi3.h" +#include "spi2.h" +#include "spi1.h" +#include "tmr3.h" + +void SYSTEM_Initialize(void) +{ + PIN_MANAGER_Initialize(); + CLOCK_Initialize(); + INTERRUPT_Initialize(); + IC2_Initialize(); + CMP2_Initialize(); + SPI1_Initialize(); + CVR_Initialize(); + SPI3_Initialize(); + I2C1_Initialize(); + SPI2_Initialize(); + CMP1_Initialize(); + CMP3_Initialize(); + TMR3_Initialize(); + IC1_Initialize(); + IC3_Initialize(); +} + +/** + End of File +*/ \ No newline at end of file diff --git a/mcc_generated_files/system.h b/mcc_generated_files/system.h new file mode 100644 index 0000000..5503277 --- /dev/null +++ b/mcc_generated_files/system.h @@ -0,0 +1,70 @@ +/** + @Generated PIC24 / dsPIC33 / PIC32MM MCUs Source File + + @Company: + Microchip Technology Inc. + + @File Name: + system.h + + @Summary: + This is the system.h file generated using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This header file provides implementations for driver APIs for all modules selected in the GUI. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _XTAL_FREQ +#define _XTAL_FREQ 8000000UL +#endif + +#include "xc.h" +#include "stdint.h" + +#ifndef SYSTEM_H +#define SYSTEM_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); +#endif /* SYSTEM_H */ +/** + End of File +*/ \ No newline at end of file diff --git a/mcc_generated_files/tmr3.c b/mcc_generated_files/tmr3.c new file mode 100644 index 0000000..e27e831 --- /dev/null +++ b/mcc_generated_files/tmr3.c @@ -0,0 +1,186 @@ + +/** + TMR3 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + tmr3.c + + @Summary + This is the generated source file for the TMR3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for TMR3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Included Files +*/ + +#include <stdio.h> +#include "tmr3.h" + +/** + Section: File specific functions +*/ + +/** + Section: Data Type Definitions +*/ + +/** TMR Driver Hardware Instance Object + + @Summary + Defines the object required for the maintenance of the hardware instance. + + @Description + This defines the object required for the maintenance of the hardware + instance. This object exists once per hardware instance of the peripheral. + + Remarks: + None. +*/ + +typedef struct _TMR_OBJ_STRUCT +{ + /* Timer Elapsed */ + volatile bool timerElapsed; + /*Software Counter value*/ + volatile uint8_t count; + +} TMR_OBJ; + +static TMR_OBJ tmr3_obj; + +/** + Section: Driver Interface +*/ + +void TMR3_Initialize (void) +{ + //TMR3 0; + TMR3 = 0x00; + //Period = 0.131072 s; Frequency = 4000000 Hz; PR3 65535; + PR3 = 0xFFFF; + //TCKPS 1:8; TON enabled; TSIDL disabled; TCS FOSC/2; TECS SOSC; TGATE disabled; + T3CON = 0x8010; + + + tmr3_obj.timerElapsed = false; + +} + + +void TMR3_Tasks_16BitOperation( void ) +{ + /* Check if the Timer Interrupt/Status is set */ + if(IFS0bits.T3IF) + { + tmr3_obj.count++; + tmr3_obj.timerElapsed = true; + IFS0bits.T3IF = false; + } +} + +void TMR3_Period16BitSet( uint16_t value ) +{ + /* Update the counter values */ + PR3 = value; + /* Reset the status information */ + tmr3_obj.timerElapsed = false; +} + +uint16_t TMR3_Period16BitGet( void ) +{ + return( PR3 ); +} + +void TMR3_Counter16BitSet ( uint16_t value ) +{ + /* Update the counter values */ + TMR3 = value; + /* Reset the status information */ + tmr3_obj.timerElapsed = false; +} + +uint16_t TMR3_Counter16BitGet( void ) +{ + return( TMR3 ); +} + + + + +void TMR3_Start( void ) +{ + /* Reset the status information */ + tmr3_obj.timerElapsed = false; + + + /* Start the Timer */ + T3CONbits.TON = 1; +} + +void TMR3_Stop( void ) +{ + /* Stop the Timer */ + T3CONbits.TON = false; + +} + +bool TMR3_GetElapsedThenClear(void) +{ + bool status; + + status = tmr3_obj.timerElapsed; + + if(status == true) + { + tmr3_obj.timerElapsed = false; + } + return status; +} + +int TMR3_SoftwareCounterGet(void) +{ + return tmr3_obj.count; +} + +void TMR3_SoftwareCounterClear(void) +{ + tmr3_obj.count = 0; +} + +/** + End of File +*/ diff --git a/mcc_generated_files/tmr3.h b/mcc_generated_files/tmr3.h new file mode 100644 index 0000000..5c1fd9e --- /dev/null +++ b/mcc_generated_files/tmr3.h @@ -0,0 +1,329 @@ +/** + TMR3 Generated Driver API Header File + + @Company + Microchip Technology Inc. + + @File Name + tmr3.h + + @Summary + This is the generated header file for the TMR3 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This header file provides APIs for driver for TMR3. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ + +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _TMR3_H +#define _TMR3_H + +/** + Section: Included Files +*/ + +#include <xc.h> +#include <stdint.h> +#include <stdbool.h> + +#ifdef __cplusplus // Provide C++ Compatibility + + extern "C" { + +#endif + + +/** + Section: Interface Routines +*/ + +/** + @Summary + Initializes hardware and data for the given instance of the TMR module + + @Description + This routine initializes hardware for the instance of the TMR module, + using the hardware initialization given data. It also initializes all + necessary internal data. + + @Param + None. + + @Returns + None + + @Example + <code> + bool statusTimer1; + uint16_t period; + uint16_t value; + + period = 0x20; + + TMR3_Initialize(); + + TMR3_Period16BitSet(period); + + if((value = TMR3_Period16BitGet())== period) + { + TMR3_Start(); + } + + while(1) + { + TMR3_Tasks(); + if( (statusTimer1 = TMR3_GetElapsedThenClear()) == true) + { + TMR3_Stop(); + } + } + </code> +*/ +void TMR3_Initialize (void); + +/** + @Summary + Used to maintain the driver's state machine and implement its ISR + + @Description + This routine is used to maintain the driver's internal state machine and + implement its ISR for interrupt-driven implementations. + + @Param + None. + + @Returns + None + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +void TMR3_Tasks_16BitOperation( void ); + +/** + @Summary + Updates 16-bit timer value + + @Description + This routine updates 16-bit timer value + + @Param + None. + + @Returns + None + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +void TMR3_Period16BitSet( uint16_t value ); + +/** + + @Summary + Provides the timer 16-bit period value + + @Description + This routine provides the timer 16-bit period value + + @Param + None. + + @Returns + Timer 16-bit period value + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +uint16_t TMR3_Period16BitGet( void ); + +/** + @Summary + Updates the timer's 16-bit value + + @Description + This routine updates the timer's 16-bit value + + @Param + None. + + @Returns + None + + @Example + <code> + uint16_t value=0xF0F0; + + TMR3_Counter16BitSet(value)); + + while(1) + { + TMR3_Tasks(); + if( (value == TMR3_Counter16BitGet())) + { + TMR3_Stop(); + } + } + </code> +*/ + +void TMR3_Counter16BitSet ( uint16_t value ); + +/** + @Summary + Provides 16-bit current counter value + + @Description + This routine provides 16-bit current counter value + + @Param + None. + + @Returns + 16-bit current counter value + + @Example + Refer to the example of TMR3_Counter16BitSet(); +*/ + +uint16_t TMR3_Counter16BitGet( void ); + + +/** + @Summary + Starts the TMR + + @Description + This routine starts the TMR + + @Param + None. + + @Returns + None + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +void TMR3_Start( void ); + +/** + @Summary + Stops the TMR + + @Description + This routine stops the TMR + + @Param + None. + + @Returns + None + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +void TMR3_Stop( void ); + +/** + @Summary + Returns the elapsed status of the timer and clears if flag is set. + + @Description + This routine returns the elapsed status of the timer and clears + flag if its set. + + @Param + None. + + @Returns + True - Timer has elapsed. + False - Timer has not elapsed. + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +bool TMR3_GetElapsedThenClear(void); + +/** + @Summary + Returns the software counter value. + + @Description + This routine returns the software counter value. + + @Param + None. + + @Returns + Software counter value. + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +int TMR3_SoftwareCounterGet(void); + +/** + @Summary + Clears the software counter value. + + @Description + This routine clears the software counter value. + + @Param + None. + + @Returns + None + + @Example + Refer to the example of TMR3_Initialize(); +*/ + +void TMR3_SoftwareCounterClear(void); + +#ifdef __cplusplus // Provide C++ Compatibility + + } + +#endif + +#endif //_TMR3_H + +/** + End of File +*/ diff --git a/mcc_generated_files/traps.c b/mcc_generated_files/traps.c new file mode 100644 index 0000000..5cf479b --- /dev/null +++ b/mcc_generated_files/traps.c @@ -0,0 +1,128 @@ +/** + System Traps Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + traps.h + + @Summary: + This is the generated driver implementation file for handling traps + using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This source file provides implementations for PIC24 / dsPIC33 / PIC32MM MCUs traps. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +/** + Section: Includes +*/ +#include <xc.h> +#include "traps.h" + +#define ERROR_HANDLER __attribute__((interrupt,no_auto_psv)) +#define FAILSAFE_STACK_GUARDSIZE 8 + +/** + * a private place to store the error code if we run into a severe error + */ +static uint16_t TRAPS_error_code = -1; + +/** + * Halts + * + * @param code error code + */ +void __attribute__((weak)) TRAPS_halt_on_error(uint16_t code) +{ + TRAPS_error_code = code; +#ifdef __DEBUG + __builtin_software_breakpoint(); + /* If we are in debug mode, cause a software breakpoint in the debugger */ +#endif + while(1); + +} + +/** + * Sets the stack pointer to a backup area of memory, in case we run into + * a stack error (in which case we can't really trust the stack pointer) + */ +inline static void use_failsafe_stack(void) +{ + static uint8_t failsafe_stack[32]; + asm volatile ( + " mov %[pstack], W15\n" + : + : [pstack]"r"(failsafe_stack) + ); +/* Controls where the stack pointer limit is, relative to the end of the + * failsafe stack + */ + SPLIM = (uint16_t)(((uint8_t *)failsafe_stack) + sizeof(failsafe_stack) + - FAILSAFE_STACK_GUARDSIZE); +} + +/** Oscillator Fail Trap vector**/ +void ERROR_HANDLER _OscillatorFail(void) +{ + INTCON1bits.OSCFAIL = 0; //Clear the trap flag + TRAPS_halt_on_error(TRAPS_OSC_FAIL); +} +/** Stack Error Trap Vector**/ +void ERROR_HANDLER _StackError(void) +{ + /* We use a failsafe stack: the presence of a stack-pointer error + * means that we cannot trust the stack to operate correctly unless + * we set the stack pointer to a safe place. + */ + use_failsafe_stack(); + INTCON1bits.STKERR = 0; //Clear the trap flag + TRAPS_halt_on_error(TRAPS_STACK_ERR); +} +/** Address Error Trap Vector**/ +void ERROR_HANDLER _AddressError(void) +{ + INTCON1bits.ADDRERR = 0; //Clear the trap flag + TRAPS_halt_on_error(TRAPS_ADDRESS_ERR); +} +/** Math Error Trap Vector**/ +void ERROR_HANDLER _MathError(void) +{ + INTCON1bits.MATHERR = 0; //Clear the trap flag + TRAPS_halt_on_error(TRAPS_MATH_ERR); +} +/** NVM Error Trap Vector**/ +void ERROR_HANDLER _NVMError(void) +{ + INTCON4bits.SGHT = 0; //Clear the trap flag + TRAPS_halt_on_error(TRAPS_NVM_ERR); +} diff --git a/mcc_generated_files/traps.h b/mcc_generated_files/traps.h new file mode 100644 index 0000000..23baab2 --- /dev/null +++ b/mcc_generated_files/traps.h @@ -0,0 +1,87 @@ +/** + System Traps Generated Driver File + + @Company: + Microchip Technology Inc. + + @File Name: + traps.h + + @Summary: + This is the generated driver implementation file for handling traps + using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description: + This source file provides implementations for PIC24 / dsPIC33 / PIC32MM MCUs traps. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.167.0 + Device : PIC24FJ64GA702 + The generated drivers are tested against the following: + Compiler : XC16 v1.50 + MPLAB : MPLAB X v5.35 +*/ +/* + (c) 2020 Microchip Technology Inc. and its subsidiaries. You may use this + software and any derivatives exclusively with Microchip products. + + 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION + WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. + + 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. + + MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE + TERMS. +*/ + +#ifndef _TRAPS_H +#define _TRAPS_H + +#include <stdint.h> + +/** + * Error codes + */ +typedef enum +{ + /* ----- Traps ----- */ + TRAPS_OSC_FAIL = 0, /** Oscillator Fail Trap vector */ + TRAPS_STACK_ERR = 1, /** Stack Error Trap Vector */ + TRAPS_ADDRESS_ERR = 2, /** Address Error Trap Vector */ + TRAPS_MATH_ERR = 3, /** Math Error Trap Vector */ + TRAPS_NVM_ERR = 7, /** NVM Error Trap Vector */ +} TRAPS_ERROR_CODE; + +/** + @Summary + Default handler for the traps + + @Description + This routine will be called whenever a trap happens. It stores the trap + error code and waits forever. + This routine has a weak attribute and can be over written. + + @Preconditions + None. + + @Returns + None. + + @Param + None. + + @Example + None. + +*/ +void __attribute__((weak)) TRAPS_halt_on_error(uint16_t code); + +#endif \ No newline at end of file diff --git a/nbproject/Makefile-default.mk b/nbproject/Makefile-default.mk new file mode 100644 index 0000000..eac83fa --- /dev/null +++ b/nbproject/Makefile-default.mk @@ -0,0 +1,595 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a -pre and a -post target defined where you can add customized code. +# +# This makefile implements configuration specific macros and targets. + + +# Include project Makefile +ifeq "${IGNORE_LOCAL}" "TRUE" +# do not include local makefile. User is passing all local related variables already +else +include Makefile +# Include makefile containing local settings +ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk" +include nbproject/Makefile-local-default.mk +endif +endif + +# Environment +MKDIR=mkdir -p +RM=rm -f +MV=mv +CP=cp + +# Macros +CND_CONF=default +ifeq ($(TYPE_IMAGE), DEBUG_RUN) +IMAGE_TYPE=debug +OUTPUT_SUFFIX=elf +DEBUGGABLE_SUFFIX=elf +FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +else +IMAGE_TYPE=production +OUTPUT_SUFFIX=hex +DEBUGGABLE_SUFFIX=elf +FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +endif + +ifeq ($(COMPARE_BUILD), true) +COMPARISON_BUILD=-mafrlcsj +else +COMPARISON_BUILD= +endif + +ifdef SUB_IMAGE_ADDRESS +SUB_IMAGE_ADDRESS_COMMAND=--image-address $(SUB_IMAGE_ADDRESS) +else +SUB_IMAGE_ADDRESS_COMMAND= +endif + +# Object Directory +OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE} + +# Distribution Directory +DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} + +# Source Files Quoted if spaced +SOURCEFILES_QUOTED_IF_SPACED=mcc_generated_files/memory/flash.s mcc_generated_files/spi3.c mcc_generated_files/spi1.c mcc_generated_files/spi2.c mcc_generated_files/system.c mcc_generated_files/cvr.c mcc_generated_files/ic3.c mcc_generated_files/clock.c mcc_generated_files/ic2.c mcc_generated_files/ic1.c mcc_generated_files/cmp2.c mcc_generated_files/cmp1.c mcc_generated_files/cmp3.c mcc_generated_files/interrupt_manager.c mcc_generated_files/mcc.c mcc_generated_files/pin_manager.c mcc_generated_files/tmr3.c mcc_generated_files/traps.c mcc_generated_files/i2c1.c src/registers.c src/rcu2_i2c.c src/crc16.c src/HBA1.c src/HBA2.c src/HBA2_RX.c src/HBA2_TX.c src/HBA3.c src/HBA3_RX.c src/HBA3_TX.c src/HBA1_TX.c src/HBA1_RX.c main.c + +# Object Files Quoted if spaced +OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/mcc_generated_files/memory/flash.o ${OBJECTDIR}/mcc_generated_files/spi3.o ${OBJECTDIR}/mcc_generated_files/spi1.o ${OBJECTDIR}/mcc_generated_files/spi2.o ${OBJECTDIR}/mcc_generated_files/system.o ${OBJECTDIR}/mcc_generated_files/cvr.o ${OBJECTDIR}/mcc_generated_files/ic3.o ${OBJECTDIR}/mcc_generated_files/clock.o ${OBJECTDIR}/mcc_generated_files/ic2.o ${OBJECTDIR}/mcc_generated_files/ic1.o ${OBJECTDIR}/mcc_generated_files/cmp2.o ${OBJECTDIR}/mcc_generated_files/cmp1.o ${OBJECTDIR}/mcc_generated_files/cmp3.o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o ${OBJECTDIR}/mcc_generated_files/mcc.o ${OBJECTDIR}/mcc_generated_files/pin_manager.o ${OBJECTDIR}/mcc_generated_files/tmr3.o ${OBJECTDIR}/mcc_generated_files/traps.o ${OBJECTDIR}/mcc_generated_files/i2c1.o ${OBJECTDIR}/src/registers.o ${OBJECTDIR}/src/rcu2_i2c.o ${OBJECTDIR}/src/crc16.o ${OBJECTDIR}/src/HBA1.o ${OBJECTDIR}/src/HBA2.o ${OBJECTDIR}/src/HBA2_RX.o ${OBJECTDIR}/src/HBA2_TX.o ${OBJECTDIR}/src/HBA3.o ${OBJECTDIR}/src/HBA3_RX.o ${OBJECTDIR}/src/HBA3_TX.o ${OBJECTDIR}/src/HBA1_TX.o ${OBJECTDIR}/src/HBA1_RX.o ${OBJECTDIR}/main.o +POSSIBLE_DEPFILES=${OBJECTDIR}/mcc_generated_files/memory/flash.o.d ${OBJECTDIR}/mcc_generated_files/spi3.o.d ${OBJECTDIR}/mcc_generated_files/spi1.o.d ${OBJECTDIR}/mcc_generated_files/spi2.o.d ${OBJECTDIR}/mcc_generated_files/system.o.d ${OBJECTDIR}/mcc_generated_files/cvr.o.d ${OBJECTDIR}/mcc_generated_files/ic3.o.d ${OBJECTDIR}/mcc_generated_files/clock.o.d ${OBJECTDIR}/mcc_generated_files/ic2.o.d ${OBJECTDIR}/mcc_generated_files/ic1.o.d ${OBJECTDIR}/mcc_generated_files/cmp2.o.d ${OBJECTDIR}/mcc_generated_files/cmp1.o.d ${OBJECTDIR}/mcc_generated_files/cmp3.o.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d ${OBJECTDIR}/mcc_generated_files/mcc.o.d ${OBJECTDIR}/mcc_generated_files/pin_manager.o.d ${OBJECTDIR}/mcc_generated_files/tmr3.o.d ${OBJECTDIR}/mcc_generated_files/traps.o.d ${OBJECTDIR}/mcc_generated_files/i2c1.o.d ${OBJECTDIR}/src/registers.o.d ${OBJECTDIR}/src/rcu2_i2c.o.d ${OBJECTDIR}/src/crc16.o.d ${OBJECTDIR}/src/HBA1.o.d ${OBJECTDIR}/src/HBA2.o.d ${OBJECTDIR}/src/HBA2_RX.o.d ${OBJECTDIR}/src/HBA2_TX.o.d ${OBJECTDIR}/src/HBA3.o.d ${OBJECTDIR}/src/HBA3_RX.o.d ${OBJECTDIR}/src/HBA3_TX.o.d ${OBJECTDIR}/src/HBA1_TX.o.d ${OBJECTDIR}/src/HBA1_RX.o.d ${OBJECTDIR}/main.o.d + +# Object Files +OBJECTFILES=${OBJECTDIR}/mcc_generated_files/memory/flash.o ${OBJECTDIR}/mcc_generated_files/spi3.o ${OBJECTDIR}/mcc_generated_files/spi1.o ${OBJECTDIR}/mcc_generated_files/spi2.o ${OBJECTDIR}/mcc_generated_files/system.o ${OBJECTDIR}/mcc_generated_files/cvr.o ${OBJECTDIR}/mcc_generated_files/ic3.o ${OBJECTDIR}/mcc_generated_files/clock.o ${OBJECTDIR}/mcc_generated_files/ic2.o ${OBJECTDIR}/mcc_generated_files/ic1.o ${OBJECTDIR}/mcc_generated_files/cmp2.o ${OBJECTDIR}/mcc_generated_files/cmp1.o ${OBJECTDIR}/mcc_generated_files/cmp3.o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o ${OBJECTDIR}/mcc_generated_files/mcc.o ${OBJECTDIR}/mcc_generated_files/pin_manager.o ${OBJECTDIR}/mcc_generated_files/tmr3.o ${OBJECTDIR}/mcc_generated_files/traps.o ${OBJECTDIR}/mcc_generated_files/i2c1.o ${OBJECTDIR}/src/registers.o ${OBJECTDIR}/src/rcu2_i2c.o ${OBJECTDIR}/src/crc16.o ${OBJECTDIR}/src/HBA1.o ${OBJECTDIR}/src/HBA2.o ${OBJECTDIR}/src/HBA2_RX.o ${OBJECTDIR}/src/HBA2_TX.o ${OBJECTDIR}/src/HBA3.o ${OBJECTDIR}/src/HBA3_RX.o ${OBJECTDIR}/src/HBA3_TX.o ${OBJECTDIR}/src/HBA1_TX.o ${OBJECTDIR}/src/HBA1_RX.o ${OBJECTDIR}/main.o + +# Source Files +SOURCEFILES=mcc_generated_files/memory/flash.s mcc_generated_files/spi3.c mcc_generated_files/spi1.c mcc_generated_files/spi2.c mcc_generated_files/system.c mcc_generated_files/cvr.c mcc_generated_files/ic3.c mcc_generated_files/clock.c mcc_generated_files/ic2.c mcc_generated_files/ic1.c mcc_generated_files/cmp2.c mcc_generated_files/cmp1.c mcc_generated_files/cmp3.c mcc_generated_files/interrupt_manager.c mcc_generated_files/mcc.c mcc_generated_files/pin_manager.c mcc_generated_files/tmr3.c mcc_generated_files/traps.c mcc_generated_files/i2c1.c src/registers.c src/rcu2_i2c.c src/crc16.c src/HBA1.c src/HBA2.c src/HBA2_RX.c src/HBA2_TX.c src/HBA3.c src/HBA3_RX.c src/HBA3_TX.c src/HBA1_TX.c src/HBA1_RX.c main.c + + + +CFLAGS= +ASFLAGS= +LDLIBSOPTIONS= + +############# Tool locations ########################################## +# If you copy a project from one host to another, the path where the # +# compiler is installed may be different. # +# If you open this project with MPLAB X in the new host, this # +# makefile will be regenerated and the paths will be corrected. # +####################################################################### +# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build +FIXDEPS=fixDeps + +.build-conf: ${BUILD_SUBPROJECTS} +ifneq ($(INFORMATION_MESSAGE), ) + @echo $(INFORMATION_MESSAGE) +endif + ${MAKE} -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX} + +MP_PROCESSOR_OPTION=24FJ64GA702 +MP_LINKER_FILE_OPTION=,--script=p24FJ64GA702.gld +# ------------------------------------------------------------------------------------ +# Rules for buildStep: compile +ifeq ($(TYPE_IMAGE), DEBUG_RUN) +${OBJECTDIR}/mcc_generated_files/spi3.o: mcc_generated_files/spi3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/spi3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/spi3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/spi3.c -o ${OBJECTDIR}/mcc_generated_files/spi3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/spi3.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/spi3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/spi1.o: mcc_generated_files/spi1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/spi1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/spi1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/spi1.c -o ${OBJECTDIR}/mcc_generated_files/spi1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/spi1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/spi1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/spi2.o: mcc_generated_files/spi2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/spi2.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/spi2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/spi2.c -o ${OBJECTDIR}/mcc_generated_files/spi2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/spi2.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/spi2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/system.o: mcc_generated_files/system.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/system.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/system.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/system.c -o ${OBJECTDIR}/mcc_generated_files/system.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/system.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/system.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cvr.o: mcc_generated_files/cvr.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cvr.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cvr.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cvr.c -o ${OBJECTDIR}/mcc_generated_files/cvr.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cvr.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cvr.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/ic3.o: mcc_generated_files/ic3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/ic3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/ic3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/ic3.c -o ${OBJECTDIR}/mcc_generated_files/ic3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/ic3.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/ic3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/clock.o: mcc_generated_files/clock.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/clock.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/clock.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/clock.c -o ${OBJECTDIR}/mcc_generated_files/clock.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/clock.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/clock.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/ic2.o: mcc_generated_files/ic2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/ic2.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/ic2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/ic2.c -o ${OBJECTDIR}/mcc_generated_files/ic2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/ic2.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/ic2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/ic1.o: mcc_generated_files/ic1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/ic1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/ic1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/ic1.c -o ${OBJECTDIR}/mcc_generated_files/ic1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/ic1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/ic1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cmp2.o: mcc_generated_files/cmp2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp2.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cmp2.c -o ${OBJECTDIR}/mcc_generated_files/cmp2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cmp2.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cmp2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cmp1.o: mcc_generated_files/cmp1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cmp1.c -o ${OBJECTDIR}/mcc_generated_files/cmp1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cmp1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cmp1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cmp3.o: mcc_generated_files/cmp3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cmp3.c -o ${OBJECTDIR}/mcc_generated_files/cmp3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cmp3.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cmp3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/interrupt_manager.o: mcc_generated_files/interrupt_manager.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/interrupt_manager.c -o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/mcc.o: mcc_generated_files/mcc.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/mcc.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/mcc.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/mcc.c -o ${OBJECTDIR}/mcc_generated_files/mcc.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/mcc.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/mcc.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/pin_manager.o: mcc_generated_files/pin_manager.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/pin_manager.c -o ${OBJECTDIR}/mcc_generated_files/pin_manager.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/pin_manager.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/pin_manager.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/tmr3.o: mcc_generated_files/tmr3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/tmr3.c -o ${OBJECTDIR}/mcc_generated_files/tmr3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/tmr3.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/tmr3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/traps.o: mcc_generated_files/traps.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/traps.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/traps.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/traps.c -o ${OBJECTDIR}/mcc_generated_files/traps.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/traps.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/traps.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/i2c1.o: mcc_generated_files/i2c1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/i2c1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/i2c1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/i2c1.c -o ${OBJECTDIR}/mcc_generated_files/i2c1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/i2c1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/i2c1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/registers.o: src/registers.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/registers.o.d + @${RM} ${OBJECTDIR}/src/registers.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/registers.c -o ${OBJECTDIR}/src/registers.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/registers.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/registers.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/rcu2_i2c.o: src/rcu2_i2c.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/rcu2_i2c.o.d + @${RM} ${OBJECTDIR}/src/rcu2_i2c.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/rcu2_i2c.c -o ${OBJECTDIR}/src/rcu2_i2c.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/rcu2_i2c.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/rcu2_i2c.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/crc16.o: src/crc16.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/crc16.o.d + @${RM} ${OBJECTDIR}/src/crc16.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/crc16.c -o ${OBJECTDIR}/src/crc16.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/crc16.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/crc16.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA1.o: src/HBA1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA1.o.d + @${RM} ${OBJECTDIR}/src/HBA1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA1.c -o ${OBJECTDIR}/src/HBA1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA2.o: src/HBA2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA2.o.d + @${RM} ${OBJECTDIR}/src/HBA2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA2.c -o ${OBJECTDIR}/src/HBA2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA2.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA2_RX.o: src/HBA2_RX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA2_RX.o.d + @${RM} ${OBJECTDIR}/src/HBA2_RX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA2_RX.c -o ${OBJECTDIR}/src/HBA2_RX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA2_RX.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA2_RX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA2_TX.o: src/HBA2_TX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA2_TX.o.d + @${RM} ${OBJECTDIR}/src/HBA2_TX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA2_TX.c -o ${OBJECTDIR}/src/HBA2_TX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA2_TX.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA2_TX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA3.o: src/HBA3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA3.o.d + @${RM} ${OBJECTDIR}/src/HBA3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA3.c -o ${OBJECTDIR}/src/HBA3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA3.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA3_RX.o: src/HBA3_RX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA3_RX.o.d + @${RM} ${OBJECTDIR}/src/HBA3_RX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA3_RX.c -o ${OBJECTDIR}/src/HBA3_RX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA3_RX.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA3_RX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA3_TX.o: src/HBA3_TX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA3_TX.o.d + @${RM} ${OBJECTDIR}/src/HBA3_TX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA3_TX.c -o ${OBJECTDIR}/src/HBA3_TX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA3_TX.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA3_TX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA1_TX.o: src/HBA1_TX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA1_TX.o.d + @${RM} ${OBJECTDIR}/src/HBA1_TX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA1_TX.c -o ${OBJECTDIR}/src/HBA1_TX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA1_TX.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA1_TX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA1_RX.o: src/HBA1_RX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA1_RX.o.d + @${RM} ${OBJECTDIR}/src/HBA1_RX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA1_RX.c -o ${OBJECTDIR}/src/HBA1_RX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA1_RX.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA1_RX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}" + @${RM} ${OBJECTDIR}/main.o.d + @${RM} ${OBJECTDIR}/main.o + ${MP_CC} $(MP_EXTRA_CC_PRE) main.c -o ${OBJECTDIR}/main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/main.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -mno-eds-warn -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +else +${OBJECTDIR}/mcc_generated_files/spi3.o: mcc_generated_files/spi3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/spi3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/spi3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/spi3.c -o ${OBJECTDIR}/mcc_generated_files/spi3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/spi3.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/spi3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/spi1.o: mcc_generated_files/spi1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/spi1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/spi1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/spi1.c -o ${OBJECTDIR}/mcc_generated_files/spi1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/spi1.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/spi1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/spi2.o: mcc_generated_files/spi2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/spi2.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/spi2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/spi2.c -o ${OBJECTDIR}/mcc_generated_files/spi2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/spi2.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/spi2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/system.o: mcc_generated_files/system.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/system.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/system.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/system.c -o ${OBJECTDIR}/mcc_generated_files/system.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/system.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/system.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cvr.o: mcc_generated_files/cvr.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cvr.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cvr.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cvr.c -o ${OBJECTDIR}/mcc_generated_files/cvr.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cvr.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cvr.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/ic3.o: mcc_generated_files/ic3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/ic3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/ic3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/ic3.c -o ${OBJECTDIR}/mcc_generated_files/ic3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/ic3.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/ic3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/clock.o: mcc_generated_files/clock.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/clock.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/clock.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/clock.c -o ${OBJECTDIR}/mcc_generated_files/clock.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/clock.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/clock.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/ic2.o: mcc_generated_files/ic2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/ic2.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/ic2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/ic2.c -o ${OBJECTDIR}/mcc_generated_files/ic2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/ic2.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/ic2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/ic1.o: mcc_generated_files/ic1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/ic1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/ic1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/ic1.c -o ${OBJECTDIR}/mcc_generated_files/ic1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/ic1.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/ic1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cmp2.o: mcc_generated_files/cmp2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp2.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cmp2.c -o ${OBJECTDIR}/mcc_generated_files/cmp2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cmp2.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cmp2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cmp1.o: mcc_generated_files/cmp1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cmp1.c -o ${OBJECTDIR}/mcc_generated_files/cmp1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cmp1.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cmp1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/cmp3.o: mcc_generated_files/cmp3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/cmp3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/cmp3.c -o ${OBJECTDIR}/mcc_generated_files/cmp3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/cmp3.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/cmp3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/interrupt_manager.o: mcc_generated_files/interrupt_manager.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/interrupt_manager.c -o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/interrupt_manager.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/mcc.o: mcc_generated_files/mcc.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/mcc.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/mcc.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/mcc.c -o ${OBJECTDIR}/mcc_generated_files/mcc.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/mcc.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/mcc.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/pin_manager.o: mcc_generated_files/pin_manager.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/pin_manager.c -o ${OBJECTDIR}/mcc_generated_files/pin_manager.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/pin_manager.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/pin_manager.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/tmr3.o: mcc_generated_files/tmr3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr3.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/tmr3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/tmr3.c -o ${OBJECTDIR}/mcc_generated_files/tmr3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/tmr3.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/tmr3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/traps.o: mcc_generated_files/traps.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/traps.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/traps.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/traps.c -o ${OBJECTDIR}/mcc_generated_files/traps.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/traps.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/traps.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/mcc_generated_files/i2c1.o: mcc_generated_files/i2c1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files" + @${RM} ${OBJECTDIR}/mcc_generated_files/i2c1.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/i2c1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) mcc_generated_files/i2c1.c -o ${OBJECTDIR}/mcc_generated_files/i2c1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/mcc_generated_files/i2c1.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/i2c1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/registers.o: src/registers.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/registers.o.d + @${RM} ${OBJECTDIR}/src/registers.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/registers.c -o ${OBJECTDIR}/src/registers.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/registers.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/registers.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/rcu2_i2c.o: src/rcu2_i2c.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/rcu2_i2c.o.d + @${RM} ${OBJECTDIR}/src/rcu2_i2c.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/rcu2_i2c.c -o ${OBJECTDIR}/src/rcu2_i2c.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/rcu2_i2c.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/rcu2_i2c.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/crc16.o: src/crc16.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/crc16.o.d + @${RM} ${OBJECTDIR}/src/crc16.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/crc16.c -o ${OBJECTDIR}/src/crc16.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/crc16.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/crc16.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA1.o: src/HBA1.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA1.o.d + @${RM} ${OBJECTDIR}/src/HBA1.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA1.c -o ${OBJECTDIR}/src/HBA1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA1.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA2.o: src/HBA2.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA2.o.d + @${RM} ${OBJECTDIR}/src/HBA2.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA2.c -o ${OBJECTDIR}/src/HBA2.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA2.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA2_RX.o: src/HBA2_RX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA2_RX.o.d + @${RM} ${OBJECTDIR}/src/HBA2_RX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA2_RX.c -o ${OBJECTDIR}/src/HBA2_RX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA2_RX.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA2_RX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA2_TX.o: src/HBA2_TX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA2_TX.o.d + @${RM} ${OBJECTDIR}/src/HBA2_TX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA2_TX.c -o ${OBJECTDIR}/src/HBA2_TX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA2_TX.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA2_TX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA3.o: src/HBA3.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA3.o.d + @${RM} ${OBJECTDIR}/src/HBA3.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA3.c -o ${OBJECTDIR}/src/HBA3.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA3.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA3_RX.o: src/HBA3_RX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA3_RX.o.d + @${RM} ${OBJECTDIR}/src/HBA3_RX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA3_RX.c -o ${OBJECTDIR}/src/HBA3_RX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA3_RX.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA3_RX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA3_TX.o: src/HBA3_TX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA3_TX.o.d + @${RM} ${OBJECTDIR}/src/HBA3_TX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA3_TX.c -o ${OBJECTDIR}/src/HBA3_TX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA3_TX.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA3_TX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA1_TX.o: src/HBA1_TX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA1_TX.o.d + @${RM} ${OBJECTDIR}/src/HBA1_TX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA1_TX.c -o ${OBJECTDIR}/src/HBA1_TX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA1_TX.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA1_TX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/src/HBA1_RX.o: src/HBA1_RX.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/src" + @${RM} ${OBJECTDIR}/src/HBA1_RX.o.d + @${RM} ${OBJECTDIR}/src/HBA1_RX.o + ${MP_CC} $(MP_EXTRA_CC_PRE) src/HBA1_RX.c -o ${OBJECTDIR}/src/HBA1_RX.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/src/HBA1_RX.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/src/HBA1_RX.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}" + @${RM} ${OBJECTDIR}/main.o.d + @${RM} ${OBJECTDIR}/main.o + ${MP_CC} $(MP_EXTRA_CC_PRE) main.c -o ${OBJECTDIR}/main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/main.o.d" -mno-eds-warn -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -msmall-data -O2 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +endif + +# ------------------------------------------------------------------------------------ +# Rules for buildStep: assemble +ifeq ($(TYPE_IMAGE), DEBUG_RUN) +${OBJECTDIR}/mcc_generated_files/memory/flash.o: mcc_generated_files/memory/flash.s nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files/memory" + @${RM} ${OBJECTDIR}/mcc_generated_files/memory/flash.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/memory/flash.o + ${MP_CC} $(MP_EXTRA_AS_PRE) mcc_generated_files/memory/flash.s -o ${OBJECTDIR}/mcc_generated_files/memory/flash.o -c -mcpu=$(MP_PROCESSOR_OPTION) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc -Wa,-MD,"${OBJECTDIR}/mcc_generated_files/memory/flash.o.d",--defsym=__MPLAB_BUILD=1,--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,-g,--no-relax$(MP_EXTRA_AS_POST) -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/memory/flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +else +${OBJECTDIR}/mcc_generated_files/memory/flash.o: mcc_generated_files/memory/flash.s nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} "${OBJECTDIR}/mcc_generated_files/memory" + @${RM} ${OBJECTDIR}/mcc_generated_files/memory/flash.o.d + @${RM} ${OBJECTDIR}/mcc_generated_files/memory/flash.o + ${MP_CC} $(MP_EXTRA_AS_PRE) mcc_generated_files/memory/flash.s -o ${OBJECTDIR}/mcc_generated_files/memory/flash.o -c -mcpu=$(MP_PROCESSOR_OPTION) -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc -Wa,-MD,"${OBJECTDIR}/mcc_generated_files/memory/flash.o.d",--defsym=__MPLAB_BUILD=1,-g,--no-relax$(MP_EXTRA_AS_POST) -mdfp=${DFP_DIR}/xc16 + @${FIXDEPS} "${OBJECTDIR}/mcc_generated_files/memory/flash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ + +endif + +# ------------------------------------------------------------------------------------ +# Rules for buildStep: assemblePreproc +ifeq ($(TYPE_IMAGE), DEBUG_RUN) +else +endif + +# ------------------------------------------------------------------------------------ +# Rules for buildStep: link +ifeq ($(TYPE_IMAGE), DEBUG_RUN) +dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} + ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -D__DEBUG=__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -mreserve=data@0x800:0x81B -mreserve=data@0x81C:0x81D -mreserve=data@0x81E:0x81F -mreserve=data@0x820:0x821 -mreserve=data@0x822:0x823 -mreserve=data@0x824:0x827 -mreserve=data@0x82A:0x84F -Wl,--local-stack,,--defsym=__MPLAB_BUILD=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D__DEBUG=__DEBUG,--defsym=__MPLAB_DEBUGGER_PK3=1,$(MP_LINKER_FILE_OPTION),--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--report-mem,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml$(MP_EXTRA_LD_POST) -mdfp=${DFP_DIR}/xc16 + +else +dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk + @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} + ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--local-stack,,--defsym=__MPLAB_BUILD=1,$(MP_LINKER_FILE_OPTION),--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--report-mem,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml$(MP_EXTRA_LD_POST) -mdfp=${DFP_DIR}/xc16 + ${MP_CC_DIR}/xc16-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -a -omf=elf -mdfp=${DFP_DIR}/xc16 + +endif + + +# Subprojects +.build-subprojects: + + +# Subprojects +.clean-subprojects: + +# Clean Targets +.clean-conf: ${CLEAN_SUBPROJECTS} + ${RM} -r build/default + ${RM} -r dist/default + +# Enable dependency checking +.dep.inc: .depcheck-impl + +DEPFILES=$(shell "${PATH_TO_IDE_BIN}"mplabwildcard ${POSSIBLE_DEPFILES}) +ifneq (${DEPFILES},) +include ${DEPFILES} +endif diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties new file mode 100644 index 0000000..375e56d --- /dev/null +++ b/nbproject/Makefile-genesis.properties @@ -0,0 +1,10 @@ +# +#Tue Feb 02 20:19:53 CET 2021 +default.Pack.dfplocation=/opt/microchip/mplabx/v5.35/packs/Microchip/PIC24F-GA-GB_DFP/1.2.101 +default.com-microchip-mplab-nbide-toolchainXC16-XC16LanguageToolchain.md5=859fc649e7017fd01769e2187e1537a7 +default.languagetoolchain.dir=/opt/microchip/xc16/v1.50/bin +configurations-xml=30daf9592cbcf144abd92ef4555090a5 +com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5db0f4d6bbe0ec2a1f1096ccfb9d7ad3 +default.languagetoolchain.version=1.50 +host.platform=linux +conf.ids=default diff --git a/nbproject/Makefile-impl.mk b/nbproject/Makefile-impl.mk new file mode 100644 index 0000000..fd7b024 --- /dev/null +++ b/nbproject/Makefile-impl.mk @@ -0,0 +1,69 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a pre- and a post- target defined where you can add customization code. +# +# This makefile implements macros and targets common to all configurations. +# +# NOCDDL + + +# Building and Cleaning subprojects are done by default, but can be controlled with the SUB +# macro. If SUB=no, subprojects will not be built or cleaned. The following macro +# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf +# and .clean-reqprojects-conf unless SUB has the value 'no' +SUB_no=NO +SUBPROJECTS=${SUB_${SUB}} +BUILD_SUBPROJECTS_=.build-subprojects +BUILD_SUBPROJECTS_NO= +BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} +CLEAN_SUBPROJECTS_=.clean-subprojects +CLEAN_SUBPROJECTS_NO= +CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} + + +# Project Name +PROJECTNAME=rcu2hbat + +# Active Configuration +DEFAULTCONF=default +CONF=${DEFAULTCONF} + +# All Configurations +ALLCONFS=default + + +# build +.build-impl: .build-pre + ${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf + + +# clean +.clean-impl: .clean-pre + ${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf + +# clobber +.clobber-impl: .clobber-pre .depcheck-impl + ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean + + + +# all +.all-impl: .all-pre .depcheck-impl + ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build + + + +# dependency checking support +.depcheck-impl: +# @echo "# This code depends on make tool being used" >.dep.inc +# @if [ -n "${MAKE_VERSION}" ]; then \ +# echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \ +# echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ +# echo "include \$${DEPFILES}" >>.dep.inc; \ +# echo "endif" >>.dep.inc; \ +# else \ +# echo ".KEEP_STATE:" >>.dep.inc; \ +# echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ +# fi diff --git a/nbproject/Makefile-local-default.mk b/nbproject/Makefile-local-default.mk new file mode 100644 index 0000000..5586d2d --- /dev/null +++ b/nbproject/Makefile-local-default.mk @@ -0,0 +1,37 @@ +# +# Generated Makefile - do not edit! +# +# +# This file contains information about the location of compilers and other tools. +# If you commmit this file into your revision control server, you will be able to +# to checkout the project and build it from the command line with make. However, +# if more than one person works on the same project, then this file might show +# conflicts since different users are bound to have compilers in different places. +# In that case you might choose to not commit this file and let MPLAB X recreate this file +# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at +# least once so the file gets created and the project can be built. Finally, you can also +# avoid using this file at all if you are only building from the command line with make. +# You can invoke make with the values of the macros: +# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ... +# +PATH_TO_IDE_BIN=/opt/microchip/mplabx/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/ +# Adding MPLAB X bin directory to path. +PATH:=/opt/microchip/mplabx/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH) +# Path to java used to run MPLAB X when this makefile was created +MP_JAVA_PATH="/home/software/microchip/mplabx/v5.35/sys/java/jre1.8.0_181/bin/" +OS_CURRENT="$(shell uname -s)" +MP_CC="/opt/microchip/xc16/v1.50/bin/xc16-gcc" +# MP_CPPC is not defined +# MP_BC is not defined +MP_AS="/opt/microchip/xc16/v1.50/bin/xc16-as" +MP_LD="/opt/microchip/xc16/v1.50/bin/xc16-ld" +MP_AR="/opt/microchip/xc16/v1.50/bin/xc16-ar" +DEP_GEN=${MP_JAVA_PATH}java -jar "/opt/microchip/mplabx/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar" +MP_CC_DIR="/opt/microchip/xc16/v1.50/bin" +# MP_CPPC_DIR is not defined +# MP_BC_DIR is not defined +MP_AS_DIR="/opt/microchip/xc16/v1.50/bin" +MP_LD_DIR="/opt/microchip/xc16/v1.50/bin" +MP_AR_DIR="/opt/microchip/xc16/v1.50/bin" +# MP_BC_DIR is not defined +DFP_DIR="/opt/microchip/mplabx/v5.35/packs/Microchip/PIC24F-GA-GB_DFP/1.2.101" diff --git a/nbproject/Makefile-variables.mk b/nbproject/Makefile-variables.mk new file mode 100644 index 0000000..251d21c --- /dev/null +++ b/nbproject/Makefile-variables.mk @@ -0,0 +1,13 @@ +# +# Generated - do not edit! +# +# NOCDDL +# +CND_BASEDIR=`pwd` +# default configuration +CND_ARTIFACT_DIR_default=dist/default/production +CND_ARTIFACT_NAME_default=rcu2hbat.production.hex +CND_ARTIFACT_PATH_default=dist/default/production/rcu2hbat.production.hex +CND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package +CND_PACKAGE_NAME_default=rcu2hbat.tar +CND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/rcu2hbat.tar diff --git a/nbproject/Package-default.bash b/nbproject/Package-default.bash new file mode 100644 index 0000000..7ea8ed6 --- /dev/null +++ b/nbproject/Package-default.bash @@ -0,0 +1,73 @@ +#!/bin/bash -x + +# +# Generated - do not edit! +# + +# Macros +TOP=`pwd` +CND_CONF=default +CND_DISTDIR=dist +TMPDIR=build/${CND_CONF}/${IMAGE_TYPE}/tmp-packaging +TMPDIRNAME=tmp-packaging +OUTPUT_PATH=dist/${CND_CONF}/${IMAGE_TYPE}/rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +OUTPUT_BASENAME=rcu2hbat.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +PACKAGE_TOP_DIR=rcu2hbat/ + +# Functions +function checkReturnCode +{ + rc=$? + if [ $rc != 0 ] + then + exit $rc + fi +} +function makeDirectory +# $1 directory path +# $2 permission (optional) +{ + mkdir -p "$1" + checkReturnCode + if [ "$2" != "" ] + then + chmod $2 "$1" + checkReturnCode + fi +} +function copyFileToTmpDir +# $1 from-file path +# $2 to-file path +# $3 permission +{ + cp "$1" "$2" + checkReturnCode + if [ "$3" != "" ] + then + chmod $3 "$2" + checkReturnCode + fi +} + +# Setup +cd "${TOP}" +mkdir -p ${CND_DISTDIR}/${CND_CONF}/package +rm -rf ${TMPDIR} +mkdir -p ${TMPDIR} + +# Copy files and create directories and links +cd "${TOP}" +makeDirectory ${TMPDIR}/rcu2hbat/bin +copyFileToTmpDir "${OUTPUT_PATH}" "${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 + + +# Generate tar file +cd "${TOP}" +rm -f ${CND_DISTDIR}/${CND_CONF}/package/rcu2hbat.tar +cd ${TMPDIR} +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/rcu2hbat.tar * +checkReturnCode + +# Cleanup +cd "${TOP}" +rm -rf ${TMPDIR} diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml new file mode 100644 index 0000000..30e4c15 --- /dev/null +++ b/nbproject/configurations.xml @@ -0,0 +1,350 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configurationDescriptor version="65"> + <logicalFolder name="root" displayName="root" projectFiles="true"> + <logicalFolder name="HeaderFiles" + displayName="Header Files" + projectFiles="true"> + <logicalFolder name="MCC Generated Files" + displayName="MCC Generated Files" + projectFiles="true"> + <logicalFolder name="memory" displayName="memory" projectFiles="true"> + <itemPath>mcc_generated_files/memory/flash.h</itemPath> + </logicalFolder> + <itemPath>mcc_generated_files/interrupt_manager.h</itemPath> + <itemPath>mcc_generated_files/ic3.h</itemPath> + <itemPath>mcc_generated_files/ic2.h</itemPath> + <itemPath>mcc_generated_files/ic1.h</itemPath> + <itemPath>mcc_generated_files/clock.h</itemPath> + <itemPath>mcc_generated_files/spi2.h</itemPath> + <itemPath>mcc_generated_files/spi3.h</itemPath> + <itemPath>mcc_generated_files/cvr.h</itemPath> + <itemPath>mcc_generated_files/spi1.h</itemPath> + <itemPath>mcc_generated_files/mcc.h</itemPath> + <itemPath>mcc_generated_files/cmp1.h</itemPath> + <itemPath>mcc_generated_files/cmp3.h</itemPath> + <itemPath>mcc_generated_files/cmp2.h</itemPath> + <itemPath>mcc_generated_files/pin_manager.h</itemPath> + <itemPath>mcc_generated_files/tmr3.h</itemPath> + <itemPath>mcc_generated_files/traps.h</itemPath> + <itemPath>mcc_generated_files/i2c1.h</itemPath> + <itemPath>mcc_generated_files/system.h</itemPath> + </logicalFolder> + </logicalFolder> + <logicalFolder name="LinkerScript" + displayName="Linker Files" + projectFiles="true"> + </logicalFolder> + <logicalFolder name="SourceFiles" + displayName="Source Files" + projectFiles="true"> + <logicalFolder name="MCC Generated Files" + displayName="MCC Generated Files" + projectFiles="true"> + <logicalFolder name="memory" displayName="memory" projectFiles="true"> + <itemPath>mcc_generated_files/memory/flash.s</itemPath> + </logicalFolder> + <itemPath>mcc_generated_files/spi3.c</itemPath> + <itemPath>mcc_generated_files/spi1.c</itemPath> + <itemPath>mcc_generated_files/spi2.c</itemPath> + <itemPath>mcc_generated_files/system.c</itemPath> + <itemPath>mcc_generated_files/cvr.c</itemPath> + <itemPath>mcc_generated_files/ic3.c</itemPath> + <itemPath>mcc_generated_files/clock.c</itemPath> + <itemPath>mcc_generated_files/ic2.c</itemPath> + <itemPath>mcc_generated_files/ic1.c</itemPath> + <itemPath>mcc_generated_files/cmp2.c</itemPath> + <itemPath>mcc_generated_files/cmp1.c</itemPath> + <itemPath>mcc_generated_files/cmp3.c</itemPath> + <itemPath>mcc_generated_files/interrupt_manager.c</itemPath> + <itemPath>mcc_generated_files/mcc.c</itemPath> + <itemPath>mcc_generated_files/pin_manager.c</itemPath> + <itemPath>mcc_generated_files/tmr3.c</itemPath> + <itemPath>mcc_generated_files/traps.c</itemPath> + <itemPath>mcc_generated_files/i2c1.c</itemPath> + </logicalFolder> + <logicalFolder name="src" displayName="src" projectFiles="true"> + <itemPath>src/registers.c</itemPath> + <itemPath>src/xc.h</itemPath> + <itemPath>src/registers.h</itemPath> + <itemPath>src/rcu2_i2c.h</itemPath> + <itemPath>src/rcu2_i2c.c</itemPath> + <itemPath>src/crc16.c</itemPath> + <itemPath>src/crc16.h</itemPath> + <itemPath>src/HBA1.c</itemPath> + <itemPath>src/HBA1.h</itemPath> + <itemPath>src/HBA2.c</itemPath> + <itemPath>src/HBA2.h</itemPath> + <itemPath>src/HBA2_RX.c</itemPath> + <itemPath>src/HBA2_RX.h</itemPath> + <itemPath>src/HBA2_TX.c</itemPath> + <itemPath>src/HBA2_TX.h</itemPath> + <itemPath>src/HBA3.c</itemPath> + <itemPath>src/HBA3.h</itemPath> + <itemPath>src/HBA3_RX.c</itemPath> + <itemPath>src/HBA3_RX.h</itemPath> + <itemPath>src/HBA3_TX.c</itemPath> + <itemPath>src/HBA3_TX.h</itemPath> + <itemPath>src/HBA1_TX.c</itemPath> + <itemPath>src/HBA1_TX.h</itemPath> + <itemPath>src/HBA1_RX.h</itemPath> + <itemPath>src/HBA1_RX.c</itemPath> + </logicalFolder> + <itemPath>main.c</itemPath> + <itemPath>mainloop.c</itemPath> + </logicalFolder> + <logicalFolder name="ExternalFiles" + displayName="Important Files" + projectFiles="false"> + <itemPath>Makefile</itemPath> + <itemPath>MyConfig.mc3</itemPath> + </logicalFolder> + </logicalFolder> + <sourceRootList> + <Elem>src</Elem> + </sourceRootList> + <projectmakefile>Makefile</projectmakefile> + <confs> + <conf name="default" type="2"> + <toolsSet> + <developmentServer>localhost</developmentServer> + <targetDevice>PIC24FJ64GA702</targetDevice> + <targetHeader></targetHeader> + <targetPluginBoard></targetPluginBoard> + <platformTool>PICkit3PlatformTool</platformTool> + <languageToolchain>XC16</languageToolchain> + <languageToolchainVersion>1.50</languageToolchainVersion> + <platform>2</platform> + </toolsSet> + <packs> + <pack name="PIC24F-GA-GB_DFP" vendor="Microchip" version="1.2.101"/> + </packs> + <compileType> + <linkerTool> + <linkerLibItems> + </linkerLibItems> + </linkerTool> + <archiverTool> + </archiverTool> + <loading> + <useAlternateLoadableFile>false</useAlternateLoadableFile> + <parseOnProdLoad>false</parseOnProdLoad> + <alternateLoadableFile></alternateLoadableFile> + </loading> + <subordinates> + </subordinates> + </compileType> + <makeCustomizationType> + <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled> + <makeCustomizationPreStep></makeCustomizationPreStep> + <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled> + <makeCustomizationPostStep></makeCustomizationPostStep> + <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID> + <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines> + <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile> + </makeCustomizationType> + <C30> + <property key="code-model" value="default"/> + <property key="const-model" value="default"/> + <property key="data-model" value="small-data"/> + <property key="disable-instruction-scheduling" value="false"/> + <property key="enable-all-warnings" value="true"/> + <property key="enable-ansi-std" value="false"/> + <property key="enable-ansi-warnings" value="false"/> + <property key="enable-fatal-warnings" value="false"/> + <property key="enable-large-arrays" value="false"/> + <property key="enable-omit-frame-pointer" value="false"/> + <property key="enable-procedural-abstraction" value="false"/> + <property key="enable-short-double" value="false"/> + <property key="enable-symbols" value="true"/> + <property key="enable-unroll-loops" value="false"/> + <property key="extra-include-directories" value=""/> + <property key="isolate-each-function" value="false"/> + <property key="keep-inline" value="false"/> + <property key="oXC16gcc-align-arr" value="false"/> + <property key="oXC16gcc-cnsts-mauxflash" value="false"/> + <property key="oXC16gcc-data-sects" value="false"/> + <property key="oXC16gcc-errata" value=""/> + <property key="oXC16gcc-fillupper" value=""/> + <property key="oXC16gcc-large-aggregate" value="false"/> + <property key="oXC16gcc-mauxflash" value="false"/> + <property key="oXC16gcc-mpa-lvl" value=""/> + <property key="oXC16gcc-name-text-sec" value=""/> + <property key="oXC16gcc-near-chars" value="false"/> + <property key="oXC16gcc-no-isr-warn" value="false"/> + <property key="oXC16gcc-sfr-warn" value="false"/> + <property key="oXC16gcc-smar-io-lvl" value="1"/> + <property key="oXC16gcc-smart-io-fmt" value=""/> + <property key="optimization-level" value="2"/> + <property key="post-instruction-scheduling" value="default"/> + <property key="pre-instruction-scheduling" value="default"/> + <property key="preprocessor-macros" value=""/> + <property key="scalar-model" value="default"/> + <property key="use-cci" value="false"/> + <property key="use-iar" value="false"/> + </C30> + <C30-AR> + <property key="additional-options-chop-files" value="false"/> + </C30-AR> + <C30-AS> + <property key="assembler-symbols" value=""/> + <property key="expand-macros" value="false"/> + <property key="extra-include-directories-for-assembler" value=""/> + <property key="extra-include-directories-for-preprocessor" value=""/> + <property key="false-conditionals" value="false"/> + <property key="keep-locals" value="false"/> + <property key="list-assembly" value="false"/> + <property key="list-section-info" value="false"/> + <property key="list-source" value="false"/> + <property key="list-symbols" value="false"/> + <property key="oXC16asm-extra-opts" value=""/> + <property key="oXC16asm-list-to-file" value="false"/> + <property key="omit-debug-dirs" value="false"/> + <property key="omit-forms" value="false"/> + <property key="preprocessor-macros" value=""/> + <property key="relax" value="false"/> + <property key="warning-level" value="emit-warnings"/> + </C30-AS> + <C30-CO> + <property key="coverage-enable" value=""/> + </C30-CO> + <C30-LD> + <property key="additional-options-use-response-files" value="false"/> + <property key="boot-eeprom" value="no_eeprom"/> + <property key="boot-flash" value="no_flash"/> + <property key="boot-ram" value="no_ram"/> + <property key="boot-write-protect" value="no_write_protect"/> + <property key="enable-check-sections" value="false"/> + <property key="enable-data-init" value="true"/> + <property key="enable-default-isr" value="true"/> + <property key="enable-handles" value="true"/> + <property key="enable-pack-data" value="true"/> + <property key="extra-lib-directories" value=""/> + <property key="fill-flash-options-addr" value=""/> + <property key="fill-flash-options-const" value=""/> + <property key="fill-flash-options-how" value="0"/> + <property key="fill-flash-options-inc-const" value="1"/> + <property key="fill-flash-options-increment" value=""/> + <property key="fill-flash-options-seq" value=""/> + <property key="fill-flash-options-what" value="0"/> + <property key="general-code-protect" value="no_code_protect"/> + <property key="general-write-protect" value="no_write_protect"/> + <property key="generate-cross-reference-file" value="false"/> + <property key="heap-size" value=""/> + <property key="input-libraries" value=""/> + <property key="linker-stack" value="true"/> + <property key="linker-symbols" value=""/> + <property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/> + <property key="no-ivt" value="false"/> + <property key="oXC16ld-extra-opts" value=""/> + <property key="oXC16ld-fill-upper" value="0"/> + <property key="oXC16ld-force-link" value="false"/> + <property key="oXC16ld-no-smart-io" value="false"/> + <property key="oXC16ld-nostdlib" value="false"/> + <property key="oXC16ld-stackguard" value="16"/> + <property key="preprocessor-macros" value=""/> + <property key="remove-unused-sections" value="false"/> + <property key="report-memory-usage" value="true"/> + <property key="secure-eeprom" value="no_eeprom"/> + <property key="secure-flash" value="no_flash"/> + <property key="secure-ram" value="no_ram"/> + <property key="secure-write-protect" value="no_write_protect"/> + <property key="stack-size" value="16"/> + <property key="symbol-stripping" value=""/> + <property key="trace-symbols" value=""/> + <property key="warn-section-align" value="false"/> + </C30-LD> + <C30Global> + <property key="common-include-directories" value=""/> + <property key="dual-boot-partition" value="0"/> + <property key="fast-math" value="false"/> + <property key="generic-16-bit" value="false"/> + <property key="legacy-libc" value="true"/> + <property key="mpreserve-all" value="false"/> + <property key="oXC16glb-macros" value=""/> + <property key="omit-pack-options" value="1"/> + <property key="output-file-format" value="elf"/> + <property key="preserve-all" value="false"/> + <property key="preserve-file" value=""/> + <property key="relaxed-math" value="false"/> + <property key="save-temps" value="false"/> + </C30Global> + <PICkit3PlatformTool> + <property key="ADC 1" value="true"/> + <property key="AutoSelectMemRanges" value="auto"/> + <property key="CLC 1" value="true"/> + <property key="CLC 2" value="true"/> + <property key="COMPARATOR" value="true"/> + <property key="CRC" value="true"/> + <property key="CTMU" value="true"/> + <property key="DMA" value="true"/> + <property key="Freeze All Other Peripherals" value="true"/> + <property key="I2C 1" value="true"/> + <property key="I2C 2" value="true"/> + <property key="INPUT CAPTURE 1" value="true"/> + <property key="INPUT CAPTURE 2" value="true"/> + <property key="INPUT CAPTURE 3" value="true"/> + <property key="IOC" value="true"/> + <property key="LVD" value="true"/> + <property key="MCCP/SCCP 1" value="true"/> + <property key="MCCP/SCCP 2" value="true"/> + <property key="MCCP/SCCP 3" value="true"/> + <property key="MCCP/SCCP 4" value="true"/> + <property key="OSC" value="true"/> + <property key="OUTPUT COMPARE 1" value="true"/> + <property key="OUTPUT COMPARE 2" value="true"/> + <property key="OUTPUT COMPARE 3" value="true"/> + <property key="REFO" value="true"/> + <property key="RTCC" value="true"/> + <property key="SPI 1" value="true"/> + <property key="SPI 2" value="true"/> + <property key="SPI 3" value="true"/> + <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/> + <property key="TIMER 1" value="true"/> + <property key="TIMER 2" value="true"/> + <property key="TIMER 3" value="true"/> + <property key="ToolFirmwareFilePath" + value="Press to browse for a specific firmware version"/> + <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/> + <property key="UART 1" value="true"/> + <property key="UART 2" value="true"/> + <property key="debugoptions.useswbreakpoints" value="false"/> + <property key="firmware.download.all" value="false"/> + <property key="hwtoolclock.frcindebug" value="false"/> + <property key="memories.aux" value="false"/> + <property key="memories.bootflash" value="true"/> + <property key="memories.configurationmemory" value="true"/> + <property key="memories.configurationmemory2" value="true"/> + <property key="memories.dataflash" value="true"/> + <property key="memories.eeprom" value="true"/> + <property key="memories.flashdata" value="true"/> + <property key="memories.id" value="true"/> + <property key="memories.instruction.ram" value="true"/> + <property key="memories.instruction.ram.ranges" + value="${memories.instruction.ram.ranges}"/> + <property key="memories.programmemory" value="true"/> + <property key="memories.programmemory.ranges" value="0-aeff"/> + <property key="poweroptions.powerenable" value="false"/> + <property key="programmertogo.imagename" value=""/> + <property key="programoptions.donoteraseauxmem" value="false"/> + <property key="programoptions.eraseb4program" value="true"/> + <property key="programoptions.pgmspeed" value="2"/> + <property key="programoptions.preservedataflash" value="false"/> + <property key="programoptions.preservedataflash.ranges" + value="${programoptions.preservedataflash.ranges}"/> + <property key="programoptions.preserveeeprom" value="false"/> + <property key="programoptions.preserveeeprom.ranges" value=""/> + <property key="programoptions.preserveprogram.ranges" value=""/> + <property key="programoptions.preserveprogramrange" value="false"/> + <property key="programoptions.preserveuserid" value="false"/> + <property key="programoptions.programcalmem" value="false"/> + <property key="programoptions.programuserotp" value="false"/> + <property key="programoptions.testmodeentrymethod" value="VDDFirst"/> + <property key="programoptions.usehighvoltageonmclr" value="false"/> + <property key="programoptions.uselvpprogramming" value="false"/> + <property key="voltagevalue" value="3.25"/> + </PICkit3PlatformTool> + <item path="mainloop.c" ex="true" overriding="false"> + </item> + </conf> + </confs> +</configurationDescriptor> diff --git a/nbproject/private/configurations.xml b/nbproject/private/configurations.xml new file mode 100644 index 0000000..2eb733e --- /dev/null +++ b/nbproject/private/configurations.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configurationDescriptor version="65"> + <projectmakefile>Makefile</projectmakefile> + <defaultConf>0</defaultConf> + <confs> + <conf name="default" type="2"> + <platformToolSN>:=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>900A:=<rev>0002:=<man>Microchip Technology Inc.:=<prod>PICkit 3:=<sn>BUR121090214:=<drv>x:=<xpt>h:=end</platformToolSN> + <languageToolchainDir>/opt/microchip/xc16/v1.50/bin</languageToolchainDir> + <mdbdebugger version="1"> + <placeholder1>place holder 1</placeholder1> + <placeholder2>place holder 2</placeholder2> + </mdbdebugger> + <runprofile version="6"> + <args></args> + <rundir></rundir> + <buildfirst>true</buildfirst> + <console-type>0</console-type> + <terminal-type>0</terminal-type> + <remove-instrumentation>0</remove-instrumentation> + <environment> + </environment> + </runprofile> + </conf> + </confs> +</configurationDescriptor> diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml new file mode 100644 index 0000000..6807a2b --- /dev/null +++ b/nbproject/private/private.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project-private xmlns="http://www.netbeans.org/ns/project-private/1"> + <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> + <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> + <group/> + </open-files> +</project-private> diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 0000000..a72532f --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>com.microchip.mplab.nbide.embedded.makeproject</type> + <configuration> + <data xmlns="http://www.netbeans.org/ns/make-project/1"> + <name>RCU2_v1</name> + <creation-uuid>49be8fbe-26c8-4557-ac7c-71c1425a6e34</creation-uuid> + <make-project-type>0</make-project-type> + <c-extensions>c</c-extensions> + <cpp-extensions/> + <header-extensions>h</header-extensions> + <asminc-extensions/> + <sourceEncoding>ISO-8859-1</sourceEncoding> + <make-dep-projects/> + <sourceRootList> + <sourceRootElem>src</sourceRootElem> + </sourceRootList> + <confList> + <confElem> + <name>default</name> + <type>2</type> + </confElem> + </confList> + <formatting> + <project-formatting-style>false</project-formatting-style> + </formatting> + </data> + </configuration> +</project> diff --git a/src/HBA1.c b/src/HBA1.c new file mode 100644 index 0000000..6124033 --- /dev/null +++ b/src/HBA1.c @@ -0,0 +1,8 @@ +#include "HBA1.h" +#include "HBA1_TX.h" +#include "HBA1_RX.h" + +#define HBA_(name) HBA1_ ## name +#include "HBAx.c" +#undef HBA_ + diff --git a/src/HBA1.h b/src/HBA1.h new file mode 100644 index 0000000..91413bf --- /dev/null +++ b/src/HBA1.h @@ -0,0 +1,15 @@ +#ifndef HBA1_H +#define HBA1_H +#define HBA_(name) HBA1_ ## name +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + +bool HBA_(I2CReg_to_request)(uint8_t I2C_length,uint8_t* Buffer); //Mode 2: I2C read +bool HBA_(I2CReg_to_packet)(uint8_t I2C_length,uint8_t* Buffer); //Mode 2: I2C write + +uint8_t HBA_(I2CReg_get_buffer)(uint8_t HBARegister,uint8_t* I2C_Buffer); +void HBA_(I2CReg_decode_responce)(); +bool HBA_(I2CReg_waiting)(); +#undef HBA_ +#endif // HBA1_TX_H diff --git a/src/HBA1_RX.c b/src/HBA1_RX.c new file mode 100644 index 0000000..5e5a47a --- /dev/null +++ b/src/HBA1_RX.c @@ -0,0 +1,3 @@ +#include "HBA1_RX.h" +#define HBA_(name) HBA1_ ## name +#include "HBAx_RX.c" diff --git a/src/HBA1_RX.h b/src/HBA1_RX.h new file mode 100644 index 0000000..2f5baf9 --- /dev/null +++ b/src/HBA1_RX.h @@ -0,0 +1,18 @@ +#ifndef HBA1_RX_H +#define HBA1_RX_H +#define HBA_(name) HBA1_ ## name + +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + + +void HBA_(decode_start)(); +void HBA_(RX_edge)(uint16_t timer); +void HBA_(decode_delay)(uint8_t delay); + +uint8_t* HBA_(RX2_Buffer)(); +uint8_t HBA_(RX2_length)(); +void HBA_(RX_finished)(); +#undef HBA_ +#endif // HBA_RX_H diff --git a/src/HBA1_TX.c b/src/HBA1_TX.c new file mode 100644 index 0000000..d4179d6 --- /dev/null +++ b/src/HBA1_TX.c @@ -0,0 +1,3 @@ +#include "HBA1_TX.h" +#define HBA_(name) HBA1_ ## name +#include "HBAx_TX.c" diff --git a/src/HBA1_TX.h b/src/HBA1_TX.h new file mode 100644 index 0000000..4c1a94f --- /dev/null +++ b/src/HBA1_TX.h @@ -0,0 +1,24 @@ +#ifndef HBA1_TX_H +#define HBA1_TX_H +#define HBA_(name) HBA1_ ## name +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + +//uint8_t HBA_encode(uint8_t* Buf_in, uint8_t* Buf_out, uint8_t len); + +//Order: Make packet, then start_TX +//HBA_TX_waiting is polled, if true and ready to send, get character from HBA_TX_next +void HBA_(Make_packet)(uint8_t I2C_length,uint8_t* Buffer); //Mode 0 and 1 + + + +void HBA_(start_TX)(); + +bool HBA_(TX_waiting)(); +uint8_t HBA_(TX_next)(); + +uint8_t HBA_(TX_len)(); +#undef HBA_ + +#endif // HBA_TX_H diff --git a/src/HBA2.c b/src/HBA2.c new file mode 100644 index 0000000..640aa00 --- /dev/null +++ b/src/HBA2.c @@ -0,0 +1,8 @@ +#include "HBA2.h" +#include "HBA2_TX.h" +#include "HBA2_RX.h" + +#define HBA_(name) HBA2_ ## name +#include "HBAx.c" +#undef HBA_ + diff --git a/src/HBA2.h b/src/HBA2.h new file mode 100644 index 0000000..3e57441 --- /dev/null +++ b/src/HBA2.h @@ -0,0 +1,16 @@ +#ifndef HBA2_H +#define HBA2_H +#define HBA_(name) HBA2_ ## name +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + +bool HBA_(I2CReg_to_request)(uint8_t I2C_length,uint8_t* Buffer); //Mode 2: I2C read +bool HBA_(I2CReg_to_packet)(uint8_t I2C_length,uint8_t* Buffer); //Mode 2: I2C write + +uint8_t HBA_(I2CReg_get_buffer)(uint8_t HBARegister,uint8_t* I2C_Buffer); +void HBA_(I2CReg_decode_responce)(); +bool HBA_(I2CReg_waiting)(); +#undef HBA_ + +#endif // HBA1_TX_H diff --git a/src/HBA2_RX.c b/src/HBA2_RX.c new file mode 100644 index 0000000..8ffc908 --- /dev/null +++ b/src/HBA2_RX.c @@ -0,0 +1,3 @@ +#include "HBA1_RX.h" +#define HBA_(name) HBA2_ ## name +#include "HBAx_RX.c" diff --git a/src/HBA2_RX.h b/src/HBA2_RX.h new file mode 100644 index 0000000..d7bfe1d --- /dev/null +++ b/src/HBA2_RX.h @@ -0,0 +1,18 @@ +#ifndef HBA2_RX_H +#define HBA2_RX_H +#define HBA_(name) HBA2_ ## name + +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + + +void HBA_(decode_start)(); +void HBA_(RX_edge)(uint16_t timer); +void HBA_(decode_delay)(uint8_t delay); + +uint8_t* HBA_(RX2_Buffer)(); +uint8_t HBA_(RX2_length)(); +void HBA_(RX_finished)(); +#undef HBA_ +#endif // HBA_RX_H diff --git a/src/HBA2_TX.c b/src/HBA2_TX.c new file mode 100644 index 0000000..816d05c --- /dev/null +++ b/src/HBA2_TX.c @@ -0,0 +1,3 @@ +#include "HBA2_TX.h" +#define HBA_(name) HBA2_ ## name +#include "HBAx_TX.c" \ No newline at end of file diff --git a/src/HBA2_TX.h b/src/HBA2_TX.h new file mode 100644 index 0000000..c3f4f41 --- /dev/null +++ b/src/HBA2_TX.h @@ -0,0 +1,24 @@ +#ifndef HBA2_TX_H +#define HBA2_TX_H +#define HBA_(name) HBA2_ ## name +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + +//uint8_t HBA_encode(uint8_t* Buf_in, uint8_t* Buf_out, uint8_t len); + +//Order: Make packet, then start_TX +//HBA_TX_waiting is polled, if true and ready to send, get character from HBA_TX_next +void HBA_(Make_packet)(uint8_t I2C_length,uint8_t* Buffer); //Mode 0 and 1 + + + +void HBA_(start_TX)(); + +bool HBA_(TX_waiting)(); +uint8_t HBA_(TX_next)(); + +uint8_t HBA_(TX_len)(); +#undef HBA_ + +#endif // HBA_TX_H diff --git a/src/HBA3.c b/src/HBA3.c new file mode 100644 index 0000000..c2e5b4f --- /dev/null +++ b/src/HBA3.c @@ -0,0 +1,8 @@ +#include "HBA3.h" +#include "HBA3_TX.h" +#include "HBA3_RX.h" + +#define HBA_(name) HBA3_ ## name +#include "HBAx.c" +#undef HBA_ + diff --git a/src/HBA3.h b/src/HBA3.h new file mode 100644 index 0000000..4b16fea --- /dev/null +++ b/src/HBA3.h @@ -0,0 +1,15 @@ +#ifndef HBA3_H +#define HBA3_H +#define HBA_(name) HBA3_ ## name +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + +bool HBA_(I2CReg_to_request)(uint8_t I2C_length,uint8_t* Buffer); //Mode 2: I2C read +bool HBA_(I2CReg_to_packet)(uint8_t I2C_length,uint8_t* Buffer); //Mode 2: I2C write + +uint8_t HBA_(I2CReg_get_buffer)(uint8_t HBARegister,uint8_t* I2C_Buffer); +void HBA_(I2CReg_decode_responce)(); +bool HBA_(I2CReg_waiting)(); +#endif // HBA1_TX_H +#undef HBA_ diff --git a/src/HBA3_RX.c b/src/HBA3_RX.c new file mode 100644 index 0000000..7cc8709 --- /dev/null +++ b/src/HBA3_RX.c @@ -0,0 +1,3 @@ +#include "HBA3_RX.h" +#define HBA_(name) HBA3_ ## name +#include "HBAx_RX.c" diff --git a/src/HBA3_RX.h b/src/HBA3_RX.h new file mode 100644 index 0000000..9d19da4 --- /dev/null +++ b/src/HBA3_RX.h @@ -0,0 +1,18 @@ +#ifndef HBA3_RX_H +#define HBA3_RX_H +#define HBA_(name) HBA3_ ## name + +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + + +void HBA_(decode_start)(); +void HBA_(RX_edge)(uint16_t timer); +void HBA_(decode_delay)(uint8_t delay); + +uint8_t* HBA_(RX2_Buffer)(); +uint8_t HBA_(RX2_length)(); +void HBA_(RX_finished)(); +#undef HBA_ +#endif // HBA_RX_H diff --git a/src/HBA3_TX.c b/src/HBA3_TX.c new file mode 100644 index 0000000..ca4b48b --- /dev/null +++ b/src/HBA3_TX.c @@ -0,0 +1,3 @@ +#include "HBA3_TX.h" +#define HBA_(name) HBA3_ ## name +#include "HBAx_TX.c" \ No newline at end of file diff --git a/src/HBA3_TX.h b/src/HBA3_TX.h new file mode 100644 index 0000000..7c447a5 --- /dev/null +++ b/src/HBA3_TX.h @@ -0,0 +1,24 @@ +#ifndef HBA3_TX_H +#define HBA3_TX_H +#define HBA_(name) HBA3_ ## name +#include <xc.h> +//#include "stdint.h" +#include "stdbool.h" + +//uint8_t HBA_encode(uint8_t* Buf_in, uint8_t* Buf_out, uint8_t len); + +//Order: Make packet, then start_TX +//HBA_TX_waiting is polled, if true and ready to send, get character from HBA_TX_next +void HBA_(Make_packet)(uint8_t I2C_length,uint8_t* Buffer); //Mode 0 and 1 + + + +void HBA_(start_TX)(); + +bool HBA_(TX_waiting)(); +uint8_t HBA_(TX_next)(); + +uint8_t HBA_(TX_len)(); +#undef HBA_ + +#endif // HBA_TX_H diff --git a/src/HBAx.c b/src/HBAx.c new file mode 100644 index 0000000..84cc45d --- /dev/null +++ b/src/HBAx.c @@ -0,0 +1,103 @@ +#include "registers.h" +#include "crc16.h" +//Buffer len need to be 2x I2C length +#define HBAXYlen 38 //6+32 +#define HBAreqlen 4 //6+32 + +#define HBA_req_adr HBA_(req_adr) +#define HBA_XYpacket HBA_(XYpacket) +#define HBA_reqpacket HBA_(reqpacket) + +uint8_t HBA_(XYpacket)[HBAXYlen+2]={0,0x25,0x4,0x0,0x1,0x10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; +//Broadcast 0, length=37, set word 4, register=0, start=1, stop=16,32xdata, data start at [6] + +uint8_t HBA_(reqpacket)[HBAreqlen]={0x1, 0x3, 0x5, 0x0}; +//Server number, length=3, get word=5, register=0 +uint8_t HBA_(req_adr)=0; + + +bool HBA_(I2CReg_to_request)(uint8_t I2C_length,uint8_t* Buffer) //Mode 2: I2C read +{ + int adr=Buffer[0]; + if ((adr>=0x10) && (adr<=0x2F)) //readback from HBA + { HBA_req_adr=1; + HBA_(I2CReg_waiting()); + return true; + } + return false; +} +bool HBA_(I2CReg_to_packet)(uint8_t I2C_length,uint8_t* Buffer) //Mode 2: I2C write +{ + int adr=Buffer[0]; + if ((adr>=0x10) && (adr<=0x2F)) //32 BF coefficients address + { int x; +// adr=((Buffer[0]-0x10)&0x1F)+5; + adr=((Buffer[0]-0x10))+5; + for (x=1;x<I2C_length;x++) + if (adr+x<HBAXYlen) HBA_XYpacket[adr+x]=Buffer[x]; + if (adr+I2C_length==HBAXYlen) //When the last one is written -> send to HBA + { + HBA_(Make_packet)(HBAXYlen,HBA_XYpacket); + if (Get_autoread()) HBA_req_adr=1; + return true; + } + } + return false; +} + +uint8_t HBA_(I2CReg_get_buffer)(uint8_t HBARegister,uint8_t* I2C_Buffer) +{ + uint8_t x=0; + //HBARegister=0x10; + //if ((HBARegister>=0x10) && (HBARegister<=0x2F)) + //{ + // for (;HBARegister<0x30;HBARegister++) + // I2C_Buffer[x++]=HBA_XYpacket[HBARegister-0x10+6]; + //} + I2C_Buffer[0]=HBA_XYpacket[6]; + for (x=0;x<32;x++) + I2C_Buffer[x+1]=HBA_XYpacket[x+6]; + return 32+1; +} + +void HBA_(I2CReg_decode_responce)() +{ + uint8_t* Buffer=HBA_(RX2_Buffer)(); + uint8_t length=HBA_(RX2_length)(); + uint8_t adr; + if (length==8) + { + adr=Buffer[2]&0x1F; //start counting at 1 + if (adr>16) adr=16; + if (adr<1) adr=1; + if ((Buffer[2]&0x80)==0x80) //we have a responce + { + HBA_XYpacket[adr*2+6-2]=Buffer[2+2]; + HBA_XYpacket[adr*2+7-2]=Buffer[2+3]; + } + } +} + +bool HBA_(I2CReg_waiting)() +{ + if (HBA_req_adr>16) HBA_req_adr=0; + if (HBA_req_adr>0) { + HBA_reqpacket[0]=HBA_req_adr; //start at 1, request X and Y together + HBA_XYpacket[HBA_req_adr*2+4]=0xff; //clear before reading so we can see if we have new data + HBA_XYpacket[HBA_req_adr*2+5]=0xff; + HBA_reqpacket[1]=3; + HBA_reqpacket[2]=5; + HBA_reqpacket[3]=0; + HBA_req_adr++; + + HBA_(Make_packet)(HBAreqlen,HBA_reqpacket); + return true; +// return false; + + } + return false; +} + +#undef HBA_req_adr +#undef HBA_XYpacket +#undef HBA_reqpacket \ No newline at end of file diff --git a/src/HBAx_RX.c b/src/HBAx_RX.c new file mode 100644 index 0000000..ee4bb23 --- /dev/null +++ b/src/HBAx_RX.c @@ -0,0 +1,110 @@ +#include "registers.h" + +//Buffer len need to be 2x I2C length +#define BUFFER_LEN 144 + +#define RX_Buffer HBA_(RX_Buffer) +#define RXb_Buffer HBA_(RXb_Buffer) +#define RX_byte HBA_(RX_byte) +#define RXb_byte HBA_(RXb_byte) +#define RX_bit HBA_(RX_bit) +#define RX_previous HBA_(RX_previous) +#define RX_startbit HBA_(RX_startbit) + + +uint8_t HBA_(RX_Buffer)[BUFFER_LEN]; +uint8_t HBA_(RXb_Buffer)[BUFFER_LEN]; +uint8_t HBA_(RX_byte)=0; +uint8_t HBA_(RXb_byte)=0; +uint8_t HBA_(RX_bit)=0; +bool HBA_(RX_previous); +bool HBA_(RX_startbit); + +//inline uint8_t* HBA_RX_Buffer() {return RX_Buffer;} +//inline uint8_t HBA_RX_length() {return RX_byte;} +inline uint8_t* HBA_(RX2_Buffer)() {return RXb_Buffer;} +inline uint8_t HBA_(RX2_length)() {return RXb_byte;} +void HBA_(RX_finished)(){ + int x; + if (RX_byte<2) return; + for (x=0;x<RX_byte;x++) {RXb_Buffer[x+1]=RX_Buffer[x];} + RXb_byte=RX_byte+1; +} + +void HBA_(decode_start)(){ + RX_byte=0; + RX_Buffer[0]=0; + RX_bit=6; +// RX_startbit=true; + RX_startbit=false; //Ignore first delay from start edge + RX_previous=false; + } + +void HBA_(decode_addbit)(bool one){ + RX_Buffer[RX_byte]<<=1; + if (one) RX_Buffer[RX_byte]+=1; + RX_bit++; + if (RX_bit==8){ + RX_bit=0; + RX_byte++; + if (RX_byte==BUFFER_LEN) RX_byte--; + RX_Buffer[RX_byte]=0; + } + RX_previous=one; +} + + +void HBA_(decode_delay)(uint8_t delay) +//See table 13: Bit detection scheme +{ + if (RX_startbit){ + RX_startbit=false; //Ignore first delay from start edge + RX_previous=false; + return; + } + if (delay<Get_HBA_speed1()) { + HBA_(decode_addbit)(RX_previous); + } else + if (delay<Get_HBA_speed2()) { + if (RX_previous) { + HBA_(decode_addbit)(false); + } else + { + HBA_(decode_addbit)(false); + HBA_(decode_addbit)(true); + } + } else { + if (RX_previous) { + HBA_(decode_addbit)(false); + HBA_(decode_addbit)(true); + } else + { + HBA_(decode_addbit)(false); //should not occur + } + } + +} + +//uint16_t timer_old=0; + +void HBA_(RX_edge)(uint16_t timer) +{ + static uint16_t timer_old=0; + if (HBA_RX_Mode()==1){ + if (RX_byte>=BUFFER_LEN/2) return; + RX_Buffer[RX_byte++]=((timer-timer_old)&0xFF00)>>8; + RX_Buffer[RX_byte++]=(timer-timer_old)&0xFF; + } + else if (timer-timer_old>0x0100) {HBA_(RX_finished)();HBA_(decode_start)();}//Starts a new packet + else HBA_(decode_delay)((timer-timer_old)&0xFF); + timer_old=timer; +} + +#undef RX_Buffer +#undef RXb_Buffer +#undef RX_byte +#undef RXb_byte +#undef RX_bit +#undef RX_previous +#undef RX_startbit + diff --git a/src/HBAx_TX.c b/src/HBAx_TX.c new file mode 100644 index 0000000..edf9b6f --- /dev/null +++ b/src/HBAx_TX.c @@ -0,0 +1,78 @@ + +#include "registers.h" +#include "crc16.h" + +//Buffer len need to be 2x I2C length +#define BUFFER_LEN 128 + +//uint8_t HBA_REGS[32]; + +#define TX_Buffer HBA_(TX_Buffer) +#define TX_length HBA_(TX_length) +#define TX_waiting2 HBA_(TX_waiting2) +#define TX_byte HBA_(TX_byte) +#define HBA_lookup HBA_(lookup) + +uint8_t HBA_(TX_Buffer)[BUFFER_LEN]; +uint8_t HBA_(TX_length)=0; +bool HBA_(TX_waiting2)=false; +uint8_t HBA_(TX_byte)=0; + +//inline uint8_t* HBA_(TX_Buffer)() {return TX_Buffer;} +inline uint8_t HBA_(TX_len)() {return TX_length;} + +uint8_t HBA_(lookup)[16]={0x55,0x56,0x59,0x5A,0x65,0x66,0x69,0x6A,0x95,0x96,0x99,0x9A,0xA5,0xA6,0xA9,0xAA}; + +uint8_t HBA_(encode)(uint8_t* Buf_in, uint8_t* Buf_out, uint8_t len) +{ + uint8_t cnt=len*2-1; + uint8_t x; + for (x=0;x<len;x++) { + uint8_t i1=Buf_in[x]; + Buf_out[cnt-1]=HBA_lookup[i1&0x0F]; + i1>>=4; + Buf_out[cnt]=HBA_lookup[i1&0x0F]; + cnt-=2; + } + return len*2; +} + + +void HBA_(Make_packet)(uint8_t I2C_length,uint8_t* Buffer){ + //Format (in reverse): Reset, Sync&Start, I2C data (manchester), CRC1 (manchester), stop bit + TX_length=HBA_(encode)(Buffer, &(TX_Buffer[5]),I2C_length);//1 stop byte, 2x2 CRC bytes + TX_length+=5; + + TX_Buffer[0]=0xBF; //stop bit, then high +// TX_Buffer[0]=0xFF; //stop bit +// uint16_t CRC=(uint16_t)(CalculateCRC(Buffer,I2C_length)); + uint16_t CRC=crc_16(Buffer,I2C_length); + HBA_(encode)((uint8_t*)&CRC,&(TX_Buffer[1]),2); + +// TX_Buffer[TX_length++]=0x55; //sync+start +// TX_Buffer[TX_length++]=0x55; //sync+start + TX_Buffer[TX_length++]=0x15; //sync+start + TX_Buffer[TX_length++]=0x00; //reset + TX_Buffer[TX_length++]=0xFF; //make sure it is high for a while + TX_Buffer[TX_length++]=0xFF; //make sure it is high for a while + TX_Buffer[TX_length++]=0xFF; //make sure it is high for a while + TX_Buffer[TX_length++]=0xFF; //make sure it is high for a while +// TX_Buffer[TX_length++]=0xAA; //sync+start +// TX_Buffer[TX_length++]=0xFF; //reset + +} + + + +void HBA_(start_TX)(){ + TX_byte=TX_length-1; + TX_waiting2=!(TX_length==0); +// SPI1BRGL=Get_HBA_TXspeed(); +} + +inline bool HBA_(TX_waiting)() {return TX_waiting2;} + +uint8_t HBA_(TX_next)(){ + TX_waiting2=!(TX_byte==0); + return TX_Buffer[TX_byte--]; +} diff --git a/src/HBAx_i2c.c b/src/HBAx_i2c.c new file mode 100644 index 0000000..fce01de --- /dev/null +++ b/src/HBAx_i2c.c @@ -0,0 +1,42 @@ +#define HBARegister HBA_(Register) + +uint8_t HBA_(Register)=0; + + +void HBA_(I2C_RX)(){ + if (HBA_RX_Mode()<=1) + { + HBA_(Make_packet)(I2C_Buffer_Length(),I2C_Buffer()); + HBA_(start_TX)(); + } + else if (HBA_RX_Mode()==2) + { + if (I2C_Buffer_Length()==0) return; + HBARegister=I2C_Buffer()[0]; + + if (I2C_Buffer_Length()==1) + { //This means it will be a read. Must get the data from HBA + if (HBA_(I2CReg_to_request)(I2C_Buffer_Length(),I2C_Buffer())) + HBA_(start_TX)(); + } + else + { //This means it is a write. Send data to HBA + if (HBA_(I2CReg_to_packet)(I2C_Buffer_Length(),I2C_Buffer())) + HBA_(start_TX)(); //Only send when all data is received + } + + } +} +uint8_t HBA_(I2C_TX)(){ + int x; +if (HBA_RX_Mode()<=1) + { + for (x=0;x<HBA_(RX2_length)();x++) {I2C_Buffer()[x]=HBA_(RX2_Buffer)()[x];} + I2C_Buffer()[0]=HBA_(RX2_length)(); + return HBA_(RX2_length)(); + } +else if (HBA_RX_Mode()==2) + return HBA_(I2CReg_get_buffer)(HBARegister,I2C_Buffer()); +return 0; +} + diff --git a/src/crc16.c b/src/crc16.c new file mode 100644 index 0000000..5abb375 --- /dev/null +++ b/src/crc16.c @@ -0,0 +1,150 @@ +#include "crc16.h" + +/* +//Table from Maxim Application note 27: UNDERSTANDING AND USING CYCLIC REDUNDANCY CHECKS WITH MAXIM 1-WIRE AND IBUTTON PRODUCTS +uint16_t crc_tab16[256]={ + 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, + 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, + 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, + 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, + 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, + 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, + 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, + 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, + 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, + 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, + 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, + 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, + 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, + 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, + 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, + 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, + 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, + 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, + 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, + 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, + 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, + 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, + 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, + 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, + 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, + 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, + 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, + 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, + 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, + 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, + 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, + 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040}; + +//Modified table to comunucate with HBAT1 (wrong only bit 1) +uint16_t crc_tab16[256]={ +0x0, 0xc0c1, 0x180, 0xc141, 0x300, 0xc3c1, 0x280, 0xc241, +0x600, 0xc6c1, 0x780, 0xc741, 0x500, 0xc5c1, 0x480, 0xc441, +0xc00, 0xccc1, 0xd80, 0xcd41, 0xf00, 0xcfc1, 0xe80, 0xce41, +0xa00, 0xcac1, 0xb80, 0xcb41, 0x900, 0xc9c1, 0x880, 0xc841, +0x1800, 0xd8c1, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0x1a80, 0xda41, +0x1e00, 0xdec1, 0x1f80, 0xdf41, 0x1d00, 0xddc1, 0x1c80, 0xdc41, +0x1400, 0xd4c1, 0x1580, 0xd541, 0x1700, 0xd7c1, 0x1680, 0xd641, +0x1200, 0xd2c1, 0x1380, 0xd341, 0x1100, 0xd1c1, 0x1080, 0xd041, +0x3000, 0xf0c1, 0x3180, 0xf141, 0x3300, 0xf3c1, 0x3280, 0xf241, +0x3600, 0xf6c1, 0x3780, 0xf741, 0x3500, 0xf5c1, 0x3480, 0xf441, +0x3c00, 0xfcc1, 0x3d80, 0xfd41, 0x3f00, 0xffc1, 0x3e80, 0xfe41, +0x3a00, 0xfac1, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0x3880, 0xf841, +0x2800, 0xe8c1, 0x2980, 0xe941, 0x2b00, 0xebc1, 0x2a80, 0xea41, +0x2e00, 0xeec1, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0x2c80, 0xec41, +0x2400, 0xe4c1, 0x2580, 0xe541, 0x2700, 0xe7c1, 0x2680, 0xe641, +0x2200, 0xe2c1, 0x2380, 0xe341, 0x2100, 0xe1c1, 0x2080, 0xe041, +0x6000, 0xa0c1, 0x6180, 0xa141, 0x6300, 0xa3c1, 0x6280, 0xa241, +0x6600, 0xa6c1, 0x6780, 0xa741, 0x6500, 0xa5c1, 0x6480, 0xa441, +0x6c00, 0xacc1, 0x6d80, 0xad41, 0x6f00, 0xafc1, 0x6e80, 0xae41, +0x6a00, 0xaac1, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0x6880, 0xa841, +0x7800, 0xb8c1, 0x7980, 0xb941, 0x7b00, 0xbbc1, 0x7a80, 0xba41, +0x7e00, 0xbec1, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0x7c80, 0xbc41, +0x7400, 0xb4c1, 0x7580, 0xb541, 0x7700, 0xb7c1, 0x7680, 0xb641, +0x7200, 0xb2c1, 0x7380, 0xb341, 0x7100, 0xb1c1, 0x7080, 0xb041, +0x5000, 0x90c1, 0x5180, 0x9141, 0x5300, 0x93c1, 0x5280, 0x9241, +0x5600, 0x96c1, 0x5780, 0x9741, 0x5500, 0x95c1, 0x5480, 0x9441, +0x5c00, 0x9cc1, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x5e80, 0x9e41, +0x5a00, 0x9ac1, 0x5b80, 0x9b41, 0x5900, 0x99c1, 0x5880, 0x9841, +0x4800, 0x88c1, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x4a80, 0x8a41, +0x4e00, 0x8ec1, 0x4f80, 0x8f41, 0x4d00, 0x8dc1, 0x4c80, 0x8c41, +0x4400, 0x84c1, 0x4580, 0x8541, 0x4700, 0x87c1, 0x4680, 0x8641, +0x4200, 0x82c1, 0x4380, 0x8341, 0x4100, 0x81c1, 0x4080, 0x8041 +}; +*/ +//Modified table to comunucate with HBAT1 (bit 1 and 5 correct) +uint16_t crc_tab16[256]={ +0x0, 0xc0c1, 0x180, 0xc141, 0x300, 0xc3c1, 0x280, 0xc241, +0x600, 0xc6c1, 0x780, 0xc741, 0x500, 0xc5c1, 0x480, 0xc441, +0xcc01, 0xcc0, 0xcd81, 0xd40, 0xcf01, 0xfc0, 0xce81, 0xe40, +0xca01, 0xac0, 0xcb81, 0xb40, 0xc901, 0x9c0, 0xc881, 0x840, +0x1800, 0xd8c1, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0x1a80, 0xda41, +0x1e00, 0xdec1, 0x1f80, 0xdf41, 0x1d00, 0xddc1, 0x1c80, 0xdc41, +0xd401, 0x14c0, 0xd581, 0x1540, 0xd701, 0x17c0, 0xd681, 0x1640, +0xd201, 0x12c0, 0xd381, 0x1340, 0xd101, 0x11c0, 0xd081, 0x1040, +0x3000, 0xf0c1, 0x3180, 0xf141, 0x3300, 0xf3c1, 0x3280, 0xf241, +0x3600, 0xf6c1, 0x3780, 0xf741, 0x3500, 0xf5c1, 0x3480, 0xf441, +0xfc01, 0x3cc0, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0xfe81, 0x3e40, +0xfa01, 0x3ac0, 0xfb81, 0x3b40, 0xf901, 0x39c0, 0xf881, 0x3840, +0x2800, 0xe8c1, 0x2980, 0xe941, 0x2b00, 0xebc1, 0x2a80, 0xea41, +0x2e00, 0xeec1, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0x2c80, 0xec41, +0xe401, 0x24c0, 0xe581, 0x2540, 0xe701, 0x27c0, 0xe681, 0x2640, +0xe201, 0x22c0, 0xe381, 0x2340, 0xe101, 0x21c0, 0xe081, 0x2040, +0x6000, 0xa0c1, 0x6180, 0xa141, 0x6300, 0xa3c1, 0x6280, 0xa241, +0x6600, 0xa6c1, 0x6780, 0xa741, 0x6500, 0xa5c1, 0x6480, 0xa441, +0xac01, 0x6cc0, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0xae81, 0x6e40, +0xaa01, 0x6ac0, 0xab81, 0x6b40, 0xa901, 0x69c0, 0xa881, 0x6840, +0x7800, 0xb8c1, 0x7980, 0xb941, 0x7b00, 0xbbc1, 0x7a80, 0xba41, +0x7e00, 0xbec1, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0x7c80, 0xbc41, +0xb401, 0x74c0, 0xb581, 0x7540, 0xb701, 0x77c0, 0xb681, 0x7640, +0xb201, 0x72c0, 0xb381, 0x7340, 0xb101, 0x71c0, 0xb081, 0x7040, +0x5000, 0x90c1, 0x5180, 0x9141, 0x5300, 0x93c1, 0x5280, 0x9241, +0x5600, 0x96c1, 0x5780, 0x9741, 0x5500, 0x95c1, 0x5480, 0x9441, +0x9c01, 0x5cc0, 0x9d81, 0x5d40, 0x9f01, 0x5fc0, 0x9e81, 0x5e40, +0x9a01, 0x5ac0, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x9881, 0x5840, +0x4800, 0x88c1, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x4a80, 0x8a41, +0x4e00, 0x8ec1, 0x4f80, 0x8f41, 0x4d00, 0x8dc1, 0x4c80, 0x8c41, +0x8401, 0x44c0, 0x8581, 0x4540, 0x8701, 0x47c0, 0x8681, 0x4640, +0x8201, 0x42c0, 0x8381, 0x4340, 0x8101, 0x41c0, 0x8081, 0x4040, +}; + +void init_crc16_tab( void ) { + //Make a normal CRC16 table - not used! +/* + uint16_t i; + uint16_t j; + uint16_t crc; + uint16_t c; + + for (i=0; i<256; i++) { + + crc = 0; + c = i; + + for (j=0; j<8; j++) { + + if ( (crc ^ c) & 0x0001 ) crc = ( crc >> 1 ) ^ 0xA001; //CRC_POLY_16; + else crc = crc >> 1; + + c = c >> 1; + } + + crc_tab16[i] = crc; + } +*/ +} + +uint16_t crc_16( uint8_t* buffer, uint8_t num_bytes ) { + + uint16_t crc=0; + uint8_t a; + + + for (a=0; a<num_bytes; a++) { + + crc = (crc >> 8) ^ crc_tab16[ (crc ^ buffer[a]) & 0x00FF ]; + } + + return crc; + +} /* crc_16 */ \ No newline at end of file diff --git a/src/crc16.h b/src/crc16.h new file mode 100644 index 0000000..e183e5d --- /dev/null +++ b/src/crc16.h @@ -0,0 +1,14 @@ + + +// This is a guard condition so that contents of this file are not included +// more than once. +#ifndef CRC16_H +#define CRC16_H + +//#include <xc.h> // include processor files - each processor file is guarded. +#include "stdint.h" + +void init_crc16_tab( void ); +uint16_t crc_16( uint8_t* input_str, uint8_t num_bytes ); + +#endif \ No newline at end of file diff --git a/src/rcu2_i2c.c b/src/rcu2_i2c.c new file mode 100644 index 0000000..77b4e4e --- /dev/null +++ b/src/rcu2_i2c.c @@ -0,0 +1,70 @@ +#include "rcu2_i2c.h" +#include "../mcc_generated_files/i2c1.h" + +#include "HBA1_RX.h" +#include "HBA1_TX.h" +#include "HBA1.h" + +#include "HBA2_RX.h" +#include "HBA2_TX.h" +#include "HBA2.h" + +#include "HBA3_RX.h" +#include "HBA3_TX.h" +#include "HBA3.h" + +#include "registers.h" + +uint8_t PicRegister=0; + +void I2C_RX_pic(){ + if (I2C_Buffer_Length()==0) return; + PicRegister=I2C_Buffer()[0]; + if (I2C_Buffer_Length()==1) return; + if (PicRegister>=RegisterCount) return; + SetRegister(PicRegister,I2C_Buffer()[1]); +} + +uint8_t I2C_TX_pic(){ + if (PicRegister>=RegisterCount) return 0; + I2C_Buffer()[0]= GetRegister(PicRegister); +// I2C_Buffer()[0]=HBA_RX_length(); +// I2C_Buffer()[1]=HBA_TX_length(); +// I2C_Buffer()[2]=I2C_Address(); + return 1; +} + +#define HBA_(name) HBA1_ ## name +#include "HBAx_i2c.c" +#undef HBA_ + +#define HBA_(name) HBA2_ ## name +#include "HBAx_i2c.c" +#undef HBA_ + +#define HBA_(name) HBA3_ ## name +#include "HBAx_i2c.c" +#undef HBA_ + + +uint8_t I2C_TX_request(){ + switch (I2C_Address()) + { + case 0x40: return I2C_TX_pic(); + case 0x41: return HBA1_I2C_TX(); + case 0x42: return HBA2_I2C_TX(); + case 0x43: return HBA3_I2C_TX(); + } + return 0; +} + +void I2C_packet(){ + switch (I2C_Address()) + { + case 0x40: return I2C_RX_pic(); + case 0x41: return HBA1_I2C_RX(); + case 0x42: return HBA2_I2C_RX(); + case 0x43: return HBA3_I2C_RX(); + } +} + diff --git a/src/rcu2_i2c.h b/src/rcu2_i2c.h new file mode 100644 index 0000000..3692c86 --- /dev/null +++ b/src/rcu2_i2c.h @@ -0,0 +1,9 @@ +#ifndef RCU2_I2C_H +#define RCU2_I2C__H + +#include <xc.h> + +uint8_t I2C_TX_request(); +void I2C_packet(); + +#endif // RCU2_I2C__H diff --git a/src/registers.c b/src/registers.c new file mode 100644 index 0000000..2561587 --- /dev/null +++ b/src/registers.c @@ -0,0 +1,42 @@ +#include "registers.h" + + +union Regs Regs; + + +inline void SetRegister(uint8_t Addr,uint8_t value) +{ + Regs.Buffer[Addr]=value; +} + +inline uint8_t GetRegister(uint8_t Addr) +{ + return Regs.Buffer[Addr]; +} + + +inline uint8_t HBA_RX_Mode(void) {return Regs.R.Mode;} + +inline uint8_t Get_HBA_speed1(void) {return Regs.R.HBA_speed1;} +inline uint8_t Get_HBA_speed2(void) {return Regs.R.HBA_speed2;} +inline uint16_t Get_HBA_TXspeed(void){return Regs.R.HBA_TX_speed;} +inline uint16_t Get_RX_Timeout(void){return Regs.R.HBA_RX_Timeout;} +void Set_RX_Timeout(uint16_t value){Regs.R.HBA_RX_Timeout=value;} +inline uint16_t Get_TXRX_Timeout(void){return Regs.R.HBA_TXRX_Timeout;} +void Set_TXRX_Timeout(uint16_t value){Regs.R.HBA_TXRX_Timeout=value;} +inline bool Get_autoread(void) {return Regs.R.autoreadback;} + + + +void Register_defaults(void) +{ + Regs.R.Mode=2; //0 = forward packets 1 = give raw timer values 2=registers + Regs.R.HBA_speed1=125; + Regs.R.HBA_speed2=175; + Regs.R.HBA_TX_speed=0x58; + Regs.R.HBA_RX_Timeout=0x0400; + Regs.R.HBA_TXRX_Timeout=0x5000; + Regs.R.autoreadback=1; +} + + diff --git a/src/registers.h b/src/registers.h new file mode 100644 index 0000000..4d9fb4b --- /dev/null +++ b/src/registers.h @@ -0,0 +1,46 @@ +#ifndef REGISTERS_H +#define REGISTERS_H + +#include <xc.h> // include processor files - each processor file is guarded. +#include "stdbool.h" + +struct Registers { + uint8_t ID; //0 + uint8_t Speeds; //1 + uint8_t Mode; //2 + uint8_t HBA_speed1;//3 + uint8_t HBA_speed2; //4 + uint8_t autoreadback; //5 uint16 start on even + uint16_t HBA_TX_speed; //6,7 order low,high + uint16_t HBA_RX_Timeout;//8,9 + uint16_t HBA_TXRX_Timeout;//10,11 +}; +#define RegisterCount 12 + +union Regs { + struct Registers R; + uint8_t Buffer[RegisterCount]; +}; + +void Register_defaults(void); + +void SetRegister(uint8_t Addr,uint8_t value); + +uint8_t GetRegister(uint8_t Addr); + +uint8_t Get_HBA_speed1(void); +uint8_t Get_HBA_speed2(void); + +uint16_t Get_HBA_TXspeed(void); + +uint16_t Get_RX_Timeout(void); +uint16_t Get_TXRX_Timeout(void); +bool Get_autoread(void); + +uint8_t HBA_RX_Mode(void); +void Set_RX_Timeout(uint16_t value); +void Set_TXRX_Timeout(uint16_t value); + + +#endif + diff --git a/src/xc.h b/src/xc.h new file mode 100644 index 0000000..a4a3438 --- /dev/null +++ b/src/xc.h @@ -0,0 +1,2 @@ +#include "stdint.h" +#include "stdbool.h" \ No newline at end of file -- GitLab