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

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

?? sndstimer.c

?? 三星官方基于VXWORKS的S3C2510的BSP
?? C
?? 第 1 頁 / 共 2 頁
字號:
    (
    FUNCPTR routine,    /* routine called at each aux clock interrupt */
    int arg             /* argument to auxiliary clock interrupt routine */
    )
    {
    sysAuxClkRoutine	= NULL;
    sysAuxClkArg	= arg;
    sysAuxClkRoutine	= routine;

    return (OK);
    }

/*******************************************************************************
*
* sysAuxClkDisable - turn off auxiliary clock interrupts
*
* This routine disables auxiliary clock interrupts.
*
* RETURNS: N/A
*
* SEE ALSO: sysAuxClkEnable()
*/

void sysAuxClkDisable (void)
    {
     UINT32 oier;
    
   if (sysAuxClkRunning)
        {
	/* disable timer interrupt in the timer */

	SNDS_TIMER_REG_READ (SNDS_TIMER_TMOD, oier);
	SNDS_TIMER_REG_WRITE (SNDS_TIMER_TMOD, oier & ~(1 << 3));

	/* disable timer interrupt in the interrupt controller */

	SNDS_TIMER_INT_DISABLE (AUX_TIMER_INT_LVL);

	sysAuxClkRunning = FALSE;
        }
    }

/*******************************************************************************
*
* sysAuxClkEnable - turn on auxiliary clock interrupts
*
* This routine enables auxiliary clock interrupts.
*
* RETURNS: N/A
*
* SEE ALSO: sysAuxClkConnect(), sysAuxClkDisable(), sysAuxClkRateSet()
*/

void sysAuxClkEnable (void)
    {
    UINT32 oier;
    static connected = FALSE;

    if (!connected)
	{
	intConnect (INUM_TO_IVEC (INT_LVL_TIMER1), sysAuxClkInt, 0);
	connected = TRUE;
	}

    if (!sysAuxClkRunning)
        {
	/*
	 * Calculate the number of ticks of the timer clock that this
	 * period requires.  Do this once, here, so that the timer interrupt
	 * routine does not need to perform a division.
	 */

	sysAuxClkTicks = (AUX_TIMER_CLK / sysAuxClkTicksPerSecond);

	/*
	 * Load the match register with a new value calculated by
	 * adding the ticks per interrupt to the current value of the
	 * counter register.  Note that this may wraparound to a value
	 * less than the current counter value but that's OK.
	 */

	SNDS_TIMER_REG_WRITE (SNDS_TIMER_TDATA_1, sysAuxClkTicks);

	/* enable timer 1 */
	SNDS_TIMER_REG_READ (SNDS_TIMER_TMOD, oier);
	SNDS_TIMER_REG_WRITE (SNDS_TIMER_TMOD, oier | 8);

	/* enable clock interrupt in interrupt controller */
	SNDS_TIMER_INT_ENABLE (AUX_TIMER_INT_LVL);

	sysAuxClkRunning = TRUE;
	}
    }

/*******************************************************************************
*
* sysAuxClkRateGet - get the auxiliary clock rate
*
* This routine returns the interrupt rate of the auxiliary clock.
*
* RETURNS: The number of ticks per second of the auxiliary clock.
*
* SEE ALSO: sysAuxClkEnable(), sysAuxClkRateSet()
*/

int sysAuxClkRateGet (void)
    {
    return (sysAuxClkTicksPerSecond);
    }

/*******************************************************************************
*
* sysAuxClkRateSet - set the auxiliary clock rate
*
* This routine sets the interrupt rate of the auxiliary clock.  It does not
* enable auxiliary clock interrupts.
*
* RETURNS: OK, or ERROR if the tick rate is invalid or the timer cannot be set.
*
* SEE ALSO: sysAuxClkEnable(), sysAuxClkRateGet()
*/

