カテゴリ
全体 UI 開発ツール 人 ソフト開発一般 ETロボコン Vアプリ 仕事 Mac OS X iPhone Webアプリ PC Ubuntu 通貨単位変換サポート iOS ガジェット Arduino 未分類 以前の記事
2018年 03月 2017年 09月 2014年 07月 2014年 04月 2014年 03月 2014年 02月 2013年 08月 2013年 07月 2013年 04月 2012年 08月 2012年 02月 2011年 09月 2011年 08月 2011年 01月 2010年 11月 2009年 12月 2009年 11月 2009年 10月 2009年 09月 2009年 07月 2009年 05月 2009年 04月 2009年 03月 2009年 02月 2009年 01月 2008年 11月 2008年 10月 2008年 08月 2008年 07月 2008年 06月 2008年 05月 2008年 04月 2008年 02月 2007年 12月 2007年 11月 2007年 10月 2007年 07月 2007年 06月 2007年 05月 2007年 04月 2007年 03月 2007年 02月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 2006年 06月 2006年 05月 2006年 04月 2006年 03月 2006年 02月 お気に入りブログ
検索
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
昨日はだらだらと何もせずにすごしてしまったので、今日は朝から取り組む。
まず調べたかったのがタスクの使い方。 execiで実行するので、Prgmキーを押すたびに光センサ読み取り、タッチセンサ読み取り、モータ駆動の3つのタスクを順次切り替えるプログラムを作ってみた。 まずはまったのがdkey_released。他のGUIウィジェットのようにあるキーが押されたことを検出するのに離した方をトリガにする場合に使うのだと思ったけど、ちょっと違う。 具体的には指定したキーが押されていない状態になったらすぐ(たとえその前に押されていなくても)イベントが発生するということ。だから最初いきなり何もしないのに勝手に全部のタスクがどんどん起動して驚いた。車輪に指をはさまれて痛かった…。 念のために、最初にdkey_released,KEY_ANYで全部のキーが押されていない状態を確認した後で、dkey_pressedでKEY_PRGMが押されるのを待つ。もちろん待つのにはwait_eventを使った。 気になったのでwait_eventのソースをみるが、肝はyield()でここはアセンブラで書かれてある(H8のデータシートはダウンロードしたけど…)。割り込みベースじゃないはずだから(任意の関数呼び出し、戻り値チェックするので)、一定間隔で(タスクのプライオリティによるのだろう)その関数を呼び出し、戻り値チェックではずれならまた眠るってことを繰り返すのかな。
by ukulele_trip
| 2006-04-30 11:28
| ETロボコン
|
ファン申請 |
||