つちだです。 クロック同期16ビット受信(マスター:クロック出力)をやっているのですが下記ソ ースでやると2回(8ビット*2)受信だけなのに (n2douki_counter < 2) クロックの波形を見るとクロックが24発(24ビット分)出ています。 なにが駄目なのでしょうか? お助けください! 環境:H8/3664、HEW unsigned long SCI_IN ( void) { unsigned char *n2douki_ptr; SCI3.SSR.BIT.OER = 0; /* 受信オーバーランクリア0 * Clear OER */ SCI3.SSR.BIT.FER = 0; /* フレーミングクリア 0 * Clear FER */ SCI3.SSR.BIT.PER = 0; /* パリティエラークリア 0 * Clear PER */ SCI3.SMR.BIT.COM = 1; /* クロック同期1 * Initialize Communication Mode */ SCI3.SMR.BIT.MP = 0; /* クロック同期0 * Initialize Multiprocesor Mode */ SCI3.SMR.BIT.CKS = 0; /* クロック1/1 * Initialize Clock Select 1 φ/64 */ SCI3.SMR.BIT.CKS = 0; /* Initialize Clock Select 0 φ/64 */ SCI3.SCR3.BIT.CKE = 0; /* 内部クロック出力 * Initialize Clock Enable 1 */ SCI3.SCR3.BIT.CKE = 0; /* Initialize Clock Enable 0 */ SCI3.BRR = 1; /* ビットレートレジスタ * Initialize Clock Enable 1 */ SCI3.SSR.BIT.TDRE = 0; /* 送信データを無しにする * Clear TDRE */ SCI3.SSR.BIT.RDRF = 0; /* 受信データを無しにする * Clear RDRE */ SCI3.SCR3.BIT.RE = 0; /* 受信禁止0 Clear RE */ SCI3.SSR.BIT.RDRF = 0; /* 受信データを無し にする * Clear RDRF */ n2douki_ptr = &N2DOUKI_SRD[0]; /* Initialize Serial Receiving Data Addreass */ N2DOUKI_SRD[0] = 0x00; /* Initialize Serial Receiving Data 0 */ N2DOUKI_SRD[1] = 0x00; /* Initialize Serial Receiving Data 1 */ N2DOUKI_SRD[2] = 0x00; /* Initialize Serial Receiving Data 2 */ N2DOUKI_SRD[3] = 0x00; /* Initialize Serial Receiving Data 3 */ IO.PDR8.BIT.B0 = 0; //CS n2douki_counter = 0; /* Clear counter */ while (n2douki_counter < 1){ /* Serial Receiving Data Counter 4 Loop */ SCI3.SCR3.BIT.RE = 1; /* 受信許可1 Start Serial Receiving */ while(SCI3.SSR.BIT.RDRF == 0){ /* RDRに受信デ ータが格納なら1 RDRF = 1 ? */ ; } if (SCI3.SSR.BIT.OER == 1){ /* オーバーランなら 1 Overrun Erorr Flag = 1 ? */ IO.PDR8.BIT.B0 = 1; //CS N2DOUKI_SRD[0] = 0xFF; /* Overrun Erorr 0 */ N2DOUKI_SRD[1] = 0xFF; /* Overrun Erorr 1 */ //break; } else { *n2douki_ptr = SCI3.RDR; /* 受信データ格納 Save Serial Receiving Data */ SCI3.SSR.BIT.RDRF = 0; SCI3.SCR3.BIT.RE = 0; /* 受信許可1 Start Serial Receiving */ SCI3.SSR.BIT.RDRF = 0; /* 受信データを無しにする * Clear RDRE */ n2douki_ptr++; /* Increment Serial Receiving Data Address */ n2douki_counter++; /* Increment counter */ } } SCI3.SCR3.BIT.RE = 0; /* 受信禁止0 Clear RE */ IO.PDR8.BIT.B0 = 1; //CS return(N2DOUKI_SRD[0] * 0x100 + N2DOUKI_SRD[1]); } //+-----------------------------------------------------------------+ //| 〒302−8501 茨城県取手市白山7−5−1 //| キヤノン(株)取手周辺機器工場 LBP生産技術3課 土田誠司 //| 荷物発送先:LBP製造課B8棟止め_B8棟前プレハブ //| Canon.INC ToridePeripheralsPlant LBP ProductionEngineeringDept3 //| tsuchida.seiji@xxxxxxxxxxx //| PHS:0297-77-2496 FAX:72-4217 IN.Plant:621-21365 //+-----------------------------------------------------------------+