【OK210试用体验】裸机篇 -- WATCHDOG - 在线问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【OK210试用体验】裸机篇 -- WATCHDOG

本帖最后由 q15920078530 于 2015-8-17 01:55 编辑

【OK210试用体验】裸机篇 -- WATCHDOG



      本帖主要学习S5PV210的看门狗定时器的操作。



S5PV210的WATCHDOG



      S5PV210中的WDT是一个由噪音或者系统错误所引起的故障后可以获得控制操作的定时装置。S5PV210的WDT定时器相当于一个普通的16bit的定时器,它与PWM定时器的区别是看门狗定时器可以产生reset信号而PWM定时器不能。

      内部结构框架:

      这里可以看出WDT的时钟来源于PCLK,要经过8位分频器,重要的寄存器WTCON。

      输出时钟频率配置计算:

      

程序编写思路


      初始化WTD:

             WTD启动后WTDAT的数据并不能自动装入WTCNT,所以在启动WTD定时器之前要先装载好计数数据,即装入WTCNT寄存器。

             启动WTD,set WTCON[0] and WTCON[5] as 1。



      WTD初始化配置示例:
  1. WTDAT = 100000000;
  2.         WTCNT = 100000000;
  3.        
  4.         WTCON = (1 << 0) |        // Asserts reset signal of the S5PV210 at watchdog time-out
  5.                         (1 << 2) |        // Enable interrupt
  6.                         (0 << 3) |        // Determines the clock division factor -- 16
  7.                         (1 << 5) |        // Enable Watchdog timer
  8.                         (100 << 8); // Prescaler value.
复制代码

      初始化之后要使能WTD TIMER和设置相应处理函数:
  1. // 设置看门狗中断的中断处理函数
  2.         intc_setvectaddr(NUM_WDT,isr_wtd);
  3.         // 使能看门狗中断
  4.         intc_enable(NUM_WDT);
复制代码

      中断处理函数需要清理相关中断标志:
  1. // 看门狗相关中断清除,任意值
  2.         WTCLRINT = 1;                  
  3.         // VIC相关中断清除
  4.         intc_clearvectaddr();
复制代码



0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-4-19 15:34 , Processed in 0.701211 second(s), Total 64, Slave 44 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表