新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2017-11-22
- 在线时间
- 5 小时
|
5金钱
使用探索者F4 资料盘(A盘)里面的列子-FreeRTOS实验2-1 FreeRTOS移植实验,修改LED引脚为PC1后,下载到开发板运行,在时间片是1ms的情况下(#define configTICK_RATE_HZ (1000)),按理说delay_xms(500);是延迟500ms,结果开发板上面
的LED是5秒改变一次状态。抱着怀疑的态度,在SysTick_Handler中断里面加入控制其他LED引脚翻转的代码,用示波器看发现
SysTick_Handler这个函数是10ms中断一次,难道#define configTICK_RATE_HZ (1000)这里不是让时间片为1ms吗?请各位大侠
分析一下。谢谢!下面附上关键代码.
时间片中断代码
void SysTick_Handler(void)
{
LED1=0;
if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系统已经运行
{
xPortSysTickHandler();
}
LED1=1;
}
//LED0任务函数 =PC1
void led0_task(void *pvParameters)
{
while(1)
{
LED0=~LED0;
delay_xms(500);
}
}
是延时500ms
|
|