ラベル MPLAB_C30 の投稿を表示しています。 すべての投稿を表示
ラベル MPLAB_C30 の投稿を表示しています。 すべての投稿を表示

2012年5月29日火曜日

パルスジェネレーターver2.0


先日、新しいパルスジェネレーターを検討すると書いたが、いろいろ思考をめぐらしていくうちに、今あるパルスジェネレーターを少し改造すれば、簡単に使えるのではないかと思った。

実を言うと、USB機能の追加が少しハードルが高くて、どうしようか悩んでいたのもある。
まずPIC18Fだと、Cよりもアセンブラになるだろうということ、リアルタイムOSが使えるかどうかということ、USBをリアルタイムOSに乗せるのは可能か、などなど。
すると、実績などを考えるとPIC24Fの方がよくないかとか、課題が増えてしまって、収集がつかなくなってしまう。


だから、まずは既存のパルスジェネレーターを改造することから初めて、新しいパルスジェネレーターの本当に必要な機能を見極めてから、作っても遅くは無いだろうという思いが出てきた。


USB機能はないが、マニュアル操作で、パルス量をリアルタイムに変化できるようにしてみたい。

操作は、ロータリーエンコーダーがあるので、パルス出力中にこれをまわすとパルス量が増減できるようにする。
となると、PICソフトを書き換えるだけで済む。

MPLABを立ち上げて、プロジェクトを開く。FreeRTOSを使ったソフトだったことを思い出した。

LCD表示でパルス幅1.0usec未満の場合に小数点が消えるバグがひとつあったので、これもついでに直す。


コンパイルが通ったところで、メモリーUSAGEを見てみる。まだ十分な余裕がある。

パルス量増減モードを追加しても問題なさそうだ。

2010年1月10日日曜日

スタックオーバーフロー


MPLAB C30で調子よくプログラムを作って、デバッグモードで動かして確認を繰り返していた。
すると、動かしている途中でリセットがかかるようになってしまった。

MPLABには、画像のようなメモリーの使用量が表示できる機能がある。
これを見る限り、まだまだ余裕があると思っていたのだが、どうも違うようである。

マニュアルによると、ソフトウェアでスタック領域の監視を行っているようで、デフォルトのままだとスタックオーバーフローが発生したらリセットするようになっているのだ。

ここら辺が、一般的なPC上で開発するソフトウェアと組み込み用のそれとの大きな違いだ。普段PCのメモリーがたっぷりある環境で開発することに慣れているので、いつものように関数なんかはどんどん作ってしまうのだが、これがスタックの浪費につながってしまうのだ。

スタックの消費量を抑えるように、プログラムの見直しをしなくては。

2009年8月17日月曜日

MPLAB C30

Microchip社の純正C言語コンパイラであるMPLAB C30というものがある。
dsPICで開発するのに必要なので、これをGETしてインストールする。
これは純正だけど、制限つきのアカデミック版が無料で提供されているのでそれを使う。

参考サイト:
http://www.picfun.com/c30frame.html
http://www.microfan.jp/mplab-c30

ダウンロードの画面



このとき、ユーザー登録が必要だったので、メールアドレスやパスワード、氏名、国、住所などを登録した。

ダウンロードが完了したら、インストール。

・・・インストール中・・・すべてデフォルト。














これでインストール終わり。