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

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

msp430設置基本時鐘系統(tǒng)

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

 時鐘信號概述

通過這些基本的時鐘模塊,我們可以得到3個有用的時鐘信號:
[1] ACLK輔助時鐘(Auxillary Clock)
ACLK是LFXT1CLK時鐘源經(jīng)1、2、4、8分頻后得到的。
ACLK可由軟件選擇作為各個外圍模塊的時鐘信號,一般用于低速外設。
[2] MCLK主系統(tǒng)時鐘(Main System Clock)
MCLK可由軟件選擇來自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后經(jīng)1、2、4、8分頻。
MCLK通常用于CPU運行,程序的執(zhí)行和其他使用到高速時鐘的模塊。
[3] SMCLK子系統(tǒng)時鐘(Sub System Clock)
SMCLK可由軟件選擇來自XT2CLK或DCOCLK,然后經(jīng)1、2 、4、8分頻。
SMCLK通常用于高速外圍模塊。
 
實驗目的
設置基本時鐘系統(tǒng)
實驗要求
熟練掌握對MSP430基本時鐘系統(tǒng)的操作和時鐘資源的分配。
實驗內(nèi)容
[1] 了解MSP430F169的時鐘資源。
了解3個時鐘源,低頻震蕩器XT1,高頻震蕩器XT2,數(shù)控震蕩器DCO。
了解3個系統(tǒng)時鐘通道ACLK,MCLK,SMCLK。
ACLK的時鐘源只能來自XT1。
MCLK的時鐘源能來自XT1,XT2,DCO。
SMCLK的時鐘源能來自XT2,DCO。
[2] 啟動震蕩器
了解震蕩器失效標志的含義。
XT1和DCO震蕩器上電即啟動。
XT2震蕩器需要操作XT2OFF 方能啟動
掌握如何查詢失效標志和處理震蕩器失效問題
[3] 分配時鐘資源
上電復位后默認XT2關,ACLK來自XT1,MCLK和SMCLK都來自DCO。
掌握通過對寄存器的操作分配時鐘信號:
設置ACLK來自XT1,MCLK來自XT2,SMCLK來自XT2。
各個時鐘通道的分頻自定。
[4] 時鐘信號的輸出
時鐘信號可以由P5.6、P5.5、P5.4輸出。
需要修改I/O寄存器將管腳設置為輸出和功能腳模式。
實驗注意事項
[1] 檢測震蕩器是否工作,如果震蕩器失效,則會有失效標志產(chǎn)生。在清除了失效標志以后不要立刻
再次去檢查失效標志,最好延遲一段時間再去檢查,因為震蕩器起震需要一段毫秒級的時間。
[2] 注意上電后默認的時鐘分配狀態(tài)
[3] 程序開始要關閉看門狗(默認是開的),使用WDTCTL = WDTPW + WDTHOLD;語句。
 
