Class ArchAVR_TWI
Defined in File arch_avr_twi.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public Peripheral(Class Peripheral)
Class Documentation
-
class ArchAVR_TWI : public Peripheral
Implementation of a TWI model for the AVR series.
Public Functions
-
ArchAVR_TWI(uint8_t num, const ArchAVR_TWIConfig &config)
-
virtual ~ArchAVR_TWI()
-
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 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
-
class _Client : public TWI::Client
Public Functions
-
inline _Client(ArchAVR_TWI &per)
Protected Functions
-
inline virtual void set_line_state(TWI::Line line, bool dig_state) override
-
inline _Client(ArchAVR_TWI &per)
-
class _Host : public TWI::Host
Public Functions
-
inline _Host(ArchAVR_TWI &per)
Protected Functions
-
inline virtual void set_line_state(TWI::Line line, bool dig_state) override
-
inline _Host(ArchAVR_TWI &per)
-
class _PinDriver : public PinDriver
Public Functions
-
_PinDriver(ArchAVR_TWI &per)
-
void set_enabled(bool enable)
-
void set_host_mode(bool is_host)
-
void set_host_line_state(TWI::Line line, bool state)
-
void set_client_line_state(TWI::Line line, bool state)
-
virtual Pin::controls_t override_gpio(pin_index_t pin_index, const Pin::controls_t &gpio_controls) override
Stub called when a state resolution is taking place on a pin that the driver is controlling. The reimplementation should make a copy of the controls structure in argument, change its members according to the override state and return the result.
- Parameters:
pin_index – index of the pin
controls – pin controls as configured by the GPIO port controller
- Returns:
the controls to apply to the pin
-
virtual void digital_state_changed(pin_index_t pin_index, bool dig_state) override
Stub called when the digital state of a pin has changed after a state resolution.
- Parameters:
pin_index – Index of the pin
state – New digital state of the pin
-
_PinDriver(ArchAVR_TWI &per)
-
ArchAVR_TWI(uint8_t num, const ArchAVR_TWIConfig &config)