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

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

?? rst_main.c

?? avr-atmega復位檢測與看門狗范例
?? C
字號:
/***********************************************
****      AVR  復位檢測和控制看門狗的范例       ***
****  	                                     ***
**** 作者:  HJJourAVR                        ***
**** 編譯器:WINAVR20050214                   ***
****                                         ***
****  	www.OurAVR.com	 2005.9.28           ***
***********************************************/
/*
本程序簡單的示范了AVRATMEGA16的復位檢測和控制看門狗
		系統控制和復位
		復位來源的檢測
			JTAG復位指示
			看門狗復位指示
			BOD復位指示
			RESET引腳復位指示
			上電復位指示
		看門狗的控制
 
出于簡化程序考慮,各種數據沒有對外輸出,學習時建議使用JTAG ICE硬件仿真器。
熔絲位設置 
1 使能BOD功能 BODEN=0  
2 選擇BOD電平 BODLEVEL=1  2.7V(VCC=3V)  (可選) 
			 BODLEVEL=0  4.0V(VCC=5V)  (可選) 
*/

#include <avr/io.h>
#include <avr/delay.h>
//時鐘定為內部RC 1MHz,F_CPU=1000000 也可以采用其他時鐘
#include <avr/wdt.h>
/*
wdt.h里面
看門狗溢出時間常量定義
	#define WDTO_15MS   0
	#define WDTO_30MS   1
	#define WDTO_60MS   2
	#define WDTO_120MS  3
	#define WDTO_250MS  4
	#define WDTO_500MS  5
	#define WDTO_1S     6
	#define WDTO_2S     7
	下面的4S/8S定義只能用于 ATtiny2313, ATmega48, ATmega88 and the ATmega168.
	#define WDTO_4S     8
	#define WDTO_8S     9
看門狗操作函數
	wdt_disable()
	關閉看門狗
	wdt_enable(timeout)
	使能看門狗及溢出時間設定
	wdt_reset()
	復位看門狗(喂狗)
*/
//管腳定義

#define  WDT_EN		7	//PA7 看門狗的喂狗控制引腳
						// 高電平,不喂狗
						// 低電平,喂狗

#define  LED_JT		4	//PA4 JTAG復位指示
#define  LED_WD		3	//PA3 看門狗復位指示
#define  LED_BO		2	//PA2 BOD復位指示
#define  LED_EXT    1	//PA1 RESET引腳復位指示
#define  LED_PO		0	//PA0 上電復位指示
//以上信號皆為低電平有效


int main(void)
{
    unsigned char CPU_STATUS;
    unsigned char i;
    //上電默認DDRx=0x00,PORTx=0x00 輸入,無上拉電阻
    PORTB =0xFF;									//不用的管腳使能內部上拉電阻。
    PORTC =0xFF;
    PORTD =0xFF;
    PORTA =0xFF;
    DDRA  =(1<<LED_JT)|(1<<LED_WD)|(1<<LED_BO)|(1<<LED_EXT)|(1<<LED_PO);	//輸出驅動LED

    CPU_STATUS =MCUCSR;			//讀取MCU控制和狀態寄存器
    //可以在JTAG調試時直接觀察 MCUCSR的狀態。
    CPU_STATUS&=0x1F;
    switch (CPU_STATUS)
    {
    case (1<<JTRF):			//JTAG引起的復位?
        PORTA&=~(1<<LED_JT);
        break;
    case (1<<WDRF):			//看門狗引起的復位?
        PORTA&=~(1<<LED_WD);
        break;
    case (1<<BORF):			//BOD引起的復位?
        PORTA&=~(1<<LED_BO);
        break;
    case (1<<EXTRF):		//RESET引腳引起的復位?
        PORTA&=~(1<<LED_EXT);
        break;
    case (1<<PORF):			//上電引起的復位?
        PORTA&=~(1<<LED_PO);
        break;
    default:				//多種復位同時發生?
        PORTA=~CPU_STATUS;	
        break;
    }
    MCUCSR=0x00;			//清除標志位
    
    for(i=0;i<200;i++)
        _delay_ms(10);		//延時2秒
    wdt_enable(WDTO_2S);	//使能看門狗,溢出時間為2秒左右
    while(1)
	{
        if (!(PINA&(1<<WDT_EN)))
            wdt_reset();		//如果PA7為低電平時,復位看門狗(喂狗)
    }
}

