diff options
| author | Scott Shawcroft <scott@chickadee.tech> | 2016-10-05 18:44:55 -0700 |
|---|---|---|
| committer | Scott Shawcroft <scott@chickadee.tech> | 2016-10-05 18:44:55 -0700 |
| commit | afedba5c2f638581e0c9839844fcb63b9bd8a7bb (patch) | |
| tree | 3bfaf6250a2675363f00f243de5d364abeb4539b /atmel-samd/common-hal | |
| parent | 42f6ba04a2065624fb90cac19eace3da3d158ba1 (diff) | |
atmel-samd: Support with statements for I2C class.
Also add init/deinit if you want to init/deinit manually.
Diffstat (limited to 'atmel-samd/common-hal')
| -rw-r--r-- | atmel-samd/common-hal/modules/machine.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/atmel-samd/common-hal/modules/machine.c b/atmel-samd/common-hal/modules/machine.c index 5597f77ed..a43762e0f 100644 --- a/atmel-samd/common-hal/modules/machine.c +++ b/atmel-samd/common-hal/modules/machine.c @@ -36,8 +36,8 @@ // Number of times to try to send packet if failed. #define TIMEOUT 1 -void mp_hal_i2c_init(machine_i2c_obj_t *self, const pin_obj_t* scl, - const pin_obj_t* sda, uint32_t freq) { +void mp_hal_i2c_construct(machine_i2c_obj_t *self, const pin_obj_t* scl, + const pin_obj_t* sda, uint32_t freq) { struct i2c_master_config config_i2c_master; i2c_master_get_config_defaults(&config_i2c_master); // Struct takes the argument in Khz not Hz. @@ -66,9 +66,16 @@ void mp_hal_i2c_init(machine_i2c_obj_t *self, const pin_obj_t* scl, nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, "I2C bus init error")); } +} + +void mp_hal_i2c_init(machine_i2c_obj_t *self) { i2c_master_enable(&self->i2c_master_instance); } +void mp_hal_i2c_deinit(machine_i2c_obj_t *self) { + i2c_master_disable(&self->i2c_master_instance); +} + void mp_hal_i2c_write(machine_i2c_obj_t *self, uint8_t addr, uint8_t *data, size_t len) { struct i2c_master_packet packet = { |
