Subversion Repositories Projects

Rev

Rev 519 | Rev 736 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 519 Rev 523
Line 245... Line 245...
245
 * <pad> = 1 will cause blank spaced to be filled up with zeros e.g. 007 instead of   7
245
 * <pad> = 1 will cause blank spaced to be filled up with zeros e.g. 007 instead of   7
246
 */
246
 */
247
void write_ndigit_number_u_10th(uint8_t x, uint8_t y, uint16_t number, int16_t length, uint8_t pad) {
247
void write_ndigit_number_u_10th(uint8_t x, uint8_t y, uint16_t number, int16_t length, uint8_t pad) {
248
        char s[7];
248
        char s[7];
249
        itoa(number, s, 10 );
249
        itoa(number, s, 10 );
-
 
250
        uint8_t len = strlen(s);
250
        for (uint8_t i = 0; i < length - strlen(s); i++) {
251
        for (uint8_t i = 0; i < length - len; i++) {
251
                if (pad) write_char((x++)+(y * 30), 10);
252
                if (pad) write_char((x++)+(y * 30), 10); //  zero
252
                else write_ascii_char((x++)+(y * 30), 0);
253
                else write_char((x++)+(y * 30), 0); // blank
253
        }
254
        }
254
        char rest = s[strlen(s)-1];
255
        char rest = s[len - 1];
255
        s[strlen(s)-1] = 0;
256
        s[len - 1] = 0;
-
 
257
        if (len == 1) {
256
        if (number < 10) write_char((x-1)+(y * 30), 10); // zero
258
                write_char((x-1)+(y * 30), 10); // zero
-
 
259
        } else if (len == 2 && s[0] == '-') {
-
 
260
                write_char((x-1)+(y * 30), 0x49); // minus
-
 
261
                write_char((x)+(y * 30), 10); // zero
-
 
262
        } else {
257
        else write_ascii_string(x,  y, s);
263
                write_ascii_string(x,  y, s);
-
 
264
        }
258
        x += strlen(s);
265
        x += len - 1;
259
        write_char((x++)+(y * 30), 65); // decimal point
266
        write_char((x++)+(y * 30), 65); // decimal point
260
        write_ascii_char((x++)+(y * 30), rest); // after dot
267
        write_ascii_char((x++)+(y * 30), rest); // after dot
261
}
268
}
Line 262... Line 269...
262
 
269
 
Line 266... Line 273...
266
 * <pad> = 1 will cause blank spaced to be filled up with zeros e.g. 007 instead of   7
273
 * <pad> = 1 will cause blank spaced to be filled up with zeros e.g. 007 instead of   7
267
 */
274
 */
268
void write_ndigit_number_s_10th(uint8_t x, uint8_t y, int16_t number, int16_t length, uint8_t pad) {
275
void write_ndigit_number_s_10th(uint8_t x, uint8_t y, int16_t number, int16_t length, uint8_t pad) {
269
        char s[7];
276
        char s[7];
270
        itoa(number, s, 10 );
277
        itoa(number, s, 10 );
-
 
278
        uint8_t len = strlen(s);
271
        for (uint8_t i = 0; i < length - strlen(s); i++) {
279
        for (uint8_t i = 0; i < length - len; i++) {
272
                if (pad) write_char((x++)+(y * 30), 10);
280
                if (pad) write_char((x++)+(y * 30), 10); //  zero
273
                else write_char((x++)+(y * 30), 0);
281
                else write_char((x++)+(y * 30), 0); // blank
274
        }
282
        }
275
        char rest = s[strlen(s)-1];
283
        char rest = s[len - 1];
276
        s[strlen(s)-1] = 0;
284
        s[len - 1] = 0;
-
 
285
        if (len == 1) {
-
 
286
                write_char((x-1)+(y * 30), 10); // zero
-
 
287
        } else if (len == 2 && s[0] == '-') {
-
 
288
                write_char((x-1)+(y * 30), 0x49); // minus
277
        if (number < 10) write_char((x)+(y * 30), 10); // zero
289
                write_char((x)+(y * 30), 10); // zero
278
        else {
290
        } else {
279
                write_ascii_string(x,  y, s);
291
                write_ascii_string(x,  y, s);
280
        }
292
        }
281
        x += strlen(s);
293
        x += len - 1;
282
        write_char((x++)+(y * 30), 65); // decimal point
294
        write_char((x++)+(y * 30), 65); // decimal point
283
        write_ascii_char((x++)+(y * 30), rest); // after dot
295
        write_ascii_char((x++)+(y * 30), rest); // after dot
284
       
-
 
285
}
296
}
Line 286... Line 297...
286
 
297
 
287
/**
298
/**
288
 *  write <seconds> as human readable time at <x>/<y> to MAX7456 display mem
299
 *  write <seconds> as human readable time at <x>/<y> to MAX7456 display mem