ATY_LIB V2_102_230218
ATY_LIB for general devices or ALGO
 
Loading...
Searching...
No Matches
ds18b20.h
Go to the documentation of this file.
1// Copyright 2021 IOsetting <iosetting(at)outlook.com>
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef __FW_DS18B20__
16#define __FW_DS18B20__
17
18#include "fw_hal.h"
19
28#define DS18B20_DQ P35
29#define DS18B20_DQ_PULLUP() GPIO_SetPullUp(GPIO_Port_3, GPIO_Pin_5, HAL_State_ON)
30#define DS18B20_DQ_INPUT() GPIO_P3_SetMode(GPIO_Pin_5, GPIO_Mode_Input_HIP)
31#define DS18B20_DQ_OUTPUT() GPIO_P3_SetMode(GPIO_Pin_5, GPIO_Mode_InOut_OD)
32#define DS18B20_DQ_LOW() DS18B20_DQ=RESET
33#define DS18B20_DQ_HIGH() DS18B20_DQ=SET
34
35/* OneWire commands */
36#define ONEWIRE_CMD_RSCRATCHPAD 0xBE
37#define ONEWIRE_CMD_WSCRATCHPAD 0x4E
38#define ONEWIRE_CMD_CPYSCRATCHPAD 0x48
39#define ONEWIRE_CMD_RECEEPROM 0xB8
40#define ONEWIRE_CMD_RPWRSUPPLY 0xB4
41#define ONEWIRE_CMD_SEARCHROM 0xF0
42#define ONEWIRE_CMD_READROM 0x33
43#define ONEWIRE_CMD_MATCHROM 0x55
44#define ONEWIRE_CMD_SKIPROM 0xCC
45
46#define DS18B20_FAMILY_CODE 0x28
47#define DS18B20_CMD_ALARMSEARCH 0xEC
48
49/* DS18B20 read temperature command */
50#define DS18B20_CMD_CONVERTTEMP 0x44 /* Convert temperature */
51#define DS18B20_DECIMAL_STEPS_12BIT 0.0625
52#define DS18B20_DECIMAL_STEPS_11BIT 0.125
53#define DS18B20_DECIMAL_STEPS_10BIT 0.25
54#define DS18B20_DECIMAL_STEPS_9BIT 0.5
55
56/* Bits locations for resolution */
57#define DS18B20_RESOLUTION_R1 6
58#define DS18B20_RESOLUTION_R0 5
59
60typedef enum {
66
70void DS18B20_Init(void);
71
76__BIT DS18B20_Reset(void);
77
82__BIT DS18B20_ReadBit(void);
83
89
94void DS18B20_WriteBit(__BIT b);
95
100void DS18B20_WriteByte(uint8_t byte);
101
110
116
120void DS18B20_StartAll(void);
121
126__BIT DS18B20_AllDone(void);
127
134void DS18B20_ReadRom(uint8_t *buf);
135
143void DS18B20_Select(const uint8_t* addr);
144
149void DS18B20_Start(const uint8_t *addr);
150
158
166uint8_t DS18B20_Search(uint8_t *buff, uint8_t *stack, uint8_t split_point);
167
168#endif // __DS18B20_H_
__XDATA uint8_t buff[7]
Definition: ds3231.c:17
unsigned char uint8_t
Definition: fw_types.h:18
uint8_t addr[8]
Definition: main.c:28
void DS18B20_WriteByte(uint8_t byte)
Write one byte to DS18B20.
Definition: ds18b20.c:121
void DS18B20_ReadScratchpadFromAddr(const uint8_t *addr, uint8_t *buf)
Read SRAM scratchpad from selected slave.
Definition: ds18b20.c:224
uint8_t DS18B20_Crc(uint8_t *addr, uint8_t len)
8-bit CRC calculation
Definition: ds18b20.c:151
uint8_t DS18B20_ReadByte(void)
Read one byte from DS18B20.
Definition: DS18B20_ATY.c:143
__BIT DS18B20_ReadBit(void)
Read one bit from DS18B20.
Definition: ds18b20.c:49
void DS18B20_StartAll(void)
Start conversion on all slaves.
Definition: ds18b20.c:173
void DS18B20_WriteBit(__BIT b)
Write one bit to DS18B20.
Definition: ds18b20.c:89
DS18B20_Resolution_t
Definition: ds18b20.h:60
@ DS18B20_Resolution_11bits
Definition: ds18b20.h:63
@ DS18B20_Resolution_9bits
Definition: ds18b20.h:61
@ DS18B20_Resolution_10bits
Definition: ds18b20.h:62
@ DS18B20_Resolution_12bits
Definition: ds18b20.h:64
void DS18B20_ReadRom(uint8_t *buf)
Read 64-bit ROM: 8-bit family code "0x28", unique 48-bit serial number, 8-bit CRC.
Definition: ds18b20.c:189
void DS18B20_ReadScratchpad(uint8_t *buf)
Read SRAM scratchpad.
Definition: ds18b20.c:133
void DS18B20_Init(void)
Initialize DS18B20.
Definition: DS18B20_ATY.c:53
void DS18B20_Select(const uint8_t *addr)
Select a slave on the bus.
Definition: ds18b20.c:204
uint8_t DS18B20_Search(uint8_t *buff, uint8_t *stack, uint8_t split_point)
Perform one ROM search.
Definition: ds18b20.c:242
__BIT DS18B20_AllDone(void)
If read bit is low, then device is not finished yet with calculation temperature.
Definition: ds18b20.c:183
__BIT DS18B20_Reset(void)
Reset DS18B20.
Definition: ds18b20.c:30
void DS18B20_Start(const uint8_t *addr)
Start conversion on selected slave.
Definition: ds18b20.c:214