616229 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

工作工房

工作工房

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2006年11月30日
XML
カテゴリ:カテゴリ未分類

PSoC のシリアル通信は双方向のUARTモジュールと受信のRX8と送信のTX8がある、どちらを使ったらいいんだろー、とりあえず送信受信ができればよいのでUARTを使うかな

受信は取りこぼしがないように割り込み受信ができるようにUART setupと最後に全体の割り込み許可をする

 //UART setup
    UART_1_CmdReset();                            //Initialize receiver/cmd buf.
    UART_1_IntCntl(UART_1_ENABLE_RX_INT);   //Enable RX interrupts
    UART_1_Start(UART_1_PARITY_NONE);        //Enable UART

 //CPU ALL Interrupt Enable
   M8C_EnableGInt;    //CPU ALL Interrupt Enable

ハイパーターミナルで実験をする。

 受信した内容をUART_1_bReadRxDataで読んだ、オッ読めたと思ったら受信完了のビットが1のままだから永久に読んでしまう UART_1_bReadRxDataは使えないと思った。そのほかの読み込み関数 UART_1_cGetChar を使うと時々受信ができていない、関数UART_1_cReadChar は受信していないかのように受信した内容を表示しない、UART_1_iReadChar はUART_1_bReadRxDataと症状が同じだ、受信関数は全部使えない?、受信割り込みを許可しないで使うとどうなるのかな?、 //UART_1_IntCntl(UART_1_ENABLE_RX_INT);   //Enable RX interrupts にした。UART_1_bReadRxDataで読んでみたら受信完了のビットもゼロとなって正常に表示できた。UART_1_cGetCharはどうなんだろう、オッツこれも正常に動作している。UART_1_cReadCharもUART_1_iReadCharも正常に表示できた。なーんだ読み込み関数UART_1_bReadRxData、UART_1_cGetChar、UART_1_cReadChar、UART_1_iReadCharは受信割り込みを許可して使えないのか~

まとめ(1) 以下の関数は受信割り込みの許可をしないで使用することができる

   bRxData = UART_1_bReadRxData(); //OK  
   bRxData = UART_1_cReadChar();   //OK
   bRxData = UART_1_iReadChar();  //OK
   bRxData = UART_1_cGetChar();  //OK

まとめ(2) 以下の3種類は割り込み許可で使用できる

UART_1_bCmdLength 、UART_1_szGetParam 、UART_1_CmdReset

まとめ(3) バイナリー方式のプロトコルで通信する場合は上記の関数は使えないので受信割り込みを自作する必要があるのかな? あ~つかれるな~






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2006年12月01日 07時24分11秒
コメント(2) | コメントを書く



© Rakuten Group, Inc.