#i nclude <AT91SAM7X256.h>
/****************************************************************************
* 文件名:TC2_int()
* 功 能:中断函数
*
* 说 明:
****************************************************************************/
void TC2_int(void) __irq
{
/*在这里添加自己的程序*/
unsigned int i;
i="0";
if( *AT91C_PIOA_ODSR&1==1)
*AT91C_PIOA_CODR=0x00000001;
else
*AT91C_PIOA_SODR=0x00000001;
i= *AT91C_TC2_SR;
*AT91C_AIC_EOICR = 0x00;
}
/****************************************************************************
* 文件名:TC2_init()
* 功 能:初始化US0初始化
*
* 说 明:
****************************************************************************/
void TC2_init(void)
{
*AT91C_PIOA_PER = 0xFFFFFFFF; //设置为POIO
*AT91C_PIOA_OER = AT91C_PIO_PA0 | AT91C_PIO_PA1|
AT91C_PIO_PA2 | AT91C_PIO_PA3; //PA01,PA02,PA03,PA04设为输出
*AT91C_PIOA_SODR=0x0000000F;
*AT91C_PMC_PCER = 1<<AT91C_ID_TC2; //允许TC2口的时钟
*AT91C_TC2_CCR = AT91C_TC_CLKEN; //使能计数时钟
*AT91C_TC2_CMR = AT91C_TC_WAVE|AT91C_TC_WAVESEL_UP_AUTO|AT91C_TC_CLKS_TIMER_DIV5_CLOCK;
*AT91C_TC2_RC = 46800;
*AT91C_TC2_IER = AT91C_TC_CPCS;
AT91C_AIC_SMR[AT91C_ID_TC2] = AT91C_AIC_PRIOR_LOWEST|AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE;
*AT91C_AIC_IECR = 1<<AT91C_ID_TC2; //打开AIC中断
AT91C_AIC_SVR[AT91C_ID_TC2]=(unsigned int)*TC2_int;
*AT91C_TC2_CCR = 0x04;
}
/****************************************************************************
* 文件名:main.c
* 功 能:
*
* 说 明:
****************************************************************************/
main (void)
{
TC2_init();
while(1);
}
文章评论(0条评论)
登录后参与讨论