买了本《嵌入式系统——使用 HCS12微控制器的设计与应用》这本书,看了觉得帮助不大。因为里面有些东西讲得不够详细,并且这本书不是针对 XS128来写的。网上也有一些网友写的资料,那都只是针对某一方面的。我觉得最好的资料还是英文版的说明文档,里面好多东西都讲得很详细,虽然看起来有点费劲,但那里值得的。 接下来就自己的学习经历。 TIM 中的功能比较多,有输入捕捉、输出比较,还有脉冲累加器。这里主要记一下输入捕捉和输出比较。输入捕捉这个功能很有用,他不仅可以捕捉外界事件的发生(这个功能和51中的外部中断差不多),还可以捕捉外界事件发生的时间。捕捉外界时间这个功能可以运用到驱动超声波测距中去。 IOC0~IOC7是输入捕捉\输出比较的外部针脚。当 IOSx=0时(IOSx=1时为输出比较),则将相应的通道配置为输入捕捉了。当输入捕捉检测到有上升沿或下降沿时,就会把那时寄存器的值锁存到 TCx 中,这样就可以通过查询 TCx 来确定事件发生的时间了。如果输入捕捉控制寄存器 TIE(CxI=1)中允许输入捕捉中断,则捕捉到事件时,系统会产生一次中断。 接下来依次说明一下相关的寄存器设置: TSCR1: TEN 是定时器允许位。TEN=1时,允许定时器工作,TEN=0时,禁止定时器工作。其余不常用,设为0即可。 TSCR2: TOI 是定时器溢出中断允许位。这个在输入捕捉中没用到,设为0即可。 TCRE 是定时器计数寄存器复位允许位。用在输出比较中,允许输出比较寄存器7的事件来复位定时器计数寄存器。这里设为0即可。 PR2~PR0是定时器分频因子选择位。不同的组合可以设定不同的定时器时钟: TIOS 是输入捕捉和输出比较选择寄存器,在这里设定IOC0~IOC7是用于输入捕捉还是用于输出比较。 里面的8位对应着IOC0~IOC7八个通道,相应位位1,则设为输出比较。相应位设为0,则为输入捕捉。 TCTL3和TCTL4是用来设定输入捕捉极性的寄存器,在这里可以设为上升沿、下降沿、上升沿或下降沿触发输入捕捉。 其中 EDGxB 和EDGxA 一起来设相应通道输入捕捉极性,对应的功能如下: (0 0)为禁止输入捕捉。 (0 1)为上升沿捕捉 (1 0)为下降沿捕捉 (1 1)为上升沿或下降沿捕捉 TIE 是输入捕捉或输出比较中断允许位。 这里的每一位是和 TIOS 上的位一一对应的。相应置1时,则捕捉到事件时,则系统会产生中断。相应位设为0时,则不能。 TFLG1是输入捕捉或输出比较中断标位寄存器。 当发生输入捕捉或输出比较事件时,相应位...