Chaya様、ありがとうございました。 >・ _ei(); _di(); ---> メインブレーカー >・ SCI0.SCR.BIT.RIE = 1; /* 受信割込み許可 */ や > SCI0.SCR.BIT.RIE = 0; /* 受信割込み禁止 */ は、 > ---> 個別ラインブレーカー メインブレーカーと個別ラインブレーカーの話、 大変よく分かりました。 また、使うタイミングについても、 >一般的には、個別のブレーカーをオンした(周辺個別のInitial関数)後、 >全体のブレーカーをオンして使い始めます。だから、使い方にもよりますが >メインルーチンのメインループ前にオンします。 とのこと、とりあえず分かりましたが・・・ すみません。これでも少し不安が残りまして、 周辺個別のInitial関数??・・・が、特にない?・・ よく分かっていませんが、・・・ 具体的に、個別ラインブレーカーの使う場所は?? 理解が悪くてすみません。 ご教授の程、よろしくお願い申し上げます。 (鈴木) (C言語、マイコン開発は、数ヶ月の初心者です。) ---------------------------------------- 私の現状のメイン関数は、 void main(void){ char STR; /*受信文字列*/ int FLG=0; /*割り込みでのデータ受信フラグ*/ sci0_init(); /*シリアルポート0の初期化*/ _ei(); // 割込み全体許可(Chaya様からのご教授) while(1){ // メインループ ・・・・・ if(FLG){ /*割り込み受信フラグ*/ printf("");/*文字列表示*/ FLG=0; } } } その他の関数は、 (1)シリアルポート0の初期化関数 [3239]に記述。 (2)割り込み時の動作関数 [] ・割込みで1文字受信する関数 char intrxi0(void){ char data;/* 受信データ変数宣言 */ switch(SCI0.SSR.BIT.RDRF)/* 受信状態判定 */ { case 1:/* RDRF=1 正常受信 */ SCI0.SSR.BIT.RDRF = 0;/* 受信フラグクリア*/ data = SCI0.RDR;/* data 取り出し */ return(data); default:/* エラー発生時 */ SCI0.SSR.BYTE &= 0xc7;/* エラーフラグクリア */ return(0xff); } } ・受信文字列を変数に保存する関数 -- (YelowSoftのProjectに割り込みを登録する関数)-- int str_read(){ int i; char rx_data;/*受信データ*/ char *p;/*ポインタ変数*/ p = &STR; do{ rx_data = intrxi0(); /* 1文字受信 */ if(rx_data != 0xff){ *p = rx_data;/* 1文字を文字列に格納 */ p++;/* 次の文字アドレスへ }while(rx_data != '\0'); FLG = 1;/**/ } 以上です。 ---------------------------------------- ※予定の動きとしては、 受信割り込みにより、str_read()関数が動作して 変数STRに文字列の全体が取り込まれる。 私設の受信フラグ(FLG変数)を1にする。 FLGが1になったら、printf文で、文字列(STR)を表示する。 ---------------------------------------- ---- 鈴木 tsuzuki@xxxxxxxxxxxxxxxx