[H8-ML(2776)] [H8-ML(2765)] Re: H83067Fで文字と数字を出力するプログラムの書き方:あっちゃんです。
From: "one two" <km40vey6f@xxxxxxxxxxx>
Date: 2003年01月28日(火)19時41分03秒



あっちゃんです。

雑誌と同じです。
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/  

スレッド概略
[表示中](起点)
 └[2777(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]