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

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

?? watchdog.c

?? FreeRTOS V4.2.1,增加了AVR32 UC3 和 LPC2368 的支持
?? C
?? 第 1 頁 / 共 2 頁
字號:
//! \sa WatchdogReloadSet()
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_reloadget) || defined(BUILD_ALL) || defined(DOXYGEN)
unsigned long
WatchdogReloadGet(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Get the load register.
    //
    return(HWREG(ulBase + WDT_O_LOAD));
}
#endif

//*****************************************************************************
//
//! Gets the current watchdog timer value.
//!
//! \param ulBase is the base address of the watchdog timer module.
//!
//! This function reads the current value of the watchdog timer.
//!
//! \return Returns the current value of the watchdog timer.
//
//*****************************************************************************
#if defined(GROUP_valueget) || defined(BUILD_ALL) || defined(DOXYGEN)
unsigned long
WatchdogValueGet(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Get the current watchdog timer register value.
    //
    return(HWREG(ulBase + WDT_O_VALUE));
}
#endif

//*****************************************************************************
//
//! Registers an interrupt handler for watchdog timer interrupt.
//!
//! \param ulBase is the base address of the watchdog timer module.
//! \param pfnHandler is a pointer to the function to be called when the
//! watchdog timer interrupt occurs.
//!
//! This function does the actual registering of the interrupt handler.  This
//! will enable the global interrupt in the interrupt controller; the watchdog
//! timer interrupt must be enabled via WatchdogEnable(). It is the interrupt
//! handler's responsibility to clear the interrupt source via
//! WatchdogIntClear().
//!
//! \sa IntRegister() for important information about registering interrupt
//! handlers.
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_intregister) || defined(BUILD_ALL) || defined(DOXYGEN)
void
WatchdogIntRegister(unsigned long ulBase, void (*pfnHandler)(void))
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Register the interrupt handler.
    //
    IntRegister(INT_WATCHDOG, pfnHandler);

    //
    // Enable the watchdog timer interrupt.
    //
    IntEnable(INT_WATCHDOG);
}
#endif

//*****************************************************************************
//
//! Unregisters an interrupt handler for the watchdog timer interrupt.
//!
//! \param ulBase is the base address of the watchdog timer module.
//!
//! This function does the actual unregistering of the interrupt handler.  This
//! function will clear the handler to be called when a watchdog timer
//! interrupt occurs.  This will also mask off the interrupt in the interrupt
//! controller so that the interrupt handler no longer is called.
//!
//! \sa IntRegister() for important information about registering interrupt
//! handlers.
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_intunregister) || defined(BUILD_ALL) || defined(DOXYGEN)
void
WatchdogIntUnregister(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Disable the interrupt.
    //
    IntDisable(INT_WATCHDOG);

    //
    // Unregister the interrupt handler.
    //
    IntUnregister(INT_WATCHDOG);
}
#endif

//*****************************************************************************
//
//! Enables the watchdog timer interrupt.
//!
//! \param ulBase is the base address of the watchdog timer module.
//!
//! Enables the watchdog timer interrupt.
//!
//! \note This function will have no effect if the watchdog timer has
//! been locked.
//!
//! \sa WatchdogLock(), WatchdogUnlock(), WatchdogEnable()
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_intenable) || defined(BUILD_ALL) || defined(DOXYGEN)
void
WatchdogIntEnable(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Enable the watchdog interrupt.
    //
    HWREG(ulBase + WDT_O_CTL) |= WDT_CTL_INTEN;
}
#endif

//*****************************************************************************
//
//! Gets the current watchdog timer interrupt status.
//!
//! \param ulBase is the base address of the watchdog timer module.
//! \param bMasked is \b false if the raw interrupt status is required and
//! \b true if the masked interrupt status is required.
//!
//! This returns the interrupt status for the watchdog timer module.  Either
//! the raw interrupt status or the status of interrupt that is allowed to
//! reflect to the processor can be returned.
//!
//! \return The current interrupt status, where a 1 indicates that the watchdog
//! interrupt is active, and a 0 indicates that it is not active.
//
//*****************************************************************************
#if defined(GROUP_intstatus) || defined(BUILD_ALL) || defined(DOXYGEN)
unsigned long
WatchdogIntStatus(unsigned long ulBase, tBoolean bMasked)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Return either the interrupt status or the raw interrupt status as
    // requested.
    //
    if(bMasked)
    {
        return(HWREG(ulBase + WDT_O_MIS));
    }
    else
    {
        return(HWREG(ulBase + WDT_O_RIS));
    }
}
#endif

