久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4181|回復: 0
打印 上一主題 下一主題
收起左側

S3C2410看門狗watchdog寄存器介紹與使用源碼等資料

[復制鏈接]
跳轉到指定樓層
樓主
ID:332016 發表于 2018-5-17 11:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
看門狗應用實驗
1、實驗目的
    了解watchdog 的作用
    掌握S3C2410 的watchdog 定時器的使用方法
2、實驗內容
     實現看門狗復位
     編程實現看門狗喂狗
3、實驗設備
    S3C2410 開發板
    ADS1.2 集成開發環境,JTAG 調試器、串口連接線
4、實驗原理
4.1 看門狗功能簡述
    嵌入式系統運行時受到外部干擾或者系統錯誤,程序有時會出現“跑飛”,導致整個系統癱瘓。為了防止這一現象的發生,在對系統穩定性要求較高的場合往往要加入看門狗 (watchdog )電路。看門狗的作用就是當系統“跑飛”而進入死循環時,恢復系統的運行。
4.2 看門狗的工作原理
    其基本原理為:設本系統程序完整運行一周期的時間是Tp,看門狗的定時周期為Ti,Ti>Tp,在程序正常運行時,定時器就不會溢出,若由于干擾等原因使系統不能在Tp時刻修改定時器的記數值,定時器將在Ti  時刻溢出,引發系統復位,使系統得以重新運行,從而起到監控的作用。
4.3S3C2410 的看門狗
    S3C2410 的看門狗定時器有兩個功能:
     作為常規時鐘,并且可以產生中斷;
     作為看門狗定時器使用,當時鐘計數減為0  (超時)時,它將產生一個128 個時鐘
        周期(PCLK )的復位信號。
    主要特性如下:
     通用的中斷方式的16bit 定時器。
     當計數器減到0          (發生溢出),產生128 個PCLK 周期的復位信號。
    下圖為看門狗的電路示意圖,看門狗時鐘使用PCLK 作為他的時鐘源,PCLK 通過預分頻產生適合的看門狗時鐘。

    看門狗模塊包括一個預比例因子放大器,一個是四分頻器,一個16bit 計數器。看門狗的時鐘源來自PCLK,為了得到較寬范圍的看門狗信號,PCLK 先被預分頻,之后再經過分 頻器分頻。預分頻比例因子的分頻值,都可以由看門狗控制器(WTCON )決定,預分頻值 的有效范圍從0 到256-1。分頻因子可以選擇16、32、64 或者128。
看門狗定時器記數值的計算公式如下:
        t_watchdog=1/ [PCLK/( prescaler value +1)/ Division_factor ]
    實驗中PCLK=50MHz;prescaler =WTCON[15:8]=100;clock division factor=128
        t_watchdog= 0.00025856
        看門狗的定時周期為T=WTCH ×t_watchdog
    調試環境下的看門狗
    當S3C2410 用嵌入式ICE 調試的時候,看門狗定時器的復位功能不能啟動,看門狗定時器能從CPU 內核信號判斷出當前CPU 是否處于調試狀態,如果看門狗定時器確定當前模 式是調試模式,盡管看門狗能產生溢出信號,但是仍然不會產生復位信號。

5、S3C2410 相關寄存器
    WTCON――看門狗定時器控制寄存器
    看門狗控制寄存器能夠禁止或者允許看門狗時鐘,從四個不同的時鐘源中挑選時鐘信號,允許或禁止中斷,并且能允許或禁止看門狗時鐘輸出。如果用戶想要使用看門狗作為普 通時鐘,應該中斷使能,禁止看門狗定時器復位。
    WTDAT――看門狗定時器數據寄存器
    WTDAT 用于設置看門狗定時器的超時時間值,在初始化看門狗過程中,WTDAT 的值不會自動加載到定時計數器中,首次使用定時器超時值為其初始值即0x8000,以后該寄存器的值會被自動加載到WTCNT 寄存器中。
    WTCNT――看門狗定時器計數寄存器
    WTCNT 為看門狗定時器工作的時間計數器的當前計數值,注意在初始化看門狗操作后,看門狗數據寄存器(WTDAT )的值不能自動裝載到看門狗計數寄存器(WTCNT )中, 所以看門狗被允許之前應高初始化看門狗計數寄存器的值。
