【发布时间】:2011-09-27 07:20:07
【问题描述】:
目前我们正在学习如何对 AVR 微控制器进行编程(仅限 Ansi C89 标准)。包含的驱动程序的一部分是处理调度的标题,即以不同的速率运行任务。我的问题与文档中的引用有关:
“每个任务都必须保持自己的状态,通过使用静态本地 变量。”
这到底是什么意思?他们似乎将 void* 传递给函数以维护状态但随后不使用它?
查看文件中的代码,我认为这就是它们的意思:
{.func = led_flash_task, .period = TASK_RATE / LED_TASK_RATE, .data = 0}
/* Last term the pointer term */
有一个函数可以在数组中使用上述参数运行,但是它仅充当调度程序。那么函数led_flash_task就是
static void led_flash_task (__unused__ void *data)
{
static uint8_t state = 0;
led_set (LED1, state); /*Not reall important what this task is */
state = !state; /*Turn the LED on or off */
}
从头开始
#define __unused__ __attribute__ ((unused))
而void *data的传递是为了维持任务的状态?这是什么意思?
感谢您的帮助
【问题讨论】:
标签: c microcontroller void avr