X



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

初めてのPIC 0x0f

■ このスレッドは過去ログ倉庫に格納されています
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
0086774ワット発電中さん
垢版 |
2018/05/06(日) 22:13:22.83ID:VVV0PKMe
確かに他人のコードを邪魔しないように変更したいんだけどどうしたらいい的な雰囲気は取れるな。
一貫して使わされてる、変化さしたくない、大丈夫でしょうか、とか一歩引いてるよね。
まあここで聞いても結論というか、保証にはならんが。
0087774ワット発電中さん
垢版 |
2018/05/06(日) 22:16:26.97ID:52JcCsVp
なんか不安になる書き方よなw

怪しいから
1回PORTAを読んで
bit 0,1,4,7を変更してから
LATA出力した方がいいかな
って思ったもん
008879
垢版 |
2018/05/06(日) 22:19:33.21ID:QGzzcRBQ
79です。すみません

>>82
他のポートは入力に設定しています。トリス設定が

TRISA = 0b01101100;

とされているという意味でかきました
0089774ワット発電中さん
垢版 |
2018/05/06(日) 22:40:14.04ID:XFdtnFLo
>>88
だったら、
あなたの書いたコードでok

ところで、
>出力として使わされてないRA2-3, RA5-6は変化さしたくないのですが
この文章は、何が変化することを心配して書いたの?
009079
垢版 |
2018/05/06(日) 22:52:27.84ID:QGzzcRBQ
トリスで入力に設定しているポートに対してラットで値を書き込んだ場合、
次にそのポートをポートで値を読み込んだら先ほどラットで書いた値に
変化するんじゃないかな?と思って心配してかきました

トリスで入力に設定しているポートについては、ラットで値を設定しても
完全に無視されると言う認識でよろしいでしょうか?
0091774ワット発電中さん
垢版 |
2018/05/06(日) 22:56:39.17ID:c41x0gbg
TRISをトリス設定って云うのはじめて聞いたな
まぁまんまだけどなんか深セン
0092774ワット発電中さん
垢版 |
2018/05/06(日) 23:06:31.45ID:XFdtnFLo
>>90
それは大丈夫。
入力はピンの値をそのまま読む。
だから困ることもある。
出力時に値を読み込むと、違う値が読めることがあるんじゃなかったかな。
特にキャパシタがぶら下打てたりすると。
009379
垢版 |
2018/05/06(日) 23:07:30.54ID:QGzzcRBQ
続けてポートリードのほうの質問をさしてください
以下のようなコードを書いてみしたのですが

a += PORTAbits.RA0;
b += PORTAbits.RA1;
c += PORTAbits.RA2;
d += PORTAbits.RA3;
x1 += PORTAbits.RA4;
x2 += PORTAbits.RA5;
x3 += PORTAbits.RA6;
x4 += PORTAbits.RA7;

これって
1・PORTAの値を読む
2・0ビット目の値を得る
3・変数aに加算する
4・PORTAの値を読む
5・1ビット目の値を得る
6・変数bに加算する



と言う感じで無駄にポートAの値をよんでるのでは?ないかというきがしています
最初に
data = PORTA;
としてまずポートAの値を読んだあとに
a += (data & 0b00000001 ? 0 : 1);
b += (data & 0b00000010 ? 0 : 1);
みたいな感じで処理したほうが効率的に処理させられるんでしょうか?
0094774ワット発電中さん
垢版 |
2018/05/07(月) 00:27:51.86ID:RE87V43P
勿論そうだが
if (data & 0b00000010 ) b ++;
の方が効率良いと思う
0095774ワット発電中さん
垢版 |
2018/05/07(月) 07:07:04.29ID:8TTwvipv
>>93
コンパイラの出力するコード次第だけど、
PICの場合、アセンブラレベルで見ると、
dataに移さずPORTAで直接処理しても、
実行速度は変わらないんじゃない。

