⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 上海勤研的KY44B0X有中断的BIOS源码
💻 C
字号:
#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("\n\rTimer3INTCount is %d ",Timer3INTCount);
}

⌨️ 快捷键说明

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