牛卧堂MCU技术交流

标题: 新唐MS51PC0AE 外部4-24M时钟设置不成功 [打印本页]

作者: 匿名    时间: 2022-8-29 16:54
标题: 新唐MS51PC0AE 外部4-24M时钟设置不成功
如题,硬件描述:22.1184M晶振外接在HXT引脚(P00,P01)上,对地接24p电容。



主函数调用自带的sys.c内FsysSelect(FSYS_HXT),系统不能切换到外部时钟工作

作者: admin    时间: 2022-9-2 13:51
是不是引脚没有设置,使用外部晶振前需要将P0.0设置成输入
作者: admin    时间: 2022-9-2 13:52


作者: 匿名    时间: 2023-4-7 18:11
admin 发表于 2022-9-2 13:52

斑竹你好,在使用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;
复制代码




作者: 匿名    时间: 2023-4-7 18:14
因为有违规文字,拆成两段发,借上段。

在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应该说明了 “高速外部晶振已使能且稳定”

求解答
作者: admin    时间: 2023-4-10 11:49
函数里判断条件错误,请去下列连接下载最新版本程序https://github.com/OpenNuvoton/MS51BSP_KEIL




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2