0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣在PIC中使用定時(shí)器和看門(mén)狗定時(shí)器

454398 ? 來(lái)源:工程師吳畏 ? 2019-07-26 10:21 ? 次閱讀

在許多PIC示例中,您將看到旨在在代碼執(zhí)行期間添加暫停的延遲。這種延遲的一個(gè)示例包括先前文章中的LED閃爍代碼,其使用簡(jiǎn)單的for循環(huán)來(lái)在LED的ON和OFF狀態(tài)之間添加延遲。但是,有時(shí)這種延遲并不是很有用,特別是在需要精確定時(shí)時(shí)。

當(dāng)需要精確定時(shí)時(shí),會(huì)有非常有用的外設(shè):定時(shí)器!與for循環(huán)延遲不同,定時(shí)器可以為定時(shí)事件提供非常準(zhǔn)確的源并創(chuàng)建特定長(zhǎng)度的延遲。通常,PIC有許多不同的定時(shí)器,所以為了簡(jiǎn)單起見(jiàn),我們只關(guān)注PIC16F819中的timer0和看門(mén)狗定時(shí)器。

PIC16F819中的Timer0

大多數(shù)PIC都有一個(gè)timer0,它通常是一個(gè)可以計(jì)時(shí)的8位定時(shí)器來(lái)自多個(gè)源,用于其他外設(shè),并可在溢出時(shí)產(chǎn)生中斷。這使它對(duì)關(guān)鍵的時(shí)序例程非常有用,但也可以用作通用計(jì)時(shí)器。使用定時(shí)器時(shí),有兩種主要方法可以實(shí)現(xiàn):

定時(shí)器溢出時(shí)中斷PIC(計(jì)數(shù)超過(guò)255并重置為0)

探測(cè)定時(shí)器寄存器并查看它當(dāng)前處于什么值?

由于我們尚未考慮中斷,我們將專(zhuān)注于使用定時(shí)器進(jìn)行1ms的簡(jiǎn)單延遲通過(guò)民意調(diào)查。使用定時(shí)器時(shí)的第一個(gè)任務(wù)是配置,這是通過(guò)配置與定時(shí)器相關(guān)的寄存器來(lái)完成的。對(duì)于PIC16F819,OPTION_REG保存配置定時(shí)器所需的位。

需要設(shè)置的第一位是定時(shí)器的時(shí)鐘源。最常見(jiàn)的來(lái)源是內(nèi)部指令時(shí)鐘周期(基本上是工作頻率/4),但您也可以從外部時(shí)鐘源(饋入T0CKI引腳)為定時(shí)器提供時(shí)鐘。在我們的例子中,我們將從PIC而不是外部源為它提供時(shí)鐘。

可以設(shè)置的下一位是時(shí)鐘邊沿,它確定定時(shí)器是在上升沿還是下降沿遞增;這很少使用,因此現(xiàn)在可以忽略。

下一位PSA確定預(yù)定標(biāo)器是分配給定時(shí)器還是分配給看門(mén)狗。在這個(gè)例子中,我們將把PSA分配給看門(mén)狗,原因?qū)⒃诤竺娼忉尅?/p>

怎樣在PIC中使用定時(shí)器和看門(mén)狗定時(shí)器

在XC8中的PIC16F819上設(shè)置timer0

配置定時(shí)器后,可以在某些代碼中使用它來(lái)延遲1ms。定時(shí)器由FOSC/4提供時(shí)鐘,我們的FOSC為500kHz,因此定時(shí)器將以125kHz(或每8us一次)的速率遞增。由于我們希望使用此定時(shí)器延遲1ms,我們需要確定定時(shí)器計(jì)時(shí)的時(shí)間,直到它達(dá)到大約1ms的值。這是一些數(shù)學(xué)的來(lái)源!

因此,當(dāng)1ms過(guò)去時(shí),定時(shí)器的值為125。所以在我們的延遲功能中,我們復(fù)位定時(shí)器值,然后等到定時(shí)器寄存器等于或大于125。

PIC16F819中的看門(mén)狗定時(shí)器

看門(mén)狗定時(shí)器可以是真正的源痛苦,也可以使PIC系統(tǒng)非常強(qiáng)大和可靠。但看門(mén)狗計(jì)時(shí)器究竟是什么?簡(jiǎn)單地說(shuō),看門(mén)狗定時(shí)器是PIC中的硬件定時(shí)器,如果不經(jīng)常由軟件復(fù)位,將導(dǎo)致PIC復(fù)位。如果PIC由于硬件或軟件問(wèn)題而掛起并保證PIC將從頭重新啟動(dòng),則此功能非常有用。它不僅重置了系統(tǒng),還標(biāo)記了一些可用于確定系統(tǒng)是否崩潰的位。