/*
程序運行效果
	如果PA7是高電平,不喂狗,則每2秒鐘看門狗復位一次,LED_WD亮
	如果PA7是低電平,喂狗,則方便作如下實驗
	    第一次上電時,發生上電復位事件,LED_PO亮
	    按下復位按鍵,發上外部復位事件,LED_EXT亮
	    調節電源電壓調到4.0V(或2.7V)以下,然后調回5.0V(3.0V),發生BOD復位事件,LED_BO亮
	    在JTAG調試時,使用[reset]功能,發生JTAG復位事件,LED_JT亮
	注意:有時候會出現多種復位事件同時發生,例如:
		上電的同時按住復位按鍵,將會同時發生  上電復位事件和外部復位事件
*/

/*
系統控制和復位
	復位AVR 復位時所有的I/O 寄存器都被設置為初始值,程序從復位向量處開始執行。
	復位向量處的指令必須是絕對跳轉JMP 指令,以使程序跳轉到復位處理例程。
	如果程序永遠不利用中斷功能,中斷向量可以由一般的程序代碼所覆蓋。
	這個處理方法同樣適用于當復位向量位于應用程序區,中斷向量位于Boot 區 — 或者反過來 — 的時候。
	復位源有效時I/O 端口立即復位為初始值。此時不要求任何時鐘處于正常運行狀態。
	
	所有的復位信號消失之后,芯片內部的一個延遲計數器被激活,將內部復位的時間延長。
	這種處理方式使得在MCU 正常工作之前有一定的時間讓電源達到穩定的電平。
	延遲計數器的溢出時間通過熔絲位SUT 與CKSEL 設定。延遲時間的選擇請參見 P23“ 時鐘源” 。
	
復位源ATmega16 有5 個復位源:
	上電復位。電源電壓低于上電復位門限 VPOT 時, MCU 復位。
	外部復位。引腳 RESET 上的低電平持續時間大于最小脈沖寬度時MCU 復位。
	看門狗復位。看門狗使能并且看門狗定時器溢出時復位發生。
	掉電檢測復位。掉電檢測復位功能使能,且電源電壓低于掉電檢測復位門限 VBOT 時MCU 即復位。
	JTAG AVR復位。復位寄存器為1時MCU復位。詳見 P215“IEEE 1149.1 (JTAG) 邊界掃描” 。
	
上電復位
	上電復位(POR) 脈沖由片內檢測電路產生。 
	無論何時VCC 低于檢測電平POR 即發生。
	POR 電路可以用來觸發啟動復位,或者用來檢測電源故障。
	POR電路保證器件在上電時復位。
	VCC 達到上電門限電壓后觸發延遲計數器。在計數器溢出之前器件一直保持為復位狀態。
	當VCC 下降時,只要低于檢測門限,RESET 信號立即生效。
 
外部復位
	外部復位由外加于RESET 引腳的低電平產生。
	當復位低電平持續時間大于最小脈沖寬度時即觸發復位過程,即使此時并沒有時鐘信號在運行。
	當外加信號達到復位門限電壓VRST( 上升沿) 時, tTOUT 延時周期開始。
	延時結束后MCU 即啟動。
	
掉電檢測
	ATmega16 具有片內BOD(Brown-out Detection) 電路,通過與固定的觸發電平的對比來檢測工作過程中VCC 的變化。
	此觸發電平通過熔絲位BODLEVEL 來設定, 2.7V(BODLEVEL 未編程),4.0V (BODLEVEL 已編程)。
	BOD 的觸發電平具有遲滯功能以消除電源尖峰的影響。
	這個遲滯功能可以解釋為VBOT+ = VBOT + VHYST/2 以及VBOT- = VBOT- VHYST/2。
	BOD 電路的開關由熔絲位BODEN控制。
	當BOD使能后(BODEN被編程),一旦VCC下降到觸發電平以下(VBOT-), BOD 復位立即被激發。
	當VCC 上升到觸發電平以上時(VBOT+),延時計數器開始計數,一旦超過溢出時間tTOUT,MCU即恢復工作。
	如果VCC一直低于觸發電平并保持tBOD時間, BOD電路將只檢測電壓跌落。
 
看門狗復位
	看門狗定時器溢出時將產生持續時間為1 個CK 周期的復位脈沖。
	在脈沖的下降沿,延時定時器開始對tTOUT 記數
	
MCU控制和狀態寄存器-MCUCSR
	MCU 控制和狀態寄存器提供了有關引起MCU 復位的復位源的信息
		Bit 4 – JTRF: JTAG 復位標志
			通過JTAG 指令AVR_RESET 可以使JTAG 復位寄存器置位,并引發MCU 復位,并使JTRF 置位。
			上電復位將使其清零,也可以通過寫”0” 來清除。
		Bit 3 – WDRF: 看門狗復位標志
			看門狗復位發生時置位。
			上電復位將使其清零,也可以通過寫”0” 來清除。
		Bit 2 – BORF: 掉電檢測復位標志
			掉電檢測復位發生時置位。
			上電復位將使其清零,也可以通過寫”0” 來清除。
		Bit 1 – EXTRF: 外部復位標志
			外部復位發生時置位。
			上電復位將使其清零,也可以通過寫”0” 來清除。
		Bit 0 – PORF: 上電復位標志
			上電復位發生時置位。
			只能通過寫”0” 來清除。
	為了使用這些復位標志來識別復位條件,用戶應該盡早讀取此寄存器的數據,然后將其復位。
	如果在其他復位發生之前將此寄存器復位,則后續復位源可以通過檢查復位標志來了解
	
看門狗定時器
	看門狗定時器由獨立的1Mhz 片內振蕩器驅動。這是VCC = 5V 時的典型值。
	通過設置看門狗定時器的預分頻器可以調節看門狗復位的時間間隔。
	看門狗復位指令WDR 用來復位看門狗定時器。
	此外,禁止看門狗定時器或發生復位時定時器也被復位。
	復位時間有8 個選項。
	如果沒有及時復位定時器,一旦時間超過復位周期, ATmega16 就復位,并執行復位向量指向的程序。
	
	為了防止無意之間禁止看門狗定時器,在看門狗禁用后必須跟一個特定的修改序列。
		1. 在同一個指令內對WDTOE 和WDE 寫"1“,即使WDE 已經為"1“
		2. 在緊接的4 個時鐘周期之內對WDE 寫"0”
		
看門狗定時器控制寄存器-WDTCR
	Bit 4 – WDTOE: 看門狗修改使能
		清零WDE 時必須置位WDTOE,否則不能禁止看門狗。
		一旦置位,硬件將在緊接的4個時鐘周期之后將其清零。請參考有關WDE 的說明來禁止看門狗。
	Bit 3 – WDE: 使能看門狗
		WDE為"1“ 時,看門狗使能,否則看門狗將被禁止。
		只有在WDTOE為"1“ 時WDE 才能清零。以下為關閉看門狗的步驟:
		1. 在同一個指令內對WDTOE 和WDE 寫"1“,即使WDE 已經為"1“
		2. 在緊接的4 個時鐘周期之內對WDE 寫"0”
	Bits 2..0 – WDP2, WDP1, WDP0: 看門狗定時器預分頻器2, 1 和 0
		WDP2、WDP1 和WDP0 決定看門狗定時器的預分頻器
 
   WDP2 WDP1 WDP0   看門狗振蕩器周期  VCC=3.0V時典型的溢出周期  VCC=5.0V時典型的溢出周期
    0    0     0      16K   (16384)       17.1ms                   16.3ms
    0    0     1      32K   (32768)       34.3ms                   32.5ms
    0    1     0      64K   (65536)       68.5ms                     65ms
    0    1     1     128K  (131072)       0.14s                    0.13s
    1    0     0     256K  (262144)       0.27s                    0.26s
    1    0     1     512K  (524288)       0.55s                    0.52s
    1    1     0    1024K (1048576)       1.1 s                    1.0 s
    1    1     1    2048K (2097152)       2.2 s                    2.1 s
    
    
掉電檢測BOD的誤解
		AVR自帶的BOD(Brown-out Detection)電路,作用是在電壓過低(低于設定值)時產生復位信號,防止CPU意外動作.
		對EEPROM的保護作用是當電壓過低時保持RESET信號為低,防止CPU意外動作,錯誤修改了EEPROM的內容
		
		而我們所理解的掉電檢測功能是指 具有預測功能的可以進行軟件處理的功能。
		例如,用戶想在電源掉電時把SRAM數據轉存到EEPROM,可行的方法是 
		   外接一個在4.5V翻轉的電壓比較器(VCC=5.0V,BOD=2.7V),輸出接到外部中斷引腳(或其他中斷)
		   一但電壓低于4.5V,馬上觸發中斷,在中斷服務程序中把數據寫到EEPROM中保護起來
	注意: 寫一個字節的EEPROM時間長達8mS,所以不能寫入太多數據,電源濾波電容也要選大一些
*/


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re热视频精品| 九九在线精品视频| 久久久久久久久久久久久夜| 日韩视频免费直播| 91精品在线一区二区| 欧美精品三级在线观看| 欧美精品黑人性xxxx| 91麻豆精品国产自产在线| 欧美精品视频www在线观看| 91精品国产入口在线| 欧美电影免费观看完整版| 精品久久久久av影院| 国产人成亚洲第一网站在线播放| 久久一二三国产| 中文字幕av一区二区三区高| 自拍偷拍国产精品| 夜色激情一区二区| 日韩国产欧美三级| 国产资源在线一区| av午夜精品一区二区三区| 在线观看视频91| 日韩一区二区三区视频在线| 精品少妇一区二区三区| 国产精品久久免费看| 亚洲国产精品影院| 精品一区二区三区视频在线观看| 国产不卡视频一区| 欧美性生活久久| 久久久精品日韩欧美| 亚洲综合色在线| 国产一区二区主播在线| 色婷婷综合久色| 欧美成人性福生活免费看| 中文字幕免费不卡在线| 亚洲一区二区中文在线| 国产一区二区三区免费观看| 一本色道久久综合亚洲精品按摩| 日韩午夜精品视频| 亚洲女同女同女同女同女同69| 午夜av电影一区| 99re热这里只有精品视频| 精品乱人伦一区二区三区| 亚洲人成网站色在线观看| 麻豆精品一区二区综合av| 99久久99久久精品免费观看| 欧美成人艳星乳罩| 亚洲线精品一区二区三区| 国产精品99久久久| 欧美丰满少妇xxxxx高潮对白 | 欧美日韩一区在线| 久久一夜天堂av一区二区三区 | 久久久久久久久久看片| 亚洲图片欧美视频| 91在线精品一区二区| 精品免费日韩av| 亚洲aⅴ怡春院| 91福利视频网站| 亚洲美女淫视频| 不卡一区二区中文字幕| 久久综合色一综合色88| 午夜精品成人在线视频| 91欧美一区二区| 国产精品二三区| av不卡在线观看| 国产精品午夜在线| 国产福利91精品| 久久久久久久精| 国产主播一区二区| 久久中文娱乐网| 国模冰冰炮一区二区| 精品国产三级a在线观看| 日韩电影一区二区三区四区| 欧美日韩在线三级| 午夜激情一区二区三区| 欧美日韩综合色| 天天综合天天做天天综合| 欧美亚洲另类激情小说| 一二三区精品视频| 欧美人牲a欧美精品| 婷婷丁香久久五月婷婷| 欧美va日韩va| 国产一区二区三区四| 欧美激情在线一区二区三区| 成人免费视频国产在线观看| 国产精品高潮呻吟| 欧美主播一区二区三区| 亚洲成a人v欧美综合天堂下载| 欧美日高清视频| 久久精品二区亚洲w码| 日韩精品一区二区三区swag| 国产传媒久久文化传媒| 国产精品福利一区| 欧美日韩中文另类| 蜜芽一区二区三区| 欧美激情在线免费观看| gogo大胆日本视频一区| 亚洲第一久久影院| 欧美xxxx在线观看| 不卡电影一区二区三区| 亚洲一区二区三区在线看| 51精品国自产在线| 国产经典欧美精品| 亚洲国产精品久久人人爱蜜臀 | 色综合久久精品| 亚洲成人三级小说| 久久久久88色偷偷免费 | 丝瓜av网站精品一区二区| 91精品国产综合久久精品app| 精品一区二区三区av| 国产精品视频免费看| 欧美色综合天天久久综合精品| 日韩 欧美一区二区三区| 久久久久国产一区二区三区四区| 91免费国产视频网站| 毛片基地黄久久久久久天堂| 日本一区二区三区在线不卡| 欧美午夜电影网| 成人综合婷婷国产精品久久蜜臀| 一区二区三区国产豹纹内裤在线| 精品少妇一区二区三区免费观看 | 午夜久久久久久| 欧美日韩成人高清| 一区二区免费在线播放| 欧美国产一区二区在线观看| 国产日韩欧美制服另类| 国产日韩欧美一区二区三区乱码 | 色伊人久久综合中文字幕| 成人av在线播放网址| 99精品久久免费看蜜臀剧情介绍 | 国产盗摄一区二区| 国产精品亚洲一区二区三区妖精| 国产在线精品一区二区| 成人在线一区二区三区| 色综合天天综合狠狠| 欧美亚洲一区二区三区四区| 日韩欧美视频一区| 国产视频一区不卡| 亚洲成人一区二区在线观看| 精品中文字幕一区二区| 成人永久aaa| 欧美探花视频资源| 欧美tickling网站挠脚心| 欧美高清在线精品一区| 一区二区三区日韩| 精品一区二区久久久| 9l国产精品久久久久麻豆| 欧美日韩在线免费视频| 精品理论电影在线| 亚洲免费观看高清完整| 免费在线观看视频一区| 成人高清av在线| 7799精品视频| 国产精品高潮呻吟久久| 五月激情综合色| 懂色av一区二区夜夜嗨| 欧美日韩一级视频| 中文在线免费一区三区高中清不卡| 亚洲一区二区在线免费观看视频| 久草热8精品视频在线观看| 一本色道综合亚洲| 国产亚洲婷婷免费| 日韩精品亚洲一区| 99久久精品免费| www久久久久| 婷婷国产v国产偷v亚洲高清| 99精品欧美一区二区蜜桃免费| 欧美一区午夜视频在线观看| 亚洲人成在线播放网站岛国| 裸体健美xxxx欧美裸体表演| 在线国产电影不卡| 国产精品乱码一区二区三区软件 | 国产欧美日韩麻豆91| 亚洲福利视频一区二区| 不卡一区二区在线| 精品国产一区二区三区久久影院| 一区二区三区久久| 国产成人精品亚洲777人妖| 欧美疯狂做受xxxx富婆| 一二三四社区欧美黄| 成人av网站在线| 久久久久99精品国产片| 久久99久久精品| 91精品国产乱码| 丝袜a∨在线一区二区三区不卡| 日本福利一区二区| 最好看的中文字幕久久| 成人深夜视频在线观看| 欧美激情一区不卡| 国产精品亚洲视频| 国产亚洲自拍一区| 国产一区二区三区在线看麻豆 | 欧美日韩精品久久久| 亚洲蜜臀av乱码久久精品蜜桃| 国产aⅴ综合色| 久久久www免费人成精品| 久99久精品视频免费观看| 久久综合国产精品| 国产一区二区日韩精品| 欧美精品一区二区三区很污很色的| 免费在线一区观看|