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++;
}
}
}