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

專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

MSP430時鐘設(shè)置程序

作者:佚名   來源:不詳   點擊數(shù):  更新時間:2014年08月31日   【字體:

1/

void main (void)
{
unsigned int i;
WDTCL = WDTPW+WDTHOLD; //停止看門狗
P5DIR = 0x10; //設(shè)置P5.4輸出
P5SEL = 0x10; //設(shè)置P5.4口為外圍模塊用作MCLK信號輸出
BCSCTL1 &= ~XT2OFF; //使TX2有效,TX2上電時默認為關(guān)閉的.
do
{
IFG1 &= ~OFIFG; //清振蕩器失效標志
for(i= 0xff; i>0; i--); //延時,待穩(wěn)定.
}
while ((IFG1 & OFIFG)!=0); //若振蕩器失效標志有效
BCSCTL2 |= SELM1; //使MCLK = XT2
for(;;);
}
 
2/
#include <msp430x11x1.h>
void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // 停止看門狗
BCSCTL1 |= XTS;
// 設(shè)置時基寄存器1,使ACLK = LFXT1 = HF XTAL,也就是高頻模式.
P2DIR |= 0x01; // 設(shè)置P2.0方向寄存器為輸出
P2SEL |= 0x01; // 設(shè)置P2.0口為外圍模塊用作ACLK信號輸出
P1DIR |= 0x02; // 設(shè)置P1.1方向寄存器為輸
do
{
IFG1 &= ~OFIFG; // 清振蕩器失效標志
for (i = 0xFF; i > 0; i--); // 延時,待穩(wěn)定
}
while ((IFG1 & OFIFG)); //若振蕩器失效標志有效?
BCSCTL2 |= SELM_3;// 設(shè)置時基寄存器2,使主時鐘信號MCLK = LFXT1 (可靠的)
for (;;) // 無窮循環(huán)
{
P1OUT |= 0x02; // P1.1 = 1
P1OUT &= ~0x02; // P1.1 = 0
}
}
 
1-LFXT1CLK: 低頻/高頻時鐘源.由外接晶體振蕩器,而無需外接兩個振蕩電容器.較常使用的晶體振蕩器是32768HZ。
2-XT2CLK: 高頻時鐘源.由外接晶體振蕩器。需要外接兩個振蕩電容器,較常用的晶體振蕩器是8MHZ。
3-DCOCLK: 數(shù)字可控制的RC振蕩器。d
/*******************************************************************************************************************/
BCSCTL 基本時鐘系統(tǒng)控制寄存器1
   D7
 D6
  D5
  D4
  D3
  D2
  D1
  D0
DCO.2
DCO.1
DCO.0
MOD.4
MOD.3
MOD.2
MOD.1
MOD.0
 

 
BCSCTL |=DCOx; //位選擇,x為0,1,2。DCO0=0x20;DCO1=0x40;DCO2=0x80;
BCSCTL |=MODx;//模塊選擇,x為0,1,2,3,4;MOD0=0x01,MOD1=0x2;MOD2=0x04;MOD3=0x08,MOD4=0x10;
/********************************************************************************************************************/
BCSCTL1 基本時鐘系統(tǒng)控制寄存器1
  D7
 D6
   D5
  D4
  D3
  D2
  D1
  D0
XT2OFF
TXS
DIVA.1
DIVA.0
XT5V
Rsel.2
Resl.1
Resl.0
 
BCSCTL1 |=XT2OFF; //使能啟用XT2CLK
BCSCTL1 |=TXS;       //啟用
頻; BCSCTL1 &=~TXS;//啟用
 
BCSCTL1 |=DIVA_x; //ACLK時鐘源分頻,x為0,不分頻,1是2分頻,2是4分頻,3是8分頻
BCSCTL1 |=XT5V;    //
BCSCTL1 |=RSELx;  //x可選0,1,2,3,頻率范圍選擇
  
/*********************************************************************************************************************/
BCSCTL2 基本時鐘系統(tǒng)控制寄存器2
    D7
    D6
    D5
    D4
   D3
   D2
  D1
   D0
