Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SCP1000_Example ku-make_sensor ku-make_sensor201302 SCP1000_Example ... more
Diff: SCP1000.h
- Revision:
- 4:295e118b6e85
- Parent:
- 3:4d8b8ca54451
- Child:
- 7:61d2e698d988
diff -r 4d8b8ca54451 -r 295e118b6e85 SCP1000.h
--- 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);
};
SCP1000 Pressure Sensor