G2503_LPC11U35_プロジェクトの説明
2024年12月17日
5:15
G2503_lpc11u35_project_tamplate_repot
プロジェクトをダウンロードし、解凍して C:\LPC\LPC11U35 フォルダの直下にコピーします
U35_TEMPLATE.zip
概要
- LPCXpressoの起動後、フォルダ選択を
LPC/LPC11U35 に変更します
- プロジェクトのインポートは、LPC812 と同じ手順です
- U35_REMPLATE プロジェクトには、速度測定のシリアル通信とコマンド処理のみコピーしています
LPCXpressoの起動後の選択
LPC812との違い
- 最初に気が付くのは、下記の部分です
- 邪魔なのですが、取り除くとコンパイルできなくなるので、仕方なく残しています
- 詳しく調べる時間がおしいので、動けばいいという方針で、放置しています
インポートした、対象のプロジェクト
- プロジェクト名が、LPC11U35というフルネームを頭に付けていないので、見ずらいと思われる方は、見やすい形に変更してお使いください
- プロジェクト名を変更したり、コピーした場合のプロパティの変更方法は、LPC812と同じです
ヘッダーファイルの説明
- メーカー提供のヘッダーファイルです
- ここを修正することはほとんどないと思います
- atoi()活用 云々は有効なのか不明です
LPC11U35の専用関数
- lpc11u35.h はLPC812と共用関数にできなかったものを集めています
- lpc_kyo.h は LPC812とLPC11U35で共通に使えるはずの関数を集めています
- この部分は、実験を通して修正していきます
定期割り込みを待ち時間タイマー機能に使っています
- 実験には便利なのですが、定期割り込みは制御のとき、緊急停止などに利用する予定です
- タイマー処理は全く別の方法で実現する必要があります
メインループで利用する自動変数
- ほぼLPC812と同じです
- LEDモニタを 16番ピンにしたので、CPU基板にLEDの配線が必要となります
- メインループに定義される自動変数は消失しないので、RAMを常に消費していると考慮します
- たくさんの変数を定義するとオーバーフローもあり得ます
- 大きな配列を作るときは、計算しながら実験してください
- また、グローバル変数と違い、関数の中から参照はできないので、パラメータで渡す必要があります
PIOの入力、出力設定
- システムの初期化に先行して、PIOの定義を配置する理由は、PIO設定がシステム初期化に悪影響を与えても、動作不良を起こさせないためです
- システム初期化の資源と、PIOの資源が重複した場合でも、PIOが機能しないだけで済みます
- シリアル通信、I2C通信、AD変換、PWM出力、USB-VーBUS、などがPIOと重複する機能です
- 以下には、システムの初期化が続きます
- AD変換は、初期に実験しただけで、今は全く使っていません
- ビット数の解像度が低く(10ビット)、外付けICが充実しているからです
- ただ、これから実験する速度判定で、高速であれば使い道はあるかもしれませんが
- 高速度を要求する場合は、8ビット変換を使うと思うので、微妙な立場ではあります
モニタLEDの点滅
- リセットボタンの後、200msecで点滅を5回繰り返し、その後点灯する処理を追加します
- 電流をケチって暗くなりましが、まあ見えるのでこのままとします
シリアル通信
プログラムコードの書き込み
- LPCXpressoでビルドし、拡張子 bin ファイルを使います
- ライター基板の WRTスイッチを押したまま、CPU基板のリセットスイッチを押すと、ドライブが開きます
- この中には、firmware.bin.bin だけ表示されます
- これを削除して、目的の bin ファイル ここでは U35_TEMPLATE.bin をコピーします
- リセットスイッチを押すと、書き換えしたプログラムが実行されます
追記
- しばらくは、同じプロジェクトを繰り返し利用するので、BATファイルで作業を単純化します
- メモ帳を開き、下記の命令を作成します、ドライブは、変更してください
del G:\*.bin
copy E:\LPC\LPC11U35\U35_TEMPLATE\Release\U35_TEMPLATE.bin G:\
- 名前を付けて保存、デスクトップに lpc11u35.bat というファイル名で保存します
- あとは、マイコンのWRTとリセットボタンで、Gドライブに firmware.bin が表示されたら、このアイコンをダブルクリックすれば、目的のプログラムコードがコピーされます
- マイコンのリセットボタンを押せば実行されます