[戻る]
新着表示

Re: GPS 投稿者:Gokan 投稿日:2016/11/23(Wed) 21:20:02 No.754

電源まわり、5Vが必要、電池は内蔵 などなどが異なるので
そのままという訳にはいきませんね。
でもシリアルインターフェースは同じなのでプログラムは
そのままでも動くかもしれません。ただし、実際に送られてくる
データ形式が異なるかもしれませんから、一部表示が異なる
ようになるかもしれません。


> PIC24F制作例にあります携帯型GPSロガーを製作してみようと思います。日本の人工衛星「みちびき」の電波も拾うため、秋月電子のGPSモジュール「GYSFDMAXB」を使ったGPS受信キット(C-MOSロジックレベル、非同期シリアル信号)を使いたいのですが、GPS-52Dをそのまま入れ替えるだけで利用することはできるのでしょうか。ご教示いただければ幸いです。

GPS 投稿者:梅村和弘 投稿日:2016/11/23(Wed) 18:19:34 No.753

PIC24F制作例にあります携帯型GPSロガーを製作してみようと思います。日本の人工衛星「みちびき」の電波も拾うため、秋月電子のGPSモジュール「GYSFDMAXB」を使ったGPS受信キット(C-MOSロジックレベル、非同期シリアル信号)を使いたいのですが、GPS-52Dをそのまま入れ替えるだけで利用することはできるのでしょうか。ご教示いただければ幸いです。

Re^2: EEP_ROM書き込みエラー 投稿者:坂本 投稿日:2016/11/18(Fri) 16:08:46 No.752


無事書き込みできました


> 恐らく下の投稿者と同じ方だと思います。
> お仕事なら、どこか外注に頼みましょう。
> 受けてもらえるかどうか分かりませんが、紹介してもいいですよ。
>

Re: EEP_ROM書き込みエラー 投稿者:いのっち 投稿日:2016/11/18(Fri) 11:42:03 No.751

恐らく下の投稿者と同じ方だと思います。
お仕事なら、どこか外注に頼みましょう。
受けてもらえるかどうか分かりませんが、紹介してもいいですよ。

> 本ホームページとPIC16F活用ガイドブックを基に、今回初めて
> EEP_ROMの書き込みに挑戦しています。
> PICが16F876と古いので
> EEDATA、EEADRはBank2に、EECON1、EECON2はBank3に配置となっていました。
> プログラムは下記のようにしています。
> 実際にRUNさせた後、秋月のプログラマでEEP_ROMを呼び出しても
> 内容はFFになっています。試しにプログラマでH'20'を記入した後
> RUNさせてもH'20'のままです。
> 何らかの誤りがあると思うのですが、分かりません。
> どなたか、お教え願います。
>
> EEP_WRITE
> BSF STATUS,RP1 ;
> BCF STATUS,RP0 ;Bank2
>
> MOVLW H'10' ;EEPアドレスセット
> MOVWF EEADR ;
> MOVLW H'16' ;テスト
> MOVWF EEDATA ;
> BSF STATUS,RP0 ;Bank3
> BCF EECON1,EEPGD ;
> BSF EECON1,WREN ;Write Enable
> BCF INTCON,GIE ;割込み禁止
> CLRWDT ;WDTリセット
>
> MOVLW H'55' ;
> MOVWF EECON2 ;
> MOVLW H'AA' ;
> MOVWF EECON2 ;
> BSF EECON1,WR ;
> BSF INTCON,GIE ;割込み許可
> WAIT
> BTFSC EECON1,WR ;
> GOTO WAIT ;
> BCF EECON1,EEIF ;書込み完了FLAGリセット
> BCF EECON1,WREN ;書込み禁止
> MOVLW B'11001111' ;
> MOVWF OPTION_REG ;SET OPTION REG再セット(WDT用)
>
> WR_CHK ;書込みチェック
> BSF STATUS,RP1 ;
> BCF STATUS,RP0 ;Bank 2
> MOVF EEDATA,W ;
> BSF STATUS,RP0 ;Bank 3
> BSF EECON1,RD ;
> BCF STATUS,RP0 ;Bank 2
> SUBWF EEDATA,W ;
> BTFSS STATUS,Z ;
> GOTO EEP_WRITE ;エラー時再書き込みへ

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が判らないと言ってきて設定できません
> > > >
> > > > どうすれば内部発振させることが出来るのでしょう?

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が判らないと言ってきて設定できません
> > >
> > > どうすれば内部発振させることが出来るのでしょう?

EEP_ROM書き込みエラー 投稿者:坂本 投稿日:2016/11/16(Wed) 19:02:34 No.747

本ホームページとPIC16F活用ガイドブックを基に、今回初めて
EEP_ROMの書き込みに挑戦しています。
PICが16F876と古いので
EEDATA、EEADRはBank2に、EECON1、EECON2はBank3に配置となっていました。
プログラムは下記のようにしています。
実際にRUNさせた後、秋月のプログラマでEEP_ROMを呼び出しても
内容はFFになっています。試しにプログラマでH'20'を記入した後
RUNさせてもH'20'のままです。
何らかの誤りがあると思うのですが、分かりません。
どなたか、お教え願います。

EEP_WRITE
BSF STATUS,RP1 ;
BCF STATUS,RP0 ;Bank2

MOVLW H'10' ;EEPアドレスセット
MOVWF EEADR ;
MOVLW H'16' ;テスト
MOVWF EEDATA ;
BSF STATUS,RP0 ;Bank3
BCF EECON1,EEPGD ;
BSF EECON1,WREN ;Write Enable
BCF INTCON,GIE ;割込み禁止
CLRWDT ;WDTリセット

MOVLW H'55' ;
MOVWF EECON2 ;
MOVLW H'AA' ;
MOVWF EECON2 ;
BSF EECON1,WR ;
BSF INTCON,GIE ;割込み許可
WAIT
BTFSC EECON1,WR ;
GOTO WAIT ;
BCF EECON1,EEIF ;書込み完了FLAGリセット
BCF EECON1,WREN ;書込み禁止
MOVLW B'11001111' ;
MOVWF OPTION_REG ;SET OPTION REG再セット(WDT用)

WR_CHK ;書込みチェック
BSF STATUS,RP1 ;
BCF STATUS,RP0 ;Bank 2
MOVF EEDATA,W ;
BSF STATUS,RP0 ;Bank 3
BSF EECON1,RD ;
BCF STATUS,RP0 ;Bank 2
SUBWF EEDATA,W ;
BTFSS STATUS,Z ;
GOTO EEP_WRITE ;エラー時再書き込みへ

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: 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が判らないと言ってきて設定できません
>
> どうすれば内部発振させることが出来るのでしょう?

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が判らないと言ってきて設定できません

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

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

- WebForum -