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

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

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

觸發(fā)器功能函數(shù)實(shí)現(xiàn)

冬至子 ? 來源:麥芽二糖 ? 作者:麥芽二糖 ? 2023-10-23 16:54 ? 次閱讀

一、

觸發(fā)器很多時候是很有用的,CAN總線或者串口周期發(fā)送一個信號,這個信號作為一個判斷條件,當(dāng)這個信號為有效信號時只需要執(zhí)行一遍用戶程序。

這里用觸發(fā)器就會很好處理,有效信號為高電平那么做一個上升沿觸發(fā)函數(shù),有效信號為低電平那么做一個下降沿觸發(fā)函數(shù)。

二、觸發(fā)器功能實(shí)現(xiàn)

1、首先定義一個結(jié)構(gòu)體

typedef struct _trig
{
    bool input;
    bool output;
    bool lastInput;
}trig_t;

C語言本身是沒有bool類型的,我們可以自己定義一個或者使用#include 添加這個庫。

2、上升沿函數(shù)

bool R_Trig(trig_t* trig)
{
    if((trig- >input==true) && (trig- >lastInput==false)) {
        trig- >output = true;
    } else {
        trig- >output = false;
    }
    trig- >lastInput = trig- >input;


    return trig- >output;
}

3、下降沿函數(shù)

bool F_Trig(trig_t* trig)
{
    if((trig- >input==false) && (trig- >lastInput==true)) {
        trig- >output = true;
    } else {
        trig- >output = false;
    }
    trig- >lastInput = trig- >input;


    return trig- >output;
}

4、使用例程

上升沿:

trig_t R = {0}; /* 定義一個結(jié)構(gòu)體 R */
bool userVar = false; /* 定義一個用于接收總線信號的變量 */
int main()
{
  R.input = userVar;
  if( R_Trig(&R)) {
    /* 只執(zhí)行一遍的用戶代碼 */
  }
  return 0;
}

下降沿:

trig_t F = {
            .input = true;
            .laseInput = true;
            }; /* 定義一個結(jié)構(gòu)體 R */
