keil rtx osdelay не создает точных задержек
Я работаю над платой, в состав которой входит микроконтроллер LPC1768. Все, что я хочу сделать, это создать точную задержку, используя функцию osdelay в CMSIS RTOS API. Я установил счетчик тиков времени на моей клавиатуре на 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 мс, как это должно быть при значении тика таймера синдиката, установленном на 1000.