int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; init_12864(); write_Chinese_12864("你好!123456",0,0,6); // menu(); init_1867_100(); change_vol(itsvol); init_ad9833(); while(1) { key_action(); // menu(); delay_s(1); } }
int main (int argc, char **argv) { struct timeval tv; #ifdef HAVE_LIBKVM if (kvm_init()) can_use_kvm = 1; #endif #ifdef DEBUG if (!(debug_file = fopen("debug", "w"))) { printf("file debug open error\n"); exit(0); } #endif get_boot_time(); get_rows_cols(&screen_rows, &screen_cols); buf_size = screen_cols + screen_cols/2; line_buf = malloc(buf_size); if (!line_buf) errx(1, "Cannot allocate memory for buffer."); curses_init(); current = &users_list; users_init(); procwin_init(); subwin_init(); menu_init(); signal(SIGINT, int_handler); signal(SIGWINCH, winch_handler); // signal(SIGSEGV, segv_handler); print_help(); update_load(); current->redraw(); wnoutrefresh(main_win); wnoutrefresh(info_win.wd); wnoutrefresh(help_win.wd); doupdate(); tv.tv_sec = TIMEOUT; tv.tv_usec = 0; for(;;) { /* main loop */ #ifndef RETURN_TV_IN_SELECT struct timeval before; struct timeval after; #endif fd_set rfds; int retval; FD_ZERO(&rfds); FD_SET(STDIN_FILENO,&rfds); #ifdef RETURN_TV_IN_SELECT retval = select(1, &rfds, 0, 0, &tv); if(retval > 0) { int key = read_key(); key_action(key); } if (!tv.tv_sec && !tv.tv_usec){ ticks++; periodic(); tv.tv_sec = TIMEOUT; } #else gettimeofday(&before, 0); retval = select(1, &rfds, 0, 0, &tv); gettimeofday(&after, 0); tv.tv_sec -= (after.tv_sec - before.tv_sec); if(retval > 0) { int key = read_key(); key_action(key); } if(tv.tv_sec <= 0) { ticks++; periodic(); tv.tv_sec = TIMEOUT; } #endif if (size_changed) resize(); } }