www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]時鐘初始化和GPIO概述:本實驗的目的是了解用于執(zhí)行對MSP430 Value Line設備的初始化過程的步驟。在這個練習中,您將編寫初始化代碼,并運行該設備使用各種時鐘資源。1、寫初始化代碼2、運行CPU的MCLK的來源方式:VL

時鐘初始化和GPIO

概述:

本實驗的目的是了解用于執(zhí)行對MSP430 Value Line設備的初始化過程的步驟。在這個練習中,您將編寫初始化代碼,并運行該設備使用各種時鐘資源。

1、寫初始化代碼

2、運行CPU的MCLK的來源方式:VLO 、32768晶體、DCO

3、主體程序部分

4、觀察LED閃光燈速度

MSP430時鐘:

1、在MSP430單片機中一共有三個或四個時鐘源:

(1)LFXT1CLK,為低速/高速晶振源,通常接32.768kHz,也可以接(400kHz~16Mhz);

(2)XT2CLK,可選高頻振蕩器,外接標準高速晶振,通常是接8Mhz,也可以接(400kHz~16Mhz);

(3)DCOCLK,數(shù)控振蕩器,為內(nèi)部晶振,由RC震蕩回路構成;

(4)VLOCLK,內(nèi)部低頻振蕩器,12kHz標準振蕩器。

2、在MSP430單片機內(nèi)部一共有三個時鐘系統(tǒng):

(1)ACLK,Auxiliary Clock,輔助時鐘,通常由LFXT1CLK或VLOCLK作為時鐘源,可以通過軟件控制更改時鐘的分頻系數(shù);

(2)MCLK,Master Clock,系統(tǒng)主時鐘單元,為系統(tǒng)內(nèi)核提供時鐘,它可以通過軟件從四個時鐘源選擇;

(3)SMCLK,Sub-Main Clock,系統(tǒng)子時鐘,也是可以由軟件選擇時鐘源。

Basic Clock Module Registers(基礎時鐘寄存器)

DCO control register DCOCTL

Basic clock system control 1 BCSCTL1

Basic clock system control 2 BCSCTL2

Basic clock system control 3 BCSCTL3

SFR interrupt enable register 1 IE1

SFR interrupt flag register 1 IFG1

3、MSP430的時鐘設置包括3個寄存器,DCOCTL、BCSCTL1、BCSCTL2、BCSCTL3

DCOCTL,DCO控制寄存器,地址為56H,初始值為60H

DCO2

DCO1

DCO0

MOD4

MOD3

MOD2

MOD1

MOD0

DCO0~DCO2: DCO Select Bit,定義了8種頻率之一,而頻率由注入直流發(fā)生器的電流定義。

MOD0~MOD4: Modulation Bit,頻率的微調(diào)。

一般不需要DCO的場合保持默認初始值就行了。

BCSCTL1,Basic Clock System Control 1,地址為57H,初始值為84H

XT2OFF

XTS

DIVA1

DIVA0

XT5V

RSEL2

RSEL1

RSEL0

RSEL0~RSEL2: 選擇某個內(nèi)部電阻以決定標稱頻率.0最低,7最高。

XT5V: 1.

DIVA0~DIVA1:選擇ACLK的分頻系數(shù)。DIVA=0,1,2,3,ACLK的分頻系數(shù)分別是1,2,4,8;

XTS: 選擇LFXT1工作在低頻晶體模式(XTS=0)還是高頻晶體模式(XTS=1)。

XT2OFF: 控制XT2振蕩器的開啟(XT2OFF=0)與關閉(XT2OFF=1)。

正常情況下把XT2OFF復位就可以了.

BCSCTL2,Basic Clock System Control 2,地址為58H,初始值為00H

SEM1

SELM0

DIVM1

DIVM0

SELS

DIVS1

DIVS0

DCOR

DCOR: Enable External Resistor. 0,選擇內(nèi)部電阻;1,選擇外部電阻

DIVS0~DIVS1: DIVS=0,1,2,3對應SMCLK的分頻因子為1,2,4,8

SELS: 選擇SMCLK的時鐘源, 0:DCOCLK; 1:XT2CLK/LFXTCLK.

DIVM0~1: 選擇MCLK的分頻因子, DIVM=0,1,2,3對應分頻因子為1,2,4,8.

SELM0~1: 選擇MCLK的時鐘源, 0,1:DCOCLK, 2:XT2CLK, 3:LFXT1CLK

