Arduino Libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
24LC256.hpp
Go to the documentation of this file.
1 // Author: Mario S. Könz <mskoenz@gmx.net>
2 // Date: 19.08.2013 20:44:12 CEST
3 // File: 24LC256.hpp
4 
5 /* This program is free software. It comes without any warranty, to
6  * the extent permitted by applicable law. You can redistribute it
7  * and/or modify it under the terms of the Do What The Fuck You Want
8  * To Public License, Version 2, as published by Sam Hocevar. See
9  * http://www.wtfpl.net/ or COPYING for more details. */
10 
11 #ifndef __24LC256_HEADER
12 #define __24LC256_HEADER
13 
14 #include "../com/i2c.hpp"
15 
16 namespace device {
18  public:
19  _24LC256_class(uint8_t const & dev_adr = 0x50): dev_adr_(dev_adr) { //the addres is 0x50 + (A2 << 2 | A1 << 1 | A0)
20  }
21  void write(uint16_t const & adr, uint8_t const & data) {
22  if(read(adr) != data) {
23  com::i2cout(dev_adr_) << com::little_endian(adr) << data << ustd::endl;
24  delayMicroseconds(4000);
25  }
26  }
27  uint8_t read(uint16_t const & adr) const {
28  uint8_t res;
29  com::i2cout(dev_adr_) << com::little_endian(adr) << ustd::endl(false);
30  com::i2cin(dev_adr_) >> res;
31  return res;
32  }
33  private:
34  uint8_t dev_adr_;
35  };
36 }//end namespace device
37 #endif //__24LC256_HEADER
class com::i2cout_class i2cout
T little_endian(T const &t)
Definition: serializer.hpp:100
void write(uint16_t const &adr, uint8_t const &data)
Definition: 24LC256.hpp:21
Definition: 24LC256.hpp:17
_24LC256_class(uint8_t const &dev_adr=0x50)
Definition: 24LC256.hpp:19
struct ustd::endl_class endl
uint8_t read(uint16_t const &adr) const
Definition: 24LC256.hpp:27
class com::i2cin_class i2cin