原创 AT91SAM7S64 TC2定时实验程序

2010-3-26 09:50 1972 8 8 分类: MCU/ 嵌入式
/****************************************************************************
* 文件名:main.c
* 功  能:定时计数器实验程序
*       
* 说  明:
****************************************************************************/

#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);


}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条