だから、細かい効率を考えるなら、
if (PORTAbits.RA0) a++
が一番速そう。
個人的には、dataに移す方がプログラムのお行儀的に良いと思うし、
アセンブラで書かないなら、違いは分からないだろうな。

ところで、無駄にポートAの値を読むと、何が悪いと思ってるのかな?
♯お行儀はよくないのだけど。
0096774ワット発電中さん
垢版 |
2018/05/07(月) 07:20:34.36ID:GbP1qhUp
ま、慣れた人が同時に変化させたいなんて案件なら
ポートA全部出力にまとめる
入力は他のポートにする
だろうね。
0097774ワット発電中さん
垢版 |
2018/05/07(月) 12:04:34.15ID:JKxEdzHq
>>93
PORTAbitsは周辺制御に使う特殊レジスタですので
コンパイラの最適化を行わないような設定になっています
なので>>93のような処理になるはずです

以下のような項目に問題があるなら最適化の方法は色々とあります
同時性、処理速度、コードサイズ

これらの問題がないならそのまま気にしないのが良いでしょう
0098774ワット発電中さん
垢版 |
2018/05/07(月) 12:13:41.58ID:JKxEdzHq
>>79
PORTAの2356が出力設定になっていないのであれば問題ないですが
将来的にこれらを使う可能性を考えると
極限までコードサイズや実行速度を求めるのでなければ
2356の出力を保持するコードが良いとおもいます

>>81
>>97の理由でなりません
0099774ワット発電中さん
垢版 |
2018/05/07(月) 13:18:52.62ID:JKxEdzHq
>>79
LATAが存在するPICならLATAで制御するべきですね

----

PICのポート出力は3種類のチップが存在する

1. PORTAで制御
2. LATAで制御
3. LATA, LATCLR, LATSET, LATINVで制御 (32bitのみ)

3. だと以下のような万能なコードが作れるが
1. 2. だとそのようなコードは作れない

