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

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

?? orionpll.c

?? 數碼投影儀控制項目
?? C
字號:
//=============================================================================
// Filename:     orionpll.c
//
// Description:  Code for setup of PLLs
//
// Copyright (C) 2000 - 2002 Texas Instruments Incorporated
//
//============================================================================


static volatile unsigned long* const clkm_stop_reg       
                                           = (unsigned long*)0xffff2f00;
static volatile unsigned long* const clkm_dsp_reg        
                                           = (unsigned long*)0xffff2f04;
static volatile unsigned long* const clkm_wakeup_reg     
                                           = (unsigned long*)0xffff2f08;
static volatile unsigned long* const clkm_low_power_reg  
                                           = (unsigned long*)0xffff2f1c;

/* clkm_stop_reg */
/* clkm_wakeup_reg */
#define CLKM_STOP_SPI      0x0800
#define CLKM_STOP_I2C      0x0400

/* clkm_dsp_reg */
#define CLKM_DSP_PLL_RSN     (0x01 << 7)
/* 
 * really PLL mode 
 * CLKM_DSP_PLL_NDIV = '0' ==> DIV mode
 * CLKM_DSP_PLL_NDIV = '1' ==> PLL mode
 */
#define CLKM_DSP_PLL_NDIV    (0x01 << 6)
#define CLKM_DSP_PLL_ONOFF   (0x01 << 5)
#define CLKM_DSP_PLL_MUL3     (0x18)   

/* clkm_lowpower_reg */
#define CLKM_NORMAL_MODE      0x00


/*
 * ARM PLL stuff
 */
static volatile unsigned long* const arm_pll_reg = (unsigned long*)0xffff3200;

#define PLL_MUL(n)    ((n)<<12)
#define PLL_DIV       0x0800
#define PLL_DIV_1     0x0000
#define PLL_COUNT(n)  ((n)<<3)
#define PLL_ON        0x0004
#define PLL_NDIV      0x0002
#define PLL_NDIV_DIV  0x0000
#define PLL_NDIV_PLL  0x0002

#define PLL_COUNT_MASK 0x07f8     
#define PLL_MUL_MASK   0xf000


static unsigned long sw_wait_loop(volatile unsigned long ctr)
{
    unsigned long i = 0;
    while(ctr-- ) {
        i++;
    }
    return(i);
}


/*
 * this main procedure sketches the following scenario.
 * we want to stop clock for modules not used by the application
 *    - i2c
 *    - spi
 *
 * we want to multiply by 2 the input clock frequency for the ARM sub-system
 * and by 4 the DSP clock .
 * we download code from the ARM to the API ram, then let the DSP sub-system go
 */