SELM.1
SELM.0
DIVM.1
DIVM.0
SELS
DIVS.1
DIVS.0
DCOR
BCSCTL2寄存器默認為0x00,需要哪個時鐘源,幾分頻,按下列相加即可。
BCSCTL2 |=SELM_x;   //MCLK時鐘源選擇,x為0,1選內(nèi)部時鐘DCOCLK,2選XT2,3選LFXTCLK
BCSCTL2 |=DIVM_x;   //MCLK時鐘源分頻,x為0,不分,1是2分頻,2是4分頻,3是8分頻
BCSCTL2 |=SELS;   //SMCLK時鐘源選XT2CLK,默認選DCOCLK
BCSCTL2 |=DIVS_x;   //SMCLK時鐘源分頻,x為0,不分,1是2分頻,2是4分頻,3是8分頻 
BCSCTL2 |=DCOR;//使能外部電阻,默認使能內(nèi)部電阻。宏定義DCOR=0x01;
對于輔助時鐘的分頻,設(shè)置BCSCTL1 
/**********************************************************************************/

 
MSP430單片機時鐘模塊提供3個時鐘信號輸出,以供給片內(nèi)各部電路使用。
1-ACLK: 輔助時鐘信號.由圖所示,ACLK是從LFXT1CLK信號由1/2/4/8分頻器分頻后所得到的.由BCSCTL1寄存器設(shè)置DIVA相應為來決定分頻因子.ACLK可用于提供CPU外圍功能模塊作時鐘信號使用.
2-MCLK: 主時鐘信號.由圖所示,MCLK是由3個時鐘源所提供的。他們分別是LFXT1CLK,XT2CLK(F13、F14,如果是F11,F11X1則由LFXT1CLK代替),DCO時鐘源信號提供.MCLK主要用于MCU和相關(guān)系統(tǒng)模塊作時鐘使用。同樣可設(shè)置相關(guān)寄存器來決定分頻因子及相關(guān)的設(shè)置。
3-SMCLK: 子系統(tǒng)時鐘,SMCLK是由2個時鐘源信號所提供.他們分別是XT2CLK(F13、F14)和DCO,如果是F11、F11X1則由LFXT1CLK代替TX2CLK。同樣可設(shè)置相關(guān)寄存器來決定分頻因子及相關(guān)的設(shè)置。
 
 
 
 
DCOCTL DCO控制寄存器
7
6
5
4
3
2
1
0
DCO.2
DCO.1
DCO.0
MOD.4
MOD.3
MOD.2
MOD.1
MOD.0
 
DCO.0-DCO.4 定義8種頻率之一,可以分段調(diào)節(jié)DCOCLK頻率,相鄰兩種頻率相差10%。而頻率由注入直流發(fā)生器的電流定義。
MOD.0-MOD.4 定義在32個DCO周期中插入的Fdco+1周期個數(shù),而在下的DCO周期中為Fdco周期,控制改換DCO和DCO+1選擇的兩種頻率。如果DCO常數(shù)為7,表示已經(jīng)選擇最高頻率,此時不能利用MOD.0-MOD.4進行頻率調(diào)整。
 
 
 
BCSCTL1 基本時鐘系統(tǒng)控制寄存器1
7
6
5
4
3
2
1
0
XT2OFF
TXS
DIVA.1
DIVA.0
XT5V
Rsel.2
Resl.1
Resl.0
 
XT2OFF 控制XT2振蕩器的開啟與關(guān)閉。
TX2OFF=0,XT2振蕩器開啟。
TX2OFF=1,TX2振蕩器關(guān)閉(默認為TX2關(guān)閉)
XTS 控制LFXT1 工作模式,選擇需結(jié)合實際晶體振蕩器連接情況。
XTS=0,LFXT1 工作在低頻模式(默認)。
XTS=1,LFXT1 工作在高頻模式(必須連接有高頻相應的高頻時鐘源)。
DIVA.0 DIVA.1 控制ACLK分頻。
0 不分頻(默認)
1 2分頻
2 4分頻
3 8分頻
XT5V 此位設(shè)置為0。
Resl1.0,Resl1.1,Resl1.2 三位控制某個內(nèi)部電阻以決定標稱頻率。
Resl=0,選擇最低的標稱頻率。
……..
Resl=7,選擇最高的標稱頻率。
BSCCTL2 |= DIVM_x    (x=0,1,2,3)MCLK分頻(x=0,不分頻;x=1,2分頻;x=2,4分頻;x=3,8分頻)
 DIVS_0
BCSCTL2 基本時鐘系統(tǒng)控制寄存器2
7
6
5
4
3
2
1
0
SELM.1
SELM.0
DIVM.1
DIVM.0
SELS
DIVS.1
DIVS.0
DCOR
 
