找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

新唐MS51PC0AE 外部4-24M时钟设置不成功

[复制链接]
跳转到指定楼层
楼主
匿名  发表于 2022-8-29 16:54:11 回帖奖励 |倒序浏览 |阅读模式
如题,硬件描述:22.1184M晶振外接在HXT引脚(P00,P01)上,对地接24p电容。



主函数调用自带的sys.c内FsysSelect(FSYS_HXT),系统不能切换到外部时钟工作
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具

沙发
admin 发表于 2022-9-2 13:51:52 | 只看该作者
是不是引脚没有设置,使用外部晶振前需要将P0.0设置成输入
牛卧堂
回复 支持 反对

使用道具 举报

板凳
admin 发表于 2022-9-2 13:52:18 | 只看该作者

牛卧堂
回复 支持 反对

使用道具 举报

地板
匿名  发表于 2023-4-7 18:11:53

斑竹你好,在使用MS51PC0AE的时候我也遇到这个问题,进入仿真之后。CKEN寄存器的值为0X70,CKSWT的值为0XB0,程序一直卡死在ClockEnable(FSYS_HXT);这个函数里,具体位置是:
  1. case FSYS_HXT:
  2.         clr_CKEN_EXTEN1;                        /*step1: Enable extnal 4~ 24MHz crystal clock source.*/
  3.         set_CKEN_EXTEN0;
  4.         while(CKSWT|CLR_BIT7);                  /*step2: check clock source status and wait for ready*/
  5.     break;
复制代码



回复 支持 反对

使用道具

5#
匿名  发表于 2023-4-7 18:14:13
因为有违规文字,拆成两段发,借上段。

在while循环那个位置卡住,CLR_BIT7的值为0X7F,CKSWT的值为0XB0,两者或之后这个while不是恒成立?

例如: /***** HIRC enable part ******/
   
  1. case FSYS_HIRC:
  2.         set_CKEN_HIRCEN;                        //step1: Enable extnal clock source.
  3.         while((CKSWT|CLR_BIT5)==CLR_BIT5);      //step2: check clock source status and wait for ready
  4.     break;
复制代码


后者有一个(CKSWT|CLR_BIT5)==CLR_BIT5 判断。


FSYS_HXT的那个case是不是少了个判断??亲测把那一句while注释掉之后,程序正常运行,时钟频率为24Mhz。

因为CKSWT这个寄存器的第7位为1应该说明了 “高速外部晶振已使能且稳定”

求解答
回复 支持 反对

使用道具

6#
admin 发表于 2023-4-10 11:49:57 | 只看该作者
函数里判断条件错误,请去下列连接下载最新版本程序https://github.com/OpenNuvoton/MS51BSP_KEIL
牛卧堂
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU