みなさん。初めまして。野中といいます。H8について分からないことがあったので
他の掲示板で紹介していただきここにたどり着きました。よろしくお願いします。
さて、質問ですが下のプログラムは、モード5でC0000番地にラッチをつけ、ライト
ができるか
テストするものです。うまく動きました。アドレスデコードはしてません。
AKI-H8で、開発環境はGCC Developer Lite です。
#include <3048.h>
#define OUTPORT (*(volatile unsigned char *)0xc00000)
initH8(void)
{
//BSC.ABWCR.BIT.B6=0; ここが質問の設定
BSC.ASTCR.BIT.B6=1;
BSC.WCER.BIT.B6=0;
BSC.CSCR.BIT.CS6E=1;
}
int main(void)
{
unsigned int led=0xa55a; //unsigned char led=0xa5 データに意味なし
initH8();
while(1) //シンクロスコープで波形をみるため繰り返し
OUTPORT=led;
return 0;
}
で、これは8ビットバスですから、16ビットバスで試してみようと思い上でコメントに
しているABWCRを設定しました。そうしても、LWRやD0〜D7に信号が出てこないのです。
16bitモードのときはC00000番地に書き込めば、C00000番地にD8〜D15がHWRの
タイミングで出力され、C00001番地にD0〜D7がLWRのタイミングで出力されるの
だろうと考えたのですが・・・・
どこか必要な設定が抜けているのでしょうか?それとも、考え方がおかしいのでしょうか?
それと、上のプログラムをモード6にしたら(アドレスはC00000に変更)どの制御ピンから
もまともな信号がでなくなります。何がわるいのでしょうか?
長文になりましたがよろしくお願いします。
--------------------------------
野中 和弘(mailto:non@xxxxxxxxxxxxx)