SELM.1 SELM.0 選擇MCLK時鐘源
時鐘源為DCOCLK默認
時鐘源為DCOCLK
時鐘源為LFXT1CLK(對于MSP430F11/12X),時鐘源為XT2CLK(對于MSP430F13/14/15/16X);
時鐘源為LFTXTICLK
DIVM.1 DIVM.0 選擇MCLK分頻
0 1分頻(默認
1 2分頻
2 4 分頻
3 8 分頻
SELS 選擇SMCLK時鐘源
時鐘源為DCOCLK默認
時鐘源為LFXT1CLK(對于MSP430F11/12X),時鐘源為XT2CLK(對于MSP430F13/14/15/16X)。
DIVS.1 DIVS.0 選擇SMCLK分頻。
0 1分頻
1 2分頻
2 4分頻
4 8分頻
DCOR 選擇DCO電阻
內(nèi)部電阻
外部電阻
PUC信號之后,DCOCLK被自動選擇MCLK時鐘信號,根據(jù)需要,MCLK的時鐘源可以另外設(shè)置為LFXT1或者XT2。設(shè)置順序如下:
[1] 復位OscOff
[2] 清除OFIFG
[3] 延時等待至少50us
[4] 再次檢查OFIFG,如果仍然置位,則重復[3][4]步驟,直到OFIFG=0為止。
 
低功耗設(shè)置的技巧問題:
1、LPM4:在振蕩器關(guān)閉模式期間,處理機的所有部件工作停止,此時電流消耗最小。此時只有在系統(tǒng)上電電路檢測到低點電平或任一請求異步響應中斷的外部中斷事件時才會從新工作。因此在設(shè)計上應含有可能需要用到的外部中斷才采用這種模式。否則發(fā)生不可預料的結(jié)果。
2、LPM3:在DC發(fā)生器關(guān)閉期間,只有晶振是活動的。但此時設(shè)置的基本時序條件的DC發(fā)生器的DC電流被關(guān)閉。由于此電路的高阻設(shè)計,使功耗被抑制。注:當從DC關(guān)閉到啟動DC0要花一端時間(ns-us)
 3、LPM2:在此期間,晶鎮(zhèn)振和DC發(fā)生器是工作的,所以可實現(xiàn)快速啟動。
4、LPM1:在此振蕩器已經(jīng)工作,所以不存在啟動時間延時問題。
 
 
 
 
 
Timer_A的寄存器
 
寄存器
縮寫
讀定類型
地址
初態(tài)
 
Timer_A控制寄存器
TACTL
R/W
160H
POR復位
 
Timer_A計數(shù)器
TAR
R/W
170H
POR復位
 
捕撈/比較控制寄存器0
CCTL0
R/W
162H
POR復位
 
捕撈/比較寄存器0
CCR0
R/W
172H
POR復位
 
捕撈/比較控制寄存器1
CCTL1
R/W
164H
POR復位
 
捕撈/比較寄存器1
CCR1
R/W
174H
POR復位
 
捕撈/比較控制寄存器2
CCTL2
R/W
166H
POR復位
 
捕撈/比較寄存器2
CCR2
R/W
176H
POR復位
 
中斷向量寄存器
TAIV
R/W
12EH
POR復位
 
 
 
 
 
TACTL 控制寄存器
15--10
9
8
7
6
5
4
3
2
1
0
未用
SSEL1
SSEL0
ID1
ID0
MC1
MC0
未用
CLR
TAIE
TAIFG
 
SSEL1SSEL0選擇定時器輸入分頻器的時鐘源
  Timer_A時鐘源
SSEL1
SSEL0
輸入時鐘源
說明
0
0
TACLK
用特定的外部引腳信號
0
1
ACLK
輔助時鐘
1
0
SMCLK
子系統(tǒng)時鐘
1
1
INCLK
見器件說明
 
ID1ID0 輸入分頻選擇
00 不分頻
01 2分頻
10 4分頻
11 8分頻
MC1MC0 計數(shù)模式控制位
00 停止模式
01 增計數(shù)模式
10 連續(xù)計數(shù)模式
11 /減計數(shù)模式
CLR 定時器清除位
PORCLR置位時定時器和輸入分頻器復位。CLR由硬件自動復位,其讀出始終為0。定時器在下一個有效輸入沿開始工作。如果不是被清除模式控制暫停,則定時器以增計數(shù)模式開始工作。
TAIE 定時器中斷允許位
禁止定時器溢出中斷
允許定時器溢出中斷
TAIFG 定時器溢出標志位
增計數(shù)模式當定時器由CCR0計數(shù)到到0,TAIFG置位。
連續(xù)計數(shù)模式:當定時器由0FFFFH計數(shù)到0,TAIFG置位。
/減計數(shù)模式:當定時器由CCR0減計數(shù)到0,TAIFG置位。
 
 
 
CCTLx 捕獲/比較控制寄存器
15 14
13 12
11
10
9
8
7 6 5
4
3
2
1
0
CAPTMOD1-0
CCIS1-0
SCS
SCCIx
CAP
OUTMODx
CCIEx
CCIx
OUT
COV
CCIFx
 
 
 
TIMER_A有多個捕獲比較模塊,每個模塊都有自己的控制寄存器CCTLx
CAPTMOD1-0 選擇捕獲模式
00 禁止捕獲模式
01 上升沿捕獲
10 下降沿捕獲
11 上升沿與下降沿都捕獲
CCISI1-0 在捕獲模式中用來定提供捕獲事件的輸入端
00 選擇CCIxA
01 選擇CCIxB
10 選擇GND
11 選擇VCC
SCS 選擇捕獲信號與定時器時鐘同步、異步關(guān)系
異步捕獲
同步捕獲
異步捕獲模式允許在請求時立即將CCIFG置位和捕獲定時器值,適用于捕獲信號的周期遠大于定時器時鐘周期的情況。但是,如果定時器時鐘和捕獲信號發(fā)生時間競爭,則捕獲寄存器的值可能出錯。
在實際中經(jīng)常使用同步捕獲模式,而且捕獲總是有效的。
SSCIx 比較相等信號EQUx將選擇中的捕獲、比較輸入信號CCIx(CCIxA,CCIxB,VccGND)進行鎖存,然后可由SCCIx讀出。
CAP 選擇捕獲模式還是比較模式。
比較模式
捕獲模式
注意:同時捕獲和捕獲模式選擇
如果通過捕獲比較寄存器CCTLx中的CAP使工作模式從比較模式變?yōu)椴东@模式,那么不應同時進行捕獲;否則,在捕獲比較寄存器中的值是不可預料的,推薦的指令順序為:[1]修改控制寄存器,由比較模式換到捕獲模式。
[2]捕獲
OUTMODx 選擇輸出模式
000 輸出
001 置位
010 PWM翻轉(zhuǎn)/復位
011 PWM置位/復位
100 翻轉(zhuǎn)/置位
101 復位
110 PWM翻轉(zhuǎn)/置位
111 PWM復位/置位
 
 
 
 
 
 
 
 
 
 
 
 
 
