PIC24FJ64GA002 MCU を使用するプロジェクトに取り組んでいます。1本のワイヤを使用してデータを送信し、受信モードに切り替えて同じピンでデータを受信するビットバングシリアル通信機能に取り組んでいます。別のピンは、常に別のボード (常に入力) によって制御されるクロッキングに使用されます。入力および出力として使用できるオープンコレクタ動作用にピンを構成する方法があるのだろうか、または読み取りから書き込みに移行するたびにピン構成を変更する必要があるのでしょうか?
2686 次
1 に答える
0
TRIS レジスタを使用して、ピンの方向を毎回変更する必要があります。ピンが出力として設定されている場合、PORT レジスタを読み取ると、ほとんどの場合、ピンを駆動しているレベルがわかるだけです (ピンに高インピーダンスがあると仮定します)。ピンが入力用に設定されている場合、目的の出力値を駆動することはできません。また、PORT レジスタを使用して受信データを読み取り、LAT レジスタを使用してデータを出力するようにしてください。これにより、コード (ここでは C でプログラミングしていると仮定します) が Read-Modify-Write である bset/bclr/btgl 命令に変換されても、問題が発生しないことが保証されます。アセンブラで記述している場合、同じ規則が適用されますが、これらの RMW タイプの命令をいつ使用しているかがわかります。これについてさらに推論が必要な場合は、質問してください。
于 2010-11-10T19:48:19.217 に答える