Library to communicate with Maxim OneWire protocol devices Modified timings and IRQ overrides

Dependents:   RdGasUseMonitor

Fork of Onewire by Simon Barker

Committer:
Bobty
Date:
Sat Feb 21 18:01:10 2015 +0000
Revision:
4:b678c7c8203c
Parent:
1:8e9464e05ddf
Child:
6:d2452e9b169b
Tidied up

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simonbarker 0:d961f715d82b 1 #ifndef Onewire_h
simonbarker 0:d961f715d82b 2 #define Onewire_h
simonbarker 0:d961f715d82b 3
simonbarker 0:d961f715d82b 4 #include "mbed.h"
simonbarker 0:d961f715d82b 5
Bobty 4:b678c7c8203c 6 #define ONEWIRE_ADDR_BYTES 8
Bobty 4:b678c7c8203c 7
simonbarker 0:d961f715d82b 8 class Onewire{
simonbarker 0:d961f715d82b 9
simonbarker 0:d961f715d82b 10 public:
Bobty 1:8e9464e05ddf 11 Onewire(PinName oneBus);
Bobty 1:8e9464e05ddf 12 void writeBit(int bit);
simonbarker 0:d961f715d82b 13 int readBit();
simonbarker 0:d961f715d82b 14 int init();
simonbarker 0:d961f715d82b 15 int readByte();
simonbarker 0:d961f715d82b 16 void writeByte(char data);
simonbarker 0:d961f715d82b 17 unsigned char CRC(unsigned char* addr, unsigned char len);
simonbarker 0:d961f715d82b 18
Bobty 1:8e9464e05ddf 19 // Clear the search state so that if will start from the beginning again.
Bobty 1:8e9464e05ddf 20 void reset_search();
Bobty 1:8e9464e05ddf 21 // Look for the next device. Returns 1 if a new address has been
Bobty 1:8e9464e05ddf 22 // returned. A zero might mean that the bus is shorted, there are
Bobty 1:8e9464e05ddf 23 // no devices, or you have already retrieved all of them. It
Bobty 1:8e9464e05ddf 24 // might be a good idea to check the CRC to make sure you didn't
Bobty 1:8e9464e05ddf 25 // get garbage. The order is deterministic. You will always get
Bobty 1:8e9464e05ddf 26 // the same devices in the same order.
Bobty 1:8e9464e05ddf 27 uint8_t search(uint8_t *newAddr);
Bobty 1:8e9464e05ddf 28
simonbarker 0:d961f715d82b 29 private:
Bobty 1:8e9464e05ddf 30 DigitalInOut oneBus_;
Bobty 1:8e9464e05ddf 31
Bobty 1:8e9464e05ddf 32 // search state
Bobty 1:8e9464e05ddf 33 unsigned char _search_ROM_NO[8];
Bobty 1:8e9464e05ddf 34 uint8_t _search_LastDiscrepancy;
Bobty 1:8e9464e05ddf 35 uint8_t _search_LastFamilyDiscrepancy;
Bobty 1:8e9464e05ddf 36 uint8_t _search_LastDeviceFlag;
simonbarker 0:d961f715d82b 37 };
simonbarker 0:d961f715d82b 38 #endif