Compare commits

...

24 commits

Author SHA1 Message Date
jakeg00dwin
8eb5600499 removed the Delay_MicroSeconds_impl function and pointer set. 2024-07-27 11:04:30 -07:00
jakeg00dwin
a35b806299 removed unused comments and substituted bit shifts with constants 2024-07-27 09:56:03 -07:00
jakeg00dwin
077b265be2 Uncommented the SetAllHigh test and added the constatnts 2024-07-27 09:52:29 -07:00
jakeg00dwin
2e26507d76 whitespace change 2024-07-27 09:51:11 -07:00
jakeg00dwin
098d34c853 changed tests to not use magic numbers 2024-07-27 09:51:06 -07:00
jakeg00dwin
1a5324aef6 cleaned up tests a bit more by extracting duplication in helper function 2024-07-27 09:44:42 -07:00
jakeg00dwin
a061258669 Moved static helper function to top of tests. Extracted now uneeded expectations from tests. 2024-07-27 09:42:40 -07:00
jakeg00dwin
f10ed49eb4 extracted the expectations into helper func for ZCD poll function. 2024-07-27 09:39:20 -07:00
jakeg00dwin
d8403a4e82 Added call to helper function for ADC_INIT test 2024-07-27 09:28:29 -07:00
jakeg00dwin
a926cc3836 setup usage of the new ReadReg function. 2024-07-27 09:28:17 -07:00
jakeg00dwin
4ab57eb948 Created a helper function for the ADC storage testing 2024-07-27 09:23:36 -07:00
jakeg00dwin
7deea50e91 white space change 2024-07-27 09:23:15 -07:00
jakeg00dwin
4b44d364e0 fixed issue with mock causing a segmentation fault from pointer deref with lower type (void *) --> (uint8_t *) 2024-07-27 09:22:32 -07:00
jakeg00dwin
a92cdead2e fixed up ADC code + tests to make them pass 2024-07-27 09:06:23 -07:00
jakeg00dwin
5f547dd844 mplab change 2024-07-26 18:19:44 -07:00
jakeg00dwin
8117d3f890 fix of port storage 2024-07-26 18:19:36 -07:00
jakeg00dwin
6ecbe2f48a linking with the cpputest libs 2024-07-26 18:19:16 -07:00
jakeg00dwin
029b96aade Added two mock calls for the restore of the port state. 2024-07-26 18:19:05 -07:00
jakeg00dwin
ce68803cef removed empty whitespace 2024-07-26 18:18:36 -07:00
jakeg00dwin
f3c48ba643 Removed magic numbers from the Reading of the ZCD pin. 2024-07-26 18:18:23 -07:00
jakeg00dwin
b987d81827 Cleaned up comments in the TriacOut module 2024-07-26 18:18:09 -07:00
jakeg00dwin
29426ad4a5 Updated to follow the mocks 2024-07-26 18:17:53 -07:00
jakeg00dwin
f536024959 updated with new function for the RegEdit mock 2024-07-26 18:16:09 -07:00
jakeg00dwin
af3a041df8 ignoring the cache and build dir now 2024-07-26 18:15:33 -07:00
36 changed files with 143 additions and 412 deletions

2
.gitignore vendored
View file

@ -2,3 +2,5 @@
build
dist/attiny404/production
.generated_files/flags/attiny404
.cache/clangd/index
build/default

Binary file not shown.

View file

@ -1,50 +0,0 @@
build/default/debug/ADC.o.d build/default/debug/ADC.o: ADC.c ADC.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
RegEdit.h c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h
ADC.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:

Binary file not shown.

View file

@ -1,19 +0,0 @@
build/default/debug/RegEdit.o.d build/default/debug/RegEdit.o: RegEdit.c \
RegEdit.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:

Binary file not shown.

View file

@ -1,52 +0,0 @@
build/default/debug/TriacOut.o.d build/default/debug/TriacOut.o: \
TriacOut.c \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
TriacOut.h RegEdit.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
TriacOut.h:
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:

Binary file not shown.

View file

