精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Micropython+ESP32環境中使用定時器來實現各種實用功能

冬至子 ? 來源:醉里挑燈舞劍 ? 作者:Franze ? 2023-11-08 14:41 ? 次閱讀

引言

這個基礎系列的是為了完成一個智能家居系統。

定時器,顧名思義就是用來計時的。我們常常會設定計時或鬧鐘,然后時間到了就告訴我們要做什么了。單片機也是這樣,通過定時器可以完成各種預設好的任務。在這篇文章中,我們將介紹如何在Micropython+ESP32環境中使用定時器來實現各種實用的功能。

本次我們通過定時器讓 LED 周期性每秒閃爍 1 次。

材料準備

連接電路

圖片

編寫代碼

## 定時器的基本原理

在單片機中,定時器是一種硬件設備,用于產生精確的時間間隔。當定時器到達設定的時間值時,它會觸發一個事件,通知處理器執行相應的任務。在Micropython+ESP32中,我們可以使用machine.Timer類來創建和管理定時器。

ESP32-S3 內置 RTOS(實時操作系統)定時器,在 machine 的 Timer 模塊中。通過 MicroPython 可以輕松編程使用。我們也是只需要了解其構造對象函數和使用方法即可。

代碼

反轉狀態方法一:

圖片

反轉狀態方法二:

圖片
上面用兩種不同的方法來實現狀態的反轉。

代碼簡說

代碼中的注釋很清晰了,還是分四步走,重點說明一下構造函數和使用方法。

*構造函數:
t=machine.Timer(id) 構建定時器對象
【id】ESP32-S3 有 2 路硬件定時器,id=0~1,也可以定義成-1,即RTOS 虛擬定時器
*使用方法:
tim.init(period,mode,callback) 定時器初始化

  • period:單位為 ms;
  • mode:2 種工作模式,Timer.ONE_SHOT(執行一次)、Timer.PERIODIC(周期
    性);
  • callback:定時器中斷后的回調函數。

運行程序

定時器到了預設指定時間后,也會產生中斷,因此跟外部中斷的編程方式類似。我們已經創建了一個每隔1秒翻轉一次引腳狀態的定時器。你可以根據需要修改定時器的周期和回調函數來實現各種實用的功能。

總結

本節實驗介紹了RTOS定時器的使用方式。雖然使用延時函數也可以實現類似的功能,但是相比于延時函數,定時器具有不占用CPU資源的優勢。

在傳統的程序設計中,我們常常使用延時函數來實現一些需要等待一段時間的操作。然而,這種方式會阻塞CPU的執行,導致其他任務無法得到及時的處理。而使用定時器可以解決這個問題。

定時器是一種硬件設備,它可以在指定的時間間隔后觸發一個事件。通過設置定時器的周期和回調函數,我們可以實現在特定的時間點執行某個任務,而不需要占用CPU的資源。這樣,其他的任務就可以在這段時間內繼續執行,提高了系統的并發性和響應性。

在使用定時器時,我們需要先初始化一個定時器對象,并設置其周期和回調函數。然后,通過調用定時器的啟動方法,使其開始計時。當定時器到達設定的時間值時,它會觸發回調函數的執行,從而實現我們想要的功能。

相比于延時函數,定時器的好處在于它不會阻塞CPU的執行。即使定時器正在計時,CPU仍然可以繼續處理其他的任務。這樣可以提高系統的吞吐量和效率。此外,定時器還可以幫助我們實現更復雜的時間相關操作,如周期性的任務調度、事件觸發等。

總之,使用RTOS定時器可以提高系統的性能和效率。通過合理地設置定時器的周期和回調函數,我們可以實現在特定時間點執行任務的需求,而不需要占用CPU的資源。這使得我們能夠更好地管理系統的并發性和響應性,提高系統的可靠性和穩定性。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 定時器
    +關注

    關注

    23

    文章

    3218

    瀏覽量

    113688
  • RTOS
    +關注

    關注

    20

    文章

    804

    瀏覽量

    119117
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11508
  • ESP32
    +關注

    關注

    17

    文章

    936

    瀏覽量

    16667
  • Micropython
    +關注

    關注

    0

    文章

    68

    瀏覽量

    4681
