/*sensor-test*/ #include "m9402.h" void sensor_test(); void inzt09() { sys0(9,0x1100); /* sys1(9,1,0,0);*//*ishikawa 1/26*/ } void nrmt09(aa,bb) int aa,bb; { extern unsigned int mmi_iivseg; int a, b, c, d, DIP ,disp_count; static int y, z; DIP = ((inportb(PBDR0))&0x0f); if (DIP <= 0x07) { switch (DIP) { case 0x02: /*infrared*/ mmi_iivseg=0; a= sys9(1,1); d = a & 0xc0; switch (d) { case 0x40: mmi_iivseg += 1; break; case 0x80: mmi_iivseg += 2; break; case 0xc0: mmi_iivseg += 3; break; } /* if (a & 0xc0) mmi_iivseg |= 300; else if (a & 0x80) mmi_iivseg |= 200; else if (a & 0x40) mmi_iivseg |= 100; */ d = a & 0x06; switch (d) { case 0x04: mmi_iivseg += 100; break; case 0x02: mmi_iivseg += 200; break; case 0x06: mmi_iivseg += 300; break; } /* if (a & 0x06) mmi_iivseg |= 3; else if (a & 0x02) mmi_iivseg |= 2; else if (a & 0x04) mmi_iivseg |= 1; */ d = a & 0x38; switch (d) { case 0x10: mmi_iivseg += 10; break; case 0x20: mmi_iivseg += 20; break; case 0x08: mmi_iivseg += 30; break; case 0x30: mmi_iivseg += 40; break; case 0x18: mmi_iivseg += 50; break; case 0x38: mmi_iivseg += 60; break; } /* if (a & 0x38) mmi_iivseg |= 60; else if (a & 0x18) mmi_iivseg |= 50; else if (a & 0x30) mmi_iivseg |= 40; else if (a & 0x08) mmi_iivseg |= 30; else if (a & 0x20) mmi_iivseg |= 20; else if (a & 0x10) mmi_iivseg |= 10; */ break; case 0x03: /*touch sensor*/ a = sys9(3,1); mmi_iivseg = a; break; case 0x04: /*supersonic sensor*/ a = sys9(2,1); b = sys9(2,3); c = sys9(2,2); disp_count = sys9(0,3); if (disp_count >= 1000) { sys8(0,3,0);/*2/2 ishikawa*/ switch (z) { case 1: /*right*/ mmi_iivseg = a; mmi_iivseg += 1000; z = 2; break; case 2: /*left*/ mmi_iivseg = b; mmi_iivseg += 2000; z = 3; break; case 3: /*forward*/ mmi_iivseg = c; mmi_iivseg += 3000; z = 1; break; default:z=1; break; } } break; case 0x05: /*US-right*/ a = sys9(2,1); mmi_iivseg = a; break; case 0x06: /*US-left*/ a = sys9(2,3); mmi_iivseg = a; break; case 0x07: /*US-forward*/ a = sys9(2,2); mmi_iivseg = a; break; } } sys1(6,1,0,0); sys1(9,1,0,0); } void timt09(a,b) int a, b; {} void intt09(a,b) int a, b; {}