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

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

?? wdt_drv.h

?? ATMEL at90usb128 usb audio driver for win-avr
?? H
字號:
//! @file wdt_drv.h,v
//!
//! Copyright (c) 2004 Atmel.
//!
//! Use of this program is subject to Atmel's End User License Agreement.
//! Please read file license.txt for copyright notice.
//!
//! @brief This file contains the Watchdog low level driver definition
//!
//! @version 1.10 at90usb128-demo-audio-1_0_2 $Id: wdt_drv.h,v 1.10 2006/05/11 09:06:16 rletendu Exp $
//!
//! @todo
//! @bug


#ifndef _WDT_DRV_H_
#define _WDT_DRV_H_

//_____ I N C L U D E S ____________________________________________________

#ifdef AVRGCC
   #include <avr/io.h>
   #include <avr/wdt.h>
#endif


//_____ M A C R O S ________________________________________________________

//! @defgroup wdt_drv Watchdog and reset sytem drivers module
//! @{

#define Is_ext_reset()  ((MCUSR&(1<<EXTRF)) ? TRUE:FALSE)
#define Ack_ext_reset() (MCUSR= ~(1<<EXTRF))
#define Is_POR_reset()  ((MCUSR&(1<<(MCUSR= ~(1<<PORF)))) ? TRUE:FALSE)
#define Ack_POR_reset() (MCUSR= ~(1<<PORF))
#define Is_BOD_reset()  ((MCUSR&(1<<BORF)) ? TRUE:FALSE)
#define Ack_BOD_reset() (MCUSR= ~(1<<BORF))
#define Is_wdt_reset()  ((MCUSR&(1<<WDRF)) ? TRUE:FALSE)
#define Ack_wdt_reset() (MCUSR= ~(1<<WDRF))

#ifdef AVRGCC
//#define Wdt_reset_instruction()   (asm("WDR"))
#define Wdt_reset_instruction()  (wdt_reset())
#else
#define Wdt_reset_instruction()  (__watchdog_reset())
#endif
#define Wdt_clear_flag()         (Ack_wdt_reset())
#define Wdt_change_enable()      (WDTCSR |= (1<<WDCE) | (1<<WDE))
#define Wdt_enable_16ms()        (WDTCSR =  (1<<WDE))
#define Wdt_enable_32ms()        (WDTCSR =  (1<<WDE) | (1<<WDP0) )
#define Wdt_enable_64ms()        (WDTCSR =  (1<<WDE) | (1<<WDP1) )
#define Wdt_enable_125ms()       (WDTCSR =  (1<<WDE) | (1<<WDP1) | (1<<WDP0))
#define Wdt_enable_250ms()       (WDTCSR =  (1<<WDE) | (1<<WDP2) )
#define Wdt_enable_500ms()       (WDTCSR =  (1<<WDE) | (1<<WDP2) | (1<<WDP0))
#define Wdt_enable_1s()          (WDTCSR =  (1<<WDE) | (1<<WDP2) | (1<<WDP1))
#define Wdt_enable_2s()          (WDTCSR =  (1<<WDE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0))
#define Wdt_enable_4s()          (WDTCSR =  (1<<WDE) | (1<<WDP3) )
#define Wdt_enable_8s()          (WDTCSR =  (1<<WDE) | (1<<WDP3) | (1<<WDP0))

#define Wdt_interrupt_16ms()     (WDTCSR =  (1<<WDIE))
#define Wdt_interrupt_32ms()     (WDTCSR =  (1<<WDIE) | (1<<WDP0) )
#define Wdt_interrupt_64ms()     (WDTCSR =  (1<<WDIE) | (1<<WDP1) )
#define Wdt_interrupt_125ms()    (WDTCSR =  (1<<WDIE) | (1<<WDP1) | (1<<WDP0))
#define Wdt_interrupt_250ms()    (WDTCSR =  (1<<WDIE) | (1<<WDP2) )
#define Wdt_interrupt_500ms()    (WDTCSR =  (1<<WDIE) | (1<<WDP2) | (1<<WDP0))
#define Wdt_interrupt_1s()       (WDTCSR =  (1<<WDIE) | (1<<WDP2) | (1<<WDP1))
#define Wdt_interrupt_2s()       (WDTCSR =  (1<<WDIE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0))
#define Wdt_interrupt_4s()       (WDTCSR =  (1<<WDIE) | (1<<WDP3) )
#define Wdt_interrupt_8s()       (WDTCSR =  (1<<WDIE) | (1<<WDP3) | (1<<WDP0))

