diff --git a/firmware/applications/initial.c b/firmware/applications/initial.c index c3ef34b..4855748 100644 --- a/firmware/applications/initial.c +++ b/firmware/applications/initial.c @@ -7,11 +7,11 @@ #include "usb/usbmsc.h" +FATFS FatFs; /**************************************************************************/ -void main_initial(void) { - char key=BTN_NONE; - +void init(void) +{ systickInit(SYSTICKSPEED); gpioSetValue (RB_LED0, 0); @@ -20,73 +20,47 @@ void main_initial(void) { gpioSetValue (RB_LED3, 0); IOCON_PIO1_11 = 0x0; gpioSetDir(RB_LED3, gpioDirection_Output); +} - while(1){ - lcdClear(); - lcdPrintln("Init v.42"); - lcdNl(); - lcdPrintln("Left: ISP()"); - lcdPrintln("Right: MSC()"); - lcdPrintln("Up: FormatDF()"); - lcdPrintln("Down: ???"); - lcdPrintln("Enter: LEDs()"); - lcdRefresh(); - - key=getInputWait(); +void format(void) +{ + int res; + lcdPrintln("Mount DF:"); + res=f_mount(0, &FatFs); + lcdPrintln(f_get_rc_string(res)); + lcdRefresh(); - if(key&BTN_ENTER){ - gpioSetValue (RB_LED0, 1); - gpioSetValue (RB_LED1, 1); - gpioSetValue (RB_LED2, 1); - gpioSetValue (RB_LED3, 1); - delayms_power(100); - getInputWaitRelease(); + lcdPrintln("Formatting DF..."); + res=f_mkfs(0,1,0); + lcdPrintln(f_get_rc_string(res)); + lcdRefresh(); +} - gpioSetValue (RB_LED0, 0); - gpioSetValue (RB_LED1, 0); - gpioSetValue (RB_LED2, 0); - gpioSetValue (RB_LED3, 0); - delayms_power(50); - }; - if(key&BTN_RIGHT){ - lcdClear(); - lcdPrintln("MSC Enabled."); - lcdRefresh(); - delayms_power(300); - usbMSCInit(); - getInputWait(); - lcdPrintln("MSC Disabled."); - usbMSCOff(); - lcdRefresh(); - } - if(key&BTN_LEFT){ - lcdClear(); - lcdPrintln("Enter ISP!"); - lcdRefresh(); - ISPandReset(); - } - if(key&BTN_UP){ - FATFS FatFs; - int res; +void msc(int timeout) +{ + lcdPrintln("MSC Enabled."); + lcdRefresh(); + delayms_power(300); + usbMSCInit(); + while(timeout--) + delayms(1000); + lcdPrintln("MSC Disabled."); + usbMSCOff(); + lcdRefresh(); +} - lcdClear(); - - lcdPrintln("Mount DF:"); - res=f_mount(0, &FatFs); - lcdPrintln(f_get_rc_string(res)); - lcdRefresh(); - - lcdPrintln("Formatting DF..."); - res=f_mkfs(0,1,0); - lcdPrintln(f_get_rc_string(res)); - lcdRefresh(); - } - if(key&BTN_DOWN){ - ; - } - - getInputWaitRelease(); - }; +void isp(void) +{ + lcdPrintln("Enter ISP!"); + lcdRefresh(); + ISPandReset(); +} + +void main_initial(void) { + init(); + format(); + msc(10); + isp(); } void tick_initial(void){