Class ArchAVR_ADC

Inheritance Relationships

Base Types

Class Documentation

class ArchAVR_ADC : public ADC, public Peripheral, public SignalHook

Implementation of an ADC for AVR series.

Limitations:

  • No automatic start on ADR Noise Reduction sleep mode

  • No digital input disabling

CTLREQs supported:

  • AVR_CTLREQ_GET_SIGNAL : returns a pointer to the instance signal

  • AVR_CTLREQ_ADC_SET_TEMP : Sets the temperature reported by the internal sensor. The reqdata should carry the temperature in Celsius as a double.

  • AVR_CTLREQ_ADC_TRIGGER : Allows other peripherals to trigger a conversion. The trigger only works when the ADC is enabled and idle, auto-trigger is enabled and an external trigger source is selected.

Public Functions

ArchAVR_ADC(int num, const ArchAVR_ADCConfig &config)
virtual bool init(Device &device) override

Virtual method called when the device is initialised. This is where the peripheral can allocate its I/O registers, interrupts or connect signals.

Returns:

boolean indicates the success of all allocations.

virtual void reset() override

Virtual method called when the device is reset. Note that resetting I/O registers is only necessary here if their reset value is not zero.

virtual bool ctlreq(ctlreq_id_t req, ctlreq_data_t *data) override

Virtual method called for a CTL request. The method must return true if the request has been processed.

virtual uint8_t ioreg_read_handler(reg_addr_t addr, uint8_t value) override

Virtual method called when the CPU is reading a I/O register allocated by this peripheral. The value has not been read yet so the module can modify it before the CPU gets it.

Parameters:

addr – the register address in I/O space

virtual void ioreg_write_handler(reg_addr_t addr, const ioreg_write_t &data) override

Virtual method called when the CPU is writing a I/O register allocated by this peripheral. The value has already been written.

Parameters:
  • addr – the register address in I/O space

  • value – the new register content

virtual void sleep(bool on, SleepMode mode) override

Virtual method called when the device enters or exits a sleep mode.

Parameters:
  • on – true when entering a sleep mode, false when exiting it.

  • mode – one of the enum SleepMode values

virtual void raised(const signal_data_t &sigdata, int hooktag) override

Pure virtual callback called during signal raises.

Parameters:
  • sigdata – Data structure passed on when raising a signal

  • hooktag – integer passed on when connecting a hook to a signal. For hooks connected to several signals, it provides a mean to identify the caller.