[H8-ML(2740)] Re: [H8-ML(2738)] ■SCI3でのクロック同期8ビット受信*2で16ビット(マスター)について
From: "tyou" <tyou@xxxxxxxxxx>
Date: 2003年01月22日(水)09時10分37秒
This is Tyou.

Please refer to :

http://www.hitachi-eu.com/hel/ecg/products/micro/pdf/app10410.pdf

And The SCI3 operation code could also be found at :
http://www.i-da.co.jp/~tyou/embd/uCOS3664.rar


Good Luck




----- Original Message -----
From: <tsuchida.seiji@xxxxxxxxxxx>
To: <h8@xxxxxxx>
Sent: Tuesday, January 21, 2003 6:57 PM
Subject: [H8-ML(2738)] ■SCI3でのクロック同期8ビット受信*2で16ビッ
ト(マスター)について


>
> つちだです。
> クロック同期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
> //+-----------------------------------------------------------------+
>


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


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


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