@ -1,67 +0,0 @@
build/default/debug/main.o.d build/default/debug/main.o: main.c config.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
RegEdit.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
zero_cross_detection.h ADC.h TriacOut.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h
config.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
RegEdit.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
zero_cross_detection.h:
ADC.h:
TriacOut.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\io.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\sfr_defs.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\inttypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\features.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/xc8/avr/include/avr/iotn404.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\portpins.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\common.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\xmega.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\fuse.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\avr\lock.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\util\delay_basic.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\math.h:

View file

@ -1,23 +0,0 @@
build/default/debug/zero_cross_detection.o.d \
build/default/debug/zero_cross_detection.o: zero_cross_detection.c \
zero_cross_detection.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h \
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h \
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h \
ADC.h
zero_cross_detection.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\alltypes.h:
c:\program\ files\microchip\xc8\v2.46\avr\avr\include\bits\stdint.h:
c:\program\ files\microchip\xc8\v2.46\avr\lib\gcc\avr\5.4.0\include\stdbool.h:
ADC.h:

Binary file not shown.

View file

@ -1,29 +0,0 @@
build/default/production/ADC.o.d build/default/production/ADC.o: ADC.c \
ADC.h C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h RegEdit.h \
C:/Program\ Files/avr-gcc/avr/include/avr/io.h \
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h \
C:/Program\ Files/avr-gcc/avr/include/inttypes.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h \
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h \
C:/Program\ Files/avr-gcc/avr/include/avr/common.h \
C:/Program\ Files/avr-gcc/avr/include/avr/version.h \
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h \
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h \
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h
ADC.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:
RegEdit.h:
C:/Program\ Files/avr-gcc/avr/include/avr/io.h:
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h:
C:/Program\ Files/avr-gcc/avr/include/inttypes.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h:
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h:
C:/Program\ Files/avr-gcc/avr/include/avr/common.h:
C:/Program\ Files/avr-gcc/avr/include/avr/version.h:
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h:
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h:
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h:

Binary file not shown.

View file

@ -1,9 +0,0 @@
build/default/production/RegEdit.o.d build/default/production/RegEdit.o: \
RegEdit.c RegEdit.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h
RegEdit.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:

Binary file not shown.

View file

@ -1,29 +0,0 @@
build/default/production/TriacOut.o.d build/default/production/TriacOut.o: \
TriacOut.c C:/Program\ Files/avr-gcc/avr/include/avr/io.h \
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h \
C:/Program\ Files/avr-gcc/avr/include/inttypes.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h \
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h \
C:/Program\ Files/avr-gcc/avr/include/avr/common.h \
C:/Program\ Files/avr-gcc/avr/include/avr/version.h \
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h \
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h \
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h TriacOut.h RegEdit.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h
C:/Program\ Files/avr-gcc/avr/include/avr/io.h:
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h:
C:/Program\ Files/avr-gcc/avr/include/inttypes.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h:
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h:
C:/Program\ Files/avr-gcc/avr/include/avr/common.h:
C:/Program\ Files/avr-gcc/avr/include/avr/version.h:
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h:
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h:
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h:
TriacOut.h:
RegEdit.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:

Binary file not shown.

View file

@ -1,37 +0,0 @@
build/default/production/main.o.d build/default/production/main.o: main.c \
config.h C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h RegEdit.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h \
zero_cross_detection.h ADC.h TriacOut.h \
C:/Program\ Files/avr-gcc/avr/include/avr/io.h \
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h \
C:/Program\ Files/avr-gcc/avr/include/inttypes.h \
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h \
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h \
C:/Program\ Files/avr-gcc/avr/include/avr/common.h \
C:/Program\ Files/avr-gcc/avr/include/avr/version.h \
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h \
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h \
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h \
C:/Program\ Files/avr-gcc/avr/include/util/delay.h \
C:/Program\ Files/avr-gcc/avr/include/util/delay_basic.h
config.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
RegEdit.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:
zero_cross_detection.h:
ADC.h:
TriacOut.h:
C:/Program\ Files/avr-gcc/avr/include/avr/io.h:
C:/Program\ Files/avr-gcc/avr/include/avr/sfr_defs.h:
C:/Program\ Files/avr-gcc/avr/include/inttypes.h:
C:/Program\ Files/Microchip/MPLABX/v6.20/packs/Microchip/ATtiny_DFP/3.1.260/include/avr/iotn404.h:
C:/Program\ Files/avr-gcc/avr/include/avr/portpins.h:
C:/Program\ Files/avr-gcc/avr/include/avr/common.h:
C:/Program\ Files/avr-gcc/avr/include/avr/version.h:
C:/Program\ Files/avr-gcc/avr/include/avr/xmega.h:
C:/Program\ Files/avr-gcc/avr/include/avr/fuse.h:
C:/Program\ Files/avr-gcc/avr/include/avr/lock.h:
C:/Program\ Files/avr-gcc/avr/include/util/delay.h:
C:/Program\ Files/avr-gcc/avr/include/util/delay_basic.h:

