📄 timesr.c
字号:
#include "2410addr.h"
#include "2410lib.h"
#include "timer.h"
int l=0;
void __irq timer1(void);
void time1nit(void)
{
rTCFG0=0x64; //prescaler = 100,预分频值
rTCFG1=0x10;//divider = 1/8,定时器多路选择
rTCNTB1=5000;//rTCNTB0=PCLK/{(prescaler+1) * divider *freq
//rTCFG0= rTCFG0 & ~0xff|(255<<0); //prescaler = 15,????
//rTCFG1= rTCFG1 & ~0xf0|(1<<4);//divider = 1/8,???????
//rTCNTB1 =0xfd9c;//rTCNTB0=PCLK/{(prescaler+1) * divider *freq
rTCON|=(11<<8);//10010000 1011 0000 0000
// rSRCPND|=(BIT_TIMER1);
//rINTMSK=~(BIT_TIMER1);
// rINTPND|=(BIT_TIMER1);
rINTMOD=0x0; //all irq
rINTMSK=0xffffffff; //disable all interrupt source
rINTSUBMSK=0xffff; //disable all sub interrupt source
//rINTMSK=0xffffffff; //disable all interrupt source
//rINTSUBMSK=0xffff; //disable all sub interrupt source
}
void timenable(void)
{
rINTMSK=~(BIT_TIMER1);
rTCON&=0x9ff; //clear manual update bit
}
int Main()
{
SetClockDivider(1, 1);
SetSysFclk(DFT_FCLK_VAL);
Port_Init();
Uart_Select(0);
Uart_Init(0, UART_BAUD);
rGPFCON=0x5500;//GPF4--GPF7设置为output
rGPFUP=0; //disable GPF pull up
rGPFDAT=0xff;
time1nit();
pISR_TIMER1=(unsigned)timer1;
timenable();
while(1)
{
if(l==25)
{
rGPFDAT=~rGPFDAT;
l=0;
}
}
}
void __irq timer1(void)
{
l++;
Uart_Printf("TIMER1 is occurred.\n");
ClearPending(BIT_TIMER1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -