SCP1000-D01 MEMS pressure sensor library
scp1000.h
- Committer:
- MichaelW
- Date:
- 2010-09-27
- Revision:
- 0:dfe5ae6ea375
- Child:
- 1:a45810688644
File content as of revision 0:dfe5ae6ea375:
/** * */ //not sure whether to make this library and class specific to the spi but code compatible or to make it generic #ifndef SCP1000_D01_H_ #define SCP1000_D01_H_ #include "mbed.h" /** * Class to allow reading of the SCP1000-D01 mems pressure sensor (SPI mode). The class currently only supports High resolution mode. * This means that the snesor can be read at a maximum rate of 1.8Hz. */ class SCP1000{ public: typedef enum SCPModes{HIGHRES, HIGHSPEED, ULTRALOWPOWER, LOWPOWER, POWERDOWN}SCPMode; //Constructors - to be Overloaded for different read modes - ie different pins connected up /** *Constructor * * @param mosi The MOSI pin for the SPI interface * @param miso The MISO pin for the SPI interface * @param CSB The Chip select on the SCP1000 */ SCP1000(PinName mosi, PinName miso, PinName sck, PinName CSB); //Methods void SetMode(SCPMode mode); /** *Read the current Pressure. *This blocks until the sensor has compelted a reading * * @returns The pressure in pascals */ float read(); /** * Reads the temperature as measured by the SCP1000. * This blocks until the sensor has completed a reading * *returns The temperature in degrees celsius */ float readTemperature(); private: SCPMode _mode; int _isReady(); //Interfaces SPI _spi; DigitalOut _CSB; // DigitalIn _DRDY; //Interrupt data ready - also need to be able to attach a function to this class // DigitalOut _TRIG; //Trigger // DigitalOut _PD; //Power Down }; #endif