S5PV210 PWM定时器
第一节 S5PV210的PWM定时器
S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。PWM定时器使用PCLK_PSYS作为时钟源,相关知识可以查阅"初始化时钟",相关的结构图如下:
第二节 程序相关讲解
完整代码见目录见详细代码下载链接。
1. main.c
核心代码如下:
int main(void)
{
// 初始化串口
uart_init();
// 中断相关初始化
system_initexception();
// 设置timer
timer_request();
while(1);
}
共4个步骤,其中第3步与定时器相关:
第一步 初始化串口;
第二步 中断相关初始化;
第三步 设置timer,函数timer_request()的定义位于timer.c中;
第四步 死循环,等待timer中断的发生;
2. timer.c
void timer_request(void)
{
printf("\r\n#############Timer test############\r\n");
// 禁止所有timer
pwm_stopall();
// 设置timer0中断的中断处理函数
intc_setvectaddr(NUM_TIMER0,irs_timer);
// 使能timer0中断
intc_enable(NUM_TIMER0);
// 设置timer0
timer_init(0,65,4,62500,0);
}
共3个步骤:
第一步 禁止所有timer,往寄存器TCON写0即可;
第二步 设置VIC,先设置timer0中断的中断处理函数为irs_timer(),然后使能timer0中断;
第三步 设置timer0,调用了函数timer_init(),其核心工作是:
1) 设置分频
首先设置分频系数,相关寄存器是TCFG0,如下:
然后设置为16分频,相关寄存器是TCFG1,如下:

经过上面的设置之后,就能确定timer的输入时钟了,计算方式如下:
Timer Input Clock Frequency = PCLK / ( {prescaler value + 1} ) / {divider value} = 66MHz/(65+1)/16=62500hz
2) 设置计数
设置寄存器TCNTB0=62500和TCMPB0=0,启动timer0后,TCNTB0会逐渐-1,直到等于TCMPB0时就产生一次中断,即1秒产生一次timer0中断。
3) 启动timer0
设置寄存器TCON,先设置手动更新位,然后清除手动更新位,使用自动装载,最后启动timer0。
4) 使能timer0中断
设置寄存器TINT_CSTAT,使能timer0中断。

最后再来分析timer0中断处理函数irs_timer(),共3个步骤:
第一步 清timer0的中断状态寄存器TINT_CSTAT;
第二步 打印timer0中断发生的次数,每产生一次timer0中断就打印一次。
第三步 VIC相关的中断清除,调用函数intc_clearvectaddr();
第三节 实验现象
终端会不断的打印数字1、2、3、4...,频率为每秒打印1次。
详细代码下载链接:http://download.csdn.net/detail/klcf0220/5741631
S5PV210 PWM定时器的更多相关文章
- S5PV210 PWM
定时器PWM输出 原理图 GPD0CON, R/W, Address = 0xE020_00A0 CON, R/W, Address = 0xE250_0008 相关文章:http://blog.cs ...
- 【春节歌曲回味 | STM32小音乐盒 】PWM+定时器驱动无源蜂鸣器(STM32 HAL库)
l STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l 编程使用STM32 HAL库 l IIC OLED界面编程,动画实 ...
- S5PV210定时器
在S5PV210内部,一共有4类定时器件.这4类定时器件的功能.特征是不同的. 1.PWM定时器(1)这种是最常用的,平时所说的定时器一般指的是这个.像简单单片机(譬如51单片机)中的定时器也是这类. ...
- [S5PV210 Linux字符驱动之PWM蜂鸣器驱动
在SMDK210.C中添加如下beeper_device 结构体 static struct platform_device beeper_device = { .name = "pwm_b ...
- 定时器及PWM
1 定时器 1.1 定时器分类 对于STM32来说,定时器可分为基本定时器.通用定时器.高级定时器三类,后者包括前者的全部功能.以stm32f1系列为例,TIM6和TIM7为基本定时器,TIM2~TI ...
- S5PV210 看门狗定时和复位
第一节 S5PV210的看门狗定时器S5PV210上的看门狗定时器相当于一个普通的16bit的定时器,它与PWM定时器的区别是看门狗定时器可以产生reset信号而PWM定时器不能,S5PV210看门狗 ...
- Cortex-A9 PWM Timer
PWM定时器 4412时钟为我们提供了PWM定时器,在4412中共有5个32位的定时器,这些定时器可发送中断信号给ARM子系统.另外,定时器0.1.2.3包含了脉冲宽度调制(PWM),并 ...
- 嵌入式davinci电路元素基础和PWM模块
1,DAC_OUT和DAC_OUTB是AD9912输出的差分信号. 2,电容器储存电荷的能力,常用的单位是F.uF.nF.pFUF大了好还是UF小了好,要根据电路自身需要而设计, 要看电路滤波是在高频 ...
- Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动【转】
本文转载自:https://blog.csdn.net/zqixiao_09/article/details/50858776 版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...
随机推荐
- 安装架设Apache+MySQL+PHP网站环境
转载自 http://blog.sina.com.cn/s/blog_c02ed6590101d2sl.html 并进行了个人编辑整理 一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终 ...
- winreg模块的使用
python有内置的注册表操作库--winreg(在33版本中为winreg,在2x版本为_winreg). 1.打开键,枚举键值 # -*- coding: gbk -*- import winre ...
- Prometheus Redis_exporter
Redis 下载redis_exporter wget https://github.com/oliver006/redis_exporter/releases/download/v0.15.0/re ...
- 初探 opencv-python
一.openCV介绍 Open Source Computer Vision Library.OpenCV于1999年由Intel建立,如今由Willow Garage提供支持.OpenCV是一个基于 ...
- IOS绘图的核心步骤
在view上绘制一个图形的方式有很多种,表现形式可能不一样,但其实质步骤都是一样的: 1)获取上下文 2)绘制路径 3)添加路径到上下文 4)修改图形状态参数 5)渲染上下文 下面我们以画一个圆形来演 ...
- JAVA记录-POST与GET方式区别
1.get是从服务器上获取数据的一种请求,post是向服务器提交数据的一种请求. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到 ...
- Ubuntu 16.04下安装zsh和oh-my-zsh
注意:安装前先备份/etc/passwd 一开始装oh-my-zsh我是拒绝的,因为这东西安装容易,卸载难,真的很难. Mac安装参考:http://www.cnblogs.com/EasonJim/ ...
- ThinkPHP 3.2 用户注册邮箱验证帐号找回密码
一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...
- Educational Codeforces Round 47 (Rated for Div. 2) 题解
题目链接:http://codeforces.com/contest/1009 A. Game Shopping 题目: 题意:有n件物品,你又m个钱包,每件物品的价格为ai,每个钱包里的前为bi.你 ...
- centOS7安装Composer
1.进入Composer国内镜像网站文档页查看安装方法: https://docs.phpcomposer.com/00-intro.html 2.在centOS系统中进入特定目录执行以下命令: cd ...