• ベストアンサー

PIC12F1822で内部クロックが使えない

表題のとおりPIC1F1822+CCS-Cで開発していますが、内部クロックの32MHzが使えません。 setup_oscillator(OSC_32MHZ);と記載した行でエラーが出て16MHzだと動きます。 C:\Program Files\PICC\Devicesにある12f1822.hを見てみるとOSC_32MHZが存在しないことに気がつきました。このコンパイラでは32MHzに対応していないんでしょうか?どなたかご教授願います。

noname#163501
noname#163501

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

  • ベストアンサー
  • pyonmae
  • ベストアンサー率64% (40/62)
回答No.1

こんにちは。 データシートをざざっと見ただけなので、あまり自信はないですが・・・。 32MHzで動かしたかったら、内蔵オシレータを8MHzにして、それを×4するパスを通す必要があるみたいです。 データシートの5章をよーく読んでみてください。

noname#163501
質問者

お礼

早速の御回答ありがとうございます。小生英語は苦手でよーく読むことは出来ません。というわけで他のサイトの記事を参考に解決策を見つけたので記載しておきます。 #include <12f1822.h> #fuses INTRC_IO,NOWDT,NOCPD,PROTECT,PUT,NOMCLR,BROWNOUT #use delay(clock=32000000) //メイン処理 void main(){ //クロック設定 setup_oscillator(OSC_8MHZ|OSC_PLL_ON); while(true){ } }

