亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sysinit.c

?? Cortex-M4+example
?? C
字號:
//-------------------------------------------------------------------------*
// 文件名:sysinit.c                                                        *
// 說  明: 系統(tǒng)配置文件                                                    *
//-------------------------------------------------------------------------*

#include "sysinit.h"	//頭文件

//全局變量聲明
int core_clk_khz;
int core_clk_mhz;
int periph_clk_khz;

//-------------------------------------------------------------------------*
//函數(shù)名: sysinit                                                          *
//功  能: 系統(tǒng)設(shè)置                                                         * 
//參  數(shù): 無						  	           *	
//返  回: 無                                                               *
//說  明: 無                                                               *
//-------------------------------------------------------------------------*
void sysinit (void)
{
    //使能IO端口時鐘    
    SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
                              | SIM_SCGC5_PORTB_MASK
                              | SIM_SCGC5_PORTC_MASK
                              | SIM_SCGC5_PORTD_MASK
                              | SIM_SCGC5_PORTE_MASK );

    //開啟系統(tǒng)時鐘
    core_clk_mhz = pll_init(CORE_CLK_MHZ, REF_CLK);
    //通過pll_init函數(shù)的返回值來計算內(nèi)核時鐘和外設(shè)時鐘
    core_clk_khz = core_clk_mhz * 1000;
    periph_clk_khz = core_clk_khz / (((SIM_CLKDIV1 & SIM_CLKDIV1_OUTDIV2_MASK) >> 24)+ 1);
    //使能跟蹤時鐘,用于調(diào)試
    trace_clk_init();	
    //FlexBus時鐘初始化
    fb_clk_init();

}

//-------------------------------------------------------------------------*
//函數(shù)名: trace_clk_init                                                   *
//功  能: 跟蹤時鐘初始化                                                   * 
//參  數(shù): 無							  	   *	
//返  回: 無                                                               *
//說  明: 用于調(diào)試                                                         *
//-------------------------------------------------------------------------*
void trace_clk_init(void)
{
    //設(shè)置跟蹤時鐘為內(nèi)核時鐘
    SIM_SOPT2 |= SIM_SOPT2_TRACECLKSEL_MASK;	
    //在PTA6引腳上使能TRACE_CLKOU功能
    PORTA_PCR6 = ( PORT_PCR_MUX(0x7));
}

//-------------------------------------------------------------------------*
//函數(shù)名: fb_clk_init                                                      *
//功  能: FlexBus時鐘初始化                                                * 
//參  數(shù): 無								   *	
//返  回: 無                                                               *
//說  明:                                                                  *
//-------------------------------------------------------------------------*
void fb_clk_init(void)
{
    //使能FlexBus模塊時鐘
    SIM_SCGC7 |= SIM_SCGC7_FLEXBUS_MASK;
    //在PTA6引腳上使能FB_CLKOUT功能
    PORTC_PCR3 = ( PORT_PCR_MUX(0x5));
}

