diff options
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestAdcTemperatureSensor.c')
-rw-r--r-- | FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestAdcTemperatureSensor.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestAdcTemperatureSensor.c b/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestAdcTemperatureSensor.c new file mode 100644 index 000000000..0be339ff2 --- /dev/null +++ b/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestAdcTemperatureSensor.c @@ -0,0 +1,47 @@ +#include "unity.h" +#include "Types.h" +#include "AdcTemperatureSensor.h" +#include "AT91SAM7X256.h" + +AT91S_ADC AdcPeripheral; + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void testShouldStartTemperatureSensorConversionWhenTriggered(void) +{ + AT91C_BASE_ADC->ADC_CR = 0; + Adc_StartTemperatureSensorConversion(); + TEST_ASSERT_EQUAL(AT91C_ADC_START, AT91C_BASE_ADC->ADC_CR); +} + +void testTemperatureSensorSampleReadyShouldReturnChannelConversionCompletionStatus(void) +{ + AT91C_BASE_ADC->ADC_SR = 0; + TEST_ASSERT_EQUAL(FALSE, Adc_TemperatureSensorSampleReady()); + AT91C_BASE_ADC->ADC_SR = ~AT91C_ADC_EOC4; + TEST_ASSERT_EQUAL(FALSE, Adc_TemperatureSensorSampleReady()); + AT91C_BASE_ADC->ADC_SR = AT91C_ADC_EOC4; + TEST_ASSERT_EQUAL(TRUE, Adc_TemperatureSensorSampleReady()); + AT91C_BASE_ADC->ADC_SR = 0xffffffff; + TEST_ASSERT_EQUAL(TRUE, Adc_TemperatureSensorSampleReady()); +} + +void testReadTemperatureSensorShouldFetchAndTranslateLatestReadingToMillivolts(void) +{ + uint16 result; + + // ADC bit weight at 10-bit resolution with 3.0V reference = 2.9296875 mV/LSB + AT91C_BASE_ADC->ADC_CDR4 = 138; + result = Adc_ReadTemperatureSensor(); + TEST_ASSERT_EQUAL(404, result); + + AT91C_BASE_ADC->ADC_CDR4 = 854; + result = Adc_ReadTemperatureSensor(); + TEST_ASSERT_EQUAL(2502, result); +} |