/************************************************/ /* TASK05 task_m05.c */ /* Man Machine Interface */ /* mirs9503 */ /************************************************/ #include "hard.h" void initialize(); void led_set3(); extern lre_r, lre_l; void inzt05() { sys0(5, 0x1010); sys2(5, 10, 0, 0); mmi_init(); sys8(5, 1, 2); /* pow_chk */ } void nrmt05(a, b) int a, b; {} void timt05(a, b) int a, b; { int mode, dip; int irs, power; int led_data; dip = dipsw_data(); power = pow_chk(); sys8(5, 1, power); /* pow_chk */ if(dip != sys9(0, 3)) { initialize(); } sys8(0, 3, dip); led_on(OFF); irs = sys9(3, 1); if(irs > 0){ led_on(RED); } if(lre_l < 0){ led_on(GREEN); } led_set(3, dip); switch(dip) { case 0x00: led_data = sys9(4, 1); break; case 0x01: led_data = sys9(4, 3); /* uss_r no error */ break; case 0x02: led_data = sys9(3, 1); /* irs_data() */ break; case 0x03: led_data = sys9(2, 3); /* ts_data */ break; case 0x04: led_data = sys9(4, 1); /* uss_l */ break; case 0x05: led_data = sys9(4, 2); /* uss_m */ break; case 0x06: led_data = sys9(4, 3); /* uss_r */ break; case 0x07: led_data = sys9(2, 1); /* re_r */ break; case 0x08: led_data = sys9(2, 2); /* re_l */ break; case 0x09: led_data = sys9(2, 1); /* re_r */ break; case 0x0a: led_data = power; /* pow_chk */ break; case 0x0b: /* lre_r */ led_data = 11; break; case 0x0c: led_data = sys9(2, 4); /* lre_r / 100 turn 360[deg] */ break; case 0x0d: led_data = 13; break; case 0x0e: led_data = 14; break; case 0x0f: led_data = 15; break; } if(dip != 0x0b){ led_set3(led_data); } } interrupt void intt05() {} void initialize() { sys8(0, 1, 0); /* mode */ sys8(1, 1, 0); /* duty_r */ sys8(1, 2, 0); /* duty_l */ sys8(2, 1, 0); /* re_r */ sys8(2, 2, 0); /* re_l */ sys8(2, 3, 0); /* ts_data */ sys8(3, 1, 0); /* irs */ sys8(4, 1, 0); /* uss_l */ sys8(4, 2, 0); /* uss_m */ sys8(4, 3, 0); /* uss_r */ sys8(4, 4, 0); /* uss counter */ lre_r = lre_l = 0; } void led_set3(led_data) int led_data; { int d2, d1, d0; if(led_data < 0) led_data *= -1; led_data %= 1000; d2 = led_data / 100; led_data %= 100; d1 = led_data / 10; d0 = led_data % 10; led_set(2, d2); led_set(1, d1); led_set(0, d0); }