Hi,
i am currently finishing the TPD-Displays PCBs, and i write a Test App/or my first skeleton-UI to use it.
Its all clear so far, i can print single digits, i know the pattern, the pinout…
i want to print for example:
float BPM = 128.5; // for Example for Digit 1 2 8 5 — As BPM Display
but i stuck by Divididing the BPM Value into single Integers, by searching in internet i found:
int i = BPM\*10; // Elemenate FLOAT Digit! static char buf[4]; sprintf(buf, "%05.2f", i); // split it into CHARs
but that dont work at all… (print “0” on the first digits, the others are OFF)
i later print the “buf” value to my Digit — that works fine, when initalize “TPD_SEG” by hand with iniatl values, but not when filled with above code!
// Transcode To Shiftregister-Friendly Array static u8 x=0; for (x=0; x\<4; x++) { // 7 Segment PINOUT // [6] // [1] [5] // [0] // [2] [4] // [3] [7] // switch (buf[x]) { case 0: TPD\_SEG[x][0] = 0; TPD\_SEG[x][1] = 1; TPD\_SEG[x][2] = 1; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 1: TPD\_SEG[x][0] = 0; TPD\_SEG[x][1] = 0; TPD\_SEG[x][2] = 0; TPD\_SEG[x][3] = 0; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 0; TPD\_SEG[x][7] = 0; break; case 2: TPD\_SEG[x][0] = 1; TPD\_SEG[x][1] = 0; TPD\_SEG[x][2] = 1; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 0; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 3: TPD\_SEG[x][0] = 1; TPD\_SEG[x][1] = 0; TPD\_SEG[x][2] = 0; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 4: TPD\_SEG[x][0] = 0; TPD\_SEG[x][1] = 1; TPD\_SEG[x][2] = 0; TPD\_SEG[x][3] = 0; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 0; TPD\_SEG[x][7] = 0; break; case 5: TPD\_SEG[x][0] = 1; TPD\_SEG[x][1] = 1; TPD\_SEG[x][2] = 0; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 0; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 6: TPD\_SEG[x][0] = 1; TPD\_SEG[x][1] = 1; TPD\_SEG[x][2] = 1; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 0; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 7: TPD\_SEG[x][0] = 0; TPD\_SEG[x][1] = 0; TPD\_SEG[x][2] = 0; TPD\_SEG[x][3] = 0; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 8: TPD\_SEG[x][0] = 1; TPD\_SEG[x][1] = 1; TPD\_SEG[x][2] = 1; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; case 9: TPD\_SEG[x][0] = 1; TPD\_SEG[x][1] = 1; TPD\_SEG[x][2] = 0; TPD\_SEG[x][3] = 1; TPD\_SEG[x][4] = 1; TPD\_SEG[x][5] = 1; TPD\_SEG[x][6] = 1; TPD\_SEG[x][7] = 0; break; } }