From 073f1978e207b89618fb76710aa764b7bbd3cc97 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Fri, 12 May 2006 01:10:18 +0000 Subject: H1x0: Add SPDIF power control and frequency measurement to the SPDIF monitor. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9919 a1c6a512-1295-4272-9138-f99709370657 --- apps/debug_menu.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'apps/debug_menu.c') diff --git a/apps/debug_menu.c b/apps/debug_menu.c index f3dc368d18..3936594954 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -718,7 +718,6 @@ bool dbg_partitions(void) bool dbg_spdif(void) { char buf[128]; - int button; int line; unsigned int control; int x; @@ -727,12 +726,17 @@ bool dbg_spdif(void) int generation; unsigned int interruptstat; bool valnogood, symbolerr, parityerr; + bool done = false; lcd_setmargins(0, 0); lcd_clear_display(); lcd_setfont(FONT_SYSFIXED); +#ifdef HAVE_SPDIF_POWER + spdif_power_enable(true); /* We need SPDIF power for both sending & receiving */ +#endif + PHASECONFIG = 0x34; /* Gain = 3*2^13, source = EBUIN */ - while(1) + while (!done) { line = 0; @@ -855,21 +859,29 @@ bool dbg_spdif(void) } snprintf(buf, sizeof(buf), "Frequency: %d (%s)", x, s); lcd_puts(0, line++, buf); - + x = (control >> 2) & 3; snprintf(buf, sizeof(buf), "Clock accuracy: %d", x); lcd_puts(0, line++, buf); + line++; + snprintf(buf, sizeof(buf), "Measured freq: %ldHz", + (long)((long long)FREQMEAS*CPU_FREQ/((1 << 15)*3*(1 << 13))/128)); + lcd_puts(0, line++, buf); + lcd_update(); - button = button_get_w_tmo(HZ/10); - switch(button) + switch (button_get_w_tmo(HZ/10)) { - case SETTINGS_CANCEL: - case SETTINGS_OK2: - return false; + case SETTINGS_CANCEL: + case SETTINGS_OK2: + done = true; + break; } } +#ifdef HAVE_SPDIF_POWER + spdif_power_enable(global_settings.spdif_enable); +#endif return false; } -- cgit v1.2.3