马上注册,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
×
怎么理解这个函数,怎么是运行的函数自己呢?
MessageSendLater(t, 0, 0, DELAY1);
看起来进去main函数后,led_controller1送入底层运行,只是不明白MessageSendLater(t, 0, 0, DELAY1)怎么实现函数无限循环了。没看出来t就是led_controller1。
- static void led_controller1(Task t, MessageId id, Message payload)
- {
- PioSet32(LED1, (PioGet32() ^ LED1));
- printf("LED1 PioGet32() = %ld\n", PioGet32() & LED1);
- MessageSendLater(t, 0, 0, DELAY1);
- }
- /* static void led_controller2(Task t, MessageId id, Message payload)
- {
- PioSet32(LED2, (PioGet32() ^ LED2));
- printf("LED2 PioGet32() = %ld\n", PioGet32() & LED2);
- MessageSendLater(t, 0, 0, DELAY2);
- } */
- static TaskData led_controller1_task = {led_controller1};
- /* static TaskData led_controller2_task = {led_controller2}; */
- int main(void)
- {
- PioSetDir32(0xFF, 0xFF); /* Set all PIO to be output */
- PioSet32(0xFF, 0); /* Set all PIO off (0) */
- MessageSend(&led_controller1_task, 0, 0);
- /* MessageSend(&led_controller2_task, 0, 0); */
- MessageLoop();
- return 0;
- }
复制代码
|