# include " csl . h "# include " cslpll . h "# include " cslchip . h "#defineMY5509AEBSRvoidmain( void ){ intk =0; MY _5509A_ EBSR =0x9a01;//关闭 CLKOUT 输出引脚,复位 CPU 时自动开启 CLKOUT 输出 CHIPFSET ( SYSR , CLKDIV ,0);//设置 CLKOUT 分频系数为1PLLFSET( CLKMD , PLLENABLE , PLL _ CLKMDPLLENABLEON ; PLLPLLsetFreq (2,1);// PLL 设定为2倍频 k = PLLFGET ( CLKMD , LOCK );//读取 CLKMD 中的 LOCK 位状态 while ( k !=1);//等待 PLL 锁定 while (1);
时间: 2024-01-16 18:02:38 浏览: 71
这段程序是基于TI的C6000系列DSP芯片(例如TMS320C5509A)的,它的作用是将CLKOUT输出引脚关闭,设置CLKOUT分频系数为1,然后将PLL设定为2倍频,并等待PLL锁定。程序的具体解释如下:
```c
#include "csl.h" // 引入C6000 DSP芯片的CSL库
#include "cslpll.h" // 引入PLL控制函数库
#include "cslchip.h" // 引入芯片控制函数库
#define MY5509AEBSR // 定义一个宏,无实际作用
void main(void)
{
int k = 0;
MY_5509A_EBSR = 0x9a01; // 关闭CLKOUT输出引脚,复位CPU时自动开启 CLKOUT输出
CHIP_FSET(SYSR, CLKDIV, 0); // 设置CLKOUT分频系数为1
PLL_FSET(CLKMD, PLLENABLE, PLL_CLKMD_PLLENABLE_ON); // PLL设定为2倍频
PLL_setFreq(2, 1); // 设置PLL倍频系数为2,分频系数为1
k = PLL_FGET(CLKMD, LOCK); // 读取CLKMD中的LOCK位状态
while (k != 1); // 等待PLL锁定
while (1); // 进入死循环
}
```
需要注意的是,这段程序仅供参考,具体实现方式需要根据具体的芯片型号和开发环境而有所不同。同时,为了保证CLKOUT时钟输出口的稳定性和可靠性,建议在编写程序时仔细阅读芯片手册中的相关章节,并参考芯片厂商提供的示例代码进行开发。
阅读全文