timer.c

来自「440B 环境ADS 1.2包括很多实验代码」· C语言 代码 · 共 51 行

C
51
字号
#include "Timer.h"
#include "44b.h"
#include "def.h"
#include "ZLG7289.h"

int Timer3INTCount=0;

void Init_Timer3(U8 prescaler1,U8 divider3,U16 countb3,U16 compb3)
{  U8 div;
   switch(divider3)
    {case 2: div=0x00;break;
     case 4: div=0x01;break;
     case 8: div=0x02;break;
     case 16: div=0x03;break;
     default: div=0x00;
     }
   //prescaler1 is for timer2&3
   //Fre(Timer)=MCLK/(prescaler+1)/divider
   rTCFG0&=~(0xff<<8);
   rTCFG0|=(prescaler1<<8);
   //All interrupt,select MUX input for TimerN
   rTCFG1&=~(0x0f<<24|0x0f<<12);
   rTCFG1|=(div<<12);
   rTCMPB3=compb3;
   rTCNTB3=countb3;
   rTCON|=(0x01<<19);//Auto reload



}

void Start_Timer3(void)
{  rTCON|=(0x01<<17);//Manual Update
   rTCON&=~(0x01<<18);//Inverter off
   rTCON|=(0x01<<16);//Start Timer3
   rTCON&=~(0x01<<17);//Must clear Manual update bit
}

void Stop_Timer3(void)
{rTCON&=~(0x01<<16);//Stop Timer3
}



void Timer3_ISR(void)
{Timer3INTCount++;
 if(Timer3INTCount>9999)
    Timer3INTCount=0;
 LED_Display(Timer3INTCount);
 Uart_Printf("\r%d      ",Timer3INTCount);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?