6、看門狗應用編程實現
    由于看門狗是對系統的復位或者中斷的操作,所以不需要外圍的硬件電路。要實現看門狗的功能,只需要對看門狗的寄存器組進行操作。即對看門狗的控制寄存器(WTCON )、 看門狗數據寄存器(WTDAT )、看門狗計數寄存器(WTCNT )的操作。
     設計流程如下:
      設置看門狗中斷操作,包括全局中斷和看門狗中斷的使能,看門狗中斷向量的定義。
      對看門狗控制寄存器(WTCON )的設置,包括設置預分頻比例因子、分頻器的分

          頻值、中斷使能和復位使能等。
      對看門狗數據寄存器(WTDAT )和看門狗技術寄存器(WTCNT )的設置。
      啟動看門狗定時器。
6.1 主功能函數
     /*************************************************
     Function name: Main
     Parameter     : void
     Description   : 主功能函數
     Return           : void
     Argument       : void
     Autor & date :
     **************************************************/
     int Main(void)
     {
          SetClockDivider(1, 1);//FLCK:HCLK:PCLK=1:2:4
          SetSysFclk(DFT_FCLK_VAL);//Fout=200MHZ
          Port_Init();
          Uart_Select(0);
          Uart_Init(0, UART_BAUD);
          Uart_Printf("watchdog test is beginning\n");
          watchdog_test();
     }
6.2  看門狗測試程序
     void watchdog_test(void)
     {
       //initialize interrupt registers
       ClearPending(BIT_WDT);
       //建立WatchDog 中斷
       pISR_WDT=(unsigned)watchdog_int;
       //Prescaler value=100、clock division factor=128
       //t_watchdog=1/[PCLK/(Prescaler value+1)/Division_factor]=0.00025856
       //disable watchdog
                                                                                                      4
----------------------- Page 5-----------------------
        rWTCON=((100<<8)|(3<<3));
        //看門狗時鐘周期T=WTCNT*t_watchdog=4S
        //看門狗喂狗
        rWTDAT=15000;
        rWTCNT=15000;
        rWTCON|=((1<<5)|(1<<2));//enable Watchdog timer ang watchdog interrupt
        rWTCON|=((1<<5)|(1<<2)|1);//watchdog   復位,時間間隔為4S。
        //rWTCON|=(1<<5)|(1<<2);//每4S watchdog     一次中斷。
        //設置watchdog 為IRQ 中斷模式
        rINTMOD&=0xFFFFFDFF;
        //開中斷
        EnableIrq(BIT_WDT);
        while(f_ucSencondNo<11);
       }
6.3  看門狗中斷服務程序
     /****   watchdog_init  ****/
     void __irq watchdog_int(void)
      {
        //清除中斷
        ClearPending(BIT_WDT);
        f_ucSencondNo++;
        if(f_ucSencondNo<11)
        Uart_Printf("%ds",f_ucSencondNo);
        else
        {
          //mask watchdog timer interrupt
          DisableIrq(BIT_WDT);
          Uart_Printf("watch dog is ok\n");
        }
     }
7、實驗過程
     運行該程序后,將會在一段時間后自動產生一個復位信號,自動啟動開發板。

看門狗應用實驗.pdf

104.13 KB, 下載次數: 16, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级二级在线观看 | 亚洲经典一区 | 国产激情免费视频 | 久久综合一区二区 | 三级在线视频 | 精品国产精品三级精品av网址 | 午夜国产一区 | 在线观看国产精品视频 | 国产精品免费一区二区三区四区 | 久久精品国产亚洲一区二区三区 | 久久久123| 一级久久久久久 | 福利社午夜影院 | 午夜精品一区二区三区在线视频 | 精品久久久久久亚洲综合网 | 国产一区二区三区精品久久久 | 欧美一级欧美一级在线播放 | www狠狠干| 先锋资源吧 | 做a视频| 国产精品看片 | 欧美激情视频一区二区三区免费 | 涩涩视频网站在线观看 | 欧美一级二级三级视频 | 日韩高清一区 | 久久伊人操 | 91精品国产综合久久久动漫日韩 | 亚洲午夜精品 | 国产一区二区三区免费 | 国产视频第一页 | 欧美日韩一区在线观看 | 二区亚洲 | 青青伊人久久 | 久在线| 日韩福利一区 | 在线亚洲人成电影网站色www | 精品国产欧美日韩不卡在线观看 | 偷拍自拍网 | 亚洲视频手机在线 | av天天看 | 国产精品夜间视频香蕉 |