From c7142aad954b9c53d1b05ac76b4e596767d23387 Mon Sep 17 00:00:00 2001 From: Hoernchen Date: Fri, 7 Jun 2013 21:29:30 +0200 Subject: [PATCH] tools: calculate the multisynth output and print it --- host/hackrf-tools/src/hackrf_si5351c.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/host/hackrf-tools/src/hackrf_si5351c.c b/host/hackrf-tools/src/hackrf_si5351c.c index f9e86910..56ed2ec5 100644 --- a/host/hackrf-tools/src/hackrf_si5351c.c +++ b/host/hackrf-tools/src/hackrf_si5351c.c @@ -142,9 +142,13 @@ int dump_multisynth_config(hackrf_device* device, const uint_fast8_t ms_number) printf("\tp1 = %u\n", p1); printf("\tp2 = %u\n", p2); printf("\tp3 = %u\n", p3); + if(p3) + printf("\tOutput (800Mhz PLL): %#.10f Mhz\n", (800 / (float)((p1*p3 + p2 + 512*p3)/(128*p3))) / div_lut[r_div] ); } else { // MS6 and 7 are integer only + unsigned int parms; reg_base = 90; + for(i=0; i<3; i++) { uint_fast8_t reg_number = reg_base + i; int result = hackrf_si5351c_read(device, reg_number, ¶meters[i]); @@ -154,7 +158,10 @@ int dump_multisynth_config(hackrf_device* device, const uint_fast8_t ms_number) } r_div = (ms_number == 6) ? parameters[2] & 0x7 : parameters[2] & 0x70 >> 4 ; - printf("\tp1_int = %u\n", (ms_number == 6) ? parameters[0] : parameters[1]); + parms = (ms_number == 6) ? parameters[0] : parameters[1]; + printf("\tp1_int = %u\n", parms); + if(parms) + printf("\tOutput (800Mhz PLL): %#.10f Mhz\n", (800.0f / parms) / div_lut[r_div] ); } printf("\toutput divider = %u\n", div_lut[r_div]);