Library to interface the SCP1000 temperature and pressure sensor.

Dependents:   SCP1000_Example ku-make_sensor ku-make_sensor201302 SCP1000_Example ... more

Revision:
4:295e118b6e85
Parent:
3:4d8b8ca54451
Child:
7:61d2e698d988
--- a/SCP1000.h	Tue Oct 05 04:19:14 2010 +0000
+++ b/SCP1000.h	Tue Oct 05 19:59:20 2010 +0000
@@ -9,22 +9,7 @@
 
 class SCP1000 {
     public:
-        SCP1000(PinName mosi, PinName miso, PinName sclk, PinName cs)
-            : m_spi(mosi, miso, sclk)
-            , m_cs(cs) {
-            m_cs=1;
-            m_spi.frequency(500000); // the fastest of the sensor
-            m_spi.format(8, 0); // duda son dos palabras de 8 bits? 
-            wait(0.5);
-            //------------------------------------------------
-            // pc.printf("RESET\r\n");
-            write_register(0x06,0x01);
-            wait(0.5);
-
-            // pc.printf("Initialize High Resolution Constant Reading Mode\r\n");
-            write_register(0x03,0x0A);
-            wait(0.5);
-        };
+        SCP1000(PinName mosi, PinName miso, PinName sclk, PinName cs);
         
         ~SCP1000() { /* empty */ };
         
@@ -33,21 +18,9 @@
             Reads the pressure from the sensor
             @return Pressure in pascals.
         */
-        unsigned long readPressure() {
-            unsigned long pressure_msb = read_register(PRESSURE);
-            pressure_msb &= 0x07;
-            unsigned long pressure_lsb = read_register16(PRESSURE_LSB);
-            unsigned long pressure = ((pressure_msb<<16)| pressure_lsb);
-            pressure /= 4;
-            
-            return pressure;
-        };
+        unsigned long readPressure();
         
-        float readTemperature() {
-            float temp_in = read_register16(TEMP);
-            temp_in /= 20;
-            return temp_in;
-        };
+        float readTemperature();
         
         
     private:
@@ -57,36 +30,9 @@
         SPI m_spi;
         DigitalOut m_cs;
         
-        char read_register(char register_name) {
-            register_name <<=2;
-            register_name &= 0xFC;
-            m_cs=0; //Select SPI device
-            m_spi.write(register_name); //Send register location
-            char register_value=m_spi.write(0x00);
-            m_cs=1;
-            return register_value;  
-        };
-
-        void write_register(char register_name, char register_value) {
-            register_name <<= 2;
-            register_name |= 0x02; //le estamos diciendo que escriba
-            m_cs=0; //Select SPI device
-            m_spi.write(register_name); //Send register location
-            m_spi.write(register_value); //Send value to record into register
-            m_cs=1;
-        }; 
-
-        float read_register16(char register_name) {   
-            register_name <<= 2;
-            register_name &= 0xFC; //Read command
-            m_cs=0; //Select SPI Device
-            m_spi.write(register_name); //Write byte to device
-            int in_byte1 = m_spi.write(0x00);    
-            int in_byte2 = m_spi.write(0x00);
-            m_cs=1;
-            float in_word= (in_byte1<<=8) | (in_byte2);   
-            return(in_word);
-        };
+        char read_register(char register_name);
+        void write_register(char register_name, char register_value);
+        float read_register16(char register_name);
 
 };