PIC」カテゴリーアーカイブ

MPASM Technic – ユーザースタック

積極的にユーザースタックを作成する方法を紹介する。 これは、FSR2(FSR0,1でも良いがFSR2を推奨)を用いたユーザースタックである。 ここで、ユーザースタックを構成する場合に重要なこととして極力メモリを食わずに高 … 続きを読む

カテゴリー: MPASM, PIC, PIC18F, PIC18FxxK40 | MPASM Technic – ユーザースタック はコメントを受け付けていません

MPASM Technic – PPS Lockの動き

PIC18FではPICのPinにハード機能を割り付けるPPSという機能がある。 PPS機能にはLOCK機構があり、セットするとPPS機能が変更ができなくなる。 PPSをLockする場合、マニュアルではシーケンスがあると記 … 続きを読む

カテゴリー: MPASM, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | タグ: , , | MPASM Technic – PPS Lockの動き はコメントを受け付けていません

MPASM Technic – SPIが受信できない

開発途中でSPIやEUART(Serial COMM)が正しく動作しない状態に陥った。 結果であるが、PMD0のSYSCMDは注意が必要である。 SPIやEUARTなど周辺モジュールはこのビットがOFFであっても動いてい … 続きを読む

カテゴリー: MPASM, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | タグ: , , , | MPASM Technic – SPIが受信できない はコメントを受け付けていません

MPASM Technic – Tblrdが動作しない

PIC18Fではプログラムコード内に置いたデータを連続して読み出せる機能がついた。 従来データはサブルーチンのリターン戻り値としてわたす命令のため、操作しづらく、メモリ消費も問題であった。 PIC18Fでは新たなレジスタ … 続きを読む

カテゴリー: MPASM, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | タグ: , , , , , , | MPASM Technic – Tblrdが動作しない はコメントを受け付けていません

MPASM Technic – マクロ

個人の好みとなりますが、アセンブラコード中でどうしても使いづらい部分がいくつかあり、一部マクロで対応しています。 マクロは基本的に以下のよう書式です。 Label macro param1 {, param2&#8230 … 続きを読む

カテゴリー: MPASM, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | MPASM Technic – マクロ はコメントを受け付けていません

MPASM Technic – スタック

PIC18Fでは(PIC12やPIC16など比べ)プログラムによるスタック操作が追加されています。 サブルーチン呼び出しの際にPCがスタックにPUSHされ、ReturnでPOPされます。 これまでPICではプログラムから … 続きを読む

カテゴリー: MPASM, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | タグ: , , | MPASM Technic – スタック はコメントを受け付けていません

MPASM Technic – 高速な左シフト

一般的に2倍とか4倍などを計算する際、左シフトを用いるが、PIC18FxxK40では高速に演算できます。 これは、8ビット系では珍しい掛け算のMULLW命令が実装されたことによります。 特筆すべきはMULLW命令は1イン … 続きを読む

カテゴリー: MPASM, MPLAB X IDE, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | タグ: , | MPASM Technic – 高速な左シフト はコメントを受け付けていません

MPASM Technic – 短いWait挿入

ハード制御等で、タイミングを取るためにCPUに対してなるべく正確で短いWaitを入れたい場合、NOPなどの方法があるが、なるべくコード数を減らしたい場合以下のコードはいかが? 最大3ワード(PIC18Fの1命令は16bi … 続きを読む

カテゴリー: MPASM, MPLAB X IDE, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | MPASM Technic – 短いWait挿入 はコメントを受け付けていません

MPASM Technic – リテラルの引き算

PIC18FのSUBLW命令によるリテラル[固定数値]の引き算は、 数値-WREGとなる。 一般的な引き算では、WREG-固定数値 のほうが使いやすいのだが、このようなCPUニーモニックはない。 解決方法として、リテラル … 続きを読む

カテゴリー: MPASM, MPLAB X IDE, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 | MPASM Technic – リテラルの引き算 はコメントを受け付けていません

PICと電池駆動

ちょっと本業で、ここ数か月開発の脇道に入ってました。 PIC12LF1572でアルカリ乾電池3V駆動の装置を作ってました。 これまでの設計では基本的に電源は必ずDC供給でしたので、乾電池駆動の開発は初チャレンジです。 L … 続きを読む

カテゴリー: PIC | PICと電池駆動 はコメントを受け付けていません