arduinoでバックグラウンドプロセスを実行する

user3754203

arduino megaに、他の多くの関数を実行しながら、バックグラウンドで関数を実行させようとしています。

私がバックグラウンドで実行しようとしている関数は、風速計から風速を決定する関数です。データを処理する方法は、風速計が設定された期間中に行った回転数を読み取り、その時間にわたってその回転数を取得して風速を決定するという点で、走行距離計の方法と似ています。平均するデータが多いため、受信するデータがより正確に実行される期間が長くなります。

私が抱えている問題は、私が1秒に1回読み取りたいarduinoにも読み込んでいる他のデータがたくさんあることです。この1秒の時間間隔は、高精度の風データを提供するのに十分な回転が風速計によって完了されていないため、正確な風の測定値を取得するには短すぎます。

風センサー機能をバックグラウンドで実行し、プログラムの残りの部分が同時に実行され、他のデータが1秒ごとに更新されている間に、5秒ごとにグローバル変数を更新する方法はありますか?

これが、風向風速センサーからデータを読み取るために持っているコードです。風向風速センサーが回転するたびに、信号が0として読み込まれる部分があります。それ以外の場合、センサーは0より大きい整数として読み込まれます。

 void windmeterturns(){
     startime = millis();
     endtime = startime + 5000;
     windturncounter = 0;
     turned = false;
     int terminate = startime;
     while(terminate <= endtime){
           terminate = millis();
           windreading = analogRead(windvelocityPin);
           if(windreading == 0){
               if(turned == true){
                   windturncounter = windturncounter + 1;
                   turned = false;
               }
           }
           else if(windreading >= 1){
               turned = true;
           }
           delay(5);
     }
 }

の残りの処理は別の関数で行われますが、これは私が現在苦労している関数です。コード全体を投稿することは、1000行に近いため、ここでは実際には合理的ではありません。

残りの関数はループ内で1秒の遅延で実行されますが、試行錯誤の結果、他の関数の処理とともに遅延が発生するため、遅延は実際には1秒より長くなり、それに基づいて変化します。他のセンサーからどのような種類のデータを読み込んでいるので、タイミングの5ループカウンターはここでは機能しないと思います

mpflag

割り込みがあなたのために仕事をするようにしましょう。

つまり、タイマー割り込みを使用して、バックグラウンドでのアナログ読み取り値を測定する定期的な割り込みを生成することをお勧めします。その後、これは静的揮発性変数を更新できます。

タイマー割り込みの使用方法の詳細については、同様のシナリオであるため、ここで私の回答を参照してくださいここで、callback()を上記のanalogreadおよびincrementに置き換えることができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Linuxでバックグラウンドでプロセスを実行する

分類Dev

バックグラウンドでサブプロセスを実行する

分類Dev

symfonyでバックグラウンドプロセスを実行する方法

分類Dev

Pythonでバックグラウンドプロセスを実行する

分類Dev

バックグラウンド python で GPIO プロセスを実行する

分類Dev

バックグラウンドプロセスでsshスクリプトを実行する

分類Dev

xshellでscreenコマンドを使用してバックグラウンドプロセスを実行する

分類Dev

xshellでscreenコマンドを使用してバックグラウンドプロセスを実行する

分類Dev

PowerShellでバックグラウンドプロセスとしてMavenコマンドを実行する方法

分類Dev

フォアグラウンドプロセスの実行中にバックグラウンドで別のプロセスを生成する方法

分類Dev

SpringMVCフレームワークでバックグラウンドプロセスを実行する方法

分類Dev

Windows上のPHPでバックグラウンドプロセスを実行してpidを取得する

分類Dev

Pythonを使用してバックグラウンドで実行されるプロセスを作成します

分類Dev

gcloudsshを使用してバックグラウンドでプロセスを実行する方法

分類Dev

バックグラウンドプロセスとしてACプログラムを実行する

分類Dev

出力を返す前にバックグラウンドで実行されるPythonサブプロセス

分類Dev

PHPでバックグラウンドプロセスを永続的に実行する

分類Dev

Androidでバックグラウンドプロセスを繰り返し実行する方法

分類Dev

init、Perlに採用されずにバックグラウンドでプロセスを実行する

分類Dev

新しいバックグラウンドtmuxウィンドウでコマンドを実行し、プロセスが終了するのを待ちます

分類Dev

phpはバックグラウンドプロセスを実行します

分類Dev

PythonスクリプトをWindowsバックグラウンドプロセスとして実行する

分類Dev

プログラムをバックグラウンドで実行する

分類Dev

バックグラウンドでプロセスを実行し、同じコマンドラインでディレクトリを変更する方法

分類Dev

Unix / Javaプロセスは、バックグラウンドに移動すると実行を停止します

分類Dev

bash-cを使用してバックグラウンドプロセスを実行する方法

分類Dev

バックグラウンドで実行中にプロセスの pid を見つける

分類Dev

Vimはバックグラウンドでプロセスを実行します

分類Dev

Pythonのサブプロセスを実行してバックグラウンドのままにする方法

Related 関連記事

  1. 1

    Linuxでバックグラウンドでプロセスを実行する

  2. 2

    バックグラウンドでサブプロセスを実行する

  3. 3

    symfonyでバックグラウンドプロセスを実行する方法

  4. 4

    Pythonでバックグラウンドプロセスを実行する

  5. 5

    バックグラウンド python で GPIO プロセスを実行する

  6. 6

    バックグラウンドプロセスでsshスクリプトを実行する

  7. 7

    xshellでscreenコマンドを使用してバックグラウンドプロセスを実行する

  8. 8

    xshellでscreenコマンドを使用してバックグラウンドプロセスを実行する

  9. 9

    PowerShellでバックグラウンドプロセスとしてMavenコマンドを実行する方法

  10. 10

    フォアグラウンドプロセスの実行中にバックグラウンドで別のプロセスを生成する方法

  11. 11

    SpringMVCフレームワークでバックグラウンドプロセスを実行する方法

  12. 12

    Windows上のPHPでバックグラウンドプロセスを実行してpidを取得する

  13. 13

    Pythonを使用してバックグラウンドで実行されるプロセスを作成します

  14. 14

    gcloudsshを使用してバックグラウンドでプロセスを実行する方法

  15. 15

    バックグラウンドプロセスとしてACプログラムを実行する

  16. 16

    出力を返す前にバックグラウンドで実行されるPythonサブプロセス

  17. 17

    PHPでバックグラウンドプロセスを永続的に実行する

  18. 18

    Androidでバックグラウンドプロセスを繰り返し実行する方法

  19. 19

    init、Perlに採用されずにバックグラウンドでプロセスを実行する

  20. 20

    新しいバックグラウンドtmuxウィンドウでコマンドを実行し、プロセスが終了するのを待ちます

  21. 21

    phpはバックグラウンドプロセスを実行します

  22. 22

    PythonスクリプトをWindowsバックグラウンドプロセスとして実行する

  23. 23

    プログラムをバックグラウンドで実行する

  24. 24

    バックグラウンドでプロセスを実行し、同じコマンドラインでディレクトリを変更する方法

  25. 25

    Unix / Javaプロセスは、バックグラウンドに移動すると実行を停止します

  26. 26

    bash-cを使用してバックグラウンドプロセスを実行する方法

  27. 27

    バックグラウンドで実行中にプロセスの pid を見つける

  28. 28

    Vimはバックグラウンドでプロセスを実行します

  29. 29

    Pythonのサブプロセスを実行してバックグラウンドのままにする方法

ホットタグ

アーカイブ