/* turns on all leds or, if a parameter is given, that led */ void ledon(void) { short led_num = -1; if ((input_line[5] == ' ') && (isdigit(input_line[6]))) led_num = input_line[6] - '0'; if (led_num == -1) led_on_all(); else if ((led_num >= 1) && (led_num <= 8)) led_on(led_num); }
void long_press(int key_num,int num){ if((rEXTINT1 &(7<<num))==0){ if(key_num == 5 || key_num == 6){ led_on_all(); }else{ led_on(key_num); } beep_on(); rEXTINT1 &= ~(7<<num); rEXTINT1 |= 0x4; } else if((rEXTINT1 &(7<<num)) == 0x4){ led_off_all(); beep_off(); rEXTINT1 &= ~(7<<num); } }
int main() { init_led(); init_beep(); //init_key(); 轮循初始化 //init_interrupt_for_key(); //中断的方式 led_off_all(); if(flag){ led_on_all(); beep_on(); } int i; while(1){ } return 0; }
void long_press(int key_num,int num){ if((rEXTINT1 &(num))==0){ //低电平触发了中断 if(key_num == 5 || key_num == 6){ led_on_all(); }else{ led_on(key_num); } beep_on(); //改变中断的触发方式为上升沿 rEXTINT1 &= ~(num); rEXTINT1 |= 0x4; } else if((rEXTINT1 &(num)) == 0x4){ //上升沿触发中断 led_off_all(); beep_off(); rEXTINT1 &= ~(num); } }
/* funny demo! */ void demo(void) { int set_time_backup; set_time_backup = set_time; set_time = 1000000; input_line = (char *)realloc(input_line, 7 * sizeof(char)); input_line[6] = '\n'; input_line[7] = '\0'; grow(); input_line = (char *)realloc(input_line, 8 * sizeof(char)); input_line[5] = ' '; input_line[6] = '1'; input_line[7] = '\0'; set_time = 200000; blink(); input_line = (char *)realloc(input_line, 10 * sizeof(char)); input_line[7] = ' '; input_line[8] = '1'; input_line[9] = '\0'; biblink(); input_line = (char *)realloc(input_line, 6 * sizeof(char)); input_line[5] = '\0'; set_time = 400000; slide(); usleep(200000); slide(); input_line = (char *)realloc(input_line, 10 * sizeof(char)); input_line[7] = '-'; input_line[8] = '1'; input_line[9] = '\0'; bislide(); input_line[7] = ' '; set_time = 100000; bislide(); input_line = (char *)realloc(input_line, 9 * sizeof(char)); input_line[6] = ' '; input_line[7] = '1'; input_line[8] = '\0'; biside(); usleep(800000); led_on_all(); usleep(800000); led_off(6); usleep(300000); led_off(2); usleep(300000); led_off(3); usleep(200000); led_off(8); usleep(180000); led_off(1); usleep(120000); led_off(5); usleep(100000); led_off(7); usleep(50000); led_off(4); set_time = set_time_backup; }