- ベストアンサー
LED点滅速度
タクトスイッチを使って点滅速度を変えたいのですが、SW1を押してる間は徐々に速度アップ、SW2を押してる間は徐々に速度ダウンというようにしたくて、delayの数値をif文を使って、SWを押してる間数値を上げ下げするやり方で作ったのですがこれだと点滅間隔が長い時はSWを押してもなかなか間隔が短くならず、点滅間隔が短くなるにつれてあっという間に間隔が短くなってしまいます。理由はわかってますが…。 何かイイ方法がありましたらアドバイスお願いします。CCSCコンパイラでやってます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
if文を実行する間隔を一定するように 点滅速度とは同期しない様にすればできるはずです (想像ですが、点灯に同期してスイッチを読んでいるのでしょう) 論理的に構築していないための弊害です(質問者は気づいているようですが) 論理の裏動作(AでBならばこうなるはずで設計しても、AでなくてBでない場合等に設計と異なる動作をしてしまう)
その他の回答 (2)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
まず、 > 理由はわかってますが…。 最低限、「理由」の説明はしましょう。 その上で、 ・その「理由」と、実際に書かれたソースはつじつまが合っているのか? ・では、点滅間隔の変化をどのようにしたら、自然な変化に感じるのか? くらいは質問の中にあって、 ・そこで、そういう(自然な変化に感じるような)ソースの書き方は何か工夫がないでしょうか? という流れなら、いい回答があるかもしれません。 そもそも、ソースが間違っているという可能性もあるし、ソースは意図したとおりだけど、それだと、人間の感覚として不自然ということもあるし。もっと言えば、ディレイに使っている変数のサイズによっては、どうあがいても、自然な変化は出せないかもしれないし。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
…この質問で何かしら有効な答えが得られると思います?
お礼
質問の内容がわからないって事ですか?