阅读:1162回复:1
nee工,请教你一个72131问题?
nee工,麻烦你指点我一下。我现在读不到中频数的
我现在是把一个电台(unsigned long PLL_Shadow_IN1=0x360888;)发过去,想看它读回的FM的中频数的值是不是10。7Mhz 现在发个电台过去是可以收到了。显示也是正常的。当我把Read_72131()的返回值直接=0x053980(53980(十六进制)=342400,342400/32(GT)/100=107数值,是对的。现在中频数返回的值却是1的。那问题应该是在读中频时没有数值返回的。 疑问:1。我的思路是不是对的? a. 先发iN1(cte=0),接着再发in1(cte=1).--》发送in2的设置过去 //IN2参数设置为:0x121421 // 1 2 4 1 2 1 // 0 1 0 0 0 1 0 1 0 1000 //ioc1|ioc2|io1|io2 |B01|B02|B03|B04 |DNC|DOC0|DOC1|DOC2 |UL0|UL1|DZ0|DZ1 |GT0|GT1|TBC|DLC |IFS|TEST0|TEST1|TEST2 //B02=Fm电源;B03=AM电源。 b.延时50(//一般中频记数时间在64MS之内,本程序选择32MS,所以延时50MS已经足够了) c.接着就去读中频数了。再就是把这个值转为kHZ。 //--------------------------------------------------------------------------- // Read_LC72131 // addr: the addr of the control register // return value //--------------------------------------------------------------------------- static unsigned long Read_72131(void){ unsigned int i; unsigned long temp = 0; // Send the addr byte first ------------// Write_LC72131_Addr(MODE_OUT); PIN_TUNER_CE = 1; LC72131_DELAY(); // read the value dword ------------// for (i=24; i>0; --i){ PIN_TUNER_CL = 0; LC72131_DELAY(); temp <<= 1; if (PIN_TUNER_DO) temp |= 1; PIN_TUNER_CL = 1; LC72131_DELAY(); } PIN_TUNER_CE = 0; return temp; } main: ......我现在是把一个电台(unsigned long PLL_Shadow_IN1=0x360888;)发过去,想看它读回的FM的中频数的值是不是10。7Mhz Write_LC72131(MODE_IN1,0x320888);//cte=0 delay(30); //PLL_IN1_CTE=0x020000; for (j=0; j<255; j++) { if (PIN_TUNER_DO)break; } Write_LC72131(MODE_IN1,PLL_Shadow_IN1);//cte=1 Write_LC72131(MODE_IN2, 0x121421);//end_uc // PIN_TUNER_CE=1;//这里是不是要把CE从1拉为0。 for(i=0;i<10;i++) { if(!PIN_TUNER_DO)break;//等待中频检测完成 delay(10); } // PIN_TUNER_CE=0; IF_count=(long)(Read_72131()&0x0fffff)/GATE_TIME/100;//现在读出中频的数值都是111111。。。 [此贴子已经被作者于2006-4-5 3:29:49编辑过]
|
|
1楼#
发布于:2006-04-04 21:40
|
|