lab 6
Dependencies: ADXL362 mbed MPL3115A2
main.cpp@0:0f663d16e8a2, 2018-02-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |