4. ソフトウェア説明
5.3 タッチパラメータ設定関数:touch_parameter_set()
図5.3にフローチャートを示します。
タッチパラメータ設定 touch_parameter_set()
タッチシステムフラグ初期化(0クリア)
終了 計測方式数ループ method = 0,1,2…METHOD_NUM
計測方式数ループ タッチパラメータ初期設定
タッチ機能初期設定
タッチキャリブレーションデータ初期化(0クリア)
タッチ/非タッチ結果クリア(0クリア)
キーパラメータ初期設定 スライダパラメータ初期設定 ホイールパラメータ初期設定
タッチセンサ番号に計測チャネル番号 割り当て処理
touch_sensor_index_set()
図5.3 タッチパラメータ設定関数
5.4 タッチセンサ番号に計測チャネル番号を付与する処理:touch_sensor_index_set()
図5.4にフローチャートを示します。
タッチセンサ番号に計測 チャネル番号割り当て処理
touch_sensor_index_set()
計測モードチェック
タッチセンサグループループ タッチセンサ数設定 自己容量
タッチセンサ数確認
タッチセンサ数ループ
タッチセンサ機能 有効チェック
キー番号設定 タッチセンサ未使用設定
タッチセンサ数ループ
タッチセンサグループ切り換え
タッチセンサグループループ
終了 有効
無効 相互容量
マトリクス数設定
マトリクス数ループ
マトリクスキー機能 有効チェック
キー番号設定 タッチセンサ未使用設定
マトリクス数ループ 有効
無効
図5.4 タッチセンサ番号に計測チャネル番号を付与する処理関数
5.5 タッチキャリブレーション処理関数:touch_calibration()
図5.5にフローチャートを示します。
フラグON キャリブレーション
完了フラグ確認 フラグOFF
タッチキャリブレーション処理 touch_calibration()
計測モードチェック
自己容量
タッチキー数ループ
キー機能チェック
タッチ初期基準値設定 touch_initial_reference_set()
キー
タッチキー数ループ
マトリクスキー数ループ
スライダ or ホイール 相互容量
キー機能チェック
タッチ初期基準値設定 touch_initial_reference_set()
有効
マトリクス数ループ
無効
キャリブレーション 終了チェック
キャリブレーションカウンタクリア 終了
キャリブレーションデータ 蓄積回数インクリメント 継続
終了
5.6 タッチ初期基準値設定関数:touch_initial_reference_set()
図5.6にフローチャートを示します。
タッチ初期基準値設定 touch_initial_reference_set()
有効キー数ループ
組み合わせデータループ
データ比較 最大番号>最大番号-loop
loopカウンタインクリメント
最大番号<最大番号-loop
最大番号>最大番号-loop
組み合わせデータループ
基準値設定
有効キー数ループ キャリブレーションデータ
蓄積回数チェック
自己容量データ蓄積 蓄積完了
相互容量データ蓄積 蓄積未完了
計測モードチェック
6通り組み合わせ キャリブレーションデータ
最大番号更新
キャリブレーション完了フラグON
終了
自己容量
相互容量
図5.6 タッチ初期基準値設定関数
5.7 タッチデコード処理関数:touch_key_decode()
図5.7にフローチャートを示します。
タッチデコード処理 touch_key_decode()
タッチ/非タッチ判断パラメータ生成処理 touch_judgement_parameter_create()
キーグループ判断
グループ0設定 キー番号グループオフセット設定
グループ1設定 キー番号グループオフセット設定
グループ2設定 キー番号グループオフセット設定
グループ3設定 キー番号グループオフセット設定 グループ0
グループ1 グループ2 グループ3
キータッチ/非タッチ機能 チェック
タッチ/非タッチ判断処理 touch_judgement() タッチドリフト補正処理 touch_drift_correction()
アドレスインクリメント判断
データアドレスインクリメント データ先頭へ初期化 キー有効
インクリメント
初期化(0セット)
終了
キー無効
その他
5.8 タッチ/非タッチ判断パラメータ生成関数:touch_judgement_parameter_create()
図5.8にフローチャートを示します。
タッチ変化量有無判断 基準値<計測値
終了 有り
無し
タッチ変化量算出
計測値ー基準値 タッチ変化量0設定
センサデータオーバー処理 タッチ/非タッチ判断パラメータ生成処理 touch_judgement_parameter_create()
計測モードチェック
自己容量
相互容量
タッチ/非タッチ判断しきい値 オーバー判断
タッチ/非タッチ判断しきい値演算 基準値+ユーザー設定タッチ/非タッ
チ判断しきい値 オーバー無し
タッチ/非タッチ判断しきい値65535 設定
無し
タッチ変化量有無判断 基準値>計測値
有り
無し
タッチ変化量算出
基準値ー計測値 タッチ変化量0設定
センサデータオーバー処理
タッチ/非タッチ判断しきい値 オーバー判断
タッチ/非タッチ判断しきい値演算 基準値ーユーザー設定タッチ/非タッ
チ判断しきい値 オーバー無し
タッチ/非タッチ判断しきい値0設定 無し
図5.8 タッチ/非タッチ判断パラメータ生成関数
5.9 タッチ/非タッチ判断処理関数:touch_judgement()
図5.9にフローチャートを示します。動作の詳細は、「6.3項 タッチ/非タッチ判断」を参照して下さい。
大小比較(0演算防止)
タッチ/非タッチ判断しきい値
>ヒステリシス値
終了 YES
No
ヒステリシス値適用
内部タッチフラグON タッチ非タッチ判断 タッチ/非タッチ判断しきい値
<計測値 Yes
No
内部タッチフラグOFF タッチ/非タッチ判断処理
touch_judgement()
計測モードチェック 自己容量
相互容量
ヒステリシス値適用 最大65535
内部タッチフラグON タッチ非タッチ判断 タッチ/非タッチ判断しきい値
>計測値 Yes
No
内部タッチフラグOFF
内部タッチフラグチェック
タッチ判断
(連続タッチカウンタ比較)
フラグON
外部タッチフラグON タッチカウンタ一致
タッチカウンタインクリメント タッチカウンタ不一致
非タッチ判断
(連続非タッチカウンタ比較)
外部タッチフラグOFF 非タッチカウンタ一致
非タッチカウンタインクリメント 非タッチカウンタ不一致
フラグOFF
非タッチカウンタ0クリア タッチカウンタ0クリア
連速タッチキャンセル機能 有効無効チェック
強制タッチOFF 有効
連速タッチキャンセル 回数確認 回数到達
タッチ/非タッチ結果生成
回数未到達 無効
5.10 タッチドリフト補正処理関数:touch_drift_correction()
図5.10にフローチャートを示します。動作の詳細は、「6.4項 ドリフト補正」を参照して下さい。
ドリフト機能有効/無効チェック
終了 有効
計測データ蓄積
ドリフト補正カウンタ=1設定 各タッチセンサドリフト 動作有効無効チェック
有効
回数>=カウンタ ドリフト補正回数越えチェック
(Workbenchからの値変更対応)
回数以上
ドリフト補正回数<=
ドリフト補正カウンタ
回数未満 ドリフト補正カウンタインクリメント
回数<=カウンタ
基準値補正
ドリフト補正カウンタ0クリア 蓄積計測データ0クリア
ドリフト補正カウンタ0クリア 蓄積計測データ0クリア 無効
タッチドリフト補正処理 touch_drift_correction()
ドリフト補正回数0チェック
0
0以外 無効
図5.10 タッチドリフト補正処理関数
5.11 タッチキー機能有効/無効確認処理関数:touch_key_function_check()
図5.11にフローチャートを示します。
キー機能チェック
終了 有効
無効
キー機能有効 キー機能無効
キーグループチェック
グループ番号0設定 グループキー番号オフセット設定
グループ0
グループ1
グループ番号1設定 グループキー番号オフセット設定
グループ2
グループ番号2設定 グループキー番号オフセット設定
その他
キー機能無効 タッチキー機能有効/無効確認処理
touch_key_function_check()
グループ番号3設定 グループキー番号オフセット設定
グループ3
図5.11 タッチキー機能有効/無効確認処理関数
5.12 電流オフセットチューニング停止判断処理関数:offset_tuning_stop_judgement()
図5.12にフローチャートを示します。
キーまたは、マトリクス タッチチェック
電流オフセットチューニング停止判断処理
offset_tuning_stop_judgement
()スライダ タッチチェック 電流オフセットチューニング
停止フラグON
電流オフセットチューニング 停止フラグON
電流オフセットチューニング 停止フラグON
ホイール タッチチェック 電流オフセットチューニング
停止フラグOFF
タッチ有り
タッチ有り
タッチ有り
終了
タッチ無し
タッチ無し
タッチ無し
図5.12 電流オフセットチューニング停止判断処理関数
5.13 CTSU センサデータアドレス設定関数:ctsu_sensor_average_address_set()
図5.13にフローチャートを示します。
CTSUセンサデータアドレス設定 ctsu_sensor_average_address_set()
下記のパラメータアドレスを構造体へセット ・DTC転送データ
・CTSUセンサICOデータ ・CTSUリファレンスICOデータ ・センサ移動加算データ ・リファレンス移動加算データ ・センサデータ
・リファレンスデータ ・CTSUSSCレジスタデータ ・CTSUSO0レジスタデータ ・CTSUSO1レジスタデータ ・CTSUCHAC0-1レジスタデータ ・CTSUCHAC2-3レジスタデータ ・CTSUCHAC4レジスタデータ
終了
図5.13 CTSUセンサデータアドレス設定関数
5.14 CTSU レジスタ初期値 RAM 設定関数:CTSU_register_initial_value_ram_set()
図5.14にフローチャートを示します。
CTSUレジスタ初期値RAM設定 CTSU_register_initial_value_ram_set()
終了 計測方式数ループ method = 0,1,2…METHOD_NUM
計測方式数ループ タッチパラメータ初期設定
・CTSU 制御レジスタ0(CTSUCR0)
・CTSU 制御レジスタ1(CTSUCR1)
・CTSU 同期ノイズ低減設定レジスタ(CTSUSDPRS)
・CTSU センサ安定待ち時間レジスタ(CTSUSST)
・CTSU 計測チャネルレジスタ0(CTSUMCH0)
・CTSU チャネル有効制御レジスタ0-1(CTSUCHAC0-1)
・CTSU チャネル送受信制御レジスタ0-1(CTSUCHTRC0-1)
・CTSU 高域ノイズ低減制御レジスタ(CTSUDCLKC)
図5.14 CTSUレジスタ初期値RAM設定関数