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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lpc_syscontrol.c

?? IAR EWARM嵌入式系統編程與實踐光盤源碼
?? C
字號:
// 定義系統初始化API函數
#include "LPC_SysControl.h"

LPC_Syscontrol_Config_t SysConfig;

/******************************************************************************
 * 說明:SYS_Init函數。初始化整個系統,建立 MEMMAP、VPB, 是否允許 PLL 和 MAM
 * 參數:   unsigned long Fosc
 *          unsigned long Fcclk
 *          LPC_SysControl_VPBDiv_t VPBDivider
 *          LPC_SysControl_RemapMode_t RemapMode
 *          unsigned long PortDir0
 *          unsigned long Port0
 *          unsigned long PortDir1
 *          unsigned long Port1
 *
 * 返回值: int
 *          0: 成功
 *          非0:錯誤號
 *****************************************************************************/
int SYS_Init (unsigned long Fosc, unsigned long Fcclk,
                LPC_SysControl_VPBDiv_t VPBDivider,
                LPC_SysControl_RemapMode_t RemapMode,
                unsigned long PortDir0, unsigned long Port0,
                unsigned long PortDir1, unsigned long Port1) {
unsigned long M, P_min, P_max, P, i;
int Pflag = 0, PLLflag = 0;

  // 檢測是否有效
  if ( Fosc<Fosc_MIN || Fosc>Fosc_MAX)
    return 1;
  if ( Fcclk<Fcclk_MIN || Fcclk>Fcclk_MAX)
    return 1;
  if (Fcclk < Fosc)
    return 1;
  else if (Fcclk > Fosc) {
    // 需要時計算 PLL's 值 M 和 P
    M = Fcclk / Fosc;
    P_min = Fcco_MIN / (2*Fcclk) + 1;
    P_max = Fcco_MAX / (2*Fcclk);
    for (i=P_min; i<=P_max; i++) {
      if ((i ==1) || (i==2) ||(i==4) || (i==8)) {
        P=i;
        Pflag = 1;
        break;
      }
    }
    if (!Pflag) return 1;
    PLLflag = 1;
  }
  // 設置全局變量
  SysConfig.Fosc = Fosc;
  SysConfig.Fcclk = Fcclk;
  switch(VPBDivider) {
  case VPBDIV4:
    SysConfig.Fpclk= Fcclk / 4;
    break;
  case VPBDIV1:
    SysConfig.Fpclk= Fcclk;
    break;
  case VPBDIV2:
    SysConfig.Fpclk= Fcclk / 2;
    break;
  default:
    return 1;
  }
  SysConfig.VPBDivider = VPBDivider;
  SysConfig.RemapMode = RemapMode;

  // 鎖相環 PLL
  if (PLLflag) {
    PLLCFG_bit.MSEL = M-1;      // 設置 M 和 P
    switch(P) {
    case 1:
      PLLCFG_bit.PSEL = 0;
      break;
    case 2:
      PLLCFG_bit.PSEL = 0x1;
      break;
    case 4:
      PLLCFG_bit.PSEL = 0x2;
      break;
    case 8:
      PLLCFG_bit.PSEL = 0x3;
      break;
    default:
      return 1;
    }
    PLLCON_bit.PLLE = true;     // 允許 PLL

    // 禁止中斷
    PLLFEED = PLLFEED_DATA1;
    PLLFEED = PLLFEED_DATA2;

    while (!PLLSTAT_bit.PLOCK); // 等待 PLL 鎖定

    PLLCON_bit.PLLC = true;     // 連接 PLL
    PLLFEED = PLLFEED_DATA1;
    PLLFEED = PLLFEED_DATA2;
  }
  else {
    PLLCON_bit.PLLC = false;
    PLLCON_bit.PLLE = false;
    PLLFEED = PLLFEED_DATA1;
    PLLFEED = PLLFEED_DATA2;
  }
  // 高級外圍總線 VPB
  VPBDIV_bit.VPBDIV = VPBDivider;

  // 存儲器映射 MEMAMP
  MEMMAP_bit.MAP = SysConfig.RemapMode;

  // 通用輸入輸出 GPIO
  PINSEL0 = PINSEL1 = 0;
  IO0SET = Port0;
  IO0CLR = ~Port0;
  IO0DIR = PortDir0;
  IO1SET = Port1;
  IO1CLR = ~Port1;
  IO1DIR = PortDir1;
  return 0;
}

/*************************************************************************
 * 說明: SYS_GetFpclk函數,獲得Fpclk值
 * 參數:無
 * 返回值: int
 *          0:成功
 *          非0:錯誤號
 *************************************************************************/
unsigned int SYS_GetFpclk (void) {
  return SysConfig.Fpclk;
}

