timer1.c

来自「2410一些基本试验的源码」· C语言 代码 · 共 62 行

C
62
字号
#include "2410addr.h"
#include "2410lib.h"
#include "timer.h"
int l=0;

void __irq timer1hander()
{
	ClearPending(BIT_TIMER1);
	l++;
	rTCON=(9<<8);
	Uart_Printf("The timer1hander is beginning\n");
}

void timer_int()
{
	ClearPending(BIT_TIMER1);
	
	rTCFG0=100;//prescaler=100
	rTCFG1=(1<<4);//1/4*PCLK,pclk=50MH
	//t=101*4/50000000=0.00000808s
	
	rTCON=(11<<8);
	rTCNTB1=24752;//T=24752*0.00000808s=0.2s
	
	rTCON=(9<<8);
	EnableIrq(BIT_TIMER1);
	
	Uart_Printf("The timer_int is beginning\n");	
}

int Main()
{
	SetClockDivider(1,1);//FLCK:HCLK:PCLK=1:2:4
	SetSysFclk(DFT_FCLK_VAL);//Fout=200MHZ
	Port_Init();
		
	Uart_Select(0);
	Uart_Init(0, UART_BAUD);
	Uart_Printf("The main is beginning\n");
	
	rGPFCON|=0x55ff;
	rGPFUP=0;
	rGPFDAT&=0x00ff;
	
	pISR_TIMER1=(unsigned)timer1hander;
	
	timer_int();
	
	//rGPBCON = rGPBCON & ~(3<<0)|(1<<1);//set GPB0 as tout0, pwm output


	while(1)
	{
		if(l==5)
		{
			rGPFDAT=~rGPFDAT;
			l=0;
		}
	}
}

⌨️ 快捷键说明

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