/* | |
* File: mcf52xx.c | |
* Purpose: Source to select CF derivative | |
* | |
* Notes: | |
* | |
* License: All software covered by license agreement in - | |
* docs/Freescale_Software_License.pdf | |
*/ | |
/********************************************************************/ | |
#include "common.h" | |
/********************************************************************/ | |
/* | |
* Pause for the specified number of micro-seconds. | |
* Uses DTIM3 as a timer | |
*/ | |
void | |
cpu_pause(int usecs) | |
{ | |
/* Enable the DMA Timer 3 */ | |
MCF_DTIM3_DTRR = (vuint32)(usecs - 1); | |
MCF_DTIM3_DTER = MCF_DTIM_DTER_REF; | |
MCF_DTIM3_DTMR = 0 | |
| MCF_DTIM_DTMR_PS(SYSTEM_CLOCK) | |
| MCF_DTIM_DTMR_FRR | |
| MCF_DTIM_DTMR_CLK_DIV1 | |
| MCF_DTIM_DTMR_RST; | |
while ((MCF_DTIM3_DTER & MCF_DTIM_DTER_REF) == 0) | |
{}; | |
/* Disable the timer */ | |
MCF_DTIM3_DTMR = 0; | |
} | |
/********************************************************************/ | |
void | |
board_handle_interrupt (int vector) | |
{ | |
switch (vector) | |
{ | |
case 65: /* Eport Interrupt 1 */ | |
printf("SW2\n"); | |
MCF_EPORT_EPFR = MCF_EPORT_EPFR_EPF1; | |
break; | |
case 69: /* Eport Interrupt 5 */ | |
printf("SW1\n"); | |
MCF_EPORT_EPFR = MCF_EPORT_EPFR_EPF5; | |
break; | |
case 71: /* Eport Interrupt 7 */ | |
printf("ABORT\n"); | |
MCF_EPORT_EPFR = MCF_EPORT_EPFR_EPF7; | |
break; | |
case 66: /* Eport Interrupt 2 */ | |
case 67: /* Eport Interrupt 3 */ | |
case 68: /* Eport Interrupt 4 */ | |
case 70: /* Eport Interrupt 6 */ | |
default: | |
MCF_EPORT_EPFR = (uint8)(0x01 << (vector - 64)); | |
printf("Edge Port Interrupt #%d\n",vector - 64); | |
break; | |
} | |
} | |
/********************************************************************/ | |
/********************************************************************/ | |
void | |
cpu_handle_interrupt (int vector) | |
{ | |
if (vector < 64 || vector > 192) | |
return; | |
if (vector >= 64 && vector <= 71) | |
board_handle_interrupt(vector); | |
else | |
printf("User Defined Vector #%d\n",vector); | |
} | |
/********************************************************************/ | |