设计模式
pang123hui
已不再是大一
展开
-
看门狗
计算机上的看门狗每隔一段时间不刷新相应定时器,它将溢出。在大多数情况下,看门狗定时器的溢出将复位系统。即使经过仔细规划和设计,嵌入式系统也有可能由于出乎意料的问题而死机或跑飞,而看门狗就是用来处理此类情况的。看门狗可用于在特定的情况下从这种状态下恢复,即复位。 首先要记住,看门狗动作应该用于灾难恢复。在设计得很好的系统中,看门狗复位的事件应该是一种很少发生且值得注意的事件。应原创 2011-11-27 13:06:10 · 2709 阅读 · 0 评论 -
调度器的介绍
调度器: 一方面,调度器可以看作是一个简单的操作系统,允许以周期性或(更少见)单次方式来调用任务 从底层的角度看,调度器可以看作是一个由许多不同任务共享的定时器中断服务程序,因此,只需要初始化一个定时器,而且改变定时的时候通常只需要改变一个函数。此外,无论需要运行1个、10个还是100个不同的任务,通常都可以使用同一个调度器完成。注意,这种“共用中断服务程序”与原创 2011-11-27 13:49:09 · 2243 阅读 · 0 评论 -
软件实现的施密特触发器
在一些智能充电器中,单片机要一直监测电池的电压,一旦超过某一数值,就由恒流充电切换到恒压充电。撇开充电器制作相关的各种知识和概念不说我们集中注意力来考察:当电压接近那个设定的临界值时发生的一些事情。 当电压接近临界值的时候,系统还处于恒流充电状态,于是电压开始朝突破临界值的方向上升……在某一时刻,电压突破了临界值,程序检测到了这一数值变化,立即将充电状态由恒流切换为恒压原创 2011-11-28 20:41:51 · 3939 阅读 · 1 评论 -
学会以合作的方式思考
对于所有任务,无论在何种情况下,任务的运行时间 t 都应该小于时间间隔。即如果任务不能在规定的时段内完成,就中止该任务,尤其是对于以查询方式运行的中断程序。 比如,这样的代码是不可靠的: // 等待, 直到AD转换结束(检查ADCI) while((ADCON & ADCI) == 0); 因为在某些情况下,可能由于如下原因导致系统被挂起: a 如果模数转换器的初始化不正确,不能确原创 2011-12-03 10:13:18 · 2259 阅读 · 2 评论