/*************************************************************************
 * 說明:PM_SetMode函數,設置功率管理模式
 * 參數:LPC_SysControl_PMMode_t Mode -- PM_STANDARD ,PM_IDLE or PM_POWERDOWN
 * 返回值:int
 *         0:成功
 *         非0:錯誤號
 *************************************************************************/
int PM_SetMode (LPC_SysControl_PMMode_t Mode) {
  PCON = Mode & 0x3;
  return 0;
}

/*************************************************************************
 * 說明:PM_OpenPeripheral函數,打開指定外圍
 * 參數:lpc_uint32 DevType
 * 返回值:int
 *         0:成功
 *         非0:錯誤號
 *************************************************************************/
int PM_OpenPeripheral (unsigned int DevType) {
  PCONP |= DevType;
  return 0;
}

/*************************************************************************
 * 說明:PM_ClosePeripheral函數,關閉指定外圍
 * 參數:lpc_uint32 DevType
 * 返回值:int
 *         0:成功
 *         非0:錯誤號
 *************************************************************************/
int PM_ClosePeripheral (unsigned int DevType) {
  PCONP &= (~DevType);
  return 0;
}


/*************************************************************************
 * 說明:EXTINT_Init函數,設置外部中斷
 * 參數: LPC_SysControl_ExtInt_Chanel_t ExtIntNum
 *        bool WakeupEnable
 * 返回值:int
 *         0:成功
 *         非0:錯誤號
 *************************************************************************/
