あっちゃんといいます。 まだ買ったばかりで全く使っていません。 ですから、最初は文字と数字を出力するプログラムを作りたいのです。 感覚をつかみたいからです。 マイコン:AKI-H8 3067F モニター:AKI-H8 3067Fに付属していたものモニターデバッガソフト(モードは5) コンパイラ:AKI-H8マイコン専用Cコンパイラ(秋月のもの) 通信ソフト:Hterm OS:Windows 2000 通信:RS232C まずは、サンプルプログラムとして「ロボコンマガジンNO.8」のP59に載っているも のと全く同じプログラムを打ちました。subファイルも。スタートアップルーチンは もともと秋月のCコンパイラに入っていたRESETV.marを使用しました。 以下にCのプログラムとsubファイルを示します。 Cのファイル名は、moji.cです。 /* RS232C通信プログラム */ #include <stdio.h> #include <string.h> #include <stdarg.h> #include <stddef.h> #include <3067f.h> /* シリアルコミュニケーションのプログラム */ typedef enum { br4800=103,br9600=51,br19200=25,br38400=12}BAUDRATE; /* 初期化 */ /* ボーレートを設定。9600から19200まで定義 */ void H8SCI_INIT(char b){ int i; SCI1.SCR.BYTE=SCI1.SMR.BYTE=0; SCI1.BRR=b; /* ボーレート */ for(i=0;i<1000;i++); /* 待つ */ SCI1.SCR.BYTE=0x30; /* 送受信許可 */ SCI1.SSR.BYTE; /* ダミーリード */ SCI1.SSR.BYTE=0x80; /* エラーフラグクリア */ } /* 1文字送信 */ void H8SCI_OUT_DATA(char c){ while(SCI1.SSR.BIT.TDRE==0); /* TDREが1になるのを待つ */ SCI1.TDR=c; /* データを入れる */ SCI1.SSR.BIT.TDRE=0;/* フラグをクリアにする */ } /* 文字列送信 */ void H8SCI_OUT_STRING(char *st){ while(*st) H8SCI_OUT_DATA(*st++);/* 文字列がなくなるまで順次出力 */ } void main(void){ int i; char buf[150]; /* 文字列バッファを用意 */ H8SCI_INIT(br19200); /* 19200に通信速度を設定 */ sprintf(buf,"hello !\n\r");/* bufに"hello!を設定" */ H8SCI_OUT_STRING(buf); /* 通信ポードに通信 */ for(i=0;i<20;i++) /* 0〜19までの数字を送信 */ {sprintf(buf, "num=%d\n\r",i); H8SCI_OUT_STRING(buf); /* 文字列を通信ポートに出力する */ } while(1){} } SUBファイルを下記に示します。 OUTPUT moji PRINT moji INPUT resetv,moji LIB c38hab START P,C(100),B(0FEF10) EXIT これでHtermでmotファイルをロードしてGOすると、hello! num=0,num=1....と表示 されないといけないのですが。 スタートアップルーチンもサンプルと同じように作ろうとしたら読み取り専用です といわれつくれません。 ちゃんと転送はできます。 ロードすると下記のように表示されます。 Top Address=000000 End Address=003F2F GOしてもなにも表示されないのです。 宜しくお願いいたします。 _________________________________________________________________ 最新のファイナンス情報とライフプランのアドバイス MSN マネー http://money.msn.co.jp/