diff --git a/Inc/HALALMock/Models/PinModel/Pin.hpp b/Inc/HALALMock/Models/PinModel/Pin.hpp index cd58569c0..631bc155c 100644 --- a/Inc/HALALMock/Models/PinModel/Pin.hpp +++ b/Inc/HALALMock/Models/PinModel/Pin.hpp @@ -95,6 +95,18 @@ enum class PinType: uint8_t { // TODO: Add more types }; + +/// In STM32H723ZG, the ADC1 and ADC2 has 16 bits as their maximum + /// resolution, while the ADC3 has 12 bits. Both of them can be configured + /// to has less resolution than its maximum + enum class ADCResolution : uint32_t { + ADC_RES_16BITS = 0x00000000, + ADC_RES_14BITS = 0x00000004, + ADC_RES_12BITS = 0x00000008, + ADC_RES_10BITS = 0x0000000C + }; + + struct __attribute__((packed)) DigitalOutput_MockPin{ bool state; } ; @@ -116,7 +128,7 @@ struct __attribute__((packed)) DualPWM_MockPin{ struct __attribute__((packed)) ADC_MockPin{ uint16_t value; bool is_on; - ADC::ADCResolution resolution; + ADCResolution resolution; } ; struct __attribute__((packed)) EXTIPin_MockPin{ uint32_t priority; diff --git a/Inc/HALALMock/Services/ADC/ADC.hpp b/Inc/HALALMock/Services/ADC/ADC.hpp index f61a0e2fe..08949cf06 100644 --- a/Inc/HALALMock/Services/ADC/ADC.hpp +++ b/Inc/HALALMock/Services/ADC/ADC.hpp @@ -28,17 +28,7 @@ using std::string; class ADC { public: - /// In STM32H723ZG, the ADC1 and ADC2 has 16 bits as their maximum - /// resolution, while the ADC3 has 12 bits. Both of them can be configured - /// to has less resolution than its maximum - enum class ADCResolution : uint32_t { - ADC_RES_16BITS = 0x00000000, - ADC_RES_14BITS = 0x00000004, - ADC_RES_12BITS = 0x00000008, - ADC_RES_10BITS = 0x0000000C - }; - - + //modified the Instance to store the resolution, as this is Pin and even //routing specific, should be defined in config file by user. // the new map will be slightly different though, in order to remove all the dependencies diff --git a/Src/HALALMock/Services/InputCapture/InputCapture.cpp b/Src/HALALMock/Services/InputCapture/InputCapture.cpp index 8a59bdb7b..13c6a57f8 100644 --- a/Src/HALALMock/Services/InputCapture/InputCapture.cpp +++ b/Src/HALALMock/Services/InputCapture/InputCapture.cpp @@ -70,7 +70,7 @@ uint32_t InputCapture::read_frequency(uint8_t id) { return 0; } Instance& instance = active_instances[id]; - if(!instance.is_active) + if(!instance.is_on) { return 0; } @@ -84,7 +84,7 @@ uint8_t InputCapture::read_duty_cycle(uint8_t id) { return 0; } Instance& instance = active_instances[id]; - if(!instance.is_active) + if(!instance.is_on) { return 0; } diff --git a/Tests/InputCaptureTest.cpp b/Tests/InputCaptureTest.cpp index bd1b57458..010387671 100644 --- a/Tests/InputCaptureTest.cpp +++ b/Tests/InputCaptureTest.cpp @@ -56,10 +56,10 @@ TEST(InputCapture, TurnOn){ EmulatedPin &pin = SharedMemory::get_pin(PF0); bool is_on; - is_on = InputCapture::active_instances[id1].is_active; + is_on = InputCapture::active_instances[id1].is_on; ASSERT_FALSE(is_on); InputCapture::turn_on(id1); - is_on = InputCapture::active_instances[id1].is_active; + is_on = InputCapture::active_instances[id1].is_on; ASSERT_TRUE(is_on); SharedMemory::close(); @@ -74,12 +74,12 @@ TEST(InputCapture, TurnOff){ InputCapture::turn_on(id1); bool is_on; - is_on = InputCapture::active_instances[id1].is_active; + is_on = InputCapture::active_instances[id1].is_on; InputCapture::turn_on(id1); ASSERT_TRUE(is_on); InputCapture::turn_off(id1); - is_on = InputCapture::active_instances[id1].is_active; + is_on = InputCapture::active_instances[id1].is_on; ASSERT_FALSE(is_on); SharedMemory::close(); diff --git a/Tests/Runes/SimRunes.cpp b/Tests/Runes/SimRunes.cpp index 01ad96385..4dc7fead1 100644 --- a/Tests/Runes/SimRunes.cpp +++ b/Tests/Runes/SimRunes.cpp @@ -44,27 +44,27 @@ std::unordered_map SHM::pin_offsets = { ***********************************************/ std::map ADC::available_instances = { - {PF11, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PF12, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PF13, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PF14, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PF5, Instance(ADC::ADCResolution::ADC_RES_12BITS)}, - {PF6, Instance(ADC::ADCResolution::ADC_RES_12BITS)}, - {PF7, Instance(ADC::ADCResolution::ADC_RES_12BITS)}, - {PF8, Instance(ADC::ADCResolution::ADC_RES_12BITS)}, - {PF9, Instance(ADC::ADCResolution::ADC_RES_12BITS)}, - {PF10, Instance(ADC::ADCResolution::ADC_RES_12BITS)}, - {PC2, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PC3, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PF10, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PC0, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PA0, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PA3, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PA4, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PA5, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PA6, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PB0, Instance(ADC::ADCResolution::ADC_RES_16BITS)}, - {PB1, Instance(ADC::ADCResolution::ADC_RES_16BITS)}}; + {PF11, Instance(ADCResolution::ADC_RES_16BITS)}, + {PF12, Instance(ADCResolution::ADC_RES_16BITS)}, + {PF13, Instance(ADCResolution::ADC_RES_16BITS)}, + {PF14, Instance(ADCResolution::ADC_RES_16BITS)}, + {PF5, Instance(ADCResolution::ADC_RES_12BITS)}, + {PF6, Instance(ADCResolution::ADC_RES_12BITS)}, + {PF7, Instance(ADCResolution::ADC_RES_12BITS)}, + {PF8, Instance(ADCResolution::ADC_RES_12BITS)}, + {PF9, Instance(ADCResolution::ADC_RES_12BITS)}, + {PF10, Instance(ADCResolution::ADC_RES_12BITS)}, + {PC2, Instance(ADCResolution::ADC_RES_16BITS)}, + {PC3, Instance(ADCResolution::ADC_RES_16BITS)}, + {PF10, Instance(ADCResolution::ADC_RES_16BITS)}, + {PC0, Instance(ADCResolution::ADC_RES_16BITS)}, + {PA0, Instance(ADCResolution::ADC_RES_16BITS)}, + {PA3, Instance(ADCResolution::ADC_RES_16BITS)}, + {PA4, Instance(ADCResolution::ADC_RES_16BITS)}, + {PA5, Instance(ADCResolution::ADC_RES_16BITS)}, + {PA6, Instance(ADCResolution::ADC_RES_16BITS)}, + {PB0, Instance(ADCResolution::ADC_RES_16BITS)}, + {PB1, Instance(ADCResolution::ADC_RES_16BITS)}}; /************************************************ PWM