driver for gyro

Dependencies:   COG4050_ADT7420

Fork of COG4050_adxl355_adxl357-ver2 by ADI_CAC

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?

UserRevisionLine numberNew 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 }*/