久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7480|回復: 2
打印 上一主題 下一主題
收起左側

msp430f5529時鐘設置源碼

[復制鏈接]
跳轉到指定樓層
樓主
msp430f5529最高支持25MHz時鐘,借助官方數據手冊和官方例程,本人自己調出了一個配置msp430f5529始終系統的程序,現奉上.c和.h文件,供大家參考,不對的地方請大家批評指正


單片機源程序如下:
  1. /*
  2. * System_Init.c
  3. *
  4. *  Created on: 2018年6月8日
  5. *      Author: Limerrence
  6. *      使用說明:調用DCO_Init()對始終系統進行初始化,
  7. *      設置XT的值可以選擇晶振,默認選擇XT1,以降低功耗,
  8. *      若對時鐘頻率要求較高可以選擇XT2,修改DCO_Init()函數中的值可以選擇不同的時鐘頻率
  9. */
  10. #include <System_Init.h>
  11. #define XT 1
  12. /*********************************************************************
  13. * 晶振選擇,XT為1時選擇XT1做時鐘源,XT為2時選擇XT2做時鐘源
  14. * 若選XT1,則最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:32768HZ
  15. * 若選XT2,則最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:4MHZ
  16. *********************************************************************/
  17. void SetVcore (unsigned int level)
  18. {
  19.     PMMCTL0_H = PMMPW_H;
  20.     SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;
  21.     SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;
  22.     while ((PMMIFG & SVSMLDLYIFG) == 0);
  23.     PMMIFG &= ~(SVMLVLRIFG + SVMLIFG);
  24.     PMMCTL0_L = PMMCOREV0 * level;
  25.     if ((PMMIFG & SVMLIFG))
  26.         while ((PMMIFG & SVMLVLRIFG) == 0);
  27.     SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;
  28.     PMMCTL0_H = 0x00;
  29. }
  30. #if (XT==1)
  31. void DCO_Init()
  32. {
  33.     P7SEL |= BIT7; //MCLK
  34.     P7DIR |= BIT7;
  35.     P5SEL |= BIT4|BIT5;
  36.     UCSCTL6 |= XCAP_3;
  37.     UCSCTL6 &= ~XT1OFF;             //打開XT1,否則XT1LFOFFG可能報錯
  38.     SetVcore(1);
  39.     SetVcore(2);
  40.     SetVcore(3);                    //提高Vcore電壓到最高級,以滿足倍頻需求該函數位于HAL_PMM.H中
  41.     __bis_SR_register(SCG0);        //該語法為固定格式,意為將括號內的變量置位,SCG0與系統工作模式有關,此時MCLK暫停工作
  42.     UCSCTL0 = 0;                    //先清零,FLL運行時,該寄存器系統會自動配置,不用管
  43.     UCSCTL1 = DCORSEL_6;
  44.     /**************************************************************************
  45.      * 以下是對倍頻的設置
  46.      * //n=1,FLLREFCLK時鐘源為XT2CLK;
  47.      * //DCOCLK=D*(N+1)*(FLLREFCLK/n)=2*(3)*4M=24M;
  48.      * //DCOCLKDIV=(N+1)*(FLLREFCLK/n)=12M;
  49.      **************************************************************************/
  50.     UCSCTL2 = FLLD_1 | 380;         //FLLD=1,FLLN=380,則頻率為2*(380+1)*32.768=24.969MHZ
  51.     __bic_SR_register(SCG0);
  52.     __delay_cycles(782000);         //系統自帶的精確延時,單位us
  53.     while (SFRIFG1 & OFIFG)
  54.     {
  55.         UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
  56.         SFRIFG1 &= ~OFIFG;
  57.     }
  58.      UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_4|SELM_3;
  59.                                      //最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:32768HZ
  60. }
  61. #endif
  62. #if (XT==2)
  63. void DCO_Init()
  64. {
  65.     P7DIR |= BIT7;
  66.     P7SEL |= BIT7;                      //MCLK
  67.     P5SEL |= BIT2|BIT3;                 //打開XT2引腳
  68.     //UCSCTL6 |= XCAP_3;
  69.     UCSCTL6 &= XT1OFF;                  //關閉XT1
  70.     UCSCTL6 &= ~XT2OFF;                 //打開XT2
  71.     SetVcore(1);
  72.     SetVcore(2);
  73.     SetVcore(3);                        //提高Vcore電壓到最高級,以滿足倍頻需求該函數位于HAL_PMM.H中
  74.     /*********************寄存器配置部分******************************/
  75.     __bis_SR_register(SCG0);            //該語法為固定格式,意為將括號內的變量置位,
  76.     //SCG0與系統工作模式有關,此時MCLK暫停工作
  77.     //UCSCTL0 = DCO0+DCO1+DCO2+DCO3+DCO4;
  78.     UCSCTL0 = 0;
  79.     UCSCTL1 = DCORSEL_6;                //DCO頻率范圍在28.2MHZ以下
  80.     UCSCTL2 = FLLD_1 + 2;               //D=2,N=2
  81.     UCSCTL3 = SELREF_6 + FLLREFDIV_0;   //n=1,FLLREFCLK時鐘源為XT2CLK;
  82.                                         //DCOCLK=D*(N+1)*(FLLREFCLK/n)=2*(3)*4M=24M;
  83.                                         //DCOCLKDIV=(N+1)*(FLLREFCLK/n)=12M;
  84.     UCSCTL4 = SELA_5 + SELS_4 + SELM_3; //ACLK的時鐘源為XT2,MCLK\SMCLK的時鐘源為DCOCLK
  85.     UCSCTL5 = DIVA_0 + DIVS_0 + DIVM_0; //ACLK由DCOCLKDIV的32分頻得到,SMCLK由DCOCLK的2分頻得到
  86.                                         //最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:4MHZ
  87.     __bic_SR_register(SCG0);            //Enable the FLL control loop
  88.     /**********************************************************************/
  89.     __delay_cycles(8192);
  90.     do
  91.     {
  92.         UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); //Clear XT2,XT1,DCO fault flags
  93.         SFRIFG1 &= ~OFIFG;              //Clear fault flags
  94.     }while (SFRIFG1&OFIFG);
  95. }
  96. #endif