View file

@ -1,11 +0,0 @@
build/default/production/zero_cross_detection.o.d \
build/default/production/zero_cross_detection.o: zero_cross_detection.c \
zero_cross_detection.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h \
C:/Program\ Files/avr-gcc/avr/include/stdint.h \
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h ADC.h
zero_cross_detection.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdint.h:
C:/Program\ Files/avr-gcc/avr/include/stdint.h:
C:/Program\ Files/avr-gcc/lib/gcc/avr/14.1.0/include/stdbool.h:
ADC.h:

View file

@ -5,3 +5,8 @@ add_library(MockRegEdit STATIC
target_include_directories(MockRegEdit PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
target_link_libraries(MockRegEdit
${CPPUTEST_LIBRARIES}/libCppUTest.a
${CPPUTEST_LIBRARIES}/libCppUTestExt.a
)

View file

@ -71,3 +71,12 @@ void RegEdit_SetNum(void *reg, uint8_t num)
->withPointerParameters("reg", reg)
->withUnsignedIntParameters("num", num);
}
uint8_t RegEdit_ReadReg(void *reg)
{
mock_c()->actualCall("RegEdit_ReadReg")
->withPointerParameters("reg", reg)
->returnUnsignedIntValueOrDefault(0);
//Return value is mock controlled. So it does actually return a uint8_t
}

View file

@ -25,4 +25,6 @@ void RegEdit_AND_Num(void *reg, uint8_t num);
void RegEdit_SetNum(void *reg, uint8_t num);
uint8_t RegEdit_ReadReg(void *reg);
#endif //MOCKREGEDIT_H

View file

@ -3,7 +3,10 @@
<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:/home/ronin/Documents/projects/freelance/laith_naaman/fg004a_test.X/main.c</file>
<file>file:/home/ronin/Documents/projects/freelance/laith_naaman/fg004a_test.X/src/load/load.c</file>
<file>file:/home/ronin/Documents/projects/freelance/laith_naaman/fg004a_test.X/src/zero_cross_detection/zero_cross_detection.c</file>
<file>file:/home/ronin/Documents/projects/freelance/laith_naaman/fg004a_test.X/src/main.c</file>
<file>file:/home/ronin/Documents/projects/freelance/laith_naaman/fg004a_test.X/src/usart/usart.c</file>
</group>
</open-files>
</project-private>

View file

@ -5,6 +5,10 @@
* description: module_purpose
*/
#ifndef __AVR_ATtiny404__
#define __AVR_ATtiny404__
#endif
#include "ADC.h"
#include "RegEdit.h"
#include "avr/io.h"
@ -22,12 +26,13 @@ static bool IsInvalidPin(uint8_t pin_num){
void ADC_Init(uint8_t pin_num)
{
//Save the porta status.
porta_out = PORTA.OUT;
porta_dir = PORTA.DIR;
if(IsInvalidPin(pin_num)){return;}
//Save the porta status.
porta_out = RegEdit_ReadReg((void *) &PORTA.OUT);
porta_dir = RegEdit_ReadReg((void *) &PORTA.DIR);
//set the direction to input
RegEdit_SetBit((void *) &PORTA.DIRCLR, pin_num);
@ -42,17 +47,12 @@ void ADC_Init(uint8_t pin_num)
(void *) (&PORTA.PIN0CTRL)+pin_num,
PORT_ISC_INPUT_DISABLE_gc
);
/*
RegEdit_OR_Num(
(void *) (&PORTA.PIN0CTRL)+pin_num,
PORT_ISC_INPUT_DISABLE_gc
);*/
//Ensure we use full 10bit resolution
RegEdit_ClearBit((void *) &ADC0.CTRLA, 2);
//RegEdit_ClearBit((void *) &ADC0.CTRLA, 2);
//Use VDD as our voltage refernce.
RegEdit_SetBit((void *) &ADC0.CTRLC, 4);
//RegEdit_SetBit((void *) &ADC0.CTRLC, 4);
}
@ -78,8 +78,8 @@ void ADC_Disable()
RegEdit_ClearBit((void *) &ADC0.CTRLA, 0);
//Restore the port registers
PORTA.OUT = porta_out;
PORTA.DIR = porta_dir;
RegEdit_SetNum((void *) &PORTA.OUT, porta_out);
RegEdit_SetNum((void *) &PORTA.DIR, porta_dir);
}

