トップページ     電子回路のページのトップ

 MikroCを使ってみた

PIC16F用のコンパイラ

 仕事でソフトを組む場合、CPUは、お客様指定のH8とか、TLCS870Cとかを使っています。
 使用するツールは純正のものを、お客様から借用しています。
 趣味では、専らPICマイコンを使っています。
 今まで、CCSCを使って、PIC16Fシリーズのマイコンのソフト作ってきましたが、バージョンが古くなって、新しいチップに対応しなくなってしまいました。
 CCSCはバージョンアップに対応せず、買い直すのは癪です。
 そのため、チップを18Fに換え、フリーのC18コンパイラでソフトを作る様になりました。
 28ピンとか40ピンのチップでは18Fの方が使い易く、何の問題もありません。
 ただし、18Fは18ピン以下のチップが殆どありません。
 8〜18ピンで間に合う簡単な用途では16Fを使う方が経済的です。
 そこで、フリーで使える16F用のコンパイラを探しました。
 選択肢は多くはありませんが、今回、MikroCを使ってみました。
 制限はコードサイズが2Kワード以下ということで、他の制限は無いようです。
 PIC16Fに関しては、18ピン以下のチップを対象に考えているので、殆ど2Kワードで足ります。
 16F88のように一部、4Kワードのチップが存在しますが、制限内に収めるか、18F1320に換えるかの選択を します。

MikroCのインストール

 まず、ファイルをダウンロードします。
 「MikroC」で検索すれば、ダウンロードページまで簡単に辿り着くと思います。
 マイクロテクニカというところでも扱っていますので、このサイトからでもダウンロードページに到達します。
 マイクロテクニカでは制限解除用のライセンスや、開発用のボード等も販売しているようです。
 ダウンロードは現在のところ、メールアドレス等の記入をしなくても、簡単にダウンロード出来ます。
 ついでにコンパイラのマニュアルPDFもダウンロードしておきます。
 インストールはダウンロードした実行ファイルをデホルトで実行するだけで、問題なくインストール出来ます。
 インストール先に倍角のフォルダ名は使わない様に注意します。(途中の経路にも)
 最初に、2種類のフラッシュ書き込みツールのどちらを使うか聞いてきますが、デフォルトのまま先に進みます。
 コンパイラのインストールが終了すると、再び、選択した書き込みツールを使うか聞いてくるので、私の場合、インストール しないを選択しました。
 HeXファイルを一発で書き込むには秋月のライターが簡単ですので、これを使う事にしました。

エディタのカスタマイズ等

背景色の変更

 まず、エディタの調整等を行います。
 メニューバーの tools > option で preferences ダイアログを出します。
 左側のツリーの各項目をクリックすれば、対応する設定内容が表示されます。
 殆どがエディタに対する設定で、若干の出力ファイルに対する設定がある様です。
 通常は、コンパイラやリンカに対する細かな設定があるのですが、これには無いようです。
 エディタはデホルトで黒の背景に白文字ですので、白の背景に黒文字に変更します。
 ツリーの Editor > Colorsを クリックし Scheme を mikroDream に変更します。
 予約語やマクロは強調表示されますが、この色や、文字の修飾を変更したい場合は、リストから選択すれば要素毎に細かく 設定出来ます。

エディタの設定

エディタのオプション設定  次にツリーの項目 Editor をクリックし、エディターをカスタマイズします。
 更に細かい設定は Open options dialog 釦を押せばサブダイアログが出ますので Display タブでフォントを調整します。
 コメントに日本語が使えるようにフォントを変更し、文字の大きさも変更します。
 フォント設定が、上下2カ所あるようですが、上側のフォントは行番号に反映され、ソースの文字は下側のようです。
 Options タブでは、エディタの細かな設定を行います。
 ...以下、いろいろ試してみてください。(私も使い始めたばかりですので)

プロジェクトの作成

プロジェクトの設定

 プロジェクトの作成からコンパイルまでは通常のコンパイラと殆ど変わりません。
 メニューバーの Project > New Project をクリックすると、左図のダイアログがでますので、プロジェクトの名前とパスを 入力します。
 Description はメモでしょうか?入力しなくても大丈夫です。
 次に、CPUの種類を選択し、クロック周波数を入力します。
 Device Flags ではチップ毎のコンフィギュレーションを設定します。
 最初の空白のプルダウンリストには、何を記入するかわかりませんが、とりあえず、使いませんでした。
 その下に、コンフィギュレーション項目が並んでいるので、必要な項目にチェックをいれます。
 この後、ソースファイルを作成し、プロジェクトに追加し、ビルドすれば、Hexファイルが出来ます。

