RS232C受信テストサンプル

(Mini-c 関数の作成)

 最後に、RS232Cの受信テストと2進数を10進数に変換表示を行うテストプログラムの サンプルを書いておきます。
 "test.c" はRS232Cから受信したデータをLCDディスプレーに順次表示をして行きます。 次の"test_1.c" は、”FFFF,00FF,AAAA”を、約1.5秒ごとに10進数に変換をし LCDディスプレーに表示をして行きます。
 コンパイルのやり方は、RAM上でデバッグを行う場合は以下のようにします。

A>mc -ustart_d.h test.c

このようにしますと、アッセンブラーのソースファイルとして、test.asmが作成されます、 それをアセンブルを行い、出来上がったオブジェクトファイルをZVRを使用して、AKI80に 転送をすれば実行できます。
 また、ROM化を行う場合はスタートUPファイルをstart_o.hに変更しコンパイルを行い ます。

A>mc -ustart_o.h test.c

このようにして最終的に出来たオブジェクトファイルをROMライターに転送し、ROMに 書き込めば完成します。
 このサンプルでは、全てのヘッダーファイルをインクルードしていますが、そうすると それだけで約2Kbytになりますから、出来れば不要なヘッダーファイルはインクルード しないほうがよいかと思います。

目次に戻る


/*      ===== test.c =====       */


#include "aki80.h"
#include "lcd_drv.h"
#include "stdio.h"
#include "stdlib.h"
#include "sio_drv.h"


main()
{
	int	a,b,i;


	lcd_reset( 2 );
	sio_a_init(SP_9600,DT_8,ST_1,PR_N);
	lcd_str_dsp("** LCDヒョウジテスト Vr1.00 **");
	for( i=0; i<=6; i++){
		wait_05s( );
	}
	lcd_clear( );
	cursor_brnk_on( );

	while( 1 ){
		b = sio_a_rx_check( );
		if( b ){
			a=sio_a_getchar( );
			put_lcd( a );
		}
	}
}




/* ===== test_1.c ===== */ #include "aki80.h" #include "lcd_drv.h" #include "stdio.h" #include "stdlib.h" #include "sio_drv.h" main( ) { int a,b,i; int c,d; char dat[ 6 ]; lcd_reset( 2 ); lcd_str_dsp("** LCDヒョウジテスト Vr1.01 **"); for( i=0; i<=3; i++){ wait_05s( ); } lcd_clear( ); cursor_brnk_on( ); a = 0x00ff; b = bin_to_dec( a ); for( i=0; i<=5; i++,b++) { dat[ i ] = *b; } for( i=4; i>=0; i--) { b = dat[ i ]; put_lcd( b ); } for( i=0; i<=3; i++){ wait_05s( ); } crlf_lcd( ); a = 0xffff; b = bin_to_dec( a ); for( i=0; i<=5; i++,b++) { dat[ i ] = *b; } for( i=4; i>=0; i--) { b = dat[ i ]; put_lcd( b ); } for( i=0; i<=3; i++){ wait_05s( ); } crlf_lcd( ); a = 0xaaaa; b = bin_to_dec( a ); for( i=0; i<=5; i++,b++) { dat[ i ] = *b; } for( i=4; i>=0; i--) { b = dat[ i ]; put_lcd( b ); } for( i=0; i<=3; i++){ wait_05s( ); } crlf_lcd( ); }


目次に戻る