RX-130 ターゲットボード の高速オンチップオシレータ HOCO(32MHz)での動作

始めまして、ABCと申します。

RX-130のターゲットボードを買いました。CS + CC評価版(V8.03)を使用して、

プログラムを作成し、デバック・ツールをE2 Liteでダウンロードして実行できました。

作成したプログラムは、whileループで待ち時間を作り、ポートをON / OFFするプログラムです。

最初に、ON時間を200msec、OFF時間を300msecのプログラムを作成しました。

オシロで確認すると、プログラム通りの波形が得られました。

 

Fig. ON = 200msec OFF = 300msecのプログラム 

 

Fig. 200msec ON、300msec OFFの波形

 

 

次に、ON時間を300msec、OFF時間を200msecのプログラムを作成しました。

 

Fig. ON = 300msec OFF = 200msecのプログラム 

 

オシロで確認すると、300msecが378msec、 200msecが254msecとなっていました。

Fig. ON = 300msec OFF = 200msecのプログラムの波形 (ON時間、OFF時間がプログラム通りでない。)

 

動作クロックは、高速オンチップオシレータHOCO(32MHz)使用しています。

また、プログラムの作成に、コンフィギュレータ等は使用していません。

以下は、リセット解除後に、実行される処理です。

 

 

 

 

 

プロジェクトを添付しました。

正常:test_200_300_RX130_OK.zip

異常:test_300_200_RX130.zip

 3000.test2_200_300_RX130_OK.zip 

2630.test2_300_200_RX130.zip

 

 

レジスタへの設定不足や、ボード固有の問題でしょうか。どなたか、再現テストをして頂けると助かります。

よろしくお願いします。

Parents
  • 時間待ちにはタイマを使うことをお勧めします。ソフトで空ループで実装されるのであれば、アセンブラを使用してループとなる箇所のアライメントまで保証されるようコーディングすべきです。
    命令フェッチの仕組みにより空ループでの分岐先のアライメントは処理時間に影響が生ずる可能性がありますが、コンパイラにより生成されたコードではその点を保証することは困難です。
Reply
  • 時間待ちにはタイマを使うことをお勧めします。ソフトで空ループで実装されるのであれば、アセンブラを使用してループとなる箇所のアライメントまで保証されるようコーディングすべきです。
    命令フェッチの仕組みにより空ループでの分岐先のアライメントは処理時間に影響が生ずる可能性がありますが、コンパイラにより生成されたコードではその点を保証することは困難です。
Children
No Data