首页 > 解决方案 > 如何在嵌入式 c 中使用 volatile 变量的另一个函数

问题描述

如果(表达式1)运行意味着气体泄漏,它将运行(表达式2)和(表达式3)。(表达式 2) 在气体泄漏期间仅工作一次。如果气体传感器在返回传感器信号下降后第二次检测到,则必须运行(表达式 2)。问题是代码在第二次漏气时跳过(表达式2)。

我要这样做(表达式 2)在气体泄漏期间运行一次。它必须在第二次漏气时工作。

void Sensor_buzzer (){

if (Check_Gas_Voltage(Sensor1)){        // expression 1

    static uint8_t i=0;

    if (i==0){                                           // expression 2

        _delay_ms(300);              

        Buzzer_Tune();

        Sensor_Relay_Mechanism();

        i++;

    }

    else if (i>0){                                   // expression 3

        Buzzer_Tune();

    } 

}

标签: cembedded

解决方案


i如果没有气体泄漏,如何设置为零

void Sensor_buzzer ()
{
    static uint8_t i = 0;

    if (Check_Gas_Voltage(Sensor1))
    {

        if (i==0)
        {
            _delay_ms(300);              
            Buzzer_Tune();
            Sensor_Relay_Mechanism();
            i++;
        }
        else if (i > 0)
        {
            Buzzer_Tune();
        } 
    }
    else
    {
        i = 0;
    }
}

推荐阅读