View file

@ -56,3 +56,10 @@ void RegEdit_SetNum(void *reg, uint8_t num)
uint8_t *reg_ptr = (uint8_t *)reg;
*reg_ptr = num;
}
uint8_t RegEdit_ReadReg(void *reg)
{
uint8_t *reg_ptr = (uint8_t *)reg;
return *reg_ptr;
}

View file

@ -69,4 +69,10 @@ void RegEdit_AND_Num(void *reg, uint8_t num);
*/
void RegEdit_SetNum(void *reg, uint8_t num);
/**
*
* @param reg The register address.
*/
uint8_t RegEdit_ReadReg(void *reg);
#endif //REGEDIT_H

View file

@ -12,15 +12,6 @@
#include "TriacOut.h"
#include "RegEdit.h"
void Delay_MicroSeconds_impl(double us){
return;
}
//Delay_MicroSeconds =
//void (*Delay_MicroSeconds)(double us) = Delay_MicroSeconds_impl;
void (*Delay_MicroSecnds)(double us) = Delay_MicroSeconds_impl;
void TriacOut_InitTimerA(void)
{
@ -45,12 +36,9 @@ void TriacOut_SetAllHigh(void)
void TriacOut_PulsePins(uint16_t pulse_time)
{
Delay_MicroSeconds(pulse_time);
Delay_MicroSeconds(pulse_time);
RegEdit_ClearBit((void *) &PORTA.OUT, G1);
RegEdit_ClearBit((void *) &PORTB.OUT, G2);
RegEdit_ClearBit((void *) &PORTB.OUT, G3);
}

View file

@ -44,4 +44,5 @@ void TriacOut_SetupPins(void);
void TriacOut_SetAllHigh(void);
#endif //TRIACOUT_H

View file

@ -15,6 +15,8 @@
#include "MockADC/MockADC.h"
#endif
#define ZCD_PIN 0x07
void ZCD_Setup(void)
{
ADC_Init(7);
@ -25,11 +27,11 @@ bool ZCD_IsTriggered()
{
uint16_t first, second;
ZCD_Setup();
first = ADC_ReadValue(7);
first = ADC_ReadValue(ZCD_PIN);
ADC_Disable();
ZCD_Setup();
second = ADC_ReadValue(7);
second = ADC_ReadValue(ZCD_PIN);
ADC_Disable();
if(second < TRIGGERVAL){

View file

@ -37,9 +37,20 @@ TEST(test_ADC, FirstTest)
CHECK(true);
}
static void ADCStoresPortState(void){
mock().expectOneCall("RegEdit_ReadReg")
.withPointerParameter("reg", (void *) &PORTA.OUT)
.andReturnValue(0xFF);
mock().expectOneCall("RegEdit_ReadReg")
.withPointerParameter("reg", (void *) &PORTA.DIR)
.andReturnValue(0xFF);
}
TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
{
ADCStoresPortState();
//Check for setting the direction to input.
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.DIRCLR)
@ -52,27 +63,19 @@ TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
//Set the ISC(input sense config) to disable digital input
//buffering and reduce the noise on ADC usage.
mock().expectOneCall("RegEdit_OR_Num")
.withPointerParameter("reg", (void *) &PORTA.PIN7CTRL)
.withUnsignedIntParameter("num", 0x4);
//check that the resolusion is selected
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
.withUnsignedIntParameter("bit_num", 2);
//check for the seleceted refernce voltage
//we leave the adc prescaler alone mostly.
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLC)
.withUnsignedIntParameter("bit_num", 4);
.withPointerParameter("reg", (void *) &PORTA.PIN7CTRL)
.withUnsignedIntParameter("bit_num", PORT_ISC_INPUT_DISABLE_gc);
ADC_Init(7);
}
TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
{
ADCStoresPortState();
//Check for setting the direction to input.
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.DIRCLR)
@ -85,20 +88,9 @@ TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
//Set the ISC(input sense config) to disable digital input
//buffering and reduce the noise on ADC usage.
mock().expectOneCall("RegEdit_OR_Num")
.withPointerParameter("reg", (void *) &PORTA.PIN0CTRL)
.withUnsignedIntParameter("num", 0x4);
//check that the resolusion is selected
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
.withUnsignedIntParameter("bit_num", 2);
//check for the seleceted refernce voltage
//we leave the adc prescaler alone mostly.
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLC)
.withUnsignedIntParameter("bit_num", 4);
.withPointerParameter("reg", (void *) &PORTA.PIN0CTRL)
.withUnsignedIntParameter("bit_num", PORT_ISC_INPUT_DISABLE_gc);
ADC_Init(0);
}
@ -128,6 +120,7 @@ TEST(test_ADC, ADC_EnableSuccessOnPin7)
TEST(test_ADC, ADC_EnableNothingOnHighPinNumbers)
{
mock().expectNoCall("RegEdit_SetBit");
ADC_Enable(8);
}
@ -141,7 +134,14 @@ TEST(test_ADC, ADC_DisablePasses)
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
.withUnsignedIntParameter("bit_num", 0);
mock().expectOneCall("RegEdit_SetNum")
.withPointerParameter("reg", (void*) &PORTA.OUT)
.ignoreOtherParameters();
mock().expectOneCall("RegEdit_SetNum")
.withPointerParameter("reg", (void*) &PORTA.DIR)
.ignoreOtherParameters();
ADC_Disable();
}

