[戻る]
一括表示

16f87で内部発振させたい 投稿者:negishi 投稿日:2016/11/14(Mon) 21:13:35 No.743

#include<16f87.h>
#fuses intrc
setup_timer_0(rtcc_internal)
setup_oscillator(osc_4mhz)
#use delay(clock=4000000)
main()

とこんな感じなのですが
setup_timer_0(rtcc_internal)
setup_oscillator(osc_4mhz)
でエラーが出てしまいます

またoscconを直接0x60で書いても
oscconが判らないと言ってきて設定できません

どうすれば内部発振させることが出来るのでしょう?

Re: 16f87で内部発振させたい 投稿者:Gokan 投稿日:2016/11/16(Wed) 09:21:23 No.744

まずはC言語の書式を勉強してください。


> #include<16f87.h>
> #fuses intrc
> setup_timer_0(rtcc_internal)
> setup_oscillator(osc_4mhz)
> #use delay(clock=4000000)
> main()
>
> とこんな感じなのですが
> setup_timer_0(rtcc_internal)
> setup_oscillator(osc_4mhz)
> でエラーが出てしまいます
>
> またoscconを直接0x60で書いても
> oscconが判らないと言ってきて設定できません
>
> どうすれば内部発振させることが出来るのでしょう?

Re^2: 16f87で内部発振させたい 投稿者:negishi 投稿日:2016/11/16(Wed) 18:08:41 No.746

>includeの前の#は半角じゃなかったのとsetup_oscillator(osc_4mhz)の後に;がなかったはまずいと思いますが(入れるとコンパイルエラーが増えるのでない方がいいと思ったもので)

他はヘッダーファイル16f87.hの中身とCコンパイラのリファレンスマニュアル ヴァージョン4 August 2007を参照しながら書いています
またbuilt-in-functions setup_oscillator(mode,finetune)とマニュアルにはあるのでfinetuneを試しに0で入れてみましたが駄目でした finetuneの範囲は-31から+31

もちろんmain()以下はありますが、必要無いと思ったので省略してます


> まずはC言語の書式を勉強してください。
>
>
> > #include<16f87.h>
> > #fuses intrc
> > setup_timer_0(rtcc_internal)
> > setup_oscillator(osc_4mhz)
> > #use delay(clock=4000000)
> > main()
> >
> > とこんな感じなのですが
> > setup_timer_0(rtcc_internal)
> > setup_oscillator(osc_4mhz)
> > でエラーが出てしまいます
> >
> > またoscconを直接0x60で書いても
> > oscconが判らないと言ってきて設定できません
> >
> > どうすれば内部発振させることが出来るのでしょう?

Re^3: 16f87で内部発振させたい 投稿者:Gokan 投稿日:2016/11/17(Thu) 09:05:47 No.748

#useの文は宣言部で書けますが、setupは関数ですから
宣言部ではなくmain関数の中に書く必要があります。


> >includeの前の#は半角じゃなかったのとsetup_oscillator(osc_4mhz)の後に;がなかったはまずいと思いますが(入れるとコンパイルエラーが増えるのでない方がいいと思ったもので)
>
> 他はヘッダーファイル16f87.hの中身とCコンパイラのリファレンスマニュアル ヴァージョン4 August 2007を参照しながら書いています
> またbuilt-in-functions setup_oscillator(mode,finetune)とマニュアルにはあるのでfinetuneを試しに0で入れてみましたが駄目でした finetuneの範囲は-31から+31
>
> もちろんmain()以下はありますが、必要無いと思ったので省略してます
>
>
> > まずはC言語の書式を勉強してください。
> >
> >
> > > #include<16f87.h>
> > > #fuses intrc
> > > setup_timer_0(rtcc_internal)
> > > setup_oscillator(osc_4mhz)
> > > #use delay(clock=4000000)
> > > main()
> > >
> > > とこんな感じなのですが
> > > setup_timer_0(rtcc_internal)
> > > setup_oscillator(osc_4mhz)
> > > でエラーが出てしまいます
> > >
> > > またoscconを直接0x60で書いても
> > > oscconが判らないと言ってきて設定できません
> > >
> > > どうすれば内部発振させることが出来るのでしょう?

Re^4: 16f87で内部発振させたい 投稿者:negishi 投稿日:2016/11/17(Thu) 19:47:25 No.750

>>関数はmain関数内に書かなければならなかったのですか
勉強になりました。コンパイルも成功し無事プログラムが動きました
ありがとうございました。

#useの文は宣言部で書けますが、setupは関数ですから
> 宣言部ではなくmain関数の中に書く必要があります。
>
>
> > >includeの前の#は半角じゃなかったのとsetup_oscillator(osc_4mhz)の後に;がなかったはまずいと思いますが(入れるとコンパイルエラーが増えるのでない方がいいと思ったもので)
> >
> > 他はヘッダーファイル16f87.hの中身とCコンパイラのリファレンスマニュアル ヴァージョン4 August 2007を参照しながら書いています
> > またbuilt-in-functions setup_oscillator(mode,finetune)とマニュアルにはあるのでfinetuneを試しに0で入れてみましたが駄目でした finetuneの範囲は-31から+31
> >
> > もちろんmain()以下はありますが、必要無いと思ったので省略してます
> >
> >
> > > まずはC言語の書式を勉強してください。
> > >
> > >
> > > > #include<16f87.h>
> > > > #fuses intrc
> > > > setup_timer_0(rtcc_internal)
> > > > setup_oscillator(osc_4mhz)
> > > > #use delay(clock=4000000)
> > > > main()
> > > >
> > > > とこんな感じなのですが
> > > > setup_timer_0(rtcc_internal)
> > > > setup_oscillator(osc_4mhz)
> > > > でエラーが出てしまいます
> > > >
> > > > またoscconを直接0x60で書いても
> > > > oscconが判らないと言ってきて設定できません
> > > >
> > > > どうすれば内部発振させることが出来るのでしょう?

- WebForum -