ガツガツコードを書き直してたんだけど,途中で扱うべき制御量をミスってることに気づいて絶望.もうどうしようもないな,ということに気がついたので諦めました.
いや悪い体験じゃなかったと思うし,二ヶ月でマウス制作は無理があるというのはわかっていたことだけど,それでもやっぱり悔しいですね.自分に技術があったらできたなという感覚もあって,リベンジするしかないかなぁ.
マウスの制作を投げ打って一年生の機体を修正するなどしていた.結構疲れた…….いくらか救えたのでよかったけど.
その中でちょっとおもしろいバグに遭遇した.
下のように共有されている変数の型が違ってしまっているというコードがあった.
uint8_t x;
extern int x;
これは多分どこかの未定義動作にあたるので,まあバグが起こるのは仕方ないだけど,これがどういう結果をもたらしたかというと,「他の変数に値が代入されていないときだけ値が更新される」というバグをもたらした.これをセンサー部分で使っていたので,要は他のセンサーがどれか一つでも反応しているときは反応しないが,一つも反応していない場合は反応しないというバグになった.
まあ何が起こりうるかはわからないのはそれはそうなんだけど,こういうことってあるんだなと.