#include "mbed.h" DigitalOut digit[] = {PTE30, PTB20, PTE23, PTE22}; // 0 = zap DigitalOut seg[] = {PTE20, PTE6, PTE16, PTE17, PTE18, PTE19, PTE31, PTE21}; // 1 = zap DigitalOut trig(PTC1); DigitalIn echo(PTC2); Ticker sensor; int score = 1234; int ascore[4] = {0,0,0,0}; void segupdate() { int number = score; for(int i = 3; i>=0; i--) { ascore[i] = number % 10; number /= 10; } //seg display for(int i=0; i<4; i++) { wait_ms(1); for(int j=0; j<4; j++) { digit[j] = 1; } digit[i] = 0; if(ascore[i] == 0) { seg[0] = 1; seg[1] = 1; seg[2] = 1; seg[3] = 1; seg[4] = 1; seg[5] = 1; seg[6] = 0; seg[7] = 0; } if(ascore[i] == 1) { seg[0] = 0; seg[1] = 1; seg[2] = 1; seg[3] = 0; seg[4] = 0; seg[5] = 0; seg[6] = 0; seg[7] = 0; } if(ascore[i] == 2) { seg[0] = 1; seg[1] = 1; seg[2] = 0; seg[3] = 1; seg[4] = 1; seg[5] = 0; seg[6] = 1; seg[7] = 0; } if(ascore[i] == 3) { seg[0] = 1; seg[1] = 1; seg[2] = 1; seg[3] = 1; seg[4] = 0; seg[5] = 0; seg[6] = 1; seg[7] = 0; } if(ascore[i] == 4) { seg[0] = 0; seg[1] = 1; seg[2] = 1; seg[3] = 0; seg[4] = 0; seg[5] = 1; seg[6] = 1; seg[7] = 0; } if(ascore[i] == 5) { seg[0] = 1; seg[1] = 0; seg[2] = 1; seg[3] = 1; seg[4] = 0; seg[5] = 1; seg[6] = 1; seg[7] = 0; } if(ascore[i] == 6) { seg[0] = 1; seg[1] = 0; seg[2] = 1; seg[3] = 1; seg[4] = 1; seg[5] = 1; seg[6] = 1; seg[7] = 0; } if(ascore[i] == 7) { seg[0] = 1; seg[1] = 1; seg[2] = 1; seg[3] = 0; seg[4] = 0; seg[5] = 0; seg[6] = 0; seg[7] = 0; } if(ascore[i] == 8) { seg[0] = 1; seg[1] = 1; seg[2] = 1; seg[3] = 1; seg[4] = 1; seg[5] = 1; seg[6] = 1; seg[7] = 0; } if(ascore[i] == 9) { seg[0] = 1; seg[1] = 1; seg[2] = 1; seg[3] = 1; seg[4] = 0; seg[5] = 1; seg[6] = 1; seg[7] = 0; } if(i==2) seg[7] = 1; } } void ultrasonic() { trig = 1; wait_us(10); trig = 0; for(int i=0; i<27000; i++) { if(echo) break; else wait_us(1); } double time = 0; while(echo) { time += 0.000001; if(time >= 0.01) break; wait_us(1); } if(time >= 0.01) score = 9999; else score = int(time*170*4800); } int main() { trig = 0; sensor.attach(&ultrasonic, 0.2); while (true) { segupdate(); } }