#ifndef __SETCLOCK_H__
#define __SETCLOCK_H__
/************************************************************
* Basic Clock Module
************************************************************/
#define DCOCTL_ (0x0056) /* DCOCTL的定義 */
//DEFC( DCOCTL , DCOCTL_)
#define BCSCTL1_ (0x0057) /* BCSCTL1的定義 */
//DEFC( BCSCTL1 , BCSCTL1_)
#define BCSCTL2_ (0x0058) /* BCSCTL2的定義 */
//DEFC( BCSCTL2 , BCSCTL2_)
/* DCOCTL的位定義 */
#define MOD0 (0x01) /* Modulation Bit 0 */
#define MOD1 (0x02) /* Modulation Bit 1 */
#define MOD2 (0x04) /* Modulation Bit 2 */
#define MOD3 (0x08) /* Modulation Bit 3 */
#define MOD4 (0x10) /* Modulation Bit 4 */
#define DCO0 (0x20) /* DCO Select Bit 0 */
#define DCO1 (0x40) /* DCO Select Bit 1 */
#define DCO2 (0x80) /* DCO Select Bit 2 */
/* BCSCTL1的位定義 */
#define RSEL0 (0x01) /* Resistor Select Bit 0 */
#define RSEL1 (0x02) /* Resistor Select Bit 1 */
#define RSEL2 (0x04) /* Resistor Select Bit 2 */
#define XT5V (0x08) /* XT5V should always be reset */
#define DIVA0 (0x10) /* ACLK Divider 0 */
#define DIVA1 (0x20) /* ACLK Divider 1 */
#define XTS (0x40) /* LFXTCLK 0:Low Freq. / 1: High Freq. */
#define XT2OFF (0x80) /* Enable XT2CLK */
/* BCSCTL1 的 DIVA 的功能定義 */
#define DIVA_0 (0x00) /* ACLK Divider 0: /1 */
#define DIVA_1 (0x10) /* ACLK Divider 1: /2 */
#define DIVA_2 (0x20) /* ACLK Divider 2: /4 */
#define DIVA_3 (0x30) /* ACLK Divider 3: /8 */
/* BCSCTL2的位定義 */
#define DCOR (0x01) /* Enable External Resistor : 1 */
#define DIVS0 (0x02) /* SMCLK Divider 0 */
#define DIVS1 (0x04) /* SMCLK Divider 1 */
#define SELS (0x08) /* SMCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK */
#define DIVM0 (0x10) /* MCLK Divider 0 */
#define DIVM1 (0x20) /* MCLK Divider 1 */
#define SELM0 (0x40) /* MCLK Source Select 0 */
#define SELM1 (0x80) /* MCLK Source Select 1 */
/* BCSCTL1 的 DIVS 的功能定義 */
#define DIVS_0 (0x00) /* SMCLK Divider 0: /1 */
#define DIVS_1 (0x02) /* SMCLK Divider 1: /2 */
#define DIVS_2 (0x04) /* SMCLK Divider 2: /4 */
#define DIVS_3 (0x06) /* SMCLK Divider 3: /8 */
/* BCSCTL1 的 DIVM 的功能定義 */
#define DIVM_0 (0x00) /* MCLK Divider 0: /1 */
#define DIVM_1 (0x10) /* MCLK Divider 1: /2 */
#define DIVM_2 (0x20) /* MCLK Divider 2: /4 */
#define DIVM_3 (0x30) /* MCLK Divider 3: /8 */
/* BCSCTL1 的 SELM 的功能定義 */
#define SELM_0 (0x00) /* MCLK Source Select 0: DCOCLK */
#define SELM_1 (0x40) /* MCLK Source Select 1: DCOCLK */
#define SELM_2 (0x80) /* MCLK Source Select 2: XT2CLK/LFXTCLK */
#define SELM_3 (0xC0) /* MCLK Source Select 3: LFXTCLK */
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
#include<msp430x14x.h>
#include "BoardConfig.h"
#include "SetClock.h"
// 時鐘設置函數(shù)// 系統(tǒng)時鐘設定
void BCSInit (void)
{
  DCOCTL = 0x60 + 0x00;// DCO設置為 3030KHz
  BCSCTL1 = DIVA_0 + 0x07;// ACLK 為 LFXT1(低頻模式)
  BCSCTL2 = SELM_2 + DIVM_0 + SELS + DIVS_0;// MCLK 為 XT2CLK// SMLCK為XT2CLK
}
 
void DelayMs(unsigned int ms)
{
  unsigned char i;
  while(--ms)
  {
    for(i=110;i>0;--i);
  }
}
void main(void)
{
  unsigned int i;
  BoardConfig(0xb7);
  BCSInit();
  WDTCTL = WDTPW + WDTHOLD; // 停看門狗
  //BCSCTL1 |= XTS; // ACLK = LFXT1 = HF模式
  P2DIR |=0xff;
  do
  {
    IFG1 &= ~OFIFG; // 清除振蕩器失效標志
    for(i = 0Xff;i > 0;i--); // 穩(wěn)定時間
  }while((IFG1 & OFIFG) != 0); // 如果振蕩器失效標志存在
 
 BCSCTL2 &=0x7F;// |= SELM1 + SELM0;
 while(1)
  {
      for(i=0x01;i<0x80;i<<=1)
      {
        P2OUT = ~i;
        DelayMs(100);
      }     
      for(i=0x80;i>0x00;i>>=1)
      {
        P2OUT = ~i;
        DelayMs(100);
      }
      BCSCTL2 |= SELM1 + SELM0; // MCLK = LFXT1  3是時鐘源為LFTXT1CLK
  }   //開機高速運行一個周期后進入低速模式。
}
關閉窗口
主站蜘蛛池模板: 免费在线视频一区二区 | 婷婷精品 | 欧美亚洲一区二区三区 | 国产精彩视频 | 欧美性a视频 | 青春草国产 | 欧美一区二区三区免费在线观看 | 精品一区国产 | 99影视 | 在线视频 亚洲 | 国产精品日韩在线观看一区二区 | 啪啪免费| 国产精品久久777777 | 国产一区二 | 东方伊人免费在线观看 | 国产99久久精品 | 免费在线观看黄色av | 久久丁香| 久久国产一区二区三区 | 亚洲精品福利在线 | 国产一区二区在线视频 | 波多野结衣电影一区 | 亚洲欧美精品在线观看 | 国产一区二区精华 | 免费一区二区 | 免费v片| 欧美最猛黑人xxxx黑人 | www网站在线观看 | 国产激情视频 | 精品一区二区三区四区 | 一级午夜aaa免费看三区 | 91精品国产欧美一区二区成人 | 久久国内 | 亚洲第一天堂无码专区 | 国产精品亚洲第一 | 一区二区三区四区国产 | 精品免费在线 | 人干人操| 国产精品国色综合久久 | 欧美1区 | 国产成人99久久亚洲综合精品 |