<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Freescale 9S12 系列單片機應用筆記(ECT 模塊) 6

Freescale 9S12 系列單片機應用筆記(ECT 模塊) 6

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏

實(shí)驗6:模數遞減計數器MCCNT和定時(shí)中斷

ECT模塊包含一個(gè)16位的模數遞減計數器計數寄存器MCCNT。MCCNT的輸入時(shí)鐘信號由BUSCLOCK分頻得到,分頻系數有四種選擇。每次時(shí)鐘到來(lái)后MCCNT自動(dòng)減1。當MDC計數值減到0后,立即置位模數遞減計數器標志寄存器MCFLG中的中斷標志MCZF,若MCCTL中的中斷允許位MCZI=1,則向CPU發(fā)出中斷請求,向MCFLG的MCZF位寫(xiě)1將清除該標志。

本文引用地址:http://dyxdggzs.com/article/201611/318820.htm

MCCNT有兩種工作方式:?jiǎn)未斡嫈捣绞胶脱h(huán)(連續)工作方式。由模數遞減計數器控制寄存器MCCTL中的模數模式允許位MODMC決定當前工作方式。

l當MODMC=0時(shí)為單次計數方式,計數值減到$0000后便停止計數。如果再次將定時(shí)常數直接寫(xiě)入計數寄存器MCCNT,MDC便又開(kāi)始一次遞減計數,減到0后停止。

l當MODMC=1時(shí)為循環(huán)(連續)工作方式,計數值減到$0000后,自動(dòng)從加載寄存器加載定時(shí)常數,并開(kāi)始新一輪遞減計數。

MCCNT寄存器(ModulusDown-CounterCountRegister)

如前所述,MCCNT為一個(gè)可置初值的遞減計數器。當遞減到0后可以產(chǎn)生中斷信號。

圖1MCCNT寄存器

MCCTL寄存器(ModulusDown-CounterControlRegister)

MCZI位是ModulusCounterUnderflowInterruptEnable的縮寫(xiě)。MCZI=1時(shí)使能中斷。

MODMC位是ModulusModeEnable的縮寫(xiě)。MODMC=0表示單次計數模式。MODMC=1表示循環(huán)計數模式。

RDMCL位是ReadModulusDown-CounterLoad的縮寫(xiě)。RDMCL=0時(shí)讀MCCNT讀出的是MCCNT的當前值。RDMCL=1時(shí)讀MCCNT讀的是加載寄存器的值。所謂加載寄存器存放的是當MCCNT遞減到0后重新加載的那個(gè)值。加載寄存器和MCCNT公用一個(gè)地址,通過(guò)RDMCL來(lái)確定當前讀的是哪個(gè)值。

FLMC位是ForceLoadRegisterintotheModulusCounterCountRegister的縮寫(xiě)。向ELMC寫(xiě)1強制將加載寄存器的值加載到MCCNT。

MCEN位是ModulusDown-CounterEnable的縮寫(xiě)。MCEN=1表示使能MCCNT。

MCPR1,MCPR0位是ModulusCounterPrescalerselect的縮寫(xiě)。確定分頻系數。當MCPR1、MCPR0組成的兩位2進(jìn)制數為N時(shí),表示分頻系數為2^N。

圖2MCCTL寄存器

MCFLG寄存器(ModulusDown-CounterFLAGRegister)

MCZF—ModulusCounterUnderflowFlag

圖3MCFLG寄存器

下面的例子產(chǎn)生500Hz的方波。


  1. #include/*commondefinesandmacros*/
  2. #include"derivative.h"/*derivative-specificdefinitions*/
  3. #include"sci.h"
  4. voidECTInit(void)
  5. {
  6. MCCTL_MODMC=1;//循環(huán)計數模式
  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. }




評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>