diff options
-rw-r--r-- | apps/debug_menu.c | 203 |
1 files changed, 103 insertions, 100 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index f640e0c4c0..0a2e4be0f3 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -72,9 +72,9 @@ void dbg_os(void) | |||
72 | 72 | ||
73 | switch(button) | 73 | switch(button) |
74 | { | 74 | { |
75 | case BUTTON_OFF: | 75 | case BUTTON_OFF: |
76 | case BUTTON_LEFT: | 76 | case BUTTON_LEFT: |
77 | return; | 77 | return; |
78 | } | 78 | } |
79 | } | 79 | } |
80 | } | 80 | } |
@@ -176,20 +176,21 @@ void dbg_ports(void) | |||
176 | 176 | ||
177 | switch(button) | 177 | switch(button) |
178 | { | 178 | { |
179 | case BUTTON_ON: | 179 | case BUTTON_ON: |
180 | charge_status = charge_status?false:true; | 180 | charge_status = charge_status?false:true; |
181 | charger_enable(charge_status); | 181 | charger_enable(charge_status); |
182 | break; | 182 | break; |
183 | 183 | ||
184 | case BUTTON_UP: | 184 | case BUTTON_UP: |
185 | ide_status = ide_status?false:true; | 185 | ide_status = ide_status?false:true; |
186 | ide_power_enable(ide_status); | 186 | ide_power_enable(ide_status); |
187 | break; | 187 | break; |
188 | 188 | ||
189 | case BUTTON_OFF: | 189 | case BUTTON_OFF: |
190 | charger_enable(false); | 190 | case BUTTON_LEFT: |
191 | ide_power_enable(true); | 191 | charger_enable(false); |
192 | return; | 192 | ide_power_enable(true); |
193 | return; | ||
193 | } | 194 | } |
194 | } | 195 | } |
195 | } | 196 | } |
@@ -258,7 +259,8 @@ void dbg_ports(void) | |||
258 | } | 259 | } |
259 | lcd_puts(0, 0, buf); | 260 | lcd_puts(0, 0, buf); |
260 | 261 | ||
261 | battery_voltage = (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) / 10000; | 262 | battery_voltage = (adc_read(ADC_UNREG_POWER) * |
263 | BATTERY_SCALE_FACTOR) / 10000; | ||
262 | batt_int = battery_voltage / 100; | 264 | batt_int = battery_voltage / 100; |
263 | batt_frac = battery_voltage % 100; | 265 | batt_frac = battery_voltage % 100; |
264 | 266 | ||
@@ -451,94 +453,95 @@ void view_battery(void) | |||
451 | while(1) | 453 | while(1) |
452 | { | 454 | { |
453 | switch (view) { | 455 | switch (view) { |
454 | case 0: /* voltage history graph */ | 456 | case 0: /* voltage history graph */ |
455 | /* Find maximum and minimum voltage for scaling */ | 457 | /* Find maximum and minimum voltage for scaling */ |
456 | maxv = minv = 0; | 458 | maxv = minv = 0; |
457 | for (i = BAT_FIRST_VAL; i < POWER_HISTORY_LEN; i++) { | 459 | for (i = BAT_FIRST_VAL; i < POWER_HISTORY_LEN; i++) { |
458 | if (power_history[i] > maxv) | 460 | if (power_history[i] > maxv) |
459 | maxv = power_history[i]; | 461 | maxv = power_history[i]; |
460 | if ((minv == 0) || ((power_history[i]) && | 462 | if ((minv == 0) || ((power_history[i]) && |
461 | (power_history[i] < minv)) ) | 463 | (power_history[i] < minv)) ) |
462 | { | 464 | { |
463 | minv = power_history[i]; | 465 | minv = power_history[i]; |
466 | } | ||
464 | } | 467 | } |
465 | } | ||
466 | 468 | ||
467 | if (minv < 1) | 469 | if (minv < 1) |
468 | minv = 1; | 470 | minv = 1; |
469 | if (maxv < 2) | 471 | if (maxv < 2) |
470 | maxv = 2; | 472 | maxv = 2; |
471 | 473 | ||
472 | lcd_clear_display(); | 474 | lcd_clear_display(); |
473 | lcd_puts(0, 0, "Battery voltage:"); | 475 | lcd_puts(0, 0, "Battery voltage:"); |
474 | snprintf(buf, 30, "scale %d.%02d-%d.%02d V", | 476 | snprintf(buf, 30, "scale %d.%02d-%d.%02d V", |
475 | minv / 100, minv % 100, maxv / 100, maxv % 100); | 477 | minv / 100, minv % 100, maxv / 100, maxv % 100); |
476 | lcd_puts(0, 1, buf); | 478 | lcd_puts(0, 1, buf); |
477 | 479 | ||
478 | x = 0; | 480 | x = 0; |
479 | for (i = BAT_FIRST_VAL+1; i < POWER_HISTORY_LEN; i++) { | 481 | for (i = BAT_FIRST_VAL+1; i < POWER_HISTORY_LEN; i++) { |
480 | y = (power_history[i] - minv) * BAT_YSPACE / (maxv - minv); | 482 | y = (power_history[i] - minv) * BAT_YSPACE / (maxv - minv); |
481 | lcd_clearline(x, LCD_HEIGHT-1, x, 20); | 483 | lcd_clearline(x, LCD_HEIGHT-1, x, 20); |
482 | lcd_drawline(x, LCD_HEIGHT-1, x, | 484 | lcd_drawline(x, LCD_HEIGHT-1, x, |
483 | MIN(MAX(LCD_HEIGHT-1 - y, 20), LCD_HEIGHT-1)); | 485 | MIN(MAX(LCD_HEIGHT-1 - y, 20), LCD_HEIGHT-1)); |
484 | x++; | 486 | x++; |
485 | } | 487 | } |
486 | 488 | ||
487 | break; | 489 | break; |
488 | 490 | ||
489 | case 1: /* status: */ | 491 | case 1: /* status: */ |
490 | lcd_clear_display(); | 492 | lcd_clear_display(); |
491 | lcd_puts(0, 0, "Power status:"); | 493 | lcd_puts(0, 0, "Power status:"); |
492 | 494 | ||
493 | y = (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) / 10000; | 495 | y = (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) / 10000; |
494 | snprintf(buf, 30, "Battery: %d.%02d V", y / 100, y % 100); | 496 | snprintf(buf, 30, "Battery: %d.%02d V", y / 100, y % 100); |
495 | lcd_puts(0, 1, buf); | 497 | lcd_puts(0, 1, buf); |
496 | y = (adc_read(ADC_EXT_POWER) * EXT_SCALE_FACTOR) / 10000; | 498 | y = (adc_read(ADC_EXT_POWER) * EXT_SCALE_FACTOR) / 10000; |
497 | snprintf(buf, 30, "External: %d.%02d V", y / 100, y % 100); | 499 | snprintf(buf, 30, "External: %d.%02d V", y / 100, y % 100); |
498 | lcd_puts(0, 2, buf); | 500 | lcd_puts(0, 2, buf); |
499 | snprintf(buf, 30, "Charger: %s", | 501 | snprintf(buf, 30, "Charger: %s", |
500 | charger_inserted() ? "present" : "absent"); | 502 | charger_inserted() ? "present" : "absent"); |
501 | lcd_puts(0, 3, buf); | 503 | lcd_puts(0, 3, buf); |
502 | #ifdef HAVE_CHARGE_CTRL | 504 | #ifdef HAVE_CHARGE_CTRL |
503 | snprintf(buf, 30, "Charging: %s", charger_enabled ? "yes" : "no"); | 505 | snprintf(buf, 30, "Charging: %s", |
504 | lcd_puts(0, 4, buf); | 506 | charger_enabled ? "yes" : "no"); |
507 | lcd_puts(0, 4, buf); | ||
505 | #endif | 508 | #endif |
506 | y = 0; | 509 | y = 0; |
507 | for (i = 0; i < CHARGE_END_NEGD; i++) | 510 | for (i = 0; i < CHARGE_END_NEGD; i++) |
508 | y += power_history[POWER_HISTORY_LEN-1-i]*100 - | 511 | y += power_history[POWER_HISTORY_LEN-1-i]*100 - |
509 | power_history[POWER_HISTORY_LEN-1-i-1]*100; | 512 | power_history[POWER_HISTORY_LEN-1-i-1]*100; |
510 | y = y / CHARGE_END_NEGD; | 513 | y = y / CHARGE_END_NEGD; |
511 | 514 | ||
512 | snprintf(buf, 30, "short delta: %d", y); | 515 | snprintf(buf, 30, "short delta: %d", y); |
513 | lcd_puts(0, 5, buf); | 516 | lcd_puts(0, 5, buf); |
514 | 517 | ||
515 | y = 0; | 518 | y = 0; |
516 | for (i = 0; i < CHARGE_END_ZEROD; i++) | 519 | for (i = 0; i < CHARGE_END_ZEROD; i++) |
517 | y += power_history[POWER_HISTORY_LEN-1-i]*100 - | 520 | y += power_history[POWER_HISTORY_LEN-1-i]*100 - |
518 | power_history[POWER_HISTORY_LEN-1-i-1]*100; | 521 | power_history[POWER_HISTORY_LEN-1-i-1]*100; |
519 | y = y / CHARGE_END_ZEROD; | 522 | y = y / CHARGE_END_ZEROD; |
520 | 523 | ||
521 | snprintf(buf, 30, "long delta: %d", y); | 524 | snprintf(buf, 30, "long delta: %d", y); |
522 | lcd_puts(0, 6, buf); | 525 | lcd_puts(0, 6, buf); |
523 | 526 | ||
524 | #ifdef HAVE_CHARGE_CTRL | 527 | #ifdef HAVE_CHARGE_CTRL |
525 | lcd_puts(0, 7, power_message); | 528 | lcd_puts(0, 7, power_message); |
526 | #endif | 529 | #endif |
527 | break; | 530 | break; |
528 | 531 | ||
529 | case 2: /* voltage deltas: */ | 532 | case 2: /* voltage deltas: */ |
530 | lcd_clear_display(); | 533 | lcd_clear_display(); |
531 | lcd_puts(0, 0, "Voltage deltas:"); | 534 | lcd_puts(0, 0, "Voltage deltas:"); |
532 | 535 | ||
533 | for (i = 0; i <= 6; i++) { | 536 | for (i = 0; i <= 6; i++) { |
534 | y = power_history[POWER_HISTORY_LEN-1-i] - | 537 | y = power_history[POWER_HISTORY_LEN-1-i] - |
535 | power_history[POWER_HISTORY_LEN-1-i-1]; | 538 | power_history[POWER_HISTORY_LEN-1-i-1]; |
536 | snprintf(buf, 30, "-%d min: %s%d.%02d V", i, | 539 | snprintf(buf, 30, "-%d min: %s%d.%02d V", i, |
537 | (y < 0) ? "-" : "", ((y < 0) ? y * -1 : y) / 100, | 540 | (y < 0) ? "-" : "", ((y < 0) ? y * -1 : y) / 100, |
538 | ((y < 0) ? y * -1 : y ) % 100); | 541 | ((y < 0) ? y * -1 : y ) % 100); |
539 | lcd_puts(0, i+1, buf); | 542 | lcd_puts(0, i+1, buf); |
540 | } | 543 | } |
541 | break; | 544 | break; |
542 | } | 545 | } |
543 | 546 | ||
544 | lcd_update(); | 547 | lcd_update(); |
@@ -546,19 +549,19 @@ void view_battery(void) | |||
546 | 549 | ||
547 | switch(button_get(false)) | 550 | switch(button_get(false)) |
548 | { | 551 | { |
549 | case BUTTON_UP: | 552 | case BUTTON_UP: |
550 | if (view) | 553 | if (view) |
551 | view--; | 554 | view--; |
552 | break; | 555 | break; |
553 | 556 | ||
554 | case BUTTON_DOWN: | 557 | case BUTTON_DOWN: |
555 | if (view < 2) | 558 | if (view < 2) |
556 | view++; | 559 | view++; |
557 | break; | 560 | break; |
558 | 561 | ||
559 | case BUTTON_LEFT: | 562 | case BUTTON_LEFT: |
560 | case BUTTON_OFF: | 563 | case BUTTON_OFF: |
561 | return; | 564 | return; |
562 | } | 565 | } |
563 | } | 566 | } |
564 | } | 567 | } |