base program for tilt measurement
Fork of COG4050_adxl355_adxl357 by
main.cpp@2:14dc1ec57f3b, 2018-08-07 (annotated)
- Committer:
- vtoffoli
- Date:
- Tue Aug 07 12:49:37 2018 +0000
- Revision:
- 2:14dc1ec57f3b
- Parent:
- 1:d3aeaa02781d
- Child:
- 3:ee052fdb4331
draft
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
APS_Lab | 0:74a0756399ff | 1 | #include "mbed.h" |
vtoffoli | 2:14dc1ec57f3b | 2 | #include "ADXL355.h" |
vtoffoli | 2:14dc1ec57f3b | 3 | |
vtoffoli | 2:14dc1ec57f3b | 4 | Serial pc(USBTX, USBRX); |
vtoffoli | 2:14dc1ec57f3b | 5 | |
vtoffoli | 2:14dc1ec57f3b | 6 | ADXL355 accl(SPI1_CS0, SPI1_MOSI, SPI1_MISO, SPI1_SCLK); // PMOD port |
vtoffoli | 2:14dc1ec57f3b | 7 | |
vtoffoli | 2:14dc1ec57f3b | 8 | int main(){ |
vtoffoli | 2:14dc1ec57f3b | 9 | pc.baud(9600); |
vtoffoli | 2:14dc1ec57f3b | 10 | pc.printf("SPI ADXL355 and ADXL357 Demo\n"); |
vtoffoli | 2:14dc1ec57f3b | 11 | pc.printf("GET device ID\n"); |
vtoffoli | 2:14dc1ec57f3b | 12 | uint8_t x; |
vtoffoli | 2:14dc1ec57f3b | 13 | while(1) { |
vtoffoli | 2:14dc1ec57f3b | 14 | x=accl.read_reg(accl.DEVID_AD); |
vtoffoli | 2:14dc1ec57f3b | 15 | printf("id = %x \r\n",x); |
vtoffoli | 2:14dc1ec57f3b | 16 | wait(1.0); |
vtoffoli | 2:14dc1ec57f3b | 17 | } |
vtoffoli | 2:14dc1ec57f3b | 18 | } |
vtoffoli | 2:14dc1ec57f3b | 19 | |
APS_Lab | 0:74a0756399ff | 20 | |
vtoffoli | 2:14dc1ec57f3b | 21 | |
vtoffoli | 2:14dc1ec57f3b | 22 | /* |
vtoffoli | 1:d3aeaa02781d | 23 | const static uint8_t _WRITE_REG_CMD = 0x0A; // write register |
vtoffoli | 1:d3aeaa02781d | 24 | const static uint8_t _READ_REG_CMD = 0x0B; // read register |
vtoffoli | 1:d3aeaa02781d | 25 | const static uint8_t _DUMMY_BYTE = 0xAA; |
APS_Lab | 0:74a0756399ff | 26 | |
APS_Lab | 0:74a0756399ff | 27 | |
vtoffoli | 1:d3aeaa02781d | 28 | SPI adxl362(SPI1_MOSI, SPI1_MISO, SPI1_SCLK); |
vtoffoli | 1:d3aeaa02781d | 29 | DigitalOut CS(SPI1_CS3); |
APS_Lab | 0:74a0756399ff | 30 | |
vtoffoli | 1:d3aeaa02781d | 31 | void adxl362_reset(void); |
vtoffoli | 1:d3aeaa02781d | 32 | int adxl362_GetID(void); |
vtoffoli | 1:d3aeaa02781d | 33 | void adxl362_write_reg(uint8_t reg, uint8_t data); |
vtoffoli | 1:d3aeaa02781d | 34 | uint8_t adxl362_read_reg(uint8_t reg); |
APS_Lab | 0:74a0756399ff | 35 | |
APS_Lab | 0:74a0756399ff | 36 | Serial pc(USBTX, USBRX); |
APS_Lab | 0:74a0756399ff | 37 | |
APS_Lab | 0:74a0756399ff | 38 | int main() { |
vtoffoli | 1:d3aeaa02781d | 39 | pc.baud(9600); |
vtoffoli | 1:d3aeaa02781d | 40 | pc.printf("SPI ADXL362 Demo\n"); |
vtoffoli | 1:d3aeaa02781d | 41 | CS = 1; |
vtoffoli | 1:d3aeaa02781d | 42 | adxl362.lock(); |
APS_Lab | 0:74a0756399ff | 43 | |
vtoffoli | 1:d3aeaa02781d | 44 | //adxl362_reset(); |
vtoffoli | 1:d3aeaa02781d | 45 | wait_ms(600); // we need to wait at least 500ms after ADXL362 reset |
vtoffoli | 1:d3aeaa02781d | 46 | //adxl362.set_mode(ADXL362::MEASUREMENT); |
vtoffoli | 1:d3aeaa02781d | 47 | uint8_t x,y,z; |
vtoffoli | 1:d3aeaa02781d | 48 | while(1) { |
vtoffoli | 1:d3aeaa02781d | 49 | x=adxl362_GetID(); |
vtoffoli | 1:d3aeaa02781d | 50 | //y=adxl362.scany_u8(); |
vtoffoli | 1:d3aeaa02781d | 51 | //z=adxl362.scanz_u8(); |
vtoffoli | 1:d3aeaa02781d | 52 | //printf("x = %x y = %x z = %x\r\n",x,y,z); |
vtoffoli | 1:d3aeaa02781d | 53 | printf("id = %x \r\n",x); |
vtoffoli | 1:d3aeaa02781d | 54 | wait_ms(10); |
APS_Lab | 0:74a0756399ff | 55 | } |
APS_Lab | 0:74a0756399ff | 56 | } |
APS_Lab | 0:74a0756399ff | 57 | |
vtoffoli | 1:d3aeaa02781d | 58 | void adxl362_reset(void) |
vtoffoli | 1:d3aeaa02781d | 59 | { // format |
vtoffoli | 1:d3aeaa02781d | 60 | adxl362.format(8,0); |
vtoffoli | 1:d3aeaa02781d | 61 | adxl362.frequency(5e6); |
APS_Lab | 0:74a0756399ff | 62 | |
vtoffoli | 1:d3aeaa02781d | 63 | adxl362_write_reg(0x1F, 0x52); |
APS_Lab | 0:74a0756399ff | 64 | } |
vtoffoli | 1:d3aeaa02781d | 65 | |
vtoffoli | 1:d3aeaa02781d | 66 | void adxl362_write_reg(uint8_t reg, uint8_t data) |
vtoffoli | 1:d3aeaa02781d | 67 | { |
vtoffoli | 1:d3aeaa02781d | 68 | adxl362.format(8, 0); |
vtoffoli | 1:d3aeaa02781d | 69 | CS = 0; |
vtoffoli | 1:d3aeaa02781d | 70 | adxl362.write(_WRITE_REG_CMD); |
vtoffoli | 1:d3aeaa02781d | 71 | adxl362.write(static_cast<uint8_t>(reg)); |
vtoffoli | 1:d3aeaa02781d | 72 | adxl362.write(static_cast<uint8_t>(data)); |
vtoffoli | 1:d3aeaa02781d | 73 | CS = 1; |
vtoffoli | 1:d3aeaa02781d | 74 | } |
APS_Lab | 0:74a0756399ff | 75 | |
vtoffoli | 1:d3aeaa02781d | 76 | uint8_t adxl362_read_reg(uint8_t reg) |
APS_Lab | 0:74a0756399ff | 77 | { |
vtoffoli | 1:d3aeaa02781d | 78 | uint8_t ret_val; |
vtoffoli | 1:d3aeaa02781d | 79 | CS = 0; |
vtoffoli | 1:d3aeaa02781d | 80 | adxl362.format(8, 0); |
vtoffoli | 1:d3aeaa02781d | 81 | adxl362.write(_READ_REG_CMD); |
vtoffoli | 1:d3aeaa02781d | 82 | adxl362.write(reg); |
vtoffoli | 1:d3aeaa02781d | 83 | ret_val = adxl362.write(_DUMMY_BYTE); |
vtoffoli | 1:d3aeaa02781d | 84 | CS = 1; |
vtoffoli | 1:d3aeaa02781d | 85 | return ret_val; |
vtoffoli | 1:d3aeaa02781d | 86 | } |
vtoffoli | 1:d3aeaa02781d | 87 | int adxl362_GetID(void) |
vtoffoli | 1:d3aeaa02781d | 88 | { |
vtoffoli | 1:d3aeaa02781d | 89 | uint8_t ret_val; |
vtoffoli | 1:d3aeaa02781d | 90 | ret_val = adxl362_read_reg(0x00); |
vtoffoli | 1:d3aeaa02781d | 91 | return ret_val; |
vtoffoli | 2:14dc1ec57f3b | 92 | }*/ |