//-------------------------------------------------------------------------*
//函數(shù)名: pll_init                                                         *
//功  能: pll初始化                                                        * 
//參  數(shù): clk_option:時鐘選項						   * 
//		  crystal_val:時鐘值                                       *	
//返  回: 時鐘頻率值                                                       *
//說  明:                                                                  *
//-------------------------------------------------------------------------*
unsigned char pll_init(unsigned char clk_option, unsigned char crystal_val)
{
    unsigned char pll_freq;
    
    if (clk_option > 3) {return 0;}   //如果沒有選擇可用的選項則返回0
    if (crystal_val > 15) {return 1;} // 如果如果可用的晶體選項不可用則返回1
    
    //這里處在默認的FEI模式
    //首先移動到FBE模式
    #if (defined(K60_CLK) || defined(ASB817))
             MCG_C2 = 0;
    #else
             //使能外部晶振
             MCG_C2 = MCG_C2_RANGE(2) | MCG_C2_HGO_MASK | MCG_C2_EREFS_MASK;
    #endif
    
    //初始化晶振后釋放鎖定狀態(tài)的振蕩器和GPIO
    SIM_SCGC4 |= SIM_SCGC4_LLWU_MASK;
    LLWU_CS |= LLWU_CS_ACKISO_MASK;
    
    //選擇外部晶振,參考分頻器,清IREFS來啟動外部晶振
    MCG_C1 = MCG_C1_CLKS(2) | MCG_C1_FRDIV(3);
    
    //等待晶振穩(wěn)定	
    #if (!defined(K60_CLK) && !defined(ASB817))
    while (!(MCG_S & MCG_S_OSCINIT_MASK)){};  
    #endif
    
    //等待參考時鐘狀態(tài)位清零,即指明FLL時鐘源來自外部
    while (MCG_S & MCG_S_IREFST_MASK){}; 
    //等待時鐘狀態(tài)位顯示時鐘源來自外部參考時鐘
    while (((MCG_S & MCG_S_CLKST_MASK) >> MCG_S_CLKST_SHIFT) != 0x2){}; 
    
    //進入FBE模式
    #if (defined(K60_CLK))
    MCG_C5 = MCG_C5_PRDIV(0x18);
    #else
    
    //配置PLL分頻器來匹配所用的晶振
    MCG_C5 = MCG_C5_PRDIV(crystal_val); 
    #endif
    
    //確保MCG_C6處于復(fù)位狀態(tài),禁止LOLIE、PLL、和時鐘控制器,清PLL VCO分頻器
    MCG_C6 = 0x0;
    //選擇PLL VCO分頻器,系統(tǒng)時鐘分頻器取決于時鐘選項
    switch (clk_option) {
    case 0:
      //設(shè)置系統(tǒng)分頻器
      //MCG=PLL, core = MCG, bus = MCG, FlexBus = MCG, Flash clock= MCG/2
      set_sys_dividers(0,0,0,1);
      //設(shè)置VCO分頻器,使能PLL為50MHz, LOLIE=0, PLLS=1, CME=0, VDIV=1
      MCG_C6 = MCG_C6_PLLS_MASK | MCG_C6_VDIV(1); //VDIV = 1 (x25)
      pll_freq = 50;
      break;
    case 1:
      //設(shè)置系統(tǒng)分頻器
      //MCG=PLL, core = MCG, bus = MCG/2, FlexBus = MCG/2, Flash clock= MCG/4
      set_sys_dividers(0,1,1,3);
      //設(shè)置VCO分頻器,使能PLL為100MHz, LOLIE=0, PLLS=1, CME=0, VDIV=26
      MCG_C6 = MCG_C6_PLLS_MASK | MCG_C6_VDIV(26); //VDIV = 26 (x50)
      pll_freq = 100;
      break;
    case 2:
      //設(shè)置系統(tǒng)分頻器
      //MCG=PLL, core = MCG, bus = MCG/2, FlexBus = MCG/2, Flash clock= MCG/4
      set_sys_dividers(0,1,1,3);
      //設(shè)置VCO分頻器,使能PLL為96MHz, LOLIE=0, PLLS=1, CME=0, VDIV=24
      MCG_C6 = MCG_C6_PLLS_MASK | MCG_C6_VDIV(24); //VDIV = 24 (x48)
      pll_freq = 96;
      break;
    case 3:
      //設(shè)置系統(tǒng)分頻器
      //MCG=PLL, core = MCG, bus = MCG, FlexBus = MCG, Flash clock= MCG/2
      set_sys_dividers(0,0,0,1);
      //設(shè)置VCO分頻器,使能PLL為48MHz, LOLIE=0, PLLS=1, CME=0, VDIV=0
      MCG_C6 = MCG_C6_PLLS_MASK; //VDIV = 0 (x24)
      pll_freq = 48;
      break;
    }
    while (!(MCG_S & MCG_S_PLLST_MASK)){}; // wait for PLL status bit to set
    
    while (!(MCG_S & MCG_S_LOCK_MASK)){}; // Wait for LOCK bit to set
    
    //進入PBE模式
    
    //通過清零CLKS位來進入PEE模式
    // CLKS=0, FRDIV=3, IREFS=0, IRCLKEN=0, IREFSTEN=0
    MCG_C1 &= ~MCG_C1_CLKS_MASK;
    
    //等待時鐘狀態(tài)位更新
    while (((MCG_S & MCG_S_CLKST_MASK) >> MCG_S_CLKST_SHIFT) != 0x3){};
    
    //開始進入PEE模式
    
    return pll_freq;
}

