Cのプログラムもいろいろ書き方があるな

今日の実験はポケコンで制御する実験。
まずは温度センサが登場。
ADコンバータのついたボードに接続して、与えられた式にいれるといい具合に出てきた。
照度センサは不気味だったけどそれっぽい値を示したからよしとしよう。
それでLEDを点灯させることもできるのだけど、なぜかリレーがついている。
ありゃなんだ。
リレーがうるさいが、ちゃんと点灯するな。
それで、実験は終了。
ところでこのプログラムはCで書かれています。
まぁそれはいいんだけど、間違ってる点があってそれを直しつつ打ってたんだけどね。
うーん…

while(1){
for(i=0;i<10;i++){
switch(i){
(省略)
}
}
}

まぁ確かにいいと思うけど、無駄が多いような。

i=0;
while(1){
i %= 10;
switch(i){
(省略)
}
i++;
}

どうもこっちの方が好きなんだけどな。ただやってることは同じだろ。
あと、なぜかunsinged char型が使われていた。
ただ実際はバグを起こしてる。オーバーフロー起こす。
intを使うのがよい選択。unsinged charなんてバイナリ以外で使う用事はないと思うが…
こういうのは素直にintを使うのがよかったりする。
あと、++iってなってるの多いけど、これなんでだろうね。
わかりにくいから実は全部i++に変えたのだけど。あれは意味があるのか。
まぁ、そんな具合でバグ退散させながらやったらスムーズに動きましたよ。
定数も適当に用いて便利に使ってますよ。
出力アドレスとか、温度センサ固有の定数とか。
ポケコンのCはBASICより動作は速いけど使える機能は少ない。
というわけで、あんまり便利じゃないけどね。けどCの方が書きやすいかな。
VB使いからすれば知らんけど。
というわけでソースコードを班の人たちに送っておいた。