#define Wdt_enable_reserved5()   (WDTCSR =  (1<<WDE) | (1<<WDP3) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0))
#define Wdt_stop()               (WDTCSR = 0x00)

#define Wdt_ack_interrupt()      (WDTCSR = ~(1<<WDIF))


//! Wdt_off.
//!
//! This macro stops the hardware watchdog timer.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_off()                (Wdt_reset_instruction(),  \
                                  Wdt_clear_flag(),         \
                                  Wdt_change_enable(),      \
                                  Wdt_stop())




//! wdt_change_16ms.
//!
//! This macro activates the hardware watchdog timer for 16ms timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_16ms()        (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_32ms() )
                              
//! wdt_change_32ms.
//!
//! This macro activates the hardware watchdog timer for 32ms timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_32ms()        (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_32ms() )


//! wdt_change_64ms.
//!
//! This macro activates the hardware watchdog timer for 64ms timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_64ms()        (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_64ms() )




//! wdt_change_32ms.
//!
//! This macro activates the hardware watchdog timer for 125ms timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_125ms()       (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_125ms() )

//! wdt_change_250ms.
//!
//! This macro activates the hardware watchdog timer for 250ms timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_250ms()       (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_250ms() )

//! wdt_change_500ms.
//!
//! This macro activates the hardware watchdog timer for 500ms timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_500ms()       (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_500ms() )

//! wdt_change_1s.
//!
//! This macro activates the hardware watchdog timer for 1s timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_1s()          (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_1s() )


//! wdt_change_2s.
//!
//! This macro activates the hardware watchdog timer for 2s timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_2s()          (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_2s() )
//! wdt_change_4s.
//!
//! This macro activates the hardware watchdog timer for 4s timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_4s()          (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_4s() )


//! wdt_change_8s.
//!
//! This macro activates the hardware watchdog timer for 8s timeout.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_8s()          (Wdt_reset_instruction(), \
                                  Wdt_change_enable(),     \
                                  Wdt_enable_8s() )


//! wdt_change_interrupt_16ms.
//!
//! This macro activates the hardware watchdog timer for 16ms interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_16ms()    (Wdt_reset_instruction(), \
                                        Wdt_change_enable(),     \
                                        Wdt_interrupt_16ms() )

//! wdt_change_interrupt_32ms.
//!
//! This macro activates the hardware watchdog timer for 32ms interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_32ms()    (Wdt_reset_instruction(), \
                                        Wdt_change_enable(),     \
                                        Wdt_interrupt_32ms() )

//! wdt_change_interrupt_64ms.
//!
//! This macro activates the hardware watchdog timer for 64ms interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_64ms()    (Wdt_reset_instruction(), \
                                        Wdt_change_enable(),     \
                                        Wdt_interrupt_64ms() )

//! wdt_change_interrupt_125ms.
//!
//! This macro activates the hardware watchdog timer for 125ms interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_125ms()      (Wdt_reset_instruction(), \
                                           Wdt_change_enable(),     \
                                           Wdt_interrupt_125ms() )

//! wdt_change_interrupt_250ms.
//!
//! This macro activates the hardware watchdog timer for 250ms interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_250ms()      (Wdt_reset_instruction(), \
                  Wdt_change_enable(),     \
                  Wdt_interrupt_250ms() )

//! wdt_change_interrupt_500ms.
//!
//! This macro activates the hardware watchdog timer for 500ms interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_500ms()      (Wdt_reset_instruction(), \
                  Wdt_change_enable(),     \
                  Wdt_interrupt_500ms() )

