Update develop. Ready for pre-release v0.4 #49

Merged
mhu merged 22 commits from dev into master 2022-12-31 20:39:52 +01:00
Showing only changes of commit ad3de6e6b7 - Show all commits

View File

@ -34,7 +34,8 @@
enum hw_revision get_pcb_hardware_version(void) enum hw_revision get_pcb_hardware_version(void)
{ {
uint8_t current_pin; uint8_t current_pin;
uint16_t port_bitmask = 0U; uint16_t port_bitmask = 0U; /* Use uint16_t because a port can have 16 IOs max. */
const uint16_t highest_bit_mask = (1 << (HW_REV_DETECT_PIN_HIGH - HW_REV_DETECT_PIN_LOW));
static enum hw_revision revision = HW_REV_NOT_DETECTED; static enum hw_revision revision = HW_REV_NOT_DETECTED;
/* If the revision has been previously detected, /* If the revision has been previously detected,
@ -57,7 +58,7 @@ enum hw_revision get_pcb_hardware_version(void)
*/ */
for (current_pin = HW_REV_DETECT_PIN_LOW; current_pin <= HW_REV_DETECT_PIN_HIGH; current_pin++) { for (current_pin = HW_REV_DETECT_PIN_LOW; current_pin <= HW_REV_DETECT_PIN_HIGH; current_pin++) {
port_bitmask >>= 1; port_bitmask >>= 1;
port_bitmask |= (HW_REV_DETECT_GPIO->IDR & (1 << current_pin)) ? 0x0 : 0x80; port_bitmask |= (HW_REV_DETECT_GPIO->IDR & (1 << current_pin)) ? 0x0 : highest_bit_mask;
} }
/* Resolve the read in bitmask to a hardware version */ /* Resolve the read in bitmask to a hardware version */