Pi Firmware: Show clock error on info screen

Change-Id: I4d786215b3fa41c35277369a1b5bc502f7e13119
issue_1022
David Banks 2018-07-18 11:47:39 +01:00
rodzic e21a647719
commit c320e42992
3 zmienionych plików z 15 dodań i 3 usunięć

Wyświetl plik

@ -295,11 +295,19 @@ static void show_feature(int num) {
osd_set(3, 0, message);
break;
case INFO_CAL_SUMMARY:
if (clock_error_ppm > 0) {
sprintf(message, "Clk Err: %d ppm (Beeb slower than Pi)", clock_error_ppm);
} else if (clock_error_ppm < 0) {
sprintf(message, "Clk Err: %d ppm (Beeb faster than Pi)", -clock_error_ppm);
} else {
sprintf(message, "Clk Err: %d ppm (exact match)", clock_error_ppm);
}
osd_set(3, 0, message);
if (cpld->show_cal_summary) {
cpld->show_cal_summary(3);
cpld->show_cal_summary(5);
} else {
sprintf(message, "show_cal_summary() not implemented");
osd_set(3, 0, message);
osd_set(5, 0, message);
}
break;
case INFO_CAL_DETAILS:

Wyświetl plik

@ -7,6 +7,8 @@
#define ATTR_DOUBLE_SIZE (1 << 0)
extern int clock_error_ppm;
void osd_init();
void osd_clear();
void osd_set(int line, int attr, char *text);

Wyświetl plik

@ -42,6 +42,7 @@ typedef void (*func_ptr)();
cpld_t *cpld = NULL;
unsigned char *fb = NULL;
int pitch = 0;
int clock_error_ppm = 0;
// =============================================================
// Local variables
@ -285,7 +286,8 @@ static int calibrate_clock() {
log_info(" Actual frame time = %d ns", frame_time);
double error = (double) frame_time / (double) frame_ref;
log_info(" Frame time error = %d PPM", (int) ((error - 1.0) * 1e6));
clock_error_ppm = ((error - 1.0) * 1e6);
log_info(" Frame time error = %d PPM", clock_error_ppm );
int new_clock = (int) (((double) CORE_FREQ) / error);
log_info(" Optimal clock = %d Hz", new_clock);