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

2019-03-24 09:23发布

程序如下
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,MCLKSMCLK的时钟源为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的哪里配置存在问题
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
huaiqiao
1楼-- · 2019-03-24 16:26
< 本帖最后由 huaiqiao 于 2016-5-3 21:39 编辑

楼主我先说下,我没有使用过您的这个F5529,但是我的想法是您对照您的一条条语句去看寄存器的配置的值,是否正确。
下午下载了个中文文档,看了下,您也参考一下。DCOFFG是DCO故障标志,建议您先仔细看下这个故障标志,会来自哪里。
1.jpg

MSP430F5XX系列中文用户指南合集.pdf (8 MB, 下载次数: 11) 2016-5-3 21:37 上传 点击文件名下载附件


多大点事er
2楼-- · 2019-03-24 21:20
 精彩回答 2  元偷偷看……
huaiqiao
3楼-- · 2019-03-24 23:22
多大点事er 发表于 2016-5-10 16:01
根据你的文档,我看了下UCSCTL0寄存器,确实是DCO位一直保持在31才是DCOFFG持续置位,原因也查出来了,是 ...

也就是说还是你程序中,对寄存器的操作的问题咯?呵呵,能解决就好。多逛逛430的论坛,你会有收获的

一周热门 更多>

相关问题

    相关文章