#define __NOTETIME 10 #define __WAITTIME 12 int PulseCount; int Value; task main() { PulseCount = 0; start Count; SetSensor(SENSOR_2,SENSOR_LIGHT); SetSensor(SENSOR_1,SENSOR_TOUCH); GetValue(); PlayMusic(Value); PlayMusic(Value); PlayMusic(Value); StopAllTasks(); } task Count() { while (true) { until (SENSOR_1 == 0); Wait(5); PulseCount++; until (SENSOR_1 == 1); Wait(5); PulseCount++; } } void GetValue() { Value = 0; OnFwd(OUT_A); until (SENSOR_2 < 40); until (SENSOR_2 > 40); PulseCount = 0; until (PulseCount > 21); PulseCount = 0; repeat (14) { Value *= 2; if (SENSOR_2 > 40) Value++; until (PulseCount > 14); PulseCount = 0; } until (PulseCount > 50); Off(OUT_A); } void PlayMusic(int data) { repeat (7) { if ((data & 3) == 0 ) {PlayTone(262,4*__NOTETIME); Wait(4*__WAITTIME);} if ((data & 3) == 1 ) {PlayTone(294,4*__NOTETIME); Wait(4*__WAITTIME);} if ((data & 3) == 2 ) {PlayTone(330,4*__NOTETIME); Wait(4*__WAITTIME);} if ((data & 3) == 3 ) {PlayTone(349,4*__NOTETIME); Wait(4*__WAITTIME);} data /= 4; } }