新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 我的獨立看門狗總結

        我的獨立看門狗總結

        作者: 時間:2013-04-10 來源:網絡 收藏

        /* Set the Vector Table base location at 0x20000000 */

        NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

        #else /* VECT_TAB_FLASH */

        /* Set the Vector Table base location at 0x08000000 */

        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

        #endif

        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;

        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

        NVIC_Init(NVIC_InitStructure);

        }

        void Timer_init(void)

        {

        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

        // ---------------------------------------------------------------

        // TIM3 Configuration: 定時器3配置

        // TIM3CLK = 36 MHz, Prescaler =36000, TIM3 counter clock = 1KHz

        // SET TTIM3 TIME 200mS

        //---------------------------------------------------------------

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

        // Time base configuration

        TIM_TimeBaseStructure.TIM_Period = 200;

        TIM_TimeBaseStructure.TIM_Prescaler = 0;

        TIM_TimeBaseStructure.TIM_ClockDivision = 0;

        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;

        TIM_TimeBaseInit(TIM3, TIM_TimeBaseStructure);

        //Enables peripheral Preload register on ARR

        TIM_ARRPreloadConfig(TIM3,ENABLE);

        // Prescaler configuration

        TIM_PrescalerConfig(TIM3, 35999, TIM_PSCReloadMode_Immediate);

        TIM_InternalClockConfig(TIM3);

        //Enables TIM interrupts

        TIM_ITConfig(TIM3,TIM_FLAG_Update,ENABLE);

        //TIM3 enable counter

        TIM_Cmd(TIM3, ENABLE);

        }

        ………………………………………………………………………

        void TIM3_IRQHandler(void)

        {

        static u8 count=0;

        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)

        {

        TIM_ClearITPendingBit(TIM3, TIM_IT_Update);

        //TIM3溢出中斷需執行的代碼在此添加

        count++;

        if(count=25)

        {

        /* Enable write access to _PR and _RLR registers */

        _WriteAccessCmd(IWDG_WriteAccess_Enable);

        /* Reload IWDG counter */

        IWDG_ReloadCounter();

        }

        }

        }

        四、結語

        時鐘由內部40KHZ提供,所以不受主時鐘的影響,即一旦啟動看門狗,即便在調試過程中,暫停程序運行,看門狗也將不會停止,在復位時間到后仍會將系統復位。

        分頻器相關文章:分頻器原理
        塵埃粒子計數器相關文章:塵埃粒子計數器原理
        蜂鳴器相關文章:蜂鳴器原理

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 滦南县| 金坛市| 苍溪县| 昌邑市| 舞阳县| 鄂尔多斯市| 大同县| 湘阴县| 自治县| 怀来县| 延吉市| 常熟市| 克什克腾旗| 九龙城区| 马公市| 道真| 道孚县| 泸溪县| 新巴尔虎右旗| 溧水县| 新宾| 莱州市| 长海县| 和静县| 望城县| 清涧县| 和龙市| 冕宁县| 沙湾县| 衡阳县| 留坝县| 鄂托克旗| 湘阴县| 合水县| 大名县| 卓资县| 河曲县| 辽中县| 二手房| 潞西市| 剑河县|