99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>在您的代碼中實(shí)現(xiàn)心跳

在您的代碼中實(shí)現(xiàn)心跳

2023-02-08 | zip | 0.02 MB | 次下載 | 免費(fèi)

資料介紹

描述

什么是心跳?

心跳是程序以某個(gè)給定頻率生成的“脈沖”,可用于表明實(shí)現(xiàn)它的總體代碼/應(yīng)用程序一切正常。心跳通常(但不總是)通過(guò)指示燈(例如 LED)的閃爍開(kāi)/關(guān)來(lái)指示。當(dāng)指示燈閃爍('beating')時(shí),我們知道代碼正在運(yùn)行,否則我們可能有問(wèn)題需要調(diào)查。

在您的草圖中添加心跳指示器是一種簡(jiǎn)單且低開(kāi)銷的方式,可以提供一種可見(jiàn)的方式來(lái)證明您的代碼正在運(yùn)行,特別是如果它是一個(gè)通常提供很少操作可見(jiàn)性的應(yīng)用程序。例如,監(jiān)控傳感器并僅在可能達(dá)到閾值時(shí)發(fā)出警報(bào)的草圖等。在這些情況下,代碼正在運(yùn)行是令人放心的。

心跳代碼和組件由什么組成?

實(shí)現(xiàn)可見(jiàn)心跳有兩個(gè)部分:

1. 提供心跳可見(jiàn)指示的硬件組件,以及
2.軟件驅(qū)動(dòng)硬件。

為了讓生活變得如此簡(jiǎn)單,本文提供的心跳實(shí)現(xiàn) 不需要任何硬件組件,除了兼容 Arduino微控制器,因?yàn)槲覀儗⑹褂迷S多此類板通用的內(nèi)置 LED。這些板在數(shù)字引腳 13 上有一個(gè)內(nèi)置 LED(“LED_BUILTIN”),可以直接訪問(wèn)。因此,通過(guò)使用此功能,我們根本不需要任何其他硬件組件。這只會(huì)讓我們專注于心跳軟件。

心跳軟件/代碼

心跳軟件可以分為四個(gè)部分來(lái)考慮:

1.它需要操作的變量的聲明/定義語(yǔ)句,
2. heart_beat()函數(shù)的聲明,
3.心跳的設(shè)置,以及
4. 在需要的最終用戶代碼中的任何地方調(diào)用心跳。

心跳代碼被設(shè)計(jì)為非阻塞函數(shù)('heart_beat()'),它可以包含在最終用戶代碼中的任何位置的任意位置。至少,假設(shè)主程序循環(huán)被設(shè)計(jì)為重復(fù),heart_beat() 調(diào)用應(yīng)該出現(xiàn)在該代碼部分的某個(gè)位置,例如在主循環(huán)的開(kāi)始處。

讓我們看看心跳代碼的每一位

1.聲明定義語(yǔ)句

#define heart_beat_pin   LED_BUILTIN  // digital pin for heart beat LED
long unsigned heart_beat_freq = 1000; // time(milliseconds) of heart beat frequency
long unsigned heart_beat_on_off_time; // the time the LED is on and off - 1/2 frequency
long unsigned last_heart_beat_time;   // time in milliseconds of last heart beat status change
bool heart_beat_status = HIGH;        // current status of heart beat, start high

心跳代碼可以通過(guò)修改上述聲明和定義之一來(lái)適應(yīng)最終用戶的需求,如下所示:

內(nèi)部或外部 LED 指示器- 如果不使用內(nèi)置微控制器 LED,heart_beat_pin則應(yīng)將定義“”設(shè)置為用于外部 LED 的數(shù)字引腳號(hào)。實(shí)際上,開(kāi)箱即用,代碼將使用引腳 13 上的內(nèi)置 LED(常量 LED_BUILTIN),從而避免任何其他硬件組件或布線。
改變心跳頻率- 可以通過(guò)將變量“ heart_beat_freq”預(yù)設(shè)為所需的毫秒數(shù)來(lái)設(shè)置心跳運(yùn)行的頻率。請(qǐng)注意,LED 點(diǎn)亮和熄滅的時(shí)間將是預(yù)設(shè)頻率的二分之一。例如,如果預(yù)設(shè)頻率為 1 赫茲或 1000 毫秒,則心跳 LED 將保持亮起 500 毫秒并熄滅 500 毫秒,即各半秒。

所有其他變量都由心跳代碼在內(nèi)部使用,用戶不可定義。

2. heart_beat() 函數(shù)

為了簡(jiǎn)單起見(jiàn),心跳代碼被實(shí)現(xiàn)為一個(gè)非阻塞、簡(jiǎn)單的函數(shù),名為“heart_beat”。它沒(méi)有參數(shù),類型為 void。

函數(shù)如下:

//
// Function handles the heart beat cycle.
// May be called from anywhere, but at least every main loop cycle.
//
void heart_beat() {
 if (millis() - last_heart_beat_time >= heart_beat_on_off_time) {
   // time to swap status of the heart beat LED and update it
   last_heart_beat_time = millis();
   heart_beat_status = !heart_beat_status;           // invert current heart beat status value
   digitalWrite(heart_beat_pin, heart_beat_status);  // update LED with new status
 }
}

只需在某個(gè)合適的位置將它添加到您的代碼中,并確保它至少在主循環(huán)部分中被調(diào)用。

3.心跳的設(shè)置

心跳代碼在 setup() 函數(shù)中初始化,如下所示:

 // setup heart beat
 pinMode(heart_beat_pin, OUTPUT);
 heart_beat_on_off_time = heart_beat_freq / 2; // LED is on and off at 1/2 frequency time
 // end of heart beat setup

最終用戶無(wú)需在此處執(zhí)行或修改任何內(nèi)容,只需將代碼包含在 setup() 函數(shù)中即可。

4.調(diào)用心跳

為了運(yùn)行心跳,定期調(diào)用函數(shù)“heart_beat()”是必要且必不可少的。它可以插入總體最終用戶應(yīng)用程序代碼中的任何位置,但通常最好在代碼的主循環(huán)部分插入一個(gè)調(diào)用,以便它定期循環(huán)。如果是主循環(huán)代碼沒(méi)有自動(dòng)循環(huán),那么 heart_beat() 函數(shù)調(diào)用可能需要包含在代碼中的其他常規(guī)訪問(wèn)點(diǎn)。該功能可以根據(jù)需要重復(fù)多次,而不會(huì)對(duì)心跳的正常運(yùn)行產(chǎn)生任何影響。

一個(gè)主循環(huán)示例是:

void loop() {
 heart_beat();
 // add your other code here...
}

就是這樣!保持手頭的技術(shù)并將草圖作為標(biāo)準(zhǔn)特征包含在草圖中。

進(jìn)一步閱讀

您可能還會(huì)發(fā)現(xiàn)同一作者的這些貢獻(xiàn)有趣且有用:

  • Music & Lights Workbench旨在向計(jì)算機(jī)編程新手介紹該主題,使用簡(jiǎn)單的命令和炫酷的效果。該方法是導(dǎo)師和學(xué)生之一
  • External Interrupts,一個(gè)支持并發(fā)異步多中斷的通用框架。配置多個(gè)具有不同特性的外部中斷并添加代碼以提供中斷后異步處理。
  • Programmatic Timed Reminder Alerting,一種用于過(guò)去和實(shí)時(shí)異步警報(bào)的編程框架。定義任意數(shù)量的提醒警報(bào)(亞秒級(jí)到數(shù)小時(shí))并異步處理。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫(kù)封裝庫(kù)安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級(jí)說(shuō)明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開(kāi)發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開(kāi)發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分