在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430(F5529)學(xué)習(xí)筆記——UCS配置詳解

            MSP430(F5529)學(xué)習(xí)筆記——UCS配置詳解

            作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏

            理解了上面這些,可以理解TI官方例子中的代碼了,官方代碼中的相關(guān)部分如下:
            [cpp]view plaincopy
            1. if(fsystem<=630)//fsystem<0.63MHz
            2. UCSCTL1=DCORSEL_0;
            3. elseif(fsystem<1250)//0.63MHz
            4. UCSCTL1=DCORSEL_1;
            5. elseif(fsystem<2500)//1.25MHz
            6. UCSCTL1=DCORSEL_2;
            7. elseif(fsystem<5000)//2.5MHz
            8. UCSCTL1=DCORSEL_3;
            9. elseif(fsystem<10000)//5MHz
            10. UCSCTL1=DCORSEL_4;
            11. elseif(fsystem<20000)//10MHz
            12. UCSCTL1=DCORSEL_5;
            13. elseif(fsystem<40000)//20MHz
            14. UCSCTL1=DCORSEL_6;
            15. else
            16. UCSCTL1=DCORSEL_7;

            都在前面講到的范圍內(nèi),由于前面的范圍有重疊部分,例子代碼中的值是TI的工程師根據(jù)上面這些參數(shù)選取的比較合理的值。
            到這里,我相信大家配合芯片手冊(cè)和本文,都能明白DCO配置相關(guān)部分的原理了,下面是將DCO參考時(shí)鐘選為XT1,并將DCOCLK倍頻到25M的詳細(xì)代碼:
            [cpp]view plaincopy
            1. #include
            2. voiddelay(){
            3. volatileunsignedinti;
            4. for(i=0;i!=5000;++i){
            5. _NOP();
            6. }
            7. }
            8. voidSetVcoreUp(unsignedintlevel)
            9. {
            10. //OpenPMMregistersforwrite
            11. PMMCTL0_H=PMMPW_H;
            12. //SetSVS/SVMhighsidenewlevel
            13. SVSMHCTL=SVSHE+SVSHRVL0*level+SVMHE+SVSMHRRL0*level;
            14. //SetSVMlowsidetonewlevel
            15. SVSMLCTL=SVSLE+SVMLE+SVSMLRRL0*level;
            16. //WaittillSVMissettled
            17. while((PMMIFG&SVSMLDLYIFG)==0);
            18. //Clearalreadysetflags
            19. PMMIFG&=~(SVMLVLRIFG+SVMLIFG);
            20. //SetVCoretonewlevel
            21. PMMCTL0_L=PMMCOREV0*level;
            22. //Waittillnewlevelreached
            23. if((PMMIFG&SVMLIFG))
            24. while((PMMIFG&SVMLVLRIFG)==0);
            25. //SetSVS/SVMlowsidetonewlevel
            26. SVSMLCTL=SVSLE+SVSLRVL0*level+SVMLE+SVSMLRRL0*level;
            27. //LockPMMregistersforwriteaccess
            28. PMMCTL0_H=0x00;
            29. }
            30. voidmain(void){
            31. WDTCTL=WDTPW+WDTHOLD;
            32. P1SEL&=~BIT1;
            33. P1DIR|=BIT1;
            34. P1SEL|=BIT0;//ACLK
            35. P1DIR|=BIT0;
            36. P2SEL|=BIT2;//SMCLK
            37. P2DIR|=BIT2;
            38. P7SEL|=BIT7;//MCLK
            39. P7DIR|=BIT7;
            40. P5SEL|=BIT4|BIT5;
            41. UCSCTL6|=XCAP_3;
            42. UCSCTL6&=~XT1OFF;
            43. SetVcoreUp(1);//一次提高Vcore電壓等級(jí),具體請(qǐng)參考手冊(cè)
            44. SetVcoreUp(2);
            45. SetVcoreUp(3);
            46. __bis_SR_register(SCG0);
            47. UCSCTL0=0;
            48. UCSCTL1=DCORSEL_6;
            49. UCSCTL2=FLLD_1|380;
            50. __bic_SR_register(SCG0);
            51. __delay_cycles(782000);
            52. /*
            53. *默認(rèn)狀態(tài)下:ACLK=FLLREFCLK=XT1SMCLK=MCLK=DCOCLKDIVXT2關(guān)閉
            54. *為了不產(chǎn)生XT1LFOFFG,將ACLK和FLLREFCLK設(shè)置為REFOCLK
            55. *并打開(kāi)XT2OFF,否則XT2將處于無(wú)法使用狀態(tài)
            56. **/
            57. //UCSCTL6&=~(XT2DRIVE0|XT2DRIVE1|XT2OFF);
            58. while(SFRIFG1&OFIFG){//CheckOFIFGfaultflag
            59. UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG);//ClearOSCflautFlags
            60. SFRIFG1&=~OFIFG;//ClearOFIFGfaultflag
            61. }
            62. UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_3|SELM_3;
            63. while(1){
            64. P1OUT^=BIT1;
            65. delay();
            66. }
            67. }

            好了,經(jīng)過(guò)上面的四個(gè)實(shí)驗(yàn),我們都能正確使用MSP430F5XX的UCS了,如果有什么疑問(wèn),歡迎留言討論。

            上一頁(yè) 1 2 3 下一頁(yè)

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