//*****************************************************************************
//
//! Clears the watchdog timer interrupt.
//!
//! \param ulBase is the base address of the watchdog timer module.
//!
//! The watchdog timer interrupt source is cleared, so that it no longer
//! asserts.
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_intclear) || defined(BUILD_ALL) || defined(DOXYGEN)
void
WatchdogIntClear(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Clear the interrupt source.
    //
    HWREG(ulBase + WDT_O_ICR) = WDT_INT_TIMEOUT;
}
#endif

//*****************************************************************************
//
//! Enables stalling of the watchdog timer during debug events.
//!
//! \param ulBase is the base address of the watchdog timer module.
//!
//! This function allows the watchdog timer to stop counting when the processor
//! is stopped by the debugger.  By doing so, the watchdog is prevented from
//! expiring (typically almost immediately from a human time perspective) and
//! resetting the system (if reset is enabled).  The watchdog will instead
//! expired after the appropriate number of processor cycles have been executed
//! while debugging (or at the appropriate time after the processor has been
//! restarted).
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_stallenable) || defined(BUILD_ALL) || defined(DOXYGEN)
void
WatchdogStallEnable(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Enable timer stalling.
    //
    HWREG(ulBase + WDT_O_TEST) |= WDT_TEST_STALL;
}
#endif

//*****************************************************************************
//
//! Disables stalling of the watchdog timer during debug events.
//!
//! \param ulBase is the base address of the watchdog timer module.
//!
//! This function disables the debug mode stall of the watchdog timer.  By
//! doing so, the watchdog timer continues to count regardless of the processor
//! debug state.
//!
//! \return None.
//
//*****************************************************************************
#if defined(GROUP_stalldisable) || defined(BUILD_ALL) || defined(DOXYGEN)
void
WatchdogStallDisable(unsigned long ulBase)
{
    //
    // Check the arguments.
    //
    ASSERT(ulBase == WATCHDOG_BASE);

    //
    // Disable timer stalling.
    //
    HWREG(ulBase + WDT_O_TEST) &= ~(WDT_TEST_STALL);
}
#endif

