您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ timer_elapsed函数代码示例

51自学网 2021-06-03 08:51:14
  C++
这篇教程C++ timer_elapsed函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中timer_elapsed函数的典型用法代码示例。如果您正苦于以下问题:C++ timer_elapsed函数的具体用法?C++ timer_elapsed怎么用?C++ timer_elapsed使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了timer_elapsed函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: fading_led_custom

void fading_led_custom(uint8_t *value){    static uint8_t index = 0;    static uint16_t last = 0;    if (backlight_config.level == 7) {        if (idle_state == 0) {            uint8_t max = value[0];            for (uint8_t i = 1; i < LED_COUNT; i++) {                if (value[i] > max) max = value[i];            }            rgb_set_brightness(max);            if (max == 0) {                idle_last = timer_read();                idle_state = 1;            }        }        if (idle_state == 1) {            if (timer_elapsed(idle_last) > 3000) {                breathing_led_set_index_all(0);                index = 0;                idle_state = 2;            }        }        if (idle_state == 2) {            if (timer_elapsed(last) > 500) {                last = timer_read();                breathing_led_enable_once(index);                index = (index + 1) % 6;            }        }    }}
开发者ID:kairyu,项目名称:tmk_keyboard_custom,代码行数:32,


示例2: process_record_user

bool process_record_user(uint16_t keycode, keyrecord_t *record) {	uint8_t layer;  layer = biton32(layer_state);  // get the current layer  //custom layer handling for tri_layer,  switch (keycode) {  case FNKEY:  	if (record->event.pressed) {      key_timer = timer_read();      singular_key = true;    	layer_on(_FUNCTION);  	} else {      if (timer_elapsed(key_timer) < LAYER_TOGGLE_DELAY || !singular_key) {        layer_off(_FUNCTION);      }  	}    update_tri_layer(_FUNCTION, _SHIFTED, _FUNCSHIFT);  	return false;  	break;  //SHIFT is handled as LSHIFT in the general case  case SHIFT:  	if (record->event.pressed) {      key_timer = timer_read();      singular_key = true;    	layer_on(_SHIFTED);    	register_code(KC_LSFT);  	} else {    	if (timer_elapsed(key_timer) < LAYER_TOGGLE_DELAY || !singular_key) {        layer_off(_SHIFTED);    	  unregister_code(KC_LSFT);      }    }    update_tri_layer(_FUNCTION, _SHIFTED, _FUNCSHIFT);  	return false;  	break;  //If any other key was pressed during the layer mod hold period,  //then the layer mod was used momentarily, and should block latching  default:    singular_key = false;    break;  }  //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded  if (layer == _FUNCSHIFT) {  	//F1-F12 should be sent as unshifted keycodes,  	//and ] needs to be unshifted or it is sent as }  	if ( (keycode >= KC_F1 && keycode <= KC_F12)  	   || keycode == KC_RBRC ) {  		if (record->event.pressed) {              unregister_mods(MOD_LSFT);          } else {              register_mods(MOD_LSFT);          }  	}  }  return true;};
开发者ID:0xdec,项目名称:qmk_firmware,代码行数:60,


示例3: mousekey_task

void mousekey_task(void){    if (timer_elapsed(last_timer) < (mousekey_repeat ? mk_interval : mk_delay*10))        return;    if (mouse_report.x == 0 && mouse_report.y == 0 && mouse_report.v == 0 && mouse_report.h == 0)        return;    if (mousekey_repeat != UINT8_MAX)        mousekey_repeat++;    if (mouse_report.x > 0) mouse_report.x = move_unit();    if (mouse_report.x < 0) mouse_report.x = move_unit() * -1;    if (mouse_report.y > 0) mouse_report.y = move_unit();    if (mouse_report.y < 0) mouse_report.y = move_unit() * -1;    /* diagonal move [1/sqrt(2) = 0.7] */    if (mouse_report.x && mouse_report.y) {        mouse_report.x *= 0.7;        mouse_report.y *= 0.7;    }    if (timer_elapsed(last_timer) < (mousekey_repeat ? mk_wheel_interval : mk_delay*10))        return;    if (mouse_report.v > 0) mouse_report.v = wheel_unit();    if (mouse_report.v < 0) mouse_report.v = wheel_unit() * -1;    if (mouse_report.h > 0) mouse_report.h = wheel_unit();    if (mouse_report.h < 0) mouse_report.h = wheel_unit() * -1;    mousekey_send();}
开发者ID:mikelduffy,项目名称:qmk_firmware,代码行数:33,


示例4: process_record_user

bool process_record_user(uint16_t keycode, keyrecord_t *record) {  static uint16_t code_timer;  switch (keycode) {  case KC_MCBR:                                      if(record->event.pressed){      code_timer= timer_read();      SEND_STRING("{");    } else {      if (timer_elapsed(code_timer) > TAPPING_TERM) {        SEND_STRING("}" SS_TAP(X_LEFT));      }     }    return false;    break;  case KC_MBRC:                                      if(record->event.pressed){      code_timer= timer_read();      SEND_STRING("[");    } else {      if (timer_elapsed(code_timer) > TAPPING_TERM) {        SEND_STRING("]" SS_TAP(X_LEFT));      }     }    return false;    break;  case KC_MPRN:                                      if(record->event.pressed){      code_timer= timer_read();      SEND_STRING("(");    } else {      if (timer_elapsed(code_timer) > TAPPING_TERM) {        SEND_STRING(")" SS_TAP(X_LEFT));      }     }    return false;    break;  case KC_MABK:                                      if(record->event.pressed){      code_timer= timer_read();      if (get_mods() & MODS_SHIFT_MASK){        SEND_STRING("<");      } else {        SEND_STRING(",");      }    } else {      if (timer_elapsed(code_timer) > TAPPING_TERM) {        if (get_mods()  & MODS_SHIFT_MASK){          SEND_STRING(">" SS_TAP(X_LEFT));        }      }     }    return false;    break;  }  return true;}
开发者ID:Depariel,项目名称:qmk_firmware,代码行数:56,


示例5: locinfo_print_time

void locinfo_print_time(){    printf("locinfo total:/t/t/t%f/n"           "/tfind_add_str:/t/t/t%f/n"           "/tlocinfo_read:/t/t/t%f/n"           "/tlocinfo_write:/t/t/t%f/n"           ,timer_elapsed(locinfo_timer)           ,timer_elapsed(locinfo_parse_find_add_str_timer)           ,timer_elapsed(locinfo_read_timer)           ,timer_elapsed(locinfo_write_timer)        );}
开发者ID:abrady,项目名称:abscope,代码行数:12,


示例6: load_thread

static voidload_thread (void *seq_no_){  int seq_no = (int) seq_no_;  int sleep_time = TIMER_FREQ * (10 + seq_no);  int spin_time = sleep_time + TIMER_FREQ * THREAD_CNT;  int exit_time = TIMER_FREQ * (THREAD_CNT * 2);  timer_sleep (sleep_time - timer_elapsed (start_time));  while (timer_elapsed (start_time) < spin_time)    continue;  timer_sleep (exit_time - timer_elapsed (start_time));}
开发者ID:ChicagoAtNight,项目名称:CS162,代码行数:13,


示例7: switch

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt){		static uint16_t start;  // MACRODOWN only works in this function      switch(id) {        case 0:		if (record->event.pressed) {		  register_code(KC_RSFT);		} else {		  unregister_code(KC_RSFT);		}		break;	case 1:		if (record->event.pressed) {			start = timer_read();			return MACRO(D(LCTRL), END);		} else {			if (timer_elapsed(start) > 150) {			    return MACRO(U(LCTRL), END);			} else {			    return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END);			}		}		break;	case 2:		if (record->event.pressed) {			start = timer_read();			return MACRO(D(LCTRL),END);		} else {			if (timer_elapsed(start) > 150){				return MACRO(U(LCTRL),END);			} else {				return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END);			}		}		break;	case 3:		if (record->event.pressed) {			start = timer_read();			return MACRO(D(LCTRL),D(LSFT),D(LALT),END);		} else {			if (timer_elapsed(start) > 150){				return MACRO(U(LCTRL),U(LSFT),U(LALT),END);			} else {				return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix			}		}		break;      }    return MACRO_NONE;};
开发者ID:arizqi,项目名称:qmk_firmware,代码行数:51,


示例8: main

int main(void){    byte* buffer;    byte* pivots;    size_t i;    comb_init();      buffer = malloc(NUM_COMBS_ITER * COMB_SIZE);    pivots = malloc(NUM_FILES * COMB_SIZE);    for (i = 0; i < NUM_ITERS; i++)    {        printf("/nIteration %d of %d./n/n", i + 1, NUM_ITERS);        printf("Filling combinations buffer...");        timer_reset();        fill_comb_buffer(buffer);        printf(" DONE in %fs./n", timer_elapsed());        printf("Sorting combinations buffer...");        timer_reset();        qsort(buffer, NUM_COMBS_ITER, COMB_SIZE, comb_sum_cmp);        printf(" DONE in %fs./n", timer_elapsed());        if (i == 0)        {            printf("Creating output files...");            create_output_files();            printf(" DONE./n");            printf("Getting and saving pivots...");            get_pivots(pivots, buffer);            save_pivots(pivots);            printf(" DONE./n");        }        printf("Saving sorted combinations buffer...");        timer_reset();        save_comb_buffer(buffer, pivots);        printf(" DONE in %fs./n", timer_elapsed());    }    free(buffer);    free(pivots);    comb_free();    return 0;}
开发者ID:cezary-biernacki,项目名称:mchouza,代码行数:48,


示例9: switch

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt){  // MACRODOWN only works in this function    switch(id) {      	//switch multiplexing for media, short tap for volume up, long press for play/pause        case VOLU:            if (record->event.pressed) {            	key_timer = timer_read(); // if the key is being pressed, we start the timer.          	} else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").            	if (timer_elapsed(key_timer) > LONGPRESS_DELAY) { // LONGPRESS_DELAY being 150ms, the threshhold we pick for counting something as a tap.                  return MACRO(T(MPLY), END);                } else {                  return MACRO(T(VOLU), END);                }          	}          	break;		//switch multiplexing for media, short tap for volume down, long press for next track        case VOLD:            if (record->event.pressed) {            	key_timer = timer_read();          	} else {            	if (timer_elapsed(key_timer) > LONGPRESS_DELAY) {                  return MACRO(T(MNXT), END);                } else {                  return MACRO(T(VOLD), END);                }          	}          	break;        //switch multiplexing for escape, short tap for escape, long press for context menu        case ESCM:            if (record->event.pressed) {            	key_timer = timer_read();          	} else {            	if (timer_elapsed(key_timer) > LONGPRESS_DELAY) {                  return MACRO(T(APP), END);                } else {                  return MACRO(T(ESC), END);                }          	}          	break;        break;    }    return MACRO_NONE;};
开发者ID:0xdec,项目名称:qmk_firmware,代码行数:48,


示例10: main

int main( int argc, char** argv ){	tick_t start, time;	tick_t tick, freq, res;	printf( "Timer test/n" );	timer_lib_initialize();	res   = 0xFFFFFFFFFFFFFFFFULL;	freq  = timer_ticks_per_second();	start = timer_current();	while( 1 )	{		time = timer_current();		do {			tick = timer_elapsed_ticks( time );		} while( !tick );		if( tick < res )			res = tick;		if( timer_elapsed( start ) > 10.0 )			break;	}	printf( "Resolution: %lfms (%d ticks)/n", 1000.0 * (double)timer_ticks_to_seconds( res ), (int)res );	timer_lib_shutdown();	return 0;}
开发者ID:KISSMonX,项目名称:timer_lib,代码行数:33,


示例11: matrix_scan_tap_dance

void matrix_scan_tap_dance () {  if (qk_tap_dance_state.keycode && timer_elapsed (qk_tap_dance_state.timer) > TAPPING_TERM) {    process_tap_dance_action (qk_tap_dance_state.keycode);    reset_tap_dance (&qk_tap_dance_state);  }}
开发者ID:Chipairon,项目名称:qmk_firmware,代码行数:7,


示例12: test_mlfqs_block

voidtest_mlfqs_block (void) {  int64_t start_time;  struct lock lock;    ASSERT (thread_mlfqs);  msg ("Main thread acquiring lock.");  lock_init (&lock);  lock_acquire (&lock);    msg ("Main thread creating block thread, sleeping 25 seconds...");  thread_create ("block", PRI_DEFAULT, block_thread, &lock);  timer_sleep (25 * TIMER_FREQ);  msg ("Main thread spinning for 5 seconds...");  start_time = timer_ticks ();  while (timer_elapsed (start_time) < 5 * TIMER_FREQ)    continue;  msg ("Main thread releasing lock.");  lock_release (&lock);  msg ("Block thread should have already acquired lock.");}
开发者ID:dahun0428,项目名称:Pintos,代码行数:27,


示例13: process_leader

bool process_leader(uint16_t keycode, keyrecord_t *record) {  // Leader key set-up  if (record->event.pressed) {#ifdef LEADER_PER_KEY_TIMING    leader_time = timer_read();#endif    if (!leading && keycode == KC_LEAD) {      leader_start();      leading = true;#ifndef LEADER_PER_KEY_TIMING      leader_time = timer_read();#endif      leader_time = timer_read();      leader_sequence_size = 0;      leader_sequence[0] = 0;      leader_sequence[1] = 0;      leader_sequence[2] = 0;      leader_sequence[3] = 0;      leader_sequence[4] = 0;      return false;    }    if (leading && timer_elapsed(leader_time) < LEADER_TIMEOUT) {      leader_sequence[leader_sequence_size] = keycode;      leader_sequence_size++;      return false;    }  }  return true;}
开发者ID:adiabatic,项目名称:qmk_firmware,代码行数:29,


示例14: scan_rgblight_fadeout

void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive    bool litup = false;    for (uint8_t light_index = 0 ; light_index < RGBLED_NUM ; ++light_index ) {        if (lights[light_index].enabled && timer_elapsed(lights[light_index].timer) > 10) {        rgblight_fadeout *light = &lights[light_index];        litup = true;        if (light->life) {            light->life -= 1;            if (biton32(layer_state) == 0) {                sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]);            }            light->timer = timer_read();        }        else {            if (light->enabled && biton32(layer_state) == 0) {                rgblight_sethsv_default_helper(light_index);            }            litup = light->enabled = false;        }        }    }    if (litup && biton32(layer_state) == 0) {        rgblight_set();    }}
开发者ID:muzfuz,项目名称:qmk_firmware,代码行数:26,


