新聞中心

        S3C2440-WDT

        作者: 時間:2016-12-02 來源:網絡 收藏




        看門狗定時器計數寄存器:

        WTCNT包含看門狗定時器的當前值。



        下面是看門狗復位的程序:

        #define WTCON (*(volatile unsigned *) 0x53000000)
        #define WTDAT (*(volatile unsigned *) 0x53000004)
        #define WTCNT (*(volatile unsigned *) 0x53000008)

        int WdtMain(){
        WTCON = 0x64<<8; //Prescaler=100,時鐘頻率為3.9KHz
        WTCON |= (0x1<<5)|(0x1); //看門狗定時器超時,發出復位信號
        WTCON |= 0x3<<3; //Division=128
        WTDAT = 0x2DC6; //使復位時間為3s
        WTCNT = 0x2DC6;
        while(1){}
        return 0;
        }

        看門狗定時程序:
        #define rGPBCON (*(volatile unsigned *)0x56000010)
        #define rGPBDAT (*(volatile unsigned *)0x56000014)
        #define rGPBUP (*(volatile unsigned *)0x56000018)
        #define rSRCPND (*(volatile unsigned *)0x4a000000)
        #define rINTMSK (*(volatile unsigned *)0x4a000008)
        #define rINTPND (*(volatile unsigned *)0x4a000010)
        #define rSUBSRCPND(*(volatile unsigned *)0x4a000018)
        #define rINTSUBMSK(*(volatile unsigned *)0x4a00001c)
        #define rWTCON (*(volatile unsigned *)0x53000000)
        #define rWTDAT (*(volatile unsigned *)0x53000004)
        #define rWTCNT (*(volatile unsigned *)0x53000008)
        #define _ISR_STARTADDRESS 0x33ffff00
        #define pISR_WDT_AC97 (*(unsigned *)(_ISR_STARTADDRESS+0x44))
        #define U32 unsigned int

        void delay(int a)
        {
        int k,i,j;
        for(k=0;k<a;k++)
        for(i = 0; i < 0xff; i++)
        for(j = 0; j < 0xff; j++)
        ;
        }

        void __irq WDT_ISR(void){
        rGPBDAT |= 0x1;
        delay(100);
        rGPBDAT &= 0xfe;
        rSUBSRCPND = 0x1<<13;
        rSRCPND = 0x1<<9; //SRCPND 通過寫入數據清零,如果不清零,會反復進行請求
        rINTPND = 0x1<<9;
        }

        int Main(){
        rGPBCON = 0xfffc;
        rGPBCON |= 0x1;
        rWTCON = 0x64<<8; //Prescaler=100
        rWTCON |= (0x1<<5)|(0x1<<2); //WDT計時器使能,中斷使能
        rWTCON |= 3<<3;
        rWTDAT = 0x1E84; //使中斷時間為2s
        rWTCNT = 0x1E84;
        rSUBSRCPND = 0x1<<13;
        rSRCPND = 0x1<<9; //SRCPND 通過寫入數據清零,如果不清零,會反復進行請求
        rINTPND = 0x1<<9;
        rINTSUBMSK = "(0x1<<13);
        rINTMSK = "(0x1<<9);
        pISR_WDT_AC97 = (U32)WDT_ISR;
        while(1);
        return 0;
        }

        上一頁 1 2 下一頁

        關鍵詞: S3C2440WD

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 扎赉特旗| 海门市| 江安县| 句容市| 常熟市| 繁昌县| 逊克县| 嘉禾县| 霸州市| 电白县| 和政县| 文安县| 青龙| 方正县| 岳西县| 泌阳县| 博罗县| 胶南市| 三门峡市| 富阳市| 敦化市| 都昌县| 乌拉特中旗| 陆丰市| 浏阳市| 织金县| 恩施市| 大洼县| 北京市| 成武县| 沭阳县| 璧山县| 化德县| 广元市| 南和县| 上高县| 张掖市| 兴化市| 闸北区| 高要市| 文登市|