プロジェクトの編集

 一旦、作成したプロジェクトの設定を後で変更したいときは、メニューバーより、Project > Edit Project を選択します。

デバッガーや書き込み器

 デバッガーはシミュレーターとICDデバッガーを選択するようになっています。
 ICDデバッガーの詳細や、売られているどうかは調べてありません。
 小規模の用途であれば、デバッガーが無くとも何とかなります。
 Hexファイルさえ出来てしまえば、書き込み器は、どんなものでも、大丈夫なはずです。
 私は秋月の書き込み器を使用しました。
 尚、前述、マイクロテクニカで発売されている開発用の評価ボードは書き込み器とICD機能が組み込まれているという ことです。

情報源

 MikroCを使ったPIC関連の書籍は現在(2009年2月)のところ、見たことがありません。
 MikroCで検索してもHitするサイトは少ないです。
 MikroCをダウンロードするとき、ユーザーズマニュアルも一緒にダウンロードしましょう。
 開発環境の使い方と言語仕様の他にライブラリー関数の使い方が説明されています。
 参考回路とサンプルソースが載っているので参考になると思います。
 マイクロテクニカから製品の活用マニュアルがダウンロードできるので、こちらも参考になると思います。

使ってみて

 使いこなした訳ではないので、断言は出来ませんが、問題なく使えそうです。
 開発環境もシンプルで設定箇所も多くないので、使い易いのでは無いでしょうか。
 H8のHEWのような高機能な開発環境は覚えるのに苦労しますが。

 以下、気が付いた点を書いてみます。
 まず、コンフィギュレーションの設定が判りにくい点があります。
 項目が微妙に独自の表現で見にくいです。
 C18コンパイラの場合、コンフィギュレーション設定用の判り易いPDFファイルがダウンロード出来るので、そのまま #pragma cnnfig を付けてソースファイルに書き込めば良いのです。
 2011年2月現在、チップ別のコンフィギュレーションの詳細説明はMPLABの最新版 v8.63 の ヘルプファイルに組み込まれています。
 今まで、コンフィギュレーションを説明していたPDFファイルは廃止されました。

 例: #pragma config OSC = INTIO2
 MikroCではコンフィギュレーションをファイルに書くことが出来ません。
 プロジェクトで設定しても、うっかりしてCPUタイプを変更してしまうと、設定内容は消えてしまいます。
 設定内容をコメントとして残しておく方が良いでしょう。
 このコンパイラは豊富なライブラリー関数を活用するように考えられていますが、個人的な趣味としては出来るだけ関数は 自分で作るようにしています。
 その方が、理解が深まるし、移植もし易いと思います。
 その際、レジスタ操作をするわけですが、変数名やビットシンボル名が判りにくいです。
 C18にはチップ毎のヘッダファイルがあり、これを覗けば、SFRの変数名やビットフィールドが定義されているので、 レジスタ操作がし易いです。
 MikroCにはチップ毎のヘッダファイルが見あたりません。
 インストールされたサブフォルダ defs にチップ毎のソースファイルがあるので、これを覗いてみると、SFRのレジスタ名 や、ビットシンボル名称が見えます。
 ただし、キッチリとビットフィールドが定義されている訳では無いので、レジスタとビットシンボルの関係が判りません。
 多分、マイクロチップのシンボル名称と同じになっているので、データシートを見ながら、例えば、PIE1.CCP1IE=1と書けば良いと思います。
 また、ビット位置はF0−F7で示す事が出来るのでPIE1.F5=1でも良いと思います。
 ポートに出力する場合は、例えばGPIO.F1=1のようにします。

 割り込み関数は一つしか書けません。
 したがって、割り込みルーチンの中で割り込み要因を調べて該当する処理に分岐することになります。
 複数の割り込みを使用している場合、割り込み関数が大きく、煩雑になる可能性があります。
 これはC18でも、同じです。
 CCSCの場合は割り込み要因毎の関数を書けたので、この点に関してはスッキリしていました。
 構造的にはPIC16Fの割り込みジャンプ先は1つだけなので、MikroCの記述方法が現物に合っているとは言える のですが。

 多少、気が付いた点を書いてみましたが、私も使いこなした訳ではないので、まだいろいろあるかもしれません。  まずは、簡単なプロジェクトを組んで、何かを作ってみると良いでしょう。


トップページ  「電子回路」のトップ