91

Dependencies:   ADXL362 ATParser MPL3115A2 TSL2561 mbed

Fork of Lab9-1 by CPS-Lab*

Committer:
fanbsun
Date:
Fri Mar 02 17:49:50 2018 +0000
Revision:
0:9a45e4f07b10
Child:
1:2630bf98c8fe
Child:
2:c322c1331eaa
lab7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fanbsun 0:9a45e4f07b10 1 #include "mbed.h"
fanbsun 0:9a45e4f07b10 2 #include "MPL3115A2.h"
fanbsun 0:9a45e4f07b10 3 #include "ADXL362.h"
fanbsun 0:9a45e4f07b10 4 #include <string>
fanbsun 0:9a45e4f07b10 5 #include <math.h>
fanbsun 0:9a45e4f07b10 6
fanbsun 0:9a45e4f07b10 7
fanbsun 0:9a45e4f07b10 8 ADXL362 ADXL362(PA_0,PA_7,PA_6,PA_1);
fanbsun 0:9a45e4f07b10 9 Serial pc(SERIAL_TX, SERIAL_RX);
fanbsun 0:9a45e4f07b10 10 DigitalOut myled(LED1);
fanbsun 0:9a45e4f07b10 11 DigitalOut powerpin(PA_8);
fanbsun 0:9a45e4f07b10 12
fanbsun 0:9a45e4f07b10 13 // Selects SDA as I2C1_SDA on pin PB_7
fanbsun 0:9a45e4f07b10 14 // Selects SCL on I2C1_SCL on pin PB_6
fanbsun 0:9a45e4f07b10 15 // The I2C address of the pressure sensor is fixed at 0x60.
fanbsun 0:9a45e4f07b10 16 MPL3115A2 pressure_sensor(PB_7,PB_6,0x60);
fanbsun 0:9a45e4f07b10 17
fanbsun 0:9a45e4f07b10 18 int main() {
fanbsun 0:9a45e4f07b10 19 int8_t a1, a2, a;
fanbsun 0:9a45e4f07b10 20 double p, t;
fanbsun 0:9a45e4f07b10 21 double v = 0.0;
fanbsun 0:9a45e4f07b10 22 int cnt = 0;
fanbsun 0:9a45e4f07b10 23 myled = 0;
fanbsun 0:9a45e4f07b10 24 powerpin = 0;
fanbsun 0:9a45e4f07b10 25
fanbsun 0:9a45e4f07b10 26 wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
fanbsun 0:9a45e4f07b10 27 ADXL362.set_mode(ADXL362::MEASUREMENT);
fanbsun 0:9a45e4f07b10 28
fanbsun 0:9a45e4f07b10 29
fanbsun 0:9a45e4f07b10 30 while(1)
fanbsun 0:9a45e4f07b10 31 {
fanbsun 0:9a45e4f07b10 32 if(powerpin)
fanbsun 0:9a45e4f07b10 33 {
fanbsun 0:9a45e4f07b10 34 myled = 1;
fanbsun 0:9a45e4f07b10 35 a1=ADXL362.scanz_u8();
fanbsun 0:9a45e4f07b10 36 p=pressure_sensor.getPressure();
fanbsun 0:9a45e4f07b10 37 t=pressure_sensor.getTemperature();
fanbsun 0:9a45e4f07b10 38
fanbsun 0:9a45e4f07b10 39 pc.printf("temp_%d = %f C ; pressure_%d = %f \n\r Pa",cnt,t,cnt,p);
fanbsun 0:9a45e4f07b10 40 cnt++;
fanbsun 0:9a45e4f07b10 41
fanbsun 0:9a45e4f07b10 42 wait_ms(100);
fanbsun 0:9a45e4f07b10 43 a2=ADXL362.scanz_u8();
fanbsun 0:9a45e4f07b10 44 a = a1 - a2;
fanbsun 0:9a45e4f07b10 45
fanbsun 0:9a45e4f07b10 46 v = v + double(a) * 0.1;
fanbsun 0:9a45e4f07b10 47 pc.printf(" velocity = %f \n\r",v);
fanbsun 0:9a45e4f07b10 48 }
fanbsun 0:9a45e4f07b10 49 else
fanbsun 0:9a45e4f07b10 50 {
fanbsun 0:9a45e4f07b10 51 myled = 0;
fanbsun 0:9a45e4f07b10 52 }
fanbsun 0:9a45e4f07b10 53 }
fanbsun 0:9a45e4f07b10 54 }
fanbsun 0:9a45e4f07b10 55