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 5:02aa71487c01, committed 2018-02-22
- Comitter:
- htdoughe
- Date:
- Thu Feb 22 20:19:25 2018 +0000
- Parent:
- 4:8065ca897f8b
- Child:
- 6:f05c72e636aa
- Commit message:
- testing
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Feb 22 15:45:26 2018 +0000
+++ b/main.cpp Thu Feb 22 20:19:25 2018 +0000
@@ -5,70 +5,87 @@
#include <string>
//map of register values and names
-std::map< int, int > registerids;
-std::map< int, char* > registernames;
+int regids[34];
+char* regnames[34];
//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));
+ regids[0] = 0x00;
+ regids[1] = 0x01;
+ regids[2] = 0x02;
+ regids[3] = 0x03;
+ regids[4] = 0x08;
+ regids[5] = 0x09;
+ regids[6] = 0x0A;
+ regids[7] = 0x0B;
+ regids[8] = 0x0c;
+ regids[9] = 0x0D;
+ regids[10] = 0x0E;
+ regids[11] = 0x0F;
+ regids[12] = 0x10;
+ regids[13] = 0x11;
+ regids[14] = 0x12;
+ regids[15] = 0x13;
+ regids[16] = 0x14;
+ regids[17] = 0x15;
+ regids[18] = 0x1F;
+ regids[19] = 0x20;
+ regids[20] = 0x21;
+ regids[21] = 0x22;
+ regids[22] = 0x23;
+ regids[23] = 0x24;
+ regids[24] = 0x25;
+ regids[25] = 0x26;
+ regids[26] = 0x27;
+ regids[27] = 0x28;
+ regids[28] = 0x29;
+ regids[29] = 0x2A;
+ regids[30] = 0x2B;
+ regids[31] = 0x2C;
+ regids[32] = 0x2D;
+ regids[33] = 0x2E;
+
+ regnames[0] = "DEVID_AD";
+ regnames[1] = "DEVID_MST";
+ regnames[2] = "PARTID";
+ regnames[3] = "REVID";
+ regnames[4] = "XDATA";
+ regnames[5] = "YDATA";
+ regnames[6] = "ZDATA";
+ regnames[7] = "STATUS";
+ regnames[8] = "FIFO_ENTRIES_L";
+ regnames[9] = "FIFO_ENTRIES_H";
+ regnames[10] = "XDATA_L";
+ regnames[11] = "XDATA_H";
+ regnames[12] = "YDATA_L";
+ regnames[13] = "YDATA_H";
+ regnames[14] = "ZDATA_L";
+ regnames[15] = "ZDATA_H";
+ regnames[16] = "TEMP_L";
+ regnames[17] = "TEMP_H";
+ regnames[18] = "SOFT_RESET";
+ regnames[19] = "THRESH_ACT_L";
+ regnames[20] = "THRESH_ACT_H";
+ regnames[21] = "TIME_ACT";
+ regnames[22] = "THRESH_INACT_L";
+ regnames[23] = "THRESH_INACT_H";
+ regnames[24] = "TIME_INACT_L";
+ regnames[25] = "TIME_INACT_H";
+ regnames[26] = "ACT_INACT_CTL";
+ regnames[27] = "FIFO_CONTROL";
+ regnames[28] = "FIFO_SAMPLES";
+ regnames[29] = "INTMAP1";
+ regnames[30] = "INTMAP2";
+ regnames[31] = "FILTER_CTL";
+ regnames[32] = "POWER_CTL";
+ regnames[33] = "SELF_TEST";
}
// 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);
- int8_t x,y,z;
- adxl362_reg_print(start, length);
-
- while(1) {
- x=adxl362.scanx_u8();
- y=adxl362.scany_u8();
- z=adxl362.scanz_u8();
- printf("x = %d y = %d z = %d\r\n",x,y,z);
- wait_ms(100);
- }
-}
-
int adxl362_reg_print(int s, int l){
//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;
@@ -79,7 +96,8 @@
}else{
// start sending stuff
//first check DEVID_AD == 0xAD
- if(adxl362_board.DEVID_AD != 0xAD){
+ int devid = (int) adxl362.read_reg_u16(ADXL362::DEVID_AD);
+ if(devid != 0xAD){
printf("error: DEVID_AD is not 0xAD; exiting\n");
return -1;
}else{
@@ -97,13 +115,34 @@
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
+ char * name = regnames[in]; //GET NAME
+ ADXL362::ADXL362_register_t reg = (ADXL362::ADXL362_register_t) regids[in];
+ int val = (int) adxl362.read_reg_u16(reg); //GET REG VAL
//print val
- printf("0x%01x: %s=0x%01x\r\n", in, name, val);
+ printf("0x%01x: %s=0x%01x\r\n", regids[in], name, val);
in++;
}
}
}
+ return 0;
+}
+
+int main() {
+ initmap();
+ adxl362.reset();
+ wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
+ adxl362.set_mode(ADXL362::MEASUREMENT);
+ int8_t x,y,z;
+ int start, length;
+ start = 0;
+ length = 3;
+ adxl362_reg_print(start, length);
+ while(1) {
+ x=adxl362.scanx_u8();
+ y=adxl362.scany_u8();
+ z=adxl362.scanz_u8();
+ printf("x = %d y = %d z = %d\r\n",x,y,z);
+ wait_ms(100);
+ }
}