chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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)不再提示

定時(shí)器中斷程序怎么寫(xiě)

工程師鄧生 ? 來(lái)源:未知 ? 作者:劉芹 ? 2023-09-01 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

定時(shí)器中斷程序怎么寫(xiě)

嵌入式系統(tǒng)中,定時(shí)器被廣泛應(yīng)用于各種任務(wù)。它們?cè)趯?shí)時(shí)系統(tǒng)中可用于輪詢(xún),計(jì)時(shí)等任務(wù)。定時(shí)器可以被配置為周期性定時(shí)器,非周期性定時(shí)器或單次定時(shí)器,以執(zhí)行不同類(lèi)型的任務(wù)。當(dāng)定時(shí)器達(dá)到預(yù)定的定時(shí)時(shí)間時(shí),它會(huì)產(chǎn)生一個(gè)中斷信號(hào),稱(chēng)為定時(shí)器中斷。在本文中,我們將詳細(xì)了解如何編寫(xiě)定時(shí)器中斷程序。

#1. 硬件配置

在開(kāi)始編寫(xiě)定時(shí)器中斷程序之前,正確配置定時(shí)器是至關(guān)重要的。硬件包含CPU,定時(shí)器模塊和中斷控制器。

a) CPU配置

CPU設(shè)計(jì)語(yǔ)言應(yīng)該支持中斷。因?yàn)橹袛鄼C(jī)制是通過(guò)修改CPU的狀態(tài)寄存器來(lái)實(shí)現(xiàn)的,因此CPU必須支持狀態(tài)寄存器。在大多數(shù)嵌入式系統(tǒng)中,常用的語(yǔ)言是C和匯編語(yǔ)言。

b) 定時(shí)器模塊配置

定時(shí)器模塊負(fù)責(zé)計(jì)時(shí)任務(wù)。設(shè)置定時(shí)器的速度(例如,多快一個(gè)計(jì)時(shí)器令牌)取決于處理器的主頻和定時(shí)器模塊的特性。需要確定用于定時(shí)器模塊的時(shí)鐘源和分頻器。

c) 中斷控制器配置

嵌入式系統(tǒng)中,通常使用中斷控制器來(lái)管理和路由中斷。中斷控制器允許您對(duì)響應(yīng)中斷的程序進(jìn)行配置,并將中斷路由到恰當(dāng)?shù)奶幚沓绦颉?br />
#2. 編寫(xiě)定時(shí)器中斷程序

在定時(shí)器中斷程序中,我們必須遵循一定的方法和規(guī)則。流程如下:

a) 定義中斷向量

在編寫(xiě)定時(shí)器中斷程序之前,必須為定時(shí)器中斷定義中斷向量。中斷向量是中斷服務(wù)程序的入口點(diǎn)。為了定義中斷向量,我們需要使用特殊的注釋格式,并使用定義中斷向量的操作碼。

注釋格式如下:

/*中斷服務(wù)程序*/

#pragma vector=中斷向量地址

__interrupt void 中斷服務(wù)程序名稱(chēng)(void)

{

// 中斷服務(wù)程序的操作

}

在上述代碼中,“#pragma vector”是指令,用于定義中斷向量地址。中斷向量地址通??梢詮脑O(shè)備的數(shù)據(jù)手冊(cè)中獲取。在此之后,我們定義了一個(gè)函數(shù)來(lái)執(zhí)行中斷服務(wù)。

__interrupt表示該函數(shù)是一個(gè)中斷服務(wù)程序。真正的中斷號(hào)可以在配置定時(shí)器時(shí)確定,這里用“中斷向量地址”來(lái)代替它。中斷服務(wù)程序名稱(chēng)是引用中斷服務(wù)程序的函數(shù)名稱(chēng)。

b) 初始化定時(shí)器

在編寫(xiě)定時(shí)器中斷程序之前,首先需要初始化定時(shí)器。需要確定定時(shí)器的定時(shí)時(shí)間和計(jì)時(shí)單位等重要參數(shù)。

我們可以使用以下代碼初始化定時(shí)器:

TACCR0 = 定時(shí)時(shí)間 - 1; // 設(shè)置定時(shí)器計(jì)數(shù)器上限

TACTL = TASSEL_2 + ID_x + MC_1 + TACLR; // 設(shè)置時(shí)鐘源、分頻器、模式和

// 定時(shí)器清零

在上述代碼中,TACCR0表示定時(shí)器計(jì)時(shí)器上限,以實(shí)現(xiàn)計(jì)時(shí)器時(shí)間的設(shè)置。TASSEL_2是時(shí)鐘源選擇(選擇器允許您選擇使用內(nèi)部時(shí)鐘還是外部時(shí)鐘)。ID_x是計(jì)數(shù)器分頻器,以確定定時(shí)器時(shí)鐘速率(內(nèi)部時(shí)鐘或外部時(shí)鐘),和MC_1是定時(shí)器模式。

