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.

0 ответов

Другие вопросы по тегам