HCS12的定时器研究(1)

本文探讨了HCS12单片机的三种定时器——ECT、TIM和PIT。重点介绍了ECT定时器的初始化配置,包括32分频后的80ms周期设置。通过中断服务程序实现周期为50ms的方波输出。然而,当断开BDM仿真器,发现实际周期变为80ms。问题源于在单片机模式下,TCNT寄存器变为只读,导致定时器无法正常工作,不适合工程应用。
摘要由CSDN通过智能技术生成
最近做了一个项目,是用飞思卡尔的单片机MC9S12XEP100,这个单片机与之前用的很多单片机有许多不同的地方,为此笔者也被一些问题苦恼了很长时间,现在把这些经验和教训写下来供大家批评。
为叙述方便,以下的单片机都简称为HCS12
定时器的问题

HCS12单片机有三种定时器,ECT(Enhanced Capture Timer),TIM(Standard Timer Module),PIT(Periodic Interrupt Timer)。

三种定时器的控制方式不一样。

1. ECT

static void ECT_Timer_Init(void) 
{
    ECT_TSCR1=0x90;//计数器使能TEN|快速清零TFFCA
    ECT_TSCR2=0X85;//DIV 32->80ms    131
    ECT_TCNT =0xcf2c;     //    
 //   ECT_PACTL=0X50;  //PT7 PIN,PACN32 16BIT  
 ECT_TSCR1_TEN = 0;        
}

ECT定时器的几个寄存器的定义可以查手册,上面的代码是基于主频16M写的,通过32分频,可以得到每个周期为80MS,通过设置TCNT寄存器可以设定从什么位置开始计时。

如上面代码设置了0XCF2C,那么定时的时间是(0xffff-0xcf2c)*(80/65536)=25ms.

ECT模块是一个功能非常强大的模块,可以计数,捕捉脉冲,也可以用定时中断。它的中断程序如下:

#pr

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值