記事No | : 1093 |
タイトル | : エラーの原因 |
投稿日 | : 2018/01/19(Fri) 10:55:16 |
投稿者 | : PIC初心者 |
参照先 | : |
使用しているコンパイラは、C18です。
次のエラーの原因が分からず困っています。
エラー: [1130] pointer operand required for '*' operator
このエラーが発生している場所は、★印の3ヵ所です。
PID制御用の変数を#defineで定義しています。
Kp, Ki, Kdの所だけ、エラーが発生しますが、理由が分かりません。
DELTA_Tの所は、エラーとなりません。
#define DELTA_T 0.01; //10msec
#define Kp 2.0; //PID係数
#define Ki 0.0; //PID係数
#define Kd 0.0; //PID係数
また、次のように変数を定義するとエラーは発生しませんが、
DELTA_Tだけが「Out of scope」となってしまいます。
//static signed double DELTA_T=0.01; //処理周期 10msec
//static signed double Kp=2.0; //PID係数
//static signed double Ki=0.0; //PID係数
//static signed double Kd=0.0; //PID係数
void main(void){
省略
}
void pid(void)
{
diff[0]=diff[1];
diff[1]=sensor_val-target_val;
integral+=(diff[1]+diff[0])/2.0*DELTA_T; //○
p=Kp*diff[1]; //★
i=Ki*integral; //★
d=Kd *(diff[1]-diff[0])/DELTA_T; //★
mv=p+i+d;
PWM(mv);
}
- WebForum -