復制代碼

所有資料51hei提供下載:
MSP430f5529Code.rar (2.07 KB, 下載次數: 92)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:88090 發表于 2018-7-19 19:42 | 只看該作者
看一下
回復

使用道具 舉報

板凳
ID:328365 發表于 2018-12-15 20:50 | 只看該作者
先謝過,看一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产激情视频 | 久久日韩精品一区二区三区 | 欧美高清性xxxxhd | 一区二区三区亚洲 | 波多野结衣中文字幕一区二区三区 | 久热精品在线观看视频 | 欧美不卡在线 | 91动漫在线观看 | 少妇久久久 | 日本 欧美 国产 | 成人在线电影在线观看 | 一级看片 | 精品久久久久久久久久久 | 日韩三级精品 | 日韩精品久久久 | 91av在线看 | 国产激情免费视频 | 久久久久国产一区二区三区不卡 | 精品久久久久久久 | 欧美成人精品一区二区男人看 | 亚洲狠狠爱| 中文字幕一区二区三区乱码图片 | 日本精品一区二区三区在线观看视频 | 看片地址 | 人人人人人爽 | 一区二区在线观看免费视频 | 日韩精品一区二区久久 | 国产免费a | 亚洲女人天堂网 | 亚洲精品一区二区三区蜜桃久 | 成人亚洲片 | 在线国产一区二区 | 天天搞夜夜操 | 精品日韩| 国产粉嫩尤物极品99综合精品 | 日韩在线中文字幕 | 欧美黄色一区 | 日日噜噜噜夜夜爽爽狠狠视频, | 免费1区2区3区 | 久久精品高清视频 | 欧美日韩久久久 |