AVRにはソフトウエアだけでUSBデバイスを実現したというV-USBなるものが存在します。これを使うと手持ちのAVRデバイスで手軽にUSBデバイスを作ることができ、数多くのプロジェクトがこれを利用しています。さて、この手軽に使えるドライバですが、ひとつ難点がありましてそのままATmega328pで使おうとするとオートリセットで悩むこととなります。それを解決するためにはusbconfig.hの末尾の#endifの直前に次の一行を挿入しましょう。 #define USB_INTR_VECTOR INT0_vect これで解決します。原因は外部割り込みの割り込み名に古いタイプの名前が使われていてATmega328pにはその定義がないんですよね。この設定で上書きしてやれば解決できます。by Y.O