関連するQ&A

  • PIC16FF886のクロックについて

    PIC16FF886に外部発振器をもうけてクロックを入れたいと思っているのですが、 CONFIGで_EC_OSCを選び、osccon = 01101000b;と設定しています。  しかし、外部クロックを加えなくても内部発振しているようです。  理由がわかりません。どなた御教授ねがえないでしょうか?  16F648などでは、外部発振でクロックをくわえないと動作しないのですが。  16F886では何かほかに設定しないといけないのでしょうか?

  • picのpwmの周期について

    pic16f690にccsのコンパイラでコードを書いています。 pwmで60Hzの周波数を作成したいのですが、可能なのでしょうか?(dutyは50%) また、可能なら、その時はどのようなコードで実現できますでしょうか? クロックは20MHzです。

  • pic16FのコンパイルにCCSのCコンパイラ

    pic16FのコンパイルにCCSのCコンパイラをMPLABに統合した環境で使用しています。 大文字と小文字の区別をつけることは出来ないのでしょうか? 誰か教えてください。

  • PIC 外部クロックの使用について

    PIC18F24K20というPICを使用しています。 外部からクロックを供給してPICを動作させようとしているのですが、13.56MHzのクロックを入力して動作するにはコンフィギュレーションビットをどのように設定すればいいでしょうか?

  • PIC18FのUART通信について

    こんにちは ただいまGPSとSDカードを使ったロガーをPIC18F2550で作成しております。 GPSとSDを使うため、UARTのピンが2つ必要ですがPIC18F2550にはTX/RXは一つずつしかありません。 そこで,ソフトUARTで解決したいのですが, CCS Cコンパイラではソフトウェアシリアル通信の機能があるみたいのですが 現在自分が使っているC18だといくら探しても見つかりませんでした。 C18もソフトUART機能はあるのでしょうか?

  • PIC18F4550について

    現在PIC18F4550の回路基盤を製作しておりますが、何分電子工作が始めてなもので、わからない点がいくつかあります。下記に挙げさせていただきますので、どれかわかります点がありましたらご回答いただけたらうれしく思います。 ・48MHzで駆動させるにはXTALは何MHzのものを選択すればよいのでしょうか?ネット上で見つけたものでは、20MHzを使用していながら内部では48MHz駆動と書いてあるものがありましたが、どうにもよくわかりません。 ・PICを3台くらいで、I2C通信を行いと考えております。その際半導体リレーでSDL,SDAの信号線をスイッチング(ON、OFF)し、接続するPICを切り替えたいと考えております。ですが、そのような事は可能でしょうか?

  • PICのデバックに関して

    PICのデバックモードで悩んでいます。 デバック環境 ●MPLAB Ver.8.53 ●ICD2 及び PicKit3 で評価 ●CPU PIC18F452、PIC18F45k20、PIC16F688、PIC16F690 のそれぞれのCPUで評価 回路仕様 ●1個のLEDをCPUのポートに接続し、ON/OFFさせるテスト基板を用いて、  それそれのCPUで、テストしました(CPUだけ変えてその他の回路は変更無し)。 ●PIC16F、PIC18Fとも内部クロックを使用しています。 ●CPUの電源は、ICD2 または PicKit3から供給しています。 PIC18Fシリーズでは、C言語やアセンブラで書いたプログラムは、MPLABを用いて、実機デバッグテストが可能なのですが、 同じ内容のプログラム(CONFIG記述のみ変更)で、PIC16F688 またはPIC16F690 を実機デバッグテストすると、 (1)ICD2の場合:ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information. (2)PicKit3の場合:pk3err0040: the target device is not ready for debugging. といったエラーが表示され、デバックモードに入ることが出来ません。 本エラーは、コンフィグの設定、配線の間違い、クロックが入っていない場合等に起こるエラーとありましたが、これではないと考えています。 <確かめたこと> (1)Programモードで、コンパイル、リンクは問題なく実行でき、CPUにプログラムを書き込むことも出来ます。  シュミレーションモードに入ることも出来ます。この点では16Fも18Fも問題がありません。  しかし、実機デバッグモードに入ろうとすると、16F(PIC16F688、PIC16F690)では、入ることができません。  実機デバッグモードでは、コンパイル、リンクはエラー無く実行可能です。「RUN」でスタートを掛けると上記(1)、(2)のエラーメッセージが表示されます。 (2)MPLABのCPUの選択は、各々間違ってはいません。 (3)配線も間違っていませんでした。回路自体にも問題があるとは思えません。 (4)PIC16Fでは、CコンパイラはCCS または Hi-TECHを使用しましたが、結果は同じでした。  CCSでは、 #INCLUDE <16F690.h> #DEVICE ICD=TRUE ;ICD2を使用する場合に、NOP命令を入れる様に記載がありましたが、だめです。  また、  アセンブラで、 #INCLUDE <p16F690.inc> __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF   ORG 0   nop      と入れましたが、だめでした。 コンパイラには無関係(Cやアセンプラの言語に関係がない)で起きているようです。 MPLABの設定で、デバイスの選択以外に、16Fと18Fで設定が異なる部分があるのでしょうか?

  • PICでの入力カウントについて

    PICを最近はじめました。 スイッチを10回押せば、出力がONするようなプログラムを作るにはどうすればよろしいでしょうか? PICは16F819で、コンパイラはCCS社のPCMを使用しています。 わかる方、よろしくお願いいたします。

  • PICのクロック周波数の決定は?

    手元に、PIC18F2550を使って周波数をカウントする装置があります。 これの基準クロックに16MHzのクリスタルオシレータが使われているのですが、これの安定性や精度を上げるのはどうすればよいでしょうか。 今使っているのは、16.000と書いてありますが、これを16.000000などというように、精度を上げることは意味がありますでしょうか。 また、そもそもの周波数がPICは48MHzまで対応しているので、水晶の発振周波数を40MHzなどにすることも意味がありますでしょうか? 設計の考え方について、教えていただけませんでしょうか。

  • PIC16F84AのデバイスでC言語を用いて音を出したい

    PIC16F84AデバイスでCCS社のCコンパイラーを用いて音を出したいのですが、C言語の記述が分かりません。 音は、圧電ブザーで、Bポートの1つを使います。 Aポートの1つにスイッチを取り付け、スイッチが入ったら、音を鳴らしたいのですが、C言語で音階が記述できるんでしょうか? 簡単で良いので、C言語で、音を鳴らす記述を教えていただけないでしょうか?

専門家に質問してみよう