Timer定时器主要配置一下寄存器1、TCFG0和TCFG1:分别设为119和0x03 这俩个寄存器用于设置“Control Logic”的时钟,计算公式如下:
Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value}
对于TIMER0,prescaler value = TCFG0[7:0],divider value由TCFG[3:0]确定(0b000:2,0b001:4,0b010:8,0b0011:16,0b01xx:使用外部TCLK0)。
对于本实验假设PLCK为50M(需要控制PLL在后面实验才能配置),TIMER0时钟 = 50MHz/(249+1)/(8) = 25Hz (1000/25000=0.04ms)意思为每0.04ms减一个数,需要25000个数才到1000ms。
TCNTB0:设为25000(1000ms/0.04ms=25000),在25Hz的频率下,此值对应的时间为1S
#define
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"
void beep_init(void)//蜂鸣器初始化
{
}
void inter_init()//中断初始化函数
{
}
void Timer0_init()//定时器初始化
{
}
static void __irq Timer0_ISR(void)
{
}
void Main(void)
{
}