//*****************************************************************************
//
// Close the Doxygen group.
//! @}
//
//*****************************************************************************

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一区二区三区va | 日韩福利视频导航| 91丝袜美女网| 亚洲综合视频网| 欧美在线小视频| 午夜电影网一区| 精品伦理精品一区| 成人美女在线视频| 亚洲一区二区三区精品在线| 7777精品伊人久久久大香线蕉完整版 | 欧美丰满一区二区免费视频 | 中文字幕二三区不卡| 99re这里只有精品6| 亚洲国产成人av网| 久久综合久久鬼色| 91免费版在线| 蜜桃久久精品一区二区| 国产清纯白嫩初高生在线观看91| 91亚洲永久精品| 日韩专区在线视频| 国产欧美日韩综合| 欧美三级三级三级| 国产盗摄一区二区| 亚洲国产日韩在线一区模特 | 成人免费观看av| 亚洲www啪成人一区二区麻豆| 日韩视频在线观看一区二区| 国产盗摄一区二区三区| 亚洲综合视频网| 久久久久久久综合狠狠综合| 91国偷自产一区二区开放时间 | 国产精品一区专区| 一区二区三区波多野结衣在线观看| 日韩一区二区三区免费看| 成人性生交大片免费看在线播放 | 亚洲色图视频免费播放| 日韩欧美国产三级| 91久久国产综合久久| 国产一区在线观看视频| 亚洲成人在线网站| 国产精品福利电影一区二区三区四区| 91精品免费观看| 91浏览器在线视频| 国产精品一线二线三线| 日韩vs国产vs欧美| 一区二区三区中文在线| 国产精品天天看| 亚洲精品在线观| 日韩一级片在线播放| 99re免费视频精品全部| 国产一区二区三区四区五区入口| 日日夜夜精品视频天天综合网| 亚洲人成网站色在线观看 | 亚洲视频免费在线| 国产三级精品三级在线专区| 91精品国产入口| 色婷婷久久久久swag精品 | 风间由美一区二区av101| 午夜精品福利一区二区三区蜜桃| 亚洲日本在线天堂| 中文字幕av资源一区| 欧美大胆人体bbbb| 日韩欧美中文字幕精品| 欧美精品在线一区二区| 欧美亚洲一区二区在线| 色久综合一二码| 99久久er热在这里只有精品15| 国产精品一区专区| 国产乱妇无码大片在线观看| 久草这里只有精品视频| 蜜桃传媒麻豆第一区在线观看| 日日摸夜夜添夜夜添国产精品| 亚洲国产成人av| 亚洲成av人影院| 日韩成人免费在线| 麻豆91精品91久久久的内涵| 免费观看久久久4p| 久久国产精品一区二区| 精品一区二区三区欧美| 国内精品免费在线观看| 国产一区二区在线影院| 国产精品一级片| 波波电影院一区二区三区| 成人激情视频网站| 色综合色狠狠综合色| 在线精品亚洲一区二区不卡| 欧美午夜理伦三级在线观看| 欧美日韩精品专区| 日韩精品一区二区三区三区免费| 久久在线观看免费| 国产精品美女久久久久久久| 亚洲另类在线一区| 午夜a成v人精品| 国产综合久久久久久久久久久久| 国产成人av网站| 91毛片在线观看| 91黄色激情网站| 日韩视频一区在线观看| 欧美激情一区不卡| 亚洲国产中文字幕在线视频综合| 天天综合色天天综合色h| 久久av资源网| 97久久精品人人爽人人爽蜜臀| 在线看日韩精品电影| 欧美一卡二卡三卡| 欧美国产日韩a欧美在线观看| 亚洲卡通欧美制服中文| 日本美女视频一区二区| 国产sm精品调教视频网站| 色综合色狠狠天天综合色| 欧美一区二区视频网站| 国产农村妇女毛片精品久久麻豆 | 日韩女同互慰一区二区| 欧美激情在线免费观看| 视频精品一区二区| www.日韩大片| 欧美一区二区三区系列电影| 欧美国产一区在线| 青青草原综合久久大伊人精品 | 中文字幕国产精品一区二区| 亚洲福利国产精品| 成人午夜免费电影| 日韩欧美aaaaaa| 一区二区三区在线看| 精品午夜久久福利影院 | 亚洲1区2区3区4区| 成人黄色av网站在线| 日韩精品一区二区三区四区 | 国产精品久久久久久久久晋中 | 精品欧美一区二区在线观看| 亚洲男人的天堂在线观看| 国内精品视频666| 欧美日韩国产精选| 日韩毛片在线免费观看| 久久99热这里只有精品| 欧美日韩一区二区三区高清| 国产欧美一区二区精品仙草咪| 日本色综合中文字幕| 欧美亚洲精品一区| 亚洲图片欧美激情| 成人毛片视频在线观看| 2021国产精品久久精品| 日韩精品一二区| 欧美在线观看视频在线| 中文字幕一区在线观看| 粉嫩aⅴ一区二区三区四区| 精品久久国产老人久久综合| 亚洲电影第三页| 欧美性大战久久久久久久蜜臀| 中文字幕在线免费不卡| 国产成人在线观看免费网站| 亚洲精品一区二区三区蜜桃下载| 日本最新不卡在线| 欧美精品少妇一区二区三区| 一个色综合av| 欧美天天综合网| 亚洲成人在线观看视频| 欧美午夜一区二区| 午夜视频在线观看一区| 欧美日韩不卡视频| 日韩在线观看一区二区| 911精品产国品一二三产区| 亚洲成在线观看| 欧美日韩高清不卡| 日韩av在线发布| 欧美一区二区三区四区在线观看| 青青草国产成人av片免费| 91麻豆精品91久久久久同性| 青草av.久久免费一区| 欧美一区二区日韩| 国产在线观看一区二区| 国产三级精品三级| 99热精品国产| 亚洲一区二区精品久久av| 欧美日产在线观看| 美女性感视频久久| 久久久综合精品| 成人精品一区二区三区四区| 亚洲人成人一区二区在线观看| 色综合av在线| 日韩电影在线免费| 久久久五月婷婷| 91香蕉视频mp4| 午夜视频一区二区| 精品粉嫩aⅴ一区二区三区四区| 黄色日韩三级电影| 中文字幕一区二区三区在线不卡 | 国产一区二区三区在线观看精品 | 欧美性猛片xxxx免费看久爱| 日韩av一区二区三区四区| 久久久亚洲午夜电影| 91丨porny丨国产入口| 亚洲一区二区精品久久av| 日韩区在线观看| 99久久久无码国产精品| 日韩国产欧美在线视频| 欧美国产97人人爽人人喊| 欧美三级在线播放| 国产一区亚洲一区| 亚洲精品水蜜桃|