Eurobot2012_Primary

Dependencies:   mbed Eurobot_2012_Primary

Committer:
narshu
Date:
Sat Apr 28 17:21:24 2012 +0000
Revision:
9:377560539b74
Parent:
TSH.h@0:f3bf6c7e2283
Restructured project to have a single shared lib; Also raised the RF baud rate

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:f3bf6c7e2283 1 #ifndef TSH_H
narshu 0:f3bf6c7e2283 2 #define TSH_H
narshu 0:f3bf6c7e2283 3
narshu 0:f3bf6c7e2283 4 #include "rtos.h"
narshu 0:f3bf6c7e2283 5
narshu 0:f3bf6c7e2283 6 //Thread Safe Hardware
narshu 0:f3bf6c7e2283 7
narshu 0:f3bf6c7e2283 8 class TSI2C : public I2C {
narshu 0:f3bf6c7e2283 9 public:
narshu 0:f3bf6c7e2283 10
narshu 0:f3bf6c7e2283 11 TSI2C( PinName sda,
narshu 0:f3bf6c7e2283 12 PinName scl,
narshu 0:f3bf6c7e2283 13 const char* name=NULL )
narshu 0:f3bf6c7e2283 14 : I2C(sda, scl, name) { }
narshu 0:f3bf6c7e2283 15
narshu 0:f3bf6c7e2283 16
narshu 0:f3bf6c7e2283 17 int read( int address,
narshu 0:f3bf6c7e2283 18 char* data,
narshu 0:f3bf6c7e2283 19 int length,
narshu 0:f3bf6c7e2283 20 bool repeated = false ) {
narshu 0:f3bf6c7e2283 21
narshu 0:f3bf6c7e2283 22 rlock.lock();
narshu 0:f3bf6c7e2283 23 int retval = I2C::read(address, data, length, repeated);
narshu 0:f3bf6c7e2283 24 rlock.unlock();
narshu 0:f3bf6c7e2283 25
narshu 0:f3bf6c7e2283 26 return retval;
narshu 0:f3bf6c7e2283 27 }
narshu 0:f3bf6c7e2283 28
narshu 0:f3bf6c7e2283 29 int read(int ack) {
narshu 0:f3bf6c7e2283 30 rlock.lock();
narshu 0:f3bf6c7e2283 31 int retval = I2C::read(ack);
narshu 0:f3bf6c7e2283 32 rlock.unlock();
narshu 0:f3bf6c7e2283 33
narshu 0:f3bf6c7e2283 34 return retval;
narshu 0:f3bf6c7e2283 35 }
narshu 0:f3bf6c7e2283 36
narshu 0:f3bf6c7e2283 37 int write( int address,
narshu 0:f3bf6c7e2283 38 const char* data,
narshu 0:f3bf6c7e2283 39 int length,
narshu 0:f3bf6c7e2283 40 bool repeated = false ) {
narshu 0:f3bf6c7e2283 41
narshu 0:f3bf6c7e2283 42 wlock.lock();
narshu 0:f3bf6c7e2283 43 int retval = I2C::write(address, data, length, repeated);
narshu 0:f3bf6c7e2283 44 wlock.unlock();
narshu 0:f3bf6c7e2283 45
narshu 0:f3bf6c7e2283 46 return retval;
narshu 0:f3bf6c7e2283 47 }
narshu 0:f3bf6c7e2283 48
narshu 0:f3bf6c7e2283 49 int write(int data) {
narshu 0:f3bf6c7e2283 50 wlock.lock();
narshu 0:f3bf6c7e2283 51 int retval = I2C::write(data);
narshu 0:f3bf6c7e2283 52 wlock.unlock();
narshu 0:f3bf6c7e2283 53
narshu 0:f3bf6c7e2283 54 return retval;
narshu 0:f3bf6c7e2283 55 }
narshu 0:f3bf6c7e2283 56
narshu 0:f3bf6c7e2283 57 private:
narshu 0:f3bf6c7e2283 58 Mutex rlock;
narshu 0:f3bf6c7e2283 59 Mutex wlock;
narshu 0:f3bf6c7e2283 60 };
narshu 0:f3bf6c7e2283 61
narshu 0:f3bf6c7e2283 62 #endif