您的位置 首页 动态

Freescale 9S12 系列单片机使用笔记(ECT 模块) 6

实验6:模数递减计数器MCCNT和定时中断ECT模块包含一个16位的模数递减计数器计数寄存器MCCNT。MCCNT的输入时钟信号由BUSCLOCK分频得到,分…

试验6:模数递减计数器MCCNT和守时中止

ECT模块包括一个16位的模数递减计数器计数寄存器MCCNT。MCCNT的输入时钟信号由BUSCLOCK分频得到,分频系数有四种挑选。每次时钟到来后MCCNT主动减1。当MDC计数值减到0后,当即置位模数递减计数器标志寄存器MCFLG中的中止标志MCZF,若MCCTL中的中止答应位MCZI=1,则向CPU宣布中止请求,向MCFLG的MCZF位写1将铲除该标志。

MCCNT有两种工作方法:单次计数方法和循环(接连)工作方法。由模数递减计数器操控寄存器MCCTL中的模数模式答应位MODMC决议当时工作方法。

l当MODMC=0时为单次计数方法,计数值减到$0000后便中止计数。假如再次将守时常数直接写入计数寄存器MCCNT,MDC便又开端一次递减计数,减到0后中止。

l当MODMC=1时为循环(接连)工作方法,计数值减到$0000后,主动从加载寄存器加载守时常数,并开端新一轮递减计数。

MCCNT寄存器(ModulusDown-CounterCountRegister)

如前所述,MCCNT为一个可置初值的递减计数器。当递减到0后能够发生中止信号。

图1MCCNT寄存器

MCCTL寄存器(ModulusDown-CounterControlRegister)

MCZI位是ModulusCounterUnderflowInterruptEnable的缩写。MCZI=1时使能中止。

MODMC位是ModulusModeEnable的缩写。MODMC=0一共单次计数形式。MODMC=1一共循环计数形式。

RDMCL位是ReadModulusDown-CounterLoad的缩写。RDMCL=0时读MCCNT读出的是MCCNT的当时值。RDMCL=1时读MCCNT读的是加载寄存器的值。所谓加载寄存器寄存的是当MCCNT递减到0后从头加载的那个值。加载寄存器和MCCNT共用一个地址,经过RDMCL来确认当时读的是哪个值。

FLMC位是ForceLoadRegisterintotheModulusCounterCountRegister的缩写。向ELMC写1强制将加载寄存器的值加载到MCCNT。

MCEN位是ModulusDown-CounterEnable的缩写。MCEN=1一共使能MCCNT。

MCPR1,MCPR0位是ModulusCounterPrescalerselect的缩写。确认分频系数。当MCPR1、MCPR0组成的两位2进制数为N时,一共分频系数为2^N。

图2MCCTL寄存器

MCFLG寄存器(ModulusDown-CounterFLAGRegister)

MCZF—ModulusCounterUnderflowFlag

图3MCFLG寄存器

下面的比如发生500Hz的方波。

  1. #include/*commondefinesandmacros*/
  2. #include”derivative.h”/*derivative-specificdefinitions*/
  3. #include”sci.h”
  4. voidECTInit(void)
  5. {
  6. MCCTL_MODMC=1;//循环计数形式
  7. MCCTL_MCEN=1;
  8. MCCTL_MCPR=0;
  9. MCCNT=8192;
  10. MCCTL_MCZI=1;//ModulusCounterUnderflowInterruptEnable
  11. TSCR1_TEN=1;//timerenable
  12. }
  13. voidmain(void)
  14. {
  15. ECTInit();
  16. DDRM_DDRM0=1;
  17. EnableInterrupts;
  18. for(;;)
  19. {
  20. _FEED_COP();/*feedsthedog*/
  21. }/*loopforever*/
  22. }
  23. interruptVectorNumber_VtimmdcuvoidECT_ModulusDown_ISR(void)
  24. {
  25. MCFLG_MCZF=1;
  26. PTM_PTM0=~PTM_PTM0;
  27. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/264178.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部