スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

バグがとれました。

たった一つですけど・・・。

LCDコントローラの初期化関数 "initLCD" を作ったのですがコレを実行させるとプログラムが停止してしまう・・・。何故だろうとあれこれ試していると原因が分かりました!

インストラクションコード書き込み時の待ち時間を作るためにタイマAを利用した関数があります。これはカウンタのオーバーフロー時に割り込みをかけ、同時にフラグをたてる仕組みになっています。つまり、フラグが立つ回数を数えることで待ち時間を自由にコントロールできるわけです。関数"initLCD"はこの関数を含んでいて、問題はmain文中におけるその配置位置にありました!ポートセッティングやらタイマセッティングと並べて呼び出していたんですけど、ここって割り込み禁止状態にしてあるんですよね・・・。

/*

set_imask_ccr(1);

PORT_SETTING();
TIMER_SETTING();

initLCD();                           // ←ここじゃ動くわけがない!!!

set_imask_ccr(0);

*/

まぁ、今日の内容は分かる人には分かるって事で(^^;)。。。

お疲れさまでした・・・。

~~~ 追記 ~~~

しかしLCDは動いていません。でもあと一息!

あ、あとマニュアルちょっと不親切すぎです。

英語なのはいいとして、文字がつぶれて読めない・・・。

いくらなんでもそりゃないだろうっ!!  (-_-;)

うーん、LCDは想像以上に苦戦です。

スポンサーサイト

Comment

分かる人には分かるw
じぇんじぇん和化蘭w

そりゃ動かんわw
って分かる人なんてそうは居ない・・・

>fuku
ハードの制御だからねぇ。O鎌研の力を持ってしても和下欄か!
>もる
    orz。

Comment Form

管理者にだけ表示を許可する

Trackback


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。