| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #pragma once
- #include <stdint.h>
- #ifndef MECOFFEE_ARDUINO_16MHZ
- #define MECOFFEE_ARDUINO_16MHZ 0
- #endif
- namespace meCoffee::hardware::board {
- constexpr bool kUsesExternalClock = MECOFFEE_ARDUINO_16MHZ != 0;
- constexpr uint32_t kClockFrequency = kUsesExternalClock ? 16000000UL : 8000000UL;
- constexpr uint16_t kPulseTimerCompare = static_cast<uint16_t>(129UL * (kClockFrequency / 8000000UL) - 1);
- constexpr uint8_t kAdcPrescaler = 128;
- constexpr uint8_t kGenerationParityPin = kUsesExternalClock ? 11 : 14;
- inline uint8_t physicalPin(uint8_t logicalPin) {
- if (!kUsesExternalClock) {
- return logicalPin;
- }
- switch (logicalPin) {
- case 3: return 3;
- case 10: return 4;
- case 9: return 5;
- case 4: return 6;
- case 5: return 7;
- case 8: return 8;
- case 15: return 9;
- case 19: return 10;
- case 16: return 12;
- default: return logicalPin;
- }
- }
- inline uint8_t analogChannel(uint8_t logicalChannel) {
- if (kUsesExternalClock) {
- if (logicalChannel == 3) {
- return 0;
- }
- if (logicalChannel == 4) {
- return 1;
- }
- }
- return logicalChannel;
- }
- } // namespace meCoffee::hardware::board
|