//! wdt_change_interrupt_1s.
//!
//! This macro activates the hardware watchdog timer for 1s interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_1s()      (Wdt_reset_instruction(), \
                  Wdt_change_enable(),     \
                  Wdt_interrupt_1s() )

//! wdt_change_interrupt_2s.
//!
//! This macro activates the hardware watchdog timer for 2s interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_2s()      (Wdt_reset_instruction(), \
                  Wdt_change_enable(),     \
                  Wdt_interrupt_2s() )

//! wdt_change_interrupt_4s.
//!
//! This macro activates the hardware watchdog timer for 4s interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_4s()      (Wdt_reset_instruction(), \
                  Wdt_change_enable(),     \
                  Wdt_interrupt_4s() )

//! wdt_change_interrupt_8s.
//!
//! This macro activates the hardware watchdog timer for 8s interrupt.
//!
//! @warning Interrupts should be disable before call to ensure
//! no timed sequence break.
//!
//! @param none
//!
//! @return none.
//!
#define Wdt_change_interrupt_8s()      (Wdt_reset_instruction(), \
                  Wdt_change_enable(),     \
                  Wdt_interrupt_8s() )

#define Wdt_change_reserved5()   (Wdt_reset_instruction(), \
                                 Wdt_change_enable(),     \
                                 Wdt_enable_reserved5() )

#define Soft_reset()             {asm("jmp 0000");}

//! @}




