DSP实验应用GPIO控制.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP实验应用GPIO控制

实验一 GPIO控制 实验基本原理 1. 程序功能: 通过对GPIO的设置来实现对实验板上LED(3D0)的亮灭的控制 具体可分为对DPLL和GPIO的控制. (1)时钟电路 C5509的时钟电路由一个DPLL和一个时钟模式寄存器CLKMD组成 在CLKMD的控制下,DPLL对外部输入时钟进行分频、倍频和锁相,为CPU及外设提供工作时钟 (2)时钟模式寄存器CLKMD 相关控制字含义: IAI:退出省电状态后如何进行跟踪,是继续省电状态之前的设定还是重新进行整个跟踪锁定 IOB:发生失锁时时钟电路的动作,是继续输出时钟信号还是切换到旁路模式 PLLMULT:锁定模式下的倍频次数 PLLDIV:锁定模式下的分频次数 (3)GPIO -C5509有8个相互独立的可编程GPIO管脚(IO0 ~IO7)构成 -各个GPIO管脚的方向控制(输入或输出)由方向寄存器IODIR设定 -各个GPIO管脚上的输入/输出电平由寄存器IODATA控制 2.芯片支持库 (1)DSP片上外设种类及其应用日趋复杂 (2)提供一组标准的方法(APIs:函数、数据类型、宏)用于配置、控制和管理DSP片上外设 免除用户编写配置和控制片上外设所必需的定义和代码 (4)CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化 (5)CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中 (6)CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响 实验所用到的硬件资源和在片外围电路 硬件资源 CPU、LED、蜂鸣器、电阻、电容等 在片外围电路 时钟发生器、通用输入/输出口等 参数设置 CPU时钟:PLL multiply value=24; PLL divide value =1; CLKOUT=PLLMULT/(PLLDIV+1)*CLKIN =24/2*12M=144MHZ 小灯亮或灭的时间:N*13*16*65536/(144*10^6)=1.1s(N为指令周期) 实验流程图 程序 #include <csl_pll.h> #include <csl_chip.h> #include <csl_gpio.h> void delay(); /*锁相环的设置*/ PLL_Config myConfig = { 0, //IAI: the PLL locks using the same process that was underway //before the idle mode was entered 1, //IOB: If the PLL indicates a break in the phase lock, //it switches to its bypass mode and restarts the PLL phase-locking //sequence 24, //PLL multiply value; multiply 24 times 1 //Divide by 2 PLL divide value; it can be either PLL divide value //(when PLL is enabled), or Bypass-mode divide value //(PLL in bypass mode, if PLL multiply value is set to 1) }; main() { /*初始化CSL库*/ CSL_init(); /*设置系统的运行速度为144MHz*/ PLL_config(&myConfig); /*确定方向为输出*/ // ioport unsigned int *IODIR; // IODIR=(unsigned int *)0x3400; // ioport unsigned int *IODATA; // IODATA=(unsigned int *)0x3401; // *clkmd =0x21f3; // 晶振12Hz,9Hz=0x21f3;// 144MHz=0x2613 GPIO_RSET(IODIR,0xFF); while(1) { GPIO_RSET(IODATA,0x0c0); del

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档