質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

解決済

1回答

3786閲覧

PIC SFRレジスタについて

CatNet

総合スコア9

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

0グッド

0クリップ

投稿2015/03/14 11:12

PICの特殊レジスタについて質問です。
これは、コンフィグレーションとはどう違うのですか?
又、Cの関数とは別のものと思っていいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

>これは、コンフィグレーションとはどう違うのですか?
どの様な意味で、コンフィグレーションを使用していますか?
掲示の状態では、コンフィグレーション という言葉には、結構広範囲な概念と、意味があります。

1.MPLAB まで辿りつけたのであれば、
MICROCHIPのサイトへは、アクセスしたはずです。
そこから、現在使用している(PIC12F683??)に関する
資料、あればライブラリ他を収集します。
展開して、使えるかどうか吟味します。
手に余る物は取りあえず、放置。
MICROCHIPや、秋月他で、使用するチップの、Data Sheet は取得しておき、
ピンアサイン、レジスタマップ位は、印刷して手元においておきます。
慣れて来ると、英文資料も定型部分がある事に気が付くはずです。
有名処のチップを使っていれば、日本語サイトも検索可能です。
技術英語は、辞書検索せずとも、慣れれば、細かい部分は別として、
理解出来るようになります。

2.グーグルを使った資料、サイトの検索方法。
例えば、PIC12F683 と検索ワードを入れ、
解説サイトが無いかどうか、探します。

PIC12F683のピン配置とメモリ構造
http://homepage3.nifty.com/mitt/pic/pic683_1.html
ここでは、基礎的な部分が解説されています。
コンフィグレーションが、コンフィグレーションビット の設定を
指しているのであれば、説明もあります。
コンフィグレーションビットの設定は、注意して行う部分です。

はじめてのPICマイコン 第1回超入門編 | マルツオンライン
http://www.marutsu.co.jp/pc/static/large_order/begin_pic

他のサイトなども、自分で探せるようになる必要があります。
PIC12F683 初期化

>又、Cの関数とは別のものと思っていいのでしょうか?
3.Cは、処理系としての機能の殆どを、ヘッダーと、ライブラリーで提供します。
つまり、関数などとして、用意されているかどうかは、
MPLAB と、サポートチップの情報を探したりして、ライブラリ、ヘッダーがあるかどうかで、
それを正しく使用できるように、設定したかどうかになります。
無い物は、自分でヘッダーなり、ライブラリー、コードを書き、機能を作成する。
というのが、Cで、マイコンと付き合う時の基本姿勢です。
なので、1.で MICROCHIP のサイト他で、資料やライブラリを探してみたら
と云う事になります。

何処かのサイトには、PICの歴史情報があったはずです、
目に付いたら、一度は読んでおくと、過去の経緯の上で、
こんな構成になった、という理解の助けになるかも。

投稿2015/03/14 12:19

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CatNet

2015/03/15 11:54

返事、遅れてすみません。回答ありがとうございます。 >どのような意味で、コンフィグレーションを使用していますか?  PIC内ハードの設定という意味で使ってます。 別になってしまうのですが、レジスタをこういう値で設定するとこうなるよ的なことを書いてあるのはどこですか?データシートに書いてありますか? あと、自分がヘッダーになり、ライブラリー、コードを書き、機能を作成するというのは、どういう意味ですか?また、どうやって作成するのですか?
daive

2015/03/15 13:14

