GPBCON:引脚配置寄存器
GPBUP:端口使能上拉寄存器
GPBDAT:端口数据寄存器
TCFG0:配置两个8位预分频器
TCFG1:5路多路选择器和DMA模式选择寄存器
TCNTB0: 定时器0计数缓冲寄存器
TCMPB0: 定时器0比较缓冲寄存器
TCON: 定时器控制寄存器
2440有两个8位预分频器0,1共用一个2,3,4共用另外一个,每个定时器都有一个可以生成5种不同分频信号(1/2,1/4,1/8,1/16和TCLK)的时钟分频器。
8位预分频器是可编程的,并且按存储在TCFG0和TCFG1寄存器中的加载值来分频PCLK。
定时器输入时钟频率由TCFG0与TCFG1决定
定时器输入时钟频率 = PCLK/(预分频值+1)/(分频值);
预分频值 = 0~255;
分频值 = 2,4,8,16
TCNTB0包含了一个当使能定时计数器的初始值。TCMPB0包含了一个与TCNTB0相比较的初始值。当递减计数器到达0时,产生定时器中断请求通知CPU定时器操作已经完成。
TCON 定时器控制寄存器 定时器0的自动重载开启或关闭,TOUT0变换极性,手动更新TCNTB0与TCMPB0的值,启动/停止定时器。
GPBCON,GPBUP,GPBDAT这些寄存器只是为了设置GPBDAT的最低位为第二功能。
输出频率计算:fout = PCLK/(预分频值+1)/(分频值)/计数个数
根据需要的频率反推计数个数 计数个数= PCLK/(预分频值 +1)/分频值/fout
其中 PCLK 为 AHB BUS时钟50M
预分频值为0~255 由TCFG0设置
分频值为2、4、8、16几种,分别对应的TCFG1 = 1、3、7、15
计数个数由TCNTB0确定
以下是一段例程:
/***************************************************************************/
#include<S3C2440.h>
int main(){
int freq = 100; //想要获得的频率
unsigned int PCLK = 50000000;
GPBCON &= ~3;
//set GPB0 as tout0, pwm output
GPBCON |= 2;
TCFG0 &= ~0xff;
TCFG0 |= 15;
//prescaler = 15+1
TCFG1 &= ~0xf;
TCFG1 |= 2;
//mux = 1/8
TCNTB0 = (PCLK>>7)/freq;//TCNTB0 = PCLK/(预分频值 +1)/分频值/fout 其中预分频值+1 = 16 ,分频值 = 8 ,共右移7位
TCMPB0 = TCNTB0>>1;
// 50%
TCON &= ~0x1f;
TCON |= 0xb;
//disable deadzone, auto-reload, inv-off, update TCNTB0&TCMPB0, start timer 0
TCON &= ~2;
//clear manual update bit
return 0;
}
/***************************************************************************/
分享到:
相关推荐
TQ2440 PWM控制蜂鸣器不同频率 并且有LED等显示频率的不同变化
TQ2440裸机开发,利用定时器PWM功能,包含启动代码说明。Timer0设置为PWM功能,通过串口控制,按+增加频率,按-减小频率。
tq2440定时器0
TQ2440裸机开发蜂鸣器程序,包含启动代码的各文档说明。
TQ2440 蜂鸣器
TQ2440的定时器中断0实验程序,和startcode一起使用,亲测可行!
TQ2440定时器程序 一个简单的裸机程序例子
TQ2440裸机开发定时器程序,包含启动代码的各文档说明。Timer1每秒一次,Led1以1秒频率亮灭,蜂鸣器以1秒频率发声。
TQ2440裸机开发舵机控制测试程序。1.利用Timer1的PWM功能实现TOUT1输出舵机控制信号;2.模仿C51程序,Timer1定时并设置Timer1中断,中断函数控制GPA0输出PWM信号。上述2个程序均利用串口接收键盘输入,键盘+和-,...
买来的tq2440光盘里面的源码-解决了pwm频率调节时的一个小漏洞
TQ2440 开发板使用手册 嵌入式资料
基于TQ2440开发板的裸机实验——定时器中断,修改了原来的一点程序,可以实现LED灯一秒钟闪烁1次。已通过调试~~
天嵌科技.+TQ2440开发板使用手册V3.2
TQ2440开发板 TQ2440开发板
TQ2440使用教程,清晰完整,适合新手跟着学习,最近写毕业论文在用,希望能帮到做嵌入式开发或者使用该开发板的人
tq2440在ADS1.2开发环境下开发串口的程序
TQ2440开发板使用手册V2.5_20100611.pdf TQ2440开发板使用手册V2.5_20100611.pdf TQ2440开发板使用手册V2.5_20100611.pdf TQ2440开发板使用手册V2.5_20100611.pdf
用ADS编译测试通过,TIMER0中断测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 ...这里是我对S3C2440代码及TIMER0中断的简单分析。
TQ2440裸机开发试验之PWM.rar
TQ2440的PWM应用这是赵春江老师博客摘录下来TQ2440开发板裸机程序,我基本上验证过,转发给大家,希望对大家有些帮助,多多交流,一起进步。