#endif  // _WDT_DRV_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久久久久 | 久久九九久久九九| 欧美三级日韩在线| 色婷婷精品久久二区二区蜜臀av | 国产日韩欧美一区二区三区综合| 日韩免费高清视频| 欧美精品一区二区高清在线观看 | 欧美一区二区三区成人| 欧美日本视频在线| 欧美一区二区三区白人| 日韩美女在线视频 | 一区二区三区中文在线| 精品一区二区综合| 老司机精品视频在线| 国产成人丝袜美腿| 91同城在线观看| 91成人免费网站| 欧美丰满高潮xxxx喷水动漫| 日韩一区二区三区免费看 | 96av麻豆蜜桃一区二区| 色香蕉成人二区免费| 欧美日韩你懂的| 日韩欧美一区二区三区在线| 久久精品欧美日韩精品| 亚洲免费成人av| 乱中年女人伦av一区二区| 懂色中文一区二区在线播放| 在线亚洲+欧美+日本专区| 精品久久久网站| 亚洲精品v日韩精品| 卡一卡二国产精品| 99久久777色| 精品国产乱码久久久久久1区2区| 亚洲欧洲av另类| jizz一区二区| 欧美日韩在线免费视频| 久久久一区二区三区| 亚洲一级二级三级| 国产九色sp调教91| 欧美日本韩国一区| 中文字幕一区二区三区视频| 麻豆视频观看网址久久| 在线观看视频一区| 国产午夜三级一区二区三| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲在线成人精品| 粉嫩av一区二区三区粉嫩| 欧美一区二区三区视频免费 | 精品少妇一区二区三区| 亚洲精品综合在线| 国产成人啪免费观看软件| 欧美一区二区久久久| 亚洲综合精品久久| 成人精品一区二区三区四区| 久久亚洲免费视频| 蜜臀久久99精品久久久久宅男| 欧美优质美女网站| 亚洲欧洲精品成人久久奇米网| 久久不见久久见免费视频7| 欧美精品一区在线观看| 婷婷国产在线综合| 91论坛在线播放| 国产精品对白交换视频| 国产成人综合网站| 国产午夜精品美女毛片视频| 韩国av一区二区三区| 日韩欧美在线1卡| 日韩成人dvd| 日韩精品最新网址| 麻豆视频一区二区| 91精品欧美福利在线观看| 午夜精品免费在线| 欧美久久一区二区| 日韩中文字幕av电影| 欧美另类z0zxhd电影| 首页亚洲欧美制服丝腿| 欧美精品在线观看播放| 日产国产高清一区二区三区| 欧美一区三区二区| 蜜臀va亚洲va欧美va天堂| 精品日韩在线观看| 国产麻豆欧美日韩一区| 国产偷国产偷精品高清尤物| 国产成人av在线影院| 国产精品天天看| 91热门视频在线观看| 一区二区三区在线影院| 欧美高清www午色夜在线视频| 视频一区二区国产| 久久综合99re88久久爱| 国产精品一区专区| 亚洲欧美影音先锋| 欧美色爱综合网| 另类小说色综合网站| 国产三级一区二区三区| 97se亚洲国产综合自在线观| 午夜视频在线观看一区| 日韩视频中午一区| 成人性生交大片免费看视频在线 | 2017欧美狠狠色| 粉嫩av一区二区三区| 亚洲国产欧美在线| 26uuu欧美| 日韩美女一区二区三区| 成人免费看视频| 青娱乐精品视频| 中文字幕亚洲区| 欧美精品久久天天躁| 国产v综合v亚洲欧| 午夜视频在线观看一区| 国产精品女人毛片| 制服视频三区第一页精品| 成人国产精品免费| 日本午夜一区二区| 又紧又大又爽精品一区二区| 精品剧情v国产在线观看在线| 色综合天天综合网国产成人综合天 | 欧美日韩国产片| 成人丝袜18视频在线观看| 日韩精彩视频在线观看| 中文字幕一区日韩精品欧美| 日韩欧美在线观看一区二区三区| 色视频成人在线观看免| 成人高清免费在线播放| 青青草国产成人av片免费| 亚洲免费观看高清完整版在线观看熊| 久久婷婷一区二区三区| 欧美一区二区国产| 色婷婷综合在线| 丁香一区二区三区| 久久精品国产精品亚洲精品| 亚洲国产精品一区二区久久 | 在线观看精品一区| a美女胸又www黄视频久久| 国产精品456露脸| 麻豆视频观看网址久久| 日本伊人色综合网| 亚洲高清久久久| 亚洲国产精品嫩草影院| 亚洲男人的天堂在线aⅴ视频| 国产精品三级av| 国产婷婷精品av在线| 精品国产一区二区三区久久影院| 欧美高清你懂得| 9191国产精品| 制服丝袜在线91| 91麻豆精品91久久久久久清纯 | 国产黄人亚洲片| 国内欧美视频一区二区| 国产美女一区二区三区| 久久精品国产999大香线蕉| 青青草视频一区| 激情综合亚洲精品| 国模无码大尺度一区二区三区| 狠狠狠色丁香婷婷综合激情 | 色悠悠久久综合| 色婷婷一区二区三区四区| 色综合久久久久久久久| 在线观看欧美精品| 7777精品伊人久久久大香线蕉| 欧美一级日韩一级| 精品久久久久久最新网址| 久久综合久久久久88| 欧美激情在线观看视频免费| 中文字幕一区av| 亚洲综合一区二区精品导航| 亚洲成在人线在线播放| 麻豆精品视频在线| 国产精品一区二区久激情瑜伽| 99久久婷婷国产| 欧美日韩一区二区三区不卡| 日韩一二三四区| 欧美经典一区二区| 亚洲激情欧美激情| 免费xxxx性欧美18vr| 欧美日韩国产首页| 久久综合狠狠综合| 亚洲欧美一区二区三区孕妇| 天天综合天天综合色| 处破女av一区二区| 91黄色免费看| 久久久精品天堂| 一区二区欧美在线观看| 久久精品72免费观看| 99国产精品久| 欧美一区二区三区思思人| 国产精品久久久久aaaa樱花| 亚洲妇女屁股眼交7| 国产精品中文字幕欧美| 欧美三级电影一区| 国产精品日韩精品欧美在线| 日日夜夜精品视频免费| 成人午夜大片免费观看| 91精品国产品国语在线不卡| 中文字幕不卡在线| 热久久一区二区| 欧美日韩一本到| 国产精品白丝在线| 国产精品影视网| 日韩一区二区三区免费观看|