View file

@ -44,5 +44,7 @@ add_executable(TriacTests
)
target_link_libraries(TriacTests
${CPPUTEST_LIBRARIES}/libCppUTest.a
${CPPUTEST_LIBRARIES}/libCppUTestExt.a
test_TriacOut
)

View file

@ -151,3 +151,18 @@ TEST(test_MockRegEdit, RegEdit_SetNumPasses)
mock().checkExpectations();
}
TEST(test_MockRegEdit, RegEdit_ReadRegPasses)
{
uint8_t a = 0xFF;
uint8_t *b = &a;
mock().expectOneCall("RegEdit_ReadReg")
.withPointerParameter("reg", b)
.andReturnValue(0xFF);
uint8_t reg_val = RegEdit_ReadReg(b);
LONGS_EQUAL(0xFF, reg_val);
mock().checkExpectations();
}

View file

@ -42,57 +42,50 @@ TEST(test_TriacOut, TriacOut_SetupPins)
//Expect that pin PA1 is set to output
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.DIR)
.withUnsignedIntParameter("bit_num", (1<<1));
.withUnsignedIntParameter("bit_num", G1);
//Expect that pin PB3 is set to output
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTB.DIR)
.withUnsignedIntParameter("bit_num", (1<<3));
.withUnsignedIntParameter("bit_num", G2);
//Expect that pin PB2 is set to output
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTB.DIR)
.withUnsignedIntParameter("bit_num", (1<<2));
.withUnsignedIntParameter("bit_num", G3);
TriacOut_SetupPins();
}
/*
TEST(test_TriacOut, TriacOut_SetAllHigh)
{
//Expect that pin PA1 is set to output
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTA.OUT)
.withUnsignedIntParameter("bit_num", (1<<1));
.withUnsignedIntParameter("bit_num", G1);
//Expect that pin PB3 is set to output
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTB.OUT)
.withUnsignedIntParameter("bit_num", (1<<3));
.withUnsignedIntParameter("bit_num", G2);
//Expect that pin PB2 is set to output
mock().expectOneCall("RegEdit_SetBit")
.withPointerParameter("reg", (void *) &PORTB.OUT)
.withUnsignedIntParameter("bit_num", (1<<2));
.withUnsignedIntParameter("bit_num", G3);
TriacOut_SetAllHigh();
}
*/
/*
TEST(test_TriacOut, TriacOut_InitTimerA)
{
}
void FakeDelay(double us)
{
//do Nothing.
}
*/
/*
TEST(test_TriacOut, TriacOut_PulsePins)
{
UT_PTR_SET(Delay_MicroSeconds, FakeDelay);
@ -101,19 +94,17 @@ TEST(test_TriacOut, TriacOut_PulsePins)
//Expect that pin PA1 is set to output
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTA.OUT)
.withUnsignedIntParameter("bit_num", (1<<1));
.withUnsignedIntParameter("bit_num", G1);
//Expect that pin PB3 is set to output
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTB.OUT)
.withUnsignedIntParameter("bit_num", (1<<3));
.withUnsignedIntParameter("bit_num", G2);
//Expect that pin PB2 is set to output
mock().expectOneCall("RegEdit_ClearBit")
.withPointerParameter("reg", (void *) &PORTB.OUT)
.withUnsignedIntParameter("bit_num", (1<<2));
.withUnsignedIntParameter("bit_num", G3);
TriacOut_PulsePins(1000);
}
*/

