This are general defs and base class interfaces. ( DACInterface, I2CInterface) to be used with I2C devices

Dependents:   MCP23009tst AT30TSE752TST MCP4728setaddrProg mbedSerialInterface_talkback2 ... more

The DevInterfaces class is used for a more general support of a number of I2C devices.

For the moment this is MCP4728 Quad DAC.

The idea is to write a libs for the I2C devices (and perhaps later SPI , ... devices) not restricted to a certain hardware platform.

So there is the I2CInterface. This is a ( not pure) virtual class. A pointer to this class is used for the I2C device lib (like the MCP4728 class https://developer.mbed.org/users/wbeaumont/code/MCP4728/ ) to communicate with the I2C interface. The I2C interface is kept simple as possible. So it has to be applied for "tested environments". I2C Bus timeouts etc. are hard to debug with such a simple interface. This kind of interface is also not suitable for optimal performance. The user has to take care of issues of blocking devices, parallel processes etc. This can be dealt with in the implementation of the I2CInterface class

The aim of this project is to generate code for these devices on different platforms without doing the painstaking work of looking up all the register details.

There is an implementation of the I2CInterface for the MBED , tested with the FRDM-KL05Z platform. https://developer.mbed.org/users/wbeaumont/code/I2Cinterfaces/

A very simple application on a MBED can be found in https://developer.mbed.org/users/wbeaumont/code/MCP4728test/

Committer:
wbeaumont
Date:
Fri Oct 23 19:34:53 2015 +0000
Revision:
0:da1fb7dd363f
Child:
1:5672673314f9
basics works

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wbeaumont 0:da1fb7dd363f 1 #include "getVersion.h"
wbeaumont 0:da1fb7dd363f 2
wbeaumont 0:da1fb7dd363f 3 #define GETVERSION_SRC_VER "0.10"
wbeaumont 0:da1fb7dd363f 4
wbeaumont 0:da1fb7dd363f 5 #include "mbed.h"
wbeaumont 0:da1fb7dd363f 6
wbeaumont 0:da1fb7dd363f 7 #define NULL 0
wbeaumont 0:da1fb7dd363f 8
wbeaumont 0:da1fb7dd363f 9 void getVersion::get_dec_version( unsigned short hexversion , unsigned char & version, unsigned char& subversion) {
wbeaumont 0:da1fb7dd363f 10 subversion =(unsigned short)( hexversion & 0xFF);
wbeaumont 0:da1fb7dd363f 11 hexversion=hexversion >> 8;
wbeaumont 0:da1fb7dd363f 12 version =(unsigned char)( hexversion & 0xFF);
wbeaumont 0:da1fb7dd363f 13 }
wbeaumont 0:da1fb7dd363f 14
wbeaumont 0:da1fb7dd363f 15
wbeaumont 0:da1fb7dd363f 16
wbeaumont 0:da1fb7dd363f 17 unsigned short getVersion::get_hex_version_nr(const char * vers){
wbeaumont 0:da1fb7dd363f 18 float verf = strtof(vers,NULL);
wbeaumont 0:da1fb7dd363f 19 unsigned short version=(unsigned short) verf;
wbeaumont 0:da1fb7dd363f 20 verf=verf-version;
wbeaumont 0:da1fb7dd363f 21 version = version<<8;
wbeaumont 0:da1fb7dd363f 22 verf=verf*100;
wbeaumont 0:da1fb7dd363f 23 unsigned char sub=(unsigned char)verf;
wbeaumont 0:da1fb7dd363f 24 version=version| sub;
wbeaumont 0:da1fb7dd363f 25 return version;
wbeaumont 0:da1fb7dd363f 26 }
wbeaumont 0:da1fb7dd363f 27
wbeaumont 0:da1fb7dd363f 28
wbeaumont 0:da1fb7dd363f 29
wbeaumont 0:da1fb7dd363f 30
wbeaumont 0:da1fb7dd363f 31
wbeaumont 0:da1fb7dd363f 32
wbeaumont 0:da1fb7dd363f 33 unsigned short getVersion::getHdrVersion(){
wbeaumont 0:da1fb7dd363f 34 if( hver == NULL) return get_hex_version_nr(GETVERSION_HDR_VER);
wbeaumont 0:da1fb7dd363f 35 else return get_hex_version_nr(hver);
wbeaumont 0:da1fb7dd363f 36 }
wbeaumont 0:da1fb7dd363f 37
wbeaumont 0:da1fb7dd363f 38 unsigned short getVersion::getSrcVersion(){
wbeaumont 0:da1fb7dd363f 39 if( sver == NULL) return get_hex_version_nr(GETVERSION_SRC_VER);
wbeaumont 0:da1fb7dd363f 40 else return get_hex_version_nr(sver);
wbeaumont 0:da1fb7dd363f 41 }
wbeaumont 0:da1fb7dd363f 42
wbeaumont 0:da1fb7dd363f 43
wbeaumont 0:da1fb7dd363f 44 unsigned short getVersion::getCompileTime(){
wbeaumont 0:da1fb7dd363f 45 if ( ctime == NULL ) return 0;
wbeaumont 0:da1fb7dd363f 46 else return 0;
wbeaumont 0:da1fb7dd363f 47 }
wbeaumont 0:da1fb7dd363f 48
wbeaumont 0:da1fb7dd363f 49
wbeaumont 0:da1fb7dd363f 50 unsigned short getVersion::getCompileDate(){
wbeaumont 0:da1fb7dd363f 51 if ( cdate == NULL ) return 0;
wbeaumont 0:da1fb7dd363f 52 else return 0;
wbeaumont 0:da1fb7dd363f 53 }
wbeaumont 0:da1fb7dd363f 54
wbeaumont 0:da1fb7dd363f 55 unsigned short getVersion::getCompileYear(){
wbeaumont 0:da1fb7dd363f 56
wbeaumont 0:da1fb7dd363f 57 if ( cdate == NULL ) return 0;
wbeaumont 0:da1fb7dd363f 58 else return 0;
wbeaumont 0:da1fb7dd363f 59 }