timer32を走らせてそのカウントでウエイトのループを回す
<初期化>
// config timer32_0
// LPC_SYSCON->SYSAHBCLKCTRL |= 1<<9;
// 上記はMaryでは不要
LPC_TMR32B0->TCR = 0x02; /* reset timer */
LPC_TMR32B0->PR = SystemCoreClock / 1000 / 1000;
LPC_TMR32B0->IR = 0xff; /* reset all interrrupts */
LPC_TMR32B0->TCR = 0x01; /* start timer */
<μsecカウント>
uint32_t Get_MicroSec(void)
{
return LPC_TMR32B0->TC;
}
<μsecウエイト>
void Wait_N_MicroSec(uint32_t wait)
{
uint32_t u32Time = Get_MicroSec() + wait;
while(Get_MicroSec() < u32Time);
}
systick.cに追加しました。
0 件のコメント:
コメントを投稿