STATUS sysAuxClkRateSet
    (
    int ticksPerSecond  /* number of clock interrupts per second */
    )
    {
    if (ticksPerSecond < AUX_CLK_RATE_MIN || ticksPerSecond > AUX_CLK_RATE_MAX)
        return (ERROR);

    if (sysAuxClkRunning)
	{
	sysAuxClkDisable ();
	sysAuxClkEnable ();
	}

    return (OK);
    }

#ifdef  INCLUDE_TIMESTAMP

/*******************************************************************************
*
* sysTimestampInt - timestamp timer interrupt handler
*
* This rountine handles the timestamp timer interrupt.  A user routine is
* called, if one was connected by sysTimestampConnect().
*
* RETURNS: N/A
*
* SEE ALSO: sysTimestampConnect()
*/

void sysTimestampInt (void)
    {
    if (sysTimestampRunning && sysTimestampRoutine != NULL)
	(*sysTimestampRoutine)(sysTimestampArg);
    }

/*******************************************************************************
*
* sysTimestampConnect - connect a user routine to the timestamp timer interrupt
*
* This routine specifies the user interrupt routine to be called at each
* timestamp timer interrupt.  It does not enable the timestamp timer itself.
*
* RETURNS: OK, or ERROR if sysTimestampInt() interrupt handler is not used.
*/

STATUS sysTimestampConnect
    (
    FUNCPTR routine,    /* routine called at each timestamp timer interrupt */
    int arg     /* argument with which to call routine */
    )
    {
	return ERROR;	/* System clock tick specifies a rollover event */
    }

/*******************************************************************************
*
* sysTimestampEnable - initialize and enable the timestamp timer
*
* This routine connects the timestamp timer interrupt and initializes the
* counter registers.  If the timestamp timer is already running, this routine
* merely resets the timer counter.
*
* The rate of the timestamp timer should be set explicitly within the BSP,
* in the sysHwInit() routine.  This routine does not intialize the timer
* rate.
*
* RETURNS: OK, or ERROR if hardware cannot be enabled.
*/

STATUS sysTimestampEnable (void)
    {
    static BOOL connected = FALSE;

    if (!connected)
	{
	connected = TRUE;
	}

    if (!sysTimestampRunning)
	{
	sysTimestampRunning = TRUE;
	}

	sysClkEnable();	/* make sure that system clock is running */

    return (OK);
    }

/*******************************************************************************
*
* sysTimestampDisable - disable the timestamp timer
*
* This routine disables the timestamp timer.  Interrupts are not disabled,
* although the tick counter will not increment after the timestamp timer
* is disabled, thus interrupts will no longer be generated.
*
* RETURNS: OK, or ERROR if timer cannot be disabled.
*/

STATUS sysTimestampDisable (void)
    {
    if (sysTimestampRunning)
        sysTimestampRunning = FALSE;

    return (OK);
    }

/*******************************************************************************
*
* sysTimestampPeriod - get the timestamp timer period
*
* This routine returns the period of the timestamp timer in ticks.
* The period, or terminal count, is the number of ticks to which the timestamp
* timer will count before rolling over and restarting the counting process.
*
* RETURNS: The period of the timestamp timer in counter ticks.
*/

UINT32 sysTimestampPeriod (void)
    {
    sysTimestampPeriodValue = SYS_TIMER_CLK / sysClkTicksPerSecond;

    return (sysTimestampPeriodValue);
    }

/*******************************************************************************
*
* sysTimestampFreq - get the timestamp timer clock frequency
*
* This routine returns the frequency of the timer clock, in ticks per second.
*
* RETURNS: The timestamp timer clock frequency, in ticks per second.
*/

UINT32 sysTimestampFreq (void)
    {
    return (SYS_TIMER_CLK);
    }

