More timers example
This commit is contained in:
+24
-5
@@ -20,34 +20,53 @@ void t2_cb(struct UCTimers *timers, struct UCTimer *timer)
|
|||||||
TRACEF("T2 expired\n");
|
TRACEF("T2 expired\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void mystruct_cb(struct UCTimers *timers, struct UCTimer *timer)
|
void mystruct1_cb(struct UCTimers *timers, struct UCTimer *timer)
|
||||||
{
|
{
|
||||||
struct MyStruct *mystruct = CONTAINER_OF(timer, struct MyStruct, timer);
|
struct MyStruct *mystruct = CONTAINER_OF(timer, struct MyStruct, timer);
|
||||||
|
|
||||||
TRACEF("MyStruct timer: %s\n", mystruct->str);
|
TRACEF("MyStruct1 timer: %s\n", mystruct->str);
|
||||||
uc_timer_add(timers, timer, 1, 0);
|
uc_timer_add(timers, timer, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mystruct2_cb(struct UCTimers *timers, struct UCTimer *timer)
|
||||||
|
{
|
||||||
|
struct MyStruct *mystruct = timer->cookie_ptr;
|
||||||
|
|
||||||
|
TRACEF("MyStruct2 timer: %s\n", mystruct->str);
|
||||||
|
uc_timer_add(timers, timer, 5, 0);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct UCTimers timers;
|
struct UCTimers timers;
|
||||||
struct UCTimer t1 = {
|
struct UCTimer t1 = {
|
||||||
.callback = t1_cb,
|
.callback = t1_cb,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UCTimer t2 = {
|
struct UCTimer t2 = {
|
||||||
.callback = t2_cb,
|
.callback = t2_cb,
|
||||||
};
|
};
|
||||||
struct MyStruct my_struct = {
|
|
||||||
|
struct MyStruct my_struct1 = {
|
||||||
.str = "Hello",
|
.str = "Hello",
|
||||||
.timer = {
|
.timer = {
|
||||||
.callback = mystruct_cb,
|
.callback = mystruct1_cb,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MyStruct my_struct2 = {
|
||||||
|
.str = "Hello again",
|
||||||
|
.timer = {
|
||||||
|
.callback = mystruct2_cb,
|
||||||
|
.cookie_ptr = &my_struct2,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
uc_timers_init(&timers);
|
uc_timers_init(&timers);
|
||||||
uc_timer_add(&timers, &t1, 2, 0);
|
uc_timer_add(&timers, &t1, 2, 0);
|
||||||
uc_timer_add(&timers, &t2, 5, 0);
|
uc_timer_add(&timers, &t2, 5, 0);
|
||||||
uc_timer_add(&timers, &my_struct.timer, 10, 0);
|
uc_timer_add(&timers, &my_struct1.timer, 10, 0);
|
||||||
|
uc_timer_add(&timers, &my_struct2.timer, 10, 0);
|
||||||
|
|
||||||
for(;;) {
|
for(;;) {
|
||||||
struct timeval now;
|
struct timeval now;
|
||||||
|
|||||||
Reference in New Issue
Block a user