lab 6

Dependencies:   ADXL362 mbed MPL3115A2

Committer:
rmneubau
Date:
Tue Feb 20 15:24:50 2018 +0000
Revision:
0:0f663d16e8a2
Child:
1:b8716571ecac
lab 6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rmneubau 0:0f663d16e8a2 1 #include "mbed.h"
rmneubau 0:0f663d16e8a2 2 #include "mbed.h"
rmneubau 0:0f663d16e8a2 3 #include "ADXL362.h"
rmneubau 0:0f663d16e8a2 4
rmneubau 0:0f663d16e8a2 5 // Interface pulled from ADXL362.cpp
rmneubau 0:0f663d16e8a2 6 // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) :
rmneubau 0:0f663d16e8a2 7 ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
rmneubau 0:0f663d16e8a2 8
rmneubau 0:0f663d16e8a2 9 int main() {
rmneubau 0:0f663d16e8a2 10 adxl362.reset();
rmneubau 0:0f663d16e8a2 11 wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
rmneubau 0:0f663d16e8a2 12 adxl362.set_mode(ADXL362::MEASUREMENT);
rmneubau 0:0f663d16e8a2 13 int8_t x,y,z;
rmneubau 0:0f663d16e8a2 14 adxl362_reg_print(start, length);
rmneubau 0:0f663d16e8a2 15
rmneubau 0:0f663d16e8a2 16 while(1) {
rmneubau 0:0f663d16e8a2 17 x=adxl362.scanx_u8();
rmneubau 0:0f663d16e8a2 18 y=adxl362.scany_u8();
rmneubau 0:0f663d16e8a2 19 z=adxl362.scanz_u8();
rmneubau 0:0f663d16e8a2 20 printf("x = %d y = %d z = %d\r\n",x,y,z);
rmneubau 0:0f663d16e8a2 21 wait_ms(100);
rmneubau 0:0f663d16e8a2 22 }
rmneubau 0:0f663d16e8a2 23 }
rmneubau 0:0f663d16e8a2 24
rmneubau 0:0f663d16e8a2 25 int adxl362_reg_print(int s, int l){
rmneubau 0:0f663d16e8a2 26 //check s is 0x00 and 0x2E
rmneubau 0:0f663d16e8a2 27 if(s > 0x2E || s < 0x00){
rmneubau 0:0f663d16e8a2 28 printf("adx: requires start between 0x00 and 0x2E; given %d\n", s);
rmneubau 0:0f663d16e8a2 29 return 1;
rmneubau 0:0f663d16e8a2 30 }else if(l < 0){
rmneubau 0:0f663d16e8a2 31 printf("adx: requires length > 0, given %d\n", l);
rmneubau 0:0f663d16e8a2 32 return 1;
rmneubau 0:0f663d16e8a2 33 }else{
rmneubau 0:0f663d16e8a2 34 // start sending stuff
rmneubau 0:0f663d16e8a2 35 //first check DEVID_AD == 0xAD
rmneubau 0:0f663d16e8a2 36 if(DEVID_AD != 0xAD){
rmneubau 0:0f663d16e8a2 37 printf("error: DEVID_AD is not 0xAD\n");
rmneubau 0:0f663d16e8a2 38 return 1;
rmneubau 0:0f663d16e8a2 39 }else{
rmneubau 0:0f663d16e8a2 40 //now do stuff
rmneubau 0:0f663d16e8a2 41 }
rmneubau 0:0f663d16e8a2 42 }
rmneubau 0:0f663d16e8a2 43
rmneubau 0:0f663d16e8a2 44 //check length >0
rmneubau 0:0f663d16e8a2 45 //if length == 0, send everything from s to end of registers
rmneubau 0:0f663d16e8a2 46 }