2012年11月14日水曜日

Maryにμsecカウンタ追加

マイクロ秒ウエイトを作る
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 件のコメント:

コメントを投稿