X



トップページ電気・電子
1002コメント341KB

初めてのPIC 0x0f

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001774ワット発電中さん
垢版 |
2018/05/01(火) 23:12:13.97ID:o4U5k+Rn
PICをさわるのは今日が初めて、という超初心者のためのスレです。
  (O>――<O)    PIC選び、PICを使った回路は、誰でも最初は不安なものです。
  / (・) (・) ヽ    恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
  ○ /▼\ ○    質問のしかたは、初心者質問スレの発言1を見てくださいね。
  |(ヽ二フ ) |    
  /  ̄ ̄ ̄ ヽ  
 f ヽ     / |  PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
 ヽ \  / ノ    ・PIC専用のスレ
  | \_ )(_/ !       本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
  |       |       ここの話がわかるようになれば、あなたはもう一人前のPICerです。
  |       |    ・マイコンソフト 悩み事相談室
  |   | ̄ ̄|  |      マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
 (_ノ    ヽ_)

 質問する時のコツ
  ・性格の悪い回答者はスルーしよう(相手すると逆効果)
  ・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
  ・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
  ・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
  ・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。


 必要なソフトなど(基本無料)
統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
コンパイラ (XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers (高機能版は有料)
コード生成プラグイン (MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
マイクロチップ ライブラリ (MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications


 必要なハードなど
初心者はPIC16F1、PIC18F1以降の型番で始めると無理なく始められます。
プログラムの書き込みには書き込み器が必要です。持っていない場合はPICkit3(中華クローンでもまず大丈夫)を使いましょう。
PIC一覧、スペック検索 ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005


 さ、質問どうぞ〜っ
  0x0e 2018/02/13〜  ttps://rio2016.5ch.net/test/read.cgi/denki/1518524799/
  0x0d 2017/10/25〜  ttp://rio2016.5ch.net/test/read.cgi/denki/1508935254/
  0X0C 2017/07/27〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/
  0x0B 2017/05/08〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1494235320/
  0x0A 2017/01/04〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1483498857/
  0x09 2016/09/07〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1473238791/
  0x08 2016/04/30〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
  0x07 2016/02/05〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
  0x06 2015/07/18〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
  0x05 2015/04/07〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
  0x04 2015/01/02〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108
0873774ワット発電中さん
垢版 |
2018/06/23(土) 13:59:07.01ID:s1oNYlPs
>>869
別に肯定的意見なんていらないのですよ。
ここに来る人は(否定する野次馬をのぞけば)それぞれに肯定的理由があるから来てるんだし。

否定派も肯定的理由を聞けば納得するだろう、という主張もありますが、そんなことを言ってる人が本気でそう思ってるとしたら甘いですね。
テレビであるタレントの顔を見るだけでムカムカする、と言ってる人に、その人がいかに美人なのかを説明したって心変わりはしません。
0874774ワット発電中さん
垢版 |
2018/06/23(土) 15:14:34.60ID:ja1wLIk9
初めてスレだから
始めら前にちゃんと悪い面は知っておいた方が良いよな
0875774ワット発電中さん
垢版 |
2018/06/23(土) 16:34:01.28ID:Hu705My2
>>866
>>865とか>>867のような書き方をする奴とは議論にはならないだろ
ああ言えばこう言うの逃げを打つだけなので相手をするだけ時間の無駄
0876774ワット発電中さん
垢版 |
2018/06/23(土) 16:40:05.43ID:eAd/b7nv
>>873
>テレビであるタレントの顔を見るだけでムカムカする、と言ってる人に、その人がいかに美人なのかを説明したって心変わりはしません。
CPUの好き嫌いとタレントの好き嫌いの判断は同じような範疇なのでしょうか?
そんな訳の分からない、曖昧な理由で使うCPUを決めているのでしょうか?
私にはそうは思えません。

PICを嫌っている人は嫌いな理由がちゃんとあります。
それは美人/不美人の判定のような感覚的なものではありません。
たとえば私の場合、いくつか8ビットPICを嫌いな理由がありますが、
一つだけ挙げるとすれば、タイムスライスが出来ない、です。
0877774ワット発電中さん
垢版 |
2018/06/23(土) 16:40:15.49ID:ja1wLIk9
5 :774ワット発電中さん [sage] :2018/05/02(水) 01:20:40.75 ID:qrQAGo28
PICは他メーカーの同規模のMCUに比べて非常にエラッタ(バグ)が多いので注意
機能が使い物にならないものやスペックの性能が出ないものも多く存在する
メーカーが把握しつつも公開されてないなかったりする

6 :774ワット発電中さん [sage] :2018/05/02(水) 01:28:19.06 ID:qrQAGo28
本当にPICが適切か良く考えてから選びましょう

主な競合MCU
8bit AVR / STM8
16bit RL78 / MSP430
32bit STM32 / LPC / Kinetis / RX
0878774ワット発電中さん
垢版 |
2018/06/23(土) 17:04:58.40ID:s1oNYlPs
○○ができない→○○を使おうとしている人には貴重な情報。

○○が他のCPUに比べて多い→他のCPUと比較した根拠が必要。

エラッタに関しては、他のCPUと比較したときの客観的データが出てきたことがない。ばかばかしい。

逆に、特に直接のメーカーサポートが受けられないアマチュアユーザーの場合、
国内外で自分が使っているときに知りえた情報を掲示板に書くようなようなユーザーが
アンチも含めて多いPICはエラッタ情報を共有できて良いんじゃないかとさえ思う。

俺も仕事だとほかのCPUを使ってるけど、そこで知りえた問題はネットに書いたりしないよ。
そういう意味ではアマチュアユーザー「も」多く、掲示板を含めたネットでの情報交換が活発な
CPUは悪くはない。
0879774ワット発電中さん
垢版 |
2018/06/23(土) 17:11:48.57ID:ja1wLIk9
仕事で使ってて
バグで全く使えない機能を堂々とスペックとして謳ってるのはPIC以外にある?

おれはPICしか知らん

いずれにしろここはPICのスレだから
他のマイコンのバグはスレチ
0880774ワット発電中さん
垢版 |
2018/06/23(土) 17:14:21.50ID:ja1wLIk9
見つかったばかりのバグならともかく
何年も前からわかってる問題でも
0881774ワット発電中さん
垢版 |
2018/06/23(土) 18:12:46.36ID:ja1wLIk9
PIC10 OR PIC12 OR PIC16 OR PIC24 OR PIC32
2600000件

STM32
7600000件

(PIC10 OR PIC12 OR PIC16 OR PIC24 OR PIC32) (エラッタ OR errata)
543000件

STM32 (エラッタ OR errata)
25800件 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0882774ワット発電中さん
垢版 |
2018/06/23(土) 18:16:11.69ID:ja1wLIk9
>>878
> 国内外で自分が使っているときに知りえた情報を掲示板に書くようなようなユーザーがアンチも含めて多いPIC

客観的データをよろしくね
0883774ワット発電中さん
垢版 |
2018/06/23(土) 18:30:05.25ID:s1oNYlPs
>>879-880
>他のマイコンのバグはスレチ
もし、その態度で逃げるつもりなら、他のマイコンとの比較の上で否定的な表現はするべきじゃないと思います。

>バグで全く使えない機能を堂々とスペックとして謳ってるのはPIC以外にある?
その部分については、なんだかなあ、という気はするけど下のようなことはあるかもね。

■意図的に直さない
PICについては、異常だと感じるほどに修正に慎重です。
コンパイラも古いものも長期間にわたってダウンロードできるようにしています。

ICでもソフトウェアでも、「何かを直したら、別の何かがおかしくなっている」というのはわりとよくある話です。
現状で動いているアプリケーションがある以上、別の何かをおかしくしてしまうリスクを避けるという
意図があるのかもしれません。(というのは想像だから、違うだろ!って思った人はメーカーに聞いた方がいい)

大昔のマイコンでも(値段は高くなっても)製造は維持しているものが多いのがPICの特徴のひとつです。
それを使っているアプリケーションの動作を変えない、変える恐れのあることを避けるという思想があっても不思議ではありません。

データシートの記述を修正する代わりにエラッタ情報をメンテしているふうなところはあります。
それは企業風土に近いものがあるように思います。


■全く使えないのか、その使い方なら全く使えないのか、まあまあなら使えるのか
もし、ある種の使い方ならまあまあ使える問題であって、割と多くの人がそのある種の使い方でええやんと
思うものなら、まあそんなもんじゃないでしょうか。

回避策が掲示板で共有されてて、「俺の使い方なら、それじゃダメなんだよ」って言う人は他のCPUを選べばいいし、
「まあええやん」と思う人は、まあええのではないかと思います。


あと、その人の環境次第という面もありますね。

・AというCPUにはバグがあって、やや性能を落とした使い方をしないといけないけれど、情報も豊富で、よく知っている人がまわりにいる。
・BというCPUにはバグは明らかにはなっていない。誰かが根拠を示さずAよりマシだと言ってる。まわりに使っている人がいない。
・BというCPUにはバグは明らかにはなっていない。Aほど情報は豊かではないけど、よく知っている人がまわりにいて、使い方について教えてくれる。

ほかにもいろいろなパターンがあるでしょうね。
0884774ワット発電中さん
垢版 |
2018/06/23(土) 18:35:14.16ID:s1oNYlPs
>>882
何かと比較して多い、と言ってるわけではないので、客観的データはないよ。
いろいろと検索していて、ふだんから「PICは自分が期待する基準において情報の絶対量が多い」と
感じている人は同意してくれればいいし、
「PICは絶対的に情報が少ない」と感じている人は同意してくれなくていい。
0885774ワット発電中さん
垢版 |
2018/06/23(土) 18:37:59.48ID:s1oNYlPs
でも、PICの情報は良い意味でも不幸な意味でも、日本全国の傾向をすくえば
相対的には多い方じゃないですかね。
0888774ワット発電中さん
垢版 |
2018/06/23(土) 18:53:36.34ID:s1oNYlPs
>>886
シングルスタンダードで通せる人なんていないし、求める方がおかしいのですよ。

誤解されているかもしれませんが>>881はエラッタの数の客観的データではありません。
あえていえば、ネットにでてきたキーワードのカウントです。

>>887
その理由に関心がある人がMicrochipに問い合わせをすればいいのではないですか?
俺は潔癖症でもないのでそのあたりはどうでもいいです。
0891774ワット発電中さん
垢版 |
2018/06/23(土) 20:11:00.15ID:qJm9Aomf
ことほど左様に初心者にはハードル(not敷居)が高いPICでしたとさ。
0892774ワット発電中さん
垢版 |
2018/06/23(土) 20:11:50.68ID:G5V8Zcol
先輩方の高いレベルの雑談は、本スレでお願いします。
ここは、僕たち初心者が質問するスレです。

俺は詳しいんだ、凄いだろと言う雑談は、
あっちのスレでお願いします。
0893774ワット発電中さん
垢版 |
2018/06/23(土) 21:35:25.14ID:nRMW4a/S
シッテル披露する奴は人の話を聞かないもんだよ
披露するのが目的

基本スルーがセオリーなんだけど
披露自慢人が複数いると
まぁ、こうなるわな
0894774ワット発電中さん
垢版 |
2018/06/23(土) 22:20:59.76ID:KUsZkuRg
ついでにエラッタ議論も専用スレで
0895774ワット発電中さん
垢版 |
2018/06/23(土) 22:25:51.71ID:jNJ+jrw+
もうネタなんてないだろうし
いまさらPICをはじめようなんて人もなかなかいない
作り話でつないでもしょうがない
このスレ自体不要では?
0897774ワット発電中さん
垢版 |
2018/06/24(日) 04:40:28.59ID:Pvr7sMv0
PICでスタートする人も多いですよ。
・ネッなど日本中に仲間が多い
・情報量がAVRの比じゃなく多い
・パッケージのバリエーションが多い
・秋月で安価に買える
・内蔵周辺モジュールが豊富
0898774ワット発電中さん
垢版 |
2018/06/24(日) 06:14:44.40ID:Bw5Z947a
神様にお願いしといた。
「PICでスタートして後で後悔する、なんて初心者が居なくなりますように」って。

しかし、<美人とブス、どちらでも好きなほうとつきあえる>、という状況で
わざわざブスを推薦するって >>897 は罪作りな奴だなw
後で恨まれるぞww
0899774ワット発電中さん
垢版 |
2018/06/24(日) 06:59:19.70ID:IUiafEkC
ブス!とか言いながら、その子が気になってしょうがない小学生w
0900774ワット発電中さん
垢版 |
2018/06/24(日) 08:36:53.76ID:qfY2MA6a
AVR(のアーキテクチャ)は気になるけど、ardunoがウザイ。
AVRもPICみたいに簡易なデバッガが出て欲しいな
0902774ワット発電中さん
垢版 |
2018/06/24(日) 08:55:42.43ID:z1CV/Wzj
>AVRもPICみたいに簡易なデバッガが出て欲しいな
あるのでは? AVRスレで尋ねてみれば?
0903774ワット発電中さん
垢版 |
2018/06/24(日) 09:06:50.75ID:GnWhyKXX
LPC-Link2 2800円
ST-LINK/V2 3000円
MiniProg1 3650円
PICkit4 5700円
Atmel ICE 11000円

Microchipは高い
0904774ワット発電中さん
垢版 |
2018/06/24(日) 09:10:35.96ID:WyZDZHBz
>>898
PICで何かを作ろうとする気概のある人は
他人に責任を求めたりしないと思うが
0905774ワット発電中さん
垢版 |
2018/06/24(日) 09:13:57.95ID:GnWhyKXX
データシートより他人を頼る人がPICユーザーに多い気がするけど
0907774ワット発電中さん
垢版 |
2018/06/24(日) 09:19:31.82ID:ROB4jaM6
>>905
僕 英語読めません、って素直に白状したら?
0910774ワット発電中さん
垢版 |
2018/06/24(日) 10:53:47.93ID:Pvr7sMv0
先輩方の高いレベルの雑談は、本スレでお願いします。
ここは、僕たち初心者が質問するスレです。

俺は詳しいんだ凄いだろう、AVRは凄いんだ、
と言う雑談は、 あっちのスレでお願いします。
0911774ワット発電中さん
垢版 |
2018/06/24(日) 10:54:53.43ID:u0+igbfY
マイコンプログラミングをはじめるなら
無難に32bitが良いよ
8ビットは色々と特殊すぎて
0913774ワット発電中さん
垢版 |
2018/06/24(日) 10:59:21.83ID:vOANkRU+
PIC←→AVR
フルーク←→フルーク以外
VHS←→β
非喫煙者←→喫煙者
・・・

非主流は姦しい・・・
0917774ワット発電中さん
垢版 |
2018/06/24(日) 12:35:58.24ID:u0+igbfY
次は

カラー画面
アニメの高画質化
表面実装部品による小型化
赤外リモコン送信機能
赤外リモコン受信
リモコン&メニューによる設定
USBを使ってPCから設定

この辺に挑戦してください
0918774ワット発電中さん
垢版 |
2018/06/24(日) 12:43:26.96ID:u0+igbfY
ROMサイズが必要ならこの辺を
PIC32MM 20pin 64KB
PIC32MM 28pin 256KB

基板設計もぜひ挑戦してみよう
今はとても安く作れます
0919774ワット発電中さん
垢版 |
2018/06/24(日) 12:47:09.86ID:u0+igbfY
今時電源がトグルスイッチも無いよね

自己保持回路による待機電力ゼロ化
でも良いし
リモコン受信可能なまま省待機電力に挑戦
でも良い
0920774ワット発電中さん
垢版 |
2018/06/24(日) 12:58:32.02ID:u0+igbfY
砂時計だから加速度センサで起動が普通か
1秒に1回くらい値を見て値が大きく変わったら起動

電源は3系統
PIC, 加速度センサ, 画面
0921774ワット発電中さん
垢版 |
2018/06/24(日) 13:18:01.46ID:kwQ67rjL
DC/DCのenableをプッシュボタンで起動して、
動作中はPICがenableを保持すれば、
オートパワーオフが成立しそうなんだが、
1ボタンでそれをやる回路が思いつかなかった。
PICからのenable信号がボタンと競合してしまう。
ダイオードとかで何とかなる?

20ピンの32MM、気になる。
0922774ワット発電中さん
垢版 |
2018/06/24(日) 13:24:37.48ID:7ud+1Wfz
>>921
ダイオード使ってもいいし、enableを駆動できる程度に
pic出力に1K位の抵抗直列に入れればぶつかってもok
0924774ワット発電中さん
垢版 |
2018/06/24(日) 13:31:16.92ID:7ud+1Wfz
>>923
> >>922
> そしたらボタンが押されっぱなしにならない?
ん?
時間来たらpicが切るんじゃないの?
0926774ワット発電中さん
垢版 |
2018/06/24(日) 13:44:27.29ID:kwQ67rjL
>>925
ボタン1個で、起動、砂時計容量変更、ブザーストップをさせたい。
電池はDC/DCに直結するが、動作時のみenableにする。
DC/DCはGNDに落とすとenableになる。

これが解けなかった。
0927774ワット発電中さん
垢版 |
2018/06/24(日) 13:55:11.91ID:KhRIf9c7
プッシュSW1回路の場合、どの電源系につなぐかが面倒くさそう。

卑怯な方法。二回路二接点プッシュスイッチ使い1回路を電源ON用に使う。

別の方法も考えられると思うけど、電源系の電圧が書かれた回路図がないと分からないな。
0928774ワット発電中さん
垢版 |
2018/06/24(日) 14:23:19.43ID:u0+igbfY
>>926
ん?
普通にダイオードと抵抗で出来ないか?
まあ最悪ボタンはADCで検出でも
0929774ワット発電中さん
垢版 |
2018/06/24(日) 16:43:22.81ID:wgVV9TG7
XC8について質問さしてください

XC8で@(アット)マークを付けたら変数領域を指定のアドレスへ配置出来る
と思うんですが、この機能を使えば

myStruct1 AAAA @ 0x500;
myStruct2 BBBB @ 0x500;

と言う感じであえて同じアドレスに2つの変数を配置して、あたかも共用体の
ような使い方が出来ますでしょうか?
0930774ワット発電中さん
垢版 |
2018/06/24(日) 16:47:34.64ID:2J01mMpu
素直に共用体使ったら?
0931774ワット発電中さん
垢版 |
2018/06/24(日) 18:56:15.89ID:3e3r9nFD
同時にインクルード出来ないヘッダで別々に定義されてるとか?
0934774ワット発電中さん
垢版 |
2018/06/24(日) 21:26:44.93ID:hTUJK9g6
賢いコンパイラだと、まずいかも。
たしか、cには、異なるタイプのポインタは同じものを指さない
と言う縛りがあってそれを使った最適化をするコンパイラがある。
アホなコンパイラなら、そんな最適化はしないだろう
それでもvolatileはつけとくべきね。
0938774ワット発電中さん
垢版 |
2018/06/24(日) 22:47:18.36ID:3e3r9nFD
enableの代わりにトランジスタ
マイコンからの制御にデジトラ

なところが違う
0946774ワット発電中さん
垢版 |
2018/06/25(月) 06:49:07.59ID:mPzchdJZ
そもそも電源の選定は正しかったのか。

PICと液晶は2.7V<Vcc<5Vだから、18650直結なら簡単だった。

PchMOSFETをDCDC上流に入れた場合、バッテリ電圧の下限はどの程度?
1.0Vで動かなきゃNiMH×1には使えない。
0948774ワット発電中さん
垢版 |
2018/06/25(月) 08:27:22.48ID:8zCYKMmx
>>940だと、
スイッチを押すとスイッチの抵抗側の電圧が変わるようにしておいてADCで検出
とか
0949774ワット発電中さん
垢版 |
2018/06/25(月) 10:41:09.73ID:GonHOTXi
>>929
出来ることはできるが、
変数のアドレス管理誰がやるんだよ
それは普通、アドレスマップのレジスタに対して使う機能
0953774ワット発電中さん
垢版 |
2018/06/25(月) 12:46:28.44ID:sQsmhZbM
色々な使い方があるのに乏しい経験で「普通」とかいってわざわざ用途を絞っちゃう
お前ソフトに向いてない
0954774ワット発電中さん
垢版 |
2018/06/25(月) 19:12:15.18ID:GonHOTXi
アホカ
ただのグローバル変数に絶対アドレス指定したらそこが他で使われていないか、
リンカのマップファイルみて一々確認しなきゃならんだろ
そんなめんどくさいことやる馬鹿いねーよという意味だよ
(普通に共用体で宣言すればいい)
それともあれか、 @ 機能つかったらそのアドレスは他で使われないように
コンパイラが管理してくれるのか?
ヒープの真ん中でも避けてくれるのか?w
それに「普通」ってのが用途を絞っていると断言している根拠はなんだよ
勝手に決めつけるなよw
0956774ワット発電中さん
垢版 |
2018/06/25(月) 19:48:33.81ID:LqX63lra
>>954
じゃあXCには何のためにアドレス指定機能があると思ってんの???
馬鹿?
0957774ワット発電中さん
垢版 |
2018/06/25(月) 19:49:57.38ID:RbY6Qp1Q
だから >949
0958774ワット発電中さん
垢版 |
2018/06/25(月) 20:13:41.49ID:8zCYKMmx
アドレス指定したいっていう人に
アドレス管理誰がやるんだよって
頭おかしい
0959774ワット発電中さん
垢版 |
2018/06/25(月) 20:24:20.92ID:I7aJr4QL
>>954
普通のメモリマップドIOの割り当てをコンパイラやリンカがどうやると思ってるんだろ
0960774ワット発電中さん
垢版 |
2018/06/25(月) 21:25:38.07ID:tW+lH6r5
普通にアドレス指定してるが・・・・・何か?????
0961774ワット発電中さん
垢版 |
2018/06/25(月) 23:13:10.88ID:RkgoG5h3
>>898
美人は3日で飽きるがブスは3日で慣れるという有名な格言があってだな以下略
0962774ワット発電中さん
垢版 |
2018/06/25(月) 23:21:21.99ID:CdGAXxfw
IOやSFRのアドレスと、変数のアドレスをごっちゃにしてはややこしくなる。
変数のアドレスはコンパイラ、リンカに任せればいいという話でしょね。

いやいや、アドレス指定したいって話なんだから、という話もわかるのだけど、
共用体ではなんであかんのでしょ、って疑問はあるのかも。俺もまあそう思う。
0964774ワット発電中さん
垢版 |
2018/06/25(月) 23:24:03.21ID:8zCYKMmx
>>962
疑問に思ったとしても質問の前提だから

素直に共用体にしたくない理由はいくつか考えられるし
共用体はおまけでアドレス指定が主な目的かもしれない
0965774ワット発電中さん
垢版 |
2018/06/25(月) 23:26:06.77ID:8zCYKMmx
質問に答えるだけならその理由は不要
代替案を知りたいなら理由も書くでしょう
0966774ワット発電中さん
垢版 |
2018/06/25(月) 23:28:40.09ID:8zCYKMmx
変数のアドレスを指定したい理由も色々と考えられます
経験の浅い人はそういう発想もないでしょうけど
0967774ワット発電中さん
垢版 |
2018/06/25(月) 23:34:40.64ID:8zCYKMmx
質問者も、
やって見ればすぐわかることをいちいち質問しないでやってみればいいんですよ
出来たならここに理由と共にテクニックとして紹介する
初心者同士そうやって高め合えば良い
0968774ワット発電中さん
垢版 |
2018/06/26(火) 00:05:08.91ID:MH2X+Y+e
>>964, >>966
>素直に共用体にしたくない理由はいくつか考えられる
アドレス指定とは別にして、共用体にしたくない理由って具体的にどんなこと
でしょうか。


>変数のアドレスを指定したい理由も色々と考えられます
昔のパソコンでVRAMをワークエリアに使うようなときにはアドレス指定をしていた
けれど、8bit PIC で変数のアドレスを指定するほかないようようなことって
どんなことなんでしょうか。

いろいろ考えられるうちの3個4個ぐらいを教えていただけると勉強になります。

と、こういう疑問は持ってますが、技法としての元質問の価値はあると思ってます。
必要なら自分でやっつければ済むことですけど。
0969774ワット発電中さん
垢版 |
2018/06/26(火) 06:52:22.86ID:U2j8GMB0
>>968

●共用体
◇文字数の削減や移植の手間や見易さの為
(※無名共用体が使えない場合)

◇ファイルやモジュールの分離性確保の為
・同時にインクルード出来ないヘッダ
・コンパイル依存性(コンパイル時間)
・ライブラリ化

◇共用体に出来ない構造体への対応
(※C++の場合)
0970774ワット発電中さん
垢版 |
2018/06/26(火) 07:09:48.97ID:U2j8GMB0
>>968

●アドレス指定したい場合

◇部分ビルドする場合のインターフェース
ブートローダーとアプリケーションや
複数のアプリケーションなど
ROMの複数エリアを別々にビルドする場合のインターフェースとし
エントリーポイントのテーブルなど

◇周辺モジュールとのインターフェース
DMAのバッファなどで特定の番地にしたい場合

◇高速化や簡略化の為
配列の先頭や終端のアドレスが特定の値で有ることで高速化やコードの簡略化を行う
+と&でリングバッファのポインタを更新するなど

◇セクタ考慮
ROMのセクタやRAMのバンクなどを考慮したい場合
境界を跨ぎたくないとかセクタ先頭からはじめたいとか

◇デバッグ性
よくデバッガで書き換える変数の固定アドレス化
外部からアドレス指定でアクセスしたい変数の固定アドレス化
0972774ワット発電中さん
垢版 |
2018/06/26(火) 07:33:03.70ID:MH2X+Y+e
>>969-971
共用体を避ける理由については、正直なところ俺にはピンとこないものでしたが、
アドレス指定については思い当たるところもなくはなく。
ただ、とても個人的な事情にすぎないことで、俺のPICの使い方ではあまり縁がないものばかりでした。

あと、俺の思い込みもありました。8ビットPICってPIC18も含まれるのですね。

ありがとうございました。
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況