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

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

?? clock.c

?? Ports_for_CF5213.zip 接口程序;接口程序;
?? C
字號(hào):
/*
 * File:    clock.c
 * Purpose: Driver for the on-chip Clock module
 *
 * Notes:       
 */

#include "common.h"
#include "clock.h"

/********************************************************************/
/* Initialize the PLL
 * 
 * Parameters:
 *  fref    PLL reference clock frequency in KHz
 *  fsys    Desired PLL output frequency in KHz
 *  flags   Operating parameters
 *
 * Return Value:
 *  The resulting output system frequency
 */
int
clock_pll (int fref, int fsys, int flags)
{
    int syncr, mfd_max, mfd_min, rfd_max;
    int i, temp, fout, mfd, rfd, done;
    
    /* Check for the disable flag */
    if (flags & PLL_DISABLE)
    {
        MCF_CLOCK_SYNCR &= ~MCF_CLOCK_SYNCR_PLLEN;
        return fref;
    }
    
    /* Check bounds of reference clock */
    if((fref >= MAX_FREF) || (fref <= MIN_FREF))
        return fref;
        
    if (fsys == 0)
    {
        /* Return current PLL output */
        if ((MCF_CLOCK_SYNCR & MCF_CLOCK_SYNCR_CLKSRC) &&
            (MCF_CLOCK_SYNCR & MCF_CLOCK_SYNCR_PLLEN))
        {
            mfd = (MCF_CLOCK_SYNCR & 0x7000) >> 12;
            mfd = MIN_MFD + (mfd * 2);
            rfd = (MCF_CLOCK_SYNCR & 0x0700) >> 8;
            rfd = 1 << rfd;
            return (fref * mfd / rfd);
        }
        else
            return fref;            
    }
    
    /* Check bounds of requested system clock */
    if (fsys > MAX_FSYS)
        fsys = MAX_FSYS;

    /* Determine maximum possible multiplier (must be even) */
    mfd_max = MAX_FVCO / fref;
    mfd_max &= ~1;
    if (mfd_max > MAX_MFD)
        mfd_max = MAX_MFD;
    
    /* Determine maximum possible output based on max multiplier */
    fout = fref * mfd_max;

    /* Determine target output based on fsys and max possible */ 
    if (fout > fsys)
        fout = fsys;
    
    /* Determine the minimum multiplier */
    for (mfd_min = mfd_max; 
         mfd_min > MIN_MFD && fout < (fref * mfd_min); 
         mfd_min-=2);
         
    /* Set preliminary divider maximum */         
    rfd_max = MAX_RFD;

    /*
     * Loop across the valid MFD and RFD settings starting with
     * the max MFD and min RFD and find the closest match less-than
     * or equal-to the desired output frequency
     */
    done = FALSE;
    for (mfd = mfd_max; mfd >= mfd_min; mfd-=2)
    {
        for (rfd = MIN_RFD; rfd < rfd_max; rfd <<= 1)
        {
            temp = fref * mfd / rfd;
            
            if (fout == temp)
            {
                /* exact match */
                done = TRUE;
                break;
            }
            if (fout > temp)
            {
                /* new upper bound for the rfd */
                rfd_max = rfd;
                /* is this the nearest match? */
                if ((rfd != 1) && ((fout - temp) < (fref / (rfd>>1))))
                    done = TRUE;
                break;
            }
        }
        if (done)
            break;
     }
    if (!done)
    {
        /* 
         * Fell out of loop before finding an exact match or getting 
         * as close as possible. Adjust mfd to nearest match.
         */
        mfd += 2;
    }
    
    fout = fref * mfd / rfd;

    /* Encode MFD and RFD settings */
    mfd = (mfd - MIN_MFD) / 2;
    for (i = 0; rfd > MIN_RFD; rfd >>= 1, i++) {};
    rfd = i;

    /*
     * Temp fix for PLL bug on Rev 0
     */
    if ((MCF_CIM_CIR & 0x003F) == 0)
        (*(vuint8 *)(&__IPSBAR[0x120006])) |= 0x04;

    if (!(flags & PLL_PRETEND))
    {
        /* 
         * Initialize the PLL to generate the new system clock frequency 
         * A higher divider is used first with the desired MFD.  Once 
         * locked, the desired RFD is applied
         */
        syncr = MCF_CLOCK_SYNCR & ~(0x7700);
        temp = (MCF_CLOCK_SYNCR & 0x7000) >> 12;
        MCF_CLOCK_SYNCR = syncr 
            | MCF_CLOCK_SYNCR_RFD(rfd + 1)
            | MCF_CLOCK_SYNCR_MFD(temp)
            | MCF_CLOCK_SYNCR_PLLEN;
        MCF_CLOCK_SYNCR = syncr 
            | MCF_CLOCK_SYNCR_RFD(rfd + 1)
            | MCF_CLOCK_SYNCR_MFD(mfd)
            | MCF_CLOCK_SYNCR_PLLEN;
            
       	/* Wait for the PLL to lock */	
    	while (!(MCF_CLOCK_SYNSR & MCF_CLOCK_SYNSR_LOCK)) {};

        /* Finish off the initialization */
        MCF_CLOCK_SYNCR = syncr
            | MCF_CLOCK_SYNCR_RFD(rfd)
            | MCF_CLOCK_SYNCR_MFD(mfd)
            | MCF_CLOCK_SYNCR_CLKSRC
            | MCF_CLOCK_SYNCR_PLLEN;
    }

    return fout;
}
/********************************************************************/
/*
 * Initialize the Low Power Divider circuit
 * 
 * Parameters:
 *  div     Desired system frequency divider
 *
 * Return Value:
 *  The divider value applied
 *  -1 if divider was out of valid bounds
 */
