スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タッチパネル スタータキット #10

前回の記事の図の解説です。
※かなり詳細な内容ですので、今回のタッチパネルに特に興味ない人は読み飛ばしちゃってください


サンプルプログラム1を形成しているプロジェクトは、下記のように何だか たくさんのファイルで構成されていますが、「KSR8TPCTEST1.c」と「move.c」だけ注目すればOKです。

(09_08_11) プロジェクト一覧

関数もたくさんありますが、8個だけ注目すればOK


①main関数
ここでは、主に初期設定を行っています。
まず、変数(タッチパネルデータ、タイマーカウント)の初期化やマイコン設定(ポートの設定、オシレータの設定)、割りこみ処理(関数②)の許可を行っています。
タイマーカウントを開始して、タイマー割りこみ(今回の場合、1msec毎に関数②が割り込む)が発生します。
そして無限ループで関数③が実行されます。

②fnTimerX関数
タイマー割りこみ関数です。
割り込みが許可されると、毎回1msec毎に、ここが実行されます。
で、やっていることと言えば、「タイマー変数」を -1 しているだけです。
つまり、ここで、時間を数えているわけです。

③fnNormal関数
無限ループでここが実行されます。
普段は何もせず、ぼーっとしているだけですが、「タイマー変数」が0になったら以下の仕事をします。
・「タイマー変数」をリセット(今回は50にしている)
・関数fnTpDataSetを呼び出し
つまり、50msec毎に関数④を呼び出すのがここの仕事です。

④fnTpDataSet関数
変数「ステータス」により、処理が異なります。
「ステータス」が0のときは
・X抵抗膜のタッチデータを取得するために、関数⑤を呼び出す
・次はY抵抗膜のタッチデータを取得したいので、X側を検出用に設定し、Y側を電圧出力用に設定
・「ステータス」を1にします

「ステータス」が1のときは
・Y抵抗膜のタッチデータを取得するために、関数⑥を呼び出す
・次はX抵抗膜のタッチデータを取得したいので、Y側を検出用に設定し、X側を電圧出力用に設定
・「ステータス」を0にします
・最後に関数⑦を呼び出します。

⑤fnAdSetX関数
ここでは、X抵抗膜の電圧値をY側のポートでA/D変換して取得しています。
全部で8回取得し、その平均値を結果として返します。

⑥fnAdSetY関数
⑤と同じです。こっちはではY抵抗膜の電圧値を取得し結果を返しています。

⑦fnTpDataPut関数
④で結果として得た、タッチデータは16進数の数値データですが、ここでは16進数の文字列データに変換しています。
理由は、PC側で特別なソフトを用意することなくタッチデータをそのまま表示しやすくするためです。
そして最後に関数⑧を呼び出します。

⑧fnputs関数
⑦で作った文字列をUART送信することにより、最終的にPCへデータが送信されます。



以上ですが、タッチパネルスタータキットを買った人は良く理解ができるかと思います。


スポンサーサイト

comment

管理者にだけ表示を許可する

07 | 2017/08 | 09
Su Mo Tu We Th Fr Sa
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
プロフィール

エレクトリックバカ

Author:エレクトリックバカ

ポケコンでプログラミングに目覚め、PICマイコンで電子工作に希望を抱き、来たるべきUGDの時代を夢見て眠る。
そんな うだつが上がらないサラリーメン。
先生、電子工作はおやつに入りますか?




Electric Baka

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。