void pll_init(unsigned long ARM_Freq, unsigned long DSP_Freq)
{
    unsigned long pll_value;
    unsigned long arm_pll_value;

    *clkm_stop_reg   = CLKM_STOP_I2C | CLKM_STOP_SPI;
    *clkm_wakeup_reg = CLKM_STOP_I2C | CLKM_STOP_SPI;

    /* First put the ARM into N DIVIDE MODE                           */ 
    /* This will allow to change Frequency if PLL was already Enabled */ 
    arm_pll_value = *arm_pll_reg;
    arm_pll_value &= ~(PLL_NDIV);  
    arm_pll_value &= ~(PLL_MUL_MASK);   
    *arm_pll_reg &= arm_pll_value;                           
       
    sw_wait_loop( 0x10000 );  
                             
    /* Fit User Frequency to Closest Mapping */
    /*                                       */
    /* ODD 12.5 MHZ        25mhz   INCLK     */
    /* 1    3.125          6.25              */
    /* 3    9.375         18.75              */
    /* 5    15.625        31.25              */
    /* 7    21.875        43.75              */
    /* 9    28.125        56.25              */
    /*11    34.375                           */
    /*13    40.625                           */
    /*15    46.875                           */   
    /* EVEN 12.5 MHZ        25mhz  INCLK     */
    /* 0    6.25          12.5               */
    /* 2    18.75         37.5               */
    /* 4    31.25                            */
    /* 6    43.75                            */
    /* 8    56.25                            */
    /*10                                     */
    /*12                                     */
    /*14                                     */
    /* INTEGER                               */
    /* 1    12.5          25                 */
    /* 2    25.00         50                 */
    /* 3    37.5                             */ 
    /* 4    50                               */
                             
    if(( ARM_Freq >45 ) && (ARM_Freq <= 50)) {  /* 50 Mhz */
        *arm_pll_reg = PLL_MUL(1) | PLL_DIV_1 | PLL_COUNT(0x10) |
                       PLL_ON | PLL_NDIV_DIV;        
    }
    else if(( ARM_Freq >40 ) && (ARM_Freq <= 45)) { /* 43.75 Mhz */
        *arm_pll_reg = PLL_MUL(7) | PLL_DIV | PLL_COUNT(0x10) | 
                       PLL_ON | PLL_NDIV_DIV;
    }  
    else if(( ARM_Freq >35 ) && (ARM_Freq <= 40)) { /* 37.5 Mhz */
        *arm_pll_reg = PLL_MUL(2) | PLL_DIV | PLL_COUNT(0x10) | 
                       PLL_ON | PLL_NDIV_DIV;
    }
    else if(( ARM_Freq >30 ) && (ARM_Freq <= 35)) { /* 31.25 Mhz */
            *arm_pll_reg = PLL_MUL(5) | PLL_DIV | PLL_COUNT(0x10) | 
                           PLL_ON | PLL_NDIV_DIV;
    }
    else if(( ARM_Freq >20 ) && (ARM_Freq <= 30)) { /* 25.00 Mhz */
            *arm_pll_reg = PLL_MUL(0) | PLL_DIV_1 | PLL_COUNT(0x10) |
                           PLL_ON | PLL_NDIV_DIV;        
      
        }
    else if(( ARM_Freq >15 ) && (ARM_Freq <= 20)) { /* 18.75 Mhz */
        *arm_pll_reg = PLL_MUL(3) | PLL_DIV | PLL_COUNT(0x10) | 
                       PLL_ON | PLL_NDIV_DIV;
    } 
    else if(( ARM_Freq >10 ) && (ARM_Freq <= 15)) { /* 12.5 Mhz */
            *arm_pll_reg = PLL_MUL(0) | PLL_DIV | PLL_COUNT(0x10) | 
                           PLL_ON | PLL_NDIV_DIV;
    }
    else if( ARM_Freq <=10 ) {    /* 6.25 Mhz */
        *arm_pll_reg = PLL_MUL(1) | PLL_DIV | PLL_COUNT(0x10) | 
                       PLL_ON | PLL_NDIV_DIV;
    }
  
    *clkm_dsp_reg |= (CLKM_DSP_PLL_ONOFF | (CLKM_DSP_PLL_MUL3) );
 
    /* now switches the PLL mode */
    *arm_pll_reg |= PLL_NDIV_PLL;
    do {
        pll_value = (*arm_pll_reg ) & PLL_COUNT_MASK;
    }
    while (pll_value != 0x000);   
   
    /* we can check that the PLL is in PLL mode */
    if ((*arm_pll_reg & 0x01) != 0x01) {
        /* abnormal situation, PLL should be in PLL mode .. */
        while(1);
    }

    /* 
     * now it is time to tell the clock module to switch from test mode
     * to normal mode
     */
    *clkm_low_power_reg = CLKM_NORMAL_MODE;

    /* now the ARM sub-system should have a clock with twice */
    /* input reference clock frequency                       */
   
    /* 
     * by this time the DSP PLL should also have lock since it is the same 
     * PLL as the ARM sub-system PLL switch from DIV mode to PLL mode 
     * and then release DSP PLL from reset 
     */
    *clkm_dsp_reg  |= CLKM_DSP_PLL_NDIV;
    *clkm_dsp_reg  |= CLKM_DSP_PLL_RSN;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲影视婷婷| 国产不卡高清在线观看视频| 欧美自拍偷拍一区| 亚洲永久免费视频| 欧美三级电影一区| 免费人成精品欧美精品| 日韩视频免费观看高清在线视频| 卡一卡二国产精品| 久久久久久久精| 99久久免费国产| 亚洲成人av免费| 亚洲精品在线观| 成人免费视频国产在线观看| 亚洲欧美一区二区三区国产精品| 欧美日韩另类一区| 国产一区二区视频在线| 国产精品电影一区二区| 欧美系列在线观看| 激情伊人五月天久久综合| 欧美高清在线一区| 欧美日韩黄视频| 国产成人丝袜美腿| 亚洲午夜精品网| 久久久www免费人成精品| 91日韩一区二区三区| 日本v片在线高清不卡在线观看| 久久九九久精品国产免费直播| 91美女片黄在线| 久久99精品国产91久久来源| 国产精品白丝在线| 欧美一二三区在线| 97久久超碰国产精品| 青青草成人在线观看| 亚洲色图欧美激情| 久久久久久一二三区| 欧美日韩免费高清一区色橹橹| 国产精品白丝jk白祙喷水网站| 亚洲精品成人在线| 久久精品夜色噜噜亚洲a∨| 91老师国产黑色丝袜在线| 久久成人羞羞网站| 午夜免费欧美电影| 国产精品三级视频| 精品国产污污免费网站入口| 在线观看亚洲成人| 99久久国产综合精品女不卡| 久久99精品网久久| 性做久久久久久免费观看欧美| 亚洲国产精品黑人久久久| 日韩一区二区三区视频在线| 在线观看日韩一区| 成人va在线观看| 韩日欧美一区二区三区| 日韩精品91亚洲二区在线观看 | 欧美久久久久久久久| 国产成人av电影免费在线观看| 日韩精品电影在线| 亚洲国产综合视频在线观看| 一区二区中文视频| 久久久精品tv| 久久久美女艺术照精彩视频福利播放| 7777精品伊人久久久大香线蕉完整版 | 久久久天堂av| 欧美一级一级性生活免费录像| 欧洲生活片亚洲生活在线观看| 99久久久久免费精品国产| 粉嫩蜜臀av国产精品网站| 国产乱子轮精品视频| 国内成人自拍视频| 捆绑紧缚一区二区三区视频 | 国产一区二区导航在线播放| 三级影片在线观看欧美日韩一区二区| 亚洲欧美日韩国产成人精品影院 | 亚洲日本护士毛茸茸| 国产丝袜在线精品| 久久婷婷国产综合精品青草| 久久免费看少妇高潮| 久久久三级国产网站| 国产人久久人人人人爽| 国产亚洲欧美色| 欧美国产日韩a欧美在线观看| 国产日韩欧美高清在线| 国产女主播在线一区二区| 国产精品久久久久久亚洲伦| 国产精品久久久久久久久免费桃花 | 久久精品无码一区二区三区| 日韩精品中文字幕一区二区三区| 日韩欧美视频在线| 亚洲精品一区二区三区福利| 久久免费偷拍视频| 中文字幕在线不卡一区| 亚洲精品欧美综合四区| 亚洲国产一区二区三区青草影视| 三级一区在线视频先锋 | 欧美日韩大陆在线| 欧美二区三区91| 欧美成人女星排行榜| 久久奇米777| 亚洲欧洲成人精品av97| 一区二区免费看| 日韩黄色在线观看| 韩国视频一区二区| 97精品视频在线观看自产线路二| 欧美探花视频资源| 日韩一级免费一区| 中文字幕不卡的av| 亚洲动漫第一页| 久久99久久99| jlzzjlzz亚洲日本少妇| 欧美日韩国产区一| 久久亚洲精华国产精华液| 亚洲丝袜制服诱惑| 日韩不卡手机在线v区| 福利视频网站一区二区三区| 在线免费观看日本欧美| 久久久久国产精品人| 亚洲精品成人少妇| 国产精品一区二区久激情瑜伽| 一道本成人在线| 久久夜色精品国产欧美乱极品| 一区二区三区四区中文字幕| 美女脱光内衣内裤视频久久网站 | 一区二区三区日韩精品视频| 久久99久久99| 精品视频在线免费看| 国产精品水嫩水嫩| 蜜乳av一区二区三区| 色婷婷一区二区| 久久久久久久久岛国免费| 日韩精品欧美精品| 91社区在线播放| 国产无人区一区二区三区| 偷拍一区二区三区| 91免费观看在线| 久久综合色之久久综合| 日韩av高清在线观看| 91久久香蕉国产日韩欧美9色| 欧美精品一区二| 日韩va亚洲va欧美va久久| 欧美性大战久久| 伊人婷婷欧美激情| 成人黄色在线视频| 国产网站一区二区| 久草精品在线观看| 91精品国产综合久久久久久久久久| 亚洲欧洲三级电影| 成人avav影音| 日本一区免费视频| 黑人巨大精品欧美黑白配亚洲| 777午夜精品视频在线播放| 亚洲午夜精品久久久久久久久| 97久久超碰国产精品| 中文字幕综合网| 99久久精品免费看| 国产精品麻豆久久久| 成人少妇影院yyyy| 国产精品三级av| 成人av一区二区三区| 国产精品三级久久久久三级| 懂色av噜噜一区二区三区av| 国产三级精品视频| 国产另类ts人妖一区二区| 欧美成人aa大片| 黄色日韩三级电影| 久久久精品国产免费观看同学| 狠狠色2019综合网| 国产欧美精品一区二区色综合| 高清不卡一区二区在线| 国产精品青草久久| 91丨国产丨九色丨pron| 亚洲激情成人在线| 在线观看视频一区二区| 午夜视频在线观看一区二区| 91精品国产91综合久久蜜臀| 另类中文字幕网| 国产三级精品三级| 9久草视频在线视频精品| 亚洲天堂2014| 欧美日韩高清影院| 久久精品国产精品亚洲精品| 久久这里只有精品6| 99视频热这里只有精品免费| 亚洲美女免费视频| 欧美日韩国产精选| 久久电影网站中文字幕 | 精品成人a区在线观看| 国产激情一区二区三区| 最新热久久免费视频| 欧美视频一区二区在线观看| 秋霞电影网一区二区| 久久蜜臀中文字幕| 色一区在线观看| 奇米在线7777在线精品| 国产日产精品一区| 欧美午夜宅男影院| 国产剧情一区二区| 亚洲伦在线观看| 日韩欧美高清一区| 91麻豆精品在线观看| 男男成人高潮片免费网站|