PICのプログラムをアセンブラで組んでいるのですが、
どうにもシンプルな書き方ができなそうなのでお知恵をお貸しください。
例えば、
ポートAが入力、それ以外のポートは出力になっているとします。
・ポートAの0番のオンオフを、ポートBの2番へコピー出力。
・ポートAの1-3番のオンオフを、ポートCの4-6番へコピー出力。
という感じで、Aのオンオフ状況を、各出力ポートにコピーするということをしたいです。
どのようにしたらスマートに書けるでしょうか?
ちなみに各出力ポートに関して、コピーする前に一旦全てオフにする、
というようなことはできません。
No.2ベストアンサー
- 回答日時:
一例ですが
BTFSC PORTA,0 ; PORTA_BIT0=0 SKIP
BSF PORTB,2 ; PORTB_BIT2=1 SET
BTFSS PORTA,0 ; PORTA_BIT0=1 SKIP
BCF PORTB,2 ; PORTB_BIT2=0 CLEAR
PORTAのリードが 1回目 2回目 変わらないことが前提ですが
複数のビットをコピーするのなら、マクロを組むか、レジスタにコピーして論理演算で合成してから出力します
BIT_COPY MACRO PORT_X,BIT_X,PORT_Y,BIT_Y
BTFSC PORT_X,BIT_X
BSF PORT_Y,BIT_Y
BTFSS PORT_X,BIT_X
BCF PORT_Y,BIT_Y
ENDM
BIT_COPY PORTA,1,PORTC,4
BIT_COPY PORTA,2,PORTC,5
BIT_COPY PORTA,3,PORTC,6
一番上の書き方は私が考えたのと大体同じ感じでしょうか。
やはりアセンブラだと冗長になりがちなのはしょうがないのかもしれません。
マクロを組めるのは知りませんでした。
これは便利ですね。
後々にも使える場面が出てくると思います。
ありがとうございました。
No.1
- 回答日時:
シンプルかどうかは置いておいて
B/Cポートデータが読み込みできないということであれば
事前に書くポートへの出力でーや用のメモリを確保して
そのデータの大してAポートのデータを反映して
それぞれのポートに出力するのが常套手段となります
そういった事を聞いてるんじゃないのかな?
(正直何を質問したいのかよくわからん)
この回答への補足
ご返信ありがとうございます。
質問としては、どうも自分の思いつく方法だと書き方が冗長になってしまうので
普通はこういう場合にどうやって書くものなのかと思い質問させていただきました。
とりあえず思いついた方法というのは以下のような感じなのですが、
もう少しまとめて書いたりできないものでしょうか。。。
MOVFPORTA,0;
MOVWFMEM;PORTAの内容を保存
BTFSCMEM,0
BSFPORTB,2
BTFSCMEM,1
BSFPORTC,4
BTFSCMEM,2
BSFPORTC,5
BTFSCMEM,3
BSFPORTC,6
BTFSSMEM,0
BCFPORTB,2
BTFSSMEM,1
BCFPORTC,4
BTFSSMEM,2
BCFPORTC,5
BTFSSMEM,3
BCFPORTC,6
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- モニター・ディスプレイ 【液晶テレビ、液晶ディスプレイに詳しい人教えてください】液晶ディスプレイのポートはHD 5 2023/02/02 19:48
- ネットワーク 【VLANとセキュリティについて】 ポート10(LAN2) にNAS ポート20(LAN3) にPC 6 2022/11/30 07:47
- タブレット 世のスマホやタブレットからイヤホンジャックが廃止されていくのはなぜですか?… 5 2023/08/04 15:05
- ルーター・ネットワーク機器 ひとつのスイッチでルーターの冗長化を複数させたい 1 2023/04/12 22:46
- ファイアウォール ポート開放で利用可能なTCP一覧の中に利用したいTCPが入ってない場合どうすればいいのでしょうか? 2 2022/09/12 10:31
- ルーター・ネットワーク機器 YAMAHA RTX1210について初歩的な質問 1 2022/05/26 23:06
- ルーター・ネットワーク機器 AU光10G回線について 6 2022/07/25 00:12
- FTTH・光回線 光コンセントとlanポートがある場合 5 2022/04/18 12:46
- その他(インターネット接続・インフラ) 一軒家のインターネット環境について質問です。 現在一軒家に住んでいますがWiFiの速度が遅く困ってお 3 2022/11/06 00:55
- その他(パソコン・スマホ・電化製品) hdmlのオスをusbAのポートに変換する商品はありますか? テレビの外付けレコーダーを買ったのです 4 2022/05/05 19:10
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PCのUSBポートの不具合と対処法...
-
Windows10におけるUSB-RS232C機...
-
8000番や8080番のポー...
-
スイッチのポート番号について
-
ワイヤレスマウスUSBレシーバー...
-
ポート80を閉じたいのですが
-
コマンドプロンプトで、ポート...
-
EXCEL VBAで、PnPでCOMポート番...
-
USBメモリ増設アダプターについて
-
ポート80、443を開けろと言われ...
-
FTP接続時のポートの設定につい...
-
シリアルポートをCOM5から...
-
apacheのポートを80番以外に...
-
縦続 と 直列
-
コンソールアプリでキーの同時...
-
Supermodelのエミュレーターに...
-
Dell Inspiron 14 5415 をコン...
-
8080ってなんですか?
-
コマンドプロンプト、LISTENの...
-
webサーバのポート番号について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
8000番や8080番のポー...
-
Windows10におけるUSB-RS232C機...
-
ワイヤレスマウスUSBレシーバー...
-
Dell Inspiron 14 5415 をコン...
-
ポートの80と443
-
コマンドプロンプトで、ポート...
-
ポート80、443を開けろと言われ...
-
スイッチのポート番号について
-
マンションHUB交換について
-
EXCEL VBAで、PnPでCOMポート番...
-
Supermodelのエミュレーターに...
-
バンジージャンプのデータを貰...
-
マザーボードにSATAのHDDを接続...
-
プリンタのUSB接続について(LP...
-
Amazon整備済み品のSurface pro...
-
PCがのぞかれてないか調べる...
-
USBポートの無いPCでUSB機器を使用
-
サーバーにLANポートが多いとど...
-
ポート80を閉じたいのですが
-
パッシブモードでポート20番の...
おすすめ情報