初めてのPIC 0x0f
■ このスレッドは過去ログ倉庫に格納されています
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 確かに他人のコードを邪魔しないように変更したいんだけどどうしたらいい的な雰囲気は取れるな。
一貫して使わされてる、変化さしたくない、大丈夫でしょうか、とか一歩引いてるよね。
まあここで聞いても結論というか、保証にはならんが。 なんか不安になる書き方よなw
怪しいから
1回PORTAを読んで
bit 0,1,4,7を変更してから
LATA出力した方がいいかな
って思ったもん 79です。すみません
>>82
他のポートは入力に設定しています。トリス設定が
TRISA = 0b01101100;
とされているという意味でかきました >>88
だったら、
あなたの書いたコードでok
ところで、
>出力として使わされてないRA2-3, RA5-6は変化さしたくないのですが
この文章は、何が変化することを心配して書いたの? トリスで入力に設定しているポートに対してラットで値を書き込んだ場合、
次にそのポートをポートで値を読み込んだら先ほどラットで書いた値に
変化するんじゃないかな?と思って心配してかきました
トリスで入力に設定しているポートについては、ラットで値を設定しても
完全に無視されると言う認識でよろしいでしょうか? TRISをトリス設定って云うのはじめて聞いたな
まぁまんまだけどなんか深セン >>90
それは大丈夫。
入力はピンの値をそのまま読む。
だから困ることもある。
出力時に値を読み込むと、違う値が読めることがあるんじゃなかったかな。
特にキャパシタがぶら下打てたりすると。 続けてポートリードのほうの質問をさしてください
以下のようなコードを書いてみしたのですが
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);
みたいな感じで処理したほうが効率的に処理させられるんでしょうか? 勿論そうだが
if (data & 0b00000010 ) b ++;
の方が効率良いと思う >>93
コンパイラの出力するコード次第だけど、
PICの場合、アセンブラレベルで見ると、
dataに移さずPORTAで直接処理しても、
実行速度は変わらないんじゃない。
だから、細かい効率を考えるなら、
if (PORTAbits.RA0) a++
が一番速そう。
個人的には、dataに移す方がプログラムのお行儀的に良いと思うし、
アセンブラで書かないなら、違いは分からないだろうな。
ところで、無駄にポートAの値を読むと、何が悪いと思ってるのかな?
♯お行儀はよくないのだけど。 ま、慣れた人が同時に変化させたいなんて案件なら
ポートA全部出力にまとめる
入力は他のポートにする
だろうね。 >>93
PORTAbitsは周辺制御に使う特殊レジスタですので
コンパイラの最適化を行わないような設定になっています
なので>>93のような処理になるはずです
以下のような項目に問題があるなら最適化の方法は色々とあります
同時性、処理速度、コードサイズ
これらの問題がないならそのまま気にしないのが良いでしょう >>79
PORTAの2356が出力設定になっていないのであれば問題ないですが
将来的にこれらを使う可能性を考えると
極限までコードサイズや実行速度を求めるのでなければ
2356の出力を保持するコードが良いとおもいます
>>81
>>97の理由でなりません >>79
LATAが存在するPICならLATAで制御するべきですね
----
PICのポート出力は3種類のチップが存在する
1. PORTAで制御
2. LATAで制御
3. LATA, LATCLR, LATSET, LATINVで制御 (32bitのみ)
3. だと以下のような万能なコードが作れるが
1. 2. だとそのようなコードは作れない
LATAINV = (LATA ^ val) & mask; LATって「ラット」じゃなくて「ラッチ」じゃないの?
いつも「ラッチエー」「ラッチビー」って呼んでるわ 書くときに「トリス」とか書かなければ良いんじゃねえか?
呑みたくなるよなあれ見ると。 全くレス番関係ねーじゃねーか
>>102,>>104の罪は重い 私が生まれて初めて作った真空管パワーアンプは6BM8。
2作目は6BQ5のPP、最終作は6080のOTL。
12AX7のローノイズ管も何本も持っていたが、
ある日、真空管をじぇ〜んぶ捨てた。何もかも捨てた。 冷え込んだ冬、アンプの球を代えてチューニングしていた
熱したタマをフローリングの床に置いたら、ピシッと言ってヒビが入った
WE300Bだった >>121
ヤフオクで売れば結構な飲み代になったのに勿体ね
>>124
それも勿体ね >>125
>>121
は
>何もかも捨てた。
を
拾ってやれよ。 同調回路の出力を、
内蔵A/Dでデジタルにすれば、
PICでラジオはできますか?
if()でマイナス側を切ってしまえば検波になりそうです。
PWMで出力して音にするとか。 そんな半端な信号処理する意味は無いが
単なる実験ならやってみれ >>127
dsPIC 使えば DSPラジオ出来そうだけどな。 >>128
どの辺が半端でしょうか?
なぜ意味がないのですか? ゲルマラジオと同じことをPIC使ってやったって意味なかろう
やるなら全帯域サンプリングしてLo掛けてLPF後にヒルベルト変換して
絶対値振幅取ってAM検波すればいいが
AGCのダイナミックレンジはADCで賄えないからRF段にAGC回す必要があるし
そんな処理はそこらのPICには入らないな >>130
とりあえず「包絡線検波」でもググって、やるべきことが何なのか理解することから始めよう >>131
知ってることを並べたかったんだね。
世の中に、意味のないことなんて、何もないと思うけど。 > 知ってることを並べたかったんだね。
おれもそう思った
なんか無理してる感
> 世の中に、意味のないことなんて、何もないと思うけど。
これには同意しないけど MPLAB X IDEのエディターで質問です。
文字コードはUTF-8にしています。
ソースのコメントに全角文字を使うと赤色の〜状のアンダーラインが表示される部分があります。
何の警告何でしょうか? もうちょっとマシなコメントを書け
ってことじゃね? >>137
やっぱそう?
俺コメントは後日思い出しやすいように「このエラーが出たらどうするのが正解かわからんので無応答でマスターの次のフレームを待つわ」とか。 必殺
int i = 0; // iに0を代入する コメントには、
何をするかを書くんじゃなく、
なぜそうするのかを書く。 いやー、そうじゃなくって、
int i = 0; // フレーム番号は0から始まる
とか、
int i = 0; // 不要なはずだが、念のため初期化しとく。
とか。 規模が大きくなるとコメントの内容も規模が大きくなる
>>145みたいな細かい単位のコメントはマイナスになることも そもそも、
コメントが必要な変数が i ってのが良くない int i; が良くないというのは同意。
付け加えとくと
何をするかの記述には、まとまったコメントとして書く。
行末のコメントは、何故そうするかを書く。
ただし、行末コメントのほうが更新しやすく、
まとまったコメントは修正し忘れて、実態と合わなくなってしまう事が多いので、
一方に頼れない。 int i;
別にこれ自体は問題ない
使いどころを誤らなければ 更新しない人は行末とか関係なく更新しない
コメントに頼るのってのも異常 i j kとintegerの変数使うのはFortranの亡霊かな int i; はワード検索にしないと探しにくいという観点で好きくない。
int ii; にするとがぜん検索しやすくなる。 検索しなきゃならない用途で i なんて使ってはいけない
極めてローカルな変数、生存するのがコード数行の範囲みたいな場合でのみ使う
こういう場合は極めてシンプルな名前にするべき >>151
JISSU は INTEGER、SEISUU は REAL >>152
複素数?
虚数単位じゃなくて?
>>155
逆じゃね? forteanの暗黙の型宣言は以下のルールに基づきます。
A-H,O-Zで始まる変数は実数型となる
I-Nで始まる変数は基本整数型となる PICkit4 Programmer Application というのは作らないのかな? 4になって速くなったんじゃないかなあ。
中華クローンの3しか使わないから、遅いけど高くはないね。 速度は遅いと思った事無いけど、あのピンソケットみたいなのいい加減やめてくれと思う。 クローンの値段でも儲かるってことだよな
ぼったくりすぎ >>171
でどうしろと?
>>173
売りっぱなしの中華セラーと本家Microchip との立場の違いを考えりゃ分かる話っしょ。
たかが5000円で何言ってんだか…。 本家はPICKITで儲ける必要は無いんだから
利益ゼロでもいいくらい
他だと無料で配ってたりするのに それな
オープンハードにしてくれればいいんだよ
arm(mbed)のHDKみたいに 中華製だと使ってる部品がさらに海賊版とかの可能性もありそう
Windowsのドライバアップデートで海賊版はじくようにしたら阿鼻叫喚みたいなのが前にあった気が >>174
答えは身内にあるよ。Atmel ICEみたくロックするコネクタがベスト。 >>179
変えたら変えないことを望むユーザーが文句を言うだろね。
というか、1列ヘッダーが嫌なら変換基板を作るのも手なんじゃない? >>179
>ロックするコネクタがベスト
へえ、なぜ? ピキ4(ピクキ4)とピキ3で数百円しか差がないし、今から買うなら
問答不要でピキ4だろうなぁ
うちのピキ3で玉に出る「VDDの電圧が足りない」エラーも改善されてたり
するんかなぁ ■ このスレッドは過去ログ倉庫に格納されています