From 55600461ec870fd687049c9514fb358f0b20f48a Mon Sep 17 00:00:00 2001 From: Denisiuse Date: Sat, 7 Dec 2024 21:42:07 +0700 Subject: [PATCH] Add prototypes of initialization and recording functions --- src/drivers/m24512/m24512.h | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/drivers/m24512/m24512.h b/src/drivers/m24512/m24512.h index b2f902e..32f4838 100644 --- a/src/drivers/m24512/m24512.h +++ b/src/drivers/m24512/m24512.h @@ -10,6 +10,7 @@ #define M24512_H #include +#include "i2c.h" // Добавляем включение i2c.h /** @brief Базовый адрес устройства M24512 на шине I2C */ #define M24512_BASE_ADDR 0xA0 @@ -48,4 +49,51 @@ uint8_t M24512_WriteByte(uint16_t addr, uint8_t data); */ uint8_t M24512_ReadByte(uint16_t addr, uint8_t* data); +// Прототипы функций I2C, используемых в драйвере. +// Эти функции должны быть определены в i2c.c и i2c.h + +/** + * @brief Инициирует I2C Start condition. + */ +void I2C_Start(void); + +/** + * @brief Инициирует I2C Stop condition. + */ +void I2C_Stop(void); + +/** + * @brief Отправляет I2C адрес устройства и ожидает подтверждения (ACK). + * + * @param[in] address Адрес устройства на шине I2C. + * @return uint8_t Результат операции: + * - 0: успешно (получен ACK) + * - 1: ошибка (получен NACK или тайм-аут) + */ +uint8_t I2C_WriteAddress(uint8_t address); + +/** + * @brief Отправляет байт данных и ожидает подтверждения (ACK). + * + * @param[in] data Байт данных для отправки. + * @return uint8_t Результат операции: + * - 0: успешно (получен ACK) + * - 1: ошибка (получен NACK или тайм-аут) + */ +uint8_t I2C_WriteData(uint8_t data); + +/** + * @brief Читает байт данных и отправляет NACK (Not Acknowledge). + * + * @return uint8_t Прочитанный байт данных. + */ +uint8_t I2C_ReadData_NACK(void); + +/** + * @brief Задержка на указанное количество миллисекунд. + * + * @param[in] ms Время задержки в миллисекундах. + */ +void delay(uint32_t ms); + #endif /* M24512_H */ \ No newline at end of file