summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/debug_menu.c203
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}