S3C2410中脉宽调制定时器

发布者:SparklingRiver最新更新时间:2016-06-15 来源: eefocus关键字:S3C2410  脉宽调制  定时器 手机看文章 扫描二维码
随时随地手机看文章
S3C2410有5个16bit定时器。定时器0-3有脉宽调制功能(Pulse Width Modulation,PWM),定时器4是内部定时器,没有输出引脚。定时器0有Dead-zone发生器,可以保证一对反向信号不会同时改变状态,常用于大电流设备中。

       定时器0-1共用一个8bit prescaler,定时器2-4共用另外一个。每个定时器有一个时钟分频器,可以选择5种分频方法。每个定时器从各自的时钟分频器获取时钟信号。prescaler是可编程的,并依据TCFG0-1寄存器数值对PCLK进行分频。

       当定时器被使能之后,定时器计数缓冲寄存器(TCNTBn)中初始的数值就被加载到递减计数器中。定时器比较缓冲寄存器(TCMPBn)中的初始数值被加载到比较寄存器中,以备与递减计数器数值进行比较。这种双缓冲特点可以让定时器在频率和占空比变化时输出的信号更加稳定。

       每个定时器都有一个各自时钟驱动的16bit递减计数器,当计数器数值为0时,产生一个定时中断,同时TCNTBn中的数值被再次载入递减计数器中再次开始计数。只有关闭定时器才不会重载。TCMPBn的数值用于PWM,当递减计数器的数值和比较寄存器数值一样时,定时器改变输出电平,因此,比较寄存器决定了PWM输出的开启和关闭。

       S3C2410的PWM定时器采用双buffer机制,可以不停止当前定时器的情况下设置下一轮定时操作。定时器值可以写到TCNTBn,而当前定时的计数值可以从TCNTOn获得,即,从TCNTBn获得的不是当前数值而是下一次计数的初始值。

       自动加载功能被打开后,当TCNTn数值递减到0时,芯片自动将TCNTBn的数值拷贝到TCNTn,从而开始下一次循环,若TCNTBn数值为0,则不会有递减操作,定时器停止。

       第一次启动定时器的过程如下:(1)初始化TCNTBn和TCMPBn的数值;(2)设置定时器的人工加载位,不管是否使用极性转换功能,都将极性转换位打开;(3)设置定时器的启动位来启动定时器,同时清除人工加载位。

       若定时器在计数过程中被停止,则TCNTn保持计数值,若需要设置新的数值需要人工加载。定时器的工作过程可以用附图表示。

 

                                                                
                                                ARM,S3C2410中脉宽调制定时器
 

1,  使能自动加载功能,设置TCNTBn=160,TCMPBn=110,设置人工加载位并配置极性转换位,人工加载位将时TCNTBn、TCMPBn的数值加载到TCNTn、TCMPn。然后,设置TCNTBn、TCMPBn为80和40,作为下一次定时的参数。

2,  设置启动位,若人工加载位为0,极性转换关闭,自动加载开启,则定时器开始递减计数(计数前有一个设定时间,可以理解为与setup time类似)。

3,  当TCNTn的数值和TCMPn一致时,TOUTn从低变为高。

4,  当TCNTn计数至0,定时器产生中断请求,同时TCNTBn、TCMPBn的数值被自动加载到TCNTn、TCMPn,前者为80,后者为40。

5,  中断服务向量(ISR)将TCNTBn、TCMPBn设置为80和60。

6,  与3相似。

7,  与4相似,TCNTn、TCMPn,前者为80,后者为60。

8,  ISR服务程序中,将自动加载和中断请求关闭。

9,  与6、3相似。

10,TCNTn为0,TCNTn不会自动加载新的数值,定时器被关闭。

11,没有新的中断发生。

       同时,由上面的工作过错可以看出,通过ISR或别的方法写入不同的TCMPBn的数值,就可以调节输出信号的占空比,实现脉宽调制(PWM)。

       Dead Zone主要用在控制外设的使能,其功能主要是在关闭一个设备和开启另一个设备之间,插入一个时间间隙,以防止两个设备同时改变状态。(有利于减小系统干扰?)

       定时器可以通过TCFG1寄存器的DMA模式位配置为DMA请求源信号(nDMA_REQ)发生器,当定时器被这样配置后,它将nDMA_REQ信号一直置低,直到接收到ACK信号。当定时器收到ACK信号,它将nDMA_REQ信号置高(无效)。当定时器被设置为DMA请求模式时,不会产生中断请求。只能有一个定时器被配置为DMA请求源。
关键字:S3C2410  脉宽调制  定时器 引用地址:S3C2410中脉宽调制定时器

上一篇:STM32串口超时判断方式接收未知长度数据
下一篇:S3C2410中利用serfox 和spcavie 使用摄像头

推荐阅读最新更新时间:2024-03-16 14:57

