chayaです。
nakaji さん wrote
> >>となると例えばPAを出力にしてPBを入力にして
> >>クロスで8本つなげばOKですね。
2ポート使うが、これは 目から鱗。一番早いでしょうね。
nakaji さん wrote
> 蛇足ですが、使用ポート数をもっと減らすなら、シリアル->シフトレジスタ->シ
> フトレジスタ-> シリアル ってのも
> ありなのですかね(ちとめんどいな、こりゃ)。
> 受け側のシフトレジスタを送り側と反対にまわせばMSBとLSBは逆転できると
> 思うんですが
> これなら占有2bitで割り込みも使えますし、ワークエリアはシリアルのみ!!。
> すいません。やっぱり H/W屋です。わたくし。
1bitならばポートを使わないで
H8/300Hならアセンブラでレジスタ2個使えば
<in> R0L <out> R0H
として
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
rotr.b r0l
rotxl.b r0h
これなら R0L は変化しません。
<in> R0L <out> R0L
にしたいならば(C言語向き)
mov.b r0h,r0l
を最後に追加する。
右回りでも左回りでも、これがソフトのみでは一番早いと思います。
これは、余りにも当然の(誰でも考える)ことでしたね。
わたしは、所詮 アセンブラ屋。