Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ADXL362 mbed MPL3115A2
Revision 4:8065ca897f8b, committed 2018-02-22
- Comitter:
- htdoughe
- Date:
- Thu Feb 22 15:45:26 2018 +0000
- Parent:
- 3:813694e51f72
- Child:
- 5:02aa71487c01
- Commit message:
- so many errors but i think i know where to go from here
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Feb 20 15:45:14 2018 +0000 +++ b/main.cpp Thu Feb 22 15:45:26 2018 +0000 @@ -1,12 +1,56 @@ -#include "mbed.h" #include "mbed.h" #include "ADXL362.h" - +#include "string.h" +#include <map> +#include <string> + +//map of register values and names +std::map< int, int > registerids; +std::map< int, char* > registernames; +//populating the map +void initmap() { + registerids.insert(0, 0x00); + registers.insert(1, make_pair("DEVID_MST", 0x01)); + registers.insert(2, make_pair("PARTID", 0x02)); + registers.insert(3, make_pair("REVID", 0x03)); + registers.insert(4, make_pair("XDATA", 0x08)); + registers.insert(5, make_pair("YDATA", 0x09)); + registers.insert(6, make_pair("ZDATA", 0x0A)); + registers.insert(7, make_pair("STATUS", 0x0B)); + registers.insert(8, make_pair("FIFO_ENTRIES_L", 0x0C)); + registers.insert(9, make_pair("FIFO_ENTRIES_H", 0x0D)); + registers.insert(10, make_pair("XDATA_L", 0x0E)); + registers.insert(11, make_pair("XDATA_H", 0x0F)); + registers.insert(12, make_pair("YDATA_L", 0x10)); + registers.insert(13, make_pair("YDATA_H", 0x11)); + registers.insert(14, make_pair("ZDATA_L", 0x12)); + registers.insert(15, make_pair("ZDATA_H", 0x13)); + registers.insert(16, make_pair("TEMP_L", 0x14)); + registers.insert(17, make_pair("TEMP_H", 0x15)); + registers.insert(18, make_pair("SOFT_RESET", 0x1F)); + registers.insert(19, make_pair("THRESH_ACT_L", 0x20)); + registers.insert(20, make_pair("THRESH_ACT_H", 0x21)); + registers.insert(21, make_pair("TIME_ACT", 0x22)); + registers.insert(22, make_pair("THRESH_INACT_L", 0x23)); + registers.insert(23, make_pair("THRESH_INACT_H", 0x24)); + registers.insert(24, make_pair("TIME_INACT_L", 0x25)); + registers.insert(25, make_pair("TIME_INACT_H", 0x26)); + registers.insert(26, make_pair("ACT_INACT_CTL", 0x27)); + registers.insert(27, make_pair("FIFO_CONTROL", 0x28)); + registers.insert(28, make_pair("FIFO_SAMPLES", 0x29)); + registers.insert(29, make_pair("INTMAP1", 0x2A)); + registers.insert(30, make_pair("INTMAP2", 0x2B)); + registers.insert(31, make_pair("FILTER_CTL", 0x2C)); + registers.insert(32, make_pair("POWER_CTL", 0x2D)); + registers.insert(33, make_pair("SELF_TEST", 0x2E)); +} + // Interface pulled from ADXL362.cpp // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) : ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1); int main() { + initmap(); adxl362.reset(); wait_ms(600); // we need to wait at least 500ms after ADXL362 reset adxl362.set_mode(ADXL362::MEASUREMENT); @@ -23,27 +67,41 @@ } int adxl362_reg_print(int s, int l){ - //check s is 0x00 and 0x2E + //check s is between 0x00 and 0x2E + unsigned char regVal = 0; if(s > 0x2E || s < 0x00){ printf("adx: requires start between 0x00 and 0x2E; given %d (0x%01x)\n", s,s); - return 1; + return -1; }else if(l < 0){ - //check length >0 + //check length > 0 printf("adx: requires length >= 0, given %d\n", l); - return 1; + return -1; }else{ // start sending stuff //first check DEVID_AD == 0xAD - if(DEVID_AD != 0xAD){ + if(adxl362_board.DEVID_AD != 0xAD){ printf("error: DEVID_AD is not 0xAD; exiting\n"); - return 1; + return -1; }else{ //now do stuff //if length == 0, send everything from s to end of registers + //else print from s to l + // formula : range = end - start - length + // area = start + range + int stop = 0; if(l == 0){ - + stop = 34; }else{ - //else send from s to s+l + stop = s + l; + } + int in = s; + while(in < stop){ + //get register name + string name = registers[in].first; //GET NAME + uint16_t val = ADXL362::read_reg_u16(registers[in].secod); //GET REG VAL + //print val + printf("0x%01x: %s=0x%01x\r\n", in, name, val); + in++; } } }