arduino - 一次运行两个函数
问题描述
这个程序是一个简单的程序,旨在同时在串行监视器上绘制你和 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);
}
}
解决方案
处理这个问题的最确定的方法很简单:
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();
}
推荐阅读
- linux - Linux/Golang:无法访问 /sys/kernel/debug/tracing/kprobe_events
- python - 在数据帧上应用 lambda 函数时将数据帧作为参数传递
- kotlin - ArchUnit 不区分大小写的名称匹配
- c# - 计算未执行以计算 c#asp.net sql linq 中 2 个日期之间的总天数差异
- javascript - 使用 Apple REST API 登录时无法获取电子邮件地址或 Apple ID
- safari - Safari ITP 2.3:所有脚本可写网站数据的生命周期上限
- r - “`[[<-`(`*tmp*`, i, value = ) 中的错误:在级别 1 没有这样的索引”将 for 循环结果分配给列表
- python - 在 docker build 中运行 pip install requirements.txt 失败
- c# - 如何在 C#.net 中使用 YOLO 提高对象检测的速度
- python - 关键字参数后的位置参数和 * 参数后的常规参数