From b75fc68c80b7d4835fd684e645cfe627f71d2a04 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Fri, 8 Aug 2025 14:33:05 +0300 Subject: [PATCH] wip: --- include/zh_avr_i2c.h | 2 +- version.txt | 1 + zh_avr_i2c.c | 13 ++++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 version.txt diff --git a/include/zh_avr_i2c.h b/include/zh_avr_i2c.h index b0bee04..128cf35 100644 --- a/include/zh_avr_i2c.h +++ b/include/zh_avr_i2c.h @@ -28,7 +28,7 @@ extern "C" AVR_ERR_NOT_ALLOWED } avr_err_t; - avr_err_t zh_avr_i2c_master_init(void); + avr_err_t zh_avr_i2c_master_init(const bool pullup); avr_err_t zh_avr_i2c_master_transmit(const uint8_t addr, uint8_t *data, uint8_t size, size_t delay); avr_err_t zh_avr_i2c_master_receive(const uint8_t addr, uint8_t *data, uint8_t size, size_t delay); avr_err_t zh_avr_i2c_master_transmit_receive(const uint8_t addr, uint8_t *write_data, uint8_t write_size, uint8_t *read_data, uint8_t read_size, size_t delay); diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..afaf360 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1.0.0 \ No newline at end of file diff --git a/zh_avr_i2c.c b/zh_avr_i2c.c index e191a05..0e40ce8 100644 --- a/zh_avr_i2c.c +++ b/zh_avr_i2c.c @@ -1,7 +1,18 @@ #include "zh_avr_i2c.h" -avr_err_t zh_avr_i2c_master_init(void) +avr_err_t zh_avr_i2c_master_init(const bool pullup) { + i2c_PORT |= 1 << i2c_SCL | 1 << i2c_SDA; // Включим подтяжку на ноги, вдруг юзер на резисторы пожмотился + i2c_DDR &= ~(1 << i2c_SCL | 1 << i2c_SDA); + + DDRC &= ~(1 << PORTC5 | 1 << PORTC4); + if (pullup == true) + { + PORTC |= 1 << PORTC5 | 1 << PORTC4; + } + + TWBR = 0x80; // Настроим битрейт + TWSR = 0x00; } avr_err_t zh_avr_i2c_master_transmit(const uint8_t addr, uint8_t *data, uint8_t size, size_t delay)