12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /********************************* (C) РОТЕК ***********************************
- * @module onewire
- * @file onewire.h
- * @version 1.0.0
- * @date XX.XX.XXXX
- * $brief DS18B20 temperature sensor driver
- *******************************************************************************
- * @history Version Author Comment
- * XX.XX.XXXX 1.0.0 Telenkov D.A. First release.
- *******************************************************************************
- */
- #ifndef ONEWIRE_H
- #define ONEWIRE_H
- #include <stdint.h>
- #include "common_config.h"
- //#define DALLAS_TWO_LINE_SWITCH //двупроводное подключение
- /* Первый параметр функции OW_Send */
- #define DALLAS_SEND_RESET 1
- #define DALLAS_NO_RESET 2
- /* Статус возврата функций */
- #define DALLAS_OK 1
- #define DALLAS_ERROR 2
- #define DALLAS_NO_DEVICE 3
- #define DALLAS_NO_READ 0xff
- #define DALLAS_READ_SLOT 0xff
- /**
- * @brief Настройка USART
- */
- void DALLAS_Init();
- /**
- * @brief Настройка DMA
- */
- void DALLAS_DmaInit(void);
- /**
- * @brief Сброс и проверка наличия устройства на шине 1-wire
- */
- uint8_t DALLAS_SensorReset(t_sensor_list_t sensor);
- /**
- * @brief Настроить TX пин как питающий выход
- */
- void DALLAS_OutSetAsPower(t_sensor_list_t sensor);
- /**
- * @brief Настроить TX пин как передатчик
- */
- void DALLAS_OutSetAsTX(t_sensor_list_t sensor);
- /**
- * @brief Отправка и прием данных
- * @param sendReset посылать RESET в начале общения.
- * OW_SEND_RESET
- * OW_NO_RESET
- * @param *command - массив байт, отсылаемых в шину.
- * Если нужно чтение - отправляем OW_READ_SLOTH
- * @param cLen - длина буфера команд, столько байт отошлется в шину
- * @param *data - если требуется чтение, то ссылка на буфер для чтения
- * @param dLen - длина буфера для чтения. Прочитается не более этой длины
- * @param readStart - с какого символа передачи начинать чтение (нумеруются с 0)
- * можно указать OW_NO_READ, тогда можно не задавать data и dLen
- */
- uint8_t DALLAS_Send(t_sensor_list_t sensor, uint8_t sendReset, uint8_t *command,
- uint8_t cLen, uint8_t *data, uint8_t dLen, uint8_t readStart);
- /**
- * @brief Функция преобразует один байт в восемь, для передачи через USART
- * @param ow_byte - байт, который надо преобразовать
- * @param ow_bits - ссылка на буфер, размером не менее 8 байт
- */
- void DALLAS_ToBits(uint8_t ow_byte, uint8_t *ow_bits);
- /**
- * @brief Обратное преобразование - из того, что получено через USART опять собирается байт
- * @param ow_bits - ссылка на буфер, размером не менее 8 байт
- * @param ow_byte - собранный байт данных
- */
- uint8_t DALLAS_ToByte(uint8_t *ow_bits);
- #endif /* ONEWIRE_H */
|