• ベストアンサー

interruptの使い方? PIC10F200

10F200でRCサーボの勉強をしたいのですが XC8コンパイラーを使用していて interrupt functions not implemented for 12 bit PIC というエラーメッセージで割り込みが 使えないようなんですが、 10F200では使えなくて 別の方法があるのでしょうか? 高校で基本を学んだ程度の初心者なので、 分からないことだらけです おねがいします

質問者が選んだベストアンサー

  • ベストアンサー
  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.5

割込みはありません。 ではどうするかですが、 まず普通に考えれば、タイマーがオーバーフローするのをポーリングしてチェックすることになります。 といってもオーバーフローフラグのようなものもありませんので、 「まず最上位bitが1になるのを待ち、次に最上位bitが0になるのを待つ」 という手続きをとります。 もしくはプリスケーラーで十分に遅くしてあれば、「TMR0が0」のチェックだけでOKです。 これでタイマーが0になるタイミングに「おおよそ」合わせられます。 アセンブラなら正確に合わせることもできますが、C言語では無理なので割愛します。 またもう一つ邪道な手段として、ウォッチドッグタイマはどんな状況でもリセットを掛けられるので、一種の割込みとして機能します。 リセットで先頭に飛ぶしかできず、最小でも18ms単位でしかかけられず、時間は状況により大きくばらつきますが、上手く使えれば面白いことができそうです。 参考までに、どの機種なら割込みが使えるかですが、ちょっと複雑です。 まずPICには ・命令幅12bitの「ベースライン」 ・命令幅14bitの「ミッドレンジ」 ・その他もっと高級なもの があり、ベースラインには割り込み機能がありません。(ただしEnhancedベースライン除く) そしてPICの型番には ・PIC10Fxxx ・PIC12Fxxx ・PIC16Fxxx ・その他もっと高級なもの がありますが、この10,12,16はI/Oピンの数で分かれており、ベースライン・ミッドレンジの区切りとは無関係です。 少なくとも今のところ、型番のFの次の数字で判別が可能で、 10F2xx,12F5xx,16F5xxがベースライン(Enhanced含む)です。 Enhancedベースラインはまだマイナーなので無視するとすれば、割込みを使うにはこれらの型番以外のものにする必要があります。

Gen_bamboo
質問者

お礼

ありがとうございます 次に買う時の参考になります ここまで分かり易く、TMR0の使い方を説明してあるサイトが みつからなかったので嬉しいです

その他の回答 (4)

  • tadys
  • ベストアンサー率40% (856/2135)
回答No.4

PIC10F200には割り込み機能が有りません。 PIC10F320/322には通常の割り込みと、ポートの変化による割り込みのあります。

Gen_bamboo
質問者

お礼

ありがとうございます 10f320 10f322にはあったんですか 初心者だから安いものをまとめ買いってのは 失敗でした

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.3

PIC10F200はタイマー割り込みが使えまえん (割り込み機能が無い) またプログラムエリアが、256ステップしか無いので、アセンブラでプログラムしたほうが良いと思われます CALLは2段まで RAMは16バイト、システムクロック4MHzなので1命令の実行時間 1μS プログラムでWAITルーチンを作り、サーボパルスを発生させます (1mS - 1.5ms中点 - 2mS) 必要があれば、ポートを読み込みSWの状態でパルス幅を変更します http://www37.tok2.com/home/aoijf2/pic/routine.html そして18mS WAIT してからサーボパルス発生に戻りループします http://akizukidenshi.com/download/k1809_manual.pdf http://akizukidenshi.com/download/ds/microchip/PIC10F200_202_204_206_JP.pdf

Gen_bamboo
質問者

お礼

ありがとうございます そうなんですか アセンブラかCか選ぶための簡単な評価方法が 分からなかったので、ありがたいです

noname#215107
noname#215107
回答No.2

ついでに言いますと、10Fは初心者にはお勧めしません。 無人島に流れ着いた廃材で家を建てるようなサバイバル精神のある人にのみ勧めます。 12F以上をおすすめます。 もっと言えば、8ビットなら、PIC18が快適ですよ。

Gen_bamboo
質問者

お礼

ありがとうございます 基本を16F系で学習したので、 出来るだけ近いものでもう少し勉強しようと思います となると12fになるのですかね?

noname#215107
noname#215107
回答No.1

その通りですね。 PIC10Fには、タイマーはありますが、一切割り込み機能がありません。 割り込みを使いたかったらPIC12Fを使ってください。

Gen_bamboo
質問者

お礼

ありがとうございます 12fからは割り込みあるんですね 次からは データシート読んでから買うようにします

関連するQ&A