/* * peripherals_utility.hpp * * Created on: Feb 24, 2021 * Author: erki */ #ifndef PERIPHERALS_UTILITY_HPP_ #define PERIPHERALS_UTILITY_HPP_ #include #include "peripherals_config.hpp" namespace Peripherals { void Initialize(); #ifdef PERIPHERALS_USE_DELAY_US void DelayUs(const std::uint32_t micros); #endif template constexpr const T& Clamp(const T& v, const T& lo, const T& hi) { if (v > hi) return hi; else if (v < lo) return lo; else return v; } template T ByteToTypeBE(const std::uint8_t a[N]) { T t(0); for (std::size_t i = 0; i < N; i++) { t |= a[i] << (i * 8); } return t; } template T ByteToTypeLE(const std::uint8_t a[N]) { T t(0); for (std::size_t i = N; i >= 0; i--) { t |= a[i] << ((i - 1) * 8); } return t; } } #endif /* PERIPHERALS_UTILITY_HPP_ */