diff --git a/simavr/sim/avr_twi.c b/simavr/sim/avr_twi.c index 521c03c..f96dedd 100644 --- a/simavr/sim/avr_twi.c +++ b/simavr/sim/avr_twi.c @@ -289,11 +289,11 @@ avr_twi_write( avr_twi_irq_msg(msgv, p->peer_addr, avr->data[p->r_twdr])); if (do_read) { // read ? - _avr_twi_delay_state(p, 9, + _avr_twi_delay_state(p, 0, msgv & TWI_COND_ACK ? TWI_MRX_DATA_ACK : TWI_MRX_DATA_NACK); } else { - _avr_twi_delay_state(p, 9, + _avr_twi_delay_state(p, 0, p->state & TWI_COND_ACK ? TWI_MTX_DATA_ACK : TWI_MTX_DATA_NACK); } @@ -319,7 +319,7 @@ avr_twi_write( if (p->peer_addr & 1) { // read ? p->state |= TWI_COND_READ; // always allow read to start with - _avr_twi_delay_state(p, 9, + _avr_twi_delay_state(p, 0, p->state & TWI_COND_ACK ? TWI_MRX_ADR_ACK : TWI_MRX_ADR_NACK); } else { @@ -328,7 +328,7 @@ avr_twi_write( p->state & TWI_COND_ACK ? TWI_MTX_ADR_ACK : TWI_MTX_ADR_NACK); }else{ - _avr_twi_delay_state(p, 9, + _avr_twi_delay_state(p, 0, p->state & TWI_COND_ACK ? TWI_MTX_DATA_ACK : TWI_MTX_DATA_NACK); } @@ -426,7 +426,7 @@ avr_twi_irq_input( // INVERSE logic here if (!(msg.u.twi.msg & TWI_COND_WRITE)) p->peer_addr |= 1; - _avr_twi_delay_state(p, 9, + _avr_twi_delay_state(p, 0, msg.u.twi.msg & TWI_COND_WRITE ? TWI_SRX_ADR_ACK : TWI_STX_ADR_ACK ); } @@ -439,7 +439,7 @@ avr_twi_irq_input( } } if (msg.u.twi.msg & TWI_COND_STOP) { - _avr_twi_delay_state(p, 9, + _avr_twi_delay_state(p, 0, msg.u.twi.msg & TWI_COND_WRITE ? TWI_SRX_ADR_ACK : TWI_STX_ADR_ACK ); } @@ -456,7 +456,7 @@ avr_twi_irq_input( if (p->state & TWI_COND_SLAVE) { if (msg.u.twi.msg & TWI_COND_WRITE) { avr->data[p->r_twdr] = msg.u.twi.data; - _avr_twi_delay_state(p, 9, TWI_SRX_ADR_DATA_ACK ); + _avr_twi_delay_state(p, 0, TWI_SRX_ADR_DATA_ACK ); } } else { // receive a data byte from a slave