我用的時候一般都把SMCLK與MCLK的時鐘源選擇為XT2。

其它:

1. LFXT1: 一次有效的PUC信號將使OSCOFF復位,允許LFXT1工作,如果LFXT1信號沒有用作SMCLK或MCLK,可軟件置OSCOFF關閉LFXT1.

2. XT2: XT2產(chǎn)生XT2CLK時鐘信號,如果XT2CLK信號沒有用作時鐘MCLK和SMCLK,可以通過置XT2OFF關閉XT2,PUC信號后置XT2OFF,即XT2的關閉的。

3. DCO振蕩器:振蕩器失效時,DCO振蕩器會自動被選做MCLK的時鐘源。如果DCO信號沒有用作SMCLK和MCLK時鐘信號時,可置SCG0位關閉DCO直流發(fā)生器。

4. 在PUC信號后,由DCOCLK作MCLK的時鐘信號,根據(jù)需要可將MCLK的時鐘源另外設置為LFXT1或XT2,設置順序如下:

(1)清OSCOFF/XT2

(2)清OFIFG

(3)延時等待至少50uS

(4)再次檢查OFIFG,如果仍置位,則重復(1)-(4)步,直到OFIFG=0為止。

(5)設置BCSCTL2的相應SELM。

實例分析

1、CPU運行在VLO時鐘下:

這是最慢的時鐘,在約12千赫茲下運行。因此,我們將通過可視化的LED閃爍的紅色慢慢地在約每3秒鐘率。我們可以讓時鐘系統(tǒng)默認這種狀態(tài),設置專門來操作VLO。我們將不使用任何ALCK外設時鐘在此實驗室工作,但你應該認識到,ACLK來自VLO時鐘。

#include

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 關閉看門狗定時器

P1DIR = 0x40; // P1.6 配置輸出

P1OUT = 0; // 關閉LED

BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO

IFG1 &= ~OFIFG; // 清除OSCFault 標志

__bis_SR_register(SCG1 + SCG0); // 關閉 DCO

BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = VLO/8

while(1)

{

P1OUT = 0x40; // 開啟LED

_delay_cycles(100);

P1OUT = 0; // 關閉 LED

_delay_cycles(5000);

}

}

2、CPU運行在晶振(32768Hz)時鐘下:

晶體頻率為32768赫茲,約3倍的VLO。如果我們在前面的代碼中使用晶振,指示燈應閃爍大約每秒一次。你知道為什么32768赫茲是一個標準?這是因為這個數(shù)字是2的15次方,因此很容易用簡單的數(shù)字計數(shù)電路,以每秒一次獲得率 ——手表和其他時間時基。認識到ACLK來自外部晶振時鐘。

#include

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 關閉看門狗定時器

P1DIR = 0x41; // P1.0 和P1.6配置輸出

P1OUT = 0x01; // 開啟P1.0

BCSCTL3 |= LFXT1S_0; // LFXT1 = 32768Hz 晶振

while(IFG1 & OFIFG)

{

IFG1 &= ~OFIFG; // 清除 OSCFault 標志

_delay_cycles(100000); // 為可見的標志延時

}

P1OUT = 0; // 關閉P1

__bis_SR_register(SCG1 + SCG0); // 關閉 DCO

BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = 32768/8

while(1)

{

P1OUT = 0x40; // 開啟 LED

_delay_cycles(100);

P1OUT = 0; / / 關閉LED

_delay_cycles(5000);

}

}

3、CPU運行在晶振(32768Hz)和DCO時鐘下:

最慢的頻率,我們可以運行DCO約在1MHz(這也是默認速度)。因此,我們將開始切換MCLK到DCO下。在大多數(shù)系統(tǒng)中,你會希望ACLK上運行的VLO或32768赫茲晶振。由于ACLK在我們目前的代碼是在晶體上運行,我們會打開DCO計算。

#include

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 關閉看門狗定時器

if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)

{

while(1); // If cal const erased, 掛起

}

BCSCTL1 = CALBC1_1MHZ; // Set range

DCOCTL = CALDCO_1MHZ; //設置DCO模式

P1DIR = 0x41; // P1.0 和P1.6配置輸出

P1OUT = 0x01; // P1.0 開啟

BCSCTL3 |= LFXT1S_0; // LFXT1 = 32768Hz

while(IFG1 & OFIFG)

{

IFG1 &= ~OFIFG; // 清除OSCFault 標志

_delay_cycles(100000); // 為可見標志延時

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