<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MSP430(F5529)學(xué)習筆記——UCS配置詳解

MSP430(F5529)學(xué)習筆記——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;

都在前面講到的范圍內,由于前面的范圍有重疊部分,例子代碼中的值是TI的工程師根據上面這些參數選取的比較合理的值。
到這里,我相信大家配合芯片手冊和本文,都能明白DCO配置相關(guān)部分的原理了,下面是將DCO參考時(shí)鐘選為XT1,并將DCOCLK倍頻到25M的詳細代碼:
[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電壓等級,具體請參考手冊
  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. *默認狀態(tài)下:ACLK=FLLREFCLK=XT1SMCLK=MCLK=DCOCLKDIVXT2關(guān)閉
  54. *為了不產(chǎn)生XT1LFOFFG,將ACLK和FLLREFCLK設置為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í)驗,我們都能正確使用MSP430F5XX的UCS了,如果有什么疑問(wèn),歡迎留言討論。

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

關(guān)鍵詞: MSP430學(xué)習筆記UCS配

評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>