Everything
3.3 リアルタイム・サンプリング方式について

リアルタイム・サンプリング方式を指定してグラフ・データを取得した場合の注意事項を列挙します。

 

-

グラフ化対象の登録個数に依存して,サンプリング間隔が不定となる可能性があります。

-

値の取得を失敗する可能性があります。失敗した場合は時間情報のみ表示し,遷移箇所と遷移箇所を結ぶ線は非表示となります(「(a)グラフ」参照)。

-

グラフ化する変数のサイズが複数バイト(2バイト/4バイト/8バイト)の場合,変数へ値を代入する処理が2回に分けて行われる場合があります(「例RL78マイクロコントローラを使用した場合」参照)。
この2回の代入処理の間で変数の読み出しが行われると,変数へ値が代入される途中の値が読み出され,実際には代入していない値が表示されることがあるため注意が必要です。

RL78マイクロコントローラを使用した場合

この例では,“命令1”実行完了後から,“命令2”実行完了前にサンプリングがあった場合,下位2バイトのみ代入が完了した変数“value_a”の値を読み出します。

【C言語ソース】

long int    value_a = 0;    // 4バイト変数定義
 
void func(void)
{
    value_a = 4000000000;   // 4バイト変数への代入

 

【上記代入処理のアセンブラ命令】

MOVW    AX, #2800H
MOVW    !_value_a, AX       ;命令1:変数“value_a”の下位2バイトを代入
MOVW    AX, #0EE6BH
MOVW    !_value_a+2, AX     ;命令2:変数“value_a”の上位2バイトを代入