diff --git a/arduino-hal/Cargo.toml b/arduino-hal/Cargo.toml index 1f400c73f3..a3bf3693a4 100644 --- a/arduino-hal/Cargo.toml +++ b/arduino-hal/Cargo.toml @@ -19,6 +19,7 @@ critical-section-impl = ["avr-device/critical-section-impl"] board-selected = [] mcu-atmega = [] mcu-attiny = [] +internal-clock = [] arduino-diecimila = ["mcu-atmega", "atmega-hal/atmega168", "board-selected"] arduino-leonardo = ["mcu-atmega", "atmega-hal/atmega32u4", "board-selected"] arduino-mega2560 = ["mcu-atmega", "atmega-hal/atmega2560", "board-selected"] diff --git a/arduino-hal/src/clock.rs b/arduino-hal/src/clock.rs index 7c53088015..efe191e002 100644 --- a/arduino-hal/src/clock.rs +++ b/arduino-hal/src/clock.rs @@ -14,19 +14,38 @@ pub(crate) mod default { /// /// However, you can of course still use other clock speeds but you'll then need to correctly /// name the types from the HAL crate using your own clock definition. - #[cfg(any( - feature = "arduino-diecimila", - feature = "arduino-leonardo", - feature = "arduino-mega2560", - feature = "arduino-mega1280", - feature = "arduino-nano", - feature = "arduino-uno", - feature = "sparkfun-promicro", - feature = "sparkfun-promini-5v", - feature = "trinket-pro", - feature = "nano168", + #[cfg(all( + any( + feature = "arduino-diecimila", + feature = "arduino-leonardo", + feature = "arduino-mega2560", + feature = "arduino-mega1280", + feature = "arduino-nano", + feature = "arduino-uno", + feature = "sparkfun-promicro", + feature = "sparkfun-promini-5v", + feature = "trinket-pro", + feature = "nano168", + ), + not(feature = "internal-clock") ))] pub type DefaultClock = avr_hal_generic::clock::MHz16; + #[cfg(all( + any( + feature = "arduino-diecimila", + feature = "arduino-leonardo", + feature = "arduino-mega2560", + feature = "arduino-mega1280", + feature = "arduino-nano", + feature = "arduino-uno", + feature = "sparkfun-promicro", + feature = "sparkfun-promini-5v", + feature = "trinket-pro", + feature = "nano168", + ), + feature = "internal-clock" + ))] + pub type DefaultClock = avr_hal_generic::clock::MHz8; #[cfg(any(feature = "trinket", feature = "sparkfun-promini-3v3"))] pub type DefaultClock = avr_hal_generic::clock::MHz8; }