久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
msp430f5529時鐘設置源碼
[打印本頁]
作者:
Limerrence
時間:
2018-7-9 23:11
標題:
msp430f5529時鐘設置源碼
msp430f5529最高支持25MHz時鐘,借助官方數據手冊和官方例程,本人自己調出了一個配置msp430f5529始終系統的程序,現奉上.c和.h文件,供大家參考,不對的地方請大家批評指正
0.png
(43.2 KB, 下載次數: 93)
下載附件
2018-7-10 03:04 上傳
單片機源程序如下:
/*
* System_Init.c
*
* Created on: 2018年6月8日
* Author: Limerrence
* 使用說明:調用DCO_Init()對始終系統進行初始化,
* 設置XT的值可以選擇晶振,默認選擇XT1,以降低功耗,
* 若對時鐘頻率要求較高可以選擇XT2,修改DCO_Init()函數中的值可以選擇不同的時鐘頻率
*/
#include <System_Init.h>
#define XT 1
/*********************************************************************
* 晶振選擇,XT為1時選擇XT1做時鐘源,XT為2時選擇XT2做時鐘源
* 若選XT1,則最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:32768HZ
* 若選XT2,則最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:4MHZ
*********************************************************************/
void SetVcore (unsigned int level)
{
PMMCTL0_H = PMMPW_H;
SVSMHCTL = SVSHE + SVSHRVL0 * level + SVMHE + SVSMHRRL0 * level;
SVSMLCTL = SVSLE + SVMLE + SVSMLRRL0 * level;
while ((PMMIFG & SVSMLDLYIFG) == 0);
PMMIFG &= ~(SVMLVLRIFG + SVMLIFG);
PMMCTL0_L = PMMCOREV0 * level;
if ((PMMIFG & SVMLIFG))
while ((PMMIFG & SVMLVLRIFG) == 0);
SVSMLCTL = SVSLE + SVSLRVL0 * level + SVMLE + SVSMLRRL0 * level;
PMMCTL0_H = 0x00;
}
#if (XT==1)
void DCO_Init()
{
P7SEL |= BIT7; //MCLK
P7DIR |= BIT7;
P5SEL |= BIT4|BIT5;
UCSCTL6 |= XCAP_3;
UCSCTL6 &= ~XT1OFF; //打開XT1,否則XT1LFOFFG可能報錯
SetVcore(1);
SetVcore(2);
SetVcore(3); //提高Vcore電壓到最高級,以滿足倍頻需求該函數位于HAL_PMM.H中
__bis_SR_register(SCG0); //該語法為固定格式,意為將括號內的變量置位,SCG0與系統工作模式有關,此時MCLK暫停工作
UCSCTL0 = 0; //先清零,FLL運行時,該寄存器系統會自動配置,不用管
UCSCTL1 = DCORSEL_6;
/**************************************************************************
* 以下是對倍頻的設置
* //n=1,FLLREFCLK時鐘源為XT2CLK;
* //DCOCLK=D*(N+1)*(FLLREFCLK/n)=2*(3)*4M=24M;
* //DCOCLKDIV=(N+1)*(FLLREFCLK/n)=12M;
**************************************************************************/
UCSCTL2 = FLLD_1 | 380; //FLLD=1,FLLN=380,則頻率為2*(380+1)*32.768=24.969MHZ
__bic_SR_register(SCG0);
__delay_cycles(782000); //系統自帶的精確延時,單位us
while (SFRIFG1 & OFIFG)
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG;
}
UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_4|SELM_3;
//最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:32768HZ
}
#endif
#if (XT==2)
void DCO_Init()
{
P7DIR |= BIT7;
P7SEL |= BIT7; //MCLK
P5SEL |= BIT2|BIT3; //打開XT2引腳
//UCSCTL6 |= XCAP_3;
UCSCTL6 &= XT1OFF; //關閉XT1
UCSCTL6 &= ~XT2OFF; //打開XT2
SetVcore(1);
SetVcore(2);
SetVcore(3); //提高Vcore電壓到最高級,以滿足倍頻需求該函數位于HAL_PMM.H中
/*********************寄存器配置部分******************************/
__bis_SR_register(SCG0); //該語法為固定格式,意為將括號內的變量置位,
//SCG0與系統工作模式有關,此時MCLK暫停工作
//UCSCTL0 = DCO0+DCO1+DCO2+DCO3+DCO4;
UCSCTL0 = 0;
UCSCTL1 = DCORSEL_6; //DCO頻率范圍在28.2MHZ以下
UCSCTL2 = FLLD_1 + 2; //D=2,N=2
UCSCTL3 = SELREF_6 + FLLREFDIV_0; //n=1,FLLREFCLK時鐘源為XT2CLK;
//DCOCLK=D*(N+1)*(FLLREFCLK/n)=2*(3)*4M=24M;
//DCOCLKDIV=(N+1)*(FLLREFCLK/n)=12M;
UCSCTL4 = SELA_5 + SELS_4 + SELM_3; //ACLK的時鐘源為XT2,MCLK\SMCLK的時鐘源為DCOCLK
UCSCTL5 = DIVA_0 + DIVS_0 + DIVM_0; //ACLK由DCOCLKDIV的32分頻得到,SMCLK由DCOCLK的2分頻得到
//最終MCLK:24MHZ,SMCLK:12MHZ,ACLK:4MHZ
__bic_SR_register(SCG0); //Enable the FLL control loop
/**********************************************************************/
__delay_cycles(8192);
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); //Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; //Clear fault flags
}while (SFRIFG1&OFIFG);
}
#endif
復制代碼
所有資料51hei提供下載:
MSP430f5529Code.rar
(2.07 KB, 下載次數: 92)
2018-7-9 23:09 上傳
點擊文件名下載附件
msp430f5529時鐘配置
下載積分: 黑幣 -5
作者:
xqk114
時間:
2018-7-19 19:42
看一下
作者:
WenDonlin
時間:
2018-12-15 20:50
先謝過,看一下
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天天插天天操
|
日韩在线视频网站
|
国产伦精品
|
日韩一二三
|
日韩欧美第一页
|
久久机热这里只有精品
|
欧美精品一区二区三区四区
|
午夜成人影片
|
国产精品婷婷
|
аⅴ资源新版在线天堂
|
欧美成人午夜
|
国产理论在线观看
|
亚洲在线中文字幕
|
亚洲久久久久
|
99精品网站
|
99精品久久
|
日韩国产欧美
|
国产精品第五页
|
999av
|
国产91热爆ts人妖系列
|
日韩中文字幕第一页
|
中文字幕精品在线观看
|
亚洲天堂2014
|
中文字幕网站
|
国产性猛交
|
日韩精品视频免费
|
欧美va亚洲va
|
亚洲在线播放
|
国产成人精品久久久
|
亚洲欧美成人
|
欧美性生交xxxxx久久久
|
天天看毛片
|
国产欧美一区二区精品性色超碰
|
丁香激情五月
|
欧美a在线观看
|
九九影视理伦片
|
亚洲免费在线视频
|
在线综合网
|
成人欧美日韩
|
亚洲一区二区在线免费观看
|
日一日操一操
|