質問が何であるかを完全に理解しているわけではありません。
パラレルポートのプログラミングに慣れていませんか?
私の記憶はぼんやりしていますが、iircはとてもシンプルです。これは「ダム」インターフェースなので、単に書き込む必要があります。
Linuxで実行している場合は、いくつかの優れたリソースがあります。
Linuxデバイスドライバー:第9章:パラレルポートの概要-パラレルポートプログラミングについて少し説明し、続いてそのためのデバイスドライバーの作成について説明します。あなたのアプリケーションには少しやり過ぎだと思いますが、本全体が魅力的で啓発的です。
Linux I/Oポートプログラミング-基本的に/dev/ portに書き込むか、asm / io.hをインクルードしてinb()とoutb()を使用できます(これはしばらくしていませんが、実行するかどうかはわかりません特定の問題に絞り込んだら、そこにはたくさんの答えがあります)
WindowsまたはMacを使用している場合でも、idは上記を読むことをお勧めします。これにより、何をしようとしているのかがわかります。私の意見では、これらは簡単です。次に、同等のWindows/Macを検索してください。
さて、質問の核心は、ポートに何を書き込むかということです。
Cyber 310の場合、ピンレイアウトがありますが、リストしたサイトを参照すると複数の異なるピンレイアウトがあるようです。ここで、anf.nildram.co.ukをフォローすると、PICアセンブリが表示されます。ベースを回転させる方法。
私は今日までPICアセンブリに触れたことがありませんが、インターネットとコメントの助けを借りて、これがやろうとしていることを翻訳できると思います(ほとんどがタイミングとループであるため、関連する部分を省略しました)
; 6: Symbol prf = PORTA.0
; The address of 'prf' is 0x5,0
; 7: Symbol strobe = PORTA.1
; The address of 'strobe' is 0x5,1
; 8: Symbol base = PORTB.0
; The address of 'base' is 0x6,0
; 9: Symbol shoulder = PORTB.1
; The address of 'shoulder' is 0x6,1
...
; 16: main:
L0001:
; 17: base = 1
BSF 0x06,0 // set bit 0 at 0x06 to 1 essentially set base bit to 1
; 18: strobe = 1
BSF 0x05,1 // set strobe bit to 1
; 19: strobe = 0
BCF 0x05,1 // set strobe bit to 0
; 20: While a <> 730 // now we loop 729 more times
したがって、私の素朴な観点からは、アームを回転させるには、モータービットを設定し(ピン配置から取得)、ストロボを設定してクリアする必要があるように見えます。
私が完全にベースから外れているかどうか教えてください、これは魅力的なプロジェクトです。