• <small id="4aaaa"></small>
    <tr id="4aaaa"></tr>
  • <nav id="4aaaa"></nav>
    <tr id="4aaaa"></tr>
  • 国产,欧美1区2区,亚洲精品A,色www88,特级西西4444www无码,黄色99,九九三级影视,3P无码,中文字幕av久久爽Av
    財訊中國

    單片機與程序設計(上)

    來源:網絡 2022-01-27 15:00:00

    單片機中,不僅頻繁地使用“○月○日○點○分”這種時刻顯示,顯示過去的時間和一定的周期這種形式也被頻繁地使用。例如,“該程序從運行開始過去了多少時間?”、“每秒輸送128次信號”等等。另外,還經常被用于“等待指定的時間”、“經過指定的時間后將轉移到下一個處理”這樣的情況。對這些與時間和時刻有關進行處理的外設功能就是定時器(圖1)。

    我們也可以不使用外設功能(硬件)的定時器,而是通過軟件來計算時間。下面通過圖2來說明使用軟件來定時的示例,圖中假設循環(重復)部分的處理需要費時1μs(微秒:100萬分之1秒)。由此可以計算出該循環部分重復1000次需要花費1ms(毫秒:千分之1秒),重復100萬次則需費時1秒。即:通過“等待經過循環處理所指定的時間”來計算時間。但是,CPU將會集中進行時間計算的處理而無法進行其他處理。而且,只能計算一個周期的時間。而現實當中,單片機需要對應0.1秒和1/1024秒等各種周期的時間。

    另外,CPU的計時器頻率(驅動速度)也將對軟件產生影響。如果將100MHz驅動的CPU改為50MHz,那么循環1次所需的時間將變為原來的兩倍。因此,需要對計算時間的軟件進行修正。如上所述,由于在管理上既花時間又容易出錯,所以要極力避免通過軟件來計算時間。

    稍微介紹一下中斷的內容……

    下面,我們簡單介紹一下和定時器不可分割的技術——“中斷功能”。單片機中的“中斷功能”是指某個程序在執行過程中,因某種原因而發出“開始進行其他處理”的請求。由于可以使用中斷功能,所以可使CPU不集中進行一個處理。

    讓我們想象一下日常生活中用到“中斷功能”的情景,當我們把熱水倒入方便面盒中后,如果我們在3分鐘內一直盯著時鐘看,那么這段時間內我們就不能做其它事情。但如果用廚房定時器設定3分鐘的時間,在廚房定時器的警報響起之前我們便可以去做其它事情。在這個例子中,“一直盯著時鐘看”就相當于前一節中所介紹的“等待經過循環處理所指定的時間”,所以在處理結束之前不能去做其它事情。同時,廚房定時器的警報就相當于中斷功能。在中斷發生前還可以去做其它事情。

    單片機的外設功能中有各種各樣的定時器,這些定時器在經過指定的時間或處理結束時向CPU發送中斷信號。不僅是定時器,很多外設功能都會在“產生變化”、“處理開始/結束”時將中斷信息傳送給CPU。所以,CPU在中斷功能發生前還可以繼續做其它工作,因此可提高作業效率。關于中斷功能的詳細內容,將在本系列第4期的《外部中斷功能IRQ》中做詳細介紹。本期中,我們先事先了解一下“從外設功能以中斷的形式向CPU傳送信息”的內容。

    各式各樣的定時器中,還有“看門狗定時器”!

    在單片機的外設功能中,最貼心的定時器是計算到指定時間的定時器和每隔一段時間便發生中斷的定時器。另外,在瑞薩電子的RX63N單片機中,搭載了為控制伺服電動機而產生脈寬調制解調(PWM)信號的定時器、計算輸入信號間隔的定時器、顯示現在時刻的RTC(實時時鐘)等各種各樣的定時器。

    在定時器中,最具特色的是WDT(看門狗定時器)。其名字Watch Dog Time中的Watch dog意思為“看門狗”,它的工作就是監視程序是否出現失控。由WDT監視的程序通過事先將設定的值寫入WDT后啟動。WDT每隔一定時間便減掉寫入的值,當程序正常運行時,處理結束前會對WDT清零再結束。但是,如果程序失控(進入意料之外的重復狀態且無法停止)時,寫入WDT的值將小于0(稱為下溢),因此向CPU通知程序出現了失控。在不允許睡眠的重要系統中,單片機中搭載的“看門狗定時器”DWDT發揮了極其重要的作用。

    輕松嘗試使用定時器

    雖然說:“我們就通過程序來實際使用定時器……”,但是實際上,要想熟練運用定時器,必須先理解單片機的操作步驟。而且,不僅需要了解通過軟件進行操作的步驟,還需理解單片機的硬件(結構)以及所使用的零部件的規格等。

    因此,需要幫助時請使用“數據庫”。對于搭載了RX63N單片機的GR-SAKURA電路板,我們準備了幾個與時間和時刻有關的數據庫。

    SAKURA 的sketch參數:櫻花程序庫時間(僅英文版)

    在這個程序中,要讓GR-SAKURA上的LED在一定周期內發光。雖然僅是很簡單的操作,但是要想讓LED在正確的周期內發光就需要使用定時器。在上述櫻花程序庫的“時間”選項內,有計算經過時間的數據庫,所以我們就使用它。

    程序如圖3所示。第14行的millis函數以從程序開始時經過的時間ms(毫秒:千分之一秒)為單位送回,沒有參數。使用該函數,通過獲取和最初的測定(第14行)之間的差距來取得1秒后、2秒后的結果。用while語言生成循環,從a的值等待1秒或2秒(第15行、第19行)。于是,1秒后LED0(GR-Sakura電路板的D1)亮燈,2秒后滅燈。滅燈后結束loop函數,但是該操作會再次反復繼續執行。另外,millis函數沒有符號,將返回long型的整數。

    圖3:使用定時器功能使LED亮燈的程序。此例中,以1秒鐘為周期閃爍。

    ※//~是用于進行評價,對程序的執行不產生影響

    將程序輸入Web編譯器,再將編譯完成后的二進制文件傳送給GR-SAKURA。傳送結束后,4個LED燈將暫時熄滅后再開始執行,LED0(GR-Sakura電路板的D1)開始閃爍。

    接我們講解了必要的外設功能之一“定時器”。有關時間和時刻的處理,在各種場合都需要。請大家借此機會實際操作各種數據庫。

    但是,文中的“懊128次”和“1/1024秒”這些數字突然冒出來,是否讓你吃了一驚呢?128是2的7次方,1024是2的10次方。RTC中具有每1/128秒產生一次中斷的功能……這是在單片機的世界中經常看到的數字。

    接下來講中斷功能

    提高作業效率的“中斷功能”指的是什么?

    我們回顧一下“定時器”中簡單介紹過的“中斷功能”概念。任何人都有過這樣的經驗,就是“將雞蛋放進沸騰的熱水中,直到雞蛋煮熟的10分鐘內要確認好幾次時鐘”的經歷。在單片機的世界中也同樣,在等待某種狀態達成時,具有對對象進行定期檢查的方法。例如,在等待向GPIO(通用I/O端口)的輸入從0變為1時,程序可以一定的間隔來檢查GPIO的狀態。這種處理被稱為“輪詢”。

    輪詢雖然是一種了解狀態變化的簡單方法,但是如果檢查的頻度低(間隔長)就會錯過變化,如果頻度過高(間隔短),即使查也查不到變化“空耗”。由于輪詢通過簡單的程序便能完成處理,所以在掌握對象的變化頻度時是有效的。但是,進行多次檢查也會給單片機帶來負荷,對功耗不利。

    因此就要用到本期介紹的“中斷功能”。產生中斷時,CPU會暫時停止正在執行的任務,轉而進行別的任務。也就是有別的任務“穿插”進來的意思(圖1)。當中途穿插進來的任務結束后,CPU再返回處理原來的任務。

    設想一下你在工作的同時煮雞蛋的情況。由于你不想停下手中的工作,所以把雞蛋放入熱水中后就設置定時器并繼續工作,10分鐘后定時器一響就把雞蛋從熱水中撈起。這時,定時器的鳴叫就是中斷,而“把雞蛋從熱水中撈起”就是穿插進來的工作。大家可以通過這種方式來了解中斷功能。

    單片機中的中斷處理

    中斷產生于單片機內部和外部的各種設備。于開關和感應器等單片機外部的中斷稱為外部引腳中斷,來自這些機器的中斷信號由名為“IRQ”的引腳接收,再向中斷控制器(在RX63N中稱被稱為“ICUb”)發出通知。IRQ為“Interrupt ReQuest”的略稱,意思為“中斷請求”。另外,來自單片機內部的定時器和GPIO、串行通信設備UART等外設機器的中斷被稱為外部設備中斷,中斷信號直接從各外部設備通知中斷控制器。

    在中斷控制器中,各種設備的中斷信號按照先來后到的順序,以適當的順序被傳送到CPU。而且,中斷被設為無效的設備的中斷信號將不會被傳送到CPU,也就意味著可以忽視(屏蔽)這些信號。CPU按照從中斷控制器接收到的指示來執行對應的程序(中斷處理)。

    CPU一旦接收到中斷控制器的中斷信號,首先將終止執行中的程序。然而,會自動保存“從何處重啟”的出棧(POP)信息,這被稱為“進棧(PUSH)”。進棧結束后,將開始由中斷執行的程序。該程序結束時,進棧信息將回送到CPU,這種現象被稱為“出棧”(圖2)。由于進棧和出棧都由CPU自動執行,因此程序設計者不必因順序問題而費心。

    例如,通過UART執行串行通信時,經常監視字節是否被接收了而導致效率不佳。所以,多數情況下都對程序進行如下編程,即在信息送達時就會產生中斷并進行適當的處理,另外,使定時器產生中斷的情況也不在少數。進行“經過了一定時間后該做什么”這類處理時,應進行如下編程,即通過來自定時器的信號開始進行處理。如上所述,在有效利用單片機方面,中斷功能發揮了很大的作用。

    還可使用數據庫嘗試編寫復雜的中斷程序!

    為了編寫與中斷相關的程序,就需要了解單片機的運行。由于需要深入了解,所以不能僅是進行簡單的嘗試。幸好還有本系列中介紹過的GR-SAKURA數據庫,可在GR-SAKURA數據庫中進行與外部引腳中斷相關的處理,所以請嘗試使用GR-SAKURA數據庫來進行編程。

    SAKURA sketch參數:櫻花程序庫--中斷(僅限英文版)

    為了向GR-SAKURA提供外部引腳中斷,還需要做些工作。在GR-SAKURA中,從IO30引腳到IO35引腳接收來自外部的中斷信號。這次是將定時器輸出引導到IO0引腳,再將它傳送到IO31引腳作為中斷信號。因此,要從IO30引腳到GND的部分設置引腳接口,由底板用的電線將IO0和IO31連接起來(圖3)。

    在示例程序(圖4)中預先準備了如下功能,即當GR-SAKURA的外部中斷信號引腳(從IO30到IO35中的一個)的輸入從L電平變為H電平時,LED燈將啟動。而且是在檢測到相當于上述所說明的“外部引腳中斷”的中斷信號后才會變化。從IO0引腳進行定時器輸出,并將之與中斷輸入引腳即IO31引腳連接,通過這樣的方式便可以與一定的時間間隔發生中斷。

    ※即使已對該程序進行了匯編,在沒有將上述的IO0和IO31引腳進行連接的GR-SAKURA中也無法運行。

    以下為圖4的程序

    ※圖4程序結束

    ※圖4:用于外部引腳中斷的示例程序

    在此數據庫中,可對分別與前述中斷信號輸入引腳對應的處理。本次所示的是根據向IO31引腳輸入的變化(從L電平變為H電平)來產生中斷的情況。第48行的attachInterrupt()定義了在某個輸入引腳出現某種變化時該調用什么函數。因此,設定為根據輸入IO31引腳的中斷信號來啟動irq3()。這樣的設定只需在setup()中定義一次便能在整個程序中有效。除此以外,在setup()中還記述了定時器的定義、定時器輸出引腳的設定、LED輸出的設定等初始條件。

    沒有通過loop()函數進行的處理。取而代之的是由irq3()這個函數進行處理。從這個函數來看是看不出它是從程序中調用的。但是,正是由于這個函數,才能使中斷信號進入IO31引腳時使LED的光發生變化。在函數irq3()中,四盞LED中只有一盞亮燈,這個函數一旦被調用,亮燈的LED就發生一次變化。為了讓人看得到這個“變化”,在case標簽的部分,通過來自GPIO的輸出來滅燈且使旁邊的LED亮燈(邊緣的LED燈亮燈時,相反側的邊緣的LED亮燈或滅燈)。

    為了應對不知何時會發生的意外,中斷就是非常有效的應對方法。而且,中斷還可以減少程序的不必要運行,從而可降低功耗。也可以說,為了真正有效地利用單片機,這是一項不可缺少的技術。

    關鍵詞: 單片機

    相關新聞

    單片機與程序設計(上)
    2022-01-27 15:00:00
    三星S22支持IP68防塵防水功能:可在1.5米深水下工作30分鐘
    三星S22支持IP68防塵防水功能:可在1.5米深水下工作30分鐘
    2022-01-27 14:36:13
    黑峽谷發布 X3 Pro、X5 Pro 三模機械鍵盤
    2022-01-27 13:51:18
    微軟 Surface Pro 8 推送 1 月驅動更新
    2022-01-27 13:51:10
    索尼PlayStation VR2官宣,《Horizon》系列VR游戲確認開發中
    2022-01-27 13:51:03
    高顏值瞬間種草 三星Galaxy Z Flip3 5G成年度最熱銷折疊屏手機
    2022-01-27 13:38:23
    Magic3用戶搶先體驗 MagicUI6.0開啟內測 限2000名額
    2022-01-27 13:38:13
    虎年限定圖案來啦 OPPO 5款耳機支持個性化主題彈窗
    2022-01-27 13:38:02
    到底值不值?索泰至尊版GTX560顯卡拆解
    2022-01-27 13:30:24
    華為——5G之路上的實干家
    2022-01-27 13:30:18
    機頂盒加解擾技術
    2022-01-27 13:30:12
    數字電視技術及其應用
    2022-01-27 13:30:06
    D觸發器原理之低調的真相
    2022-01-27 13:30:00
    傳蘋果研發15英寸iPad Pro,比Mac電腦還大
    2022-01-27 12:10:30
    趕快更新!蘋果發布iOS 15.3和iPadOS 15.3 修復了這個大Bug
    2022-01-27 12:10:23
    更新側重點不同,moto三款手機迎來系統更新
    2022-01-27 12:10:15
    張一鳴退出字節跳動,卸任多家字節關聯公司職務
    2022-01-27 12:10:08
    服務口碑領先 年服務用戶過萬 蘇寧幫客老板:春節不打烊
    2022-01-27 12:10:01
    蘋果、小米銷量再創新高 2021歐洲手機市場報告出爐
    2022-01-27 12:09:54
    一加BudsPro新增2022年吾皇萬睡虎年限定主題
    2022-01-27 12:09:47
    能打能撩 2022最惹火雷神女團真人版駕到!才藝滿分為電競上分
    2022-01-27 12:09:40
    粉色機身 華碩推出TUF GT301 鬼滅之刃聯名限定版機箱
    2022-01-27 12:09:33
    雷軍紅包封面開放領取 米粉不容錯過
    2022-01-27 12:09:26
    原神無懸念奪冠 2021Q4出海影響力榜單出爐
    2022-01-27 12:09:18
    15.8萬特斯拉今年底上市?馬斯克回應此事
    2022-01-27 12:09:10
    容聲冰箱帶來年貨盛宴 讓健康與愛搶“鮮”回家
    2022-01-27 12:09:02
    小米雷軍紅包封面來了 限量快點搶
    2022-01-27 12:08:53
    你集齊五福了嗎?來海信真空冰箱掃一掃,助你集“福”一臂之力!
    2022-01-27 12:08:43
    外媒公布iPhone 14 Pro外觀設計圖:網友吵翻了
    2022-01-27 12:08:33
    超50個國家和地區 Disney+訂閱服務計劃將擴展
    2022-01-27 12:08:24
    春季公開發售 一加 10 Pro產品頁面印度官網上線
    2022-01-27 12:08:14
    DXOMARK全球排名第20名!聯想拯救者電競手機2 Pro音頻成績揭曉
    2022-01-27 12:08:04
    光耦原理
    2022-01-27 12:00:32
    太陽能電池的工作原理
    2022-01-27 12:00:26
    幾種微波信號發生器選擇比較
    2022-01-27 12:00:20
    LM4890功放電路的分析
    2022-01-27 12:00:14
    學習篇:認識LED單元板/模組
    2022-01-27 12:00:08
    液晶及其顯示原理
    2022-01-27 12:00:02
    IPC性能大漲19% 平民價位12代酷睿裝機指南
    2022-01-27 10:51:27
    英特爾 ARC DG2 GPU 顯存配置曝光:最高為 16GB GDDR6
    2022-01-27 10:51:20
    機械革命無界 16 大屏輕薄本上架:14 核 i7-12700H
    2022-01-27 10:51:10
    OPPO Reno7 系列將于 2 月 4 日在印度發布
    2022-01-27 10:51:02
    蘋果發布iOS 15.3:修復iPhone 13大漏洞
    2022-01-27 10:39:13
    聯想智慧賦能中國短道速滑國家隊圓夢冰雪賽場
    2022-01-27 10:39:05
    約2522元起售!Steam Deck掌機定檔2月25日發售
    2022-01-27 10:38:57
    Redmibook Pro 15增強版直降700元!盧偉冰:春節可以入手了!
    2022-01-27 10:38:48
    12代酷睿也有千元神U?已經上架了!
    2022-01-27 10:38:39
    微信鍵盤上線了,但等于沒上線
    2022-01-27 10:38:29
    聯想摩托羅拉手機更新系統 16大功能齊推送
    2022-01-27 10:38:17
    華碩B550鬼滅之刃主板開啟預售 禰豆子與你同戰
    2022-01-27 10:38:03
    萬用表測電壓方法詳解
    2022-01-27 10:30:25
    計數器原理—不懂就要看哦~~
    2022-01-27 10:30:20
    濾波器原理
    2022-01-27 10:30:15
    堆棧指針寄存器 SP 詳解
    2022-01-27 10:30:10
    WI-FI產品日本MIC認證(TELEC)測試方法
    2022-01-27 10:30:05
    視頻壓縮技術解析
    2022-01-27 10:30:00
    微軟第二財季營收517億美元 服務器及云服務等部門營收183.27億元
    微軟第二財季營收517億美元 服務器及云服務等部門營收183.27億元
    2022-01-27 09:59:12
    騰訊投資心域科技!注冊資本增加至212.68萬元人民幣
    騰訊投資心域科技!注冊資本增加至212.68萬元人民幣
    2022-01-27 09:44:09
    iPhone 15將搭載潛望式長焦鏡頭 最高可支持5倍光學變焦
    iPhone 15將搭載潛望式長焦鏡頭 最高可支持5倍光學變焦
    2022-01-27 09:23:43
    2021全年手機市場數據出爐 vivo22%市場份額排名第一
    2021全年手機市場數據出爐 vivo22%市場份額排名第一
    2022-01-27 09:21:58
    直流調速器原理
    2022-01-27 09:00:26
    ARM體系結構版本與相應的內核名稱
    2022-01-27 09:00:21
    VGA接口定義、功能用途和種類
    2022-01-27 09:00:16
    中國移動面試試題及答案(全)
    2022-01-27 09:00:11
    激勵器的作用
    2022-01-27 09:00:05
    超聲波傳感器原理
    2022-01-27 09:00:00
    Windows 11正式發布3個月 當季度商業產品及云服務營收增長13%
    Windows 11正式發布3個月 當季度商業產品及云服務營收增長13%
    2022-01-27 08:45:05
    微軟發布更新幫Win10用戶升至Win11 包括系統優化及藍牙設備
    微軟發布更新幫Win10用戶升至Win11 包括系統優化及藍牙設備
    2022-01-27 08:43:36
    月用戶達14億!微軟稱Win11比以前的系統更加成功
    月用戶達14億!微軟稱Win11比以前的系統更加成功
    2022-01-27 08:41:29
    微信iOS版8.0.18發布:朋友圈最多支持20張照片,可選擇模板制作視頻
    微信iOS版8.0.18發布:朋友圈最多支持20張照片,可選擇模板制作視頻
    2022-01-27 08:39:49
    微軟宣布Win11安卓子系統下月全面開放 可直接在系統商店下載應用
    微軟宣布Win11安卓子系統下月全面開放 可直接在系統商店下載應用
    2022-01-27 08:33:00
    蘋果發布iOS 15.3:修復iPhone、iPad安全性更新及充電問題
    蘋果發布iOS 15.3:修復iPhone、iPad安全性更新及充電問題
    2022-01-27 08:31:12
    AMD銳龍5000低調升級B2步進 優化功耗及發熱可支持DDR4-4100超頻條
    AMD銳龍5000低調升級B2步進 優化功耗及發熱可支持DDR4-4100超頻條
    2022-01-27 08:28:07
    Intel新季度財報公布:營收205.28億美元,同比增長3%
    Intel新季度財報公布:營收205.28億美元,同比增長3%
    2022-01-27 08:11:29
    ZOL百萬補貼:滴滴濃香 松下滴漏式蒸汽煮咖啡機259元
    2022-01-27 07:38:35
    攢機單點評:選擇CPU帶不帶“F”很重要
    2022-01-27 07:38:27
    開“新”融冰雪 點亮年輕人熱愛生活之光
    2022-01-27 07:38:20
    還是白嫖更香!《絕對求生》免費后玩家暴漲486%
    2022-01-27 07:38:11
    造車的反去造手機 吉利投資手機業務會不會虧錢?
    2022-01-27 07:38:03
    逆變器電路DIY(圖文詳解)
    2022-01-27 07:30:20
    VHDL語言應用實例指導
    2022-01-27 07:30:14
    幾種常用的幻燈機介紹
    2022-01-27 07:30:09
    逆變器工作原理
    2022-01-27 07:30:04
    一代神車迎來黃昏:大眾帕薩特正式停產!
    2022-01-27 06:21:01
    可隨心DIY 影馳GAMER RGB DDR5-5600內存現已開售
    2022-01-27 06:09:09
    預計3月下旬上市 惠普Elite Mini 800 G9主機發布
    2022-01-27 06:09:02
    采用“人聲合成”音源技術 卡西歐發布新款電子鍵盤
    2022-01-27 06:08:56
    入侵模式來襲 《狙擊精英 5》2022在Xbox等設備發布
    2022-01-27 06:08:49
    179美元起 Redmi Note 11/11S海外發布
    2022-01-27 06:08:42
    喜迎虎年 《地平線5》推出五菱宏光及中配
    2022-01-27 06:08:34
    家電行業首提“羽絨織物烘干護理”認證
    2022-01-27 06:08:27
    1899元交個朋友 映眾RTX3050黑金至尊版
    2022-01-27 06:08:20
    顯卡危機再度來襲?《孤島危機4》確定開發中
    2022-01-27 06:08:12
    微軟財報公布:Xbox業務收入創歷史
    2022-01-27 06:08:03
    Mini DisplayPort接口規范正式頒布
    2022-01-27 06:00:35
    數字濾波器原理
    2022-01-27 06:00:29
    韓華集團設立中國總部
    2022-01-27 06:00:24
    漏電流的客觀分析
    2022-01-27 06:00:19
    電容的作用--你知道多少?
    2022-01-27 06:00:14
    電磁波譜的基本原理
    2022-01-27 06:00:09

    熱門文章

    熱點專題