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

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

?? sndstimer.c

?? 三星公司出arm7內核4510VXWORKS環(huán)境下驅動開發(fā)包
?? 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一区二区三区免费野_久草精品视频
亚洲精品伦理在线| 日韩成人一级片| 日韩小视频在线观看专区| 丰满岳乱妇一区二区三区| 午夜一区二区三区视频| 国产精品久久一级| 欧美成人高清电影在线| 在线欧美日韩精品| 不卡视频在线看| 国产主播一区二区三区| 午夜精品影院在线观看| 中文字幕一区二区三区不卡| 久久亚洲春色中文字幕久久久| 欧美日韩高清在线播放| 不卡av在线网| 国产精品538一区二区在线| 男人的天堂久久精品| 一区二区三区在线视频免费| 国产精品入口麻豆九色| 久久久国产精品麻豆| 日韩视频免费观看高清完整版在线观看 | 国产综合色视频| 三级久久三级久久久| 亚洲国产成人av好男人在线观看| 综合婷婷亚洲小说| 国产精品久久久久婷婷| 久久免费精品国产久精品久久久久| 91精品在线免费观看| 欧美日韩国产综合久久| 欧美性猛交xxxx黑人交| 色婷婷久久综合| 色婷婷久久99综合精品jk白丝| jiyouzz国产精品久久| 成人av网在线| 99riav久久精品riav| 成人午夜电影小说| 成人ar影院免费观看视频| 成人高清视频在线| 91在线一区二区三区| av在线一区二区三区| 99久久久国产精品| 91蜜桃在线观看| 欧美午夜精品一区二区三区| 91高清视频在线| 欧美日韩一区二区在线观看视频| 欧美综合在线视频| 精品视频在线免费观看| 欧美日韩色综合| 51精品秘密在线观看| 日韩精品一区国产麻豆| 久久久国产精品不卡| 国产精品成人免费在线| 亚洲女人****多毛耸耸8| 亚洲在线一区二区三区| 日韩高清一区在线| 国内外成人在线| 成年人午夜久久久| 欧美色区777第一页| 日韩无一区二区| 久久精品在这里| 日韩伦理免费电影| 亚洲一区二区在线播放相泽| 日本aⅴ亚洲精品中文乱码| 国产毛片精品一区| 91丨porny丨在线| 欧美日韩精品欧美日韩精品一 | 正在播放一区二区| 久久久综合九色合综国产精品| 中文字幕巨乱亚洲| 午夜欧美2019年伦理| 寂寞少妇一区二区三区| 成人久久18免费网站麻豆| 欧美最猛黑人xxxxx猛交| 精品国产不卡一区二区三区| 成人免费一区二区三区视频 | 一区二区成人在线视频| 美女一区二区在线观看| 成人三级在线视频| 欧美精选午夜久久久乱码6080| 欧美精品一区二区三区高清aⅴ| 国产精品精品国产色婷婷| 亚洲一区二区美女| 国产精品一二一区| 欧美在线看片a免费观看| 精品捆绑美女sm三区| 亚洲麻豆国产自偷在线| 麻豆极品一区二区三区| 91猫先生在线| 精品福利在线导航| 亚洲主播在线观看| 粉嫩一区二区三区性色av| 欧美日韩aaa| 国产精品色哟哟| 久久99久久99小草精品免视看| 成人动漫一区二区| 日韩免费观看高清完整版在线观看| 成人欧美一区二区三区小说| 狠狠狠色丁香婷婷综合激情| 欧美亚洲综合一区| 国产精品久久久爽爽爽麻豆色哟哟 | 成人免费黄色大片| 日韩欧美高清dvd碟片| 亚洲一线二线三线视频| 成人性视频免费网站| 欧美一区二区黄色| 亚洲一区影音先锋| 99国产欧美另类久久久精品 | 亚洲精品一区二区精华| 亚洲一线二线三线视频| 99久久国产免费看| 国产色产综合产在线视频| 另类欧美日韩国产在线| 欧美日韩精品是欧美日韩精品| 亚洲免费成人av| 99免费精品在线| 久久久精品国产免大香伊| 久久国产精品免费| 91精品一区二区三区在线观看| 一区二区视频在线看| 91色在线porny| 国产精品乱码人人做人人爱| 国产露脸91国语对白| 精品免费一区二区三区| 青草av.久久免费一区| 欧美日韩国产色站一区二区三区| 亚洲久草在线视频| 91丨九色porny丨蝌蚪| 亚洲日本va午夜在线影院| 91精品免费在线| 亚洲大片在线观看| 欧美亚洲综合在线| 亚洲va国产va欧美va观看| 色婷婷综合视频在线观看| 亚洲天堂网中文字| 91美女在线视频| 亚洲免费av高清| 色噜噜夜夜夜综合网| 亚洲综合在线电影| 欧美日韩一区三区四区| 亚洲成精国产精品女| 欧美精品第1页| 蜜桃一区二区三区在线观看| 日韩一级大片在线观看| 麻豆精品视频在线观看免费 | 久久久久99精品国产片| 国产成人在线看| 国产精品成人在线观看| 91美女片黄在线观看91美女| 亚洲国产精品一区二区www在线| 欧美日韩一区二区在线视频| 日韩 欧美一区二区三区| 欧美电影免费观看高清完整版在线 | 亚洲国产精品久久不卡毛片 | 欧美一区二区成人| 免费观看91视频大全| 久久久久国产精品麻豆ai换脸| 国产成人精品1024| ...中文天堂在线一区| 欧美性欧美巨大黑白大战| 日韩激情一二三区| 久久综合一区二区| 91最新地址在线播放| 亚洲r级在线视频| 日韩精品在线一区二区| 国产成人免费视频网站| 亚洲欧美日韩在线| 欧美高清视频在线高清观看mv色露露十八 | 精品国产免费视频| 成人h动漫精品一区二| 亚洲国产日韩综合久久精品| 日韩视频在线一区二区| 99久久精品国产麻豆演员表| 亚洲国产精品久久人人爱| 337p粉嫩大胆色噜噜噜噜亚洲 | 精品美女一区二区| www.亚洲色图| 男女性色大片免费观看一区二区| 国产日产精品1区| 欧美日韩一区二区三区免费看| 激情六月婷婷综合| 一区二区三区中文在线观看| 精品久久久久久最新网址| 91在线精品一区二区三区| 美女在线观看视频一区二区| 日韩久久一区二区| 日韩精品综合一本久道在线视频| 99久精品国产| 精品在线观看免费| 一区二区三区在线观看动漫 | 日韩在线a电影| 国产日产精品1区| 欧美一区二区三区四区高清 | 欧美日韩国产综合草草| jiyouzz国产精品久久| 精品午夜久久福利影院| 午夜精品久久久久影视| 国产精品高潮呻吟久久| 精品成a人在线观看| 欧美日本在线看| 色婷婷综合激情|