Compare commits

..

13 commits
v1.1.0 ... main

19 changed files with 298 additions and 136 deletions

View file

@ -2,7 +2,7 @@
## Description ## Description
This embedded firmware is the High Power mode for the triac software. This embedded firmware is the High Power mode for the software.
### Micro Controller Pins ### Micro Controller Pins
@ -111,6 +111,4 @@ Some stuff that still needs done.
- [X] Write tests for ADC Mock - [X] Write tests for ADC Mock
- [X] Write ZCD using ADC Mock. - [X] Write ZCD using ADC Mock.
- [X] Write ADC version for ATtiny404 - [X] Write ADC version for ATtiny404
- [X] Add Triac module.
- [X] Add Triac tests.

View file

@ -51,17 +51,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
# Source Files Quoted if spaced # Source Files Quoted if spaced
SOURCEFILES_QUOTED_IF_SPACED=src/main.c src/ADC/ADC.c src/load/load.c src/RegEdit/RegEdit.c src/TriacOut/TriacOut.c src/usart/usart.c src/zero_cross_detection/zero_cross_detection.c src/Enable/Enable.c SOURCEFILES_QUOTED_IF_SPACED=src/main.c src/ADC/ADC.c src/load/load.c src/RegEdit/RegEdit.c src/usart/usart.c src/zero_cross_detection/zero_cross_detection.c src/Enable/Enable.c src/EnOut/EnOut.c
# Object Files Quoted if spaced # Object Files Quoted if spaced
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/ADC/ADC.o ${OBJECTDIR}/src/load/load.o ${OBJECTDIR}/src/RegEdit/RegEdit.o ${OBJECTDIR}/src/TriacOut/TriacOut.o ${OBJECTDIR}/src/usart/usart.o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o ${OBJECTDIR}/src/Enable/Enable.o OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/ADC/ADC.o ${OBJECTDIR}/src/load/load.o ${OBJECTDIR}/src/RegEdit/RegEdit.o ${OBJECTDIR}/src/usart/usart.o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o ${OBJECTDIR}/src/Enable/Enable.o ${OBJECTDIR}/src/EnOut/EnOut.o
POSSIBLE_DEPFILES=${OBJECTDIR}/src/main.o.d ${OBJECTDIR}/src/ADC/ADC.o.d ${OBJECTDIR}/src/load/load.o.d ${OBJECTDIR}/src/RegEdit/RegEdit.o.d ${OBJECTDIR}/src/TriacOut/TriacOut.o.d ${OBJECTDIR}/src/usart/usart.o.d ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d ${OBJECTDIR}/src/Enable/Enable.o.d POSSIBLE_DEPFILES=${OBJECTDIR}/src/main.o.d ${OBJECTDIR}/src/ADC/ADC.o.d ${OBJECTDIR}/src/load/load.o.d ${OBJECTDIR}/src/RegEdit/RegEdit.o.d ${OBJECTDIR}/src/usart/usart.o.d ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d ${OBJECTDIR}/src/Enable/Enable.o.d ${OBJECTDIR}/src/EnOut/EnOut.o.d
# Object Files # Object Files
OBJECTFILES=${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/ADC/ADC.o ${OBJECTDIR}/src/load/load.o ${OBJECTDIR}/src/RegEdit/RegEdit.o ${OBJECTDIR}/src/TriacOut/TriacOut.o ${OBJECTDIR}/src/usart/usart.o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o ${OBJECTDIR}/src/Enable/Enable.o OBJECTFILES=${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/ADC/ADC.o ${OBJECTDIR}/src/load/load.o ${OBJECTDIR}/src/RegEdit/RegEdit.o ${OBJECTDIR}/src/usart/usart.o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o ${OBJECTDIR}/src/Enable/Enable.o ${OBJECTDIR}/src/EnOut/EnOut.o
# Source Files # Source Files
SOURCEFILES=src/main.c src/ADC/ADC.c src/load/load.c src/RegEdit/RegEdit.c src/TriacOut/TriacOut.c src/usart/usart.c src/zero_cross_detection/zero_cross_detection.c src/Enable/Enable.c SOURCEFILES=src/main.c src/ADC/ADC.c src/load/load.c src/RegEdit/RegEdit.c src/usart/usart.c src/zero_cross_detection/zero_cross_detection.c src/Enable/Enable.c src/EnOut/EnOut.c
@ -88,102 +88,102 @@ MP_PROCESSOR_OPTION=ATtiny404
# ------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------
# Rules for buildStep: compile # Rules for buildStep: compile
ifeq ($(TYPE_IMAGE), DEBUG_RUN) ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${OBJECTDIR}/src/main.o: src/main.c .generated_files/flags/attiny404/b9f684e59dcef2e7883eb301e801c7a6dec7fac7 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/main.o: src/main.c .generated_files/flags/attiny404/4a18d695a6a542a9d305d69379cc82da780a11b5 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src" @${MKDIR} "${OBJECTDIR}/src"
@${RM} ${OBJECTDIR}/src/main.o.d @${RM} ${OBJECTDIR}/src/main.o.d
@${RM} ${OBJECTDIR}/src/main.o @${RM} ${OBJECTDIR}/src/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/main.o.d" -MT "${OBJECTDIR}/src/main.o.d" -MT ${OBJECTDIR}/src/main.o -o ${OBJECTDIR}/src/main.o src/main.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/main.o.d" -MT "${OBJECTDIR}/src/main.o.d" -MT ${OBJECTDIR}/src/main.o -o ${OBJECTDIR}/src/main.o src/main.c
${OBJECTDIR}/src/ADC/ADC.o: src/ADC/ADC.c .generated_files/flags/attiny404/853153cc5ae62f26cd733944bd9c9efd86125162 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/ADC/ADC.o: src/ADC/ADC.c .generated_files/flags/attiny404/3d8773449273b085d8c9895efb51aa8448aeb455 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/ADC" @${MKDIR} "${OBJECTDIR}/src/ADC"
@${RM} ${OBJECTDIR}/src/ADC/ADC.o.d @${RM} ${OBJECTDIR}/src/ADC/ADC.o.d
@${RM} ${OBJECTDIR}/src/ADC/ADC.o @${RM} ${OBJECTDIR}/src/ADC/ADC.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/ADC/ADC.o.d" -MT "${OBJECTDIR}/src/ADC/ADC.o.d" -MT ${OBJECTDIR}/src/ADC/ADC.o -o ${OBJECTDIR}/src/ADC/ADC.o src/ADC/ADC.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/ADC/ADC.o.d" -MT "${OBJECTDIR}/src/ADC/ADC.o.d" -MT ${OBJECTDIR}/src/ADC/ADC.o -o ${OBJECTDIR}/src/ADC/ADC.o src/ADC/ADC.c
${OBJECTDIR}/src/load/load.o: src/load/load.c .generated_files/flags/attiny404/1343965e88bebbce1192847ae19d321d3f46dce8 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/load/load.o: src/load/load.c .generated_files/flags/attiny404/d8655bd13f1d067e11d0f4925135b7be028a5b05 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/load" @${MKDIR} "${OBJECTDIR}/src/load"
@${RM} ${OBJECTDIR}/src/load/load.o.d @${RM} ${OBJECTDIR}/src/load/load.o.d
@${RM} ${OBJECTDIR}/src/load/load.o @${RM} ${OBJECTDIR}/src/load/load.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/load/load.o.d" -MT "${OBJECTDIR}/src/load/load.o.d" -MT ${OBJECTDIR}/src/load/load.o -o ${OBJECTDIR}/src/load/load.o src/load/load.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/load/load.o.d" -MT "${OBJECTDIR}/src/load/load.o.d" -MT ${OBJECTDIR}/src/load/load.o -o ${OBJECTDIR}/src/load/load.o src/load/load.c
${OBJECTDIR}/src/RegEdit/RegEdit.o: src/RegEdit/RegEdit.c .generated_files/flags/attiny404/7a72683b4c0f32090ffddaa9046a277e7186927e .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/RegEdit/RegEdit.o: src/RegEdit/RegEdit.c .generated_files/flags/attiny404/8277c62e6eb27d324fcb47eadb55ecca38508940 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/RegEdit" @${MKDIR} "${OBJECTDIR}/src/RegEdit"
@${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o.d @${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o.d
@${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o @${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT ${OBJECTDIR}/src/RegEdit/RegEdit.o -o ${OBJECTDIR}/src/RegEdit/RegEdit.o src/RegEdit/RegEdit.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT ${OBJECTDIR}/src/RegEdit/RegEdit.o -o ${OBJECTDIR}/src/RegEdit/RegEdit.o src/RegEdit/RegEdit.c
${OBJECTDIR}/src/TriacOut/TriacOut.o: src/TriacOut/TriacOut.c .generated_files/flags/attiny404/3dddc20aa47b515f215fbd91b0b70af34b462c09 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/usart/usart.o: src/usart/usart.c .generated_files/flags/attiny404/7e35114acd779af68f90c57218e2f5fc0d70b230 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/TriacOut"
@${RM} ${OBJECTDIR}/src/TriacOut/TriacOut.o.d
@${RM} ${OBJECTDIR}/src/TriacOut/TriacOut.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/TriacOut/TriacOut.o.d" -MT "${OBJECTDIR}/src/TriacOut/TriacOut.o.d" -MT ${OBJECTDIR}/src/TriacOut/TriacOut.o -o ${OBJECTDIR}/src/TriacOut/TriacOut.o src/TriacOut/TriacOut.c
${OBJECTDIR}/src/usart/usart.o: src/usart/usart.c .generated_files/flags/attiny404/b41d8be0046f91a1e38187cf6465ced98abdd56 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/usart" @${MKDIR} "${OBJECTDIR}/src/usart"
@${RM} ${OBJECTDIR}/src/usart/usart.o.d @${RM} ${OBJECTDIR}/src/usart/usart.o.d
@${RM} ${OBJECTDIR}/src/usart/usart.o @${RM} ${OBJECTDIR}/src/usart/usart.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/usart/usart.o.d" -MT "${OBJECTDIR}/src/usart/usart.o.d" -MT ${OBJECTDIR}/src/usart/usart.o -o ${OBJECTDIR}/src/usart/usart.o src/usart/usart.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/usart/usart.o.d" -MT "${OBJECTDIR}/src/usart/usart.o.d" -MT ${OBJECTDIR}/src/usart/usart.o -o ${OBJECTDIR}/src/usart/usart.o src/usart/usart.c
${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o: src/zero_cross_detection/zero_cross_detection.c .generated_files/flags/attiny404/23b2390ba1de990a7c56456cae9fb08969f2ac11 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o: src/zero_cross_detection/zero_cross_detection.c .generated_files/flags/attiny404/a574ec10cb6dd0c1c60c2b0c579a60fbb2e44ddc .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/zero_cross_detection" @${MKDIR} "${OBJECTDIR}/src/zero_cross_detection"
@${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d @${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d
@${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o @${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o -o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o src/zero_cross_detection/zero_cross_detection.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o -o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o src/zero_cross_detection/zero_cross_detection.c
${OBJECTDIR}/src/Enable/Enable.o: src/Enable/Enable.c .generated_files/flags/attiny404/e4e767fd24bc1f0c6f6ab9d3e47f976facb5592a .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/Enable/Enable.o: src/Enable/Enable.c .generated_files/flags/attiny404/853c45c88340e56756ea55b91ce01ec66ae5b3f4 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/Enable" @${MKDIR} "${OBJECTDIR}/src/Enable"
@${RM} ${OBJECTDIR}/src/Enable/Enable.o.d @${RM} ${OBJECTDIR}/src/Enable/Enable.o.d
@${RM} ${OBJECTDIR}/src/Enable/Enable.o @${RM} ${OBJECTDIR}/src/Enable/Enable.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/Enable/Enable.o.d" -MT "${OBJECTDIR}/src/Enable/Enable.o.d" -MT ${OBJECTDIR}/src/Enable/Enable.o -o ${OBJECTDIR}/src/Enable/Enable.o src/Enable/Enable.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/Enable/Enable.o.d" -MT "${OBJECTDIR}/src/Enable/Enable.o.d" -MT ${OBJECTDIR}/src/Enable/Enable.o -o ${OBJECTDIR}/src/Enable/Enable.o src/Enable/Enable.c
${OBJECTDIR}/src/EnOut/EnOut.o: src/EnOut/EnOut.c .generated_files/flags/attiny404/47b193ae7e75c2ae6c3aaf9472e1f3177fcf59d9 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/EnOut"
@${RM} ${OBJECTDIR}/src/EnOut/EnOut.o.d
@${RM} ${OBJECTDIR}/src/EnOut/EnOut.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -g -DDEBUG -gdwarf-2 -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/EnOut/EnOut.o.d" -MT "${OBJECTDIR}/src/EnOut/EnOut.o.d" -MT ${OBJECTDIR}/src/EnOut/EnOut.o -o ${OBJECTDIR}/src/EnOut/EnOut.o src/EnOut/EnOut.c
else else
${OBJECTDIR}/src/main.o: src/main.c .generated_files/flags/attiny404/d9b07086871956480c6db3035b547177bd162e54 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/main.o: src/main.c .generated_files/flags/attiny404/4428bc9166a87775d410e311c31ef68ca65b2ffb .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src" @${MKDIR} "${OBJECTDIR}/src"
@${RM} ${OBJECTDIR}/src/main.o.d @${RM} ${OBJECTDIR}/src/main.o.d
@${RM} ${OBJECTDIR}/src/main.o @${RM} ${OBJECTDIR}/src/main.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/main.o.d" -MT "${OBJECTDIR}/src/main.o.d" -MT ${OBJECTDIR}/src/main.o -o ${OBJECTDIR}/src/main.o src/main.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/main.o.d" -MT "${OBJECTDIR}/src/main.o.d" -MT ${OBJECTDIR}/src/main.o -o ${OBJECTDIR}/src/main.o src/main.c
${OBJECTDIR}/src/ADC/ADC.o: src/ADC/ADC.c .generated_files/flags/attiny404/7d0c4a7f091df342ecf52cbee4c2c68cdcb9fcdc .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/ADC/ADC.o: src/ADC/ADC.c .generated_files/flags/attiny404/5296cecaa739eeefd0ebf421da823004c2d4c31c .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/ADC" @${MKDIR} "${OBJECTDIR}/src/ADC"
@${RM} ${OBJECTDIR}/src/ADC/ADC.o.d @${RM} ${OBJECTDIR}/src/ADC/ADC.o.d
@${RM} ${OBJECTDIR}/src/ADC/ADC.o @${RM} ${OBJECTDIR}/src/ADC/ADC.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/ADC/ADC.o.d" -MT "${OBJECTDIR}/src/ADC/ADC.o.d" -MT ${OBJECTDIR}/src/ADC/ADC.o -o ${OBJECTDIR}/src/ADC/ADC.o src/ADC/ADC.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/ADC/ADC.o.d" -MT "${OBJECTDIR}/src/ADC/ADC.o.d" -MT ${OBJECTDIR}/src/ADC/ADC.o -o ${OBJECTDIR}/src/ADC/ADC.o src/ADC/ADC.c
${OBJECTDIR}/src/load/load.o: src/load/load.c .generated_files/flags/attiny404/d93cb01157879eb3448c2a8b96781544a70d314b .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/load/load.o: src/load/load.c .generated_files/flags/attiny404/f57940e2c9a1d09b4d1b0cbe60748a7a23cf1bfd .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/load" @${MKDIR} "${OBJECTDIR}/src/load"
@${RM} ${OBJECTDIR}/src/load/load.o.d @${RM} ${OBJECTDIR}/src/load/load.o.d
@${RM} ${OBJECTDIR}/src/load/load.o @${RM} ${OBJECTDIR}/src/load/load.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/load/load.o.d" -MT "${OBJECTDIR}/src/load/load.o.d" -MT ${OBJECTDIR}/src/load/load.o -o ${OBJECTDIR}/src/load/load.o src/load/load.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/load/load.o.d" -MT "${OBJECTDIR}/src/load/load.o.d" -MT ${OBJECTDIR}/src/load/load.o -o ${OBJECTDIR}/src/load/load.o src/load/load.c
${OBJECTDIR}/src/RegEdit/RegEdit.o: src/RegEdit/RegEdit.c .generated_files/flags/attiny404/6a69db392b30236990da2cc01c441d9fff880520 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/RegEdit/RegEdit.o: src/RegEdit/RegEdit.c .generated_files/flags/attiny404/cbcdee9e52a972564c97845e7d8131e7889df7d1 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/RegEdit" @${MKDIR} "${OBJECTDIR}/src/RegEdit"
@${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o.d @${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o.d
@${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o @${RM} ${OBJECTDIR}/src/RegEdit/RegEdit.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT ${OBJECTDIR}/src/RegEdit/RegEdit.o -o ${OBJECTDIR}/src/RegEdit/RegEdit.o src/RegEdit/RegEdit.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT "${OBJECTDIR}/src/RegEdit/RegEdit.o.d" -MT ${OBJECTDIR}/src/RegEdit/RegEdit.o -o ${OBJECTDIR}/src/RegEdit/RegEdit.o src/RegEdit/RegEdit.c
${OBJECTDIR}/src/TriacOut/TriacOut.o: src/TriacOut/TriacOut.c .generated_files/flags/attiny404/baf57826bb54eba90d16c50c08b6bc3c6d20ef27 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/usart/usart.o: src/usart/usart.c .generated_files/flags/attiny404/eeb93cdee4d5a99d437668c6cc3a0c37e2a22bca .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/TriacOut"
@${RM} ${OBJECTDIR}/src/TriacOut/TriacOut.o.d
@${RM} ${OBJECTDIR}/src/TriacOut/TriacOut.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/TriacOut/TriacOut.o.d" -MT "${OBJECTDIR}/src/TriacOut/TriacOut.o.d" -MT ${OBJECTDIR}/src/TriacOut/TriacOut.o -o ${OBJECTDIR}/src/TriacOut/TriacOut.o src/TriacOut/TriacOut.c
${OBJECTDIR}/src/usart/usart.o: src/usart/usart.c .generated_files/flags/attiny404/32e23a0c12bc202a27b1b0ea5c0e3217ebf27522 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/usart" @${MKDIR} "${OBJECTDIR}/src/usart"
@${RM} ${OBJECTDIR}/src/usart/usart.o.d @${RM} ${OBJECTDIR}/src/usart/usart.o.d
@${RM} ${OBJECTDIR}/src/usart/usart.o @${RM} ${OBJECTDIR}/src/usart/usart.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/usart/usart.o.d" -MT "${OBJECTDIR}/src/usart/usart.o.d" -MT ${OBJECTDIR}/src/usart/usart.o -o ${OBJECTDIR}/src/usart/usart.o src/usart/usart.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/usart/usart.o.d" -MT "${OBJECTDIR}/src/usart/usart.o.d" -MT ${OBJECTDIR}/src/usart/usart.o -o ${OBJECTDIR}/src/usart/usart.o src/usart/usart.c
${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o: src/zero_cross_detection/zero_cross_detection.c .generated_files/flags/attiny404/760c9b65db2639fda92808a0077f4ba13fe71e25 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o: src/zero_cross_detection/zero_cross_detection.c .generated_files/flags/attiny404/8720e109db3abe691f56ab4657549cc0502b678a .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/zero_cross_detection" @${MKDIR} "${OBJECTDIR}/src/zero_cross_detection"
@${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d @${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d
@${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o @${RM} ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o -o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o src/zero_cross_detection/zero_cross_detection.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT "${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o.d" -MT ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o -o ${OBJECTDIR}/src/zero_cross_detection/zero_cross_detection.o src/zero_cross_detection/zero_cross_detection.c
${OBJECTDIR}/src/Enable/Enable.o: src/Enable/Enable.c .generated_files/flags/attiny404/6c73425a6a783d3fd5ad74317797c4729bb26fb2 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709 ${OBJECTDIR}/src/Enable/Enable.o: src/Enable/Enable.c .generated_files/flags/attiny404/9900b476323d492363d00093aa125b84669cf8e5 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/Enable" @${MKDIR} "${OBJECTDIR}/src/Enable"
@${RM} ${OBJECTDIR}/src/Enable/Enable.o.d @${RM} ${OBJECTDIR}/src/Enable/Enable.o.d
@${RM} ${OBJECTDIR}/src/Enable/Enable.o @${RM} ${OBJECTDIR}/src/Enable/Enable.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/Enable/Enable.o.d" -MT "${OBJECTDIR}/src/Enable/Enable.o.d" -MT ${OBJECTDIR}/src/Enable/Enable.o -o ${OBJECTDIR}/src/Enable/Enable.o src/Enable/Enable.c ${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/Enable/Enable.o.d" -MT "${OBJECTDIR}/src/Enable/Enable.o.d" -MT ${OBJECTDIR}/src/Enable/Enable.o -o ${OBJECTDIR}/src/Enable/Enable.o src/Enable/Enable.c
${OBJECTDIR}/src/EnOut/EnOut.o: src/EnOut/EnOut.c .generated_files/flags/attiny404/8efc6a6c1c80c107efc794123e4f46092e9183f2 .generated_files/flags/attiny404/da39a3ee5e6b4b0d3255bfef95601890afd80709
@${MKDIR} "${OBJECTDIR}/src/EnOut"
@${RM} ${OBJECTDIR}/src/EnOut/EnOut.o.d
@${RM} ${OBJECTDIR}/src/EnOut/EnOut.o
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -x c -D__$(MP_PROCESSOR_OPTION)__ -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -DXPRJ_attiny404=$(CND_CONF) $(COMPARISON_BUILD) -gdwarf-3 -mno-const-data-in-progmem -MD -MP -MF "${OBJECTDIR}/src/EnOut/EnOut.o.d" -MT "${OBJECTDIR}/src/EnOut/EnOut.o.d" -MT ${OBJECTDIR}/src/EnOut/EnOut.o -o ${OBJECTDIR}/src/EnOut/EnOut.o src/EnOut/EnOut.c
endif endif
@ -204,14 +204,14 @@ endif
ifeq ($(TYPE_IMAGE), DEBUG_RUN) ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${DISTDIR}/High.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ${DISTDIR}/High.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} ${DISTDIR} @${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/High.${IMAGE_TYPE}.map -D__DEBUG=1 -DXPRJ_attiny404=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -gdwarf-2 -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -gdwarf-3 -mno-const-data-in-progmem $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -o ${DISTDIR}/High.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1 ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/High.${IMAGE_TYPE}.map -D__DEBUG=1 -DXPRJ_attiny404=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -gdwarf-2 -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -gdwarf-3 -mno-const-data-in-progmem $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -o ${DISTDIR}/High.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1
@${RM} ${DISTDIR}/High.${IMAGE_TYPE}.hex @${RM} ${DISTDIR}/High.${IMAGE_TYPE}.hex
else else
${DISTDIR}/High.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk ${DISTDIR}/High.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} ${DISTDIR} @${MKDIR} ${DISTDIR}
${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/High.${IMAGE_TYPE}.map -DXPRJ_attiny404=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/TriacOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -gdwarf-3 -mno-const-data-in-progmem $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -o ${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--start-group -Wl,-lm -Wl,--end-group ${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/High.${IMAGE_TYPE}.map -DXPRJ_attiny404=$(CND_CONF) -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="${DFP_DIR}/xc8" -Wl,--gc-sections -O1 -ffunction-sections -fdata-sections -fshort-enums -fno-common -funsigned-char -funsigned-bitfields -I"src/ADC" -I"src/load" -I"src/RegEdit" -I"src/EnOut" -I"src/zero_cross_detection" -I"src/usart" -I"inc" -I"src/Enable" -Wall -gdwarf-3 -mno-const-data-in-progmem $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -o ${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--start-group -Wl,-lm -Wl,--end-group
${MP_CC_DIR}/avr-objcopy -O ihex "${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/High.${IMAGE_TYPE}.hex" ${MP_CC_DIR}/avr-objcopy -O ihex "${DISTDIR}/High.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/High.${IMAGE_TYPE}.hex"
endif endif

View file

@ -1,11 +1,11 @@
# #
#Sat Jul 27 20:31:13 PDT 2024 #Sat Sep 14 13:09:18 PDT 2024
attiny404.com-microchip-mplab-mdbcore-PK5Tool-PK5ToolImpl.md5=8ed9aa4326bfc0c1a849e697826741b7
attiny404.languagetoolchain.version=2.46 attiny404.languagetoolchain.version=2.46
attiny404.com-microchip-mplab-nbide-toolchain-xc8-XC8LanguageToolchain.md5=bf89cdcdd6c0a49174fe4b605ef2b42d attiny404.com-microchip-mplab-nbide-toolchain-xc8-XC8LanguageToolchain.md5=bf89cdcdd6c0a49174fe4b605ef2b42d
conf.ids=,attiny404 conf.ids=,attiny404
host.id=2ov5-ff4p-rv host.id=2ov5-ff4p-rv
configurations-xml=05e801700434771e18764de369e0b7df configurations-xml=e362e05ffa553999bac071152ffccd3b
attiny404.platformTool.md5=null
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321
attiny404.languagetoolchain.dir=/opt/microchip/xc8/v2.46/bin attiny404.languagetoolchain.dir=/opt/microchip/xc8/v2.46/bin
proj.dir=/home/ronin/Documents/projects/freelance/laith_naaman/High proj.dir=/home/ronin/Documents/projects/freelance/laith_naaman/High

View file

@ -7,11 +7,11 @@
<itemPath>src/ADC/ADC.h</itemPath> <itemPath>src/ADC/ADC.h</itemPath>
<itemPath>src/load/load.h</itemPath> <itemPath>src/load/load.h</itemPath>
<itemPath>src/RegEdit/RegEdit.h</itemPath> <itemPath>src/RegEdit/RegEdit.h</itemPath>
<itemPath>src/TriacOut/TriacOut.h</itemPath>
<itemPath>src/usart/usart.h</itemPath> <itemPath>src/usart/usart.h</itemPath>
<itemPath>src/zero_cross_detection/zero_cross_detection.h</itemPath> <itemPath>src/zero_cross_detection/zero_cross_detection.h</itemPath>
<itemPath>inc/config.h</itemPath> <itemPath>inc/config.h</itemPath>
<itemPath>src/Enable/Enable.h</itemPath> <itemPath>src/Enable/Enable.h</itemPath>
<itemPath>src/EnOut/EnOut.h</itemPath>
</logicalFolder> </logicalFolder>
<logicalFolder name="ExternalFiles" <logicalFolder name="ExternalFiles"
displayName="Important Files" displayName="Important Files"
@ -29,10 +29,10 @@
<itemPath>src/ADC/ADC.c</itemPath> <itemPath>src/ADC/ADC.c</itemPath>
<itemPath>src/load/load.c</itemPath> <itemPath>src/load/load.c</itemPath>
<itemPath>src/RegEdit/RegEdit.c</itemPath> <itemPath>src/RegEdit/RegEdit.c</itemPath>
<itemPath>src/TriacOut/TriacOut.c</itemPath>
<itemPath>src/usart/usart.c</itemPath> <itemPath>src/usart/usart.c</itemPath>
<itemPath>src/zero_cross_detection/zero_cross_detection.c</itemPath> <itemPath>src/zero_cross_detection/zero_cross_detection.c</itemPath>
<itemPath>src/Enable/Enable.c</itemPath> <itemPath>src/Enable/Enable.c</itemPath>
<itemPath>src/EnOut/EnOut.c</itemPath>
</logicalFolder> </logicalFolder>
</logicalFolder> </logicalFolder>
<sourceRootList> <sourceRootList>
@ -318,7 +318,7 @@
<targetDevice>ATtiny404</targetDevice> <targetDevice>ATtiny404</targetDevice>
<targetHeader></targetHeader> <targetHeader></targetHeader>
<targetPluginBoard></targetPluginBoard> <targetPluginBoard></targetPluginBoard>
<platformTool>PK5Tool</platformTool> <platformTool>noID</platformTool>
<languageToolchain>XC8</languageToolchain> <languageToolchain>XC8</languageToolchain>
<languageToolchainVersion>2.46</languageToolchainVersion> <languageToolchainVersion>2.46</languageToolchainVersion>
<platform>2</platform> <platform>2</platform>
@ -362,7 +362,7 @@
<property key="define-macros" value=""/> <property key="define-macros" value=""/>
<property key="disable-optimizations" value="false"/> <property key="disable-optimizations" value="false"/>
<property key="extra-include-directories" <property key="extra-include-directories"
value="src/ADC;src/load;src/RegEdit;src/TriacOut;src/zero_cross_detection;src/usart;inc;src/Enable"/> value="src/ADC;src/load;src/RegEdit;src/EnOut;src/zero_cross_detection;src/usart;inc;src/Enable"/>
<property key="favor-optimization-for" value="-speed,+space"/> <property key="favor-optimization-for" value="-speed,+space"/>
<property key="garbage-collect-data" value="true"/> <property key="garbage-collect-data" value="true"/>
<property key="garbage-collect-functions" value="true"/> <property key="garbage-collect-functions" value="true"/>

View file

@ -22,7 +22,7 @@
</runprofile> </runprofile>
</conf> </conf>
<conf name="attiny404" type="2"> <conf name="attiny404" type="2">
<platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>9036:=&lt;rev>0100:=&lt;man>Microchip Technology Incorporated:=&lt;prod>MPLAB PICkit 5:=&lt;sn>020026702RYN031742:=&lt;drv>x:=&lt;xpt>b:=end</platformToolSN> <platformToolSN>noToolString</platformToolSN>
<languageToolchainDir>/opt/microchip/xc8/v2.46/bin</languageToolchainDir> <languageToolchainDir>/opt/microchip/xc8/v2.46/bin</languageToolchainDir>
<mdbdebugger version="1"> <mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1> <placeholder1>place holder 1</placeholder1>

View file

@ -257,10 +257,10 @@ run_c_tests () {
cmake -DUNIT_TESTING=ON -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../ cmake -DUNIT_TESTING=ON -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../
make AllTests make AllTests
make Mock_Tests make Mock_Tests
make TriacTests make EnTests
./tests/AllTests -v -c ./tests/AllTests -v -c
./tests/Mock_Tests -v -c ./tests/Mock_Tests -v -c
./tests/TriacTests -v -c ./tests/EnTests -v -c
} }
print_menu () { print_menu () {

View file

@ -5,7 +5,7 @@ add_executable(${PROJECT_NAME}
target_link_libraries(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME}
RegEdit RegEdit
ADC ADC
TriacOut EnOut
zero_cross_detection zero_cross_detection
load load
Enable Enable
@ -54,5 +54,5 @@ add_subdirectory(zero_cross_detection)
add_subdirectory(ADC) add_subdirectory(ADC)
add_subdirectory(RegEdit) add_subdirectory(RegEdit)
add_subdirectory(usart) add_subdirectory(usart)
add_subdirectory(TriacOut) add_subdirectory(EnOut)
add_subdirectory(Enable) add_subdirectory(Enable)

17
src/EnOut/CMakeLists.txt Normal file
View file

@ -0,0 +1,17 @@
add_library(EnOut STATIC
EnOut.c
)
target_include_directories(EnOut PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
if(UNIT_TESTING)
target_link_libraries(EnOut
MockRegEdit
)
else()
target_link_libraries(EnOut
RegEdit
)
endif()

View file

@ -1,7 +1,7 @@
/* /*
* Author: username * Author: username
* Date: todays_date * Date: todays_date
* filename: TriacOut.c * filename: EnOut.c
* description: module_purpose * description: module_purpose
*/ */
#ifndef __AVR_ATtiny404__ #ifndef __AVR_ATtiny404__
@ -10,29 +10,29 @@
#include <avr/io.h> #include <avr/io.h>
#include "TriacOut.h" #include "EnOut.h"
#include "RegEdit.h" #include "RegEdit.h"
void TriacOut_InitTimerA(void) void EnOut_InitTimerA(void)
{ {
} }
void TriacOut_SetupPins(void) void EnOut_SetupPins(void)
{ {
RegEdit_SetBit((void *) &PORTA.DIR, G1); RegEdit_SetBit((void *) &PORTA.DIR, G1);
} }
void TriacOut_SetAllHigh(void) void EnOut_SetAllHigh(void)
{ {
RegEdit_SetBit((void *) &PORTA.OUT, G1); RegEdit_SetBit((void *) &PORTA.OUT, G1);
} }
void TriacOut_PulsePins(uint16_t pulse_time) void EnOut_PulsePins(uint16_t pulse_time)
{ {
Delay_MicroSeconds(pulse_time); Delay_MicroSeconds(pulse_time);

View file

@ -4,11 +4,11 @@
* @author username * @author username
* @date todays_date * @date todays_date
* @copyright None * @copyright None
* @file TriacOut.h * @file EnOut.h
*/ */
#ifndef TRIACOUT_H #ifndef ENOUT_H
#define TRIACOUT_H #define ENOUT_H
#include <stdint.h> #include <stdint.h>
@ -31,18 +31,18 @@ extern void (*Delay_MicroSeconds)(double us);
* This function turns off G1, G2 and G3, once the passed time in micro seconds * This function turns off G1, G2 and G3, once the passed time in micro seconds
* has elapsed the pins are all set to low. * has elapsed the pins are all set to low.
*/ */
void TriacOut_PulsePins(uint16_t pulse_time); void EnOut_PulsePins(uint16_t pulse_time);
/** /**
* This sets up the G1, G2 and the G3 pins for output. * This sets up the G1, G2 and the G3 pins for output.
*/ */
void TriacOut_SetupPins(void); void EnOut_SetupPins(void);
/** /**
* This sets G1, G2 and G3 to high on the output. * This sets G1, G2 and G3 to high on the output.
*/ */
void TriacOut_SetAllHigh(void); void EnOut_SetAllHigh(void);
#endif //TRIACOUT_H #endif //ENOUT_H

View file

@ -1,17 +0,0 @@
add_library(TriacOut STATIC
TriacOut.c
)
target_include_directories(TriacOut PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
if(UNIT_TESTING)
target_link_libraries(TriacOut
MockRegEdit
)
else()
target_link_libraries(TriacOut
RegEdit
)
endif()

View file

@ -32,13 +32,13 @@ static bool portb_disabled[8] = {0};
static bool valid_load(uint16_t val) static bool valid_load(uint16_t val)
{ {
if(val > 527 && val < 1000) { if(val > LOWTHRESH && val < HIGHTHRESH) {
return true; return true;
} }
return false; return false;
} }
void Load_HandleLoadPortA(uint8_t adc_pin, uint8_t out_pin) static uint16_t sample_adc(uint8_t adc_pin)
{ {
ADC_Init(adc_pin); ADC_Init(adc_pin);
ADC_Enable(); ADC_Enable();
@ -46,6 +46,13 @@ void Load_HandleLoadPortA(uint8_t adc_pin, uint8_t out_pin)
uint16_t val = ADC_ReadValue(adc_pin); uint16_t val = ADC_ReadValue(adc_pin);
ADC_Disable(); ADC_Disable();
return val;
}
void Load_HandleLoadPortA(uint8_t adc_pin, uint8_t out_pin)
{
uint16_t val = sample_adc(adc_pin);
if(valid_load(val) && !porta_disabled[adc_pin]){ if(valid_load(val) && !porta_disabled[adc_pin]){
RegEdit_SetBit((void *) &PORTA.DIR, out_pin); RegEdit_SetBit((void *) &PORTA.DIR, out_pin);
RegEdit_SetBit((void *) &PORTA.OUT, out_pin); RegEdit_SetBit((void *) &PORTA.OUT, out_pin);
@ -58,12 +65,8 @@ void Load_HandleLoadPortA(uint8_t adc_pin, uint8_t out_pin)
void Load_HandleLoadPortB(uint8_t adc_pin, uint8_t out_pin) void Load_HandleLoadPortB(uint8_t adc_pin, uint8_t out_pin)
{ {
ADC_Init(adc_pin); uint16_t val = sample_adc(adc_pin);
ADC_Enable();
ADC_SetPin(adc_pin);
uint16_t val = ADC_ReadValue(adc_pin);
ADC_Disable();
if(valid_load(val) && !portb_disabled[adc_pin]){ if(valid_load(val) && !portb_disabled[adc_pin]){
RegEdit_SetBit((void *) &PORTB.DIR, out_pin); RegEdit_SetBit((void *) &PORTB.DIR, out_pin);
RegEdit_SetBit((void *) &PORTB.OUT, out_pin); RegEdit_SetBit((void *) &PORTB.OUT, out_pin);
@ -73,3 +76,11 @@ void Load_HandleLoadPortB(uint8_t adc_pin, uint8_t out_pin)
portb_disabled[adc_pin] = true; portb_disabled[adc_pin] = true;
} }
} }
void Load_SoftResetDisabledLoads()
{
for(int i = 0; i < 8; i++){
porta_disabled[i] = false;
portb_disabled[i] = false;
}
}

View file

@ -10,23 +10,45 @@
#ifndef LOAD_H #ifndef LOAD_H
#define LOAD_H #define LOAD_H
#include <stdint.h>
/** /**
* @brief Low Threshold * @brief Low Threshold
* * Anything below or equal to the value will cause the pin to lock into the disabled
* state.
*/ */
#define LOWTHRESH 527 #define LOWTHRESH 517
/** /**
* @brief High Threshold * @brief High Threshold
* * Anything equal or above the value will cause the pin to lock into the disabled
* state.
*/ */
#define HIGHTHRESH 1000 #define HIGHTHRESH 830
/**
* @brief Checks if the adc pin is inbetween LOWTHRESH and HIGHTHRESH and then
* sets or disables the output pin on PORTA.
* @param adc_pin the pin number that the load value is read from.
* @param out_pin The pin that is set high if the adc_pin input is valid.
*/
void Load_HandleLoadPortA(uint8_t adc_pin, uint8_t out_pin); void Load_HandleLoadPortA(uint8_t adc_pin, uint8_t out_pin);
/**
* @brief Checks if the adc pin is inbetween LOWTHRESH and HIGHTHRESH and then
* sets or disables the output pin on PORTB.
* @param adc_pin the pin number that the load value is read from.
* @param out_pin The pin that is set high if the adc_pin input is valid.
*/
void Load_HandleLoadPortB(uint8_t adc_pin, uint8_t out_pin); void Load_HandleLoadPortB(uint8_t adc_pin, uint8_t out_pin);
void Load_HandlePinLoads(void);
/**
* @brief Resets the disabled array state.
*/
void Load_SoftResetDisabledLoads(void);
#endif /* LOAD_H */ #endif /* LOAD_H */

View file

@ -18,7 +18,7 @@
#include "RegEdit.h" #include "RegEdit.h"
#include "zero_cross_detection.h" #include "zero_cross_detection.h"
#include "ADC.h" #include "ADC.h"
#include "TriacOut.h" #include "EnOut.h"
#include "load.h" #include "load.h"
#include "Enable.h" #include "Enable.h"
#include <avr/cpufunc.h> /* Required header file */ #include <avr/cpufunc.h> /* Required header file */
@ -35,15 +35,15 @@ int main(int argc, char **argv)
{ {
Enable_SetPinsLow(); Enable_SetPinsLow();
TriacOut_SetupPins(); EnOut_SetupPins();
ADC_Setup(); ADC_Setup();
while(true){ while(true){
for(int i = 0; i < GatePulsesQty; i++){ for(int i = 0; i < GatePulsesQty; i++){
ZCD_Poll(); ZCD_Poll();
_delay_us(Tau); _delay_us(Tau);
TriacOut_SetAllHigh(); //Only G1 exists in High power mode EnOut_SetAllHigh(); //Only G1 exists in High power mode
TriacOut_PulsePins(GatePulses[i]); EnOut_PulsePins(GatePulses[i]);
} }
//The G1 pin is low at this point. //The G1 pin is low at this point.
@ -52,6 +52,7 @@ int main(int argc, char **argv)
while(true){ while(true){
//Enable pins are enabled(set high) if the ADCLOAD value is valid. //Enable pins are enabled(set high) if the ADCLOAD value is valid.
_delay_us(Tau);
Load_HandleLoadPortA(ADC_LOAD1, EN1); Load_HandleLoadPortA(ADC_LOAD1, EN1);
Load_HandleLoadPortB(ADC_LOAD2, EN2); Load_HandleLoadPortB(ADC_LOAD2, EN2);
Load_HandleLoadPortB(ADC_LOAD3, EN3); Load_HandleLoadPortB(ADC_LOAD3, EN3);

View file

@ -9,7 +9,7 @@ add_subdirectory(MockRegEdit)
add_subdirectory(RegEdit) add_subdirectory(RegEdit)
add_subdirectory(simple_test) add_subdirectory(simple_test)
add_subdirectory(zero_cross_detection) add_subdirectory(zero_cross_detection)
add_subdirectory(TriacOut) add_subdirectory(EnOut)
add_subdirectory(load) add_subdirectory(load)
@ -43,12 +43,12 @@ target_link_libraries(Mock_Tests
) )
add_executable(TriacTests add_executable(EnTests
TriacTests.cpp EnTests.cpp
) )
target_link_libraries(TriacTests target_link_libraries(EnTests
${CPPUTEST_LIBRARIES}/libCppUTest.a ${CPPUTEST_LIBRARIES}/libCppUTest.a
${CPPUTEST_LIBRARIES}/libCppUTestExt.a ${CPPUTEST_LIBRARIES}/libCppUTestExt.a
test_TriacOut test_EnOut
) )

View file

@ -1,12 +1,12 @@
# TEST_RUNNER # TEST_RUNNER
add_library(test_TriacOut add_library(test_EnOut
test_TriacOut.cpp test_EnOut.cpp
) )
target_link_libraries(test_TriacOut target_link_libraries(test_EnOut
${CPPUTEST_LIBRARIES}/libCppUTest.a ${CPPUTEST_LIBRARIES}/libCppUTest.a
${CPPUTEST_LIBRARIES}/libCppUTestExt.a ${CPPUTEST_LIBRARIES}/libCppUTestExt.a
MockRegEdit MockRegEdit
TriacOut EnOut
) )

View file

@ -1,7 +1,7 @@
/* /*
* Author: username * Author: username
* Date: todays_date * Date: todays_date
* filename: test_TriacOut.c * filename: test_EnOut.c
* description: module_purpose * description: module_purpose
*/ */
@ -14,7 +14,7 @@
extern "C" extern "C"
{ {
#include <iotn404.h> #include <iotn404.h>
#include "TriacOut.h" #include "EnOut.h"
#include "MockRegEdit.h" #include "MockRegEdit.h"
} }
@ -27,7 +27,7 @@ void FakeDelay(double us)
void (*Delay_MicroSeconds)(double us) = FakeDelay; void (*Delay_MicroSeconds)(double us) = FakeDelay;
TEST_GROUP(test_TriacOut) TEST_GROUP(test_EnOut)
{ {
void setup() void setup()
{ {
@ -40,13 +40,13 @@ TEST_GROUP(test_TriacOut)
} }
}; };
TEST(test_TriacOut, FirstTest) TEST(test_EnOut, FirstTest)
{ {
//FAIL("Fail me!"); //FAIL("Fail me!");
CHECK(true); CHECK(true);
} }
TEST(test_TriacOut, TriacOut_SetupPins) TEST(test_EnOut, EnOut_SetupPins)
{ {
//Expect that pin PA1 is set to output //Expect that pin PA1 is set to output
mock().expectOneCall("RegEdit_SetBit") mock().expectOneCall("RegEdit_SetBit")
@ -54,21 +54,21 @@ TEST(test_TriacOut, TriacOut_SetupPins)
.withUnsignedIntParameter("bit_num", G1); .withUnsignedIntParameter("bit_num", G1);
TriacOut_SetupPins(); EnOut_SetupPins();
} }
TEST(test_TriacOut, TriacOut_SetAllHigh) TEST(test_EnOut, EnOut_SetAllHigh)
{ {
//Expect that pin PA1 is set to output //Expect that pin PA1 is set to output
mock().expectOneCall("RegEdit_SetBit") mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.OUT) .withPointerParameter("reg", (void *) &PORTA.OUT)
.withUnsignedIntParameter("bit_num", G1); .withUnsignedIntParameter("bit_num", G1);
TriacOut_SetAllHigh(); EnOut_SetAllHigh();
} }
TEST(test_TriacOut, TriacOut_PulsePins) TEST(test_EnOut, EnOut_PulsePins)
{ {
//Expect that pin PA1 is set to output //Expect that pin PA1 is set to output
@ -76,5 +76,5 @@ TEST(test_TriacOut, TriacOut_PulsePins)
.withPointerParameter("reg", (void *) &PORTA.OUT) .withPointerParameter("reg", (void *) &PORTA.OUT)
.withUnsignedIntParameter("bit_num", G1); .withUnsignedIntParameter("bit_num", G1);
TriacOut_PulsePins(1000); EnOut_PulsePins(1000);
} }

View file

@ -1,6 +1,6 @@
#include "CppUTest/CommandLineTestRunner.h" #include "CppUTest/CommandLineTestRunner.h"
IMPORT_TEST_GROUP(test_TriacOut); IMPORT_TEST_GROUP(test_EnOut);
//START: main //START: main

View file

@ -23,9 +23,14 @@ extern "C"
TEST_GROUP(test_load) TEST_GROUP(test_load)
{ {
uint8_t adc_pin;
uint8_t load_pin;
void setup() void setup()
{ {
adc_pin = 4;
load_pin = 7;
MockADC_ZeroIndex();
Load_SoftResetDisabledLoads();
} }
void teardown() void teardown()
{ {
@ -39,18 +44,143 @@ TEST(test_load, LoadPass)
CHECK_TRUE(true); CHECK_TRUE(true);
} }
TEST(test_load, PortAHandlerSuccess) void setup_adc_expectations(uint8_t adc_pin)
{ {
mock().expectOneCall("ADC_Init") mock().expectOneCall("ADC_Init")
.withUnsignedIntParameter("pin_num", 4); .withUnsignedIntParameter("pin_num", adc_pin);
mock().expectOneCall("ADC_Enable"); mock().expectOneCall("ADC_Enable");
mock().expectOneCall("ADC_ReadValue_Impl") mock().expectOneCall("ADC_ReadValue_Impl")
.withUnsignedIntParameter("pin_num", 4); .withUnsignedIntParameter("pin_num", adc_pin);
mock().expectOneCall("ADC_Disable"); mock().expectOneCall("ADC_Disable");
}
void expect_porta_disabled(uint8_t load_pin)
{
mock().expectOneCall("RegEdit_ClearBit") mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTA.OUT) .withPointerParameter("reg", (void *) &PORTA.OUT)
.withUnsignedIntParameter("bit_num", 7); .withUnsignedIntParameter("bit_num", load_pin);
Load_HandleLoadPortA(4, 7);
} }
void expect_porta_enabled(uint8_t load_pin)
{
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.DIR)
.withUnsignedIntParameter("bit_num", load_pin);
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.OUT)
.withUnsignedIntParameter("bit_num", load_pin);
}
void expect_portb_disabled(uint8_t load_pin)
{
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTB.OUT)
.withUnsignedIntParameter("bit_num", load_pin);
}
void expect_portb_enabled(uint8_t load_pin)
{
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTB.DIR)
.withUnsignedIntParameter("bit_num", load_pin);
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTB.OUT)
.withUnsignedIntParameter("bit_num", load_pin);
}
TEST(test_load, PortAHandlerDisabledHigh)
{
MockADC_PushValue(HIGHTHRESH);
setup_adc_expectations(adc_pin);
expect_porta_disabled(load_pin);
Load_HandleLoadPortA(adc_pin, load_pin);
}
TEST(test_load, PortAHandlerDisabledLow)
{
MockADC_PushValue(LOWTHRESH);
setup_adc_expectations(adc_pin);
expect_porta_disabled(load_pin);
Load_HandleLoadPortA(adc_pin, load_pin);
}
TEST(test_load, PortAHandlerEnabledWhenValid)
{
MockADC_PushValue(HIGHTHRESH - 1);
setup_adc_expectations(adc_pin);
expect_porta_enabled(load_pin);
Load_HandleLoadPortA(adc_pin, load_pin);
}
TEST(test_load, PortAHandlerDisblesUntilPowerReset)
{
MockADC_PushValue(HIGHTHRESH - 1);
MockADC_PushValue(HIGHTHRESH);
setup_adc_expectations(adc_pin);
expect_porta_disabled(load_pin);
setup_adc_expectations(adc_pin);
expect_porta_disabled(load_pin);
Load_HandleLoadPortA(adc_pin, load_pin);
Load_HandleLoadPortA(adc_pin, load_pin);
}
TEST(test_load, PortBHandlerDisabledHigh)
{
MockADC_PushValue(HIGHTHRESH);
setup_adc_expectations(adc_pin);
expect_portb_disabled(load_pin);
Load_HandleLoadPortB(adc_pin, load_pin);
}
TEST(test_load, PortBHandlerDisabledLow)
{
MockADC_PushValue(LOWTHRESH);
setup_adc_expectations(adc_pin);
expect_portb_disabled(load_pin);
Load_HandleLoadPortB(adc_pin, load_pin);
}
TEST(test_load, PortBHandlerEnabledWhenValid)
{
MockADC_PushValue(HIGHTHRESH - 1);
setup_adc_expectations(adc_pin);
expect_portb_enabled(load_pin);
Load_HandleLoadPortB(adc_pin, load_pin);
}
TEST(test_load, PortBHandlerDisblesUntilPowerReset)
{
MockADC_PushValue(HIGHTHRESH - 1);
MockADC_PushValue(HIGHTHRESH);
setup_adc_expectations(adc_pin);
expect_portb_disabled(load_pin);
setup_adc_expectations(adc_pin);
expect_portb_disabled(load_pin);
Load_HandleLoadPortB(adc_pin, load_pin);
Load_HandleLoadPortB(adc_pin, load_pin);
}