/** * See if a factory reset is needed. The 'init_ok' event is * thrown and any catchers can return FALSE if a factory reset * should occur. The accept button must be pressed afterwards * to confirm. */ void factory_reset_if_required (void) { if (!callset_invoke_boolean (init_ok)) { dmd_alloc_low_clean (); font_render_string_center (&font_mono5, 64, 10, "FACTORY SETTINGS"); font_render_string_center (&font_mono5, 64, 20, "RESTORED"); dmd_show_low (); factory_reset (); task_sleep_sec (4); warm_reboot (); } }
void system_accept_freewpc (void) { if ((freewpc_accepted[0] == ACCEPT_1) && (freewpc_accepted[1] == ACCEPT_2) && (freewpc_accepted[2] == ACCEPT_3)) return; #ifdef CONFIG_DMD dmd_alloc_low_clean (); font_render_string_center (&font_mono5, 64, 3, "FREEWPC"); font_render_string_center (&font_mono5, 64, 9, "WARNING... BALLY WMS"); font_render_string_center (&font_mono5, 64, 15, "DOES NOT SUPPORT"); font_render_string_center (&font_mono5, 64, 21, "THIS SOFTWARE"); font_render_string_center (&font_mono5, 64, 27, "PRESS ENTER"); dmd_show_low (); wait_for_button (SW_ENTER); dmd_alloc_low_clean (); font_render_string_center (&font_mono5, 64, 3, "FREEWPC"); font_render_string_center (&font_mono5, 64, 9, "NO WARRANTY EXISTS"); font_render_string_center (&font_mono5, 64, 15, "ROM MAY CAUSE DAMAGE"); font_render_string_center (&font_mono5, 64, 21, "TO REAL MACHINE"); font_render_string_center (&font_mono5, 64, 27, "PRESS ENTER"); dmd_show_low (); wait_for_button (SW_ENTER); dmd_alloc_low_clean (); font_render_string_center (&font_mono5, 64, 3, "FREEWPC"); font_render_string_center (&font_mono5, 64, 9, "IF YOU ARE SURE YOU"); font_render_string_center (&font_mono5, 64, 15, "WANT TO CONTINUE"); font_render_string_center (&font_mono5, 64, 21, "PRESS ENTER TWICE"); dmd_show_low (); wait_for_button (SW_ENTER); wait_for_button (SW_ENTER); dmd_alloc_low_clean (); dmd_show_low (); task_sleep_sec (1); #endif pinio_nvram_unlock (); freewpc_accepted[0] = ACCEPT_1; freewpc_accepted[1] = ACCEPT_2; freewpc_accepted[2] = ACCEPT_3; pinio_nvram_lock (); factory_reset (); warm_reboot (); }
/** * See if a factory reset is needed. The 'init_ok' event is * thrown and any catchers can return FALSE if a factory reset * should occur. The accept button must be pressed afterwards * to confirm. */ void factory_reset_if_required (void) { if (!callset_invoke_boolean (init_ok)) { deff_stop (DEFF_SYSTEM_RESET); #ifdef CONFIG_DMD_OR_ALPHA dmd_alloc_low_clean (); font_render_string_center (&font_mono5, 64, 10, "FACTORY SETTINGS"); font_render_string_center (&font_mono5, 64, 20, "RESTORED"); dmd_show_low (); #endif factory_reset (); task_sleep_sec (4); warm_reboot (); } }
void main() { CyGlobalIntEnable; #if USE_WATCHDOG // Enable watchdog timer for every 2 seconds CySysWdtWriteMode(0, CY_SYS_WDT_MODE_RESET); CySysWdtWriteMatch(0, 0xFFFF); CySysWdtEnable(CY_SYS_WDT_COUNTER0_MASK); #endif if(settings->settings_version < default_settings.settings_version) factory_reset(); Backlight_Write(1); disp_reset_Write(0); CyDelayUs(10); disp_reset_Write(1); CyDelayUs(10); Display_Start(); Display_SetContrast(settings->lcd_contrast); #ifdef USE_SPLASHSCREEN load_splashscreen(); #endif IDAC_High_Start(); IDAC_Low_Start(); state.calibrating = 0; set_current(0); set_output_mode(OUTPUT_MODE_FEEDBACK); start_adc(); setup(); //Create the two tasks xTaskCreate(vTaskUI, (signed portCHAR *) "UI", 178, NULL, tskIDLE_PRIORITY + 2, &ui_task); xTaskCreate(vTaskComms, (signed portCHAR *) "UART", 180, NULL, tskIDLE_PRIORITY + 2, &comms_task); prvHardwareSetup(); vTaskStartScheduler(); }
void main(void) { int32_t t_spread; uint32_t i; NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000); LED_ON(LED_RING_OE); //actually turns the LED ring off LEDDriver_Init(5); for (i=0;i<26;i++) LEDDriver_setRGBLED(i,0); LED_OFF(LED_RING_OE); //actually turns the LED ring on flag_update_LED_ring=1; init_inouts(); init_rotary(); init_envout_pwm(); ADC1_Init((uint16_t *)adc_buffer); ADC3_Init((uint16_t *)potadc_buffer); Codec_Init(SAMPLERATE); delay(); set_default_param_values(); set_default_color_scheme(); set_default_user_scalebank(); //overwrite default parameters if a startup bank exists cur_param_bank = load_startup_params(); if (cur_param_bank == 0xFF){ factory_reset(); cur_param_bank=0; } I2S_Block_Init(); TIM6_Config(); DAC_Ch1_NoiseConfig(); spread=(adc_buffer[SPREAD_ADC] >> 8) + 1; I2S_Block_PlayRec(); //update_spread(1); while(1){ check_errors(); param_read_switches(); update_ENVOUT_PWM(); update_LED_ring(); update_lock_leds(); t_spread=read_spread(); if (t_spread!=-1) update_spread(t_spread); process_lock_jacks(); process_lock_buttons(); param_read_q(); param_read_freq_nudge(); param_read_channel_level(); process_rotary_button(); process_rotary_rotation(); if (ui_mode==PLAY) check_rotary_pressed_repeatedly(); if (ui_mode==EDIT_SCALES) handle_edit_scale(); if (ui_mode==EDIT_COLORS) handle_edit_colors(); if (ui_mode==SELECT_PARAMS){ handle_freqpot_changing_filtermode(); handle_slider_changing_clipmode(); } if (do_ROTUP){ do_ROTUP=0; rotate_up(); } if (do_ROTDOWN){ do_ROTDOWN=0; rotate_down(); } process_rotateCV(); process_scaleCV(); } //end main loop } //end main()