c8051F020程序运行不正常,老提示时钟丢失

brandnewboy 2009-01-09 05:38:53
程序卡在OSCICN = 0x84处,过不去,原因是时钟丢失。
程序如下:
#include "c8051f020.h"
void Hardinit(void);
void main(void)
{
HardInit(); //系统配置及初始化
}
void HardInit(void)
{
unsigned int i;
EA = 0; //禁止中断
WDTCN = 0xDE; //禁止看门狗
WDTCN = 0xAD; //
OSCICN = 0x84; //内部2MHz振荡器
OSCXCN = 0x67; //外部晶体振荡器(22.1182 / 2 = 11.0592MHz)
while((OSCICN & 0x10) == 0); //等待内部振荡器正常
while((OSCXCN & 0x80) == 0); //等待外部振荡器正常
.
.
.
.
}
...全文
165 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wo707254607 2011-12-14
  • 打赏
  • 举报
回复
一开始是使用内部晶振的,有一个切换的过程,需要一个延时,然后再查询是否切换到外部晶振。
Spunky 2009-01-12
  • 打赏
  • 举报
回复
两方面注意:
1.外部时钟是否起振?主要是看你外部晶振上的两个电容大小是否匹配!
2.你的程序初始化有点问题,在内外部时钟切换的时候需要延时,具体参考向导程序的初始化代码,最好不要修改,按照它的步骤去初始化!

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