在使用看門(mén)狗之前,必須先啟用它,這可以通過(guò)在代碼頂部設(shè)置一個(gè)配置位來(lái)完成。如果您沒(méi)有使用PIC16F819,請(qǐng)檢查數(shù)據(jù)表中使用的配置位,使用MPLAB X中的配置位選擇系統(tǒng),或使用Google。

打開(kāi)PIC16F819上的看門(mén)狗定時(shí)器

下一步是檢查看門(mén)狗是否與預(yù)縮放器一起使用;這是之前OPTION_REG發(fā)揮作用的地方。由于我們不希望預(yù)定標(biāo)器與timer0一起使用,我們將PSA分配位設(shè)置為0,這意味著預(yù)分頻器被分配給看門(mén)狗。但這如何影響看門(mén)狗的運(yùn)作?從本質(zhì)上講,預(yù)分頻器可以被認(rèn)為是一個(gè)時(shí)鐘分頻器,所以如果你有一個(gè)1MHz的時(shí)鐘進(jìn)入具有2倍預(yù)分頻器的看門(mén)狗,進(jìn)入看門(mén)狗的時(shí)鐘實(shí)際上是500kHz(因?yàn)樗? )。

看門(mén)狗從內(nèi)部31.25kHz振蕩器獲取其時(shí)鐘源,具有16ms周期,然后將該16ms脈沖饋入預(yù)定標(biāo)器系統(tǒng)。這意味著看門(mén)狗可以在8種不同選項(xiàng)中的一種上超時(shí)(使用PS2:PS0位分配)。

000 - 16ms

001 - 32ms

010 - 64ms

011 - 128ms

100 - 256ms

101 - 512ms

110 - 1024ms

111 - 2048ms

對(duì)于我們的項(xiàng)目,我們將配置看門(mén)狗定時(shí)器,因此如果項(xiàng)目掛起超過(guò)一秒鐘,系統(tǒng)將重置。

設(shè)置已分配給看門(mén)狗的預(yù)縮放器

所以現(xiàn)在我們有一個(gè)看門(mén)狗,它會(huì)在掛起時(shí)每秒重置一次PIC,但我們?nèi)绾未_定掛?這是一個(gè)有用的函數(shù):CLRWDT()。調(diào)用此函數(shù)后,它將自動(dòng)重置看門(mén)狗定時(shí)器。此函數(shù)應(yīng)放在主循環(huán)代碼段中,以便PIC不復(fù)位,主代碼需要經(jīng)常迭代一次。

重置看門(mén)狗定時(shí)器所需的功能

計(jì)時(shí)器:必要的外圍設(shè)備

