Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion Inc/HALALMock/Models/PinModel/Pin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
} ;
Expand All @@ -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;
Expand Down
12 changes: 1 addition & 11 deletions Inc/HALALMock/Services/ADC/ADC.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions Src/HALALMock/Services/InputCapture/InputCapture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand Down
8 changes: 4 additions & 4 deletions Tests/InputCaptureTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand Down
42 changes: 21 additions & 21 deletions Tests/Runes/SimRunes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,27 +44,27 @@ std::unordered_map<Pin, size_t> SHM::pin_offsets = {
***********************************************/

std::map<Pin, ADC::Instance> 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
Expand Down
Loading