0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样在PIC中使用定时器和看门狗定时器

454398 来源:工程师吴畏 2019-07-26 10:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在许多PIC示例中,您将看到旨在在代码执行期间添加暂停的延迟。这种延迟的一个示例包括先前文章中的LED闪烁代码,其使用简单的for循环来在LED的ON和OFF状态之间添加延迟。但是,有时这种延迟并不是很有用,特别是在需要精确定时时。

当需要精确定时时,会有非常有用的外设:定时器!与for循环延迟不同,定时器可以为定时事件提供非常准确的源并创建特定长度的延迟。通常,PIC有许多不同的定时器,所以为了简单起见,我们只关注PIC16F819中的timer0和看门狗定时器。

PIC16F819中的Timer0

大多数PIC都有一个timer0,它通常是一个可以计时的8位定时器来自多个源,用于其他外设,并可在溢出时产生中断。这使它对关键的时序例程非常有用,但也可以用作通用计时器。使用定时器时,有两种主要方法可以实现:

定时器溢出时中断PIC(计数超过255并重置为0)

探测定时器寄存器并查看它当前处于什么值?

由于我们尚未考虑中断,我们将专注于使用定时器进行1ms的简单延迟通过民意调查。使用定时器时的第一个任务是配置,这是通过配置与定时器相关的寄存器来完成的。对于PIC16F819,OPTION_REG保存配置定时器所需的位。

需要设置的第一位是定时器的时钟源。最常见的来源是内部指令时钟周期(基本上是工作频率/4),但您也可以从外部时钟源(馈入T0CKI引脚)为定时器提供时钟。在我们的例子中,我们将从PIC而不是外部源为它提供时钟。

可以设置的下一位是时钟边沿,它确定定时器是在上升沿还是下降沿递增;这很少使用,因此现在可以忽略。

下一位PSA确定预定标器是分配给定时器还是分配给看门狗。在这个例子中,我们将把PSA分配给看门狗,原因将在后面解释。

怎样在PIC中使用定时器和看门狗定时器

在XC8中的PIC16F819上设置timer0

配置定时器后,可以在某些代码中使用它来延迟1ms。定时器由FOSC/4提供时钟,我们的FOSC为500kHz,因此定时器将以125kHz(或每8us一次)的速率递增。由于我们希望使用此定时器延迟1ms,我们需要确定定时器计时的时间,直到它达到大约1ms的值。这是一些数学的来源!

因此,当1ms过去时,定时器的值为125。所以在我们的延迟功能中,我们复位定时器值,然后等到定时器寄存器等于或大于125。

PIC16F819中的看门狗定时器

看门狗定时器可以是真正的源痛苦,也可以使PIC系统非常强大和可靠。但看门狗计时器究竟是什么?简单地说,看门狗定时器是PIC中的硬件定时器,如果不经常由软件复位,将导致PIC复位。如果PIC由于硬件或软件问题而挂起并保证PIC将从头重新启动,则此功能非常有用。它不仅重置了系统,还标记了一些可用于确定系统是否崩溃的位。

在使用看门狗之前,必须先启用它,这可以通过在代码顶部设置一个配置位来完成。如果您没有使用PIC16F819,请检查数据表中使用的配置位,使用MPLAB X中的配置位选择系统,或使用Google。

打开PIC16F819上的看门狗定时器

下一步是检查看门狗是否与预缩放器一起使用;这是之前OPTION_REG发挥作用的地方。由于我们不希望预定标器与timer0一起使用,我们将PSA分配位设置为0,这意味着预分频器被分配给看门狗。但这如何影响看门狗的运作?从本质上讲,预分频器可以被认为是一个时钟分频器,所以如果你有一个1MHz的时钟进入具有2倍预分频器的看门狗,进入看门狗的时钟实际上是500kHz(因为它除以2 )。

看门狗从内部31.25kHz振荡器获取其时钟源,具有16ms周期,然后将该16ms脉冲馈入预定标器系统。这意味着看门狗可以在8种不同选项中的一种上超时(使用PS2:PS0位分配)。

000 - 16ms

001 - 32ms

010 - 64ms

011 - 128ms

100 - 256ms

101 - 512ms

110 - 1024ms

111 - 2048ms

对于我们的项目,我们将配置看门狗定时器,因此如果项目挂起超过一秒钟,系统将重置。

设置已分配给看门狗的预缩放器

所以现在我们有一个看门狗,它会在挂起时每秒重置一次PIC,但我们如何确定挂?这是一个有用的函数:CLRWDT()。调用此函数后,它将自动重置看门狗定时器。此函数应放在主循环代码段中,以便PIC不复位,主代码需要经常迭代一次。

重置看门狗定时器所需的功能

计时器:必要的外围设备

