MCP3204をSTM303K8T6で同時に6個使ってみた

Dependencies:   mbed 24LC1025 MCP3204

Committer:
sashida_h
Date:
Wed Sep 09 08:07:13 2020 +0000
Revision:
3:99c659d89698
Parent:
2:133b3bf22850
Child:
4:56d1f3a81b30
[add]CAN_0x01 receive

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sashida_h 0:c38491379a28 1 #include "mbed.h"
sashida_h 0:c38491379a28 2 #include "MCP3204.h"
sashida_h 3:99c659d89698 3 #include "24LC1025.h"
sashida_h 0:c38491379a28 4
sashida_h 1:717563cb9070 5 Serial pc(PA_2, PA_3, 115200); //pin19,20 TX,RX
sashida_h 3:99c659d89698 6 CAN can(PA_11, PA_12); //pin21,22 rd,td
sashida_h 0:c38491379a28 7 SPI spi(PA_7, PA_6, PA_5);
sashida_h 2:133b3bf22850 8 MCP3204 mcp1(spi,PB_0); //下z-
sashida_h 2:133b3bf22850 9 MCP3204 mcp2(spi,PB_1); //右x+
sashida_h 2:133b3bf22850 10 MCP3204 mcp3(spi,PB_3); //左x-
sashida_h 2:133b3bf22850 11 MCP3204 mcp4(spi,PA_8); // 前y+
sashida_h 2:133b3bf22850 12 MCP3204 mcp5(spi,PA_10); //上z+
sashida_h 2:133b3bf22850 13 MCP3204 mcp6(spi,PF_0); //後y-
sashida_h 3:99c659d89698 14 LC1025 eeprom = LC1025(PB_7, PB_6);
sashida_h 3:99c659d89698 15 DigitalOut led(PB_5);
sashida_h 3:99c659d89698 16
sashida_h 1:717563cb9070 17
sashida_h 2:133b3bf22850 18 CANMessage msg;
sashida_h 1:717563cb9070 19
sashida_h 1:717563cb9070 20 #define T 0.03
sashida_h 0:c38491379a28 21
sashida_h 3:99c659d89698 22 float cal_x=0,cal_y=0,cal_z=0;
sashida_h 3:99c659d89698 23 int i,j,cnt=0,page_frg=0;
sashida_h 3:99c659d89698 24 float world_time;
sashida_h 3:99c659d89698 25 uint16_t eeprom_cnt = 0x0000;
sashida_h 3:99c659d89698 26 char serialData[4];
sashida_h 3:99c659d89698 27
sashida_h 2:133b3bf22850 28 union Float2Byte{
sashida_h 2:133b3bf22850 29 float _float;
sashida_h 2:133b3bf22850 30 char _byte[4];
sashida_h 2:133b3bf22850 31 };
sashida_h 2:133b3bf22850 32 typedef union Float2Byte Float2Byte;
sashida_h 2:133b3bf22850 33
sashida_h 3:99c659d89698 34 union Int2Byte{
sashida_h 3:99c659d89698 35 unsigned short _int;
sashida_h 3:99c659d89698 36 char _byte[2];
sashida_h 3:99c659d89698 37 };
sashida_h 3:99c659d89698 38 typedef union Int2Byte Int2Byte;
sashida_h 3:99c659d89698 39
sashida_h 3:99c659d89698 40
sashida_h 2:133b3bf22850 41 void send(float senddata,int id){
sashida_h 2:133b3bf22850 42 //pc.printf("Master send()\n\r");
sashida_h 2:133b3bf22850 43
sashida_h 2:133b3bf22850 44 Float2Byte sendFloat;
sashida_h 2:133b3bf22850 45 sendFloat._float = senddata;
sashida_h 2:133b3bf22850 46 //ここに送りたい値を入れる.
sashida_h 2:133b3bf22850 47
sashida_h 2:133b3bf22850 48 char serialData[4];
sashida_h 2:133b3bf22850 49 for(int i=0;i<4;++i){
sashida_h 2:133b3bf22850 50 serialData[i] = sendFloat._byte[i];
sashida_h 2:133b3bf22850 51 //pc.printf("send_char: %d\n\r", serialData[i]);
sashida_h 2:133b3bf22850 52 }
sashida_h 2:133b3bf22850 53 //pc.printf("sendFloat: %f\n\r", sendFloat._float);
sashida_h 2:133b3bf22850 54 if(can.write(CANMessage(id, serialData, 4))){
sashida_h 2:133b3bf22850 55 //pc.printf("Send.\n\r");
sashida_h 2:133b3bf22850 56 }
sashida_h 2:133b3bf22850 57 }
sashida_h 2:133b3bf22850 58
sashida_h 3:99c659d89698 59 void send2(unsigned short senddata1,unsigned short senddata2,unsigned short senddata3,int id){
sashida_h 3:99c659d89698 60 //pc.printf("Master send()\n\r");
sashida_h 3:99c659d89698 61
sashida_h 3:99c659d89698 62 /*ID: 0x01*/
sashida_h 3:99c659d89698 63 Int2Byte sendInt;
sashida_h 3:99c659d89698 64 sendInt._int = senddata1;
sashida_h 3:99c659d89698 65 //ここに送りたい値を入れる.
sashida_h 3:99c659d89698 66
sashida_h 3:99c659d89698 67 char serialData[6];
sashida_h 3:99c659d89698 68
sashida_h 3:99c659d89698 69 serialData[0] = sendInt._byte[0];
sashida_h 3:99c659d89698 70 serialData[1] = sendInt._byte[1];
sashida_h 3:99c659d89698 71 //pc.printf("send_char: %d\n\r", serialData[i]);
sashida_h 3:99c659d89698 72 sendInt._int = senddata2;
sashida_h 3:99c659d89698 73 serialData[2] = sendInt._byte[0];
sashida_h 3:99c659d89698 74 serialData[3] = sendInt._byte[1];
sashida_h 3:99c659d89698 75
sashida_h 3:99c659d89698 76 sendInt._int = senddata3;
sashida_h 3:99c659d89698 77 serialData[4] = sendInt._byte[0];
sashida_h 3:99c659d89698 78 serialData[5] = sendInt._byte[1];
sashida_h 3:99c659d89698 79 //pc.printf("sendFloat: %f\n\r", sendFloat._float);
sashida_h 3:99c659d89698 80 if(can.write(CANMessage(id, serialData, 6))){
sashida_h 3:99c659d89698 81 //pc.printf("Send.\n\r");
sashida_h 3:99c659d89698 82 }
sashida_h 3:99c659d89698 83 }
sashida_h 3:99c659d89698 84
sashida_h 2:133b3bf22850 85 void receive(){
sashida_h 2:133b3bf22850 86 Float2Byte getFloat;
sashida_h 3:99c659d89698 87 Int2Byte getInt;
sashida_h 3:99c659d89698 88 led = 0;
sashida_h 2:133b3bf22850 89
sashida_h 2:133b3bf22850 90 if(can.read(msg)){
sashida_h 3:99c659d89698 91 //ID: 0x01
sashida_h 2:133b3bf22850 92 if(msg.id == 0x01){
sashida_h 2:133b3bf22850 93 //pc.printf("ID: 0x01\n\r");
sashida_h 2:133b3bf22850 94 for(int i=0;i<4;++i){
sashida_h 2:133b3bf22850 95 getFloat._byte[i] = msg.data[i];
sashida_h 2:133b3bf22850 96 //pc.printf("get_char: %d\n\r", getFloat._byte[i]);
sashida_h 2:133b3bf22850 97 }
sashida_h 3:99c659d89698 98 world_time = getFloat._float;
sashida_h 3:99c659d89698 99 pc.printf("world_time:%.2f\r\n", world_time);
sashida_h 3:99c659d89698 100 }
sashida_h 3:99c659d89698 101
sashida_h 3:99c659d89698 102 if(msg.id == 0x02){
sashida_h 3:99c659d89698 103 //pc.printf("ID: 0x02\n\r");
sashida_h 3:99c659d89698 104 getInt._byte[0] = msg.data[0];
sashida_h 3:99c659d89698 105 getInt._byte[1] = msg.data[1];
sashida_h 3:99c659d89698 106 cal_x=(float)getInt._int /10.0f;
sashida_h 3:99c659d89698 107 pc.printf("Mag:%.2f", cal_x);
sashida_h 3:99c659d89698 108
sashida_h 3:99c659d89698 109 getInt._byte[0] = msg.data[2];
sashida_h 3:99c659d89698 110 getInt._byte[1] = msg.data[3];
sashida_h 3:99c659d89698 111 cal_y=(float)getInt._int /10.0f;
sashida_h 3:99c659d89698 112 pc.printf(",%.2f", cal_y);
sashida_h 3:99c659d89698 113
sashida_h 3:99c659d89698 114 getInt._byte[0] = msg.data[4];
sashida_h 3:99c659d89698 115 getInt._byte[1] = msg.data[5];
sashida_h 3:99c659d89698 116 cal_z=(float)getInt._int /10.0f;
sashida_h 3:99c659d89698 117 pc.printf(",%.2f\r\n", cal_z);
sashida_h 3:99c659d89698 118
sashida_h 3:99c659d89698 119 if(page_frg == 0){
sashida_h 3:99c659d89698 120 *(float*)serialData=0.0f;
sashida_h 3:99c659d89698 121 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 122 *(float*)serialData=cal_x;
sashida_h 3:99c659d89698 123 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 124 *(float*)serialData=cal_y;
sashida_h 3:99c659d89698 125 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 126 *(float*)serialData=cal_z;
sashida_h 3:99c659d89698 127 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 128 *(float*)serialData=world_time;
sashida_h 3:99c659d89698 129 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 130 *(float*)serialData=0.0f;
sashida_h 3:99c659d89698 131 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 132 //pc.printf("%d,0x%x\r\n",page_frg,eeprom_cnt);
sashida_h 3:99c659d89698 133 }else if(page_frg == 1){
sashida_h 3:99c659d89698 134 *(float*)serialData=0.0f;
sashida_h 3:99c659d89698 135 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 136 *(float*)serialData=cal_x;
sashida_h 3:99c659d89698 137 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 138 *(float*)serialData=cal_y;
sashida_h 3:99c659d89698 139 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 140 *(float*)serialData=cal_z;
sashida_h 3:99c659d89698 141 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 142 *(float*)serialData=world_time;
sashida_h 3:99c659d89698 143 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 144 *(float*)serialData=0.0f;
sashida_h 3:99c659d89698 145 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 146 //pc.printf("%d,0x%x\r\n",page_frg,eeprom_cnt);
sashida_h 3:99c659d89698 147 }else{
sashida_h 3:99c659d89698 148 //pc.printf("EEPROM_ERROR!! You should erase memory\r\n");
sashida_h 3:99c659d89698 149 }
sashida_h 3:99c659d89698 150 eeprom_cnt = 0x18 + eeprom_cnt;
sashida_h 3:99c659d89698 151
sashida_h 3:99c659d89698 152
sashida_h 2:133b3bf22850 153 }
sashida_h 2:133b3bf22850 154
sashida_h 2:133b3bf22850 155 if(msg.id == 0x03){
sashida_h 2:133b3bf22850 156 //pc.printf("ID: 0x01\n\r");
sashida_h 2:133b3bf22850 157 for(int i=0;i<4;++i){
sashida_h 2:133b3bf22850 158 getFloat._byte[i] = msg.data[i];
sashida_h 2:133b3bf22850 159 //pc.printf("get_char: %d\n\r", getFloat._byte[i]);
sashida_h 2:133b3bf22850 160 }
sashida_h 2:133b3bf22850 161 pc.printf("ID0x03:%.2f\r\n", getFloat._float);
sashida_h 2:133b3bf22850 162 }
sashida_h 3:99c659d89698 163
sashida_h 3:99c659d89698 164 if(msg.id == 0x04){
sashida_h 3:99c659d89698 165 //pc.printf("ID: 0x01\n\r");
sashida_h 3:99c659d89698 166 for(int i=0;i<4;++i){
sashida_h 3:99c659d89698 167 getFloat._byte[i] = msg.data[i];
sashida_h 3:99c659d89698 168 //pc.printf("get_char: %d\n\r", getFloat._byte[i]);
sashida_h 3:99c659d89698 169 }
sashida_h 3:99c659d89698 170 pc.printf("ID0x04:%.2f\r\n", getFloat._float);
sashida_h 3:99c659d89698 171 }
sashida_h 2:133b3bf22850 172 }
sashida_h 3:99c659d89698 173 led=1;
sashida_h 2:133b3bf22850 174
sashida_h 2:133b3bf22850 175 }
sashida_h 2:133b3bf22850 176
sashida_h 0:c38491379a28 177 int main(){
sashida_h 1:717563cb9070 178 int adc1[4],adc2[4],adc3[4],adc4[4],adc5[4],adc6[4];
sashida_h 2:133b3bf22850 179 float ave[6],buff;
sashida_h 0:c38491379a28 180
sashida_h 2:133b3bf22850 181 can.attach(receive, CAN::RxIrq);
sashida_h 3:99c659d89698 182 pc.printf("Hello world%d\r\n",sizeof(i));
sashida_h 3:99c659d89698 183 led = 1;
sashida_h 0:c38491379a28 184 wait(1.0);
sashida_h 0:c38491379a28 185
sashida_h 0:c38491379a28 186 while(1){
sashida_h 1:717563cb9070 187 adc1[0] = mcp1.sgl( CH0 );
sashida_h 1:717563cb9070 188 adc1[1] = mcp1.sgl( CH1 );
sashida_h 1:717563cb9070 189 adc1[2] = mcp1.sgl( CH2 );
sashida_h 1:717563cb9070 190 adc1[3] = mcp1.sgl( CH3 );
sashida_h 2:133b3bf22850 191 for(i=0;i<4-1;i++){
sashida_h 2:133b3bf22850 192 for(j=1;j<4-i;j++){
sashida_h 2:133b3bf22850 193 if(adc1[j-1] > adc1[j]){
sashida_h 2:133b3bf22850 194 buff = adc1[j-1];
sashida_h 2:133b3bf22850 195 adc1[j-1] = adc1[j];
sashida_h 2:133b3bf22850 196 adc1[j] = buff;
sashida_h 2:133b3bf22850 197 }
sashida_h 2:133b3bf22850 198 }
sashida_h 2:133b3bf22850 199 }
sashida_h 2:133b3bf22850 200 //pc.printf("%d,%d,%d,%d\r\n",adc1[0],adc1[1],adc1[2],adc1[3]);
sashida_h 2:133b3bf22850 201 ave[0] = (adc1[1] + adc1[2])/2.0 + 120.0;
sashida_h 1:717563cb9070 202
sashida_h 1:717563cb9070 203 adc2[0] = mcp2.sgl( CH0 );
sashida_h 1:717563cb9070 204 adc2[1] = mcp2.sgl( CH1 );
sashida_h 1:717563cb9070 205 adc2[2] = mcp2.sgl( CH2 );
sashida_h 1:717563cb9070 206 adc2[3] = mcp2.sgl( CH3 );
sashida_h 2:133b3bf22850 207 for(i=0;i<4-1;i++){
sashida_h 2:133b3bf22850 208 for(j=1;j<4-i;j++){
sashida_h 2:133b3bf22850 209 if(adc2[j-1] > adc2[j]){
sashida_h 2:133b3bf22850 210 buff = adc2[j-1];
sashida_h 2:133b3bf22850 211 adc2[j-1] = adc2[j];
sashida_h 2:133b3bf22850 212 adc2[j] = buff;
sashida_h 2:133b3bf22850 213 }
sashida_h 2:133b3bf22850 214 }
sashida_h 2:133b3bf22850 215 }
sashida_h 2:133b3bf22850 216 //pc.printf("%d,%d,%d,%d\r\n",adc1[0],adc1[1],adc1[2],adc1[3]);
sashida_h 2:133b3bf22850 217 ave[1] = (adc2[1] + adc2[2])/2.0;
sashida_h 1:717563cb9070 218
sashida_h 1:717563cb9070 219 adc3[0] = mcp3.sgl( CH0 );
sashida_h 1:717563cb9070 220 adc3[1] = mcp3.sgl( CH1 );
sashida_h 1:717563cb9070 221 adc3[2] = mcp3.sgl( CH2 );
sashida_h 1:717563cb9070 222 adc3[3] = mcp3.sgl( CH3 );
sashida_h 2:133b3bf22850 223 for(i=0;i<4-1;i++){
sashida_h 2:133b3bf22850 224 for(j=1;j<4-i;j++){
sashida_h 2:133b3bf22850 225 if(adc3[j-1] > adc3[j]){
sashida_h 2:133b3bf22850 226 buff = adc3[j-1];
sashida_h 2:133b3bf22850 227 adc3[j-1] = adc3[j];
sashida_h 2:133b3bf22850 228 adc3[j] = buff;
sashida_h 2:133b3bf22850 229 }
sashida_h 2:133b3bf22850 230 }
sashida_h 2:133b3bf22850 231 }
sashida_h 2:133b3bf22850 232 //pc.printf("%d,%d,%d,%d\r\n",adc1[0],adc1[1],adc1[2],adc1[3]);
sashida_h 2:133b3bf22850 233 ave[2] = (adc3[1] + adc3[2])/2.0 + 70.0;
sashida_h 1:717563cb9070 234
sashida_h 1:717563cb9070 235 adc4[0] = mcp4.sgl( CH0 );
sashida_h 1:717563cb9070 236 adc4[1] = mcp4.sgl( CH1 );
sashida_h 1:717563cb9070 237 adc4[2] = mcp4.sgl( CH2 );
sashida_h 1:717563cb9070 238 adc4[3] = mcp4.sgl( CH3 );
sashida_h 2:133b3bf22850 239 for(i=0;i<4-1;i++){
sashida_h 2:133b3bf22850 240 for(j=1;j<4-i;j++){
sashida_h 2:133b3bf22850 241 if(adc4[j-1] > adc4[j]){
sashida_h 2:133b3bf22850 242 buff = adc4[j-1];
sashida_h 2:133b3bf22850 243 adc4[j-1] = adc4[j];
sashida_h 2:133b3bf22850 244 adc4[j] = buff;
sashida_h 2:133b3bf22850 245 }
sashida_h 2:133b3bf22850 246 }
sashida_h 2:133b3bf22850 247 }
sashida_h 2:133b3bf22850 248 //pc.printf("%d,%d,%d,%d\r\n",adc1[0],adc1[1],adc1[2],adc1[3]);
sashida_h 2:133b3bf22850 249 ave[3] = (adc4[1] + adc4[2])/2.0 + 55.0;
sashida_h 1:717563cb9070 250
sashida_h 1:717563cb9070 251 adc5[0] = mcp5.sgl( CH0 );
sashida_h 1:717563cb9070 252 adc5[1] = mcp5.sgl( CH1 );
sashida_h 1:717563cb9070 253 adc5[2] = mcp5.sgl( CH2 );
sashida_h 1:717563cb9070 254 adc5[3] = mcp5.sgl( CH3 );
sashida_h 2:133b3bf22850 255 for(i=0;i<4-1;i++){
sashida_h 2:133b3bf22850 256 for(j=1;j<4-i;j++){
sashida_h 2:133b3bf22850 257 if(adc5[j-1] > adc5[j]){
sashida_h 2:133b3bf22850 258 buff = adc5[j-1];
sashida_h 2:133b3bf22850 259 adc5[j-1] = adc5[j];
sashida_h 2:133b3bf22850 260 adc5[j] = buff;
sashida_h 2:133b3bf22850 261 }
sashida_h 2:133b3bf22850 262 }
sashida_h 2:133b3bf22850 263 }
sashida_h 2:133b3bf22850 264 //pc.printf("%d,%d,%d,%d\r\n",adc1[0],adc1[1],adc1[2],adc1[3]);
sashida_h 2:133b3bf22850 265 ave[4] = (adc5[1] + adc5[2])/2.0;
sashida_h 1:717563cb9070 266
sashida_h 1:717563cb9070 267 adc6[0] = mcp6.sgl( CH0 );
sashida_h 1:717563cb9070 268 adc6[1] = mcp6.sgl( CH1 );
sashida_h 1:717563cb9070 269 adc6[2] = mcp6.sgl( CH2 );
sashida_h 1:717563cb9070 270 adc6[3] = mcp6.sgl( CH3 );
sashida_h 2:133b3bf22850 271 for(i=0;i<4-1;i++){
sashida_h 2:133b3bf22850 272 for(j=1;j<4-i;j++){
sashida_h 2:133b3bf22850 273 if(adc6[j-1] > adc6[j]){
sashida_h 2:133b3bf22850 274 buff = adc6[j-1];
sashida_h 2:133b3bf22850 275 adc6[j-1] = adc6[j];
sashida_h 2:133b3bf22850 276 adc6[j] = buff;
sashida_h 2:133b3bf22850 277 }
sashida_h 2:133b3bf22850 278 }
sashida_h 2:133b3bf22850 279 }
sashida_h 2:133b3bf22850 280 //pc.printf("%d,%d,%d,%d\r\n",adc1[0],adc1[1],adc1[2],adc1[3]);
sashida_h 2:133b3bf22850 281 ave[5] = (adc6[1] + adc6[2])/2.0 - 100.0;
sashida_h 1:717563cb9070 282
sashida_h 1:717563cb9070 283 /*
sashida_h 1:717563cb9070 284 pc.printf("1");
sashida_h 1:717563cb9070 285 for(i=0; i<4; i++){
sashida_h 1:717563cb9070 286 //pc.printf("CH%d:%d\r\n",i,adc1[i]);
sashida_h 1:717563cb9070 287 pc.printf(",%d",adc1[i]);
sashida_h 0:c38491379a28 288 }
sashida_h 1:717563cb9070 289 pc.printf(",%.1f\r\n", ave1);
sashida_h 1:717563cb9070 290
sashida_h 1:717563cb9070 291 pc.printf("2");
sashida_h 1:717563cb9070 292 for(i=0; i<4; i++){
sashida_h 1:717563cb9070 293 //pc.printf("CH%d:%d\r\n",i,adc1[i]);
sashida_h 1:717563cb9070 294 pc.printf(",%d",adc2[i]);
sashida_h 1:717563cb9070 295 }
sashida_h 1:717563cb9070 296 pc.printf(",%.1f\r\n", ave2);
sashida_h 1:717563cb9070 297
sashida_h 1:717563cb9070 298 pc.printf("3");
sashida_h 1:717563cb9070 299 for(i=0; i<4; i++){
sashida_h 1:717563cb9070 300 //pc.printf("CH%d:%d\r\n",i,adc1[i]);
sashida_h 1:717563cb9070 301 pc.printf(",%d",adc3[i]);
sashida_h 1:717563cb9070 302 }
sashida_h 1:717563cb9070 303 pc.printf(",%.1f\r\n", ave3);
sashida_h 1:717563cb9070 304
sashida_h 1:717563cb9070 305 pc.printf("4");
sashida_h 1:717563cb9070 306 for(i=0; i<4; i++){
sashida_h 1:717563cb9070 307 //pc.printf("CH%d:%d\r\n",i,adc1[i]);
sashida_h 1:717563cb9070 308 pc.printf(",%d",adc4[i]);
sashida_h 1:717563cb9070 309 }
sashida_h 1:717563cb9070 310 pc.printf(",%.1f\r\n", ave4);
sashida_h 1:717563cb9070 311
sashida_h 1:717563cb9070 312 pc.printf("5");
sashida_h 1:717563cb9070 313 for(i=0; i<4; i++){
sashida_h 1:717563cb9070 314 //pc.printf("CH%d:%d\r\n",i,adc1[i]);
sashida_h 1:717563cb9070 315 pc.printf(",%d",adc5[i]);
sashida_h 1:717563cb9070 316 }
sashida_h 1:717563cb9070 317 pc.printf(",%.1f\r\n", ave5);
sashida_h 1:717563cb9070 318
sashida_h 1:717563cb9070 319 pc.printf("6");
sashida_h 1:717563cb9070 320 for(i=0; i<4; i++){
sashida_h 1:717563cb9070 321 //pc.printf("CH%d:%d\r\n",i,adc1[i]);
sashida_h 1:717563cb9070 322 pc.printf(",%d",adc6[i]);
sashida_h 1:717563cb9070 323 }
sashida_h 1:717563cb9070 324 pc.printf(",%.1f\r\n", ave6);
sashida_h 1:717563cb9070 325 */
sashida_h 1:717563cb9070 326
sashida_h 2:133b3bf22850 327 cnt = 0;
sashida_h 2:133b3bf22850 328
sashida_h 3:99c659d89698 329 if(ave[1] < ave[2] && ave[3] > ave[5] && ave[4] < ave[0]){
sashida_h 3:99c659d89698 330 send2((unsigned short)(0.0f+cal_x),(unsigned short)(0.0f+cal_y),(unsigned short)(0.0f+cal_z),6);
sashida_h 3:99c659d89698 331 //else if(ave[1] < ave[2] && ave[3] < ave[5] && ave[4] < ave[0])pc.printf("x:90,y:0,z:0\r\n");
sashida_h 3:99c659d89698 332 }else if(ave[1] < ave[2] && ave[3] < ave[5] && ave[4] > ave[0]){
sashida_h 3:99c659d89698 333 send2((unsigned short)(180.0f+cal_x),(unsigned short)(0.0f+cal_y),(unsigned short)(0.0f+cal_z),6);
sashida_h 3:99c659d89698 334 //else if(ave[1] < ave[2] && ave[3] > ave[5] && ave[4] > ave[0])pc.printf("x:270,y:0,z:0\r\n");
sashida_h 3:99c659d89698 335 }else if(ave[1] < ave[2] && ave[3] > ave[5] && ave[4] < ave[0]){
sashida_h 3:99c659d89698 336 send2((unsigned short)(0.0f+cal_x),(unsigned short)(0.0f+cal_y),(unsigned short)(0.0f+cal_z),6);
sashida_h 3:99c659d89698 337 //else if(ave[1] < ave[2] && ave[3] < ave[5] && ave[4] < ave[0])pc.printf("x:0,y:0,z:90\r\n");
sashida_h 3:99c659d89698 338 }else if(ave[1] > ave[2] && ave[3] < ave[5] && ave[4] < ave[0]){
sashida_h 3:99c659d89698 339 send2((unsigned short)(0.0f+cal_x),(unsigned short)(0.0f+cal_y),(unsigned short)(180.0f+cal_z),6);
sashida_h 3:99c659d89698 340 //else if(ave[1] > ave[2] && ave[3] > ave[5] && ave[4] < ave[0])pc.printf("x:0,y:0,z:270\r\n");
sashida_h 3:99c659d89698 341 }else if(ave[1] < ave[2] && ave[3] > ave[5] && ave[4] < ave[0]){
sashida_h 3:99c659d89698 342 send2((unsigned short)(0.0f+cal_x),(unsigned short)(0.0f+cal_y),(unsigned short)(0.0f+cal_z),6);
sashida_h 3:99c659d89698 343 //else if(ave[1] < ave[2] && ave[3] > ave[5] && ave[4] > ave[0])pc.printf("x:0,y:90,z:0\r\n");
sashida_h 3:99c659d89698 344 }else if(ave[1] > ave[2] && ave[3] > ave[5] && ave[4] > ave[0]){
sashida_h 3:99c659d89698 345 send2((unsigned short)(0.0f+cal_x),(unsigned short)(180.0f+cal_y),(unsigned short)(0.0f+cal_z),6);
sashida_h 3:99c659d89698 346 //else if(ave[1] > ave[2] && ave[3] > ave[5] && ave[4] > ave[0])pc.printf("x:0,y:270,z:0\r\n");
sashida_h 3:99c659d89698 347 }else{
sashida_h 3:99c659d89698 348 pc.printf("none\r\n");
sashida_h 3:99c659d89698 349 }
sashida_h 3:99c659d89698 350 pc.printf("%d,%x,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f\r\n",page_frg,eeprom_cnt,ave[1],ave[2],ave[3],ave[5],ave[4],ave[0]);
sashida_h 2:133b3bf22850 351
sashida_h 3:99c659d89698 352 for(i=0; i<6; i++){
sashida_h 3:99c659d89698 353 *(float*)serialData = ave[i];
sashida_h 3:99c659d89698 354 //pc.printf("%f,",ave[i]);
sashida_h 3:99c659d89698 355 if(eeprom_cnt > 0xFFF0){
sashida_h 3:99c659d89698 356 page_frg++;
sashida_h 3:99c659d89698 357 eeprom_cnt = 0;
sashida_h 3:99c659d89698 358 }
sashida_h 2:133b3bf22850 359
sashida_h 3:99c659d89698 360 if(page_frg == 0){
sashida_h 3:99c659d89698 361 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK0,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 362 //pc.printf("%d,0x%x\r\n",page_frg,eeprom_cnt);
sashida_h 3:99c659d89698 363 }else if(page_frg == 1){
sashida_h 3:99c659d89698 364 eeprom.PageWrite(ADDRESS_24LC1025_BLOCK1,eeprom_cnt,serialData,4);
sashida_h 3:99c659d89698 365 //pc.printf("%d,0x%x\r\n",page_frg,eeprom_cnt);
sashida_h 3:99c659d89698 366 }else{
sashida_h 3:99c659d89698 367 //pc.printf("EEPROM_ERROR!! You should erase memory\r\n");
sashida_h 3:99c659d89698 368 }
sashida_h 3:99c659d89698 369 eeprom_cnt = 0x04 + eeprom_cnt;
sashida_h 3:99c659d89698 370 wait(0.01);
sashida_h 3:99c659d89698 371
sashida_h 3:99c659d89698 372 }
sashida_h 3:99c659d89698 373 wait(0.1);
sashida_h 0:c38491379a28 374 }
sashida_h 1:717563cb9070 375
sashida_h 0:c38491379a28 376 }
sashida_h 0:c38491379a28 377
sashida_h 0:c38491379a28 378 /*
sashida_h 0:c38491379a28 379 int main(){
sashida_h 0:c38491379a28 380 int adc[4];
sashida_h 0:c38491379a28 381 int i;
sashida_h 0:c38491379a28 382
sashida_h 0:c38491379a28 383 pc.printf("Hello world\r\n");
sashida_h 0:c38491379a28 384 wait(1.0);
sashida_h 0:c38491379a28 385
sashida_h 0:c38491379a28 386 while(1){
sashida_h 0:c38491379a28 387 adc[0] = mcp.sgl( CH0 );
sashida_h 0:c38491379a28 388 adc[1] = mcp.sgl( CH1 );
sashida_h 0:c38491379a28 389 adc[2] = mcp.sgl( CH2 );
sashida_h 0:c38491379a28 390 adc[3] = mcp.sgl( CH3 );
sashida_h 0:c38491379a28 391 for(i=0; i<4; i++){
sashida_h 0:c38491379a28 392 pc.printf("CH%d:%d\r\n",i,adc[i]);
sashida_h 0:c38491379a28 393 }
sashida_h 0:c38491379a28 394 wait(0.5);
sashida_h 0:c38491379a28 395 }
sashida_h 0:c38491379a28 396
sashida_h 0:c38491379a28 397 }
sashida_h 0:c38491379a28 398 */