c) 編寫(xiě)中斷服務(wù)程序

在定義了中斷向量和初始化定時(shí)器之后,我們現(xiàn)在可以編寫(xiě)定時(shí)器中斷服務(wù)程序。在定時(shí)器達(dá)到預(yù)定定時(shí)時(shí)間時(shí),它會(huì)產(chǎn)生一個(gè)中斷。中斷隨后會(huì)打斷CPU的正常執(zhí)行并轉(zhuǎn)到中斷服務(wù)程序,即上面我們定義的中斷向量。

當(dāng)中斷發(fā)生時(shí),中斷服務(wù)程序?qū)⒈徽{(diào)用,并執(zhí)行預(yù)設(shè)的操作。在本例中,我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的定時(shí)器計(jì)數(shù)器應(yīng)用程序,用于檢測(cè)定時(shí)器是否工作。

下面是一個(gè)示例程序:

volatile unsigned int count = 0;

#pragma vector=TIMER0_A0_VECTOR

__interrupt void Timer_A (void)

{

count++;

}

在上述代碼中,我們定義了一個(gè)變量count,在中斷服務(wù)程序中實(shí)現(xiàn)了它的自增操作。

#3. 測(cè)試定時(shí)器中斷程序

編寫(xiě)定時(shí)器中斷程序后,需要將其上傳到嵌入式系統(tǒng)并進(jìn)行測(cè)試。我們可以使用適當(dāng)?shù)恼{(diào)試工具,如示波器,以確保定時(shí)器中斷程序可以正常工作。在上述示例程序中,計(jì)數(shù)器將在每個(gè)定時(shí)器中斷期間遞增,該計(jì)數(shù)器值可以用于測(cè)試。

總結(jié)

在本文中,我們?cè)敿?xì)討論了如何編寫(xiě)定時(shí)器中斷程序。我們需要正確配置硬件,定義中斷向量,初始化定時(shí)器,并編寫(xiě)適當(dāng)?shù)闹袛喾?wù)程序。最終,我們需要使用調(diào)試工具測(cè)試定時(shí)器中斷程序以確保它們可以正常工作。定時(shí)器中斷程序在實(shí)時(shí)系統(tǒng)中非常有用。在開(kāi)始編寫(xiě)定時(shí)器中斷程序之前,要仔細(xì)考慮各個(gè)方面。

