Skip to content

Commit

Permalink
atmega164pa: Add ADC functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
omunz authored and tronje committed Jan 9, 2024
1 parent f7c9511 commit f301585
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions mcu/atmega-hal/src/adc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ pub mod channel {
feature = "atmega128a",
feature = "atmega1284p",
feature = "atmega8",
feature = "atmega164pa",
))]
pub struct Vbg;
#[cfg(any(
Expand All @@ -124,6 +125,7 @@ pub mod channel {
feature = "atmega128a",
feature = "atmega1284p",
feature = "atmega8",
feature = "atmega164pa",
))]
pub struct Gnd;
#[cfg(any(
Expand Down Expand Up @@ -345,3 +347,29 @@ avr_hal_generic::impl_adc! {
channel::Gnd: crate::pac::adc::admux::MUX_A::ADC_GND,
},
}

#[cfg(any(feature = "atmega164pa"))]
avr_hal_generic::impl_adc! {
hal: crate::Atmega,
peripheral: crate::pac::ADC,
settings: AdcSettings,
apply_settings: |peripheral, settings| { apply_settings(peripheral, settings) },
channel_id: crate::pac::adc::admux::MUX_A,
set_channel: |peripheral, id| {
peripheral.admux.modify(|_, w| w.mux().variant(id));
},
pins: {
port::PA0: (crate::pac::adc::admux::MUX_A::ADC0, didr0::adc0d),
port::PA1: (crate::pac::adc::admux::MUX_A::ADC1, didr0::adc1d),
port::PA2: (crate::pac::adc::admux::MUX_A::ADC2, didr0::adc2d),
port::PA3: (crate::pac::adc::admux::MUX_A::ADC3, didr0::adc3d),
port::PA4: (crate::pac::adc::admux::MUX_A::ADC4, didr0::adc4d),
port::PA5: (crate::pac::adc::admux::MUX_A::ADC5, didr0::adc5d),
port::PA6: (crate::pac::adc::admux::MUX_A::ADC6, didr0::adc6d),
port::PA7: (crate::pac::adc::admux::MUX_A::ADC7, didr0::adc7d),
},
channels: {
channel::Vbg: crate::pac::adc::admux::MUX_A::ADC_VBG,
channel::Gnd: crate::pac::adc::admux::MUX_A::ADC_GND,
},
}

0 comments on commit f301585

Please sign in to comment.