0

私は LPC1768 マイクロコントローラーを含むボードに取り組んでいます。私がしたいのは、CMSIS RTOS API の osdelay 関数を使用して正確な時間遅延を作成することだけです。システムスティックのタイムティックカウントを 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 ミリ秒の遅延を提供しないことです。sysstick タイマーのティック値を 1000 に設定する必要があります。

4

0 に答える 0