lab 6
Dependencies: ADXL362 mbed MPL3115A2
Diff: main.cpp
- Revision:
- 22:1cd3cb77ec07
- Parent:
- 21:b85d1a4f0373
- Child:
- 23:f9461117d7e3
--- a/main.cpp Tue Feb 27 14:35:58 2018 +0000 +++ b/main.cpp Tue Feb 27 15:44:40 2018 +0000 @@ -82,10 +82,10 @@ } //map of register values and names for the adxl -char mregids[34]; -char* mregnames[34]; +char mregids[46]; +char* mregnames[46]; //populating the map -void initmap() { +void minitmap() { mregids[0] = 0x00; mregids[1] = 0x01; mregids[2] = 0x02; @@ -184,6 +184,9 @@ // 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); +Serial pc(USBTX, USBRX); +I2C i2c(PB_7, PB_6); +MPL3115A2 MPL3115A2(&i2c, &pc); int adxl362_reg_print(int s, int l){ //check s is between 0x00 and 0x2E @@ -266,40 +269,43 @@ //check length > 0 printf("mpl: requires length >= 0, given %d\n\r", l); return -1; - }else{ + } else { //else do stuff - char whoami = mpl115A2.read_reg(MPL3115A2::WHO_AM_I); - if(whoami != 0xC4){ + uint8_t wai = MPL3115A2::whoAmI(); + printf("whoami = 0x%01x", wai); + if(wai != 0xC4) { printf("error: WHO_AM_I is not 0xC4; exiting\n"); return -1; - }else{ + } 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){ + if(l == 0) { stop = 34; - }else{ + } else { stop = s + l; } int in = s; - while(in < stop){ + while(in < stop) { //get register name char * name = mregnames[in]; //GET NAME char reg = mregids[in]; - char val = MPL3115A2::i2cRead(reg); //GET REG VAL + uint8_t val = MPL3115A2::i2cRead((char) reg); //GET REG VAL //print val printf("0x%01x: %s=0x%01x\r\n", mregids[in], name, val); in++; - } - } - } -} + }//while + }//else + }//else + return 0; +}//print int main() { initmap(); + minitmap(); adxl362.reset(); wait_ms(600); // we need to wait at least 500ms after ADXL362 reset adxl362.set_mode(ADXL362::MEASUREMENT);