/**
******************************************************************************
* @file    ow_port.h
* @brief   This file includes the driver for port for OneWire purposes
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef ONEWIRE_PORT_H
#define ONEWIRE_PORT_H


/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"

/* I/O Port ------------------------------------------------------------------*/
//#define LL_Driver       ///< использовать CMSIS для управления ножкой
#define CMSIS_Driver      ///< использовать CMSIS для управления ножкой
// если ничего не выбрано - используется HAL


/**
 * @def OW_GPIO_Port
 * @brief Порт вывода для шины 1-Wire.
 * @details Указывает порт GPIO, к которому подключена линия данных 1-Wire (например, для DS18B20).
 */
#define OW_GPIO_Port  GPIOA

/**
 * @def OW_Pin_Numb
 * @brief Номер пина в порту OW_GPIO_Port.
 * @details Используется для формирования маски пина и настройки ввода/вывода.
 */
#define OW_Pin_Numb   15

/**
 * @def OW_Pin
 * @brief Маска пина, соответствующая номеру OW_Pin_Numb.
 * @details Используется при доступе к регистрам порта для управления состоянием линии 1-Wire.
 */
#define OW_Pin        (1<<OW_Pin_Numb)

/**
 * @def OW_TIM
 * @brief Аппаратный таймер для формирования временных интервалов протокола 1-Wire.
 * @details Применяется для создания точных задержек при обмене данными по шине 1-Wire.
 */
#define OW_TIM        TIM1

/**
 * @def OW_TIM_1US_PERIOD
 * @brief Количество тактов таймера OW_TIM, соответствующее 1 микросекунде.
 * @details Вычисляется на основе частоты таймера. Например, для таймера с частотой 24 МГц значение будет равно 24.
 */
#define OW_TIM_1US_PERIOD 72


/* OneWire Timings -----------------------------------------------------------*/
void OneWire_Delay_us(uint32_t us);
/* Common Register -----------------------------------------------------------*/
#endif /* ONEWIRE_PORT_H */
