int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer uart_timer_configure(); uart_init(); _enable_interrupts(); uart_puts("\n\r***************\n\r"); uart_puts("MSP430 SunV2\n\r"); uart_puts("***************\n\r\n\r"); uint8_t c; // Timeshare between UART and dimming while(1) { if(uart_getc(&c)) { if(c == '\r') { uart_putc('\n'); uart_putc('\r'); } else { uart_putc('['); uart_putc(c); uart_putc(']'); // Clear UART configuration _disable_interrupts(); timer_deconfigure(); uart_disable(); uart_timerA_disable(); switch (c) { case 'w': turnOn(); break; case 's': turnOff(); break; case 'r': remember(); break; case 'd': dimUp(); break; case 'a': dimDown(); break; } // UART configuration art_init(); timer_deconfigure(); uart_timer_configure(); uart_timerA_enable(); _enable_interrupts(); } } } }
void sys_init() { char *p,buf[LN_buf+1]; char t; time_t e,s; ch.frug.called=0; ch.frug.monitor=1; ch.frug.esc=0; ch.fp=NULL; sys.rs=FALSE; /* ch.env=NULL;*/ /* debug_start();*/ ed_init(); sion_init(); nowvar=varinit(LN_str,MAX_var); sys.var=varinit(LN_str,MAX_var); sys.result=varinit(LN_result,MAX_var); strcpy(sys.home,"."); op_system(); if (sion_sr("config","system")==0) { exit(1); } sion_read(sys.var); sion_sr("config","result"); sion_read(sys.result); sion_close(); sys.execute=atoi(getvar("execute",sys.var))+1; sys.logon =atoi(getvar("logon",sys.var)); sys.post =atoi(getvar("post",sys.var)); sys.t_logon=atoi(getvar("tdlogon",sys.var)); sys.t_post =atoi(getvar("tdpost",sys.var)); strjncpy(sys.netname,getvar("netname",sys.var),LN_title); strjncpy(sys.netid,getvar("netid",sys.var),LN_netid); strjncpy(sys.home ,getvar("home",sys.var),LN_dirs); strjncpy(sys.temp ,getvar("temp",sys.var),LN_dirs); pool.max=atoi(getvar("poolmax",sys.var)); copyright(); p=getvar("opentime",sys.var); tzset(); /* 時空関数がまだ現れていないので呼ぶ必要あり */ if (p==NULL) { sys.opentime=DT_daytime; sys.starttime=0; }else { p=pull(buf,p); t=atoi(buf); p=pull(buf,p); s=(t*60+atoi(buf))*60; p=pull(buf,p); t=atoi(buf); p=pull(buf,p); e=(t*60+atoi(buf))*60; /*dbprintf("s:%ld,e:%ld",s,e);*/ sys.opentime=e+(e<s?DT_daytime:0)-s; sys.starttime=DT_daytime-s; /*dbprintf("o:%ld,s:%ld",sys.opentime,sys.starttime);*/ } stack_init(); where_init(); user_init(); art_init(); pool_init(); sys.rs=rs_init(); /* sys_log("●システム起動");*/ }