首页 > 解决方案 > 一次运行两个函数

问题描述

这个程序是一个简单的程序,旨在同时在串行监视器上绘制你和 Uc。Arduino 运行第一个 for 循环并绘制 F1 函数,然后对 F2 执行相同操作。我的目标是同时绘制它们。

我的想法是实际上花一小部分时间,比如说 10 毫秒,来绘制 F1 和接下来的 10 毫秒来绘制 F2,但我不知道如何写下来。我认为millis函数是解决方案,但我不太确定如何实现它。

const short int R = 5000;
const float C = 0.0005;
const float TE = 0.1;
const float Tau = R*C;
const short int E = 5;
float t, Tinit,Tfin;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  //F1
  for ( t = 0; t <= 20; t = t+TE)
  {
      float Ur = E*exp(-t/Tau);
      Serial.println (Ur);
  }

  //F2
  for ( t = 0; t <= 20; t = t+TE)
  {
      float Uc = E*(1-exp(-t/Tau));
      Serial.println (Uc);
  }
}

标签: arduino

解决方案


处理这个问题的最确定的方法很简单:

for (t = 0; t <= 20; t = t + TE) {
    float Ur = E*exp(-t/Tau);
    float Uc = E*(1-exp(-t/Tau));
    Serial.println (Ur);
    Serial.println (Uc);
}

更一般地,您可以实现原始资源调度程序:

while (true) {
    task_one();
    task_two();
}

推荐阅读