clock_init
Default mainpagebasic-emac-uip-webserver-projectclock_init
Description Source Call Graph
Start Line: 93
void clock_init(void)
{
    unsigned int div, tcclks;

    printf("P: clock time initialize - TC0\n\r");

    // Enable TC0
    AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_TC0;
    ASSERT(TC_FindMckDivisor(CLOCK_CONF_SECOND, BOARD_MCK, &div, &tcclks),
           "F: Fail to generate the desired frequency %d\n\r",
           CLOCK_CONF_SECOND);
    TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_WAVE | AT91C_TC_WAVESEL_UP_AUTO);
    AT91C_BASE_TC0->TC_RC = BOARD_MCK / (CLOCK_CONF_SECOND * div);

    // Configure TC0 interrupt
    AIC_DisableIT(AT91C_ID_TC0);
    AIC_ConfigureIT(AT91C_ID_TC0, 0, ISR_Tc0);
    AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS;
    AIC_EnableIT(AT91C_ID_TC0);

    // Clear tick value
    clockTick = 0;

    // Start timer
    TC_Start(AT91C_BASE_TC0);
}