初めてのPIC 0x23
レス数が950を超えています。1000を超えると書き込みができなくなります。
.
_ _ PICをさわるのは今日が初めて、という超初心者のためのスレです。
(O>――<O) PIC選び、PICを使った回路は、誰でも最初は不安なものです。
/ (・) (・) ヽ 恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
○ /▼\ ○ 質問のしかたは、初心者質問スレの発言1を見てくださいね。
|(ヽ二フ ) |
/  ̄ ̄ ̄ ヽ
f ヽ / | PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
ヽ \ / ノ ・PIC専用のスレ
| \_ )(_/ ! 本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
| | ここの話がわかるようになれば、あなたはもう一人前のPICerです。
| | ・マイコンソフト 悩み事相談室
| | ̄ ̄| | マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
(_ノ ヽ_)
質問するときは…
・PICの型番と開発環境を明記しましょう。
・プログラムは、レス内に直接書き込まず下記を利用しましょう。
ttp://codepad.org/ ttps://pastebin.com/
・解決したら結果報告しましょう。
・ここはPICマイコンのスレです。AVRの自慢話は「AVRスレ」でお願いします。
回答者の先輩は…
・威張らず、偉そうにせず、上から目線にならず、優しく答えてあげましょう。
・顔文字はやめてください。回答内容と顔文字の使用は別問題です。
ハード、ソフト情報
・統合開発環境 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
・PIC一覧、スペック検索
ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
ttp://www.microchip.com/maps/microcontroller.aspx
・初心者はPIC16F1以降の型番で始めると無理なく始められます。
MCCを使えば、最初からPIC32で始めるのもありです。
・プログラムの書込みには書込器が必要です。
予算に応じてPICkit4、SNAPなどを購入しましょう。
ttp://akizukidenshi.com/catalog/g/gM-13854/
eBayやAliExpressで買えるPICkit3の中華クローンも十分な性能が報告されています。
直近スレのご案内
0x15 https://rio2016.5ch.net/test/read.cgi/denki/1567831628/ 2019/09/07〜
0x16-0x19 欠番です
0x20 https://rio2016.5ch.net/test/read.cgi/denki/1596523661/ 2020/08/04〜
0x21 https://rio2016.5ch.net/test/read.cgi/denki/1617716381/ 2021/04/06〜
0x22 https://rio2016.5ch.net/test/read.cgi/denki/1636738259/ 2021/11/13〜
では、質問どうぞ 乾電機という会社の看板見ると、いつも
か・・・乾電池 と空目する カット不要で 従来のカットソウよう部材に
相当する布片を編み上げるマシーンがもし登場したら
それも分類的には3Dプリンタの一種なのだろうか・・・ 編みこむというとニット製品のイメージになっちゃうけど、
ペレット供給の熔解射出で糸を形成して 織ったり糸同士を溶着とか
繰り広げつつ被覆を形成する時代がそのうち来るのかもしれんね
立体スキャン状況下でのストレッチ運動で形状+可動域を計測して
余計なしわを抑制した、立体裁断を超えた無裁断でワンピースな部品数の被服。
ペレット切り替えで色も任意に途中で切り替えたり、挑戦すべき課題はいろいろありそうやね
PICがどこまで絡むかしらんけど; そうだったここはPICスレだ。
すっかり忘れてしまってるけど。 ジイさんは
すぐに話題がそれて昔話しだすから
やだよ。 AVRスレにはゆるAVRスレが有るからゆるPICスレ作ろうぜって思ったけど需要ある? 建ててほっといてみればいいと思うよ
需要無ければデータ落ちするから これをきっかけに
ゆるArduino・ゆるSTM32・ゆるESP32・ゆるRaspberryPi・ゆるEtc・・・・・
と増えていくことに ごめん、そこまで考えなくてスレ立てちゃった
鬱だからちぬわ キツめだとすぐ終わってしまう
ゆるめの方が長く楽しめる 右も左も分からないPIC初心者です。
Watch Dog Timerをセットして
main()の中でクリアするようにしました。
実際にWDTのTimeOutエラーを、わざと起こさせたいのですが、
どのようにして行うものでしょうか。
__delay_ms()で遅れを入れてBuildしても良いのですが、
それだといきなりかかってしまいます。 スイッチ入力検出したらフラグを立てて、
フラグが立ってたら WDTの値をクリアしないようにしたらどうよ? お二人様、ご指導有難うございます。
なるほど、外部の信号を取り込めば良いですね。
発想が豊かですね。ありがとうございます。
あと、もう一つSiriたいことがあります。
PIC18F...とPIC18LF...の違いは、電圧の違いだと思っていますが、
データシートの中で、FとLFは、ここが違っているよ、と
説明してありますでしょうか、それとも
自分で全部を読んで差分を求めるので。ょ赤。
宜しくお願いします。 MCCの生成したコードについて質問があります。
================MCCが生成した eusart1.c の中 ==========================
(1) void EUSART1_Receive_ISR(void)
{
eusart1RxStatusBuffer[eusart1RxHead].status = 0;
if(RCSTA1bits.FERR){ ・・・・・・} ←中身省略
if(RCSTA1bits.OERR){ ・・・・・・} ←中身省略
if(eusart1RxStatusBuffer[eusart1RxHead].status){
EUSART1_ErrorHandler();
} else {
EUSART1_RxDataHandler();
}
// or set custom function using EUSART1_SetRxInterruptHandler()
}
(2)void EUSART1_RxDataHandler(void){
// use this default receive interrupt handler code
eusart1RxBuffer[eusart1RxHead++] = RCREG1;
if(sizeof(eusart1RxBuffer) <= eusart1RxHead)
{
eusart1RxHead = 0;
}
eusart1RxCount++;
}
================mian()に書く ==========================
(3) EUSART1_SetRxInterruptHandler( hoge1 );
================別のところに書く ==========================
(4)void hoge1(){
・・・・・・
}
通常、自分で何も書かないと、受信割込が入ったときに
(1)が実行され、その中で(2)が呼ばれると思います。
ここで(1)の中の説明
// or set custom function using EUSART1_SetRxInterruptHandler()
にあるように、main()に(3)のように書くと、
自分の関数を指定することができ、受信割込が入ると(1)(2)は実行されずに
(4)が実行されると思います。
実際やってみると、受信割込が入った時点で暴走して、タイマー割込も含めて
全てが止まってしまいます。
では、(1) (2) の中身を(4)にコピーするとビルドエラーが
「この変数は知らない」
「この変数は知らない」
「この変数は知らない」
「この変数は知らない」
とたくさん出てビルドできません。
私は何か勘違いしているのでしょうか?
よろしくおねがいします。 転職した会社がPIC使ってるから初めてPICのデータシート見たけどすげーわかりづらいな
レジスタの説明手抜きとか勘弁してくれよ 今やどんなマイコンも開発環境にコード自動作成があるから初期化とか割り込み関係は任せる。
PWM関係はマジにデータシート見ないと駄目だけどな。 エラータ、エレイタ
まぁ、エラッタて詰むより、バグで詰むのが殆どだろうな。 夢と理想だよ
余裕があれば、定義してあるヘッダーファイルもな インクルードと言えば・・・あれやな。
ボブ:やぁジョン! ところで、一番長い英単語って何か知ってるかい?
ジョン:さぁ・・・なんだろうな。わかんねぇや。
ボブ:答えは 笑顔 さ。
ジョン:ちょwww おもいっくそみじけぇじゃねえかw なんでだよwww
ボブ:だって、一マイル以上あるだろ?
あ すまいる いんくるーどず まいる:ー) なんちって!
じょん&ぼぶ:HA! HA! HA! >>877
構造体がUARTのCファイルに書いてあるから、static除いてexternしないと使えない。
初期化だけまかせて、あとは必要な部分だけを切り取って使ったほうが楽だと思う。
要らない部分はすべて消して、必要なところだけを実装したほうが、コードも速い。 >>889
年取って頭の回転がニブくなったせいか、理解するまで3秒かかったw
登場人物が英語圏と日本語圏のどちらの人間か、それともバイリンガルか、と悩むw
しかし君って天真爛漫、融通無碍、変幻自在、天衣無縫・・・(以下謹んで省略)やなぁw >>876
Fはコア用のレギュレーターを内蔵してるので、電圧範囲広いがスリープ時の消費電力大きい。 以前のMCCの設定内容を、今回のプロジェクトに適用したいとき、
MCCで、また1から設定するのは、面倒なので、簡単に行う方法はないでしょうか。
xxx.mc3というファイルがそれっぽいと思うのですが、
どのようにして現プロジェクトに食わせるのか・・・ 連投すみません。もう一つ教えてください。
完成したプロジェクトの、プロジェクト名を変更するには、
例えば aaaVer0.XをaaaVer1.Xに
Windows上で勝手に変更しても、よいものでしょうか。
それともMPLABの機能に変更する何か有りますでしょうか。 >>895
フォルダごと移動したらダメだったから
たぶんダメ
調べてわかったら教えて PIC32MX210F016Bをデバッグしたい場合って純正のデバッガ(SNAPとか)を買う必要があるの?
それとも汎用のJTAGアダプタとかでデバッグ可能? エラッタまみれでまともに動かないの
よく使おうと思ったねえ
メモリ足りなくてUSB HOSTになれないんだっけ まったくだ、メモリ少なすぎだろ
ってMX220F032B使ってるが
ちなみにエラッタって何があるのか気になる >>900 見たいな事言う奴に限ってエラッタに遭遇なんてした事ない。
ついでに使った事もない。 今の印象は
・シンプルなUSB HIDデバイス用
・流石にEZ-USB RAM 8K(プログラム込み)/ROM 0Kよりは使えるだろ
・安い
な感じ。比較対象はRL78G1C RAM 5.5K/ROM 32K
特にPIC系は未経験なので開発環境も含めて検討中 MPASMとか使えなくなってるし開発環境とかも
なじみ無いから PIC使ったことあるという認識だったけど
これからはPIC初心者という自覚をもって生きていきます・・・(^p^;)ぜんぜんわからん だめだー (pic-as風に書き直したのが)うごかん;
逆アセンブル機能があれば比較すれば 何処でとちってるのかわかるのかなぁ・・・ぐぎぎ コンパイルできてるならlstファイルとか見ればいいのでは? >>906
MPLABXIDEのファイルsビューで
mapファイルとかsymファイルは並んでるんだけど
リストファイルが見当たらんのよなぁ・・・ぐぎぎ
>>907
ハハハ こやつめ ハハハ(三国志AA略 ORG 0x000とか
ORG 0x004が無視されて(マニュアルには同名の予約語があり
エラーにもなっていなかった、おそらく違う意味になっている様で)
0x5F1番地以降にコードが展開されてるw
リストファイルの出力方法は解らないままだけれどXIDEのProgramMemory窓で発見
Psectとかいう命令でしていするひつようがあるらしい・・・ぐぎぎ dist/default/production/xxx.lst
昔は(今も)PICKIT2で.hexファイルを書くために参照するディレクトリだけど、ない?
16bitや32bitはちなみに、アセンブルファイルは出力されない仕様?
あったらおしえてほしい てかpic-as風に書き直したって、Cで書いてないの? PIC16FとかのPIC Assemblerのリセットベクタはこんな感じで始まるんじゃなかったかな?
;
; Power-On-Reset entry point
;
PSECT Por_Vec,global,class=CODE,delta=2
global resetVec
resetVec:
PAGESEL main ;jump to the main routine
goto main
; ラズパイでmplab xを動かそうと思ったが、CPUが非対応だったorz >>910
ありがとうございます 火曜日に見てみます・・・
>911 アセム爺のひとりでごじます 元のソースがMPASMなのでCでは書いていないのです
>912 ご助言ありがとうございます global表記はいれていなかったかもです
delta=2を入れないとラベル参照部がエラーになりまくってしまっていたので入れた覚えがあります >>914
Cをアセンブラに直したのがlstファイルです。
アセンブラはもともとアセンブラなのでたぶん生成されません。
マシン語と表記方法がわかればhexファイルでいいと思いますが・・・ 初めてPICを触る者です。
PIC18F25K80を秋月電子で買って、XC8をMCCでプログラムしています。
簡単なLチカはできました。楽しいです。
ところがBポートの0と1にLEDを繋いでも、全然光りませんでした。
いろいろ調べたら、アナログ入力になっているみたいで、
出力に設定しただけではダメでアナログをOFFにしてLチカが光りました。
質問なんですが
1. 電源onしたときに、なぜアナログ入力になるのでしょうか。その意図が知りたいです。
2. MCCで、表にoutputで鍵マークを付けているのに、
なぜMCCはアナログ設定を解除してくれないのでしょうか。
宜しくお願いします。 すみません、もう一つ教えてください。
RAポート、RBポート、RCポート、全てのピンはデジタル(?)入出力できると思うのですが、
RB0だとエラーが出ます。以下のような感じです。
RA0=1; // OK
RB0=1; // error出る
RA0=RC1; // OK
RA0=RB0; // error出る
どのように書いたらエラー無しにRB0がデジタル入出力できるでしょうか。
アナログ設定解除の他にまだ何か設定がいるのでしょうか。 .
.
. 【 ※ 警 告 ※ 】
.
>>916,917
ふだん「顔文字やめてください」って言って人
>初めてPICを触る者です。
嘘ついて質問するのやめてください
不快です うん、たしかにちょっと知った人がドヤ顔で返信してくれそうな内容ではある。 >>915
アセンブラもLST吐くよ、というかCからリスト出るの?
cをアセンブラに直したものじゃなくて
コードやラベルがどのアドレスに、はまってるかのリストだからね
アセンブラコードがほしいなら、アセンブラコード吐くオプションがあるはず >>921
それは知りませんでした。
asmを使ったことないので・・・。
Cで書いても出ますよ。
どういうコードに直されているのかを見ています。
正しくはアセンブラではないのですね。 Cで書いたプログラムのアセンブル・リストと
アセンブラで書いたプログラムのアセンブル・リストは
利用目的が微妙に異なるような気がする 古いデバイスしか使わないからうちのPCはまだ古いMPLABXのままだよ
バージョンは4.20、これだとMPASMがまだ使える
ほとんど使わないけどバージョン5.50もインストールしてあってこっちはMPASMは使えずにpic-as使えよって出てくる なーんか いろいろエラーメッセージに対処してきたが
まだhexファイル生成で異常終了して具体的エラー内容ださなくなってきたので
4.20インスコし直しますわ・・・ 情報ありがとうございまする><; で、昔アセンブラで書いたLチカに「タクトスイッチでON/OFF」と「OFF時はsleep」を加えてアセンブルしてみた
OFF時の消費電流が50uAくらいあって何だろうと思ったけどBODがenableになってた
BODをdisableにしたら1uA以下になって測れないくらい小さくなった
ああアセンブラしんどいわ、昔はもっとしんどいプログラムをアセンブラでやってたと思うと今のCは楽ちんだ
特に条件分岐アクティブ'L'のフラグをbtfssとかbtfscで判定するのに反転のクリアでスキップで…
どっちやねん!みたいな 昔っても、1503とかXLPに対応したPICでしょうか・・・
1uA切るのって大変だった気がしたんだけど、気のせいか
LFじゃなくてFシリーズではオンチップレギュレータ関連のレジスタいじらないと
切ることできなかったはず。
アセンブラは超大変。・・・おなかいっぱいです。 なんかスイスイとプログラム作れる俺マジ天才かと思ったが
作ってるものが大したことないオチ まじか・・・
たしか1823とか消費電力どうやっても落とせないと思ってたから
(事実データシートを見るとFは落とせない)
古いのなんてつまらんと思っていたが、そうでもないようだな。 >>929
プログラミングを初めてしばらくすると、殆どの人がそう思うみたい。、
「こんなもんかな、もうコンピュータの事,大体分っちゃったな、
俺ってやっぱ頭良いんだろうな」
私も浅はかにもそうだった。
そんな勘違いしてた頃、雑誌であるプログラムを見て衝撃を受けました。
「今の私にはこんなプログラムは書けない」
大丈夫です、オチに気が付いたなら後は前進あるのみです。 プログラミング関連のスレの中では
PIC関連が最低レベルなのは間違いない そりゃ普通に考えればそうだろ
PICの使いこなしなんてプログラム全振りじゃないし PIC以外はプログラム全振り
という主張じゃないよなまさか
要するに>>933はアホ 933氏が仰ってもいないことを仮定して
それを否定する事で どうしてアホという事になるのか
ぼくみたいな真性のアホにはみじんも理解できないのであった(^p^)なんかいきわまる >>934を仮定しないで>>933の主張?
そりゃ無理だ 勝手に妄想して勝手にいきり立つお馬鹿さん
プログラミングのレベルとかいう前に人間力のレベルを上げたほうがいいんじゃないの? アホなりに考えて、すこしみえてきたぞ
プログラム全振りのスレじゃないから
上位に位置しなくても不思議ではない、程度のニュアンスで紡いだであろう言葉では
あらゆるプログラム関連スレの中でPICが最低レベル という命題の論理を肯定できない、といいたいんやな。
最低レベル の範疇がもつ広さを、PIC関連スレが位置するところを含有する水準まで広げてみてはいかがだろうか。
(まぁ、広げるまでも無く元々最低位置である可能性ももちろんありうるわけだが・・・) ハードウェア直叩きだから最低レベルに決まってるだろ。
ドライバーとかミドルウェアとか上位層をやりたいわけじゃないし。 >>939
おらっ 座布団だ うけとりやがれ!
(^p^)つ 三 ◇ PICとたとえばAVRや32ビットCPUの守備範囲の広さの差は存在すると思う。
でもそんな事より、個人のプログラミング能力差の方がはるかに大きいのでは?
たとえば、
PICの優秀なプログラマ(顔文字野郎みたいな)>> AVRのダメプログラマ
には賛成して貰えるよね。
牛刀で鳥を割く必用もありません。
つぅ事で今日の標語:「バカと挟みとCPUは使いよう」w
みんなの嫌われ者<ことわざジジィ>より
追: 今日の夕食は金沢カレーです。これから準備します。
キャベツを千切りにするのですが、指を切らないか怖いんだよね。
電子工作化出来ないかな? 低レベルプログラミングというタイトルの本が初心者向けコーナーに置いてあった…
みたいな話を思い出した
(多分そういう事じゃないと思うけど) printf("発言");
__delay_us(少し);
while(1){ printf("発言"); } 何の抵抗もなく_delayを使うのはホビープログラマの特徴 >>948
文字液晶の書き込みパルスは、
delay以外、どんな方法行うのですか?
タイマーをスタートして、タイマー割り込みでやるのですか?それはないだろう >>949
たいした時間じゃないからdelayでOKですよ 問題が発生しないなら何でもいいよ
職業プログラマでそんな作りをする奴がいたら即縁を切るけど レス数が950を超えています。1000を超えると書き込みができなくなります。