Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------------------------------------------------------------------------------
- /// Interrupt handlers for TC interrupts. Toggles the state of LEDs
- //------------------------------------------------------------------------------
- char token = 0;
- void TC0_IrqHandler(void) {
- volatile unsigned int dummy;
- dummy = AT91C_BASE_TC0->TC_SR;
- if(token == 1) {
- PIO_Clear(&leds[0]);
- PIO_Set(&leds[1]);
- token = 0;
- }
- else {
- PIO_Set(&leds[0]);
- PIO_Clear(&leds[1]);
- token = 1;
- }
- }
- //------------------------------------------------------------------------------
- /// Configure Timer Counter 0 to generate an interrupt every 250ms.
- //------------------------------------------------------------------------------
- void ConfigureTc(void) {
- unsigned int div;
- unsigned int tcclks;
- AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_TC0; // Enable peripheral clock
- TC_FindMckDivisor(1, BOARD_MCK, &div, &tcclks); // Configure TC for a 4Hz frequency and trigger on RC compare
- TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_CPCTRG);
- AT91C_BASE_TC0->TC_RC = (BOARD_MCK / div) / 1; // timerFreq / desiredFreq
- IRQ_ConfigureIT(AT91C_ID_TC0, 0, TC0_IrqHandler); // Configure and enable interrupt on RC compare
- AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS;
- IRQ_EnableIT(AT91C_ID_TC0);
- printf(" -- timer has started nr");
- TC_Start(AT91C_BASE_TC0);
- }
- while(1) {
- // action
- while(1) {
- printf("hello");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement