关于锁相环MB15E03SL这个芯片的使用
时间:10-02
整理:3721RD
点击:
不知道谁了解MB15E03SL这个锁相环的芯片,如果有大神可以帮我解决一下么。
下面是我写的写入设定MB15E03SL的函数,不知道哪里出错了,老是不对:
void TransPLLData(uchar LSB,uint DataST,uchar DataE) //第一个是控制位,第二个是一个16为数据,第三个是8位数据
{
uchar Cou;
PLL_LE=0;
PLL_Data=0;
PLL_CLOCK=0;
if(LSB==1)
{
DataE<<=4;
DataST<<=2;
for(Cou=0;Cou<4;++Cou) //这个是传送设置位,总共有4为数据,包括SW FC LDS CS
{
if(DataE&0X80==0)
{
PLL_Data=0;
}
else
{
PLL_Data=1;
}
asm("nop");
PLL_CLOCK=1;
asm("nop");
PLL_CLOCK=0;
DataE<<=1;
}
for(Cou=0;Cou<14;++Cou) //这个是设置传送R寄存器
{
if(DataST&0X8000==0)
{
PLL_Data=0;
}
else
{
PLL_Data=1;
}
asm("nop");
PLL_CLOCK=1;
asm("nop");
PLL_CLOCK=0;
DataST<<=1;
}
PLL_Data=1; //这个是传送控制位CNT
asm("nop");
PLL_CLOCK=1;
asm("nop");
PLL_CLOCK=0;
}
else
{
DataE<<=1;
DataST<<=5;
for(Cou=0;Cou<11;++Cou) //这个是传送N寄存器
{
if(DataST&0X8000==0)
{
PLL_Data=0;
}
else
{
PLL_Data=1;
}
PLL_CLOCK=1;
asm("nop");
PLL_CLOCK=0;
DataST<<=1;
}
for(Cou=0;Cou<7;++Cou) //这个是传送A寄存器
{
if(DataE&0X80==0)
{
PLL_Data=0;
}
else
{
PLL_Data=1;
}
asm("nop");
PLL_CLOCK=1;
asm("nop");
PLL_CLOCK=0;
DataE<<=1;
}
PLL_Data=0; //这个是传送控制位CNT
asm("nop");
PLL_CLOCK=1;
asm("nop");
PLL_CLOCK=0;
}
PLL_LE=1; //这个是将14为数据存储在寄存器里
asm("nop");
PLL_LE=0;
PLL_Data=0;
PLL_CLOCK=0;
}
我不知道哪里出错了,就是无法设置锁相环,求解答,给位大神!
自己顶啊大神在哪里啊...
没人么...自己顶啊!