/*******************************************************************************
*
* sysTimestamp - get the timestamp timer tick count
*
* This routine returns the current value of the timestamp timer tick counter.
* The tick count can be converted to seconds by dividing by the return of
* sysTimestampFreq().
*
* This routine should be called with interrupts locked.  If interrupts are
* not already locked, sysTimestampLock() should be used instead.
*
* RETURNS: The current timestamp timer tick count.
*
* SEE ALSO: sysTimestampLock()
*/

UINT32 sysTimestamp (void)
    {
    UINT32 count = 0;

	SNDS_TIMER_REG_READ (SNDS_TIMER_TCNT_0, count);

    return (count);
    }

/*******************************************************************************
*
* sysTimestampLock - get the timestamp timer tick count
*
* This routine returns the current value of the timestamp timer tick counter.
* The tick count can be converted to seconds by dividing by the return of
* sysTimestampFreq().
*
* This routine locks interrupts for cases where it is necessary to stop the
* tick counter in order to read it, or when two independent counters must
* be read.  If interrupts are already locked, sysTimestamp() should be
* used instead.
*
* RETURNS: The current timestamp timer tick count.
*
* SEE ALSO: sysTimestamp()
*/

UINT32 sysTimestampLock (void)
    {
    UINT32 result;

    result = sysTimestamp ();

    return (result);
    }

