c - 如何在嵌入式 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();
}
}
解决方案
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;
}
}
推荐阅读
- python - 在 VC 中时,音频不会在机器人上播放
- r - purrr::flatten 列表但保持层次结构名称
- deep-learning - 每次我尝试训练模型时,Google Colab 都会断开连接,但没有向我提供任何错误
- reactjs - NextJS 中的窗帘 JS 不渲染图像
- javascript - 如何在 React 中将对象包含到字符串中?
- python - 忽略 if 语句设置的边界但仍能识别它们的条件问题
- c - 打印星号字符在 C 中打印损坏的字符
- material-design - MaterialTimePicker 的键盘输入是否需要点击 2 次才能打开?
- python-3.x - 从一个父列表创建两个列表是否有更好的语法?
- r - 用重复的 pivot_longer 或类似的东西重塑 R 数据框 - 代表一棵树?