So-net無料ブログ作成
検索選択

同じ問題でまた嵌まった [PIC32]

(2015.07.31)
PIC32MX250を使い、アナログ2CHを200kHzサンプリングしようとして、嵌まりました。サンプリング・レートが200kHzに届きません。

プログラムを書き換えてもなかなか思うようになりません。あれこれ試しているうちに、サンプリング・レートが突然1MHzに跳ね上がって、またビックリ!調べてみるとADC割込フラグが消えなくなって誤動作していました。orz

”え~と、これは以前にも経験したやつだ。そのときは1MHzサンプリングも出来たんじゃなかったっけ?”

親族管理人ブログで検索を掛けて、以前書いた記事(これ)を発掘しました。

ふむふむ。(<==自分で書いたブログに感心している)

そのときも原因は判らないまま、AD1CON.SSRC<2:0>を”Internal counter ends sampling(auto convert)”に設定して、1MHzサンプリングを実現していました。

今回も同様に、”Internal counter ends sampling”に設定し、さらに"auto sampling"も設定して(ADCをフリーラン状態にして)おいて、200kHzインターバルで読み取るという方法でなんとか200kHzサンプリングが実現しました。

やれやれ

----------------------------------------
ちなみに、プログラムはこんな感じです
  while( break_flag == FLAG_OFF )
  {
      if( ADC_TIMER_INT_FlagGet() )
      {
// DMAをキックしてad_buffの内容を転送する
         SYS_DMA_Channel1ForceStart();
         ADC_TIMER_INT_FlagClear();
      }
      
      if( ADC_1_INT_FlagGet() )
      {
//ADC1BUFを読み出してから、割込フラグをクリアする
        ad_buff[0] = ADC1BUF0;
        ad_buff[1] = ADC1BUF1;
        ADC_1_INT_FlagClear();
      }



にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

DXに注文した品物が届いた [その他]


(2015.07.25)
DealExtreme(こちらです)に注文していたクリップとケーブルが届きました。
2015_0725_1.png

<発注後の経緯はこんな感じ>
Date Status
2015/07/25 10:57:32 Confirm Receipt Delivery confirmed.
2015/07/02 16:50:23 Full Shipment Your order has been fully shipped.
2015/07/02 13:40:58 Order Processing Order is being prepared for Shipment.
2015/06/30 13:22:06 Order Processing Order is being processed.
2015/06/30 13:22:06 Payment Confirmed Payment verified.

”先に(Paypalで)支払い、品物が届くまで3~4週間(今回は25日)待つ”というスタイルにも慣れました。(最初はすごく抵抗があった)

”ケーブルの嵌め合いが堅い”とか”クリップの角が当たると痛い”とか、満足できる品質とは言いがたいのですが、二千円のオシロジに使うプローブはこれくらいが相場ではないでしょうか?

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

BCMLIB_FOR_JAVAにバグが見つかった [JAVAで開発]

(2015.07.23)
BCMLIB_FOR_JAVAこれです)はRaspberry piのペリフェラル(GPIOとかI2Cとか)をJAVAで操作するライブラリで、そのI2Cライブラリを使ってOsciLogiの開発を進めてきました。

これまで、特に問題は生じていなかったのでライブラリとしてそこそこ動いている(出来上がっているもの)と思っていました。ところが・・・

I2C経由でPICのステータスを読み取る機能を(I2C割込が入るとOsciLogi のサンプリングに影響するので)、GPIOを介してPICのステータスを読み取る機能に変更したのですが、これが動いてくれません。orz

デバイスファイルを操作すると正しく読み取れるので、PICとRaspiの接続に問題は無く、プログラムのバグが疑われます。

<デバイスファイルの操作はこんな感じ>
echo 17 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio17/direction
cat /sys/class/gpio/gpio17/value
1
cat /sys/class/gpio/gpio17/value
0

BCMLIB_FOR_JAVAを使ってGPIOの出力を操作したことはあるのですが、実はGPIOの入力は今回が初めてです。ライブラリのどこかに不具合があるのですが、(自分で作ったライブラリとは言え)二年も経つとどんなプログラムだったか、すっかり忘れています。orz

あちこち覗き込んで、少しずつ仕組みが見えてきました。全部で四つのプログラムで構成されていま(す)した。

JAVA<==>libbcm_interface.so<==>shared memory<==>bcm2835_for_java

古典的な(コマンドの実行経路にprint文を挿入するという)手法で順番に調べていって、libbcm_interfaceが実行結果を読み取る所で失敗していることが判りました。

プログラムを修正して一件落着

やれやれ
-------------------
もう少し調べてから、GITに登録したファイルを更新します。


にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

Local Historyを有効にした [MPLABXとXC8]

(2015.07.08)
MPLABXになってバージョン管理ソフト(SVN,GIT,CVSなど)との連携が強化されましたが、MPLABX自体にプログラムの履歴を管理する機能(Local History)が備わっていることを(最近)知りました。

Tool->Options->Teamと辿って、Versioningタブを選択すると、バージョン管理方法を選択するメニューが表示されます。そこで”Local History”を選択すれば設定完了です。
2015_0708_1.pngLocal Historyを有効にした
ソースファイルを開き、編集画面の左上にある”History”をクリックすると、以前のファイルとの差分が表示されます。
2015_0708_2.png改行を挿入して差分を表示してみた
これまでは、一旦修正した箇所を元に戻す場合に備えて、修正前のコードをコメントアウトしていたのですが、これからばそんな手間を掛けなくても良さそうです。

----------------------------------------------------------
Local Historyは、どうやらNetBeansの機能らしく、JAVAプログラムの開発環境でも使えることが判りました。
めでたし、めでたし

(これまで知らなかったのはお目出度い)

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。