//-------------------------------------------------------------------------*
//函數(shù)名: set_sys_dividers                                                 *
//功  能: 設(shè)置系系統(tǒng)分頻器                                                 * 
//參  數(shù): 預(yù)分頻值   							   *	
//返  回: 無                                                               *
//說  明: 此函數(shù)必須放在RAM里執(zhí)行,否則會產(chǎn)生錯誤e2448。當FLASH時鐘分頻改變* 
//        時,必須禁止FLASH的預(yù)取功能。在時鐘分頻改變之后,必須延時一小段時*
//	 間才可以從新使能預(yù)取功能。                                        * 
//-------------------------------------------------------------------------*
__ramfunc void set_sys_dividers(uint32 outdiv1, uint32 outdiv2, uint32 outdiv3, uint32 outdiv4)
{
    uint32 temp_reg;
    uint8 i;
    //保存FMC_PFAPR當前的值
    temp_reg = FMC_PFAPR;
    
    //通過M&PFD置位M0PFD來禁止預(yù)取功能
    FMC_PFAPR |= FMC_PFAPR_M7PFD_MASK | FMC_PFAPR_M6PFD_MASK | FMC_PFAPR_M5PFD_MASK
                     | FMC_PFAPR_M4PFD_MASK | FMC_PFAPR_M3PFD_MASK | FMC_PFAPR_M2PFD_MASK
                     | FMC_PFAPR_M1PFD_MASK | FMC_PFAPR_M0PFD_MASK;
    
    //給時鐘分頻器設(shè)置期望值  
    SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1(outdiv1) | SIM_CLKDIV1_OUTDIV2(outdiv2) 
                      | SIM_CLKDIV1_OUTDIV3(outdiv3) | SIM_CLKDIV1_OUTDIV4(outdiv4);
    
    //等待分頻器改變
    for (i = 0 ; i < outdiv4 ; i++)
    {}
    
    //從新存FMC_PFAPR的原始值
    FMC_PFAPR = temp_reg; 
    
    return;
}