示例15: timer_sleep

/*! Sleeps for approximately TICKS timer ticks.  Interrupts must    be turned on. */void timer_sleep(int64_t ticks) {    int64_t start = timer_ticks();    ASSERT(intr_get_level() == INTR_ON);    while (timer_elapsed(start) < ticks)         thread_yield();}
开发者ID:kyuh,项目名称:ChingOS,代码行数:9,


示例16: timer_sleep

/* Sleeps for approximately TICKS timer ticks.  Interrupts must   be turned on. */voidtimer_sleep (int64_t ticks) {  int64_t start = timer_ticks ();  ASSERT (intr_get_level () == INTR_ON);#if 0 /* pj1 */  while (timer_elapsed (start) < ticks)     thread_yield ();#endif#if 1 /* pj1 */  if (ticks <= 0)	  return;  /* add current thread to sleep thread list in order,    * and set its wake up time. Then schedule a new thread.   */  struct thread *cur = thread_current();  enum intr_level old_level;  lock_acquire(&sleep_list_lock);  old_level = intr_disable();  cur->wake_up_ticks = start + ticks;   list_insert_ordered(&sleep_list, &cur->elem, (list_less_func *)cmp_thread_wake_ticks, NULL);  lock_release(&sleep_list_lock);  thread_block();  intr_set_level(old_level);#endif}
开发者ID:yangjin-unique,项目名称:pintos,代码行数:30,


示例17: test_mlfqs_load_60

voidtest_mlfqs_load_60 (void) {  int i;    ASSERT (thread_mlfqs);  start_time = timer_ticks ();  msg ("Starting %d niced load threads...", THREAD_CNT);  for (i = 0; i < THREAD_CNT; i++)     {      char name[16];      snprintf(name, sizeof name, "load %d", i);      thread_create (name, PRI_DEFAULT, load_thread, NULL);    }  msg ("Starting threads took %d seconds.",       timer_elapsed (start_time) / TIMER_FREQ);  for (i = 0; i < 90; i++)     {      int64_t sleep_until = start_time + TIMER_FREQ * (2 * i + 10);      int load_avg;//printf("LIST NUMBER : %d/n", get_list_size ());      timer_sleep (sleep_until - timer_ticks ());      load_avg = thread_get_load_avg ();      msg ("After %d seconds, load average=%d.%02d.",           i * 2, load_avg / 100, load_avg % 100);    }}
开发者ID:Jaehyun-Song,项目名称:pintos,代码行数:29,


示例18: rgblight_effect_rgbtest

void rgblight_effect_rgbtest(void) {  static uint8_t pos = 0;  static uint16_t last_timer = 0;  static uint8_t maxval = 0;  uint8_t g; uint8_t r; uint8_t b;  if (timer_elapsed(last_timer) < pgm_read_word(&RGBLED_RGBTEST_INTERVALS[0])) {    return;  }  if( maxval == 0 ) {      LED_TYPE tmp_led;      sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led);      maxval = tmp_led.r;  }  last_timer = timer_read();  g = r = b = 0;  switch( pos ) {    case 0: r = maxval; break;    case 1: g = maxval; break;    case 2: b = maxval; break;  }  rgblight_setrgb(r, g, b);  pos = (pos + 1) % 3;}
开发者ID:anechiporuk,项目名称:qmk_firmware,代码行数:25,


示例19: rgblight_effect_rainbow_swirl

void rgblight_effect_rainbow_swirl(uint8_t interval) {  static uint16_t current_hue = 0;  static uint16_t last_timer = 0;  uint16_t hue;  uint8_t i;  if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_RAINBOW_SWIRL_INTERVALS[interval / 2])) {    return;  }  last_timer = timer_read();  for (i = 0; i < RGBLED_NUM; i++) {    hue = (360 / RGBLED_NUM * i + current_hue) % 360;    sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);  }  rgblight_set();  if (interval % 2) {    current_hue = (current_hue + 1) % 360;  } else {    if (current_hue - 1 < 0) {      current_hue = 359;    } else {      current_hue = current_hue - 1;    }  }}
开发者ID:anechiporuk,项目名称:qmk_firmware,代码行数:25,