定時(shí)器可以是很棒的外設(shè),你應(yīng)該盡快利用它們。它們可以提供準(zhǔn)確的計(jì)時(shí),計(jì)數(shù)甚至無(wú)掛起的系統(tǒng)。 PIC有時(shí)還有其他具有許多高級(jí)功能的定時(shí)器,例如16位和門(mén)控,可用于控制其他外設(shè)??偟膩?lái)說(shuō),不要猶豫使用計(jì)時(shí)器!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PIC
    PIC
    +關(guān)注

    關(guān)注

    8

    文章

    507

    瀏覽量

    87355
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

    114192
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    看門(mén)狗定時(shí)器的工作原理

    看門(mén)狗定時(shí)器是一種獨(dú)立的計(jì)時(shí)硬件模塊,其核心功能是倒計(jì)時(shí)。如果系統(tǒng)軟件計(jì)時(shí)超時(shí)前沒(méi)有對(duì)其進(jìn)行復(fù)位操作(即“喂狗”),
    的頭像 發(fā)表于 10-21 14:18 ?127次閱讀
    <b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的工作原理

    禁用Tl系列監(jiān)控看門(mén)狗定時(shí)器

    電子發(fā)燒友網(wǎng)站提供《禁用Tl系列監(jiān)控看門(mén)狗定時(shí)器.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 09:40 ?0次下載
    禁用Tl系列監(jiān)控<b class='flag-5'>器</b>的<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>

    DRV3205-Q1的問(wèn)答看門(mén)狗定時(shí)器配置

    電子發(fā)燒友網(wǎng)站提供《DRV3205-Q1的問(wèn)答看門(mén)狗定時(shí)器配置.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 10:42 ?0次下載
    DRV3205-Q1的問(wèn)答<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>配置

    單片機(jī)開(kāi)發(fā):使用內(nèi)部看門(mén)狗定時(shí)器(WDT)還是外掛看門(mén)狗芯片?

    電子產(chǎn)品中,有時(shí)候需要看門(mén)狗定時(shí)器(WDT),看門(mén)狗芯片有外部和內(nèi)置兩種。設(shè)計(jì)之初,要不要使用看門(mén)狗
    發(fā)表于 09-25 13:46

    如何在PSOC創(chuàng)建者項(xiàng)目中確認(rèn)看門(mén)狗定時(shí)器已啟用?

    您好,我是 PSOC BLE 部件的新手,只有一項(xiàng)任務(wù),即確認(rèn)看門(mén)狗定時(shí)器是否正確啟用并按需要工作。我是 PSOC Creator 的新用戶(hù)。如有任何幫助,將不勝感激。如何在 PSOC 創(chuàng)建者項(xiàng)目中確認(rèn)看門(mén)狗
    發(fā)表于 07-02 07:10

    CX3看門(mén)狗定時(shí)器何時(shí)使用,有什么好處?

    我正在猶豫是否要在印刷電路板上安裝運(yùn)行看門(mén)狗定時(shí)器的元件,因此提出了這個(gè)問(wèn)題。 我的設(shè)計(jì)中,攝像頭一直用于視頻流,因此 CX3 從未進(jìn)入睡眠模式。 此外,我不明白為什么要為 ARM926EJ-S
    發(fā)表于 05-28 08:13

    看門(mén)狗定時(shí)器的電壓監(jiān)視TPS382x-xx-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶看門(mén)狗定時(shí)器的電壓監(jiān)視TPS382x-xx-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-03 09:52 ?0次下載
    帶<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的電壓監(jiān)視<b class='flag-5'>器</b>TPS382x-xx-Q1數(shù)據(jù)表

    看門(mén)狗定時(shí)器的微處理監(jiān)控UCCx946數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶看門(mén)狗定時(shí)器的微處理監(jiān)控UCCx946數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-01 15:26 ?0次下載
    帶<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的微處理<b class='flag-5'>器</b>監(jiān)控<b class='flag-5'>器</b>UCCx946數(shù)據(jù)表

    集成有看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《集成有看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-29 10:00 ?0次下載
    集成有<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的高精度電壓監(jiān)控<b class='flag-5'>器</b>TPS3851數(shù)據(jù)表

    具備可編程窗口看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3850-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具備可編程窗口看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3850-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-28 17:28 ?0次下載
    具備可編程窗口<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的高精度電壓監(jiān)控<b class='flag-5'>器</b>TPS3850-Q1數(shù)據(jù)表

    集成看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《集成看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-28 17:25 ?0次下載
    集成<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的高精度電壓監(jiān)控<b class='flag-5'>器</b>TPS3851-Q1數(shù)據(jù)表

    具備可編程窗口看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3850數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具備可編程窗口看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3850數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-14 11:12 ?0次下載
    具備可編程窗口<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的高精度電壓監(jiān)控<b class='flag-5'>器</b>TPS3850數(shù)據(jù)表

    帶可編程延遲和看門(mén)狗定時(shí)器TPS386000-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶可編程延遲和看門(mén)狗定時(shí)器TPS386000-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-14 10:57 ?0次下載
    帶可編程延遲和<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>TPS386000-Q1數(shù)據(jù)表

    求助,關(guān)于看門(mén)狗定時(shí)器的喂狗時(shí)間和多APP看門(mén)狗的問(wèn)題求解

    參考例程,在看門(mén)狗定時(shí)器時(shí)間的配置上,我看到如下函數(shù): /* Step 3- Write match value */ #if(WDT_DEMO == WDT_INTERRUPT_DEMO
    發(fā)表于 02-21 06:50

    什么是看門(mén)狗?如何實(shí)現(xiàn)對(duì)系統(tǒng)程序的監(jiān)控?

    看門(mén)狗通過(guò)定時(shí)器計(jì)數(shù)和相關(guān)的控制邏輯來(lái)實(shí)現(xiàn)功能。系統(tǒng)正常運(yùn)行時(shí),定時(shí)器會(huì)以固定的時(shí)間間隔重復(fù)計(jì)數(shù),如果系統(tǒng)一切正常,那么
    的頭像 發(fā)表于 02-02 15:58 ?2224次閱讀