收藏 人收藏

    評論

    相關推薦

    ESP32 MicroPython 教程】定時器中斷

    ESP32
    YS YYDS
    發布于 :2023年05月12日 21:18:54

    何在ESP32上使用MicroPython

    ESP32移植MicroPython簡介安裝esptool下載MicroPython固件寫入固件連接Putty測試程序簡介本教程制作于Windows系統。通過python環境下運行es
    發表于 01-11 07:58

    了解esp32環境搭建以及初識esp32

    esp32小車實驗了解esp32呼吸燈實驗驅動直流電機認識第一個傳感器使用wifi進行調參了解esp32環境搭建以及初識esp32我們所用的
    發表于 02-24 06:31

    ESP32教程之如何在Windows系統上搭建開發環境

    本文檔的主要內容詳細介紹的是ESP32教程之如何在Windows系統上搭建開發環境
    發表于 12-13 15:34 ?40次下載
    <b class='flag-5'>ESP32</b>教程之如<b class='flag-5'>何在</b>Windows系統上搭建開發<b class='flag-5'>環境</b>

    ESP32環境搭建以及入門編程_esp32引腳圖

    本文主要介紹了ESP32環境搭建以及入門編程及ESP32的引腳圖。
    發表于 04-23 11:15 ?1.4w次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>環境</b>搭建以及入門編程_<b class='flag-5'>esp32</b>引腳圖

    ESP32ESP-IDF 教學(三)——通用硬件定時器(Timer)

    ESP32ESP-IDF 學習筆記(三)【通用硬件定時器(Timer)】文章目錄ESP32ESP-IDF 學習筆記(三)【通用硬
    發表于 11-26 11:36 ?37次下載
    <b class='flag-5'>ESP32</b> 之 <b class='flag-5'>ESP</b>-IDF 教學(三)——通用硬件<b class='flag-5'>定時器</b>(Timer)

    ESP32刷入MicroPython以及連接WiFi

    一、ESP32刷入MicroPython1.ESP32驅動2.下載MicroPython3.刷入micropython4.進入ESP32二、
    發表于 12-04 19:51 ?28次下載
    <b class='flag-5'>ESP32</b>刷入<b class='flag-5'>MicroPython</b>以及連接WiFi

    arduino / VScode+platformIO搭建esp32/esp8266編譯環境(一篇足矣)

    大大的贊吧!結尾還有micropython+esp32/esp8266環境搭建的入口,千萬不要錯過哦~文章目錄arduino/VScode+platformIO 搭建esp32/
    發表于 12-05 14:06 ?31次下載
    arduino / VScode+platformIO搭建<b class='flag-5'>esp32</b>/<b class='flag-5'>esp</b>8266編譯<b class='flag-5'>環境</b>(一篇足矣)

    ESP-32開發踩坑歷程(三)ESP-IDF 定時器使用

    ESP-32開發踩坑歷程(三)ESP-IDF 定時器使用前言一、開發基礎二、定時器使用1.官方描述2.讀入數據總結ESP-32開發踩坑歷程(
    發表于 12-08 12:06 ?13次下載
    <b class='flag-5'>ESP</b>-32開發踩坑歷程(三)<b class='flag-5'>ESP</b>-IDF <b class='flag-5'>定時器</b>使用

    使用MicroPython開發ESP32(01):快速入門

    文章目錄為什么使用MicroPython開發ESP32快速入門開發板準備開發工具選擇固件下載與燒錄我的總結為什么使用MicroPython開發ESP32ESP32是非常熱門的一款物聯網
    發表于 12-29 18:49 ?22次下載
    使用<b class='flag-5'>MicroPython</b>開發<b class='flag-5'>ESP32</b>(01):快速入門

    何在ESP32/ESP8266上使用MicroPython

    在本教程中,我們將了解 MicroPython,它與 Python 有何不同,以及如何在 ESP32/ESP8266 上開始使用 MicroPyth
    發表于 08-19 15:09 ?1.3w次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266上使用<b class='flag-5'>MicroPython</b>

    基于ESP32的低功耗藍牙暗室定時器

    電子發燒友網站提供《基于ESP32的低功耗藍牙暗室定時器.zip》資料免費下載
    發表于 02-09 11:53 ?0次下載
    基于<b class='flag-5'>ESP32</b>的低功耗藍牙暗室<b class='flag-5'>定時器</b>

    ESP32-C3硬件定時器簡介及使用

    ESP32-C3 有2個定時器組,每個組有2個定時器,共有4個定時器。
    的頭像 發表于 03-14 11:43 ?4278次閱讀
    <b class='flag-5'>ESP32</b>-C3硬件<b class='flag-5'>定時器</b>簡介及使用

    構建ESP32 MicroPython Wifi的機器人汽車

    電子發燒友網站提供《構建ESP32 MicroPython Wifi的機器人汽車.zip》資料免費下載
    發表于 07-12 09:12 ?5次下載
    構建<b class='flag-5'>ESP32</b> <b class='flag-5'>MicroPython</b> Wifi的機器人汽車

    何在Arduino IDE中安裝ESP32開發環境

    要在Arduino IDE中使ESP32開發板,您需要先安裝相應的開發環境。以下是在Arduino IDE中安裝ESP32開發環境的步驟。
    的頭像 發表于 07-13 16:48 ?1.6w次閱讀
    如<b class='flag-5'>何在</b>Arduino IDE中安裝<b class='flag-5'>ESP32</b>開發<b class='flag-5'>環境</b>