ds18b20.h


1
#pragma once
2
3
#include <avr/io.h> 
4
#include <stdio.h>
5
6
#define THERM_PORT PORTD
7
#define THERM_DDR DDRD
8
#define THERM_PIN PIND
9
10
11
#define THERM_INPUT_MODE(PIN) THERM_DDR&=~(1<<PIN)
12
#define THERM_OUTPUT_MODE(PIN) THERM_DDR|=(1<<PIN)
13
#define THERM_LOW(PIN) THERM_PORT&=~(1<<PIN)
14
#define THERM_HIGH(PIN) THERM_PORT|=(1<<PIN)
15
16
#define THERM_CMD_CONVERTTEMP 0x44
17
#define THERM_CMD_RSCRATCHPAD 0xbe
18
#define THERM_CMD_WSCRATCHPAD 0x4e
19
#define THERM_CMD_CPYSCRATCHPAD 0x48
20
#define THERM_CMD_RECEEPROM 0xb8
21
#define THERM_CMD_RPWRSUPPLY 0xb4
22
#define THERM_CMD_SEARCHROM 0xf0
23
#define THERM_CMD_READROM 0x33
24
#define THERM_CMD_MATCHROM 0x55
25
#define THERM_CMD_SKIPROM 0xcc
26
#define THERM_CMD_ALARMSEARCH 0xec
27
/* constants */
28
#define THERM_DECIMAL_STEPS_12BIT 625 //.0625
29
30
void therm_delay(uint16_t delay);
31
uint8_t therm_reset(uint8_t pin);
32
void therm_write_bit(uint8_t bit, uint8_t pin);
33
uint8_t therm_read_bit(uint8_t pin);
34
uint8_t therm_read_byte(uint8_t pin);
35
void therm_write_byte(uint8_t byte, uint8_t pin);
36
float therm_read_temperature(uint8_t pin);