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: mbed MatrixMath LPS25HB_I2C LSM9DS1 Matrix2 PIDcontroller LoopTicker SBUS_without_mainfile UsaPack solaESKF_wind Vector3 CalibrateMagneto FastPWM
datatransfer.cpp@92:6a2319f7f6ed, 2022-01-13 (annotated)
- Committer:
- NaotoMorita
- Date:
- Thu Jan 13 11:15:34 2022 +0000
- Revision:
- 92:6a2319f7f6ed
- Parent:
- 91:393b9ae62681
- Child:
- 93:b0f7a1e91476
- Child:
- 96:0be0d80d5299
for 1/14 flight test
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| NaotoMorita | 73:be7a8b8188de | 1 | #include "global.hpp" |
| NaotoMorita | 73:be7a8b8188de | 2 | |
| NaotoMorita | 73:be7a8b8188de | 3 | void send2center() |
| NaotoMorita | 73:be7a8b8188de | 4 | { |
| NaotoMorita | 73:be7a8b8188de | 5 | valuePack& vp = posValues; |
| NaotoMorita | 73:be7a8b8188de | 6 | vp.acc[0] = acc.x; |
| NaotoMorita | 73:be7a8b8188de | 7 | vp.acc[1] = acc.y; |
| NaotoMorita | 73:be7a8b8188de | 8 | vp.acc[2] = acc.z; |
| NaotoMorita | 73:be7a8b8188de | 9 | vp.gyro[0] = gyro.x; |
| NaotoMorita | 73:be7a8b8188de | 10 | vp.gyro[1] = gyro.y; |
| NaotoMorita | 73:be7a8b8188de | 11 | vp.gyro[2] = gyro.z; |
| NaotoMorita | 73:be7a8b8188de | 12 | vp.mag[0] = mag.x; |
| NaotoMorita | 73:be7a8b8188de | 13 | vp.mag[1] = mag.y; |
| NaotoMorita | 73:be7a8b8188de | 14 | vp.mag[2] = mag.z; |
| NaotoMorita | 73:be7a8b8188de | 15 | vp.rpy[0] = rpy.x; |
| osaka | 86:6b8e797306b6 | 16 | vp.rpy[1] = rpy.y; |
| NaotoMorita | 73:be7a8b8188de | 17 | vp.rpy[2] = rpy.z; |
| osaka | 88:0fc5df2fddcb | 18 | vp.altitude = -palt; |
| NaotoMorita | 73:be7a8b8188de | 19 | vp.de = de; |
| NaotoMorita | 73:be7a8b8188de | 20 | vp.deobj = deobj; |
| osaka | 91:393b9ae62681 | 21 | if (prefligt_finished) |
| osaka | 91:393b9ae62681 | 22 | { |
| osaka | 91:393b9ae62681 | 23 | vp.readyFlag = 1; |
| osaka | 91:393b9ae62681 | 24 | } |
| osaka | 91:393b9ae62681 | 25 | else |
| osaka | 91:393b9ae62681 | 26 | { |
| osaka | 91:393b9ae62681 | 27 | vp.readyFlag = 0; |
| osaka | 91:393b9ae62681 | 28 | } |
| NaotoMorita | 90:0b1f62f7a83a | 29 | if(updateValues.calibrationFlag == 1111){ |
| NaotoMorita | 90:0b1f62f7a83a | 30 | vp.calibEndFlag = 2; |
| NaotoMorita | 90:0b1f62f7a83a | 31 | }else{ |
| NaotoMorita | 90:0b1f62f7a83a | 32 | vp.calibEndFlag = 0; |
| NaotoMorita | 90:0b1f62f7a83a | 33 | } |
| NaotoMorita | 73:be7a8b8188de | 34 | for(int i = 0 ; i<5 ; i++){ |
| NaotoMorita | 73:be7a8b8188de | 35 | vp.rc[i] = rc[i]; |
| NaotoMorita | 73:be7a8b8188de | 36 | } |
| NaotoMorita | 73:be7a8b8188de | 37 | tail.Send(tail_address[pos_tail], &(posValues)); |
| NaotoMorita | 92:6a2319f7f6ed | 38 | pc.printf("%f %f %f %d %d\r\n",gyro.x/M_PI*180.0f,gyro.y/M_PI*180.0f,gyro.z/M_PI*180.0f,vp.readyFlag,updateValues.calibrationFlag); |
| NaotoMorita | 73:be7a8b8188de | 39 | } |
| NaotoMorita | 73:be7a8b8188de | 40 | |
| NaotoMorita | 73:be7a8b8188de | 41 | // eeprom書き込み・読み込みに必要な関数 |
| NaotoMorita | 73:be7a8b8188de | 42 | void writeEEPROM(int address, unsigned int eeaddress, char *data, int size) |
| NaotoMorita | 73:be7a8b8188de | 43 | { |
| NaotoMorita | 73:be7a8b8188de | 44 | char i2cBuffer[size + 2]; |
| NaotoMorita | 73:be7a8b8188de | 45 | i2cBuffer[0] = (unsigned char)(eeaddress >> 8); // MSB |
| NaotoMorita | 73:be7a8b8188de | 46 | i2cBuffer[1] = (unsigned char)(eeaddress & 0xFF); // LSB |
| NaotoMorita | 73:be7a8b8188de | 47 | |
| NaotoMorita | 73:be7a8b8188de | 48 | for (int i = 0; i < size; i++) { |
| NaotoMorita | 73:be7a8b8188de | 49 | i2cBuffer[i + 2] = data[i]; |
| NaotoMorita | 73:be7a8b8188de | 50 | } |
| NaotoMorita | 73:be7a8b8188de | 51 | |
| NaotoMorita | 73:be7a8b8188de | 52 | int result = i2c.write(address, i2cBuffer, size + 2, false); |
| NaotoMorita | 73:be7a8b8188de | 53 | //sleep_ms(500); |
| NaotoMorita | 73:be7a8b8188de | 54 | } |
| NaotoMorita | 73:be7a8b8188de | 55 | |
| NaotoMorita | 73:be7a8b8188de | 56 | // this function has no read limit |
| NaotoMorita | 73:be7a8b8188de | 57 | void readEEPROM(int address, unsigned int eeaddress, char *data, int size) |
| NaotoMorita | 73:be7a8b8188de | 58 | { |
| NaotoMorita | 73:be7a8b8188de | 59 | char i2cBuffer[2]; |
| NaotoMorita | 73:be7a8b8188de | 60 | i2cBuffer[0] = (unsigned char)(eeaddress >> 8); // MSB |
| NaotoMorita | 73:be7a8b8188de | 61 | i2cBuffer[1] = (unsigned char)(eeaddress & 0xFF); // LSB |
| NaotoMorita | 73:be7a8b8188de | 62 | |
| NaotoMorita | 73:be7a8b8188de | 63 | // Reset eeprom pointer address |
| NaotoMorita | 73:be7a8b8188de | 64 | int result = i2c.write(address, i2cBuffer, 2, false); |
| NaotoMorita | 73:be7a8b8188de | 65 | |
| NaotoMorita | 73:be7a8b8188de | 66 | //sleep_ms(500); |
| NaotoMorita | 73:be7a8b8188de | 67 | |
| NaotoMorita | 73:be7a8b8188de | 68 | // Read eeprom |
| NaotoMorita | 73:be7a8b8188de | 69 | i2c.read(address, data, size); |
| NaotoMorita | 73:be7a8b8188de | 70 | //sleep_ms(500); |
| NaotoMorita | 73:be7a8b8188de | 71 | } |