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.
Fork of BNO055 by
Revision 7:8a893ab512f4, committed 2016-07-21
- Comitter:
- jebradshaw
- Date:
- Thu Jul 21 11:38:53 2016 +0000
- Parent:
- 6:1f722ffec323
- Commit message:
- Fixed errors in library and added calibration example
Changed in this revision
BNO055.cpp | Show annotated file Show diff for this revision Revisions of this file |
BNO055.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/BNO055.cpp Tue Sep 22 19:09:45 2015 +0000 +++ b/BNO055.cpp Thu Jul 21 11:38:53 2016 +0000 @@ -85,7 +85,7 @@ } else { rx = rx | units; - rate_scale = 1.0f/900.0f; + angle_scale = 1.0f/900.0f; } writechar(BNO055_UNIT_SEL_ADDR,rx); } @@ -103,11 +103,45 @@ writechar(BNO055_UNIT_SEL_ADDR,rx); } -void BNO055::set_orientation(char units){ - readchar(BNO055_UNIT_SEL_ADDR); - if (units == WINDOWS) rx = rx &0x7F; - else rx = rx | units; - writechar(BNO055_UNIT_SEL_ADDR,rx); +void BNO055::set_orientation(int position){ + switch(position){ + case 0: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x21); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x04); + break; + case 1: //(Default) + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x24); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x00); + break; + case 2: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x24); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x06); + break; + case 3: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x21); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x02); + break; + case 4: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x24); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x03); + break; + case 5: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x21); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x01); + break; + case 6: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x21); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x07); + break; + case 7: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x24); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x05); + break; + default: + writechar(BNO055_AXIS_MAP_CONFIG_ADDR,0x24); + writechar(BNO055_AXIS_MAP_SIGN_ADDR,0x00); + break; + } } void BNO055::setmode(char omode){
--- a/BNO055.h Tue Sep 22 19:09:45 2015 +0000 +++ b/BNO055.h Thu Jul 21 11:38:53 2016 +0000 @@ -202,7 +202,7 @@ /** Set the output units from the temperature sensor, either CENTIGRADE or FAHRENHEIT **/ void set_temp_units(char units); /** Set the data output format to either WINDOWS or ANDROID **/ - void set_orientation(char units); + void set_orientation(int position); /** Set the mapping of the exes/directions as per page 25 of datasheet range 0-7, any value outside this will set the orientation to P1 (default at power up) **/ void set_mapping(char orient);