| 1234567891011121314151617181920212223242526 |
- #include <zivuos.h>
- void zv_time_ticks_delay(zv_ticks_t delay) {
- zv_ticks_t start_time = zv_time_get_ticks();
- zv_ticks_t end_time = start_time + delay;
- while (zv_time_get_ticks() < end_time) ;
- while (zv_time_get_ticks() >= end_time) ;
- }
- void __zv_time_process_timer(zv_event_t *target) {
- zv_time_t current_time = zv_time_get_time();
- zv_time_t end_time = target->content.time;
- if (target->type == ZV_EVENT_TIMER_PHRASE_FIRST) {
- if (current_time < end_time) {
- target->type = ZV_EVENT_TIMER_PHRASE_SECOND;
- }
- }
- if (target->type == ZV_EVENT_TIMER_PHRASE_SECOND) {
- if (current_time >= end_time) {
- target->type = ZV_EVENT_TIMER;
- }
- }
- }
|