定时器PWM输出实验_第1页
定时器PWM输出实验_第2页
定时器PWM输出实验_第3页
定时器PWM输出实验_第4页
定时器PWM输出实验_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、定时器 PWM 输出实验1. 实验目的1) 熟悉 Linux 开发环境。2) 掌握 S5PV210 内部相关寄存器的操作方法,最终实现对外部设备的控制。3) 熟悉在 Linux 裸机环境下的 C 语言编程。4) 熟悉 S5PV210 的定时器编程。2 实验内容学习并编程实现ARM 的定时器PWM 输出。3 实验设备1) 硬件: S5PV210 教学实验箱、 PC 机;2) 软件: PC 机操作系统 Windows 98(2000 、XP) VMware workstation+Ubuntu12 开发环境。4 基础知识S5PV210 共有 5 个 32bit 的 PWM 定时器,其中定时器 0、

2、1、2、3 有 PWM 功能,定时器 4 没有输出引脚。 PWM 定时器使用 PCLK_PSYS 作为时钟源。专业文档供参考,如有帮助请下载。时钟初始化相关寄存器专业文档供参考,如有帮助请下载。专业文档供参考,如有帮助请下载。定时器初始化相关定时器专业文档供参考,如有帮助请下载。专业文档供参考,如有帮助请下载。定时器 PWM 输出控制的相关内容: GPD0CON 确定 GPD0DA T 引脚的功能,本实验用 GPD00 作为 TOUT_0 的输出。实验程序#define MP0_4CON(*(volatile unsigned long *)0xE0200340)#define MP0_4DA

3、T(*(volatile unsigned long *)0xE0200344)#define GPD0CON(*(volatile unsigned long *)0xE02000A0)#define GPD0DAT(*(volatile unsigned long *)0xE02000A4)/ clock专业文档供参考,如有帮助请下载。#define APLL_LOCK(*(volatile unsigned long *)0xE0100000)#define MPLL_LOCK(*(volatile unsigned long *)0xE0100008)#define APLL_CON0

4、(*(volatile unsigned long *)0xE0100100)#define APLL_CON1(*(volatile unsigned long *)0xE0100104)#define MPLL_CON(*(volatile unsigned long *)0xE0100108)#define CLK_SRC0(*(volatile unsigned long *)0xE0100200)#define CLK_SRC1(*(volatile unsigned long *)0xE0100204)#define CLK_SRC2(*(volatile unsigned lon

5、g *)0xE0100208)#define CLK_SRC3(*(volatile unsigned long *)0xE010020c)#define CLK_SRC4(*(volatile unsigned long *)0xE0100210)#define CLK_SRC5(*(volatile unsigned long *)0xE0100214)#define CLK_SRC6(*(volatile unsigned long *)0xE0100218)#define CLK_SRC_MASK0(*(volatile unsigned long *)0xE0100280)#defi

6、ne CLK_SRC_MASK1(*(volatile unsigned long *)0xE0100284)#define CLK_DIV0(*(volatile unsigned long *)0xE0100300)#define CLK_DIV1(*(volatile unsigned long *)0xE0100304)#define CLK_DIV2(*(volatile unsigned long *)0xE0100308)#define CLK_DIV3(*(volatile unsigned long *)0xE010030c)#define CLK_DIV4(*(volati

7、le unsigned long *)0xE0100310)#define CLK_DIV5(*(volatile unsigned long *)0xE0100314)#define CLK_DIV6(*(volatile unsigned long *)0xE0100318)#define CLK_DIV7(*(volatile unsigned long *)0xE010031c)#define CLK_DIV0_MASK0x7fffffff#define APLL_MDIV0x7d#define APLL_PDIV0x3#define APLL_SDIV0x1#define MPLL_

8、MDIV0x29b#define MPLL_PDIV0xc#define MPLL_SDIV0x1#define set_pll(mdiv, pdiv, sdiv)(131 | mdiv16 | pdiv8 | sdiv)#define APLL_VALset_pll(APLL_MDIV,APLL_PDIV ,APLL_SDIV)#define MPLL_VALset_pll(MPLL_MDIV ,MPLL_PDIV,MPLL_SDIV)/ PWM CLOCK#defineTCFG0( *(volatile unsigned long *)0xE2500000)#defineTCFG1( *(

9、volatile unsigned long *)0xE2500004)#defineTCON( *(volatile unsigned long *)0xE2500008)#defineTCNTB0( *(volatile unsigned long *)0xE250000C)#defineTCMPB0( *(volatile unsigned long *)0xE2500010)#defineTCNTO0( *(volatile unsigned long *)0xE2500014)#defineTCNTB1( *(volatile unsigned long *)0xE2500018)#

10、defineTCMPB1( *(volatile unsigned long *)0xE250001C)#defineTCNTO1( *(volatile unsigned long *)0xE2500020)#defineTCNTB2( *(volatile unsigned long *)0xE2500024)#defineTCMPB2( *(volatile unsigned long *)0xE2500028)专业文档供参考,如有帮助请下载。#defineTCNTO2( *(volatile unsigned long *)0xE250002C)#defineTCNTB3( *(vol

11、atile unsigned long *)0xE2500030)#defineTCMPB3( *(volatile unsigned long *)0xE2500034)#defineTCNTO3( *(volatile unsigned long *)0xE2500038)#defineTCNTB4( *(volatile unsigned long *)0xE250003C)#defineTCNTO4( *(volatile unsigned long *)0xE2500040)#defineTINT_CSTAT( *(volatile unsigned long *)0xE250004

12、4)void init_clock(void)CLK_SRC0 = 0x0;/ close PLLAPLL_LOCK= 0x0000FFFF;MPLL_LOCK = 0x0000FFFF;/ set PLLAPLL_CON0 =APLL_VAL;/FOUT= MDIV * FIN / (PDIV*2(SDIV-1) = 1000 MHzMPLL_CON = MPLL_VAL;/ FOUT = MDIV*FIN/(PDIV*2SDIV)=667 MHzCLK_SRC0= 0x10001111;/ FOUT = MDIV*FIN/(PDIV*2SDIV)=667 MHzvoid init_time

13、r(unsigned long tcntb,unsigned long tcmpb)TCON = 0;TCFG0= (TCFG0 & 0xff00ff)|0x41;/设置预分频系数65TCFG1 =(TCFG1 & (0xf0)|0x04;/ 16分频输入时钟 = PCLK /(prescaler+ 1) /divider=62500hzTCNTB0 = tcntb;TCMPB0 = tcmpb;TCON |= 11;/更新 TCNTB0 TCMPB0TCON &= (11);/清手动更新位TCON |= (10)|(1 0;count-)for(i=0;i loop; i+) j+; void main(void)GPD0CON = (GPD0CON & (0xF 0)|0x2;/控制 GPD00 作为 TOUT_0 的输出专业文档供参考,如有帮助请下载。MP0_4CON= (MP0_4CON & 0xFFFF0000) | 0x11110000;MP0_4DAT|= 0xF0;init_clock();/ 初始化时钟init_timer(62500,4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论