定时器可以是很棒的外设,你应该尽快利用它们。它们可以提供准确的计时,计数甚至无挂起的系统。 PIC有时还有其他具有许多高级功能的定时器,例如16位和门控,可用于控制其他外设。总的来说,不要犹豫使用计时器!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PIC
    PIC
    +关注

    关注

    8

    文章

    512

    浏览量

    91202
  • 定时器
    +关注

    关注

    23

    文章

    3372

    浏览量

    124456
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析MAX16997/MAX16998高电压看门狗定时器

    深入解析MAX16997/MAX16998高电压看门狗定时器 一、引言 电子系统设计中,尤其是在对可靠性要求极高的汽车和工业领域,看门狗定时器
    的头像 发表于 03-26 15:30 125次阅读

    MAX6369 - MAX6374:引脚可选看门狗定时器的全方位解析

    MAX6369 - MAX6374:引脚可选看门狗定时器的全方位解析 电子系统设计中,保障微处理(μP)的稳定运行是至关重要的。而看门狗
    的头像 发表于 03-26 14:55 126次阅读

    探秘MAX6814:5引脚看门狗定时器电路的实用指南

    探秘MAX6814:5引脚看门狗定时器电路的实用指南 电子系统设计中,可靠性是至关重要的。今天,我们将深入探讨Maxim Integrated推出的MAX6814,一款采用5引脚SC70封装
    的头像 发表于 03-26 14:50 150次阅读

    SGM858xQ汽车窗口看门狗定时器:设计与应用深度解析

    SGM858xQ汽车窗口看门狗定时器:设计与应用深度解析 汽车电子系统中,可靠的监控和复位机制对于确保微控制(MCU)的稳定运行至关重要。SG Micro Corp推出的SGM85
    的头像 发表于 03-24 10:55 191次阅读

    SGM819SxQ 汽车应用看门狗定时器电路解析

    SGM819SxQ 汽车应用看门狗定时器电路解析 电子系统设计中,尤其是汽车、工业设备等对可靠性要求极高的领域,看门狗定时器电路是保障系统
    的头像 发表于 03-24 10:10 190次阅读

    SGM819S看门狗定时器电路:设计与应用详解

    SGM819S看门狗定时器电路:设计与应用详解 电子系统设计中,看门狗定时器是保障系统稳定性和可靠性的重要组件。SG Micro Corp
    的头像 发表于 03-24 09:40 153次阅读

    深度解析SGM821:纳米功耗系统定时器看门狗功能

    深度解析SGM821:纳米功耗系统定时器看门狗功能 电子设计领域,低功耗和可靠的系统监控是永恒的追求。SGM821作为一款具备看门狗功能的纳米功耗系统
    的头像 发表于 03-23 17:20 688次阅读

    深度解析 MAX6369–MAX6374 引脚可选看门狗定时器

    深度解析 MAX6369–MAX6374 引脚可选看门狗定时器 在当今电子设备的复杂系统中,确保微处理(μP)稳定运行至关重要。看门狗定时器
    的头像 发表于 12-30 17:55 1523次阅读

    CW32A030看门狗和SysTick定时器

    CW32A030的看门狗有独立看门狗和窗口看门狗如下: 1、 独立看门狗(IWDT) 独立看门狗定时器
    发表于 11-27 07:52

    看门狗定时器、复位源、异常处理机制科普

    的作用、原理与应用。一、看门狗定时器(WatchdogTimer)1.原理看门狗定时器本质上是一个独立定时器,持续倒计时:软件
    的头像 发表于 11-17 10:53 1659次阅读
    <b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>、复位源、异常处理机制科普

    RVMCU课堂「21」: 手把手教你玩转RVSTAR—看门狗定时器

    看门狗定时器(Watch Dog Timer,WDT或WDGT),是一种微控制为了防止程序“跑飞”而设计的一种硬件机制,让系统因电磁干扰或者软件错误而当机的时候可以复位系统,从而具
    发表于 10-29 06:01

    ‌TPL5010-Q1 纳米功耗系统定时器(带看门狗功能)技术文档摘要

    TPL5010-Q1 Nano 定时器是一款低功耗、符合 AEC-Q100 标准的定时器,带有看门狗 该功能非常适合占空比或电池供电应用中的系统唤醒。在这样的系统中 微控制
    的头像 发表于 09-13 10:01 1746次阅读
    ‌TPL5010-Q1 纳米功耗系统<b class='flag-5'>定时器</b>(带<b class='flag-5'>看门狗</b>功能)技术文档摘要

    TPS3435 Nano IQ精密超时看门狗定时器技术解析与应用指南

    Texas Instruments TPS3435/TPS3435-Q1 Nano I~Q~ 精确超时看门狗定时器是一款250nA(典型值)超低功耗器件,具有可编程超时看门狗定时器。该
    的头像 发表于 08-26 16:20 1258次阅读
    TPS3435 Nano IQ精密超时<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>技术解析与应用指南

    德州仪器TPS3436-Q1汽车级窗口看门狗定时器技术解析

    Texas Instruments TPS3436-Q1精密窗口看门狗定时器是一款超低功耗(250nA典型值)器件,提供可编程窗口看门狗定时器。TPS3436-Q1可提供具有多种功能的
    的头像 发表于 08-18 14:54 1931次阅读
    德州仪器TPS3436-Q1汽车级窗口<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>技术解析

    死机克星:嵌入式系统中看门狗定时器的关键作用与配置

    情况和模拟故障场景两个示例,带你快速了解看门狗定时器嵌入式系统中的运用要点。 最新源码及实操教程详见:https://docs.openluat.com/air8101/luatos/app/common/wdt/   注意:
    的头像 发表于 08-15 13:22 866次阅读
    死机克星:嵌入式系统中<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>的关键作用与配置