aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRossTheRoss <msattr@gmail.com>2020-04-24 13:16:17 -0500
committerRossTheRoss <msattr@gmail.com>2020-04-24 13:16:17 -0500
commite9f3d4a56d10de933c9c22646a7b084ec3cff20f (patch)
treed1482ec0ae76500e2df3fa6cda276722a1aaa167
parentForget to add a bunch of things (diff)
downloadee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.tar
ee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.tar.gz
ee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.tar.bz2
ee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.tar.lz
ee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.tar.xz
ee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.tar.zst
ee2361-e9f3d4a56d10de933c9c22646a7b084ec3cff20f.zip
Add MORE stuff I forget to commit
-rw-r--r--HW4.X/2020-04-14 18-07.pdfbin0 -> 832828 bytes
-rw-r--r--HW4.X/HW4.zipbin0 -> 740790 bytes
-rw-r--r--HW4.X/Makefile113
-rw-r--r--HW4.X/disc08_UART.c113
-rw-r--r--HW4.X/disc08_uart_in_1.txt29
-rw-r--r--HW4.X/disc08_uart_in_2.txt3
-rw-r--r--HW4.X/dist/default/debug/memoryfile.xml18
-rw-r--r--HW4.X/hw4_uart_caesar_cipher_in.txt7
-rw-r--r--HW4.X/hw4_uart_caesar_cipher_strap012.c109
-rw-r--r--HW4.X/hw4_uart_caesar_cipher_strap012.pngbin0 -> 44236 bytes
-rw-r--r--HW4.X/nbproject/Makefile-default.mk161
-rw-r--r--HW4.X/nbproject/Makefile-genesis.properties10
-rw-r--r--HW4.X/nbproject/Makefile-impl.mk69
-rw-r--r--HW4.X/nbproject/Makefile-local-default.mk38
-rw-r--r--HW4.X/nbproject/Makefile-variables.mk13
-rw-r--r--HW4.X/nbproject/Package-default.bash73
-rw-r--r--HW4.X/nbproject/configurations.xml625
-rw-r--r--HW4.X/nbproject/private/configurations.xml25
-rw-r--r--HW4.X/nbproject/private/private.xml7
-rw-r--r--HW4.X/nbproject/project.xml29
-rw-r--r--Lab5.X/Lab 5 Report.pdfbin0 -> 45125 bytes
-rw-r--r--Lab5.X/dist/default/debug/memoryfile.xml4
-rw-r--r--Lab5.X/lab5_lcd.c6
-rw-r--r--Lab5.X/lab5_main.c4
-rw-r--r--Lab5.X/nbproject/Makefile-genesis.properties4
-rw-r--r--Lab5.X/nbproject/configurations.xml1
-rw-r--r--Lab5.X/nbproject/private/private.xml6
-rw-r--r--Lab5.X/strap012_Lab5.zipbin0 -> 45577 bytes
-rw-r--r--Lab6.X/Makefile113
-rw-r--r--Lab6.X/circBuffer.c28
-rw-r--r--Lab6.X/circBuffer.h19
-rw-r--r--Lab6.X/dist/default/production/memoryfile.xml18
-rw-r--r--Lab6.X/lab6_main.c103
-rw-r--r--Lab6.X/nbproject/Makefile-default.mk175
-rw-r--r--Lab6.X/nbproject/Makefile-genesis.properties10
-rw-r--r--Lab6.X/nbproject/Makefile-impl.mk69
-rw-r--r--Lab6.X/nbproject/Makefile-local-default.mk38
-rw-r--r--Lab6.X/nbproject/Makefile-variables.mk13
-rw-r--r--Lab6.X/nbproject/Package-default.bash73
-rw-r--r--Lab6.X/nbproject/configurations.xml224
-rw-r--r--Lab6.X/nbproject/private/configurations.xml25
-rw-r--r--Lab6.X/nbproject/private/private.xml11
-rw-r--r--Lab6.X/nbproject/project.xml27
-rw-r--r--Lab6.X/strap012_prelab6.zipbin0 -> 803 bytes
44 files changed, 2400 insertions, 13 deletions
diff --git a/HW4.X/2020-04-14 18-07.pdf b/HW4.X/2020-04-14 18-07.pdf
new file mode 100644
index 0000000..ec09db0
--- /dev/null
+++ b/HW4.X/2020-04-14 18-07.pdf
Binary files differ
diff --git a/HW4.X/HW4.zip b/HW4.X/HW4.zip
new file mode 100644
index 0000000..bf1fb70
--- /dev/null
+++ b/HW4.X/HW4.zip
Binary files differ
diff --git a/HW4.X/Makefile b/HW4.X/Makefile
new file mode 100644
index 0000000..fca8e2c
--- /dev/null
+++ b/HW4.X/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/HW4.X/disc08_UART.c b/HW4.X/disc08_UART.c
new file mode 100644
index 0000000..c0efdf5
--- /dev/null
+++ b/HW4.X/disc08_UART.c
@@ -0,0 +1,113 @@
+//#include <p24Fxxxx.h>
+#include <xc.h>
+#include <stdlib.h>
+
+// PIC24FJ64GA002 Configuration Bit Settings
+// CW1: FLASH CONFIGURATION WORD 1 (see PIC24 Family Reference Manual 24.1)
+#pragma config ICS = PGx1 // Comm Channel Select (Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1)
+#pragma config FWDTEN = OFF // Watchdog Timer Enable (Watchdog Timer is disabled)
+#pragma config GWRP = OFF // General Code Segment Write Protect (Writes to program memory are allowed)
+#pragma config GCP = OFF // General Code Segment Code Protect (Code protection is disabled)
+#pragma config JTAGEN = OFF // JTAG Port Enable (JTAG port is disabled)
+
+
+// CW2: FLASH CONFIGURATION WORD 2 (see PIC24 Family Reference Manual 24.1)
+#pragma config POSCMOD = NONE // Primary Oscillator Select (Primary oscillator disabled.
+ // Primary Oscillator refers to an external osc connected to the OSC1 and OSC2 pins)
+#pragma config I2C1SEL = PRI // I2C1 Pin Location Select (Use default SCL1/SDA1 pins)
+#pragma config IOL1WAY = OFF // IOLOCK Protection (IOLOCK may be changed via unlocking seq)
+#pragma config OSCIOFNC = ON // OSC2/CLKO/RC15 functions as port I/O (RC15)
+#pragma config FCKSM = CSECME // Clock Switching and Monitor (Clock switching is enabled,
+ // Fail-Safe Clock Monitor is enabled)
+#pragma config FNOSC = FRCPLL // Oscillator Select (Fast RC Oscillator with PLL module (FRCPLL))
+
+volatile unsigned char buffer[64];
+volatile unsigned char front = 0;
+volatile unsigned char back = 0;
+
+void __attribute__((__interrupt__,__auto_psv__)) _U1RXInterrupt(void)
+{
+ IFS0bits.U1RXIF = 0;
+ buffer[front++] = U1RXREG;
+ front &= 63;
+}
+
+void PPutch(const unsigned char c)
+{
+ while (!IFS0bits.U1TXIF) ;
+ IFS0bits.U1TXIF = 0;
+ if (c >= 65 && c <= 90)
+ U1TXREG = (c - 65 + 3) % 26 + 65;
+ else
+ U1TXREG = c;
+
+}
+
+unsigned char PGetch(void)
+{
+ unsigned char x;
+
+ while (front == back) ;
+ x = buffer[back++];
+ back &= 63;
+ return x;
+}
+
+void setup(void)
+{
+ CLKDIVbits.RCDIV = 0;
+ AD1PCFG = 0x9fff; // For digital I/O.
+
+ // I think the following two lines are irrelevant. The UART doc
+ // Page 3, when describing the UARTEN bit in UxMODE says that when UARTEN
+ // is set, TRISx are ignored and instead UEN and UTXEN control pins.
+ _TRISB6 = 0; // U1TX output
+ _TRISB10 = 1; // U1RX input
+
+ U1MODE = 0; // UEN<1:0> bits control the pins
+ // U1BRG = 34; // 115200 baud,
+ // U1MODEbits.BRGH = 1;
+ U1MODEbits.BRGH = 0;
+ U1BRG = 25; // 38400 baud (check the calculation with the datasheet)
+ U1MODEbits.UEN = 0;
+ U1MODEbits.UARTEN = 1;
+ U1STAbits.UTXEN = 1;
+
+ // Peripheral Pin Select
+ __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS
+ _RP6R = 0x0003; //RB6->UART1:U1TX; See Table 10-3 on P109 of the datasheet
+ _U1RXR = 10; //RB10->UART1:U1RX;
+ __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS
+
+ IFS0bits.U1RXIF = 0;
+ IEC0bits.U1RXIE = 1;
+}
+
+int main(int argc, char *argv[])
+{
+
+ setup();
+
+ int i;
+
+ // waste some time
+ for (i = 0; i < 30000; i++) i = i;
+
+ // transmit data on UART
+// for (i = ' '; i < 0x7f; i++)
+// PPutch(i);
+ PPutch(0x0D); // new line characters
+ PPutch(0x0A);
+
+ while (1)
+ {
+ unsigned int x;
+
+ x = PGetch();
+ if (x>='a' && x<='z')
+ x += 'A' - 'a';
+ PPutch(x);
+ }
+
+ return 0; // never reached (we hope)
+}
diff --git a/HW4.X/disc08_uart_in_1.txt b/HW4.X/disc08_uart_in_1.txt
new file mode 100644
index 0000000..a657647
--- /dev/null
+++ b/HW4.X/disc08_uart_in_1.txt
@@ -0,0 +1,29 @@
+wait 100 ms
+
+42
+
+wait 10 ms
+
+34
+
+wait 20 ms
+
+3c
+
+wait 1 ms
+
+0D 0A
+
+wait 200 ms
+
+"This is a message put in via a message file and fed as UART input."
+
+wait 1 ms
+
+0D 0A
+
+"The answer is.... 42!"
+wait 1 ms
+
+0D 0A
+
diff --git a/HW4.X/disc08_uart_in_2.txt b/HW4.X/disc08_uart_in_2.txt
new file mode 100644
index 0000000..45e3473
--- /dev/null
+++ b/HW4.X/disc08_uart_in_2.txt
@@ -0,0 +1,3 @@
+wait 1 ms
+
+"123456789a123456789b123456789c d e f g h i j k " \ No newline at end of file
diff --git a/HW4.X/dist/default/debug/memoryfile.xml b/HW4.X/dist/default/debug/memoryfile.xml
new file mode 100644
index 0000000..17d0980
--- /dev/null
+++ b/HW4.X/dist/default/debug/memoryfile.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project>
+ <executable name="dist/default/debug/HW4.X.debug.elf">
+ <memory name="data">
+ <units>bytes</units>
+ <length>8192</length>
+ <used>66</used>
+ <free>8126</free>
+ </memory>
+ <memory name="program">
+ <units>bytes</units>
+ <length>65274</length>
+ <used>807</used>
+ <free>64467</free>
+ </memory>
+ </executable>
+</project>
diff --git a/HW4.X/hw4_uart_caesar_cipher_in.txt b/HW4.X/hw4_uart_caesar_cipher_in.txt
new file mode 100644
index 0000000..f87482e
--- /dev/null
+++ b/HW4.X/hw4_uart_caesar_cipher_in.txt
@@ -0,0 +1,7 @@
+wait 200 ms
+
+"QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD"
+
+wait 1 ms
+
+0D 0A
diff --git a/HW4.X/hw4_uart_caesar_cipher_strap012.c b/HW4.X/hw4_uart_caesar_cipher_strap012.c
new file mode 100644
index 0000000..af2e50e
--- /dev/null
+++ b/HW4.X/hw4_uart_caesar_cipher_strap012.c
@@ -0,0 +1,109 @@
+#include <p24Fxxxx.h>
+#include <xc.h>
+#include <stdlib.h>
+
+// PIC24FJ64GA002 Configuration Bit Settings
+// CW1: FLASH CONFIGURATION WORD 1 (see PIC24 Family Reference Manual 24.1)
+#pragma config ICS = PGx1 // Comm Channel Select (Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1)
+#pragma config FWDTEN = OFF // Watchdog Timer Enable (Watchdog Timer is disabled)
+#pragma config GWRP = OFF // General Code Segment Write Protect (Writes to program memory are allowed)
+#pragma config GCP = OFF // General Code Segment Code Protect (Code protection is disabled)
+#pragma config JTAGEN = OFF // JTAG Port Enable (JTAG port is disabled)
+
+
+// CW2: FLASH CONFIGURATION WORD 2 (see PIC24 Family Reference Manual 24.1)
+#pragma config POSCMOD = NONE // Primary Oscillator Select (Primary oscillator disabled.
+ // Primary Oscillator refers to an external osc connected to the OSC1 and OSC2 pins)
+#pragma config I2C1SEL = PRI // I2C1 Pin Location Select (Use default SCL1/SDA1 pins)
+#pragma config IOL1WAY = OFF // IOLOCK Protection (IOLOCK may be changed via unlocking seq)
+#pragma config OSCIOFNC = ON // OSC2/CLKO/RC15 functions as port I/O (RC15)
+#pragma config FCKSM = CSECME // Clock Switching and Monitor (Clock switching is enabled,
+ // Fail-Safe Clock Monitor is enabled)
+#pragma config FNOSC = FRCPLL // Oscillator Select (Fast RC Oscillator with PLL module (FRCPLL))
+
+volatile unsigned char buffer[64];
+volatile unsigned char front = 0;
+volatile unsigned char back = 0;
+
+void __attribute__((__interrupt__,__auto_psv__)) _U1RXInterrupt(void)
+{
+ IFS0bits.U1RXIF = 0;
+ buffer[front++] = U1RXREG;
+ front &= 63;
+}
+
+void PPutch(const unsigned char c)
+{
+ while (!IFS0bits.U1TXIF) ;
+ IFS0bits.U1TXIF = 0;
+ U1TXREG = ((c+3-65) %26) + 65;
+}
+
+unsigned char PGetch(void)
+{
+ unsigned char x;
+
+ while (front == back) ;
+ x = buffer[back++];
+ back &= 63;
+ return x;
+}
+
+void setup(void)
+{
+ CLKDIVbits.RCDIV = 0;
+ AD1PCFG = 0x9fff; // For digital I/O.
+
+ // I think the following two lines are irrelevant. The UART doc
+ // Page 3, when describing the UARTEN bit in UxMODE says that when UARTEN
+ // is set, TRISx are ignored and instead UEN and UTXEN control pins.
+ _TRISB6 = 0; // U1TX output
+ _TRISB10 = 1; // U1RX input
+
+ U1MODE = 0; // UEN<1:0> bits control the pins
+ // U1BRG = 34; // 115200 baud,
+ // U1MODEbits.BRGH = 1;
+ U1MODEbits.BRGH = 0;
+ U1BRG = 25; // 38400 baud (check the calculation with the datasheet)
+ U1MODEbits.UEN = 0;
+ U1MODEbits.UARTEN = 1;
+ U1STAbits.UTXEN = 1;
+
+ // Peripheral Pin Select
+ __builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS
+ _RP6R = 0x0003; //RB6->UART1:U1TX; See Table 10-3 on P109 of the datasheet
+ _U1RXR = 10; //RB10->UART1:U1RX;
+ __builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS
+
+ IFS0bits.U1RXIF = 0;
+ IEC0bits.U1RXIE = 1;
+}
+
+int main(int argc, char *argv[])
+{
+
+ setup();
+
+ int i;
+
+ // waste some time
+ for (i = 0; i < 30000; i++) i = i;
+
+ // transmit data on UART
+// for (i = ' '; i < 0x7f; i++)
+// PPutch(i);
+ PPutch(0x0D); // new line characters
+ PPutch(0x0A);
+
+ while (1)
+ {
+ unsigned int x;
+
+ x = PGetch();
+ if (x>='a' && x<='z')
+ x += 'A' - 'a';
+ PPutch(x);
+ }
+
+ return 0; // never reached (we hope)
+} \ No newline at end of file
diff --git a/HW4.X/hw4_uart_caesar_cipher_strap012.png b/HW4.X/hw4_uart_caesar_cipher_strap012.png
new file mode 100644
index 0000000..6d28588
--- /dev/null
+++ b/HW4.X/hw4_uart_caesar_cipher_strap012.png
Binary files differ
diff --git a/HW4.X/nbproject/Makefile-default.mk b/HW4.X/nbproject/Makefile-default.mk
new file mode 100644
index 0000000..2224aa5
--- /dev/null
+++ b/HW4.X/nbproject/Makefile-default.mk
@@ -0,0 +1,161 @@
+#
+# 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=gnumkdir -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}/HW4.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+else
+IMAGE_TYPE=production
+OUTPUT_SUFFIX=hex
+DEBUGGABLE_SUFFIX=elf
+FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/HW4.X.${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=disc08_UART.c
+
+# Object Files Quoted if spaced
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/disc08_UART.o
+POSSIBLE_DEPFILES=${OBJECTDIR}/disc08_UART.o.d
+
+# Object Files
+OBJECTFILES=${OBJECTDIR}/disc08_UART.o
+
+# Source Files
+SOURCEFILES=disc08_UART.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}/HW4.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+
+MP_PROCESSOR_OPTION=24FJ64GA002
+MP_LINKER_FILE_OPTION=,--script=p24FJ64GA002.gld
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: compile
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+${OBJECTDIR}/disc08_UART.o: disc08_UART.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/disc08_UART.o.d
+ @${RM} ${OBJECTDIR}/disc08_UART.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) disc08_UART.c -o ${OBJECTDIR}/disc08_UART.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/disc08_UART.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -O0 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16
+ @${FIXDEPS} "${OBJECTDIR}/disc08_UART.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
+
+else
+${OBJECTDIR}/disc08_UART.o: disc08_UART.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/disc08_UART.o.d
+ @${RM} ${OBJECTDIR}/disc08_UART.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) disc08_UART.c -o ${OBJECTDIR}/disc08_UART.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/disc08_UART.o.d" -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -O0 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16
+ @${FIXDEPS} "${OBJECTDIR}/disc08_UART.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
+
+endif
+
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: assemble
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+else
+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}/HW4.X.${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}/HW4.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -D__DEBUG=__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,,,--defsym=__MPLAB_BUILD=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D__DEBUG=__DEBUG,--defsym=__MPLAB_DEBUGGER_SIMULATOR=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}/HW4.X.${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}/HW4.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,,,--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}/HW4.X.${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 mplabwildcard ${POSSIBLE_DEPFILES})
+ifneq (${DEPFILES},)
+include ${DEPFILES}
+endif
diff --git a/HW4.X/nbproject/Makefile-genesis.properties b/HW4.X/nbproject/Makefile-genesis.properties
new file mode 100644
index 0000000..45bbb35
--- /dev/null
+++ b/HW4.X/nbproject/Makefile-genesis.properties
@@ -0,0 +1,10 @@
+#
+#Tue Apr 14 18:09:38 CDT 2020
+default.Pack.dfplocation=C\:\\Program Files (x86)\\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=C\:\\Program Files\\Microchip\\xc16\\v1.50\\bin
+configurations-xml=68d974e083f3738d22daa1f706138178
+com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5db0f4d6bbe0ec2a1f1096ccfb9d7ad3
+default.languagetoolchain.version=1.50
+host.platform=windows
+conf.ids=default
diff --git a/HW4.X/nbproject/Makefile-impl.mk b/HW4.X/nbproject/Makefile-impl.mk
new file mode 100644
index 0000000..0315398
--- /dev/null
+++ b/HW4.X/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=HW4.X
+
+# 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/HW4.X/nbproject/Makefile-local-default.mk b/HW4.X/nbproject/Makefile-local-default.mk
new file mode 100644
index 0000000..c75d9df
--- /dev/null
+++ b/HW4.X/nbproject/Makefile-local-default.mk
@@ -0,0 +1,38 @@
+#
+# 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" ...
+#
+SHELL=cmd.exe
+PATH_TO_IDE_BIN=C:/Program Files (x86)/Microchip/MPLABX/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/
+# Adding MPLAB X bin directory to path.
+PATH:=C:/Program Files (x86)/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="C:\Program Files (x86)\Microchip\MPLABX\v5.35\sys\java\jre1.8.0_181/bin/"
+OS_CURRENT="$(shell uname -s)"
+MP_CC="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-gcc.exe"
+# MP_CPPC is not defined
+# MP_BC is not defined
+MP_AS="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-as.exe"
+MP_LD="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-ld.exe"
+MP_AR="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files (x86)/Microchip/MPLABX/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+# MP_CPPC_DIR is not defined
+# MP_BC_DIR is not defined
+MP_AS_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+MP_LD_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+MP_AR_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+# MP_BC_DIR is not defined
+DFP_DIR="C:/Program Files (x86)/Microchip/MPLABX/v5.35/packs/Microchip/PIC24F-GA-GB_DFP/1.2.101"
diff --git a/HW4.X/nbproject/Makefile-variables.mk b/HW4.X/nbproject/Makefile-variables.mk
new file mode 100644
index 0000000..ebf84b1
--- /dev/null
+++ b/HW4.X/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=HW4.X.production.hex
+CND_ARTIFACT_PATH_default=dist/default/production/HW4.X.production.hex
+CND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package
+CND_PACKAGE_NAME_default=hw4.x.tar
+CND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/hw4.x.tar
diff --git a/HW4.X/nbproject/Package-default.bash b/HW4.X/nbproject/Package-default.bash
new file mode 100644
index 0000000..bde3a6d
--- /dev/null
+++ b/HW4.X/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}/HW4.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+OUTPUT_BASENAME=HW4.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+PACKAGE_TOP_DIR=hw4.x/
+
+# 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}/hw4.x/bin
+copyFileToTmpDir "${OUTPUT_PATH}" "${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/package/hw4.x.tar
+cd ${TMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/hw4.x.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${TMPDIR}
diff --git a/HW4.X/nbproject/configurations.xml b/HW4.X/nbproject/configurations.xml
new file mode 100644
index 0000000..6f5b503
--- /dev/null
+++ b/HW4.X/nbproject/configurations.xml
@@ -0,0 +1,625 @@
+<?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>
+ <logicalFolder name="LinkerScript"
+ displayName="Linker Files"
+ projectFiles="true">
+ </logicalFolder>
+ <logicalFolder name="SourceFiles"
+ displayName="Source Files"
+ projectFiles="true">
+ <itemPath>disc08_UART.c</itemPath>
+ </logicalFolder>
+ <logicalFolder name="ExternalFiles"
+ displayName="Important Files"
+ projectFiles="false">
+ <itemPath>Makefile</itemPath>
+ </logicalFolder>
+ </logicalFolder>
+ <sourceRootList>
+ <Elem>.</Elem>
+ </sourceRootList>
+ <projectmakefile>Makefile</projectmakefile>
+ <confs>
+ <conf name="default" type="2">
+ <toolsSet>
+ <developmentServer>localhost</developmentServer>
+ <targetDevice>PIC24FJ64GA002</targetDevice>
+ <targetHeader></targetHeader>
+ <targetPluginBoard></targetPluginBoard>
+ <platformTool>Simulator</platformTool>
+ <languageToolchain>XC16</languageToolchain>
+ <languageToolchainVersion>1.50</languageToolchainVersion>
+ <platform>3</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="default"/>
+ <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="0"/>
+ <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>
+ <Simulator>
+ <property key="codecoverage.enabled" value="Disable"/>
+ <property key="codecoverage.enableoutputtofile" value="false"/>
+ <property key="codecoverage.outputfile" value=""/>
+ <property key="oscillator.auxfrequency" value="120"/>
+ <property key="oscillator.auxfrequencyunit" value="Mega"/>
+ <property key="oscillator.frequency" value="16"/>
+ <property key="oscillator.frequencyunit" value="Mega"/>
+ <property key="oscillator.rcfrequency" value="250"/>
+ <property key="oscillator.rcfrequencyunit" value="Kilo"/>
+ <property key="periphADC1.altscl" value="false"/>
+ <property key="periphADC1.minTacq" value=""/>
+ <property key="periphADC1.tacqunits" value="microseconds"/>
+ <property key="periphADC2.altscl" value="false"/>
+ <property key="periphADC2.minTacq" value=""/>
+ <property key="periphADC2.tacqunits" value="microseconds"/>
+ <property key="periphComp1.gte" value="gt"/>
+ <property key="periphComp2.gte" value="gt"/>
+ <property key="periphComp3.gte" value="gt"/>
+ <property key="periphComp4.gte" value="gt"/>
+ <property key="periphComp5.gte" value="gt"/>
+ <property key="periphComp6.gte" value="gt"/>
+ <property key="reset.scl" value="false"/>
+ <property key="reset.type" value="MCLR"/>
+ <property key="tracecontrol.include.timestamp" value="summarydataenabled"/>
+ <property key="tracecontrol.select" value="0"/>
+ <property key="tracecontrol.stallontracebufferfull" value="false"/>
+ <property key="tracecontrol.timestamp" value="0"/>
+ <property key="tracecontrol.tracebufmax" value="546000"/>
+ <property key="tracecontrol.tracefile" value="defmplabxtrace.log"/>
+ <property key="tracecontrol.traceresetonrun" value="false"/>
+ <property key="uart0io.output" value="window"/>
+ <property key="uart0io.outputfile" value=""/>
+ <property key="uart0io.uartioenabled" value="false"/>
+ <property key="uart10io.output" value="window"/>
+ <property key="uart10io.outputfile" value=""/>
+ <property key="uart10io.uartioenabled" value="false"/>
+ <property key="uart1io.output" value="window"/>
+ <property key="uart1io.outputfile" value=""/>
+ <property key="uart1io.uartioenabled" value="true"/>
+ <property key="uart2io.output" value="window"/>
+ <property key="uart2io.outputfile" value=""/>
+ <property key="uart2io.uartioenabled" value="false"/>
+ <property key="uart3io.output" value="window"/>
+ <property key="uart3io.outputfile" value=""/>
+ <property key="uart3io.uartioenabled" value="false"/>
+ <property key="uart4io.output" value="window"/>
+ <property key="uart4io.outputfile" value=""/>
+ <property key="uart4io.uartioenabled" value="false"/>
+ <property key="uart5io.output" value="window"/>
+ <property key="uart5io.outputfile" value=""/>
+ <property key="uart5io.uartioenabled" value="false"/>
+ <property key="uart6io.output" value="window"/>
+ <property key="uart6io.outputfile" value=""/>
+ <property key="uart6io.uartioenabled" value="false"/>
+ <property key="uart7io.output" value="window"/>
+ <property key="uart7io.outputfile" value=""/>
+ <property key="uart7io.uartioenabled" value="false"/>
+ <property key="uart8io.output" value="window"/>
+ <property key="uart8io.outputfile" value=""/>
+ <property key="uart8io.uartioenabled" value="false"/>
+ <property key="uart9io.output" value="window"/>
+ <property key="uart9io.outputfile" value=""/>
+ <property key="uart9io.uartioenabled" value="false"/>
+ <property key="warningmessagebreakoptions.W0001_CORE_BITREV_MODULO_EN"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0002_CORE_SECURE_MEMORYACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0003_CORE_SW_RESET" value="report"/>
+ <property key="warningmessagebreakoptions.W0004_CORE_WDT_RESET" value="report"/>
+ <property key="warningmessagebreakoptions.W0005_CORE_IOPUW_RESET"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0006_CORE_CODE_GUARD_PFC_RESET"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0007_CORE_DO_LOOP_STACK_UNDERFLOW"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0008_CORE_DO_LOOP_STACK_OVERFLOW"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0009_CORE_NESTED_DO_LOOP_RANGE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0010_CORE_SIM32_ODD_WORDACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0011_CORE_SIM32_UNIMPLEMENTED_RAMACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0012_CORE_STACK_OVERFLOW_RESET"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0013_CORE_STACK_UNDERFLOW_RESET"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0014_CORE_INVALID_OPCODE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0015_CORE_INVALID_ALT_WREG_SET"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0016_CORE_STACK_ERROR"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0017_CORE_ODD_RAMWORDACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0018_CORE_UNIMPLEMENTED_RAMACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0019_CORE_UNIMPLEMENTED_PROMACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0020_CORE_ACCESS_NOTIN_X_SPACE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0021_CORE_ACCESS_NOTIN_Y_SPACE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0022_CORE_XMODEND_LESS_XMODSRT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0023_CORE_YMODEND_LESS_YMODSRT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0024_CORE_BITREV_MOD_IS_ZERO"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0025_CORE_HARD_TRAP" value="report"/>
+ <property key="warningmessagebreakoptions.W0026_CORE_UNIMPLEMENTED_MEMORYACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0027_CORE_UNIMPLEMENTED_EDSACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0028_TBLRD_WORM_CONFIG_MEMORY"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0029_TBLRD_DEVICE_ID" value="report"/>
+ <property key="warningmessagebreakoptions.W0030_CORE_UNIMPLEMENTED_MEMORY_ACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0031_BSLIM_INSUFFICIENT_BOOT_SEGMENT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0032_BSLIM_LIMITS_EXCEEDS_PROG_MEMORY"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0033_CORE_UNPREDICTABLE_OPCODE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0034_CORE_UNALIGNED_MEMORY_ACCESS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0035_CORE_UNIMPLEMENTED_RAMACCESS_NOTRAP"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0040_FPU_DIFF_CP10_CP11"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0041_FPU_ACCESS_DENIED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0042_FPU_PRIVILEGED_ACCESS_ONLY"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0043_FPU_CP_RESERVED_VALUE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0044_FPU_OUT_OF_RANGE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0051_INSTRUCTION_DIV_NOT_ENOUGH_REPEAT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0052_INSTRUCTION_DIV_TOO_MANY_REPEAT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0053_INVALID_INTCON_VS_FIELD_VALUE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0101_SIM_UPDATE_FAILED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0102_SIM_PERIPH_MISSING"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0103_SIM_PERIPH_FAILED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0104_SIM_FAILED_TO_INIT_TOOL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0105_SIM_INVALID_FIELD"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0106_SIM_PERIPH_PARTIAL_SUPPORT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0107_SIM_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0108_SIM_RESERVED_SETTING"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0109_SIM_PERIPHERAL_IN_DEVELOPMENT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0110_SIM_UNEXPECTED_EVENT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0111_SIM_UNSUPPORTED_SELECTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0112_SIM_INVALID_OPERATION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0113_SIM_WRITE_TO_PROTECTED_SFR"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0114_SIM_INVALID_KEY" value="report"/>
+ <property key="warningmessagebreakoptions.W0115_SIM_FAILED_TO_PARSE_DEVICE_FILE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0116_SIM_STACK_OVERFLOW"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0117_SIM_STACK_UNDERFLOW"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0118_SIM_INVALID_FIELD_VALUE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0119_SIM_SAMPLING_RATE_VIOLATION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0201_ADC_NO_STIMULUS_FILE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0202_ADC_GO_DONE_BIT" value="report"/>
+ <property key="warningmessagebreakoptions.W0203_ADC_MINIMUM_2_TAD"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0204_ADC_TAD_TOO_SMALL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0205_ADC_UNEXPECTED_TRANSITION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0206_ADC_SAMP_TIME_TOO_SHORT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0207_ADC_NO_PINS_SCANNED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0208_ADC_UNSUPPORTED_CLOCK_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0209_ADC_ANALOG_CHANNEL_DIGITAL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0210_ADC_ANALOG_CHANNEL_OUTPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0211_ADC_PIN_INVALID_CHANNEL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0212_ADC_BAND_GAP_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0213_ADC_RESERVED_SSRC"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0214_ADC_POSITIVE_INPUT_DIGITAL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0215_ADC_POSITIVE_INPUT_OUTPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0216_ADC_NEGATIVE_INPUT_DIGITAL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0217_ADC_NEGATIVE_INPUT_OUTPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0218_ADC_REFERENCE_HIGH_DIGITAL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0219_ADC_REFERENCE_HIGH_OUTPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0220_ADC_REFERENCE_LOW_DIGITAL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0221_ADC_REFERENCE_LOW_OUTPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0222_ADC_OVERFLOW" value="report"/>
+ <property key="warningmessagebreakoptions.W0223_ADC_UNDERFLOW" value="report"/>
+ <property key="warningmessagebreakoptions.W0224_ADC_CTMU_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0225_ADC_INVALID_CH0S"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0226_ADC_VBAT_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0227_ADC_INVALID_ADCS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0228_ADC_INVALID_ADCS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0229_ADC_INVALID_ADCS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0230_ADC_TRIGSEL_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0231_ADC_NOT_WARMED" value="report"/>
+ <property key="warningmessagebreakoptions.W0232_ADC_CALIBRATION_ABORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0233_ADC_CORE_POWERED_EARLY"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0234_ADC_ALREADY_CALIBRATING"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0235_ADC_CAL_TYPE_CHANGED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0236_ADC_CAL_INVALIDATED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0237_ADC_UNKNOWN_DATASHEET"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0238_ADC_INVALID_SFR_FIELD_VALUE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0239_ADC_UNSUPPORTED_INPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0240_ADC_NOT_CALIBRATED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0241_ADC_FRACTIONAL_NOT_ALLOWED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0242_ADC_BG_INT_BEFORE_PWR"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0243_ADC_INVALID_TAD" value="report"/>
+ <property key="warningmessagebreakoptions.W0244_ADC_CONVERSION_ABORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0245_ADC_BUFREGEN_NOT_ALLOWED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0246_ADC_ACCUMULATION_BAD_RESSEL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0247_ADC_CONVERSION_BAD_RESSEL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0400_PWM_PWM_FASTER_THAN_FOSC"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0600_WDT_2ND_WDT_MR_WRITE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0601_WDT_EXPIRED" value="report"/>
+ <property key="warningmessagebreakoptions.W0601_WDT_RESET_OUTSIDE_WINDOW"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0700_CLC_GENERAL_WARNING"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0701_CLC_CLCOUT_AS_INPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0702_CLC_CIRCULAR_LOOP"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0800_ACC_INPUT_INVALID_CONFIG"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0801_ACC_INPUT_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0802_ACC_INVERTED_WINDOW_LIMITS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0803_ACC_MISMATCHED_POS_INPUTS"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0804_ACC_WINDOW_COMP_DISABLED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0805_ACC_WINDOW_COMPS_MODES"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W0806_ACC_FEATURE_NOT_SUPPORTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10001_RESERVED_IRQ_HANDLER_INVOKED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10002_UNSUPPORTED_CLK_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10101_UNSUPPORTED_CHANNEL_MODE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10102_UNSUPPORTED_CLK_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10103_UNSUPPORTED_RECEIVER_FILTER"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10301_NO_PORT_PINS_FOUND"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W10500_UNSUPPORTED_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1201_DATAFLASH_MEM_OUTSIDE_RANGE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1202_DATAFLASH_ERASE_WHILE_LOCKED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1203_DATAFLASH_WRITE_WHILE_LOCKED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1401_DMA_PERIPH_NOT_AVAIL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1402_DMA_INVALID_IRQ" value="report"/>
+ <property key="warningmessagebreakoptions.W1403_DMA_INVALID_SFR" value="report"/>
+ <property key="warningmessagebreakoptions.W1404_DMA_INVALID_DMA_ADDR"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1405_DMA_IRQ_DIR_MISMATCH"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1600_PPS_INVALID_MAP" value="report"/>
+ <property key="warningmessagebreakoptions.W1601_PPS_INVALID_PIN_DESCRIPTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1800_PWM_TIMER_SELECTION_NOT_AVIALABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1801_PWM_TIMER_SELECTION_BAD_CLOCK_INPUT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W1802_PWM_TIMER_MISSING_PERSCALER_INFO"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2001_INPUTCAPTURE_TMR3_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2002_INPUTCAPTURE_CAPTURE_EMPTY"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2003_INPUTCAPTURE_SYNCSEL_NOT_AVIALABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2004_INPUTCAPTURE_BAD_SYNC_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2501_OUTPUTCOMPARE_SYNCSEL_NOT_AVIALABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2502_OUTPUTCOMPARE_BAD_SYNC_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2503_OUTPUTCOMPARE_BAD_TRIGGER_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2700_MPU_ILLEGAL_DREGION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W2701_MPU_INVALID_REGION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W3000_LPM_READ_PROTECTION_SECTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W3010_SPM_WRITE_PROTECTION_SECTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W6001_RTT_FORBIDDEN_RTPRES"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W6002_RTT_BAD_WRITING_ALMV"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W6003_RTT_BAD_WRITING_RTPRES"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W7001_SMT_CLK_SELECTION_NOT_SUPPORT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W7002_SMT_SIG_SELECTION_NOT_SUPPORT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W7003_SMT_WIN_SELECTION_NOT_SUPPORT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W8001_OSC_INVALID_CLOCK_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W8002_OSC_RESERVED_FEXTOSC"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9001_TMR_GATE_AND_EXTCLOCK_ENABLED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9002_TMR_NO_PIN_AVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9003_TMR_INVALID_CLOCK_SOURCE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9201_UART_TX_OVERFLOW"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9202_UART_TX_CAPTUREFILE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9203_UART_TX_INVALIDINTERRUPTMODE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9204_UART_RX_EMPTY_QUEUE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9205_UART_TX_BADFILE" value="report"/>
+ <property key="warningmessagebreakoptions.W9206_UART_RESERVED_MODE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9207_UART_UNABLETOCLOSE_FILE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9401_CVREF_INVALIDSOURCESELECTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9402_CVREF_INPUT_OUTPUTPINCONFLICT"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9601_COMP_FVR_SOURCE_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9602_COMP_DAC_SOURCE_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9603_COMP_CVREF_SOURCE_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9604_COMP_SLOPE_SOURCE_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9605_COMP_PRG_SOURCE_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9607_COMP_DGTL_FLTR_OPTION_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9609_COMP_DGTL_FLTR_CLK_UNAVAILABLE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9801_FVR_INVALID_MODE_SELECTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9801_SCL_BAD_SUBTYPE_INDICATION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9802_SCL_FILE_NOT_FOUND"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9803_SCL_FAILED_TO_READ_FILE"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9804_SCL_UNRECOGNIZED_LABEL"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9805_SCL_UNRECOGNIZED_VAR"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9901_RTSP_INVALID_OPERATION_SELECTION"
+ value="report"/>
+ <property key="warningmessagebreakoptions.W9902_RTSP_FLASH_PROGRAM_WRITE_PROTECTED"
+ value="report"/>
+ <property key="warningmessagebreakoptions.displaywarningmessagesoption"
+ value=""/>
+ <property key="warningmessagebreakoptions.warningmessages" value="holdstate"/>
+ </Simulator>
+ </conf>
+ </confs>
+</configurationDescriptor>
diff --git a/HW4.X/nbproject/private/configurations.xml b/HW4.X/nbproject/private/configurations.xml
new file mode 100644
index 0000000..5adae45
--- /dev/null
+++ b/HW4.X/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></platformToolSN>
+ <languageToolchainDir>C:\Program Files\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/HW4.X/nbproject/private/private.xml b/HW4.X/nbproject/private/private.xml
new file mode 100644
index 0000000..6807a2b
--- /dev/null
+++ b/HW4.X/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/HW4.X/nbproject/project.xml b/HW4.X/nbproject/project.xml
new file mode 100644
index 0000000..32d1aa6
--- /dev/null
+++ b/HW4.X/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>HW4</name>
+ <creation-uuid>72deec3c-ee4e-462c-9c3d-82ae14e25b90</creation-uuid>
+ <make-project-type>0</make-project-type>
+ <c-extensions>c</c-extensions>
+ <cpp-extensions/>
+ <header-extensions/>
+ <asminc-extensions/>
+ <sourceEncoding>ISO-8859-1</sourceEncoding>
+ <make-dep-projects/>
+ <sourceRootList>
+ <sourceRootElem>.</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/Lab5.X/Lab 5 Report.pdf b/Lab5.X/Lab 5 Report.pdf
new file mode 100644
index 0000000..090ef8a
--- /dev/null
+++ b/Lab5.X/Lab 5 Report.pdf
Binary files differ
diff --git a/Lab5.X/dist/default/debug/memoryfile.xml b/Lab5.X/dist/default/debug/memoryfile.xml
index 9f704b1..b444e63 100644
--- a/Lab5.X/dist/default/debug/memoryfile.xml
+++ b/Lab5.X/dist/default/debug/memoryfile.xml
@@ -11,8 +11,8 @@
<memory name="program">
<units>bytes</units>
<length>65274</length>
- <used>1086</used>
- <free>64188</free>
+ <used>1125</used>
+ <free>64149</free>
</memory>
</executable>
</project>
diff --git a/Lab5.X/lab5_lcd.c b/Lab5.X/lab5_lcd.c
index 8c0af52..f9567ad 100644
--- a/Lab5.X/lab5_lcd.c
+++ b/Lab5.X/lab5_lcd.c
@@ -1,7 +1,9 @@
#include "xc.h"
#include "lab5_lcd.h"
#include "string.h"
-#define CON 32
+//CON should be between 0 and 0xFF.
+#define CON 0x00
+
//Obligatory delay function
void delay(long n){
for (n=n; n>0; n--) {
@@ -31,7 +33,7 @@ void lcd_init(void) {
lcd_cmd(0b00111000); // function set, normal instruction mode
lcd_cmd(0b00111001); // function set, extended instruction mode
lcd_cmd(0b00010100); // interval osc
- lcd_cmd(0b01110000); // contrast C3-C0
+ lcd_cmd((0b0111 << 4) + CON); // contrast C3-C0
lcd_cmd(0b01011110); // Ion, Bon, C5-C4
lcd_cmd(0b01101100); // follower control
delay(266665);
diff --git a/Lab5.X/lab5_main.c b/Lab5.X/lab5_main.c
index b133335..6af5ea7 100644
--- a/Lab5.X/lab5_main.c
+++ b/Lab5.X/lab5_main.c
@@ -26,12 +26,12 @@ void setup(void) {
int main(void) {
setup();
- lcd_setCursor(0, 0);
+ lcd_setCursor(0,0);
lcd_printStr("Hello");
lcd_setCursor(2,1);
lcd_printStr("World!");
while (1) {
- delay(500000);
+ delay(300000);
left();
}
} \ No newline at end of file
diff --git a/Lab5.X/nbproject/Makefile-genesis.properties b/Lab5.X/nbproject/Makefile-genesis.properties
index 0376466..b4b72a9 100644
--- a/Lab5.X/nbproject/Makefile-genesis.properties
+++ b/Lab5.X/nbproject/Makefile-genesis.properties
@@ -1,9 +1,9 @@
#
-#Wed Apr 08 10:43:03 CDT 2020
+#Tue Apr 14 19:27:44 CDT 2020
default.Pack.dfplocation=C\:\\Program Files (x86)\\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=C\:\\Program Files\\Microchip\\xc16\\v1.50\\bin
-configurations-xml=26589ca1d802028c5a31cd15231825b7
+configurations-xml=c230c626988d1c5900bc0ce5cfd47f7f
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5db0f4d6bbe0ec2a1f1096ccfb9d7ad3
default.languagetoolchain.version=1.50
host.platform=windows
diff --git a/Lab5.X/nbproject/configurations.xml b/Lab5.X/nbproject/configurations.xml
index 3ea7dfd..c5c48be 100644
--- a/Lab5.X/nbproject/configurations.xml
+++ b/Lab5.X/nbproject/configurations.xml
@@ -194,6 +194,7 @@
<property key="ToolFirmwareFilePath"
value="Press to browse for a specific firmware version"/>
<property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
+ <property key="firmware.download.all" value="false"/>
<property key="memories.bootflash" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.dataflash" value="true"/>
diff --git a/Lab5.X/nbproject/private/private.xml b/Lab5.X/nbproject/private/private.xml
index f2aa828..6807a2b 100644
--- a/Lab5.X/nbproject/private/private.xml
+++ b/Lab5.X/nbproject/private/private.xml
@@ -2,10 +2,6 @@
<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>
- <file>file:/C:/Users/Ross/MPLABXProjects/EE2361Projects/Lab5.X/lab5_main.c</file>
- <file>file:/C:/Users/Ross/MPLABXProjects/EE2361Projects/Lab5.X/lab5_lcd.c</file>
- <file>file:/C:/Users/Ross/MPLABXProjects/EE2361Projects/Lab5.X/lab5_lcd.h</file>
- </group>
+ <group/>
</open-files>
</project-private>
diff --git a/Lab5.X/strap012_Lab5.zip b/Lab5.X/strap012_Lab5.zip
new file mode 100644
index 0000000..62f6123
--- /dev/null
+++ b/Lab5.X/strap012_Lab5.zip
Binary files differ
diff --git a/Lab6.X/Makefile b/Lab6.X/Makefile
new file mode 100644
index 0000000..fca8e2c
--- /dev/null
+++ b/Lab6.X/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/Lab6.X/circBuffer.c b/Lab6.X/circBuffer.c
new file mode 100644
index 0000000..d4d120f
--- /dev/null
+++ b/Lab6.X/circBuffer.c
@@ -0,0 +1,28 @@
+#include "xc.h"
+#include "circBuffer.h"
+#define SIZE 1024
+
+volatile unsigned int buffer[SIZE];
+int buffSize = 0, write = 0, read = 0;
+void initBuffer(){
+ int i;
+ for (i=0; i<SIZE; i++) {
+ buffer[i]=0;
+ }
+ buffSize = 0, write = 0, read = 0;
+}
+
+void putVal(int newValue){
+ if (buffSize < SIZE) {
+ buffer[write++] = newValue;
+ write %= SIZE;
+ ++buffSize;
+ }
+ //Otherwise get rid of the data.
+}
+int getAvg(){
+ int i, sum = 0;
+ for (i=0; i<SIZE; i++) {
+ sum += buffer[i];
+ } return sum / SIZE;
+}
diff --git a/Lab6.X/circBuffer.h b/Lab6.X/circBuffer.h
new file mode 100644
index 0000000..ad5f1fd
--- /dev/null
+++ b/Lab6.X/circBuffer.h
@@ -0,0 +1,19 @@
+#ifndef CIRCBUFF_H
+#define CIRCBUFF_H
+
+#include <xc.h> // include processor files - each processor file is guarded.
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+void putVal(int newValue); // add a new value to the buffer
+int getAvg(); // average all buffer vals
+void initBuffer(); // set all buffer vals to zero
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
+
diff --git a/Lab6.X/dist/default/production/memoryfile.xml b/Lab6.X/dist/default/production/memoryfile.xml
new file mode 100644
index 0000000..e8d8e00
--- /dev/null
+++ b/Lab6.X/dist/default/production/memoryfile.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project>
+ <executable name="dist/default/production/Lab6.X.production.elf">
+ <memory name="data">
+ <units>bytes</units>
+ <length>8192</length>
+ <used>2176</used>
+ <free>6016</free>
+ </memory>
+ <memory name="program">
+ <units>bytes</units>
+ <length>65274</length>
+ <used>8088</used>
+ <free>57186</free>
+ </memory>
+ </executable>
+</project>
diff --git a/Lab6.X/lab6_main.c b/Lab6.X/lab6_main.c
new file mode 100644
index 0000000..e9258c4
--- /dev/null
+++ b/Lab6.X/lab6_main.c
@@ -0,0 +1,103 @@
+#include "xc.h"
+#include "../Lab5.X/lab5_lcd.h"
+#include "circBuffer.h"
+#include <stdio.h>
+
+#pragma config ICS = PGx1 // Comm Channel Select (Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1)
+#pragma config FWDTEN = OFF // Watchdog Timer Enable (Watchdog Timer is disabled)
+#pragma config GWRP = OFF // General Code Segment Write Protect (Writes to program memory are allowed)
+#pragma config GCP = OFF // General Code Segment Code Protect (Code protection is disabled)
+#pragma config JTAGEN = OFF // JTAG Port Enable (JTAG port is disabled)
+
+// CW2: FLASH CONFIGURATION WORD 2 (see PIC24 Family Reference Manual 24.1)
+#pragma config I2C1SEL = PRI // I2C1 Pin Location Select (Use default SCL1/SDA1 pins)
+#pragma config IOL1WAY = OFF // IOLOCK Protection (IOLOCK may be changed via unlocking seq)
+#pragma config OSCIOFNC = ON // Primary Oscillator I/O Function (CLKO/RC15 functions as I/O pin)
+#pragma config FCKSM = CSECME // Clock Switching and Monitor (Clock switching is enabled,
+ // Fail-Safe Clock Monitor is enabled)
+#pragma config FNOSC = FRCPLL // Oscillator Select (Fast RC Oscillator with PLL module (FRCPLL))
+
+void setup(void) {
+ CLKDIVbits.RCDIV = 0;
+ AD1PCFG = 0x9fff; //all digital inputs and outputs
+ initBuffer();
+ lcd_init();
+ lcd_setCursor(0,0);
+
+ // -- I2C STUFF --
+ I2C2BRG = 0x9D;
+ I2C2CONbits.I2CEN = 1;
+ _I2CSIDL = 0;
+ IFS3bits.MI2C2IF=0;
+
+ // -- ADC STUFF --
+ AD1CON1 = 0; // set all control to 0.
+ AD1CON1bits.SSRC = 0b010; //Rollover to conversion
+ AD1CON1bits.ASAM = 1; // auto-sample
+ AD1CON1bits.FORM = 0b00;
+ AD1CON2 = 0;
+ AD1CON2bits.CSCNA = 0; // no scan
+ AD1CON2bits.SMPI = 0b0; // every conversion
+ AD1CON2bits.BUFM = 0; // two 8-word buffers
+ AD1CON3bits.ADCS = 0b1;
+ AD1CON3bits.ADRC = 0;
+ AD1CON3bits.SAMC = 0b1;
+ AD1CON1bits.ADON = 1; // ton
+ AD1CHS = 0;
+ AD1CHSbits.CH0NB = 0;
+ AD1CHSbits.CH0SB = 0;
+ AD1CHSbits.CH0NA = 0;
+ AD1CHSbits.CH0SA = 0;
+
+ // -- TIMER 2 STUFF --
+ T2CON = 0;
+ TMR2 = 0;
+ T2CONbits.TCKPS = 0b10;
+ PR2 = 25000;
+ T2CONbits.TON = 1;
+
+ // -- TIMER 3 STUFF --
+ T3CON = 0;
+ TMR3 = 0;
+ T3CONbits.TCKPS = 0b10;
+ PR3 = 1562;
+ T3CONbits.TON = 1;
+
+ // -- INTERRUPT ENABLES --
+ IEC0bits.AD1IE = 1;
+ IFS0bits.AD1IF = 0;
+ //ADC Interrupt (Enabled)
+ IEC0bits.T2IE = 1;
+ IFS0bits.T2IF = 0;
+ // T2 Interrupt (Enabled)
+}
+
+volatile unsigned int *ADCpointer = &ADC1BUF0, ADCvalue = 0;
+void __attribute__((__interrupt__, __auto_psv__)) _ADC1Interrupt(void) {
+ IFS0bits.AD1IF = 0;
+
+
+}
+volatile unsigned char flag = 0;
+void __attribute__((__interrupt__, __auto_psv__)) _T2Interrupt(void) {
+ //Allow writing to LCD
+ _T2IF = 0;
+ TMR2 = 0;
+ flag = 1;
+}
+
+int main(void) {
+ setup();
+ while (1) {
+ char adStr[20];
+ unsigned long adValue;
+ if (flag) {
+ flag = 0;
+ lcd_setCursor(0,0);
+ adValue = getAvg();
+ sprintf(adStr, "%6.4f V", (3.3/1024)*adValue);
+ lcd_printStr(adStr);
+ }
+ }
+ return -1;
+}
diff --git a/Lab6.X/nbproject/Makefile-default.mk b/Lab6.X/nbproject/Makefile-default.mk
new file mode 100644
index 0000000..8cfbc47
--- /dev/null
+++ b/Lab6.X/nbproject/Makefile-default.mk
@@ -0,0 +1,175 @@
+#
+# 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=gnumkdir -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}/Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+else
+IMAGE_TYPE=production
+OUTPUT_SUFFIX=hex
+DEBUGGABLE_SUFFIX=elf
+FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/Lab6.X.${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=lab6_main.c circBuffer.c
+
+# Object Files Quoted if spaced
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/lab6_main.o ${OBJECTDIR}/circBuffer.o
+POSSIBLE_DEPFILES=${OBJECTDIR}/lab6_main.o.d ${OBJECTDIR}/circBuffer.o.d
+
+# Object Files
+OBJECTFILES=${OBJECTDIR}/lab6_main.o ${OBJECTDIR}/circBuffer.o
+
+# Source Files
+SOURCEFILES=lab6_main.c circBuffer.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}/Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+
+MP_PROCESSOR_OPTION=24FJ64GA002
+MP_LINKER_FILE_OPTION=,--script=p24FJ64GA002.gld
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: compile
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+${OBJECTDIR}/lab6_main.o: lab6_main.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/lab6_main.o.d
+ @${RM} ${OBJECTDIR}/lab6_main.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) lab6_main.c -o ${OBJECTDIR}/lab6_main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/lab6_main.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -O0 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16
+ @${FIXDEPS} "${OBJECTDIR}/lab6_main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/circBuffer.o: circBuffer.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/circBuffer.o.d
+ @${RM} ${OBJECTDIR}/circBuffer.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) circBuffer.c -o ${OBJECTDIR}/circBuffer.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/circBuffer.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -O0 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16
+ @${FIXDEPS} "${OBJECTDIR}/circBuffer.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
+
+else
+${OBJECTDIR}/lab6_main.o: lab6_main.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/lab6_main.o.d
+ @${RM} ${OBJECTDIR}/lab6_main.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) lab6_main.c -o ${OBJECTDIR}/lab6_main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/lab6_main.o.d" -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -O0 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16
+ @${FIXDEPS} "${OBJECTDIR}/lab6_main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
+
+${OBJECTDIR}/circBuffer.o: circBuffer.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}"
+ @${RM} ${OBJECTDIR}/circBuffer.o.d
+ @${RM} ${OBJECTDIR}/circBuffer.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) circBuffer.c -o ${OBJECTDIR}/circBuffer.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/circBuffer.o.d" -g -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -O0 -msmart-io=1 -Wall -msfr-warn=off -mdfp=${DFP_DIR}/xc16
+ @${FIXDEPS} "${OBJECTDIR}/circBuffer.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
+
+endif
+
+# ------------------------------------------------------------------------------------
+# Rules for buildStep: assemble
+ifeq ($(TYPE_IMAGE), DEBUG_RUN)
+else
+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}/Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ../Lab5.X/lab5_lcd.c ../Lab5.X/lab5_lcd.h
+ @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} ..\Lab5.X\lab5_lcd.c ..\Lab5.X\lab5_lcd.h -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:0x81F -mreserve=data@0x820:0x821 -mreserve=data@0x822:0x823 -mreserve=data@0x824:0x825 -mreserve=data@0x826:0x84F -Wl,,,--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}/Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ../Lab5.X/lab5_lcd.c ../Lab5.X/lab5_lcd.h
+ @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/Lab6.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} ..\Lab5.X\lab5_lcd.c ..\Lab5.X\lab5_lcd.h -mcpu=$(MP_PROCESSOR_OPTION) -omf=elf -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,,,--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}/Lab6.X.${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 mplabwildcard ${POSSIBLE_DEPFILES})
+ifneq (${DEPFILES},)
+include ${DEPFILES}
+endif
diff --git a/Lab6.X/nbproject/Makefile-genesis.properties b/Lab6.X/nbproject/Makefile-genesis.properties
new file mode 100644
index 0000000..d6d71c3
--- /dev/null
+++ b/Lab6.X/nbproject/Makefile-genesis.properties
@@ -0,0 +1,10 @@
+#
+#Fri Apr 17 20:22:52 CDT 2020
+default.Pack.dfplocation=C\:\\Program Files (x86)\\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=C\:\\Program Files\\Microchip\\xc16\\v1.50\\bin
+configurations-xml=adb813cd4ce7c3e3b7bbe8664d6b0b98
+com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=5db0f4d6bbe0ec2a1f1096ccfb9d7ad3
+default.languagetoolchain.version=1.50
+host.platform=windows
+conf.ids=default
diff --git a/Lab6.X/nbproject/Makefile-impl.mk b/Lab6.X/nbproject/Makefile-impl.mk
new file mode 100644
index 0000000..16e9e96
--- /dev/null
+++ b/Lab6.X/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=Lab6.X
+
+# 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/Lab6.X/nbproject/Makefile-local-default.mk b/Lab6.X/nbproject/Makefile-local-default.mk
new file mode 100644
index 0000000..c75d9df
--- /dev/null
+++ b/Lab6.X/nbproject/Makefile-local-default.mk
@@ -0,0 +1,38 @@
+#
+# 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" ...
+#
+SHELL=cmd.exe
+PATH_TO_IDE_BIN=C:/Program Files (x86)/Microchip/MPLABX/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/
+# Adding MPLAB X bin directory to path.
+PATH:=C:/Program Files (x86)/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="C:\Program Files (x86)\Microchip\MPLABX\v5.35\sys\java\jre1.8.0_181/bin/"
+OS_CURRENT="$(shell uname -s)"
+MP_CC="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-gcc.exe"
+# MP_CPPC is not defined
+# MP_BC is not defined
+MP_AS="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-as.exe"
+MP_LD="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-ld.exe"
+MP_AR="C:\Program Files\Microchip\xc16\v1.50\bin\xc16-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files (x86)/Microchip/MPLABX/v5.35/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+# MP_CPPC_DIR is not defined
+# MP_BC_DIR is not defined
+MP_AS_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+MP_LD_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+MP_AR_DIR="C:\Program Files\Microchip\xc16\v1.50\bin"
+# MP_BC_DIR is not defined
+DFP_DIR="C:/Program Files (x86)/Microchip/MPLABX/v5.35/packs/Microchip/PIC24F-GA-GB_DFP/1.2.101"
diff --git a/Lab6.X/nbproject/Makefile-variables.mk b/Lab6.X/nbproject/Makefile-variables.mk
new file mode 100644
index 0000000..40d1468
--- /dev/null
+++ b/Lab6.X/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=Lab6.X.production.hex
+CND_ARTIFACT_PATH_default=dist/default/production/Lab6.X.production.hex
+CND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package
+CND_PACKAGE_NAME_default=lab6.x.tar
+CND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/lab6.x.tar
diff --git a/Lab6.X/nbproject/Package-default.bash b/Lab6.X/nbproject/Package-default.bash
new file mode 100644
index 0000000..4c62ae3
--- /dev/null
+++ b/Lab6.X/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}/Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+OUTPUT_BASENAME=Lab6.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+PACKAGE_TOP_DIR=lab6.x/
+
+# 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}/lab6.x/bin
+copyFileToTmpDir "${OUTPUT_PATH}" "${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/package/lab6.x.tar
+cd ${TMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/lab6.x.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${TMPDIR}
diff --git a/Lab6.X/nbproject/configurations.xml b/Lab6.X/nbproject/configurations.xml
new file mode 100644
index 0000000..5c9fd0e
--- /dev/null
+++ b/Lab6.X/nbproject/configurations.xml
@@ -0,0 +1,224 @@
+<?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">
+ <itemPath>circBuffer.h</itemPath>
+ </logicalFolder>
+ <logicalFolder name="LinkerScript"
+ displayName="Linker Files"
+ projectFiles="true">
+ </logicalFolder>
+ <logicalFolder name="SourceFiles"
+ displayName="Source Files"
+ projectFiles="true">
+ <itemPath>lab6_main.c</itemPath>
+ <itemPath>circBuffer.c</itemPath>
+ </logicalFolder>
+ <logicalFolder name="ExternalFiles"
+ displayName="Important Files"
+ projectFiles="false">
+ <itemPath>Makefile</itemPath>
+ </logicalFolder>
+ </logicalFolder>
+ <projectmakefile>Makefile</projectmakefile>
+ <confs>
+ <conf name="default" type="2">
+ <toolsSet>
+ <developmentServer>localhost</developmentServer>
+ <targetDevice>PIC24FJ64GA002</targetDevice>
+ <targetHeader></targetHeader>
+ <targetPluginBoard></targetPluginBoard>
+ <platformTool>PK3OBPlatformTool</platformTool>
+ <languageToolchain>XC16</languageToolchain>
+ <languageToolchainVersion>1.50</languageToolchainVersion>
+ <platform>3</platform>
+ </toolsSet>
+ <packs>
+ <pack name="PIC24F-GA-GB_DFP" vendor="Microchip" version="1.2.101"/>
+ </packs>
+ <compileType>
+ <linkerTool>
+ <linkerLibItems>
+ <linkerLibFileItem>../Lab5.X/lab5_lcd.c</linkerLibFileItem>
+ <linkerLibFileItem>../Lab5.X/lab5_lcd.h</linkerLibFileItem>
+ </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="default"/>
+ <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="0"/>
+ <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>
+ <PK3OBPlatformTool>
+ <property key="AutoSelectMemRanges" value="auto"/>
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
+ <property key="ToolFirmwareFilePath"
+ value="Press to browse for a specific firmware version"/>
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
+ <property key="memories.bootflash" value="true"/>
+ <property key="memories.configurationmemory" value="true"/>
+ <property key="memories.dataflash" value="true"/>
+ <property key="memories.eeprom" value="true"/>
+ <property key="memories.id" value="true"/>
+ <property key="memories.programmemory" value="true"/>
+ <property key="memories.programmemory.ranges"
+ value="${memories.programmemory.ranges}"/>
+ <property key="memories.userotp" value="true"/>
+ <property key="poweroptions.powerenable" value="false"/>
+ <property key="programoptions.eraseb4program" value="true"/>
+ <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="${programoptions.preserveeeprom.ranges}"/>
+ <property key="programoptions.preserveprogram.ranges" value=""/>
+ <property key="programoptions.preserveprogramrange" value="false"/>
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>
+ <property key="programoptions.uselvpprogramming" value="false"/>
+ <property key="voltagevalue" value="3.25"/>
+ </PK3OBPlatformTool>
+ </conf>
+ </confs>
+</configurationDescriptor>
diff --git a/Lab6.X/nbproject/private/configurations.xml b/Lab6.X/nbproject/private/configurations.xml
new file mode 100644
index 0000000..099de7b
--- /dev/null
+++ b/Lab6.X/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:=&lt;vid>04D8:=&lt;pid>8108:=&lt;rev>0002:=&lt;man>Digilent:=&lt;prod>chipKitProgrammer:=&lt;sn>DA63CA1:=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
+ <languageToolchainDir>C:\Program Files\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/Lab6.X/nbproject/private/private.xml b/Lab6.X/nbproject/private/private.xml
new file mode 100644
index 0000000..850b906
--- /dev/null
+++ b/Lab6.X/nbproject/private/private.xml
@@ -0,0 +1,11 @@
+<?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>
+ <file>file:/C:/Users/Ross/MPLABXProjects/EE2361Projects/Lab6.X/lab6_main.c</file>
+ <file>file:/C:/Users/Ross/MPLABXProjects/EE2361Projects/Lab6.X/circBuffer.c</file>
+ <file>file:/C:/Users/Ross/MPLABXProjects/EE2361Projects/Lab6.X/circBuffer.h</file>
+ </group>
+ </open-files>
+</project-private>
diff --git a/Lab6.X/nbproject/project.xml b/Lab6.X/nbproject/project.xml
new file mode 100644
index 0000000..4cf9e20
--- /dev/null
+++ b/Lab6.X/nbproject/project.xml
@@ -0,0 +1,27 @@
+<?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>Lab6</name>
+ <creation-uuid>b51528bc-1afa-4516-b12e-64bc8ad1cb3e</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/>
+ <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/Lab6.X/strap012_prelab6.zip b/Lab6.X/strap012_prelab6.zip
new file mode 100644
index 0000000..52eb23f
--- /dev/null
+++ b/Lab6.X/strap012_prelab6.zip
Binary files differ