HWA
Bare metal programming with style
|
This class is used by:
Class _twia
objects can trigger the following IRQs:
twi0
hw( configure, TWI, ... ) and hwa( configure, TWI, ... ) configure the TWI:
xfr_
action is triggered. Then, it keeps control over these pins until the TWI is disabled.
turn
:
The optionnal irq
parameter can be used to have the command enable the IRQ.
These actions set the 'TWEN' bit so that the TWI takes control of the I/O pins.
read
:
stat
: returns the status flags of the TWI as a byte whose value can be compared to HWA predefined symbols:
Predefined TWI status symbols are:
HW_TWI_START
: start condition transmittedHW_TWI_REP_START
: repeated start condition transmittedHW_TWI_MT_SLA_ACK
: SLA+W transmitted, ACK receivedHW_TWI_MT_SLA_NACK
: SLA+W transmitted, NACK receivedHW_TWI_MT_DATA_ACK
: data transmitted, ACK receivedHW_TWI_MT_DATA_NACK
: data transmitted, NACK receivedHW_TWI_MT_ARB_LOST
: arbitration lost in SLA+W or dataHW_TWI_MR_ARB_LOST
: arbitration lost in SLA+R or NACKHW_TWI_MR_SLA_ACK
: SLA+R transmitted, ACK receivedHW_TWI_MR_SLA_NACK
: SLA+R transmitted, NACK receivedHW_TWI_MR_DATA_ACK
: data received, ACK returnedHW_TWI_MR_DATA_NACK
: data received, NACK returnedHW_TWI_SR_SLA_ACK
: SLA+W received, ACK returnedHW_TWI_SR_ARB_LOST_SLA_ACK
: arbitration lost in SLA+RW, SLA+W received, ACK returnedHW_TWI_SR_GCALL_ACK
: general call received, ACK returnedHW_TWI_SR_ARB_LOST_GCALL_ACK
: arbitration lost in SLA+RW, general call received, ACK returnedHW_TWI_SR_DATA_ACK
: data received, ACK returnedHW_TWI_SR_DATA_NACK
: data received, NACK returnedHW_TWI_SR_GCALL_DATA_ACK
: general call data received, ACK returnedHW_TWI_SR_GCALL_DATA_NACK
: general call data received, NACK returnedHW_TWI_SR_STOP
: stop or repeated start condition received while selectedHW_TWI_ST_SLA_ACK
: SLA+R received, ACK returnedHW_TWI_ST_ARB_LOST_SLA_ACK
: arbitration lost in SLA+RW, SLA+R received, ACK returnedHW_TWI_ST_DATA_ACK
: data transmitted, ACK receivedHW_TWI_ST_DATA_NACK
: data transmitted, NACK receivedHW_TWI_ST_LAST_DATA
: last data byte transmitted, ACK receivedHW_TWI_NO_INFO
: no state information availableHW_TWI_BUS_ERROR
: illegal start or stop conditionClass _twia
objects hold the following hardware registers:
br
: bit rate registercr
: control registersr
: status + prescaler registerar
: slave address + general call registeramr
: slave address mask registerthat hold the following logical registers:
start
: transmit start conditionstop
: transmit stop conditionack
: enable ackcollision
: collision detecteden
: enable SCL/SDA I/O controlif
: IRQ flagie
: enable IRQstatus
: status codepsc
: prescaler settingsla
: slave addressslam
: enable ack maskgce
: general call enable