あっちゃんです。
雑誌と同じです。
CPUの動作クロックは18MHzじゃないかと・・・。
ボーレートをそのように変えました。
Cソースファイルを下記に示します。
/* RS232C通信プログラム */
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <stddef.h>
#include <3067f.h>
/* シリアルコミュニケーションのプログラム */
typedef enum { br4800=116,br9600=58,br19200=28,br38400=14}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){}
}
逆アセンブラをhamayanさんのいう通りに下記のようにして
.CPU 300HA
.IMPORT _main
.EXPORT start
.SECTION VECT,DATA
.DATA.L start
.section P,code
start:
MOV.L #H'FFF10,ER7
ldc.b #0,ccr
jmp @_main
.END
SUBファイルを下記のようにします。
OUTPUT moji
PRINT moji
INPUT resetv,moji
ENTRY start
LIB c38hab
START VECT(200000),P,C(200100),B(204000)
EXIT
そしてHtermでロードすると
Top Address=200000
End Address=203F3B
と表示されます。
そしてGOすると
@@H'04:8 Addressing !!
PC=000000 CCR=FF:IUHUNZVC SP=0001FFFC
ER0=2020FF20 ER1=00020048 ER2=70707070 ER3=00000000
ER4=00000000 ER5=00000000 ER6=00020078 ER7=0001FFFC
となります。
宜しくお願いいたします。
_________________________________________________________________
ネットを使うひとに有利な特典いっぱい MSN カード http://card.msn.co.jp/