ATMEL ARM7 定时器/计数器

 
      无论 什么样的应用定时器/计数器是迫切需要的,为此它也是我们快速掌握的{dy}个片内外设。AT91SAM7S系列产品内部有三个16位的定时器

  计数器。它们可以独立配置,但由于结构一样(具有相同的用户接寄存器)使用方法也是一样的。

    一. 计数时钟源

通过设置模式寄存器 TC_CMR可选择定时器/计数器的计数时钟源:

    二.I/O复用

    1.外部时钟源输入I/O:TCLK0,TCLK1,TCLK2

    2.测量信号输入或波形信号输出I/O:TIOA0 TIOB0 TIOA1 TIOB1 TIOA2 TIOB2

        要注意的是: 在数据手册的引脚排列列表中没有标出这些复用的I/O名称,为此要从数据手册"外设"一章的“PIO控制器A引脚复用”表格中

    找到这些复用I/O在引脚中的位置.

    三.工作模式

    捕获模式:典型应用于测量输入信号的频率,例如某一信号从TIOA0口输入,TC0在这一信号的变化处记录当前的计数值便可计算出此信号的频率

     波形模式:典型应用于输出波形,例如TC0通过TIOA0口输出PWM调节波形

      工作模式是通过设置模式寄存器TC_CMR中的WAVE位来设置选择的,而定时器计数器的模式是与通过I/O口输入输出信号的应用相关的,而某些不

     需要I/O口输入输出信号的应用中工作模式变得无关却要,例如我们想通过定时器/计数器获取一定频率的中断,在中断程序处理某定时任务,但是

     为了更灵活的产生频率,我们仍然在波形模式下工作,因为波形模式下可设计计数方式(WAVESEL).

     四.产生约一 秒的中断示例

    //中断处理函数
__ramfunc void timer0_c_irq_handler(void)
{
AT91PS_TC TC_pt = AT91C_BASE_TC0;
unsigned int dummy;
    //Acknowledge interrupt status
dummy = TC_pt->TC_SR;
 //Suppress warning variable "dummy" was set but never used
dummy = dummy;

      //.......
//此处添加用户代码
}

void TimerInit(void)
{
unsigned int dummy;

      //在电源管理器中打开定时器的时钟
      AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1<< AT91C_ID_TC0) ;

      //先在定时器内关闭时钟
      AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS ;
      AT91C_BASE_TC0->TC_IDR = 0xFFFFFFFF ;

      //状态标记xx
      dummy = AT91C_BASE_TC0->TC_SR;
      //Suppress warning variable "dummy" was set but never used
      dummy = dummy;

      //波形模式,与RC匹配后清零,时钟为MCK的1024分频
      AT91C_BASE_TC0->TC_CMR =AT91C_TC_WAVE | AT91C_TC_WAVESEL_UP_AUTO| TC_CLKS_MCK1024;

      //定时器内重新允许时钟
      AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN ;

 //TC0 中断配置
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_TC0, TIMER0_INTERRUPT_LEVEL,
AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, timer0_c_irq_handler);
AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS;//RC 寄存器比较匹配中断允许
AT91C_BASE_TC0->TC_RC=MCK/1024;//RC 寄存器设置,为 了产生一秒中断这里设置计数频率即可,但要注意不能大于0XFFFF
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_TC0);//中断控制中允许定时器0中断

  //软件触发开始计数
AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG ;
}



郑重声明:资讯 【ATMEL ARM7 定时器/计数器】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——