#endif  /* INCLUDE_TIMESTAMP */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
4438亚洲最大| av综合在线播放| 欧美一区二区三区成人| 亚洲二区视频在线| 欧美电影影音先锋| 蜜臀a∨国产成人精品| 欧美sm极限捆绑bd| 国产精品性做久久久久久| 中文字幕av一区二区三区高| 99久久免费国产| 亚洲欧美国产三级| 欧美挠脚心视频网站| 精品一区二区久久| 欧美激情资源网| 欧美午夜电影网| 极品尤物av久久免费看| 国产精品电影一区二区| 在线免费观看日本一区| 香蕉影视欧美成人| 久久久一区二区三区| 99精品国产99久久久久久白柏| 亚洲精品美腿丝袜| 91精品国产91综合久久蜜臀| 国产不卡在线视频| 亚洲国产成人av好男人在线观看| 欧美成人在线直播| 99精品热视频| 美女视频第一区二区三区免费观看网站| 久久久电影一区二区三区| 欧美性生活大片视频| 国产一区二区毛片| 亚洲午夜久久久| 国产欧美日韩精品在线| 欧美精品色综合| 成人福利在线看| 午夜婷婷国产麻豆精品| 国产欧美一区二区在线| 欧美日韩精品一区二区三区 | 国产精品乱人伦一区二区| 欧美日韩一区不卡| 国产白丝精品91爽爽久久| 偷偷要91色婷婷| 国产精品久久久久久妇女6080| 欧美福利视频一区| 色哟哟欧美精品| 国产精品77777| 美女国产一区二区三区| 一区二区三国产精华液| 久久精品一区二区三区av | 日韩欧美aaaaaa| 色爱区综合激月婷婷| 国产精品一区二区在线播放| 日韩电影免费在线| 亚洲综合一二区| 日韩美女视频一区| 国产亚洲一区二区三区四区 | 麻豆久久一区二区| 亚洲午夜羞羞片| 亚洲乱码一区二区三区在线观看| 久久精品亚洲精品国产欧美kt∨ | 久久久一区二区三区| 91精品国产麻豆| 欧美日韩精品免费| 色爱区综合激月婷婷| 97国产一区二区| 国产成人av资源| 国产精品一区一区| 久久99国产精品尤物| 免费一级欧美片在线观看| 婷婷激情综合网| 亚洲国产欧美在线人成| 亚洲一区二区精品久久av| 亚洲欧美另类小说| 一区二区三区在线视频观看58 | 亚洲国产乱码最新视频| 一区二区三区成人| 亚洲午夜三级在线| 亚洲成人综合视频| 天堂在线一区二区| 日韩不卡免费视频| 蜜臀国产一区二区三区在线播放 | 色噜噜狠狠成人网p站| 99国产精品久久| 91美女在线观看| 欧美无人高清视频在线观看| 欧美羞羞免费网站| 91精品国产高清一区二区三区| 日韩欧美一级在线播放| 久久精品在线免费观看| 中文av一区二区| 亚洲免费电影在线| 亚洲va韩国va欧美va精品 | 精品国产免费视频| 久久久亚洲欧洲日产国码αv| 久久综合视频网| 国产精品你懂的在线欣赏| 国产精品入口麻豆原神| 亚洲私人黄色宅男| 午夜久久久久久久久| 日韩av在线发布| 国产激情91久久精品导航| 成人免费视频app| 91美女片黄在线观看91美女| 欧美日韩精品一二三区| 亚洲精品在线观| 亚洲视频一区二区免费在线观看| 亚洲国产人成综合网站| 精品在线播放免费| 成人av在线资源| 538在线一区二区精品国产| 欧美精品一区二区三区四区| 中文字幕亚洲一区二区va在线| 亚洲国产精品久久人人爱蜜臀 | 91啦中文在线观看| 91麻豆精品国产自产在线观看一区| 日韩欧美在线观看一区二区三区| 久久久久久99精品| 亚洲综合av网| 国内不卡的二区三区中文字幕 | 91成人国产精品| 精品欧美乱码久久久久久1区2区| 国产精品久久久久一区二区三区共| 亚洲123区在线观看| 国产91精品久久久久久久网曝门 | 国产精品第四页| 日本亚洲欧美天堂免费| 成人精品小蝌蚪| 在线综合+亚洲+欧美中文字幕| 中文字幕一区二区三区在线观看| 五月婷婷激情综合| 成人avav影音| 日韩一级精品视频在线观看| 亚洲欧美怡红院| 国产一区二区91| 日韩一区二区中文字幕| 亚洲男人的天堂在线观看| 国产综合色视频| 欧美一区二区三区在线电影| 亚洲私人黄色宅男| 国产馆精品极品| 日韩一区二区免费在线观看| 亚洲精品写真福利| 国产91精品入口| 精品久久久影院| 亚洲成人综合视频| 色丁香久综合在线久综合在线观看| 久久久久国产精品厨房| 日韩高清中文字幕一区| 日本高清成人免费播放| 国产精品传媒在线| 国产精品亚洲а∨天堂免在线| 日韩一级免费观看| 日韩一区欧美二区| 欧美人狂配大交3d怪物一区| 亚洲免费在线播放| jlzzjlzz欧美大全| 中文字幕二三区不卡| 国产精品亚洲专一区二区三区 | 久久精品视频在线免费观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩在线直播| 亚洲国产成人高清精品| 在线观看av一区二区| 一区二区三区四区在线免费观看| 成人国产在线观看| 国产精品三级视频| 成人高清av在线| 亚洲欧美怡红院| 91久久线看在观草草青青| 亚洲精品日产精品乱码不卡| 色天天综合色天天久久| 亚洲激情图片小说视频| 欧美性高清videossexo| 天天操天天综合网| 制服丝袜av成人在线看| 日韩二区三区四区| 精品国产麻豆免费人成网站| 国模无码大尺度一区二区三区| 欧美精品一区二| 国产成人精品亚洲日本在线桃色| 日本一区二区三区电影| 成人av在线资源网站| 一二三四区精品视频| 欧美日韩亚州综合| 日本美女一区二区| 精品国产电影一区二区| 国产伦精品一区二区三区在线观看| 国产日韩视频一区二区三区| 高清在线不卡av| 一区二区三区在线高清| 91精品国产日韩91久久久久久| 激情五月播播久久久精品| 国产欧美一区二区精品性色超碰| 97成人超碰视| 日韩高清电影一区| 亚洲国产精华液网站w| 91福利精品视频| 久久精品国产网站| 中文字幕高清一区| 欧美日韩一区成人|