I2C tested, main file now contains rough sample for use with DHT20
This commit is contained in:
@@ -24,6 +24,13 @@ void SHAL_init();
|
||||
|
||||
typedef bool (*condition_fn_t)(void);
|
||||
|
||||
#define SHAL_WAIT_FOR_CONDITION_US(cond, timeout_us) \
|
||||
SHAL_wait_for_condition_us([&](){ return (cond); }, (timeout_us))
|
||||
|
||||
#define SHAL_WAIT_FOR_CONDITION_MS(cond, timeout_ms) \
|
||||
SHAL_wait_for_condition_ms([&](){ return (cond); }, (timeout_ms))
|
||||
|
||||
|
||||
|
||||
//Currently configures systick to count down in microseconds
|
||||
void systick_init();
|
||||
@@ -33,9 +40,27 @@ void SHAL_delay_us(uint32_t us);
|
||||
|
||||
void SHAL_delay_ms(uint32_t ms);
|
||||
|
||||
bool SHAL_wait_for_condition_us(condition_fn_t condition, uint32_t timeout_us);
|
||||
template<typename Condition>
|
||||
bool SHAL_wait_for_condition_us(Condition cond, uint32_t timeout_us) {
|
||||
while (timeout_us--) {
|
||||
if (cond()) {
|
||||
return true; // success
|
||||
}
|
||||
SHAL_delay_us(1);
|
||||
}
|
||||
return false; // timeout
|
||||
}
|
||||
|
||||
bool SHAL_wait_for_condition_ms(condition_fn_t condition, uint32_t timeout_ms);
|
||||
template<typename Condition>
|
||||
bool SHAL_wait_for_condition_ms(Condition cond, uint32_t timeout_ms) {
|
||||
while (timeout_ms--) {
|
||||
if (cond()) {
|
||||
return true; // success
|
||||
}
|
||||
SHAL_delay_ms(1);
|
||||
}
|
||||
return false; // timeout
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user