ロボカップのブロック大会2014で使用したプログラムです。 ロボットには、mbedを2台使ってI2C通信しています。 これはSlave側です。 ※独自規格を使用しています。
Dependencies: ACM1602NI Ping mbed-rtos mbed
I2C_Slave.h
00001 // Slave側プログラム 00002 00003 00004 00005 /*---- FWの進行方向の処理 -----*/ 00006 // IRのデータによるAngleの処理 00007 int FW_000(void) {return 001;} 00008 int FW_001(void) {return 000;} 00009 int FW_002(void) {return 90;} 00010 int FW_003(void) {return 045;} 00011 int FW_004(void) {return 135;} 00012 int FW_005(void) {return 90;} 00013 int FW_006(void) {return 113;} 00014 int FW_007(void) {return 90;} 00015 int FW_008(void) {return 180;} 00016 int FW_009(void) {return 001;} 00017 int FW_010(void) {return 135;} 00018 int FW_011(void) {return 001;} 00019 int FW_012(void) {return 158;} 00020 int FW_013(void) {return 001;} 00021 int FW_014(void) {return 135;} 00022 int FW_015(void) {return 113;} 00023 int FW_016(void) {return 90;} 00024 int FW_017(void) {return 001;} 00025 int FW_018(void) {return 001;} 00026 int FW_019(void) {return 001;} 00027 int FW_020(void) {return 001;} 00028 int FW_021(void) {return 001;} 00029 int FW_022(void) {return 001;} 00030 int FW_023(void) {return 001;} 00031 int FW_024(void) {return 225;} 00032 int FW_025(void) {return 001;} 00033 int FW_026(void) {return 001;} 00034 int FW_027(void) {return 001;} 00035 int FW_028(void) {return 195;} 00036 int FW_029(void) {return 001;} 00037 int FW_030(void) {return 203;} 00038 int FW_031(void) {return 180;} 00039 int FW_032(void) {return 180;} 00040 int FW_033(void) {return 001;} 00041 int FW_034(void) {return 001;} 00042 int FW_035(void) {return 001;} 00043 int FW_036(void) {return 001;} 00044 int FW_037(void) {return 001;} 00045 int FW_038(void) {return 001;} 00046 int FW_039(void) {return 001;} 00047 int FW_040(void) {return 001;} 00048 int FW_041(void) {return 001;} 00049 int FW_042(void) {return 001;} 00050 int FW_043(void) {return 001;} 00051 int FW_044(void) {return 001;} 00052 int FW_045(void) {return 001;} 00053 int FW_046(void) {return 001;} 00054 int FW_047(void) {return 001;} 00055 int FW_048(void) {return 135;} 00056 int FW_049(void) {return 001;} 00057 int FW_050(void) {return 001;} 00058 int FW_051(void) {return 001;} 00059 int FW_052(void) {return 001;} 00060 int FW_053(void) {return 001;} 00061 int FW_054(void) {return 001;} 00062 int FW_055(void) {return 001;} 00063 int FW_056(void) {return 90;} 00064 int FW_057(void) {return 001;} 00065 int FW_058(void) {return 001;} 00066 int FW_059(void) {return 001;} 00067 int FW_060(void) {return 248;} 00068 int FW_061(void) {return 001;} 00069 int FW_062(void) {return 225;} 00070 int FW_063(void) {return 203;} 00071 int FW_064(void) {return 225;} 00072 int FW_065(void) {return 001;} 00073 int FW_066(void) {return 001;} 00074 int FW_067(void) {return 001;} 00075 int FW_068(void) {return 001;} 00076 int FW_069(void) {return 001;} 00077 int FW_070(void) {return 001;} 00078 int FW_071(void) {return 001;} 00079 int FW_072(void) {return 001;} 00080 int FW_073(void) {return 001;} 00081 int FW_074(void) {return 001;} 00082 int FW_075(void) {return 001;} 00083 int FW_076(void) {return 001;} 00084 int FW_077(void) {return 001;} 00085 int FW_078(void) {return 001;} 00086 int FW_079(void) {return 001;} 00087 int FW_080(void) {return 001;} 00088 int FW_081(void) {return 001;} 00089 int FW_082(void) {return 001;} 00090 int FW_083(void) {return 001;} 00091 int FW_084(void) {return 001;} 00092 int FW_085(void) {return 001;} 00093 int FW_086(void) {return 001;} 00094 int FW_087(void) {return 001;} 00095 int FW_088(void) {return 001;} 00096 int FW_089(void) {return 001;} 00097 int FW_090(void) {return 001;} 00098 int FW_091(void) {return 001;} 00099 int FW_092(void) {return 001;} 00100 int FW_093(void) {return 001;} 00101 int FW_094(void) {return 001;} 00102 int FW_095(void) {return 001;} 00103 int FW_096(void) {return 203;} 00104 int FW_097(void) {return 001;} 00105 int FW_098(void) {return 001;} 00106 int FW_099(void) {return 001;} 00107 int FW_100(void) {return 001;} 00108 int FW_101(void) {return 001;} 00109 int FW_102(void) {return 001;} 00110 int FW_103(void) {return 001;} 00111 int FW_104(void) {return 001;} 00112 int FW_105(void) {return 001;} 00113 int FW_106(void) {return 001;} 00114 int FW_107(void) {return 001;} 00115 int FW_108(void) {return 001;} 00116 int FW_109(void) {return 001;} 00117 int FW_110(void) {return 001;} 00118 int FW_111(void) {return 001;} 00119 int FW_112(void) {return 135;} 00120 int FW_113(void) {return 001;} 00121 int FW_114(void) {return 001;} 00122 int FW_115(void) {return 001;} 00123 int FW_116(void) {return 001;} 00124 int FW_117(void) {return 001;} 00125 int FW_118(void) {return 001;} 00126 int FW_119(void) {return 001;} 00127 int FW_120(void) {return 112;} 00128 int FW_121(void) {return 001;} 00129 int FW_122(void) {return 001;} 00130 int FW_123(void) {return 001;} 00131 int FW_124(void) {return 90;} 00132 int FW_125(void) {return 001;} 00133 int FW_126(void) {return 248;} 00134 int FW_127(void) {return 225;} 00135 int FW_128(void) {return 270;} 00136 int FW_129(void) {return 310;} 00137 int FW_130(void) {return 001;} 00138 int FW_131(void) {return 000;} 00139 int FW_132(void) {return 001;} 00140 int FW_133(void) {return 001;} 00141 int FW_134(void) {return 001;} 00142 int FW_135(void) {return 045;} 00143 int FW_136(void) {return 001;} 00144 int FW_137(void) {return 001;} 00145 int FW_138(void) {return 001;} 00146 int FW_139(void) {return 001;} 00147 int FW_140(void) {return 001;} 00148 int FW_141(void) {return 001;} 00149 int FW_142(void) {return 001;} 00150 int FW_143(void) {return 135;} 00151 int FW_144(void) {return 001;} 00152 int FW_145(void) {return 001;} 00153 int FW_146(void) {return 001;} 00154 int FW_147(void) {return 001;} 00155 int FW_148(void) {return 001;} 00156 int FW_149(void) {return 001;} 00157 int FW_150(void) {return 001;} 00158 int FW_151(void) {return 001;} 00159 int FW_152(void) {return 001;} 00160 int FW_153(void) {return 001;} 00161 int FW_154(void) {return 001;} 00162 int FW_155(void) {return 001;} 00163 int FW_156(void) {return 001;} 00164 int FW_157(void) {return 001;} 00165 int FW_158(void) {return 001;} 00166 int FW_159(void) {return 158;} 00167 int FW_160(void) {return 001;} 00168 int FW_161(void) {return 001;} 00169 int FW_162(void) {return 001;} 00170 int FW_163(void) {return 001;} 00171 int FW_164(void) {return 001;} 00172 int FW_165(void) {return 001;} 00173 int FW_166(void) {return 001;} 00174 int FW_167(void) {return 001;} 00175 int FW_168(void) {return 001;} 00176 int FW_169(void) {return 001;} 00177 int FW_170(void) {return 001;} 00178 int FW_171(void) {return 001;} 00179 int FW_172(void) {return 001;} 00180 int FW_173(void) {return 001;} 00181 int FW_174(void) {return 001;} 00182 int FW_175(void) {return 001;} 00183 int FW_176(void) {return 001;} 00184 int FW_177(void) {return 001;} 00185 int FW_178(void) {return 001;} 00186 int FW_179(void) {return 001;} 00187 int FW_180(void) {return 001;} 00188 int FW_181(void) {return 001;} 00189 int FW_182(void) {return 001;} 00190 int FW_183(void) {return 001;} 00191 int FW_184(void) {return 001;} 00192 int FW_185(void) {return 001;} 00193 int FW_186(void) {return 001;} 00194 int FW_187(void) {return 001;} 00195 int FW_188(void) {return 001;} 00196 int FW_189(void) {return 001;} 00197 int FW_190(void) {return 001;} 00198 int FW_191(void) {return 180;} 00199 int FW_192(void) {return 247;} 00200 int FW_193(void) {return 001;} 00201 int FW_194(void) {return 001;} 00202 int FW_195(void) {return 001;} 00203 int FW_196(void) {return 001;} 00204 int FW_197(void) {return 001;} 00205 int FW_198(void) {return 001;} 00206 int FW_199(void) {return 000;} 00207 int FW_200(void) {return 001;} 00208 int FW_201(void) {return 001;} 00209 int FW_202(void) {return 001;} 00210 int FW_203(void) {return 001;} 00211 int FW_204(void) {return 001;} 00212 int FW_205(void) {return 001;} 00213 int FW_206(void) {return 001;} 00214 int FW_207(void) {return 001;} 00215 int FW_208(void) {return 001;} 00216 int FW_209(void) {return 001;} 00217 int FW_210(void) {return 001;} 00218 int FW_211(void) {return 001;} 00219 int FW_212(void) {return 001;} 00220 int FW_213(void) {return 001;} 00221 int FW_214(void) {return 001;} 00222 int FW_215(void) {return 001;} 00223 int FW_216(void) {return 001;} 00224 int FW_217(void) {return 001;} 00225 int FW_218(void) {return 001;} 00226 int FW_219(void) {return 001;} 00227 int FW_220(void) {return 001;} 00228 int FW_221(void) {return 001;} 00229 int FW_222(void) {return 001;} 00230 int FW_223(void) {return 001;} 00231 int FW_224(void) {return 180;} 00232 int FW_225(void) {return 001;} 00233 int FW_226(void) {return 001;} 00234 int FW_227(void) {return 001;} 00235 int FW_228(void) {return 001;} 00236 int FW_229(void) {return 001;} 00237 int FW_230(void) {return 001;} 00238 int FW_231(void) {return 001;} 00239 int FW_232(void) {return 001;} 00240 int FW_233(void) {return 001;} 00241 int FW_234(void) {return 001;} 00242 int FW_235(void) {return 001;} 00243 int FW_236(void) {return 001;} 00244 int FW_237(void) {return 001;} 00245 int FW_238(void) {return 001;} 00246 int FW_239(void) {return 000;} 00247 int FW_240(void) {return 158;} 00248 int FW_241(void) {return 001;} 00249 int FW_242(void) {return 001;} 00250 int FW_243(void) {return 001;} 00251 int FW_244(void) {return 001;} 00252 int FW_245(void) {return 001;} 00253 int FW_246(void) {return 001;} 00254 int FW_247(void) {return 001;} 00255 int FW_248(void) {return 135;} 00256 int FW_249(void) {return 001;} 00257 int FW_250(void) {return 001;} 00258 int FW_251(void) {return 001;} 00259 int FW_252(void) {return 202;} 00260 int FW_253(void) {return 001;} 00261 int FW_254(void) {return 90;} 00262 int FW_255(void) {return 001;} 00263 // IRのデータからAngleの分岐 00264 int (*FW_AngApi[])(void) = {FW_001, FW_001, FW_002, FW_003, FW_004, FW_005, FW_006, FW_007, FW_008, FW_009, FW_010, FW_011, FW_012, FW_013, FW_014, FW_015, FW_016, FW_017, FW_018, FW_019, FW_020, FW_021, FW_022, FW_023, FW_024, FW_025, FW_026, FW_027, FW_028, FW_029, FW_030, FW_031, FW_032, FW_033, FW_034, FW_035, FW_036, FW_037, FW_038, FW_039, FW_040, FW_041, FW_042, FW_043, FW_044, FW_045, FW_046, FW_047, FW_048, FW_049, FW_050, FW_051, FW_052, FW_053, FW_054, FW_055, FW_056, FW_057, FW_058, FW_059, FW_060, FW_061, FW_062, FW_063, FW_064, FW_065, FW_066, FW_067, FW_068, FW_069, FW_070, FW_071, FW_072, FW_073, FW_074, FW_075, FW_076, FW_077, FW_078, FW_079, FW_080, FW_081, FW_082, FW_083, FW_084, FW_085, FW_086, FW_087, FW_088, FW_089, FW_090, FW_091, FW_092, FW_093, FW_094, FW_095, FW_096, FW_097, FW_098, FW_099, FW_100, FW_101, FW_102, FW_103, FW_104, FW_105, FW_106, FW_107, FW_108, FW_109, FW_110, FW_111, FW_112, FW_113, FW_114, FW_115, FW_116, FW_117, FW_118, FW_119, FW_120, FW_121, FW_122, FW_123, FW_124, FW_125, FW_126, FW_127, FW_128, FW_129, FW_130, FW_131, FW_132, FW_133, FW_134, FW_135, FW_136, FW_137, FW_138, FW_139, FW_140, FW_141, FW_142, FW_143, FW_144, FW_145, FW_146, FW_147, FW_148, FW_149, FW_150, FW_151, FW_152, FW_153, FW_154, FW_155, FW_156, FW_157, FW_158, FW_159, FW_160, FW_161, FW_162, FW_163, FW_164, FW_165, FW_166, FW_167, FW_168, FW_169, FW_170, FW_171, FW_172, FW_173, FW_174, FW_175, FW_176, FW_177, FW_178, FW_179, FW_180, FW_181, FW_182, FW_183, FW_184, FW_185, FW_186, FW_187, FW_188, FW_189, FW_190, FW_191, FW_192, FW_193, FW_194, FW_195, FW_196, FW_197, FW_198, FW_199, FW_200, FW_201, FW_202, FW_203, FW_204, FW_205, FW_206, FW_207, FW_208, FW_209, FW_210, FW_211, FW_212, FW_213, FW_214, FW_215, FW_216, FW_217, FW_218, FW_219, FW_220, FW_221, FW_222, FW_223, FW_224, FW_225, FW_226, FW_227, FW_228, FW_229, FW_230, FW_231, FW_232, FW_233, FW_234, FW_235, FW_236, FW_237, FW_238, FW_239, FW_240, FW_241, FW_242, FW_243, FW_244, FW_245, FW_246, FW_247, FW_248, FW_249, FW_250, FW_251, FW_252, FW_253, FW_254, FW_255}; 00265 00266 00267 /*---- DFの進行方向の処理 -----*/ 00268 // IRのデータによるAngleの処理 00269 int DF_000(void) {return 001;} 00270 int DF_001(void) {return 001;} 00271 int DF_002(void) {return 90;} 00272 int DF_003(void) {return 023;} 00273 int DF_004(void) {return 90;} 00274 int DF_005(void) {return 001;} 00275 int DF_006(void) {return 90;} 00276 int DF_007(void) {return 045;} 00277 int DF_008(void) {return 180;} 00278 int DF_009(void) {return 001;} 00279 int DF_010(void) {return 001;} 00280 int DF_011(void) {return 001;} 00281 int DF_012(void) {return 180;} 00282 int DF_013(void) {return 001;} 00283 int DF_014(void) {return 135;} 00284 int DF_015(void) {return 90;} 00285 int DF_016(void) {return 90;} 00286 int DF_017(void) {return 001;} 00287 int DF_018(void) {return 001;} 00288 int DF_019(void) {return 001;} 00289 int DF_020(void) {return 001;} 00290 int DF_021(void) {return 001;} 00291 int DF_022(void) {return 001;} 00292 int DF_023(void) {return 001;} 00293 int DF_024(void) {return 203;} 00294 int DF_025(void) {return 001;} 00295 int DF_026(void) {return 001;} 00296 int DF_027(void) {return 001;} 00297 int DF_028(void) {return 180;} 00298 int DF_029(void) {return 001;} 00299 int DF_030(void) {return 157;} 00300 int DF_031(void) {return 90;} 00301 int DF_032(void) {return 180;} 00302 int DF_033(void) {return 001;} 00303 int DF_034(void) {return 001;} 00304 int DF_035(void) {return 001;} 00305 int DF_036(void) {return 001;} 00306 int DF_037(void) {return 001;} 00307 int DF_038(void) {return 001;} 00308 int DF_039(void) {return 001;} 00309 int DF_040(void) {return 001;} 00310 int DF_041(void) {return 001;} 00311 int DF_042(void) {return 001;} 00312 int DF_043(void) {return 001;} 00313 int DF_044(void) {return 001;} 00314 int DF_045(void) {return 001;} 00315 int DF_046(void) {return 001;} 00316 int DF_047(void) {return 001;} 00317 int DF_048(void) {return 157;} 00318 int DF_049(void) {return 001;} 00319 int DF_050(void) {return 001;} 00320 int DF_051(void) {return 001;} 00321 int DF_052(void) {return 001;} 00322 int DF_053(void) {return 001;} 00323 int DF_054(void) {return 001;} 00324 int DF_055(void) {return 001;} 00325 int DF_056(void) {return 90;} 00326 int DF_057(void) {return 001;} 00327 int DF_058(void) {return 001;} 00328 int DF_059(void) {return 001;} 00329 int DF_060(void) {return 225;} 00330 int DF_061(void) {return 001;} 00331 int DF_062(void) {return 180;} 00332 int DF_063(void) {return 180;} 00333 int DF_064(void) {return 180;} 00334 int DF_065(void) {return 001;} 00335 int DF_066(void) {return 001;} 00336 int DF_067(void) {return 001;} 00337 int DF_068(void) {return 001;} 00338 int DF_069(void) {return 001;} 00339 int DF_070(void) {return 001;} 00340 int DF_071(void) {return 001;} 00341 int DF_072(void) {return 001;} 00342 int DF_073(void) {return 001;} 00343 int DF_074(void) {return 001;} 00344 int DF_075(void) {return 001;} 00345 int DF_076(void) {return 001;} 00346 int DF_077(void) {return 001;} 00347 int DF_078(void) {return 001;} 00348 int DF_079(void) {return 001;} 00349 int DF_080(void) {return 001;} 00350 int DF_081(void) {return 001;} 00351 int DF_082(void) {return 001;} 00352 int DF_083(void) {return 001;} 00353 int DF_084(void) {return 001;} 00354 int DF_085(void) {return 001;} 00355 int DF_086(void) {return 001;} 00356 int DF_087(void) {return 001;} 00357 int DF_088(void) {return 001;} 00358 int DF_089(void) {return 001;} 00359 int DF_090(void) {return 001;} 00360 int DF_091(void) {return 001;} 00361 int DF_092(void) {return 001;} 00362 int DF_093(void) {return 001;} 00363 int DF_094(void) {return 001;} 00364 int DF_095(void) {return 001;} 00365 int DF_096(void) {return 180;} 00366 int DF_097(void) {return 001;} 00367 int DF_098(void) {return 001;} 00368 int DF_099(void) {return 001;} 00369 int DF_100(void) {return 001;} 00370 int DF_101(void) {return 001;} 00371 int DF_102(void) {return 001;} 00372 int DF_103(void) {return 001;} 00373 int DF_104(void) {return 001;} 00374 int DF_105(void) {return 001;} 00375 int DF_106(void) {return 001;} 00376 int DF_107(void) {return 001;} 00377 int DF_108(void) {return 001;} 00378 int DF_109(void) {return 001;} 00379 int DF_110(void) {return 001;} 00380 int DF_111(void) {return 001;} 00381 int DF_112(void) {return 135;} 00382 int DF_113(void) {return 001;} 00383 int DF_114(void) {return 001;} 00384 int DF_115(void) {return 001;} 00385 int DF_116(void) {return 001;} 00386 int DF_117(void) {return 001;} 00387 int DF_118(void) {return 001;} 00388 int DF_119(void) {return 001;} 00389 int DF_120(void) {return 067;} 00390 int DF_121(void) {return 001;} 00391 int DF_122(void) {return 001;} 00392 int DF_123(void) {return 001;} 00393 int DF_124(void) {return 90;} 00394 int DF_125(void) {return 001;} 00395 int DF_126(void) {return 203;} 00396 int DF_127(void) {return 180;} 00397 int DF_128(void) {return 270;} 00398 int DF_129(void) {return 315;} 00399 int DF_130(void) {return 001;} 00400 int DF_131(void) {return 000;} 00401 int DF_132(void) {return 001;} 00402 int DF_133(void) {return 001;} 00403 int DF_134(void) {return 001;} 00404 int DF_135(void) {return 023;} 00405 int DF_136(void) {return 001;} 00406 int DF_137(void) {return 001;} 00407 int DF_138(void) {return 001;} 00408 int DF_139(void) {return 001;} 00409 int DF_140(void) {return 001;} 00410 int DF_141(void) {return 001;} 00411 int DF_142(void) {return 001;} 00412 int DF_143(void) {return 045;} 00413 int DF_144(void) {return 001;} 00414 int DF_145(void) {return 001;} 00415 int DF_146(void) {return 001;} 00416 int DF_147(void) {return 001;} 00417 int DF_148(void) {return 001;} 00418 int DF_149(void) {return 001;} 00419 int DF_150(void) {return 001;} 00420 int DF_151(void) {return 001;} 00421 int DF_152(void) {return 001;} 00422 int DF_153(void) {return 001;} 00423 int DF_154(void) {return 001;} 00424 int DF_155(void) {return 001;} 00425 int DF_156(void) {return 001;} 00426 int DF_157(void) {return 001;} 00427 int DF_158(void) {return 001;} 00428 int DF_159(void) {return 067;} 00429 int DF_160(void) {return 001;} 00430 int DF_161(void) {return 001;} 00431 int DF_162(void) {return 001;} 00432 int DF_163(void) {return 001;} 00433 int DF_164(void) {return 001;} 00434 int DF_165(void) {return 001;} 00435 int DF_166(void) {return 001;} 00436 int DF_167(void) {return 001;} 00437 int DF_168(void) {return 001;} 00438 int DF_169(void) {return 001;} 00439 int DF_170(void) {return 001;} 00440 int DF_171(void) {return 001;} 00441 int DF_172(void) {return 001;} 00442 int DF_173(void) {return 001;} 00443 int DF_174(void) {return 001;} 00444 int DF_175(void) {return 001;} 00445 int DF_176(void) {return 001;} 00446 int DF_177(void) {return 001;} 00447 int DF_178(void) {return 001;} 00448 int DF_179(void) {return 001;} 00449 int DF_180(void) {return 001;} 00450 int DF_181(void) {return 001;} 00451 int DF_182(void) {return 001;} 00452 int DF_183(void) {return 001;} 00453 int DF_184(void) {return 001;} 00454 int DF_185(void) {return 001;} 00455 int DF_186(void) {return 001;} 00456 int DF_187(void) {return 001;} 00457 int DF_188(void) {return 001;} 00458 int DF_189(void) {return 001;} 00459 int DF_190(void) {return 001;} 00460 int DF_191(void) {return 90;} 00461 int DF_192(void) {return 270;} 00462 int DF_193(void) {return 315;} 00463 int DF_194(void) {return 001;} 00464 int DF_195(void) {return 337;} 00465 int DF_196(void) {return 001;} 00466 int DF_197(void) {return 001;} 00467 int DF_198(void) {return 001;} 00468 int DF_199(void) {return 000;} 00469 int DF_200(void) {return 001;} 00470 int DF_201(void) {return 001;} 00471 int DF_202(void) {return 001;} 00472 int DF_203(void) {return 001;} 00473 int DF_204(void) {return 001;} 00474 int DF_205(void) {return 001;} 00475 int DF_206(void) {return 001;} 00476 int DF_207(void) {return 045;} 00477 int DF_208(void) {return 001;} 00478 int DF_209(void) {return 001;} 00479 int DF_210(void) {return 001;} 00480 int DF_211(void) {return 001;} 00481 int DF_212(void) {return 001;} 00482 int DF_213(void) {return 001;} 00483 int DF_214(void) {return 001;} 00484 int DF_215(void) {return 001;} 00485 int DF_216(void) {return 001;} 00486 int DF_217(void) {return 001;} 00487 int DF_218(void) {return 001;} 00488 int DF_219(void) {return 001;} 00489 int DF_220(void) {return 001;} 00490 int DF_221(void) {return 001;} 00491 int DF_222(void) {return 001;} 00492 int DF_223(void) {return 001;} 00493 int DF_224(void) {return 225;} 00494 int DF_225(void) {return 270;} 00495 int DF_226(void) {return 001;} 00496 int DF_227(void) {return 315;} 00497 int DF_228(void) {return 001;} 00498 int DF_229(void) {return 001;} 00499 int DF_230(void) {return 001;} 00500 int DF_231(void) {return 337;} 00501 int DF_232(void) {return 001;} 00502 int DF_233(void) {return 001;} 00503 int DF_234(void) {return 001;} 00504 int DF_235(void) {return 001;} 00505 int DF_236(void) {return 001;} 00506 int DF_237(void) {return 001;} 00507 int DF_238(void) {return 001;} 00508 int DF_239(void) {return 000;} 00509 int DF_240(void) {return 180;} 00510 int DF_241(void) {return 001;} 00511 int DF_242(void) {return 001;} 00512 int DF_243(void) {return 001;} 00513 int DF_244(void) {return 001;} 00514 int DF_245(void) {return 001;} 00515 int DF_246(void) {return 001;} 00516 int DF_247(void) {return 001;} 00517 int DF_248(void) {return 135;} 00518 int DF_249(void) {return 001;} 00519 int DF_250(void) {return 001;} 00520 int DF_251(void) {return 001;} 00521 int DF_252(void) {return 113;} 00522 int DF_253(void) {return 001;} 00523 int DF_254(void) {return 90;} 00524 int DF_255(void) {return 001;} 00525 // IRのデータからAngleの分岐 00526 int (*DF_AngApi[])(void) = {DF_000, DF_001, DF_002, DF_003, DF_004, DF_005, DF_006, DF_007, DF_008, DF_009, DF_010, DF_011, DF_012, DF_013, DF_014, DF_015, DF_016, DF_017, DF_018, DF_019, DF_020, DF_021, DF_022, DF_023, DF_024, DF_025, DF_026, DF_027, DF_028, DF_029, DF_030, DF_031, DF_032, DF_033, DF_034, DF_035, DF_036, DF_037, DF_038, DF_039, DF_040, DF_041, DF_042, DF_043, DF_044, DF_045, DF_046, DF_047, DF_048, DF_049, DF_050, DF_051, DF_052, DF_053, DF_054, DF_055, DF_056, DF_057, DF_058, DF_059, DF_060, DF_061, DF_062, DF_063, DF_064, DF_065, DF_066, DF_067, DF_068, DF_069, DF_070, DF_071, DF_072, DF_073, DF_074, DF_075, DF_076, DF_077, DF_078, DF_079, DF_080, DF_081, DF_082, DF_083, DF_084, DF_085, DF_086, DF_087, DF_088, DF_089, DF_090, DF_091, DF_092, DF_093, DF_094, DF_095, DF_096, DF_097, DF_098, DF_099, DF_100, DF_101, DF_102, DF_103, DF_104, DF_105, DF_106, DF_107, DF_108, DF_109, DF_110, DF_111, DF_112, DF_113, DF_114, DF_115, DF_116, DF_117, DF_118, DF_119, DF_120, DF_121, DF_122, DF_123, DF_124, DF_125, DF_126, DF_127, DF_128, DF_129, DF_130, DF_131, DF_132, DF_133, DF_134, DF_135, DF_136, DF_137, DF_138, DF_139, DF_140, DF_141, DF_142, DF_143, DF_144, DF_145, DF_146, DF_147, DF_148, DF_149, DF_150, DF_151, DF_152, DF_153, DF_154, DF_155, DF_156, DF_157, DF_158, DF_159, DF_160, DF_161, DF_162, DF_163, DF_164, DF_165, DF_166, DF_167, DF_168, DF_169, DF_170, DF_171, DF_172, DF_173, DF_174, DF_175, DF_176, DF_177, DF_178, DF_179, DF_180, DF_181, DF_182, DF_183, DF_184, DF_185, DF_186, DF_187, DF_188, DF_189, DF_190, DF_191, DF_192, DF_193, DF_194, DF_195, DF_196, DF_197, DF_198, DF_199, DF_200, DF_201, DF_202, DF_203, DF_204, DF_205, DF_206, DF_207, DF_208, DF_209, DF_210, DF_211, DF_212, DF_213, DF_214, DF_215, DF_216, DF_217, DF_218, DF_219, DF_220, DF_221, DF_222, DF_223, DF_224, DF_225, DF_226, DF_227, DF_228, DF_229, DF_230, DF_231, DF_232, DF_233, DF_234, DF_235, DF_236, DF_237, DF_238, DF_239, DF_240, DF_241, DF_242, DF_243, DF_244, DF_245, DF_246, DF_247, DF_248, DF_249, DF_250, DF_251, DF_252, DF_253, DF_254, DF_255}; 00527 00528 00529 00530 00531 00532 /*---- mbed_masterからのデータ送信要求の処理 ----*/ 00533 // i=0のとき PING 00534 void MBED_PING(void) { 00535 PING_slots.wait(); 00536 val = I2C_master.write(Ping_data, 4); 00537 PING_slots.release(); 00538 if(!val) led2 = 1; 00539 } 00540 00541 // i=1のとき IR 00542 void MBED_IR(void) { 00543 Angle_char[3] = (BallCheck) ? 1 : 0; // ボールの保持を確認 00544 val = I2C_master.write(Angle_char, 4); // 0,1:進行方向 2:スピード 3:ボールの保持 00545 if(!val) led2 = 1; 00546 } 00547 00548 00549 // i=2のとき LCD 00550 void MBED_LCD(void) { 00551 val = I2C_master.write(lcd, strlen(lcd)+1); 00552 if(!val) led2 = 1; 00553 } 00554 00555 // i=3のとき ロータリースイッチ 00556 void MBED_ROTARY(void) { 00557 val = I2C_master.write(Mode, 1); 00558 if(!val) { 00559 led2 = 1; 00560 Flag = 1; 00561 } 00562 } 00563 00564 void (*MBED_ORDER[])(void) = {MBED_PING, MBED_IR, MBED_LCD, MBED_ROTARY}; 00565 00566 00567 00568 00569 00570 // mbedMasterとのI2C通信用プログラム 00571 void MBED_MASTER(void) { 00572 int i = I2C_master.receive(); 00573 int j = I2C_avr.receive(); 00574 00575 /* mbed_masterとの通信 */ 00576 switch (i) { 00577 case I2CSlave::ReadAddressed: // データ送信命令時の動作 00578 (*MBED_ORDER[Order])(); 00579 break; 00580 case I2CSlave::WriteAddressed: // 命令受信用の動作 00581 val = I2C_master.read(MBED_data, 1); 00582 if(!val) led1 = 1; 00583 Order = MBED_data[0]; 00584 break; 00585 // 基本的に使わない処理 00586 case I2CSlave::WriteGeneral: // 念のため一斉通信用の処理 00587 break; 00588 default: 00589 break; 00590 } 00591 00592 /* avrとの通信 */ 00593 switch (j) { 00594 case I2CSlave::WriteAddressed: 00595 val = I2C_avr.read(IR_data, 2); // 0:near 1:long 00596 if(!val) led3 = 1; 00597 switch(Mode[0]){ 00598 case 0: int_char((*FW_AngApi[IR_data[0]])()); break; 00599 case 1: int_char((*DF_AngApi[IR_data[0]])()); break; 00600 default : break; 00601 } 00602 break; 00603 // 基本的に使わない処理 00604 case I2CSlave::ReadAddressed: 00605 break; 00606 case I2CSlave::WriteGeneral: 00607 break; 00608 } 00609 } 00610 00611 00612 00613 00614 // int -> char 00615 void int_char(int x) { 00616 if (x>255) { // char一つに収まらないとき 00617 Angle_char[0] = 255; 00618 Angle_char[1] = x - 255; 00619 } else { // char一つに収まるとき 00620 Angle_char[0] = x; 00621 Angle_char[1] = 0; 00622 } 00623 } 00624 00625 00626 00627 00628 00629 00630
Generated on Thu Jul 14 2022 16:07:14 by 1.7.2