?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内欧美视频一区二区 | 国产精品看片你懂得| 亚洲人成在线观看一区二区| 婷婷丁香激情综合| av亚洲精华国产精华精| 91精品国产入口在线| 亚洲欧美偷拍卡通变态| 国产成人免费在线观看| 日韩精品一区二区三区视频播放| 麻豆成人免费电影| 国产精品久久久久婷婷| 成人高清免费在线播放| 亚洲高清免费在线| 亚洲精品一线二线三线无人区| 免费成人小视频| 2021久久国产精品不只是精品| 成人午夜在线免费| 亚洲欧洲制服丝袜| 国产亚洲欧美色| 日产欧产美韩系列久久99| 欧美性猛片xxxx免费看久爱 | 免费国产亚洲视频| 欧美精品丝袜久久久中文字幕| 中文字幕亚洲在| 懂色av噜噜一区二区三区av| 日韩三级av在线播放| 亚洲一区二区三区三| 在线观看欧美日本| 一区二区三区国产豹纹内裤在线 | 精品一区二区三区视频| 欧美一区二区在线观看| 日韩成人一级片| 日韩欧美中文一区二区| 蜜臀精品一区二区三区在线观看| 制服丝袜国产精品| 麻豆久久久久久久| 久久综合视频网| 激情小说欧美图片| 亚洲国产精品传媒在线观看| 成人黄动漫网站免费app| 国产精品高潮呻吟| 色八戒一区二区三区| 亚洲电影激情视频网站| 欧美一三区三区四区免费在线看| 日本午夜精品视频在线观看| 欧美一级欧美一级在线播放| 另类欧美日韩国产在线| 欧美大片免费久久精品三p| 狠狠色丁香九九婷婷综合五月| 精品处破学生在线二十三| 高清国产一区二区| 亚洲欧洲日产国码二区| 欧美日韩黄色影视| 激情小说欧美图片| 亚洲人成7777| 日韩一区和二区| 国产成人精品免费在线| 亚洲午夜精品久久久久久久久| 欧美一区2区视频在线观看| 国产成人免费高清| 樱花影视一区二区| 日韩一区二区三区av| 国产69精品久久99不卡| 亚洲一卡二卡三卡四卡| 精品国产a毛片| 一本高清dvd不卡在线观看| 日本sm残虐另类| 中文字幕精品—区二区四季| 欧美日韩国产高清一区二区三区| 国产在线精品一区二区夜色 | 99在线精品观看| 午夜久久久影院| 国产拍揄自揄精品视频麻豆| 欧洲生活片亚洲生活在线观看| 精品一区二区日韩| 亚洲另类一区二区| 久久一二三国产| 欧美性色黄大片| 成人激情视频网站| 蜜臀久久久99精品久久久久久| 亚洲人成在线观看一区二区| 精品少妇一区二区| 在线精品视频免费播放| 国产91丝袜在线观看| 强制捆绑调教一区二区| 亚洲色欲色欲www| 久久精品亚洲精品国产欧美| 欧美精选午夜久久久乱码6080| av在线这里只有精品| 韩国女主播一区| 日本欧美一区二区三区乱码| 亚洲日本丝袜连裤袜办公室| 久久人人97超碰com| 欧美高清视频一二三区| 色婷婷综合在线| 99精品视频在线免费观看| 国产专区综合网| 久久精品国产久精国产| 日韩激情视频在线观看| 亚洲一级片在线观看| 亚洲免费在线电影| 成人欧美一区二区三区| 国产精品国产自产拍高清av王其| 久久久精品黄色| 26uuu国产在线精品一区二区| 欧美三级视频在线播放| 欧美亚洲动漫另类| 欧美综合一区二区| 欧美综合视频在线观看| 日本韩国精品在线| 一本大道av一区二区在线播放| 国产91在线看| 99久久99久久免费精品蜜臀| 成人国产视频在线观看| 97久久精品人人做人人爽50路| 成人毛片视频在线观看| 91在线精品一区二区三区| 99精品视频在线播放观看| 色激情天天射综合网| 欧美日韩亚洲综合在线| 欧美一区三区四区| 欧美精品一区二区久久久| www一区二区| 欧美激情一区三区| 成人欧美一区二区三区黑人麻豆| 日韩理论电影院| 亚洲成av人影院| 免费在线看一区| 国内精品嫩模私拍在线| 成人综合在线观看| 欧洲人成人精品| 日韩欧美国产一区在线观看| 精品国产在天天线2019| 国产精品伦一区二区三级视频| 亚洲欧美一区二区三区久本道91| 亚洲与欧洲av电影| 麻豆国产一区二区| 成人一级片网址| 欧美色网站导航| 26uuu另类欧美亚洲曰本| 中文字幕中文字幕中文字幕亚洲无线| 国产精品久久久久影视| 亚洲一级在线观看| 国产精品综合二区| 欧美艳星brazzers| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品影视网| 91免费看`日韩一区二区| 欧美日韩色一区| 久久精品免视看| 夜夜嗨av一区二区三区| 精品在线播放免费| 91麻豆产精品久久久久久| 日韩亚洲欧美高清| 1区2区3区欧美| 捆绑紧缚一区二区三区视频| 成人av网址在线观看| 欧美日韩一区二区三区四区| www国产成人| 亚洲成人av电影| 91伊人久久大香线蕉| 日韩女优视频免费观看| 亚洲精品国产精华液| 国产麻豆视频精品| 5858s免费视频成人| 国产精品久久久久久久久图文区 | 日韩一区二区中文字幕| 中文字幕一区二区不卡| 九一久久久久久| 欧美日韩第一区日日骚| 中文字幕亚洲在| 丰满亚洲少妇av| 日韩精品一区二区三区三区免费| 亚洲美女偷拍久久| 高清国产一区二区| 精品日韩欧美在线| 日本少妇一区二区| 欧美精品少妇一区二区三区| 亚洲国产精品激情在线观看| 精品在线免费观看| 欧美成人a∨高清免费观看| 天堂影院一区二区| 欧美色男人天堂| 亚洲精品v日韩精品| eeuss鲁片一区二区三区| 国产亚洲一区二区三区| 久久疯狂做爰流白浆xx| 欧美高清视频不卡网| 一卡二卡三卡日韩欧美| 不卡的av中国片| 国产精品乱码一区二三区小蝌蚪| 国产精品的网站| 国产片一区二区三区| 日韩精品一区二区三区swag| 色综合视频在线观看| 国产精品看片你懂得| 高清av一区二区| 亚洲国产精品99久久久久久久久| 精品一区二区在线看| 日韩美女视频在线|