LATAINV = (LATA ^ val) & mask;
0100100
垢版 |
2018/05/07(月) 21:56:52.47ID:m5Kopfp1
100
0101774ワット発電中さん
垢版 |
2018/05/08(火) 09:37:22.76ID:kGNWLnWL
FT101
0103774ワット発電中さん
垢版 |
2018/05/08(火) 13:13:25.85ID:xaPNoQhW
DL-103
0108774ワット発電中さん
垢版 |
2018/05/08(火) 20:42:12.57ID:64vL0R+2
LATって「ラット」じゃなくて「ラッチ」じゃないの?
いつも「ラッチエー」「ラッチビー」って呼んでるわ
0109774ワット発電中さん
垢版 |
2018/05/08(火) 20:48:52.19ID:EB8u7hrA
書くときに「トリス」とか書かなければ良いんじゃねえか?
呑みたくなるよなあれ見ると。
0111774ワット発電中さん
垢版 |
2018/05/08(火) 23:42:17.68ID:xaPNoQhW
80-6D6-6C6-6ZP1
0114774ワット発電中さん
垢版 |
2018/05/09(水) 03:27:03.91ID:Mqvqtskt
6ZDH3A 6AU6
0118102
垢版 |
2018/05/09(水) 13:28:20.96ID:kYx2lcNm
すまんこってス 42
0119774ワット発電中さん
垢版 |
2018/05/09(水) 14:23:18.76ID:YsoLF+lm
ラジオ球ばっかりだな。ひねりはないのか?  12F
0121774ワット発電中さん
垢版 |
2018/05/09(水) 15:40:54.67ID:Q6543x/b
私が生まれて初めて作った真空管パワーアンプは6BM8。
2作目は6BQ5のPP、最終作は6080のOTL。
12AX7のローノイズ管も何本も持っていたが、
ある日、真空管をじぇ〜んぶ捨てた。何もかも捨てた。
0123774ワット発電中さん
垢版 |
2018/05/09(水) 17:17:18.44ID:YsoLF+lm
>>121
冬の暖房は 6080 に限りますね
0124774ワット発電中さん
垢版 |
2018/05/09(水) 20:54:30.34ID:hLrZIZGC
冷え込んだ冬、アンプの球を代えてチューニングしていた
熱したタマをフローリングの床に置いたら、ピシッと言ってヒビが入った
WE300Bだった
0127774ワット発電中さん
垢版 |
2018/05/10(木) 09:45:19.94ID:+hNoa1fn
同調回路の出力を、
内蔵A/Dでデジタルにすれば、
PICでラジオはできますか?
if()でマイナス側を切ってしまえば検波になりそうです。
PWMで出力して音にするとか。
0128774ワット発電中さん
垢版 |
2018/05/10(木) 10:07:24.14ID:zbS8RjPZ
そんな半端な信号処理する意味は無いが
単なる実験ならやってみれ
0130774ワット発電中さん
垢版 |
2018/05/10(木) 11:27:56.22ID:qqOagvAv
>>128
どの辺が半端でしょうか?
なぜ意味がないのですか?
0131774ワット発電中さん
垢版 |
2018/05/10(木) 11:35:44.57ID:zbS8RjPZ
ゲルマラジオと同じことをPIC使ってやったって意味なかろう
やるなら全帯域サンプリングしてLo掛けてLPF後にヒルベルト変換して
絶対値振幅取ってAM検波すればいいが
AGCのダイナミックレンジはADCで賄えないからRF段にAGC回す必要があるし
そんな処理はそこらのPICには入らないな
0132774ワット発電中さん
垢版 |
2018/05/10(木) 17:12:08.32ID:5W9TKgi2
>>130
とりあえず「包絡線検波」でもググって、やるべきことが何なのか理解することから始めよう
0134774ワット発電中さん
垢版 |
2018/05/10(木) 19:20:55.40ID:GH0XotCu
>>131
知ってることを並べたかったんだね。
世の中に、意味のないことなんて、何もないと思うけど。
0135774ワット発電中さん
垢版 |
2018/05/10(木) 19:35:11.78ID:ewyUqVNc
> 知ってることを並べたかったんだね。
おれもそう思った
なんか無理してる感

> 世の中に、意味のないことなんて、何もないと思うけど。
これには同意しないけど
0136774ワット発電中さん
垢版 |
2018/05/11(金) 14:50:19.57ID:6DU5Tnib
MPLAB X IDEのエディターで質問です。
文字コードはUTF-8にしています。
ソースのコメントに全角文字を使うと赤色の〜状のアンダーラインが表示される部分があります。
何の警告何でしょうか?
0138774ワット発電中さん
垢版 |
2018/05/11(金) 20:01:50.30ID:y98rm0N8
>>137
やっぱそう?
俺コメントは後日思い出しやすいように「このエラーが出たらどうするのが正解かわからんので無応答でマスターの次のフレームを待つわ」とか。
0141774ワット発電中さん
垢版 |
2018/05/11(金) 20:41:54.89ID:/lImoAt5
コメントには、
何をするかを書くんじゃなく、
なぜそうするのかを書く。
0143102
垢版 |
2018/05/11(金) 20:47:47.94ID:fuw94Me2
; 初めはグー
0145774ワット発電中さん
垢版 |
2018/05/11(金) 20:52:30.73ID:/lImoAt5
いやー、そうじゃなくって、
int i = 0; // フレーム番号は0から始まる
とか、
int i = 0; // 不要なはずだが、念のため初期化しとく。
とか。
0146774ワット発電中さん
垢版 |
2018/05/11(金) 21:19:38.86ID:fX9hsbm4
規模が大きくなるとコメントの内容も規模が大きくなる

>>145みたいな細かい単位のコメントはマイナスになることも
0148774ワット発電中さん
垢版 |
2018/05/11(金) 21:37:45.12ID:/lImoAt5
int i; が良くないというのは同意。

