i want use a hardware delay instead of vtaskdelay()
08-08-2019
04:52 AM
1,122件の閲覧回数
nsnmaniram
Contributor III
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
hi,
there is any way to implement a hardware delay on imxrt1050 instead of vtaskdelay().
Thanks,
Maniram
1 返信
08-08-2019
06:04 AM
1,020件の閲覧回数
davidrozenski
Contributor I
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Somethings like that :
static void delay(uint32_t val)
{
uint32_t coreClock = SystemCoreClock; /* in Hz */
uint32_t ticksPerMicroSec = coreClock / 1000000; /* Target runs at 600 MHz => 600 */
volatile uint32_t ticksToWait = 1000 * val * ticksPerMicroSec / 8; /* Divide by 8 to get proper timing */
while(ticksToWait--)
{
__asm("NOP"); /* delay */
}
}
However I do not recommend since you will lock all tasks by doing this.