CCIx 捕獲比較模的輸入信號
捕獲模式:由CCIS0CCIS1選擇的輸入信號通過該位讀出。
比較模式:CCIx復位。
OUT 輸出信號
輸出低電平
輸出高電平
如果OUTMODx選擇輸出模式0(輸出),則該位對應于輸入狀態(tài)。
COV 捕獲溢出標志
輸出低電平
輸出高電平
[1]CAP=0時,選擇比較模式。捕獲信號發(fā)生復位,沒有使COV置位的捕獲事件。
[2]CAP=1時,選擇捕獲模式,如果捕獲寄存器的值被讀出再次發(fā)生捕獲事件,則COV置位。程序可檢測COV來斷定原值讀出前是否又發(fā)生捕獲事件。讀捕獲寄存器時不會使溢出標志復位,須用軟件復位。
CCIFGx 捕獲比較中斷標志
捕獲模式:寄存器CCRx捕獲了定時器TAR值時置位。
比較模式:定時器TAR值等于寄存器CCRx值時置位。
 
#include <msp430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //停止看門狗定時器
P1DIR |= 0x01; // 設(shè)P1.0為輸出
TACTL = TASSEL_1 + MC_2 + TAIE; // ACLK, 定時器A計數(shù)模式,且開中斷功能
_BIS_SR(LPM3_bits + GIE); //進入LPM3 低功耗模式和開總中斷允許
}
// Timer_A3中斷向量(TAIV)處理程序
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV ) //應用switch語句來處理多中斷源的向量
{ //向量列表通過case語句來分多中斷源的入口
case 2: break; // CCR1比較/捕獲寄存器的中斷入口,
//本例子未用到。
case 4: break; // CCR2比較/捕獲寄存器的中斷入口,
微控網(wǎng)為你準備的 MSP430F 單片機入門必修課 //
關(guān)閉窗口
主站蜘蛛池模板: 涩涩视频网站在线观看 | 国产精品性做久久久久久 | 色综合久久天天综合网 | 亚洲精品成人网 | h视频在线观看免费 | 精品欧美激情精品一区 | 国产精品视屏 | 久久亚洲二区 | 曰韩三级| 免费国产一区二区 | 欧美二区在线 | 黄网在线观看 | 91精品国产美女在线观看 | 亚洲高清成人 | 久久成人免费视频 | 在线观看成人 | 久久免费国产 | 亚洲天堂影院 | 9999精品视频 | 操久久 | 91精品国产91久久久久久最新 | 亚洲品质自拍视频 | 国产不卡视频 | 在线免费观看成年人视频 | 99免费视频| 黄色在线免费观看 | 久久久久久艹 | 精品在线一区 | 国产精品成人一区二区 | 男女羞羞视频网站 | 日韩免费网站 | 国产精品黄视频 | 91精品一区二区三区久久久久久 | 欧美一级艳情片免费观看 | 高清一区二区三区 | 国产九九精品视频 | 亚洲一区二区三 | 91影院在线观看 | 久久av网站 | 国产亚洲欧美日韩精品一区二区三区 | 日韩国产在线 |