打印

430F5529设置时钟,DCOFFG一直置位不能清零

[复制链接]
815|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Levenburg|  楼主 | 2016-12-28 20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下
void UCS_Init()
{
                P5SEL |= BIT4+BIT5;                       // Port select XT1
                UCSCTL6 &= ~XT1OFF;                     // XT1 On
                UCSCTL6 |= XCAP_3;                        // Internal load cap

            P5SEL |= BIT2+BIT3;
            UCSCTL6 &= ~XT2OFF;                                                 //打开XT2

            UCSCTL0 = 0x0000;
            UCSCTL3 = SELREF_0 + FLLREFDIV_0;                //n=1,FLLREFCLK时钟源为XT1CLK
                                                                                            //DCOCLK=D*(N+1)*(FLLREFCLK/n);
                                                                                            //DCOCLKDIV=(N+1)*(FLLREFCLK/n);
            UCSCTL4 = UCSCTL4 & (~(SELA_7|SELS_7|SELM_7)) | SELA_4 | SELS_3 | SELM_3;

            /*********************寄存器配置部分******************************/
            _bis_SR_register(SCG0);
            UCSCTL1 = DCORSEL_5;                //DCO频率范围在10~20MHZ
            UCSCTL2 = FLLD_4 | 1;                //D=16,N=1
            //UCSCTL4 = SELA_4 + SELS_3 +SELM_3;                //ACLK的时钟源为DCOCLKDIV,MCLK\SMCLK的时钟源为DCOCLK
            UCSCTL5 = DIVA_1 + DIVS_1;                        //ACLK由DCOCLKDIV的2分频得到,SMCLK由DCOCLK的2分频得到
                                                                                    //最终MCLK:10MHZ,SMCLK:5MHZ,ACLK:32KHZ
            _bic_SR_register(SCG0);        //Enable the FLL control loop
            __delay_cycles(8192);

                while (SFRIFG1 & OFIFG)
                {
                                UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
                                SFRIFG1 &= ~OFIFG;
                }

运行的时候,一直在while里面循环,查寄存器发现DCOFFG始终是置1状态不能清除,我想知道是对DCO的哪里配置存在问题

相关帖子

沙发
Thorald| | 2016-12-28 21:10 | 只看该作者
对照一条条语句去看寄存器的配置的值,是否正确

使用特权

评论回复
板凳
Bjorn| | 2016-12-28 21:20 | 只看该作者
DCOFFG是DCO故障标志,建议您先仔细看下这个故障标志,会来自哪里

使用特权

评论回复
地板
typeof| | 2016-12-28 21:21 | 只看该作者
你读取寄存器了吗?

使用特权

评论回复
5
typeof| | 2016-12-28 21:23 | 只看该作者
直接赋值不能清零吗?

使用特权

评论回复
6
Rollo| | 2016-12-28 21:35 | 只看该作者
估计还是寄存器的操作的问题,仔细检查

使用特权

评论回复
7
angerbird| | 2016-12-28 21:36 | 只看该作者
这是硬件上引起的,,先检查下的。

使用特权

评论回复
8
angerbird| | 2016-12-28 21:37 | 只看该作者
特别是晶振这一块的,多看下,,基本上就能解决的。

使用特权

评论回复
9
smilingangel| | 2016-12-28 22:19 | 只看该作者
这个看下有没有启用看门狗复位的,,或者是硬件上检查下外部晶振是否OK

使用特权

评论回复
10
myidear| | 2016-12-29 18:50 | 只看该作者
这个寄存器无法手动清零的,只能自动清零的,可以参考官方的例程看看。

使用特权

评论回复
11
jkl21| | 2016-12-29 21:11 | 只看该作者
故障条件依然存在的话,DCOFFG 会再次置位

使用特权

评论回复
12
jkl21| | 2016-12-29 21:15 | 只看该作者
楼主看看是哪里的故障

使用特权

评论回复
13
lzmm| | 2017-1-2 21:54 | 只看该作者
软件清零怎么样?

使用特权

评论回复
14
lzmm| | 2017-1-2 21:56 | 只看该作者
如果软件不能清零,可能是时钟设置存在问题。

使用特权

评论回复
15
isseed| | 2017-1-3 21:49 | 只看该作者
错误状态时

使用特权

评论回复
16
isseed| | 2017-1-3 21:49 | 只看该作者
失效条件存在

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

180

帖子

0

粉丝