2016-03-22 15 views
1

Windows 10 IOTコアでc#を使用しているラズベリーのGPIOインタフェースを介して〜30Hzの周波数入力でGpio入力信号をカウントしようとしています。私は信号の大部分を失っている。だから私はLightning Driverを起動しました。私はC++ Lightningインターフェースを含んでいました。私のLightningProviderは正しく初期化されているようです。私はLightningProvider.IsLightningEnabledをテストしており、それに応じてGpioControllerを初期化しています。 コンパイラがうまくいっていて、私がRaspberry Pi2でリモートデバッグしている実行ファイルを生成します。LightningDriverでGpio入力信号がありません

私のGPIO出力は、私がプログラムしたSoft-PWMアプリケーションを駆動し続けます。唯一の問題は、PiでLightningDriverをアクティブにすると、自分の信号をカウントするように設定されているEventHandlerがもう呼び出されないことです。
それを短くする:LightningDriverを起動すると、私はこれ以上の入力信号を受信しません。 手がかりはありますか?

答えて

0

ここではGPIOの初期化が役立つかもしれませんが、GPIOピンが1回目または2回目に起動した後にGPIOピンからイベントを戻しても同じような問題が発生しました。

私はコンストラクタでピンをセットアップしていましたが、プライベートメソッドに定義されたイベントハンドラを持つローカル変数でした。

解決策は、.NETが一度使用された後にこれらのピンイベントを廃棄するため、私のピンの範囲を広げることでした。私はそれがそれらを処分する必要性を感じた理由はわからないんだけど、これは私のためのトリックをした作り

_gpio = GpioController.GetDefault(); 

if (_gpio != null) 
{ 
    _rateOnePin = _gpio.OpenPin(5); 
    _rateOnePin.ValueChanged += RateOneReceived; 

    _rateTwoPin = _gpio.OpenPin(6); 
    _rateTwoPin.ValueChanged += RateTwoReceived; 
} 

:次のコンストラクタコードで

private readonly GpioController _gpio; 
private readonly GpioPin _rateOnePin; 
private readonly GpioPin _rateTwoPin; 

:私のコードは、最終的にはこのように見えました。

+0

コメントをいただきありがとうございます - しかしそうではありません。私は理由があると思う:現在のリリースではまだ割り込みをサポートしていないLightningDriversに関するMSDNに関するコメントがあった。だから私はそれが動作するかどうかを確認するためにポーリングに変換します。 –

関連する問題