付け加えとくと
何をするかの記述には、まとまったコメントとして書く。
行末のコメントは、何故そうするかを書く。

ただし、行末コメントのほうが更新しやすく、
まとまったコメントは修正し忘れて、実態と合わなくなってしまう事が多いので、
一方に頼れない。
0150774ワット発電中さん
垢版 |
2018/05/11(金) 21:43:06.75ID:fX9hsbm4
更新しない人は行末とか関係なく更新しない
コメントに頼るのってのも異常
0153774ワット発電中さん
垢版 |
2018/05/12(土) 01:31:38.80ID:axVlE/gd
int i; はワード検索にしないと探しにくいという観点で好きくない。
int ii; にするとがぜん検索しやすくなる。
0154774ワット発電中さん
垢版 |
2018/05/12(土) 06:55:32.07ID:Txiazbh9
検索しなきゃならない用途で i なんて使ってはいけない
極めてローカルな変数、生存するのがコード数行の範囲みたいな場合でのみ使う
こういう場合は極めてシンプルな名前にするべき
0159774ワット発電中さん
垢版 |
2018/05/12(土) 09:15:52.16ID:M22CumyC
forteanの暗黙の型宣言は以下のルールに基づきます。
A-H,O-Zで始まる変数は実数型となる
I-Nで始まる変数は基本整数型となる
0169774ワット発電中さん
垢版 |
2018/05/15(火) 21:12:27.06ID:FGUU5gFP
4になって速くなったんじゃないかなあ。
中華クローンの3しか使わないから、遅いけど高くはないね。
0171774ワット発電中さん
垢版 |
2018/05/16(水) 06:47:50.35ID:XHew+3Cu
速度は遅いと思った事無いけど、あのピンソケットみたいなのいい加減やめてくれと思う。
0173774ワット発電中さん
垢版 |
2018/05/16(水) 13:35:35.37ID:OH4VKxmr
クローンの値段でも儲かるってことだよな
ぼったくりすぎ
0174774ワット発電中さん
垢版 |
2018/05/16(水) 14:21:00.74ID:qsGpCJ8u
>>171
でどうしろと?

>>173
売りっぱなしの中華セラーと本家Microchip との立場の違いを考えりゃ分かる話っしょ。
たかが5000円で何言ってんだか…。
0175774ワット発電中さん
垢版 |
2018/05/16(水) 16:08:04.32ID:otNmMYCp
本家はPICKITで儲ける必要は無いんだから
利益ゼロでもいいくらい
他だと無料で配ってたりするのに
0176774ワット発電中さん
垢版 |
2018/05/16(水) 16:19:10.17ID:0vyQfQ4W
それな
オープンハードにしてくれればいいんだよ
arm(mbed)のHDKみたいに
0178774ワット発電中さん
垢版 |
2018/05/16(水) 19:19:04.78ID:lSWld/Q0
中華製だと使ってる部品がさらに海賊版とかの可能性もありそう
Windowsのドライバアップデートで海賊版はじくようにしたら阿鼻叫喚みたいなのが前にあった気が
0179774ワット発電中さん
垢版 |
2018/05/16(水) 20:05:58.12ID:krKo+F3n
>>174
答えは身内にあるよ。Atmel ICEみたくロックするコネクタがベスト。
0182774ワット発電中さん
垢版 |
2018/05/16(水) 22:54:36.02ID:XoArIbLY
>>179
変えたら変えないことを望むユーザーが文句を言うだろね。

というか、1列ヘッダーが嫌なら変換基板を作るのも手なんじゃない?
0185774ワット発電中さん
垢版 |
2018/05/17(木) 00:49:09.40ID:WzMNymwf
ピキ4(ピクキ4)とピキ3で数百円しか差がないし、今から買うなら
問答不要でピキ4だろうなぁ

うちのピキ3で玉に出る「VDDの電圧が足りない」エラーも改善されてたり
するんかなぁ
■ このスレッドは過去ログ倉庫に格納されています

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