View file

@ -32,23 +32,50 @@ TEST_GROUP(test_zero_cross_detection)
}
};
TEST(test_zero_cross_detection, ZCD_SetupCallsCorrectFuncs)
static void ZCDSetupExpectations(void)
{
mock().expectOneCall("ADC_Init")
.withUnsignedIntParameter("pin_num", 7);
mock().expectOneCall("ADC_Enable")
.withUnsignedIntParameter("pin_num", 7);
}
static void PollIterationExpectations(void)
{
ZCDSetupExpectations();
mock().expectOneCall("ADC_ReadValue_Impl")
.withUnsignedIntParameter("pin_num", 7)
.ignoreOtherParameters();
mock().expectOneCall("ADC_Disable");
ZCDSetupExpectations();
mock().expectOneCall("ADC_ReadValue_Impl")
.withUnsignedIntParameter("pin_num", 7)
.ignoreOtherParameters();
mock().expectOneCall("ADC_Disable");
}
TEST(test_zero_cross_detection, ZCD_SetupCallsCorrectFuncs)
{
ZCDSetupExpectations();
ZCD_Setup();
}
TEST(test_zero_cross_detection, ZCD_IsTriggeredCallsCorrectFunctions)
{
MockADC_ZeroIndex();
mock().expectNCalls(2, "ADC_ReadValue_Impl")
.withUnsignedIntParameter("pin_num", 7);
PollIterationExpectations();
CHECK_FALSE(ZCD_IsTriggered());
}
@ -57,12 +84,11 @@ TEST(test_zero_cross_detection, ZCD_IsTriggeredCallsCorrectFunctions)
TEST(test_zero_cross_detection, ZCD_IsTriggerdTrueWhenRising)
{
MockADC_ZeroIndex();
MockADC_PushValue(512);
MockADC_PushValue(450);
mock().expectNCalls(2, "ADC_ReadValue_Impl")
.withUnsignedIntParameter("pin_num", 7)
.ignoreOtherParameters();
PollIterationExpectations();
CHECK_TRUE(ZCD_IsTriggered());
}
@ -72,15 +98,13 @@ TEST(test_zero_cross_detection, ZCD_PollWorksAfterCalls)
{
MockADC_ZeroIndex();
MockADC_PushValue(512);
MockADC_PushValue(450);
MockADC_PushValue(50);
MockADC_PushValue(50);
mock().expectNCalls(4, "ADC_ReadValue_Impl")
.withUnsignedIntParameter("pin_num", 7)
.ignoreOtherParameters();
PollIterationExpectations();
PollIterationExpectations();
ZCD_Poll();
}