int
clock_lpd (int div)
{
    int i, j;

    /* Check bounds of divider */
    if ((div < MIN_LPD) || (div > MAX_LPD))
        return (1 << (MCF_CLOCK_LPCR & 0x0F));

    /* Round divider down to nearest power of two */
    for (i = 0, j = div; j != 1; j >>= 1, i++) 
    {};
    
    /* Apply the divider to the system clock */
    MCF_CLOCK_LPCR = MCF_CLOCK_LPCR_LPD(i);

    return (1 << i);
}
/********************************************************************/
/*
 * These functions control the PSTCLK/CLKOUT signal. Disabling the 
 * CLKOUT signal reduces power and EMI. However, some BDM interface
 * cables will rely on the PSTCLK/CLKOUT signal to clock the logic
 * that interfaces to the DSCLK, DSI, and DSO signals.
 */
void
clock_clkout_disable(void)
{
    MCF_CLOCK_SYNCR |= MCF_CLOCK_SYNCR_DISCLK;
}

void
clock_clkout_enable(void)
{
    MCF_CLOCK_SYNCR &= ~MCF_CLOCK_SYNCR_DISCLK;
}
/********************************************************************/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品精品欲导航| aaa欧美色吧激情视频| 欧美日韩免费观看一区二区三区| 亚洲精品国产精华液| 欧美性色综合网| 天天影视网天天综合色在线播放| 欧美精品aⅴ在线视频| 久久91精品久久久久久秒播| 国产色一区二区| 色偷偷久久一区二区三区| 亚洲成人精品影院| 欧美成人一区二区三区片免费 | 在线亚洲免费视频| 性久久久久久久久| 久久久久9999亚洲精品| 色婷婷综合久久久中文一区二区 | 麻豆精品新av中文字幕| 欧美国产精品一区| 欧美日韩专区在线| 国产成人综合视频| 一区二区三区蜜桃| 欧美xxxx老人做受| av在线这里只有精品| 人人精品人人爱| 国产精品久久久99| 欧美一区午夜视频在线观看 | 专区另类欧美日韩| 91精品在线麻豆| 风间由美性色一区二区三区| 悠悠色在线精品| 久久综合久久鬼色| 欧洲精品在线观看| 国产精品亚洲专一区二区三区 | 99精品偷自拍| 精品午夜一区二区三区在线观看| 亚洲色图在线视频| 日韩女优制服丝袜电影| 91色porny在线视频| 国产麻豆日韩欧美久久| 亚洲国产日产av| 国产精品午夜在线| 精品国产成人系列| 5566中文字幕一区二区电影| 波多野结衣精品在线| 久久精品国产在热久久| 亚洲成人av一区二区三区| 久久精品在这里| 91精品国产一区二区人妖| 色婷婷精品久久二区二区蜜臂av| 国产成人免费视频网站| 天天综合天天综合色| 亚洲视频网在线直播| 国产亚洲自拍一区| 精品日韩成人av| 3d动漫精品啪啪1区2区免费| 色婷婷av一区二区三区gif| 福利一区在线观看| 国产在线观看免费一区| 毛片av中文字幕一区二区| 亚洲国产婷婷综合在线精品| 自拍偷拍国产亚洲| 国产精品乱码一区二区三区软件| 精品国一区二区三区| 在线播放91灌醉迷j高跟美女 | 欧美一区午夜视频在线观看| 欧美日韩mp4| 在线电影一区二区三区| 欧美日韩专区在线| 欧美群妇大交群中文字幕| 91福利国产精品| 欧美中文字幕一区二区三区 | 久久se精品一区二区| 免费高清不卡av| 日本视频在线一区| 热久久一区二区| 麻豆精品国产91久久久久久| 美女视频黄 久久| 麻豆精品视频在线观看免费| 六月丁香综合在线视频| 久久99精品久久久久婷婷| 精品一区二区三区久久久| 狠狠久久亚洲欧美| 国产69精品久久99不卡| 成人手机电影网| 99精品视频免费在线观看| 91网站在线播放| 欧美色网站导航| 欧美一区二区三区免费在线看 | 久久久噜噜噜久久人人看 | 日韩欧美中文字幕一区| 欧美电影免费观看完整版| 久久婷婷综合激情| 国产精品久久久久久久久图文区| ...xxx性欧美| 亚洲一级电影视频| 久88久久88久久久| 粉嫩aⅴ一区二区三区四区五区| 91视频.com| 欧美一区二区三区婷婷月色| 欧美mv日韩mv国产| 国产精品久久午夜| 亚洲一区二区精品视频| 开心九九激情九九欧美日韩精美视频电影 | 亚洲永久免费视频| 青草av.久久免费一区| 久久99精品国产麻豆婷婷洗澡| 成人在线一区二区三区| 欧美日韩在线一区二区| 精品国产一区二区三区久久久蜜月| 国产色91在线| 婷婷中文字幕一区三区| 91国产福利在线| 日韩欧美综合在线| 中文字幕一区在线| 亚洲高清免费在线| 国产jizzjizz一区二区| 欧美日韩五月天| 国产清纯白嫩初高生在线观看91 | 日韩国产高清影视| 国产成人日日夜夜| 欧美日韩不卡在线| 国产精品天美传媒| 日韩av电影天堂| 91日韩一区二区三区| 欧美精品一区二区在线观看| 一区二区三区欧美视频| 精品一区二区免费在线观看| 91国产丝袜在线播放| 久久精品视频网| 青青草成人在线观看| 色综合激情久久| 欧美激情中文不卡| 石原莉奈在线亚洲二区| 色综合欧美在线视频区| 久久综合九色综合97_久久久| 亚洲一区二区三区美女| 99久久精品国产一区二区三区| 日韩免费看网站| 亚洲国产精品天堂| av高清不卡在线| 国产区在线观看成人精品| 久久精品国产秦先生| 欧美日韩在线播| 亚洲免费观看视频| 99热99精品| 国产精品全国免费观看高清| 国产精品一区二区视频| 日韩精品中文字幕一区二区三区| 亚洲第一会所有码转帖| 色欧美乱欧美15图片| 国产女人18毛片水真多成人如厕| 精彩视频一区二区三区| 日韩欧美国产一区二区在线播放 | 在线观看亚洲成人| 亚洲欧洲无码一区二区三区| 国产成人鲁色资源国产91色综 | 中文字幕一区二区三区不卡在线| 国产一区二区视频在线| 日韩欧美激情四射| 免费成人在线观看视频| 911精品国产一区二区在线| 亚洲一区二区影院| 欧美在线观看视频一区二区三区| 亚洲精品乱码久久久久久| av综合在线播放| 亚洲色图制服诱惑 | 欧美福利视频导航| 香蕉久久夜色精品国产使用方法| 在线亚洲人成电影网站色www| 亚洲丝袜精品丝袜在线| 92国产精品观看| 亚洲精品日日夜夜| 在线观看欧美黄色| 日韩高清不卡在线| 日韩欧美一级片| 国产麻豆视频一区二区| 国产精品毛片大码女人| 91视视频在线观看入口直接观看www | 精品国产一区二区三区忘忧草 | 在线观看91视频| 亚洲mv大片欧洲mv大片精品| 欧美日韩国产影片| 美女在线一区二区| 久久九九久精品国产免费直播| 国产精品亚洲第一区在线暖暖韩国| 国产欧美视频一区二区| 99re这里都是精品| 亚洲bt欧美bt精品| 日韩精品一区二区三区蜜臀 | 欧美日韩久久久久久| 日本怡春院一区二区| 久久亚洲一区二区三区明星换脸 | 欧美日韩综合在线免费观看| 免费成人在线观看视频| 欧美国产乱子伦 | 精品理论电影在线| 成人伦理片在线| 天堂午夜影视日韩欧美一区二区| 日韩精品自拍偷拍| 99久久伊人久久99|