bool userVar = true; /* 定義一個用于接收總線信號的變量 */
int main()
{
  F.input = userVar;
  if( F_Trig(&F)) {
    /* 只執(zhí)行一遍的用戶代碼 */
  }
  return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1908

    瀏覽量

    130514
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135641
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60983
收藏 人收藏

    評論

    相關(guān)推薦

    D觸發(fā)器/J-K觸發(fā)器功能測試及其應(yīng)用

    D觸發(fā)器功能測試74LS74型雙D觸發(fā)器芯片引腳圖,D觸發(fā)器功能測試的引腳連線圖,D觸發(fā)器
    發(fā)表于 02-14 15:27 ?0次下載
    D<b class='flag-5'>觸發(fā)器</b>/J-K<b class='flag-5'>觸發(fā)器</b>的<b class='flag-5'>功能</b>測試及其應(yīng)用

    D觸發(fā)器

    D觸發(fā)器 同步式D觸發(fā)器邏輯電路圖 D觸發(fā)器功能
    發(fā)表于 10-20 09:57 ?2435次閱讀
    D<b class='flag-5'>觸發(fā)器</b>

    基本觸發(fā)器功能的描述

    描述觸發(fā)器的邏輯功能,通常采用下面三種方法:1.狀態(tài)轉(zhuǎn)移真值表為了表明觸發(fā)器在輸入信號作用下,
    發(fā)表于 08-13 09:21 ?6373次閱讀
    基本<b class='flag-5'>觸發(fā)器</b><b class='flag-5'>功能</b>的描述

    觸發(fā)器功能的模擬實(shí)現(xiàn)

    1、掌握觸發(fā)器功能的測試方法。 2、掌握基本RS觸發(fā)器的組成及工作原理。 3、掌握集成JK觸發(fā)器和D觸發(fā)器的邏輯
    發(fā)表于 07-10 14:39 ?18次下載

    基于CPLD的觸發(fā)器功能的模擬實(shí)現(xiàn)

    實(shí)驗(yàn)內(nèi)容 將基本RS觸發(fā)器,同步RS觸發(fā)器,集成J-K觸發(fā)器,D觸發(fā)器同時集成一個CPLD芯片中模擬其功能,并研究其相互轉(zhuǎn)換的方法。 實(shí)驗(yàn)的
    發(fā)表于 12-05 09:33 ?13次下載
    基于CPLD的<b class='flag-5'>觸發(fā)器</b><b class='flag-5'>功能</b>的模擬<b class='flag-5'>實(shí)現(xiàn)</b>

    jk觸發(fā)器實(shí)現(xiàn)74ls194功能

    JK觸發(fā)器是數(shù)字電路觸發(fā)器中的一種基本電路單元。本文以jk觸發(fā)器為中心,主要介紹了JK觸發(fā)器工作特性以及jk觸發(fā)器是如何
    發(fā)表于 12-22 16:09 ?2.4w次閱讀
    jk<b class='flag-5'>觸發(fā)器</b><b class='flag-5'>實(shí)現(xiàn)</b>74ls194<b class='flag-5'>功能</b>

    觸發(fā)器的輸出是現(xiàn)態(tài)函數(shù)

    觸發(fā)器的輸出是現(xiàn)態(tài)函數(shù) 觸發(fā)器是數(shù)字電路中的一種重要元件,它們通常被用于存儲和裝載二進(jìn)制數(shù)據(jù),也可以用于控制和同步各種數(shù)字電路。在許多數(shù)字電路應(yīng)用中,觸發(fā)器的輸出通常被用作輸入信號來
    的頭像 發(fā)表于 08-24 15:50 ?920次閱讀

    觸發(fā)器激勵函數(shù)和輸出函數(shù)解析

    觸發(fā)器激勵函數(shù)和輸出函數(shù)解析? 觸發(fā)器是數(shù)字電路中的一種重要的組合邏輯電路,其可以達(dá)到存儲、延時、計(jì)數(shù)等功能。
    的頭像 發(fā)表于 08-24 15:50 ?2589次閱讀

    rs觸發(fā)器的邏輯功能

    RS觸發(fā)器是數(shù)字電路中最簡單的一種觸發(fā)器,其由兩個互相反向的電平觸發(fā)器組成。RS觸發(fā)器的邏輯功能非常重要,它可以用于存儲1位二進(jìn)制數(shù)據(jù),并能
    的頭像 發(fā)表于 11-17 16:01 ?5238次閱讀

    RS觸發(fā)器實(shí)現(xiàn)原理 rs觸發(fā)器具有什么功能

    RS觸發(fā)器是一種基本的數(shù)字邏輯電路,它由兩個互補(bǔ)的反饋連接組成。RS觸發(fā)器可以用作其他高級邏輯電路的構(gòu)建模塊,如計(jì)數(shù)、移位寄存和內(nèi)存單元等。本文將詳細(xì)介紹RS
    的頭像 發(fā)表于 01-17 14:24 ?4206次閱讀

    如何用jk觸發(fā)器構(gòu)成t觸發(fā)器?t觸發(fā)器邏輯功能有哪些

    觸發(fā)器,其輸入信號作用于觸發(fā)器,觸發(fā)器將根據(jù)輸入信號進(jìn)行狀態(tài)切換。本文將詳細(xì)介紹如何使用JK觸發(fā)器構(gòu)成T觸發(fā)器,并介紹T
    的頭像 發(fā)表于 02-06 14:11 ?7013次閱讀

    t觸發(fā)器與d觸發(fā)器的區(qū)別和聯(lián)系

    )。 1. 觸發(fā)器的基本概念 觸發(fā)器是一種具有記憶功能的電路,它可以存儲一位二進(jìn)制信息。在數(shù)字電路中,觸發(fā)器通常由兩個穩(wěn)定的工作狀態(tài)組成,即0狀態(tài)和1狀態(tài)。
    的頭像 發(fā)表于 08-11 09:37 ?1229次閱讀

    t觸發(fā)器變?yōu)閐觸發(fā)器的條件

    是一種具有記憶功能的數(shù)字電路元件,可以存儲一位二進(jìn)制信息。它通常由邏輯門、觸發(fā)器存儲元件和反饋回路組成。觸發(fā)器的輸出狀態(tài)取決于輸入信號和當(dāng)前狀態(tài)。 1.2 觸發(fā)器的分類
    的頭像 發(fā)表于 08-22 10:33 ?556次閱讀

    基本rs觸發(fā)器有哪三種功能 基本rs觸發(fā)器觸發(fā)方式是什么

    變?yōu)楦唠娖?。?dāng)輸入信號R為高電平時,觸發(fā)器的輸出Q將被置為高電平,無論輸入信號S的狀態(tài)如何。這種功能通常用于將觸發(fā)器的狀態(tài)設(shè)置為特定的初始狀態(tài)。 置位功能
    的頭像 發(fā)表于 08-22 15:17 ?564次閱讀

    怎么用jk觸發(fā)器變成t觸發(fā)器

    將JK觸發(fā)器變成T觸發(fā)器,主要涉及到對JK觸發(fā)器的輸入端口進(jìn)行適當(dāng)?shù)倪B接和配置,以實(shí)現(xiàn)T觸發(fā)器的邏輯功能
    的頭像 發(fā)表于 08-28 09:41 ?598次閱讀