1

私は、マイクロコントローラーを使用する必要がある新しいプロジェクトに取り組んでいます。プログラミングする最も簡単な方法は、パラレル ポートを使用することです。しかし、あなたが私を助けてくれることを願っていることがいくつかあります. ああ、優先言語は C とプラットフォーム Windows です。

そこで、LPT ポートと Windows について少し調べましたが、最も重要なことは次のとおりです。これは、関数で使用される種類の命令をサポートしていない別の特権モードでプログラムが実行されるようになったためoutport()です。

しかし、この時点で、私はいくつかのことを理解していません。最初に、Windows は最初のプロテクト モード バージョンから実際に特権レベルを使用していると思っていましたが、それは間違った仮定です。

しかし、もっと重要なことは、Windows にはほぼすべてのハードウェア通信のための機能が含まれているということです。つまり、最近 Windows で何をするにしても、カーネル サービスをさらに呼び出す Windows 関数を呼び出すだけです。はoutport()Windowsの機能を一切使わず、通信そのものを行うだけだと思っていましたが、現在は禁止されています。しかし、最近の Windows システムにはパラレル ポートを制御するシステム機能がないことに文字通りショックを受けています。少なくともそれは私が読んだものです。

しかし、たとえパラレル ポートを制御できたとしても、2 つ目の問題が発生します。コントローラーをプログラミングするには、特別なプロトコル、特にタイミングに従う必要があります。しかし、Windows はマルチタスクであるため、Scheduler が別のアプリに切り替わるとどうなるか心配です。そのため、LPT のシグナルをいつ切り替えるのが適切なのか、私のプログラムは実行できなくなります。

ところで、私はサードパーティ製のアプリを使用できることを知っていますが、自分でできるようにしたい、または少なくともサードパーティ製のアプリを使用する前に、それがどのように機能するかを知りたい. そして、はい、いくつかの抵抗器を備えたパラレルポートだけでいくつかのマイクロコントローラーをプログラムできます。これは確かです。

ありがとう。

4

1 に答える 1

3

Windows の場合、HW ポートにアクセスするために昇格された権限で実行するドライバーを含む DLL をインストールする必要があります。

このようなライブラリは、次の場所にあります。

http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html

サンプルコードへのリンクもあります。

あなたがどのuControllerを使用しているかはわかりませんが、過去にさまざまなuControllerをプログラムしましたが、少なくともプログラミングに関しては、タイミングに問題はありませんでした。通常、プログラミング プロトコルは、マルチタスクによって引き起こされるジッターに対処できるほど堅牢です。クロック エッジと信号エッジを十分に分離しておくだけで、問題なく動作するはずです。

于 2010-05-26T22:30:50.440 に答える