アイロンをください! パート2

アイロンをください!



パート1



必要なものはすべて購入しました。 実験室を設置する時です!



プログラマーに付属するソフトウェア、PICKit2 UtilityおよびMPLAB IDEを配置します。 1つ目はプログラマーと作業するためのユーティリティ、2つ目は開発環境です。 基本的にPICKit2ユーティリティは必要ありませんが、後で説明する点が1つあります。 それまでの間、MPLAB IDEに注目します。



MPLAB IDE



開発環境を開き、新しいプロジェクトを作成します。 このIDEの欠点の1つは、スティッキーパネルがないことです。代わりに、大量のウィンドウがあります。 住むことができるように、私はすべてを通常の方法で配置しました(写真が収まるようにウィンドウを縮小しました):



MPLAB IDE



upd:すべてが完璧に固執します! ウィンドウの左上隅にあるアイコンをクリックし、メニューから[ドッキング可能]を選択して、境界線にドラッグします。 情報をありがとうlunatik42



ファイル>新規 ; [ファイル]> [名前を付けて保存...]で[アセンブリ]タイプを選択し、[プロジェクトに追加]チェックボックスをオンにします。 はい、アセンブラーでコーディングします。



また、アセンブラを使用していることをIDEに伝える必要があります。



Project> Select Language Toolsuite ...に進み、Microchip MPASM Toolsuiteを選択します。



Microchip MPASM Toolsuite



次に、 Project> Build options ...> Projectに進み、コンパイル設定があります。 「MPASM / C17 / C18 Suite」タブで、絶対コード生成を選択します。



絶対コード



絶対コードを記述する場合、コードとデータの場所を指定できます。 ポータブルコードを記述するとき、コンパイラはメモリ自体を駆動しますが、このためにセクションを処理する必要があるため、まだ必要ありません。



[MPLAB Assembler]タブで、変数の大文字と小文字の区別を無効にできます。 切断しないことにしました。



わかりやすくするために、 [編集]> [プロパティ]でクロールします。そこで、行番号を表示し、フォントを好みに変更します。 Lucida Console 8にスキトルを入れて、より多くのコードがウィンドウに収まるようにしました。



再び材料



現在のタスクは、コントローラーをフラッシュするためにコンパイルする最小限のコードを記述することです。 その結果、数行のコードを取得しますが、それらを書くには多くのドキュメントを読む必要があります。 2つのソースが必要です。 データシートと組み込みのIDEマニュアル( ヘルプ>トピック...> MPLABアセンブラー )。これらは別のウィンドウで開き、プロセスに干渉しません。 コマンドのセットとすべてのディレクティブの説明を含む表があります。 コード内で理解できない単語に遭遇した場合、解釈のためにそこに登る必要があります。



データシートの「8.0命令セットの概要」セクションには、コマンドシステムの詳細な説明が記載されています。このセクションを注意深く読むことをお勧めします。



最小コード



さて、あなたは最終的に少し回避することができます-私たちはできます!



最後から始めて、単一の行を書きましょう:



 終わり 


F10でコンパイルすると、ビルドが成功し、エラーが発生します。彼らは、そこに何かをダウンロードすることは不可能だと言います。 行の先頭のディレクティブが気に入らないコンパイラからも混乱します。これは問題ではなく、タブを1つずらします。 エラーについては、その原因は石の構成の不足です。 構成は基本的に、ファームウェア中にストーンに書き込まれる12ビットのワードです。AVRストーンの場合、これはヒューズビットと呼ばれます。 各ビットの意味は、データシートのセクション「7.1構成ビット」に記載されています。



そして今、注意力の探求! 何をするのを忘れましたか? どの石の下でコードを収集する必要があるかを示すのを忘れていました。 これを行うには、 [構成]> [デバイスの選択]に移動して、石-PIC12F509を選択します。 IDEには、この石に提供する多くの機会があります。



ターゲットデバイスの選択



しかし、突然別の開発環境を使用したい場合はどうでしょうか? これを行うには、コードで直接石のタイプを指定できます。これは、listディレクティブを使用して行われます。 このディレクティブのマニュアルを読んだ後、次を書く必要があることが明らかになります(最初のタブを忘れないでください):



 リストp = 12f509 


