talofer99 icon

delay samd

talofer99 | PRO | 11/14/18 01:55:57 PM UTC | 0 ⭐ | 312 👁️ | Never ⏰ | []
C |

390 B

|

None

|

0 👍

/

0 👎

void _delay_cycles(void *const hw, uint32_t cycles)
{
    (void)hw;
    uint8_t  n   = cycles >> 24;
    uint32_t buf = cycles;
 
    while (n--) {
        SysTick->LOAD = 0xFFFFFF;
        SysTick->VAL  = 0xFFFFFF;
        while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk))
            ;
        buf -= 0xFFFFFF;
    }
 
    SysTick->LOAD = buf;
    SysTick->VAL  = buf;
    while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk))
        ;
}

Comments