You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.5 KiB
86 lines
1.5 KiB
//
|
|
// Created by MightyPork on 2018/01/29.
|
|
//
|
|
|
|
#ifndef GEX_F072_OW_INTERNAL_H
|
|
#define GEX_F072_OW_INTERNAL_H
|
|
|
|
#ifndef OW_INTERNAL
|
|
#error bad include!
|
|
#endif
|
|
|
|
#include "_ow_commands.h"
|
|
|
|
/** Private data structure */
|
|
struct priv {
|
|
char port_name;
|
|
uint8_t pin_number;
|
|
bool parasitic;
|
|
|
|
GPIO_TypeDef *port;
|
|
uint32_t ll_pin;
|
|
|
|
TimerHandle_t busyWaitTimer; // timer used to wait for ds1820 measurement completion
|
|
bool busy; // flag used when the timer is running
|
|
uint32_t busyStart;
|
|
TF_ID busyRequestId;
|
|
};
|
|
|
|
// Prototypes
|
|
|
|
/**
|
|
* Reset the 1-wire bus
|
|
*/
|
|
bool ow_reset(Unit *unit);
|
|
|
|
/**
|
|
* Write a bit to the 1-wire bus
|
|
*/
|
|
void ow_write_bit(Unit *unit, bool bit);
|
|
|
|
/**
|
|
* Read a bit from the 1-wire bus
|
|
*/
|
|
bool ow_read_bit(Unit *unit);
|
|
|
|
/**
|
|
* Write a byte to the 1-wire bus
|
|
*/
|
|
void ow_write_u8(Unit *unit, uint8_t byte);
|
|
|
|
/**
|
|
* Write a halfword to the 1-wire bus
|
|
*/
|
|
void ow_write_u16(Unit *unit, uint16_t halfword);
|
|
|
|
/**
|
|
* Write a word to the 1-wire bus
|
|
*/
|
|
void ow_write_u32(Unit *unit, uint32_t word);
|
|
|
|
/**
|
|
* Write a doubleword to the 1-wire bus
|
|
*/
|
|
void ow_write_u64(Unit *unit, uint64_t dword);
|
|
|
|
/**
|
|
* Read a byte form the 1-wire bus
|
|
*/
|
|
uint8_t ow_read_u8(Unit *unit);
|
|
|
|
/**
|
|
* Read a halfword form the 1-wire bus
|
|
*/
|
|
uint16_t ow_read_u16(Unit *unit);
|
|
|
|
/**
|
|
* Read a word form the 1-wire bus
|
|
*/
|
|
uint32_t ow_read_u32(Unit *unit);
|
|
|
|
/**
|
|
* Read a doubleword form the 1-wire bus
|
|
*/
|
|
uint64_t ow_read_u64(Unit *unit);
|
|
|
|
#endif //GEX_F072_OW_INTERNAL_H
|
|
|