/** * Initialize the DMD subsystem. */ void dmd_init (void) { //dmd_rtt = dmd_rtt0; dmd_rtt = dmd_new_rtt; dmd_phase_ptr = dmd_phase_table; dmd_in_transition = FALSE; dmd_transition = NULL; /* If DMD_BLANK_PAGE_COUNT is defined, this says how * many DMD pages should not be allocatable, but should be * reserved and kept blank. This is handy for some effects. * Initialize those pages now. */ #ifdef DMD_BLANK_PAGE_COUNT pinio_dmd_window_set (PINIO_DMD_WINDOW_0, dmd_get_blank (0)); dmd_clean_page_low (); pinio_dmd_window_set (PINIO_DMD_WINDOW_1, dmd_get_blank (1)); dmd_clean_page_high (); #endif pinio_dmd_window_set (PINIO_DMD_WINDOW_0, 0); pinio_dmd_window_set (PINIO_DMD_WINDOW_1, 0); dmd_clean_page_low (); pinio_dmd_set_visible (dmd_dark_page = dmd_bright_page = 0); dmd_free_page = 2; /* Program the DMD controller to generate interrupts */ pinio_dmd_request_interrupt (); }
/** * Initialize the DMD subsystem. */ void dmd_init (void) { //dmd_rtt = dmd_rtt0; dmd_rtt = dmd_new_rtt; dmd_phase_ptr = dmd_phase_table; dmd_in_transition = FALSE; dmd_transition = NULL; /* If DMD_BLANK_PAGE_COUNT is defined, this says how * many DMD pages should not be allocatable, but should be * reserved and kept blank. This is handy for some effects. * Initialize those pages now. */ #ifdef DMD_BLANK_PAGE_COUNT wpc_dmd_set_low_page (dmd_get_blank (0)); dmd_clean_page_low (); wpc_dmd_set_high_page (dmd_get_blank (1)); dmd_clean_page_high (); #endif wpc_dmd_set_low_page (0); wpc_dmd_set_high_page (0); dmd_clean_page_low (); wpc_dmd_set_visible_page (dmd_dark_page = dmd_bright_page = 0); dmd_free_page = 2; /* Program the DMD controller to generate interrupts */ #ifdef CONFIG_DEBUG_ADJUSTMENTS firq_row_value = DMD_REFRESH_ROW; #endif dmd_request_firq (); }
void dmd_show_high (void) { if (unlikely (dmd_transition)) { dmd_low_page = dmd_get_blank (0); dmd_do_transition (); } else { dmd_dark_page = dmd_get_blank (0); dmd_bright_page = dmd_high_page; } }