聲明:本文內(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)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3702

    瀏覽量

    132589
  • 分頻器
    +關(guān)注

    關(guān)注

    43

    文章

    526

    瀏覽量

    51946
  • 中斷控制器
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    9758
  • 狀態(tài)寄存器
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    7365
  • 定時(shí)器中斷
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    11651
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    SysTick系統(tǒng)滴答定時(shí)器簡(jiǎn)介

    SysTick—系統(tǒng)定時(shí)器是屬于CM33內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時(shí)器是一個(gè)24bit的向下遞減的計(jì)數(shù),計(jì)數(shù)每計(jì)數(shù)一次的時(shí)間為 1/SYSCLK,一般我們?cè)O(shè)置系統(tǒng)時(shí)
    的頭像 發(fā)表于 09-23 09:50 ?977次閱讀
    SysTick系統(tǒng)滴答<b class='flag-5'>定時(shí)器</b>簡(jiǎn)介

    大彩講堂:VisualHMI-LUA教程-定時(shí)器的使用指南

    定時(shí)器的使用
    的頭像 發(fā)表于 08-31 16:59 ?695次閱讀
    大彩講堂:VisualHMI-LUA教程-<b class='flag-5'>定時(shí)器</b>的使用指南

    【中科昊芯Core_DSC280025C開(kāi)發(fā)板試用體驗(yàn)】---定時(shí)器中斷方式的LED流水燈

    不算什么,但對(duì)于初學(xué)者來(lái)說(shuō)卻不是那么簡(jiǎn)單的事了,筆者經(jīng)過(guò)一番研究終于用定時(shí)器中斷點(diǎn)亮流水燈了。 官方文件中 代碼GPIO_setPinConfig(GPIO_5_GPIO5);是配置GPIO5引腳,參數(shù)
    發(fā)表于 08-07 22:14

    【沁恒CH585開(kāi)發(fā)板免費(fèi)試用體驗(yàn)】定時(shí)器操作

    獨(dú)立的,可以一起同步操作。 2 定時(shí)器代碼實(shí)現(xiàn) 接下來(lái)我們以通用定時(shí)器 TMR0為實(shí)例,來(lái)說(shuō)明要經(jīng)過(guò)哪些步驟,才能達(dá)到這個(gè)要求,并產(chǎn)生中斷。 2.1 定時(shí)器配置步驟 這里我們就對(duì)每個(gè)步
    發(fā)表于 07-05 23:06

    stm32H743定時(shí)器溢出的原因?怎么解決?

    我利用定時(shí)器更新中斷實(shí)現(xiàn)軟件計(jì)時(shí),定時(shí)時(shí)間是固定的按照{(diào)10ms, 20ms,650ms, 50ms,50ms}周期性進(jìn)行的。由于下一次的計(jì)時(shí)時(shí)間是需要在定時(shí)器
    發(fā)表于 06-23 08:26

    第二十章 TIM——基本定時(shí)器

    本章介紹了W55H32基本定時(shí)器TIM6、TIM7,16位向上計(jì)數(shù),含時(shí)鐘源、預(yù)分頻等,講解定時(shí)計(jì)算及初始化結(jié)構(gòu)體。
    的頭像 發(fā)表于 06-20 13:51 ?666次閱讀
    第二十章 TIM——基本<b class='flag-5'>定時(shí)器</b>

    第十二章 SysTick——系統(tǒng)定時(shí)器

    本章介紹了W55MH32的SysTick系統(tǒng)定時(shí)器,它是24位遞減計(jì)數(shù),含4個(gè)寄存,可配置定時(shí)、中斷,用于產(chǎn)生時(shí)基 等。
    的頭像 發(fā)表于 05-22 17:16 ?717次閱讀
    第十二章 SysTick——系統(tǒng)<b class='flag-5'>定時(shí)器</b>

    MCU定時(shí)器/計(jì)數(shù)

    RISC-V核低功耗MCU通過(guò)靈活的定時(shí)器架構(gòu)、低功耗模式適配及硬件級(jí)中斷優(yōu)化,在工業(yè)控制、智能家居等場(chǎng)景中實(shí)現(xiàn)高精度計(jì)時(shí)與能耗控制的協(xié)同設(shè)計(jì),滿(mǎn)足復(fù)雜任務(wù)調(diào)度與實(shí)時(shí)響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?494次閱讀

    STM32G474HRTIM使用HRTIM配置了主定時(shí)器中斷,為啥調(diào)試的跳轉(zhuǎn)到硬件中斷,進(jìn)不去定時(shí)器中斷,為什么?

    各位大佬,我使用HRTIM配置了主定時(shí)器中斷,為啥調(diào)試的跳轉(zhuǎn)到硬件中斷,進(jìn)不去定時(shí)器中斷 下面是我的初始化代碼
    發(fā)表于 03-13 08:17

    stm32f103定時(shí)器2配置中斷,程序一直死循環(huán),無(wú)法進(jìn)入中斷,怎么解決?

    目前定時(shí)器2配置中斷,程序一直死循環(huán),無(wú)法進(jìn)入中斷,有無(wú)大佬請(qǐng)教或者看一下個(gè)參考?xì)v程
    發(fā)表于 03-12 08:18

    詳解CKS32F107xx系列的定時(shí)器同步功能

    CKS32F107xx系列部分定時(shí)器在內(nèi)部是相連的,可用于定時(shí)器同步或鏈接,方便用戶(hù)配置不同的同步模式,以便在電機(jī)控制、數(shù)據(jù)采集和PWM信號(hào)生成等應(yīng)用中,實(shí)現(xiàn)復(fù)雜的時(shí)間序列和多通道的同步操作。本節(jié)課
    的頭像 發(fā)表于 11-26 17:51 ?1284次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時(shí)器</b>同步功能

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

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

    門(mén)頭燈定時(shí)器怎么調(diào)開(kāi)關(guān)時(shí)間

    在現(xiàn)代商業(yè)環(huán)境中,門(mén)頭燈不僅是企業(yè)形象的一部分,也是吸引顧客的重要手段。然而,手動(dòng)控制門(mén)頭燈的開(kāi)關(guān)往往既耗時(shí)又容易出錯(cuò)。為了解決這一問(wèn)題,門(mén)頭燈定時(shí)器應(yīng)運(yùn)而生,它通過(guò)預(yù)設(shè)的時(shí)間表自動(dòng)控制門(mén)頭燈的開(kāi)關(guān)
    的頭像 發(fā)表于 10-17 14:14 ?5227次閱讀

    燈光定時(shí)器自動(dòng)控制怎么調(diào)

    燈光定時(shí)器自動(dòng)控制是一種智能家居設(shè)備,它允許用戶(hù)設(shè)定特定的時(shí)間來(lái)開(kāi)啟或關(guān)閉燈光,從而實(shí)現(xiàn)節(jié)能和自動(dòng)化控制。這種設(shè)備通??梢酝ㄟ^(guò)物理按鈕、遙控或者智能手機(jī)應(yīng)用程序來(lái)設(shè)置。 燈光
    的頭像 發(fā)表于 10-17 14:13 ?5814次閱讀