int EXTINT_Init (LPC_SysControl_ExtInt_Chanel_t ExtIntNum,
                 bool WakeupEnable) {
  switch(ExtIntNum) {
  case EXTINT0:
    PINSEL1_bit.P0_16 = 1;  // 分配外部中斷引腳
    EXTINT_bit.EINT0 = 1;   // 清除中斷標志
    if (WakeupEnable)       // 設置喚醒
      EXTWAKE_bit.EXTWAKE0 = 1;
    else
      EXTWAKE_bit.EXTWAKE0 = 0;
    break;
  case EXTINT1:
    PINSEL0_bit.P0_14 = 1;   // 分配外部中斷引腳
    EXTINT_bit.EINT1 = 1;    // 清除中斷標志
    if (WakeupEnable)        // 設置喚醒
      EXTWAKE_bit.EXTWAKE1 = 1;
    else
      EXTWAKE_bit.EXTWAKE1 = 0;
    break;
  case EXTINT2:
    PINSEL0_bit.P0_15 = 1;   // 分配外部中斷引腳
    EXTINT_bit.EINT2 = 1;    // 清除中斷標志
    if (WakeupEnable)        // 設置喚醒
      EXTWAKE_bit.EXTWAKE2 = 1;
    else
      EXTWAKE_bit.EXTWAKE2 = 0;
    break;
  default:
    return 1;
  }
  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久疯狂做爰流白浆xx| 91精品免费观看| 欧美日韩国产天堂| 久久久三级国产网站| 亚洲黄色性网站| 久久精品国产网站| 在线观看一区不卡| 国产精品视频第一区| 另类综合日韩欧美亚洲| 99精品久久99久久久久| 精品国产1区二区| 亚洲图片欧美一区| 99精品视频在线播放观看| 日韩欧美一区二区视频| 夜夜嗨av一区二区三区中文字幕 | 日韩一区二区视频| 亚洲天天做日日做天天谢日日欢| 精品一区二区三区av| 欧美日韩免费视频| 亚洲精品国产成人久久av盗摄| 国产成人免费视频网站| 欧美一级黄色录像| 日产欧产美韩系列久久99| 日本高清成人免费播放| 国产精品视频第一区| 国产成人在线视频网址| 日韩欧美资源站| 天堂成人国产精品一区| 欧美人体做爰大胆视频| 亚洲一区二区三区不卡国产欧美| 99久久久国产精品| 国产精品国产三级国产aⅴ中文| 精品一区二区成人精品| 欧美一级久久久| 美女免费视频一区| 精品欧美一区二区三区精品久久 | 在线视频综合导航| 亚洲另类一区二区| 在线视频你懂得一区二区三区| 欧美韩国一区二区| 成人av影视在线观看| 中文字幕第一区二区| 成人激情av网| 亚洲欧美二区三区| 色噜噜夜夜夜综合网| 亚洲男女一区二区三区| 欧美性做爰猛烈叫床潮| 亚洲国产精品人人做人人爽| 欧美日韩www| 日日欢夜夜爽一区| 欧美不卡一区二区三区四区| 黄色资源网久久资源365| 久久综合精品国产一区二区三区| 国产精品一区二区久久不卡| 欧美国产综合一区二区| 91在线码无精品| 午夜不卡av免费| 精品久久久三级丝袜| 国产aⅴ综合色| 亚洲婷婷国产精品电影人久久| 欧美在线免费视屏| 美女视频第一区二区三区免费观看网站| 日韩免费高清电影| 成人性视频网站| 亚洲乱码精品一二三四区日韩在线| 91麻豆免费看| 日韩影院精彩在线| 久久久久久久久久久电影| 97精品电影院| 日本欧美韩国一区三区| 国产色91在线| 欧美精品一二三区| 成人一二三区视频| 日韩成人一级片| 国产精品久久久久久久裸模| 欧美伦理电影网| 成人免费三级在线| 男女男精品网站| 中文字幕一区不卡| 欧美tk丨vk视频| 色婷婷av一区| 国产精一品亚洲二区在线视频| 洋洋成人永久网站入口| 久久久亚洲国产美女国产盗摄| 91高清在线观看| 国产乱子伦一区二区三区国色天香| 亚洲六月丁香色婷婷综合久久| 日韩精品专区在线| 欧美中文字幕一区二区三区亚洲 | 国产成人综合精品三级| 亚洲一区二区精品3399| 国产欧美日韩另类一区| 欧美一级黄色录像| 在线观看亚洲a| 91网站最新地址| 国产精品一区免费在线观看| 首页国产欧美日韩丝袜| 亚洲精品乱码久久久久久黑人 | 色综合天天综合网国产成人综合天| 成熟亚洲日本毛茸茸凸凹| 亚洲妇熟xx妇色黄| 亚洲天堂久久久久久久| 国产清纯白嫩初高生在线观看91| 91精品国产综合久久久蜜臀图片| 色综合久久中文字幕综合网| 国产酒店精品激情| 久久9热精品视频| 亚洲成av人影院在线观看网| ...av二区三区久久精品| 国产欧美一区二区精品忘忧草| 日韩一区二区在线观看| 51久久夜色精品国产麻豆| 欧美性受极品xxxx喷水| 在线免费观看日本欧美| 色哟哟精品一区| 一本大道久久a久久精二百| 成人国产一区二区三区精品| 国产一区二区三区黄视频| 久久国内精品视频| 狠狠色丁香婷婷综合| 韩国v欧美v亚洲v日本v| 国产一区二区中文字幕| 韩国理伦片一区二区三区在线播放| 日韩成人伦理电影在线观看| 天天色 色综合| 日本va欧美va瓶| 美国三级日本三级久久99| 精品一区二区三区在线观看国产 | 欧美精品vⅰdeose4hd| 欧美日本国产视频| 欧美一区二区美女| 精品日本一线二线三线不卡| 久久免费美女视频| 国产精品色婷婷| 亚洲精品水蜜桃| 亚洲国产日韩综合久久精品| 亚洲mv在线观看| 全部av―极品视觉盛宴亚洲| 激情综合色丁香一区二区| 国产成人日日夜夜| 99久久精品一区| 欧美另类久久久品| 精品国产91久久久久久久妲己| 久久久美女艺术照精彩视频福利播放| 国产亚洲欧洲997久久综合| 国产精品久久777777| 亚洲永久免费av| 精品一区二区三区免费播放 | 一本高清dvd不卡在线观看 | 蜜桃av一区二区| 久久精品国产精品青草| 成人午夜在线播放| 欧美日韩中文精品| 精品国产一区二区三区久久影院| 国产精品女人毛片| 午夜欧美视频在线观看| 国产黑丝在线一区二区三区| 色噜噜夜夜夜综合网| 精品奇米国产一区二区三区| 亚洲天天做日日做天天谢日日欢 | 蜜芽一区二区三区| 成人黄色软件下载| 91精品蜜臀在线一区尤物| 国产精品人妖ts系列视频| 亚洲成在线观看| 成人美女在线视频| 欧美一级午夜免费电影| 国产精品盗摄一区二区三区| 琪琪久久久久日韩精品| 99视频在线精品| 日韩精品最新网址| 一区av在线播放| 国产风韵犹存在线视精品| 91精品久久久久久久久99蜜臂| 欧美激情一二三区| 麻豆成人免费电影| 欧美影院精品一区| 国产精品国产精品国产专区不片| 青娱乐精品视频| 欧美日韩免费电影| 亚洲激情自拍视频| www.欧美色图| 国产肉丝袜一区二区| 麻豆精品精品国产自在97香蕉| 欧美视频一区二区在线观看| 日韩伦理免费电影| 成人黄动漫网站免费app| 国产午夜精品一区二区三区四区| 美女一区二区三区在线观看| 欧美性生交片4| 夜夜嗨av一区二区三区中文字幕 | 欧美三级中文字幕| 一区二区三区精品视频在线| 99久久精品一区二区| 国产精品入口麻豆原神| 成人美女视频在线观看18| 亚洲国产精品二十页| 国产成人夜色高潮福利影视| 久久蜜桃香蕉精品一区二区三区| 美女网站在线免费欧美精品|