CSR867x-2つの表示状態の共存を実現する方法

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XX作者:ZHS(文化人)

XX連絡先:記事の最後でチャット

XX著作権表示:元の記事、コメントと再版を歓迎します〜再版するときに教えてください

XXのコメント:作者のレベルは限られており、欠陥があることは避けられません。訂正してください!

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

前書き:CSRプラットフォームで遊んだことのある人なら誰でも、構成ツールでさまざまな状態やイベントにさまざまなLED表示を構成できることを知っています。これは非常に便利ですが、コードは同時に1つの状態しかサポートしません。 2つの同時表示要件があります、それを行う方法 ゆっくり話させてください〜

CSR8670のADK調査を通じて、次の結果が見つかりました。

1.ある状態になると、イベント表示がトリガーされます。イベント表示が終了した後も状態は継続します。このとき、状態が更新され、下図のようにショート表示異常が発生します。 (この場合、2つの簡単な表示状態が共存できます。ただし、それでも顧客のニーズを満たしていない可能性があります)

2.特定のイベントが発生すると、次の図に示すように、gCurrentlyIndi​​catingEventによって状態とイベントがトリガーできなくなります。

3.特定の状態にあるときは、タイマーを使用してイベントの繰り返しを維持し、2つの共存の効果を実現できます。終了する必要がある場合は、命令を直接リセットできます(実際には、イベントを継続的に維持することです)。 2つの状態の共存を実現するための特定の状態のインジケーター効果)

コードを変更する方法は?見下ろし続ける

まず、状態であろうとイベントであろうと、最終処理はledsIndicateLedsPatternインターフェイスを呼び出します。このインターフェイスはLedsIndicateNoStateを呼び出して現在の状態表示をクリアし、新しい状態またはイベントを示します。

したがって、2つの同時表示を行う場合、現在のステータス表示をクリアすることはできません。したがって、ここで必要なイベントであると判断された場合、次の図に示すように、ステータス表示はクリアされません。

次に、EventSysLEDEventCompleteがmain.cでイベントの終了を示した後、それが必要なイベントである場合、ステータスは更新されません。以下に示すように。

次に、イベントが必要な場合は、以下に示すように、タイマーを介してイベントの繰り返しを維持します

最後のステップで、必要がなくなったら、次の図に示すように、LedManagerResetLEDIndications()インターフェイスを呼び出してステータス表示を更新します。

また、configurationToolツールの構成は次のとおりです。

おすすめ

転載: blog.csdn.net/zhanghuaishu0/article/details/80750352