单片机学习札记9 定时器模拟PWM呼吸灯
在上一节中,我们交代了为什么要做这样一个项目,以及我们提出了需求,并根据具体的需求分析,将其转化为硬件设计,画出了具体的原理图,但是还有许多的问题没有交代清楚,比如数码管的引脚判断,12个管脚哪8个是数码管的段码?4个是数码管的位码?这个我们刚买来并不清楚,还需要测量,这就要用到万用表了,将万用表拨到二极管档位,二极管有单向导电性,我们知道数码管就是8个小灯组成的,如果我们买的是共阳极的数码管,也就是如下图所示: 如果我们将万用表的红表笔接12个引脚中的任意一个,黑表笔接其余11的任意一个引脚,如果小灯亮的话,说明红表笔管脚是数码管的位码,而我们的数码管有四个,所以有4个位码,可以按照点亮小灯的方法查找,找完位码之后,记下来,
[单片机]
单片机学习札记9 <font color='red'>定时器</font>模拟PWM呼吸灯
第6课:PWM定时器
PWM是定时器全名叫脉宽调制定时器。 主要有2个功能: 1定时 2计时 在我们开发板上有5个pwm定时器。TIMER0到TIMER4。 其中TIMER4是没有输出的,作为内部时钟使用。而其他四个是GPB0~3的复用引脚功能。 四个中TIMER0还有个叫死区发生器的东西,用来对大功率的外设来限流的。 再提一个概念。叫占空比。即一个周期内高电平占总的电平时间的比率。这个就是我们说的脉宽调制。 现在来分析内部结构。 定时器用的是PCLK的时钟,我们的开发板PCLK是50Mhz。这个频率太高了,速度太快了,不方便我们计时。所以我们内部有2个分平器。 第一个分屏器是Timer0和1共享的。另外一个是3,4,5共享。可以分成1
[单片机]
让使用MSP430定时器中断的更简单
MSP430的定时器中断步骤总结: 1 设置中断端口的方向; 2 使能定时器中断; 3 设置定时时间; 4 设置定时控制器的时钟,计数方式,去除中断标志; 5 进入低功耗模式并打开全局中断标志位; 6 编写中断程序。 For example: P1.0引脚接了一个LED灯,要求在低功耗模式0下,利用定时器的定时功能,实现LED灯的闪烁。 #include msp430 void main(void) { WDTCTL = WDTPW + WDTHOLD;//关闭看门狗 P1DIR |=0X01; //设置P1.0为输出方向 TA0CCTL0 = CCIE; //定时器C
[单片机]
STC89C52单片机 使用定时器使LED灯闪烁
#include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char sbit LED1 = P1^0;//LED1 //定时器1初始化 void timer1Init() { TR1 = 1; //启动定时器1 TMOD |= 0X10; //定时器1工作模式1,16位定时模式 TH1 = 0x4b; TL1 = 0xfd; //定时50ms } void main()//main函数自身会循环 { uchar mSec;//毫秒储存变量 timer1In
[单片机]
定时器中断程序编写
上篇笔记记录到51单片机的中断允许寄存器、定时器/计数器工作方式寄存器(TMOD)、定时器/计数器控制寄存器(TCON)各位的作用。这些寄存器都是用来为编写定时器中断程序编写的初始化部分而服务的。然后今天再这里补填中断函数的编写格式,以后就可以编写定时器中断程序了。 1.中断服务程序的写法 C51的中断函数格式如下: void 函数名() 中断号 using 工作组 { 中断服务程序内容 } 与一般的C语言程序相比,中断服务程序有一下特点 中断函数不能返回任何值,所以函数名前用void; 函数名随便起,但不能与C51语言中的关键字同名(同C语言函数要求) 中断函数不能带任何参数,故函数名
[单片机]
<font color='red'>定时器</font>中断程序编写
通用定时器基本原理讲解
概述: STM32定时器:STM32F10x系列总共最多有8个定时器。 三种STM32定时器区别: 通用定时器功能特点描述: STM3 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括: 位于低速的APB1总线上(APB1) 16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。 16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。 4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: 输入捕获 输出比较 PWM 生成(边缘或中间对齐模式) 单脉冲模式输出 可使用外部信号(
[单片机]
通用<font color='red'>定时器</font>基本原理讲解
51定时器通过查询方式定时
#include sbit P1_1 = P1^1; //定时器的初始化 void delay_1ms(void) { TMOD = 0x01;//采用16位计数器 TH0 = 0xFC; TL0 = 0x18; ET0 = 0; TR0 = 1; //开启 while(!TF0); TF0 = 0; TR0 = 0; } void main(void) { while(1){ P1_1 = 1; delay_1ms(); delay_1ms(); P1_1 = 0; delay_1ms(); delay_1ms(); } }
[单片机]
触摸屏在S3C2410上的应用实例
摘要:给出S3C2410上触摸屏的实现原理、硬件结构和软件程序;对软件进行优化,改进软件滤波的实现方法。其算法使用C语言实现,可移植到任何操作系统的触摸屏驱动程序中。 关键词:触摸屏 S3C2410 滤波 引言 随着个人数字助理(PDA)、瘦容户机等的普及,触摸屏作为终端与用户交互的媒介,在我们的生活中使用得越来普遍。触摸屏分为电阻式、电容式、声表面波式和红外线扫描式等类型,使用得最多的是4线电阻式触摸屏。 本文以三星公司ARM9内核芯片S3C2410触摸屏接口为基础,通过外接4线电阻式触摸屏构成硬件基础。在此基础上,开发了触摸屏面图板程序。 1 触摸屏原理 S3C2410接4线电阻式触摸屏的电路原理如图1所示。整个触
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved