您现在所在的是:

单片机论坛

回帖:0个,阅读:927 [上一页] [1] [下一页]
1922
周长锁
文章数:312
年度积分:53
历史总积分:1922
注册时间:2006/4/29
发站内信
08年优秀博客奖
发表于:2009/5/22 1:11:12
#0楼
以前提到lpc938内部rc振荡器频率不准确,造成通信出错的现象,最近才测了下,发现本应是7.373mhz的频率都达到7.6m左右,测量多个都是这样,测lpc935则没这样问题。
最后决定调整trim寄存器来调整频率,调整方法是在实验板上p0口外接6个led,反应trim寄存器值,再接2个按键调整trim寄存器值,使能x2的频率输出功能,接频率计,调整正常时频率计应为3.686m左右(cclk/2)。测试程序如下:
//********************************************************************
#include
sbit up=p0^6;   //增加
sbit dn=p0^7;   //减少
//--------------------------------------------------
//io_init:初始化io子程序
//--------------------------------------------------
void io_init(void)
{
p0m1=0x00;   //p0准双向
p0m2=0x00;
p3m1=0x00;   //p3准双向
p3m2=0x00;
}
//--------------------------------------------------
//delay:延时子程序
//--------------------------------------------------
void delay(void)
{
unsigned int data i;    //循环数
unsigned int data j;    //循环数
for(i=0;i
//--------------------------------------------------
//主程序
//--------------------------------------------------
void main(void)
{
io_init();
   trim|=0x40;   //使能频率输出
while(1)
{
 if(!up)trim++; //调整trim值  
 if(!dn)trim--;  
 p0=~trim|0xc0; //显示trim值
 delay();  //按键延时
}
}
得到合适的trim值后,在应用程序中初始化时注意加入更改trim的语句,否则还是出厂设置值。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=88466&Name=zhouchs
欢迎光临我的BLOG

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002