| 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 */
 |