示例20:

    void    Outro::on_draw()    {        if (m_snd_game_exit != NULL)        {            if (timer_elapsed() > static_cast<unsigned int>(m_snd_game_exit->length_in_ms) + 100)            {                next_state();            }        }        Globals g;        g.render().DrawTile(0,0, g.values().res_w(), g.values().res_h(), m_img_mainmenu);        string text1 = g.snd2txt().text();        string text2 = "";        if (text1.length() >= 25)        {            text2 = text1;            text1.erase(25, string::npos);            text2.erase(0, 25);        }        g.render().DrawText(500, 400, 1.0, 1.0, 1.0, text1);        g.render().DrawText(500, 450, 1.0, 1.0, 1.0, text2);    }
开发者ID:mmatyas,项目名称:Atomic-Bomberman,代码行数:27,


示例21: reset_keyboard

void reset_keyboard(void) {  clear_keyboard();#if defined(MIDI_ENABLE) && defined(MIDI_BASIC)  process_midi_all_notes_off();#endif#ifdef AUDIO_ENABLE  #ifndef NO_MUSIC_MODE    music_all_notes_off();  #endif  uint16_t timer_start = timer_read();  PLAY_SONG(goodbye_song);  shutdown_user();  while(timer_elapsed(timer_start) < 250)    wait_ms(1);  stop_all_notes();#else  shutdown_user();  wait_ms(250);#endif// this is also done later in bootloader.c - not sure if it's neccesary here#ifdef BOOTLOADER_CATERINA  *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific#endif  bootloader_jump();}
开发者ID:kipricker,项目名称:qmk_firmware,代码行数:25,


示例22: handle_event_stop_going_down

int handle_event_stop_going_down(int event, int order_table[N_FLOORS][N_BUTTONS]) {	int next_state = STOP_GOING_DOWN;		switch (event) {			case EMERGENCY_BUTTON:				activate_emergency(order_table);				next_state = EMERGENCY;				break;			case GO_UP:				if(timer_elapsed() > DOOR_DELAY){					close_door();					change_speed(S_STOP, S_UP);					next_state = GOING_UP;				}else{					next_state = STOP_GOING_UP;				}				break;			case GO_DOWN:				if(timer_elapsed() > DOOR_DELAY){					close_door();					change_speed(S_STOP, S_DOWN);					next_state = GOING_DOWN;				}else{					next_state = STOP_GOING_DOWN;				}				break;						case STOP:				if(timer_elapsed() > DOOR_DELAY){					close_door();					next_state = IDLE;				}else{					next_state = STOP_GOING_DOWN;				}				break;						case OBSTRUCTION:				timer_set();				next_state = STOP_GOING_DOWN;				break;					}		return next_state;}
开发者ID:aakre,项目名称:gocode,代码行数:46,


示例23: main

int main(int argc, char *argv[]){	struct timer *timer = timer_new();	sleep(1);	printf("Elapsed: %lu ms/n", timer_elapsed(timer, NULL));	timer_stop(timer);	sleep(1);	printf("Elapsed: %lu ms/n", timer_elapsed(timer, NULL));	timer_continue(timer);	sleep(1);	printf("Elapsed: %lu ms/n", timer_elapsed(timer, NULL));	timer_destroy(&timer);	return 0;}
开发者ID:lulin,项目名称:trivial,代码行数:17,


示例24: matrix_scan_user

void matrix_scan_user(void) {  if (runonce && timer_elapsed(my_timer) > 1000) {    runonce = false;    rgblight_sethsv(0x0, 0xff, 0x80);    rgblight_mode(9);    rgblight_enable();  }}
开发者ID:crokobit,项目名称:qmk_firmware,代码行数:8,


示例25: main

int main(void){    bool suspended = false;#if USB_COUNT_SOF    uint16_t last_timer = timer_read();#endif#if !defined(__AVR_ATmega32__)    CLKPR = 0x80, CLKPR = 0;#endif#ifndef PS2_USE_USART    uart_init(UART_BAUD_RATE);#endif    keyboard_init();    host_set_driver(vusb_driver());    debug("initForUsbConnectivity()/n");    initForUsbConnectivity();    debug("main loop/n");    while (1) {#if USB_COUNT_SOF        if (usbSofCount != 0) {            suspended = false;            usbSofCount = 0;            last_timer = timer_read();        } else {            // Suspend when no SOF in 3ms-10ms(7.1.7.4 Suspending of USB1.1)            if (timer_elapsed(last_timer) > 5) {                suspended = true;/*                uart_putchar('S');                _delay_ms(1);                cli();                set_sleep_mode(SLEEP_MODE_PWR_DOWN);                sleep_enable();                sleep_bod_disable();                sei();                sleep_cpu();                sleep_disable();                _delay_ms(10);                uart_putchar('W');*/            }        }#endif        if (!suspended) {            usbPoll();            // TODO: configuration process is incosistent. it sometime fails.            // To prevent failing to configure NOT scan keyboard during configuration            if (usbConfiguration && usbInterruptIsReady()) {                keyboard_task();            }            vusb_transfer_keyboard();        }    }}
开发者ID:eastwoodnet,项目名称:tmk_keyboard,代码行数:58,


示例26: matrix_scan

uint8_t matrix_scan(void){	for (uint8_t row = 0; row < MATRIX_ROWS; row++)	{		select_row(row);		_delay_us(15);  // without this wait it will read unstable value. 10? 50?		matrix_row_t cols = read_cols();		if (cols)			LedInfo1_On();		else			LedInfo1_Off();		if (matrix_debouncing[row] != cols)		{			//dprintf("bounce %u/r/n", row);			matrix_debouncing[row] = cols;			debouncing_times[row] = timer_read();			debouncing[row] = true;		}		unselect_rows();	}	for (uint8_t row = 0; row < MATRIX_ROWS; row++)	{		if (debouncing[row])		{			LedInfo2_On();			if (timer_elapsed(debouncing_times[row]) > DEBOUNCE_TIME)			{				//dprintf("bounced %u/r/n", row);				matrix[row] = matrix_debouncing[row];				debouncing[row] = false;				send_row_to_other_side(row, matrix[row]);				mcpu_send_typematrix_row(row, matrix[row]);				animation_typematrix_row(row, matrix[row]);			}		}		else		{			LedInfo2_Off();		}	}	splitbrain_communication_task();#ifdef BACKLIGHT_ENABLE	animate();#endif	return 1;}
开发者ID:alphaclon,项目名称:tmk_keyboard,代码行数:57,


示例27: load_thread

static voidload_thread (void *ti_) {  struct thread_info *ti = ti_;  int64_t sleep_time = 5 * TIMER_FREQ;  int64_t spin_time = sleep_time + 30 * TIMER_FREQ;  int64_t last_time = 0;  thread_set_nice (ti->nice);  timer_sleep (sleep_time - timer_elapsed (ti->start_time));  while (timer_elapsed (ti->start_time) < spin_time)     {      int64_t cur_time = timer_ticks ();      if (cur_time != last_time)        ti->tick_count++;      last_time = cur_time;    }}
开发者ID:famaranon,项目名称:pintos,代码行数:18,


示例28: timer_sleep

      /* Sleeps for approximately TICKS timer ticks.  Interrupts must        be turned on. */ void timer_sleep (int64_t ticks) {   int64_t start = timer_ticks ();   printf("Thread Name: %s/n", thread_name ());     ASSERT (intr_get_level () == INTR_ON);      while (timer_elapsed (start) < ticks)           thread_yield ();  }
开发者ID:IAreBeGreat,项目名称:CIS-520---Project-1,代码行数:11,


示例29: matrix_scan_user

void matrix_scan_user() {    for (uint8_t index = 0 ; index < TH_EVENTS_COUNT ; ++index ) {        tap_hold_t *th_event = &th_events[index];        if ( th_event->is_pressed && timer_elapsed(th_event->timer) > LONGPRESS_DELAY) {            register_code(th_event->kc_hold);            unregister_code(th_event->kc_hold);            th_event->is_pressed = false;        }    }}
开发者ID:0tsuki,项目名称:qmk_firmware,代码行数:10,


示例30: rgblight_effect_rainbow_mood

void rgblight_effect_rainbow_mood(uint8_t interval) {  static uint16_t current_hue = 0;  static uint16_t last_timer = 0;  if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_RAINBOW_MOOD_INTERVALS[interval])) {    return;  }  last_timer = timer_read();  rgblight_sethsv_noeeprom_old(current_hue, rgblight_config.sat, rgblight_config.val);  current_hue = (current_hue + 1) % 360;}
开发者ID:anechiporuk,项目名称:qmk_firmware,代码行数:11,



注:本文中的timer_elapsed函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ timer_enable函数代码示例
C++ timer_delete函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。