From ce8581af2514e8d60c0ce14f4a2c39944b6ab988 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Wed, 20 Feb 2013 17:15:53 +0100 Subject: digital/ucoolib/ucoolib/hal/i2c: add finished handler call --- digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc') diff --git a/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc b/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc index 75299535..f11006ba 100644 --- a/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc +++ b/digital/ucoolib/ucoolib/hal/i2c/i2c_hard.stm32.cc @@ -280,6 +280,8 @@ I2cHard::ev_isr (int n) I2C_CR1 (base) = I2C_CR1_ACK | I2C_CR1_STOP | I2C_CR1_PE; i2c.master_ = false; i2c.master_status_ = i2c.buf_index_; + if (i2c.finished_handler_) + i2c.finished_handler_->finished (i2c.master_status_); } else if (i2c.buf_count_ - i2c.buf_index_ == 3) { @@ -297,6 +299,8 @@ I2cHard::ev_isr (int n) i2c.master_buf_[i2c.buf_index_++] = I2C_DR (base); i2c.master_ = false; i2c.master_status_ = i2c.buf_index_; + if (i2c.finished_handler_) + i2c.finished_handler_->finished (i2c.master_status_); } } else @@ -381,6 +385,8 @@ I2cHard::er_isr (int n) I2C_CR1 (base) = I2C_CR1_ACK | I2C_CR1_STOP | I2C_CR1_PE; i2c.master_ = false; i2c.master_status_ = i2c.buf_index_; + if (i2c.finished_handler_) + i2c.finished_handler_->finished (i2c.master_status_); } } I2C_CR2 (base) &= ~I2C_CR2_ITBUFEN; -- cgit v1.2.3