diff options
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 Binary files differnew file mode 100644 index 0000000..ec09db0 --- /dev/null +++ b/HW4.X/2020-04-14 18-07.pdf diff --git a/HW4.X/HW4.zip b/HW4.X/HW4.zip Binary files differnew file mode 100644 index 0000000..bf1fb70 --- /dev/null +++ b/HW4.X/HW4.zip 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 Binary files differnew file mode 100644 index 0000000..6d28588 --- /dev/null +++ b/HW4.X/hw4_uart_caesar_cipher_strap012.png 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 Binary files differnew file mode 100644 index 0000000..090ef8a --- /dev/null +++ b/Lab5.X/Lab 5 Report.pdf 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 Binary files differnew file mode 100644 index 0000000..62f6123 --- /dev/null +++ b/Lab5.X/strap012_Lab5.zip 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:=<vid>04D8:=<pid>8108:=<rev>0002:=<man>Digilent:=<prod>chipKitProgrammer:=<sn>DA63CA1:=<drv>x:=<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 Binary files differnew file mode 100644 index 0000000..52eb23f --- /dev/null +++ b/Lab6.X/strap012_prelab6.zip |