keil rtx osdelay没有创建准确的延迟

时间:2016-08-23 18:11:31

标签: arm embedded keil cortex-m3 rtx

我正在开发一块包含LPC1768微控制器的电路板。我想要做的就是使用CMSIS RTOS API的osdelay函数创建一个准确的时间延迟。我已经将我的systick时间滴答计数设置为10000.但是当我在我的线程中使用osdelay(1000)时,它不会创建1秒的延迟时间!

这是源代码

#include"cmsis_os.h"  
#include"lpc17xx.h"
void Thread1 (void const *argument) {

while (1) {

LPC_GPIO2->FIOPIN = 0x00000001;                                              

osDelay(1000);                                          

LPC_GPIO2->FIOPIN = 0x00000000; 

osDelay(1000);

}

}

osThreadId main_ID,led_ID1,led_ID2; 

osThreadDef(Thread1,osPriorityNormal, 1, 0);

int main (void)
{

SystemInit();

LPC_PINCON->PINSEL4 = 0x00000000;  

LPC_GPIO2->FIODIR = 0xffffffff;

osKernelInitialize ();  

led_ID1 = osThreadCreate(osThread(Thread1), NULL);

osKernelStart ();  

}

现在,我的问题是osdelay(1000)没有提供1000毫秒的延迟,因为它应该将systick timer tick值设置为1000。

0 个答案:

没有答案