設定で指定されたストーンのタイプは、コマンドラインを介してコンパイラーに渡され、listディレクティブよりも優先されます。 したがって、設定で1つのストーンを設定し、ディレクティブで別のストーンを設定すると、コードは設定で指定されたストーンにコンパイルされ、コンパイラーはコマンドラインで置き換えられたプロセッサープロセスを提供します。 プロセッサシンボルを確認してください。



石を示しました。 データシートのセクション「4.3データメモリの構成」に、石のレジスタはデータメモリのアドレス空間にあると書かれていることを思い出してください。 アドレスではなく名前でアクセスするには、ヘッダーファイルを含めます。



  #include p12f509.inc 


レジスタのアドレスに加えて、構成ビットの番号がそこに書き込まれます-今必要なもの。 このファイルをプロジェクトに追加して、シンボルリストで定義されているすべての定数を表示することもできます。



これで構成を設定できます。 Configure> Configuration bits ...で指定できますが、移植性とアクセスの利便性を高めるために、コードで直接これを行う方がよいでしょう。このために__configディレクティブが役立ちます。 インクルードを開き、「構成ビット」セクションを見てください。 ビットはデータシートに従って命名されます。



次の構成が必要です。MCLRは無効(通常のピンのように機能)、コード保護は無効、ウォッチドッグタイマーは無効、内部ジェネレーターがクロッキングに使用されます。 したがって、設定は次の形式を取ります。



  __config _IntRC_OSC&_CP_OFF&_WDT_OFF&_MCLRE_OFF 


値は「AND」を使用して結合されることに注意してください。 最初は習慣からすべてをORで書きましたが、何も機能していなかった理由を長い間考えていました。



だから、ここで私たちが終わったものです:



 リストp = 12f509
	
	 #include p12f509.inc

	 __config _IntRC_OSC&_CP_OFF&_WDT_OFF&_MCLRE_OFF
	
	終わり 


...正常にコンパイルしました! 私が約束したように、数行と多くのドキュメント。



タックルアイアン



それで、あなたがとても長い間待っていた瞬間が来ました! ストーリーが最終的に鉄に到達する場所を探してページをスクロールした場合、読書を停止して開始する時間です:)



プログラマー、マイクロコントローラー、プログラム、そしてこれらすべてを組み合わせる不健康な熱意があります。 そして今、私たちはただ一つの質問に苦しめられています:何と接続するか?



データシートのセクション7.12「インサーキットシリアルプログラミング」に進み、次の図を参照してください。



プログラマー/マイクロコントローラー接続



通常の接続はまだないので、プログラマーの足と石の足の接続のみを調べます。 さて、私たちが接続したものは、石とプログラマーでこれらのピンがどこから成長するかを見つける必要があります。



マニュアルからプログラマーまで、結論の目的を学びます。



PICKit2の結論



データシート(セクション「ピン図」)には、マイクロコントローラーの結論が示されています。



PIC12F509の調査結果



今、石を見てください。



PIC12F509



困惑。 さて、彼の最初の結論はどのような角度ですか? 上部と下部はどこですか? これを理解するために、ウィキペディアに進み、 DIPパッケージについて読んでください。 そこから、結論は半円形のノッチから反時計回りに番号が付けられていることがわかります。



DIPチップのピン番号



Microchipの思いやりのある人たちが、最初の出力の近くに私たちのために点を付けさえしたことがわかりました。



ついにブレッドボードが手に入りました! 次のようにすべてを接続しました。



石とプログラマーの接続図



ルールが非常に正確にそれを置くように、拡張現実でも同じこと:



説明スキーム



点滅



待望の結果から数回クリックするだけです! プログラマーを接続します。まだ接続されていない場合は、MPLABでプログラマーメニューに移動し、そこでプログラマーPICKit2を選択します。 プログラマーメッセージタブが出力ウィンドウに開き、そこで準備ができていることを快く報告します。 そして、プログラマーを制御するためのこのパネルがあります:



PICKit2コントロールパネル



左端のボタン「ターゲットデバイスのプログラム」が必要です。 プッシュ!



すべてが正しければ、プログレスバーが下に表示され、プログラムメモリのマッシングと記録に関するメッセージが出力ウィンドウに表示されます。 おめでとうございます、石が縫い付けられています! :)



次のパートでは、HelloWorldを作成し、PICKit2ユーティリティが必要な理由を説明します。 じゃあね!



2番目の部分の終わり。



パート1



All Articles