これは、wait_event の処理に CPU が占有されてしまって、キー入力に対応する 処理がなかなか実行されないようになってしまったことによるものです。 次の様なタスクを用意することで、このような状況を回避することができます。 なお、タスクに関する詳細な説明は、9.タスクについてを参 照して下さい。
#include <conio.h>
#include <dmotor.h>
tid_t t_stop;
int stop(){ // rcx stop function
int stopchar;
stopchar=getchar();
if(stopchar==KEY_RUN){
cputs("stop");
motor_a_dir(brake);
motor_c_dir(brake);
killall(20);
}
return 0;
}
int main(int argc, char *argv[]) {
t_stop=execi(&stop,0,NULL,20,DEFAULT_STACK_SIZE);
(略)
}
|