AtmelAVRマイクロコントローラーに関する簡単な質問です。そこで、ATTiny85のアナログコンパレータを使用して、信号がしきい値を上回っているか下回っているかを判断したいと思います。この信号は通常「フローティング」であり、「アクティブ」のときはグランドに向かって引っ張られます(つまり、アクティブロー-オープンコレクタ信号です)。入力ピン(コンパレータ入力でもある)のプルアップを有効にするには、次のようにします。
DDRB = 0x00; // DDRB.1 = 0 = input
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled
アナログコンパレータを使用し、AIN1としてPORTB.1を選択した場合、内部プルアップが入力信号に適用されますか?私は誰かがこの振る舞いを検証するための個人的な経験を持っていることを望んでいます。この質問がスタックオーバーフローに対して「ハードウェア指向」ではないことを願っています。ありがとう!
編集 「デジタルで扱ってみませんか」という以下のコメントのいくつかに応えて、それは私の「信号」がセンサー(つまり光IRセンサー)によって生成されているためです。デジタルでゼロとして解釈されるのに「十分にハード」にプルダウンされるとは保証できないので、スイッチングしきい値として内部2.56Vリファレンスを使用します。私は「IRイベント」を取り上げようとしているだけなので、これが私にとって最も簡単な方法のように思えました。
また、アナログコンパレータを使用することで、ISRを使用して「非同期に」イベントを検出できます。一部のピンはデジタルエッジで割り込みを呼び出すことができますが、V_ILを下回る応答に依存することは望ましくありません。