>レジスタをこういう値で設定するとこうなるよ的なことを書いてあるのは >どこですか? >データシートに書いてありますか? Data Sheet に書いてありますし、 (Data Sheet は、安直な処では、   http://akizukidenshi.com/catalog/g/gI-00801/  から、入手可能、出来れば、MICROCHIPのサイトから、関連情報含め  入手した方が良いです。) PIC12F683のピン配置とメモリ構造 http://homepage3.nifty.com/mitt/pic/pic683_1.html の、PIC12F683のコンフィグレーションビット 他にも、書いてあります。 >自分がヘッダーになり、ライブラリー、コードを書き とは、書いていません。 「無い物は、自分でヘッダーなり、ライブラリー、コードを書き、機能を作成する。」 と、書いています。 >どうやって作成するのですか? エディターなどでコードを書き、コンパイラーでライブラリを作成します。 具体的には、ヘッダーを読んだり、ライブラリを読んだりして、 MPLAB で使える様に作成します。 MPLAB® X統合開発環境(IDE) http://www.microchip.com/pagehandler/ja-jp/family/mplabx/ 12F683 http://www.microchip.com/search/searchapp/searchhome.aspx?id=2&q=12F683 12F683 Data Sheet http://www.microchip.com/TechDoc.aspx?type=datasheet&product=12F683 ’ Cでは、極論すれば、付属のヘッダーや、ライブラリを使わなくても良いし、 完全独自実装しても良いのです。 そんな、面倒な事をする事は、現在では無くなっていますが、 古くは、ROM化するのに、 自前でライブラリを、用意するのが、当たり前だった時代もあります。
CatNet

2015/03/16 21:22

Cのことはわかったのですが、 やはりレジスタの値がどこにあるのかデータシートも見たのですがどこに書いてあるのかわかりません。もしかすると、前のほうに書いてあるINDF、TMR0とかですか?だとしたら、マルツオンラインのプログラムに書いてあるような16進数の値は何なんですか?
daive

2015/03/17 03:18

>前のほうに書いてあるINDF、TMR0とかですか?だとしたら、マルツオンラインのプログラムに書いてあるような16進数の値は何なんですか? BIT / BYTE に付いて理解出来ていますか? ポートのアクセス、各種設定は、 1.多くの場合ビット単位で行ういます。   しかし、読出し、書込み単位がバイト、ワード単位の場合が普通なので、   各ビットの状態を示す、定数名や、ビットをOR/ANDして使用する事が普通。 2.アクセス手順、設定手順がある。 16進数で書いてあるからといって、 16進数で、何かするとは限らない。 ’ PIC12F683を使う上での注意事項 http://homepage3.nifty.com/mitt/pic/pic683_2.html 簡単な部分ばかりですが、   MOVLW 07h   MOVWF CMCON0 ;GP2-0はデジタルIO の意味がわかりますか? http://homepage3.nifty.com/mitt/pic/pic683_1.html#conf CON0レジスタ PIC12F683のレジスタ (特殊レジスタ:SFR) http://homepage3.nifty.com/mitt/pic/pic683_1.html#conf ’ 秋月ダウンロードの、PIC12F683 Data Sheet では、 http://akizukidenshi.com/download/ds/microchip/pic12f683.pdf P-5 : Table of Contents 、 目次、目次を視る(見るではない、視る)意味は、何が書いてあるか概要を掴む事 P-9 : 2.0 MEMORY ORGANIZATION、メモリーマップ P-10 : 2.2.1 GENERAL PURPOSE REGISTER FILE、レジスターマップ P-11 : TABLE 2-1: PIC12F683 SPECIAL REGISTERS SUMMARY BANK 0、バンク0のテーブルリスト P-12 : TABLE 2-2: PIC12F683 SPECIAL FUNCTION REGISTERS SUMMARY BANK 1、バンク1のテーブルリスト P-13 ~ : 個別のレジスタ毎の解説 P-169 : INDEX , INDEX を視る意味は、調べたい事柄がどの辺に書いてあるか、探すため。     目次よりは、細かい項目が書かれているので、内容を調べる時の参考になる。 ’ ここら辺を見て意味が解らなければ、 PIC以前の問題で、 IOコントローラ、IOチップをプログラムした事ありますか? マイコン使った事ありますか? ⇒無いのであれば、Arduino / Pinguino / MBED などから  と、お勧めしましたが、  PICマイコンに拘りがある様子でしたし、使った事があるのか思っていましたが、  違ったみたいな御様子ですねぇ。 機械語、アセンブラ解りますか? ⇒解らなくても可ですが、小メモリのマイコンでは、どのみちアセンブラが必要  PIC アセンブラの勉強からしないとダメかな? う~~ん、全体的に、マイコン関係を扱う為の基礎が無い御様子、 PICを扱う為のスタートラインに立てて居ないようです。 ’ 番外:Octadecimal HEX:hexadecimal DEC:decimal NIBBLE:単位としては、殆ど使わないが、      考え方としては、意外と重要、16進数1桁 OCT:octal、マイクロコードの単位が    octal 単位だったりするCPU:8080/Z80系    機械語をoctal単位で、眺めるとレジスタ他の    操作の様子が解る。 BIN:Binary MSB LSB:Most Significant Bit / Least Significant Bit endianness: byte order Big Endian Little Endian ’ PICの、byte order が何であるか調べて MSB LSB の関係が、 BIT7:MSB / BIT0:LSB なのか、 BIT7:LSB / BIT0:MSB よく理解しておきます。 ’ PIC12F683 初期設定 https://www.google.co.jp/search?hl=ja&q=DECIML&lr=lang_ja&gws_rd=ssl#lr=lang_ja&hl=ja&tbs=lr:lang_1ja&q=%EF%BC%B0%EF%BC%A9%EF%BC%A3%EF%BC%91%EF%BC%92%EF%BC%A6%EF%BC%96%EF%BC%98%EF%BC%93%E3%80%80%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A 例えば、 PIC12F683を使うための準備と留意点 http://homepage3.nifty.com/mitt/pic/pic683_2.html と、 PIC12F683のピン配置とメモリ構造 http://homepage3.nifty.com/mitt/pic/pic683_1.html のサイトの別ページに書いてあります。 この様に情報を、御自分で探して調査したり、検索したり Data Sheetを読んだりできなければ、マイコンを使う為の スタートラインに立っていない事になります。 先はながそうですねぇ。 ’
daive

2015/03/17 03:23

誤字訂正:他にもあるかも。 1.多くの場合ビット単位で行ういます。⇒1.多くの場合ビット単位で行います。 PICの、byte order が何であるか調べて⇒削除  PIC の場合は、BIT7:MSB / BIT0:LSB の筈。
daive

2015/03/17 05:33

【初めの一歩的に】 PINアサイン PIC12F683のピン配置と、各ピンの使い方 http://homepage3.nifty.com/mitt/pic/pic683_1.html 秋月12F683 http://homepage3.nifty.com/mitt/pic/pic683_1.html P-4 : 8-Pin Diagram , TABLE 1: 8-PIN SUMMARY ' 1.↑これを読んで、Pin 1 / 8 以外は、何に使用可能か理解してください。   12F683 : 8 Pin パッケージ、Pin 1 : VDD / Pin 8 : VSS / 残り : 6 Pin   入力、出力を決めます。   総数が 4 Pin 以内であれば、外部クロックが選択可能です。   総数が 5 Pin 以上であれば、内部クロックか、マトリックス入出力や、   外部ラッチ回路。外部回路を用意する位なら、Pin数の多い物へ変更。   但し、     入力: GPIO最大6 Pin 、 GP0 ~ 5 割当可     出力: GPIO最大5 Pin 、 GP0~2、GP4、5 割当可、GP3割当不可:入力専用   を超えない事、     ※Pin 4:GP3 は、Vpp/MCLRとして使用するので、可能であれば未使用      とするのが望ましいのかも。      チップ構成上から、優先的にGPIOとして割り当てるのは、      Pin 7:GP0 / Pin 6:GP1 / Pin 5:GP2 となり。3 Pin を超える      入出力がある場合は、      何かしらの機能とのトレードオフとなる。 2.次に、内部クロックで使用するか、外部クロックで使用するか決めます。   Pin 2 / Pin 3 を如何するかは、コンフィグレーションビット   FOSC2-0 で設定する。   外部クロック: Pin 2 / Pin 3 は、GPIO使用不可          クリスタル発信子+コンデンサ、クリスタルオッシレータ、           セラロック:レゾネータ、抵抗+コンデンサ          抵抗+コンデンサは、一番精度が悪い、高精度にする為には、            温度係数の安定した高価な部品が必要だが、価格的に意味なし。          セラロック、レゾネータは、精度が高くない。物によっての            バラつきがあるので、余分に購入して選別した方が良いかも。          クリスタル発信子+コンデンサは部品精度による。          クリスタルオッシレータの高精度品は、高価。   内部クロック: Pin 2 / Pin 3は、GPIO使用可          内部回路で発信するので、精度が高くない用途でOKな          場合に選択する。   外部クロック、内部クロックの別は、外部機器との信号上のやり取りに、   時間要素があるかどうか、で決める。 3.入力、出力のピンアサインを決める。   コンフィグレーションビットを決める。   その他のレジスタの設定を決める。   ⇒知らないと結構面倒なので、書籍連動キットなどで、作成しながら学習すると、    理解が早まります。 4.最小限のテストプログラム、機能確認程度。   赤外線LEDの点滅であれば、まずは、普通の緑、赤、青、橙を使って、   目視できるようにする。   この時に、入力:タクトSW、出力:目視可能色LEDでの構成、プログラムが   最小限かもしれません。 5.徐々に、応用編のプログラム機能を追加して確認する。   同時に、赤外線LEDの点滅を確認する方法も考えたり、   赤外線受信素子を使った機器を用意したり。 6.余計な部分、無駄な部分が無いか確認して、最終形へ。 キットであれば、 プリント基板で作るPIC応用装置 http://akizukidenshi.com/catalog/g/gS-03221/ プリント基板で作るPIC応用装置、関連部品 http://akizukidenshi.com/catalog/c/cevent1/ 書籍にも、基盤は付属しますが、基盤単体を 買って、そちらを使った方が良いです。 片面基盤ですので、ランドが剥がれやすいので、 組換えには向きません。 こちらのキットは、全部品購入して評価済みです。 全体評価としては、5段階評価で、3かなぁ。程度、です。 「プリント基板で作るPIC応用装置」 赤外線解析リモコン パーツセット に関しては、基礎的な部分だけです。リモコンへ応用するのは難しいかも。 コード他は、書籍と出版元(株式会社ラトルズ(rutles))で入手可能です。 ’ pic 赤外線リモコン 送信 https://www.google.co.jp/search?hl=ja&q=pic+%E8%B5%A4%E5%A4%96%E7%B7%9A%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3+%E9%80%81%E4%BF%A1&lr=lang_ja&gws_rd=ssl
daive

2015/03/17 05:53

外部クロック、内部クロックの別は、外部機器との信号上のやり取りに、   時間要素があるかどうか、で決める。 補足:決める為の要素は、他の要因もあります。    コスト、楽が出来るかどうか、    仕様を満足するかどうか、など。 ’ PICのページ Version 1.0 http://homepage3.nifty.com/ARTWEB/pic1.htm 12F683 の回路例、アセンブラ、Cのコード例(古いので参考程度かも)
CatNet

2015/03/17 10:48

まず、PICでやりたい理由は回路を最小限にしたいからです。 あと、よく使われている感じだったからです。 私は、マイコンに触れたのは今回が初めてです。 あと、IOコントローラとかのプログラミング経験もありません。 データシートを見てたぶんここなんだろうなっていうのはわかるんですが、何しろ基礎がないもので…。 やはり、Cよりアセンブリからやったほうがいいですよね…。 MOVLW 07h   MOVWF CMCON0 ;GP2-0はデジタルIO の意味も分かりませんでも、ピンの設定ですよね? こういうのの意味とか書いてあるサイトとかってありますかね? 探していたんですけど見つからなくて。
CatNet

2015/03/17 10:56

ちなみに、Bitとかはわかります。
daive

2015/03/17 12:38

>やはり、Cよりアセンブリからやったほうがいいですよね…。 と、悩むと思いまして、 ’ PICのページ Version 1.0 http://homepage3.nifty.com/ARTWEB/pic1.htm 12F683 の回路例、アセンブラ、Cのコード例(古いので参考程度かも) ’ を、書いておきました。 丁度良い具合に、アセンブラと、Cの同一機能のソースがあるようです。 他にも、サイト例は掲示済みですが、 サイトの安全性が心配でしたら、 グーグルで、同じサイトを検索してみてください。
CatNet

2015/03/19 09:26

もうちょっと、調べてみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問