实验一 GPIO控制
一. 实验基本原理 1. 程序功能:
通过对GPIO的设置来实现对实验板上LED(3D0)的亮灭的控制 具体可分为对DPLL和GPIO的控制.
(1)时钟电路 a) C5509的时钟电路由一个DPLL和一个时钟模式寄存器CLKMD组成
b) 在CLKMD的控制下,DPLL对外部输入时钟进行分频、倍频和锁相,为CPU及外设提供工作时钟
CLKIN pin DPLL CLKOUT pin
CLKMD CLKMD pin (2)时钟模式寄存器CLKMD
相关控制字含义:
IAI:退出省电状态后如何进行跟踪,是继续省电状态之前的设定还是重新进行整个跟踪锁定
IOB:发生失锁时时钟电路的动作,是继续输出时钟信号还是切换到旁路模式
PLLMULT:锁定模式下的倍频次数 PLLDIV:锁定模式下的分频次数
(3)GPIO -C5509有8个相互独立的可编程GPIO管脚(IO0 ~IO7)构成 -各个GPIO管脚的方向控制(输入或输出)由方向寄存器IODIR设定
-各个GPIO管脚上的输入/输出电平由寄存器IODATA控制 2.芯片支持库
(1)DSP片上外设种类及其应用日趋复杂
(2)提供一组标准的方法(APIs:函数、数据类型、宏)用于配置、控制和管理DSP片上外设
(3) 免除用户编写配置和控制片上外设所必需的定义和代码 (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
#include
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); delay();
GPIO_RSET(IODATA,0x000); delay();
} }
void delay() {
Uint32 j = 0,k = 0; for(j = 0;j<0xc0;j++) {
for(k = 0;k<0xffff;k++)
}
}
{}
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育DSP实验应用GPIO控制 全文阅读和word下载服务。
相关推荐: