プロが教える店舗&オフィスのセキュリティ対策術

パソコンをシーケンサのように動かすために無限ループでpiコントローラを作ってみました。左右キーで数値を動かせるようにしてテキストファイルに値を入れています。いずれはセンサーやアクチュエータと繋ぎ簡単なロボットやデータセンシングをしたいと思っています。さくさく動くように感じるのですが、メモリーの使い過ぎ等の不安がないか気になります。下記のソフトで充分かアドバイスをお願いします。


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include <conio.h>
#include <time.h>

#define P 5
#define T 10
#define D 20
#define UP 77
#define DOWN 75
#define ESC 27
#define N 100

int main(void){

int Kn;
double SV;
double PV;
double MVn;
double MVnb;
double dt;
double t;
time_t timer;
FILE *fp;
char *fname = "test.txt";

fp = fopen( fname, "w" );
if( fp == NULL ){
printf( "%sファイルが開けません\n", fname );
return -1;
}


SV=0;
PV=0;
MVnb=0;
dt=N*0.001;
t=0;
printf("SV値(実数値)を入力してください\n");
scanf("%lf",&SV);

while(1){
if(kbhit()) {Kn=getch( ); // 特殊キーの番号を得る
if ( Kn==77 ) PV+=0.10; // →キーが押されたらプラス0.1
if ( Kn==75 ) PV-=0.10; // →キーが押されたらマイナス0.1
if (Kn==27) break; // ESCキーが押されたら終了
}
else {PV+=0.00; // →キー入力が無ければそのまま
}
/* 現在時刻の取得 */
time(&timer);
MVn=P*((SV-PV)+MVnb);
if(MVn>=100) MVn=100;
if(MVn<=0) MVn=0;
t+=dt;
MVnb+=(SV-PV)*dt/T;
printf("現在時刻:%s SV=%lf PV=%lf MV=%lf\n",ctime(&timer),SV,PV,MVn);
fprintf(fp, "現在時刻:%s SV=%lf PV=%lf MV=%lf\n",ctime(&timer),SV,PV,MVn);
Sleep(N);
}
fclose( fp );
return 0;
}

A 回答 (1件)

どういう意味で「充分」かどうか知りたいのかわからんのだけど, あえていうと


人に見せるプログラムとはいいがたい
かなぁ.

いろいろと名前が謎すぎ.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!