-// Clock support
-
-static cyg_uint32 _period;
-
-void hal_clock_initialize(cyg_uint32 period)
-{
- CYG_ADDRESS timer = AT91_TC+AT91_TC_TC0;
-
- CYG_ASSERT(period < 0x10000, "Invalid clock period");
-
- // Disable counter
- HAL_WRITE_UINT32(timer+AT91_TC_CCR, AT91_TC_CCR_CLKDIS);
-
- // Set registers
- HAL_WRITE_UINT32(timer+AT91_TC_CMR, AT91_TC_CMR_CPCTRG | // Reset counter on CPC
- AT91_TC_CMR_CLKS_MCK32); // 1 MHz
- HAL_WRITE_UINT32(timer+AT91_TC_RC, period);
-
- // Start timer
- HAL_WRITE_UINT32(timer+AT91_TC_CCR, AT91_TC_CCR_TRIG | AT91_TC_CCR_CLKEN);
-
- // Enable timer 0 interrupt
- HAL_WRITE_UINT32(timer+AT91_TC_IER, AT91_TC_IER_CPC);
-}