AVR-GCCで浮動小数点
AVR-GCCでは浮動小数点も使えてしまいます。実際の計算はGCCが生成するコードによってソフトウエアで実行されますので、あまり使うものではありませんけどね。ところでAVR-GCCにおいてdoubleは倍精度ではありません。 by Y.O
AVR-GCCでは浮動小数点も使えてしまいます。実際の計算はGCCが生成するコードによってソフトウエアで実行されますので、あまり使うものではありませんけどね。ところでAVR-GCCにおいてdoubleは倍精度ではありません。 by Y.O
LinuxでAVR開発をしたり、Cygwin 1.7以降でavr-gccを使う場合にはLinuxでもAVR(1)にあるようにパッチを当ててからビルドしなければなりません。しかし、WinAVRのCSVリポジトリにあるパッチは少々古く最新のWinAVR用のパッチがおいてありません。 by Y.O
最近新しいPCを買いました。以前はFedoraを使っていたのですが、これを機にWindowsに乗り換えようかと思います。
Windowsでもbashが使いたかったので、WinAVRとCygwinを入れてWinAVRのbinにPATHを通しましたが、avr-gccがランタイムエラーで止まりました。仕方がないので、ソースからコンパイルすることにしました。
CygwinのインストーラからDevelをインストールするのは当たり前として、そのほかにもGMPとMPFRも必要ですのでCygwinインストーラからインストールするか自力でコンパイルしておいてください。その後はLinuxでもAVRとほぼ同じです。ただしroot権限はいらないのでそのままmake installできます。
インストール後は忘れずにPATHを通しましょう。PREFIXの指定がない場合は/usr/local/binにインストールされているはずです。
Read more »
前回のATmega328pとV-USBの続きです。USBaspLoaderはUSBaspと互換のブートローダーです。これがあれば自作のUSB機器をライター無しで書き込むことができます。USBaspと互換があるおかげでavrdude等のUSBaspに対応したソフトウエアがそのまま使えます。
AVRにはソフトウエアだけでUSBデバイスを実現したというV-USBなるものが存在します。これを使うと手持ちのAVRデバイスで手軽にUSBデバイスを作ることができ、数多くのプロジェクトがこれを利用しています。さて、この手軽に使えるドライバですが、ひとつ難点がありましてそのままATmega328pで使おうとするとオートリセットで悩むこととなります。それを解決するためにはusbconfig.hの末尾の#endifの直前に次の一行を挿入しましょう。
#define USB_INTR_VECTOR INT0_vect
これで解決します。原因は外部割り込みの割り込み名に古いタイプの名前が使われていてATmega328pにはその定義がないんですよね。この設定で上書きしてやれば解決できます。by Y.O
Cの仕様では組み込み型(int, short, longなど)のビット幅は決まっていません。環境によってint型のビット幅が32だったり16だったり8だったりします。ですが、マイコンのプログラムをPCに移植する場合などはこれでは困ります。そのため移植性を考えた場合はそれらの型を使う代わりにstdint.hでtypedefされている型を使うべきです。
前回の続きです。
Mac OS XでもAVRの開発を行いたいという強者(物好き)のための情報です。
Windowsのような便利なものがあります。CrossPack for AVRというものでWinAVRと同期してリリースされています。 Read more »
LinuxでもAVRの開発を行いたいという強者(物好き)のための情報です。 Windowsのように便利なものはありません。(ありますが一部バグがあるらしい) なので、自力でパッチをあててコンパイルをします。「GUI(グラフィックがウザイ インターフェース)だとマウスが面倒くさい」という人にはぴったりです。 Fedora 10 で動作確認をしましたが、基本的にどのディストリビューションでも使えます。
AVRマイコンを始める上で参考になるリンク集。