Diltech RM Consultant / Mbed OS Double_I2C_Sample

Dependencies:   TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DS18B20.h Source File

DS18B20.h

00001 /*  MIT License
00002 *
00003 *   Copyright (c) 2020 Lukas Gessner
00004 *
00005 *   Permission is hereby granted, free of charge, to any person obtaining a copy
00006 *   of this software and associated documentation files (the "Software"), to deal
00007 *   in the Software without restriction, including without limitation the rights
00008 *   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00009 *   copies of the Software, and to permit persons to whom the Software is
00010 *   furnished to do so, subject to the following conditions:
00011 *
00012 *   The above copyright notice and this permission notice shall be included in all
00013 *   copies or substantial portions of the Software.
00014 *
00015 *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00016 *   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00017 *   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00018 *   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00019 *   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00020 *   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
00021 *   SOFTWARE.
00022 */
00023 
00024 #ifndef DS18B20_h
00025 #define DS18B20_h
00026 
00027 #include "mbed.h"
00028 
00029 
00030 #define OWI_SKIP_ROM 0xCC
00031 #define DS18B20_START 0x44
00032 #define DS18B20_READ_SCRATCH_PAD 0xBE
00033 
00034 class OWI
00035 {
00036     public:
00037         OWI(PinName pin);
00038         void sendByte(unsigned char data);
00039         unsigned char receiveByte();
00040         unsigned char detectPresence();
00041         
00042     private:
00043         void write0();
00044         void write1();
00045         unsigned char readBit();
00046         DigitalInOut owi_io;
00047 };
00048 
00049 class DS18B20
00050 {
00051     public: 
00052         DS18B20(PinName pin);
00053         float readTemp();
00054     
00055     private:
00056         OWI DS18B20_OWI;
00057 };
00058 
00059 #endif