R1370
Dependents: NHK2017_octopus2 NHK2017_octopus2_drive 2018NHK_gakugaku_robo 2018NHK_gaku_ver2
Fork of R1307 by
r1307.cpp@3:7105b2e1f51e, 2017-11-01 (annotated)
- Committer:
- UCHITAKE
- Date:
- Wed Nov 01 08:03:03 2017 +0000
- Revision:
- 3:7105b2e1f51e
- Parent:
- 2:deb20a97e035
- Child:
- 5:47dbcf162951
cupsuled;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WAT34 | 1:59efa65938c7 | 1 | #include "r1307.h" |
WAT34 | 1:59efa65938c7 | 2 | |
WAT34 | 1:59efa65938c7 | 3 | |
WAT34 | 1:59efa65938c7 | 4 | R1307::R1307(PinName tx_,PinName rx_): serial(tx_,rx_) |
WAT34 | 1:59efa65938c7 | 5 | { |
WAT34 | 2:deb20a97e035 | 6 | //ticker.attach(this,&R1307::update,0.01); |
WAT34 | 1:59efa65938c7 | 7 | serial.baud(115200); |
WAT34 | 1:59efa65938c7 | 8 | } |
WAT34 | 1:59efa65938c7 | 9 | |
WAT34 | 1:59efa65938c7 | 10 | |
WAT34 | 1:59efa65938c7 | 11 | void R1307::update() |
WAT34 | 1:59efa65938c7 | 12 | { |
WAT34 | 1:59efa65938c7 | 13 | uint8_t index; |
WAT34 | 1:59efa65938c7 | 14 | int16_t angle; |
WAT34 | 1:59efa65938c7 | 15 | int16_t rate; |
WAT34 | 1:59efa65938c7 | 16 | int16_t x_acc; |
WAT34 | 1:59efa65938c7 | 17 | int16_t y_acc; |
WAT34 | 1:59efa65938c7 | 18 | int16_t z_acc; |
WAT34 | 1:59efa65938c7 | 19 | uint8_t check_sum; |
WAT34 | 1:59efa65938c7 | 20 | //Verify packet heading information |
WAT34 | 1:59efa65938c7 | 21 | while(serial.getc() != 0xAA){ |
WAT34 | 1:59efa65938c7 | 22 | if(!serial.readable()) |
WAT34 | 1:59efa65938c7 | 23 | return; |
WAT34 | 1:59efa65938c7 | 24 | } |
WAT34 | 1:59efa65938c7 | 25 | if(serial.getc() != 0x00) |
WAT34 | 1:59efa65938c7 | 26 | return; |
WAT34 | 1:59efa65938c7 | 27 | //Assemble data |
WAT34 | 1:59efa65938c7 | 28 | |
WAT34 | 1:59efa65938c7 | 29 | index = serial.getc(); |
WAT34 | 1:59efa65938c7 | 30 | rate = (serial.getc() & 0xFF) | ((serial.getc() << 8) & 0xFF00); |
WAT34 | 1:59efa65938c7 | 31 | angle = (serial.getc() & 0xFF) | ((serial.getc()<< 8) & 0XFF00); |
WAT34 | 1:59efa65938c7 | 32 | x_acc = (serial.getc() & 0xFF) | ((serial.getc()<< 8) & 0xFF00); |
WAT34 | 1:59efa65938c7 | 33 | y_acc = (serial.getc() & 0xFF) | ((serial.getc() << 8) & 0XFF00); |
WAT34 | 1:59efa65938c7 | 34 | z_acc = (serial.getc() & 0xFF) | ((serial.getc() << 8) & 0xFF00); |
WAT34 | 1:59efa65938c7 | 35 | //Scale and store data |
WAT34 | 1:59efa65938c7 | 36 | gRate = rate / 100.0; |
WAT34 | 1:59efa65938c7 | 37 | gAngle = angle / 100.0; |
WAT34 | 1:59efa65938c7 | 38 | gX_acc = x_acc; |
WAT34 | 1:59efa65938c7 | 39 | gY_acc = y_acc; |
WAT34 | 1:59efa65938c7 | 40 | gZ_acc = z_acc; |
UCHITAKE | 3:7105b2e1f51e | 41 | } |
UCHITAKE | 3:7105b2e1f51e | 42 | float R1307::getRate() |
UCHITAKE | 3:7105b2e1f51e | 43 | { |
UCHITAKE | 3:7105b2e1f51e | 44 | return gRate; |
UCHITAKE | 3:7105b2e1f51e | 45 | } |
UCHITAKE | 3:7105b2e1f51e | 46 | |
UCHITAKE | 3:7105b2e1f51e | 47 | float R1307::getAngle() |
UCHITAKE | 3:7105b2e1f51e | 48 | { |
UCHITAKE | 3:7105b2e1f51e | 49 | return gAngle; |
WAT34 | 1:59efa65938c7 | 50 | } |
UCHITAKE | 3:7105b2e1f51e | 51 | |
UCHITAKE | 3:7105b2e1f51e | 52 | float R1307::getAccX() |
UCHITAKE | 3:7105b2e1f51e | 53 | { |
UCHITAKE | 3:7105b2e1f51e | 54 | return gX_acc; |
UCHITAKE | 3:7105b2e1f51e | 55 | } |
UCHITAKE | 3:7105b2e1f51e | 56 | |
UCHITAKE | 3:7105b2e1f51e | 57 | float R1307::getAccY() |
UCHITAKE | 3:7105b2e1f51e | 58 | { |
UCHITAKE | 3:7105b2e1f51e | 59 | return gY_acc; |
UCHITAKE | 3:7105b2e1f51e | 60 | } |
UCHITAKE | 3:7105b2e1f51e | 61 | |
UCHITAKE | 3:7105b2e1f51e | 62 | float R1307::getAccZ() |
UCHITAKE | 3:7105b2e1f51e | 63 | { |
UCHITAKE | 3:7105b2e1f51e | 64 | return gZ_acc; |
UCHITAKE | 3:7105b2e1f51e | 65 | } |