TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
これから需要のある技術とは?
ソニーの再建策を皆で考えるスレ in 電気・電子板
初心者質問スレ その132
鬱でも必死で会社に言ってる人【電電−8】
PIC専用のスレ Part50
 秋月電子がTI製品(NS/Burr Brown)の取り扱いを停止
トランジスタ技術のスレ 3
【RaspberryPi】1ボードPCを語るスレ14【Pine64】
LTSpice使います。いや、使いたい。 その2
【RaspberryPi】1ボードPCを語るスレ15【Pine64】

初めてのPIC 0x15


1 :2019/09/07 〜 最終レス :2020/06/13
.
  _       _    PICをさわるのは今日が初めて、という超初心者のためのスレです。
  (O>――<O)    PIC選び、PICを使った回路は、誰でも最初は不安なものです。
  / (・) (・) ヽ    恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
  ○ /▼\ ○    質問のしかたは、初心者質問スレの発言1を見てくださいね。
  |(ヽ二フ ) |    
  /  ̄ ̄ ̄ ヽ  
 f ヽ     / |  PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
 ヽ \  / ノ    ・PIC専用のスレ
  | \_ )(_/ !       本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
  |       |       ここの話がわかるようになれば、あなたはもう一人前のPICerです。
  |       |    ・マイコンソフト 悩み事相談室
  |   | ̄ ̄|  |      マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
 (_ノ    ヽ_)

質問するときは…
 ・PICの型番と開発環境を明記しましょう。
 ・プログラムは、レス内に直接書き込まず右記を利用しましょう。 ttp://codepad.org/  ttps://pastebin.com/
 ・解決したら結果報告しましょう。
 ・Atmel買収以降アンチによる荒らしも横行しているので無視しましょう。
 ・ここはPICますコンのスレです。AVRの自慢話は「AVRスレ」でお願いします。
 ・先輩たちの雑談は「PIC専用のスレ」でお願いします。初心者に迷惑です。

ハード、ソフト情報
 ・統合開発環境 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の中華クローンも十分な性能が報告されています。

過去スレ
 0x14 2019/06/10〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1560111789/
 0x13 2019/02/15〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1550166200/
 0x12 2018/09/19〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1537343778/
 0x11 2018/08/05〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1533446166/
 0x10 2018/06/29〜 ttps://rio2016.2ch.sc/test/read.cgi/denki/1530265723/

では、質問どうぞ〜っ

2 :
oo|o|oo|oo||o|o||o|oo|o|ooo|||ooo||o||o|oooo|||||o||||||ooo|oooo|||ooooo||||
||oo|o||o|o|||||oo||oo|o||oo|oo||o|o|ooo|||ooo|o|o||ooo|o||o||o|ooo|||o|oooo
oo|o||oo|o|||oooooo||oooo||o|oo|o|oo|||o||o|o||||oooo|||o||o||oo||oo||oo|||o
o|ooo|||oo|o|ooo||o|o||||o||o|||oo||o||o|||o||ooo|||oooo|ooooo||ooo||o|ooo||
|o|oo|o|o|o||o||||o|o||o|ooo||ooo|o|||o|o|o|o|o|oo|o|oo||o|ooo|o||oo||oo|o|o
||||||oooo||oooo||ooooo|||o||o|oooooo|o||o|o|o|o|||o|ooo|o||oo||||o||o|o||oo
oo|||o||||o|||||||o|oooo|oo|||o|||ooo|oo||ooo|oooo|o|o|o|||||ooo||o|ooo|oooo
ooo|ooooo||oooooo|||o||||oo|ooo|||oooo|o|oooo|||||o|||o||o||oo|||||ooo|o||||
||o|oooo||o|ooo|o||||||oo|oo|o||o|||oooooooo|||||o||oo|o|||||oooo||o|||ooooo
|o|oo|o|o|o|o|||o|o||||o|o|oo|oo||ooo|o|oooo|o|||o|||||oo|o|oooo|oo|||oo|o|o
|oo|ooo|o|ooooo||||oooo|||o|ooo||oo||||oooo||oo||||||o|||oo||o||ooo|||o|o|oo
|oo||oooo||o|o|o|o|o|o|o||o|oooo||o|||oo||o|oooo||oooooo||||o|o|||oo||oo||||
oooo|o|o|||ooo||o|o|oo||o|o||o|o|ooooo||ooo||oo|||||oo||o|o||oo|oo|||oo||o||
o||oo||||oo||o|||oo|o|o||ooo|ooo||ooo|oo||||o||oo||o||o|||ooooo|oooo|o||||oo
oo|ooo|||o|o||oo||oooooooo||oooo|||||ooo|o|ooo||||||o||oooo||o|||||o||oo|o||
o|||o||||o|o|ooo|oo|oo|oo|||oooo|o|||||o||||o|o|o||ooo|ooooo||o|oo||o|o|o|oo
o|oooo||o||o||oo||o||||||o|oo|ooo||||o||ooo|ooo|||o|o|||ooo|o|ooo|o|||o|oooo
ooo|||||||||o||o|ooo||oooo||oo|ooo|oo||oooo||ooo|o||o||o||o||o|||o||ooooo||o
o|o||||oo|oo|oo|||oo||oo|o|||||||ooo|||oo|ooooo|||||ooo|ooo||||ooo|o||ooo|oo
||||o|oo||||||o|o||||o|oo|oo|oo|oo|ooo||o||ooo|||o|oo|oo|||oooo|o|oo|oooo||o
||o|||o|ooo||o|o|o|oo|ooooo|||oo|oo||o|oo|o|o|o|oo|||o|oooooo|||||o|||oo|o||
o||oooo||oo|oo|||o||oo||ooo|||ooo||o|||o|o||oo|||o||o|o|||||||o|oooooooooo|o
o||o|oo|o|o|o||||o||oo|oo|ooo|oo|o|||o|||o|o||oooo||ooo|||o|o|||o|oo|ooo||oo
o|ooo|ooo||oo||o||o|o|oo|o||o||o||o|oo|oo|ooooo|||||o|oo|o|||ooo||oo|o|o||||
oo||||o||oo||ooo||o||o|||o||oo|o||oo|||oo|o|o|||o|||oo||oo|ooooo|oo|ooo||ooo
oo|||ooo|oooo|oo|o|o||ooooo||o|||oo|oo|||o||||o||oo|||||ooo|||||o||ooooo||oo
|o||o|||oo|o|oo|||||ooo|ooo||ooo|oo|||o||||oo|oo||o|||oooo||ooo|oo|ooo|||o|o
o||oo|o||||oo||||oo||o|oo||o||||||||||o||o|oo|oooooo|oo|oooo||oo||oo||oooooo
o|oo|||||oo|o|o||oo|o|o||ooo|oo|o||ooooooo|||ooo|o|o|oo||||||oo|o||||||ooo|o
|o||o||o|||oo|o|oo|oooo||||oo|oo||o|||o|o|o|o|oo|oo||o||o|||o|o|oo|o|oo|oooo
|oo||||ooo|ooo|ooo||oo|o||oo|o|o|o|ooo|oooo|o||||oo||oo|oooo|o||o||||o||||||
o|o|o|o||||o||||o||oooo||||oo||ooo|ooo|oooo||o||oo|oo|oo|ooo|||o|oo|||ooo|||
|o||oo|o|o|oooooooooo||ooo||||||o||oo|oo|||o|oo||o|o|||oo|o|||ooo|oo|o|o||||
||o|ooo||o||o|o||ooo||ooo|ooo|oo||o||o|o|oo|||oo||o|o|o|||||||o||o|ooo|ooooo
oooo||oooo|o|ooo||o|||o|oo||oooooo||o||o|||oo|||o|||oooo|||ooo|o|||o||oo||||
o|o|||||oooo||oooo|o|o|o|||ooooo||||o||oo|o||ooo||o||o|oo|||o|o||oo||||ooooo
|ooo||||o|oo||o||||oooo|o|ooo|oo|ooo|||oo|||o|||o||o||oo|o|oo|o||ooo||ooo||o
|ooo|ooo|o|o|o|ooo||||||oo|||o||o|oo|||ooo|oo|o||||o|ooooo|||ooo|ooo|||oo|||
||oooo|oooooo||||o|o||o||o|ooo||oo||o|o|o|||||o|ooooo|||oo|o|oo||oo|o|o||||o
|ooooooo|oo|ooo|o|o||o||o|oo|o|o|||||ooo|o|||oo|o|o||o|o||oooo|||oo||oo|||||
o|o|||ooo|o|||||||||o|oo||ooo||o|o|ooo|o|o|||ooo|oooo|o||oooo||o||o|||oooo|o
o|o||o|||oo|o|o||||o|o|||ooooo|o|ooo|o|||oo||o||o|ooo||o||oo|oo|o||o||oooo|o
||o|ooo||oo|o|oooo|||o|oo|oo||o|||||o|oo||ooo|o|||ooo||o|o|oo|o|o|oo||ooo|||
|oooo|o||o||||o||o||o|o|||ooo||||o|o||o|||o||o|oooo|oooo|oooo|ooo|ooo|oo||||
|oo|||||||oo|oooo|ooo|o||ooo|||o|o|oooo||||oo|||||oooo||||ooo|ooooo||oo||o||
o|o||oo|oo|||oooooo|||ooo||ooo|oo|||o|oo||||oo|o|||o|||o||||oo||o|ooo||oo|oo
ooo|o||ooo||||oo||ooo|o|oo|||oo|||ooo||o|o||oo|o||o|o|oo||o|o|o|o|ooo|o|||o|
o|ooooooo|||oooooo||o|o|oo||o|||oo|||o||||o|o|ooo||ooo|o||o|oo|o||oo|||o||||
oo|o|o||ooo|||oo|o|||oo|oo|oo||||||o|oo|ooooo|oooo||||oooo|||||ooo|oo|||o|||
o|||o|o|oo||||oo|o|||||o||oooo||||oooooo||oo|||o||o|oo|ooo|o|o|||oo|||oooooo

3 :
2007年から2018年までの汎用マイコン市場ランキング
https://image.itmedia.co.jp/ee/articles/1909/27/l_tt190927STM_001_2_w290.jpg
2018年
1位 Microchip
2位 STMicro
3位 ルネサス
4位 TI

4 :
初めてのピックってなんかヤラシイ

5 :
またツマラヌモノヲ作ってしまった

6 :
おいちゃんたち隙なの?
他にやることないの?

7 :
>>1Z

8 :
>>3
PICは小口でも買いやすいからな。

9 :
>>992
もっと具体的な使用目的がわかればもう少し具体的な回答ができるのだが・・・

※少しソースを修正した
#define SerialInputBufSize 20
void main(void) {
SYSTEM_Initialize();
INTERRUPT_GlobalInterruptEnable();
INTERRUPT_PeripheralInterruptEnable();
uint8_t InputBufCount = 0;
uint8_t SerialInputBuf[SerialInputBufSize];
while (1) {
if (EUSART_is_rx_ready()) {
uint8_t ReceiveValue = EUSART_Read();
EUSART_Write(ReceiveValue);
if (ReceiveValue == '\n') {
printf("\ninputdata\n");
for (uint8_t i = 0; i < InputBufCount; i++) {
EUSART_Write(SerialInputBuf[i]);
}
printf("\n");
InputBufCount = 0;
} else {
if (InputBufCount == SerialInputBufSize) {
printf("\n!! buffer over !!\n");
} else {
SerialInputBuf[InputBufCount++] = ReceiveValue;
}
}
}
}
}

10 :
・プログラムは、レス内に直接書き込まず右記を利用しましょう。 ttp://codepad.org/  ttps://pastebin.com/
読む気せん。

11 :
>>9
昨晩
http://rio2016.2ch.sc/test/read.cgi/denki/1560111789/996
で回答をいただいた者です。

なんとなく理解できるのですが、

uint8_t ReceiveValue = EUSART_Read();
EUSART_Write(ReceiveValue);

ここだけ理解できません。これはEUSART_Readで受け取った一文を即、EUSART_Writeで返信しているで問題ないですか?
それともハードウェアのバッファにためてます?

前スレでもうまく説明できませんでしたが、受信先と送信先は別になる可能性もあります。片方ソフトUARTとかもあります
手動入力とかもありますのでReceiveValueにLFが出てくるまで一文字ずつ受け取ればいいでしょうか?

http://rio2016.2ch.sc/test/read.cgi/denki/1560111789/995
さんの言うように、kbhitを繰り返して1文字づつ取り込んだ方が早いんでしょうか?

めんどくさいやつですみません。
ちょっと体調が悪いので、レスはすぐに返せないと思います。

12 :
>>11
EUSART_Write(ReceiveValue);
ターミナルソフトにエコーを返す為です
ソフトのローカルエコーがONなら必要ない動作です

質問の内容が分からなかったので、1バイト以上のデータを受け取るサンプルを作りました
具体的な目的やシリアル通信に使うデータフォーマットが分かれば対してのアドバイスができると思います

・ターミナルソフトでA〜Dのキーで変数の入力先を選ぶ1〜9キーで特定の変数を入る
・ターミナルソフトでコマンドを入力して動作させたい
・ターミナルソフトで動作確認するが最終的には別のマイコンからのシリアル入力で特定の動作をさせたい

13 :
色々隠しててすみません、出来れば自分で作っていきたかったので。
でも今思うとXCとCCSCでは環境変数がほとんど違いますね…。

ローカルエコーだったんですね、それならわかります。

ターミナルソフトもしくはマイコンで入力された信号を分配したいと思っています。
if(kbhit(upper))はこの命令通り、物理的に入力先を見てます。現状3つの入出力先があります
(ほかの入出力先もkbhitで監視してます。フォーマットは後述しますが、一般的な装置からの信号は全部upperに行きます)
フォーマットに従った信号のみ、upper以外にも振り分けます。

挙動
・上記の様に物理的に分配です。
例えば入力信号が「1,a」とでしたら、1番チャンネルから「a」のみ出力されます。
逆に下流から「100」とくれば、フォーマット指定に反しているのでupperにそのまま「100」が行きます

このため、全文字をいったん取り込んで1番と2番の文字を読み込み、
2番が「,」であることと1番がアドレスであることが必要になります。
この2つを満たしていない一般的な機材の場合は特にエラーも出さず、upperに流すだけの挙動を行います。
(UART信号でのみ行き先と中身を指定します)

最終的にはターミナルソフトなしでも動くシステムも組めるといいのですが、
挙動観察や単純なテスト用途も含めUARTをUSBに変換してPCに繋ぐ事も考えています。
今は特にPC側からの入力用途に適していないのが問題で、ここが一番聞きたいところです。

14 :
見よう見まねで作ってみましたが、全角スペースがプログラムをダメにする
ことを発見するのに本日の時間と全精力を使い果たしてしまいました。
必要なことはコメントアウトとして書いているつもりです。
プッシュボタンを一回押すたびに出力が切り替わるつもりだったのですが、
ずっと同じ動作を順番に繰り返すだけです。どなたかお助けくださいまし

http://codepad.org/c3asmfBR

15 :
スイッチがONになったかどうかは見てるけどOFFになったかどうかは見ていないけどいいのかな?、これだとスイッチがONになっている間20msごとにどんどんカウントアップしていっちゃう気がする

16 :
>>13
http://codepad.org/0sEG1mmd
複数のPICデイジーチェーン接続して目的のPIC宛のデータのみ利用する感じのコード書いてみた
ストロングゼロ梨うめぇ〜

>>14
入力に使ってるスイッチ(RA0)のプルダウンしてある?

17 :
>>14
スイッチを押すたびに、って動作を実現するには、
押していることを見るのではなくて、解放から押された状態に変わったことを
見ないといけないし。そのしくみがはいってるでしょうか。

それしかしない、のならば、たとえば
・前回状態をおぼえる変数 zenkaiJotai を用意。
・無限ループの先頭でチャタリング除去時間を待つ。
・スイッチ状態を読んで konkaiJotai に入れる。
・zenkaiJotai が OFF で、konkaiJotai がONなら何かする。
・zenkaiJotai に konkaiJotai を入れて、ループの先頭に戻る。

チャタリング時間以上の間隔でスイッチをサンプリングして、
前回のサンプリング値と今回のサンプリング値を比較します。

あと、個人的にはIME設定でスペースは常に半角にしてます。
全角スペースは普段から使わない。

18 :
一応実機でテストしといた
https://i.imgur.com/OG6b3qh.jpg
IDを設定した複数台のデバイスで指定されたIDのデバイスだけ反応する

19 :
>>14
http://codepad.org/ym9Fem6Q

20 :
>>15
たしかにどんどんカウントアップしていってるだけの動作をします。
チャタリング対策以前に、こういう場合に要求されるプログラムの
基本的な構造を理解していないのが原因かと思います。
ご指摘ありがとうございました。

>>16
ブレッドボード上では行なっています。

>>17
貴重なご指摘ありがとうございます。ご例示いただいた変数をそのままの
表現で整数としてプログラムに登録し、ああでもない、こうでもないと
七転八倒しながら試しております。全角スペースは全く死角でした。

>>19
せっかくご回答いただきましたが、やはりスイッチに反応せずくるくると
回るだけのようです。なにか根本的な見落としが私の側にあるのかもしれ
ませんが。ご回答多謝。

21 :
>>20
一応実機でテストして意図したと思われる動きはしたのでスイッチに反応しないってことは無いはず

スイッチ部分の回路以下の状態になってる?
PIC(RA0)−┳−SW−−−VDD
     ┗ー抵抗ーーVSS

22 :
>>21
みてみたけど、押してる間じゅう400msごとに状態が変わるように見える。

23 :
>>20
トグル動作を実現させようとする場合は今のスイッチの状態だけではなく過去のスイッチの状態を記憶しておいてその2つの情報をもとに次の動作を決める
という処理をするとうまくいきます。「状態遷移」といいます。

これは一例です。冗長な部分があるので動作に支障のない部分や共通化できる部分は削除してもっとシンプルにできます。
https://i.imgur.com/KbPUCvu.png
「以前の状態がXXで今回のSWがSSの時→YYの動作をする(またはしない)、状態がZZに変化する(または変化しない)」という考え方
このような考え方を身に付けておけば他の用途にも応用できます。

24 :
>>20
こんな感じで動くはず
https://streamable.com/zis1b
まだ解決出来ていないようなら、ブレッドボードの写真うp

25 :
>>24
ちょん押ししてる…

ずっと押ししたらどうなります?

26 :
質問お願いします。
Windows10Pro64bit/MPLAB X IDE v5.25/XC8(v2.10)/PICkit4にて
Make and Program Device Main Projectを行ったところ、Outputウインドウに
以下のエラーが出ています。16F57に自分で書いたプログラムで実行したときと
16F1827にネットで公開されている回路とプログラムをそのままコピーしたもの
両方で出ているので、根本的な部分から間違っているのだと思います。
>Reception on endpoint 129 failed (err = -10121)
>
>Connecting to MPLAB PICkit 4...
>Currently loaded versions:
>Application version............00.02.00
>Boot version...................01.00.00
>Script version.................00.03.10
>Script build number............5aef1e175b
>Reception on endpoint 129 failed (err = -10121)
>
>A communication error with the debug tool has occurred. The tool will attempt to recover momentarily.
>Connection Failed.
>Transmission on endpoint 2 failed

ググってみて行ったことは
Windowsのデバイスマネージャでドライバの再インストール
ケーブルを付属品と市販品、いろいろ変えてみた
MPLAB X IDE再インストールです。

何か他に試すような情報がありましたらお願いします。

27 :
>>25
その部分も動画で上げてる(推測の通り400msごとに切り替わるよねw)
おそらく質問者(14)はボタンを押してない状況で切り換え動作が止まらないのだと思う

>>26
プログラムに原因はないと思う、もしあればコンパイラの方でエラーが出る
同じエラーの経験がないので近いエラーからの推測だけど、Pickit4とPCの接続や通信には問題ないと思う
Pickit−−PICの間での問題と思われる

考えられる原因と対策
・PICが対応できていない→可能性は低いが稀にある
※対応リスト C:\Program Files (x86)\Microchip\MPLABX\v5.25\docs\Device Support.htm
(このリストだと16F57,16F1827はイエロー)
・Pickit4のファームウェアが古い→ファームウェアを上げる
(最新はApplication version............00.05.14)
・配線の問題→接続よく確認する&ICSPなら書き込みボード等を使い単独で接続してみる
PickitとPicの接続でよく使われるデュポンワイヤーは粗悪品もよく見るので要注意
・電源の問題→Pickit4の最大給電能力は50mAです(初期設定は給電OFF)
・ソフトの問題→試しにMPLAB IPEでの書き込みを試みる(書き込みしなくてもConnectできるか様子を見る)
・説明書を読む→http://ww1.microchip.com/downloads/jp/DeviceDoc/50002751C_JP.pdf
・ファームウェアの故障→可能性は凄く低いがリカバリーモードを使い初期化する

※以下正常に書き込みできた時のログ
Connecting to MPLAB PICkit 4...

Currently loaded versions:
Application version............00.05.14
Boot version...................01.00.00
Script version.................00.03.10
Script build number............5aef1e175b
Target voltage detected
Target device PIC16F18326 found.
Device Revision Id = 0x2002

Calculating memory ranges to program...

Erasing...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x1f
program memory: start address = 0x760, end address = 0x7ff
configuration memory

Programming/Verify complete

※無理やり通信を不安定にさせて書き込みを試みた時のログ
You have set the program speed to Normal. The circuit on your board may require you to slow the speed down. Please change the setting in the tool properties to low and try the operation again.

Failed to get Device ID. Please make sure the target device is attached and try the operation again.
Connection Failed.
Transmission on endpoint 2 failed

28 :
※無理やり通信を不安定にさせて書き込みを試みた時のログ(間違い)
MPLAB IPEでCONNECTしてる時にX IDEで書き込みを行った時のログだったメンゴ
宝缶酎ハイx3だからね

もうねうまくいかないならPickitと添寝するしかないじゃん

29 :
>>21
ご面倒をおかけします。
実はPCが突然USBを認識しなくなり、別のマザーとCPUを用意しwin10を
インストールする羽目になりまして、あたふたしています。
その作業は終わりましたが、PICのほうは明日というか今日試します。

>>23
なんどもありがとうございます。PICKIT3へのPIC逆刺しやら、PICへの電源供給
をVdd、Vss逆にするなど慌てたり寝ぼけたりで、それらが原因でなのか、
PCが壊れてしまいました。そっちはどうにか復旧しましたが、いただいたダイヤ
グラムをこれからよく勉強します。

>>24
かならずご報告します。接続を失敗した16F88は動いてはいるようですが、素人考え
ながらPICへの電源の逆差しはダメージが大きい可能性がありますのでPICは新品を
秋月に注文しました。16F88は古いわりに値段が高くてびっくりです。16F1823
くらいで始めればよかった、と後悔しています。
PICKIT3もおかしくて、気が付くとアクティブランプの赤が常時点灯の緑の中で
1秒間隔ほどで短く点滅するようになってしまいました。(ステータスランプ
つきっぱなし)そっちも注文しましたが、長期戦を覚悟しました。
ありがとうございました。(マニュアルを読み飛ばしたかもしれませんが)

30 :
>>29
接続間違いによる故障(PIC・PICKIT・USB) もしPICの書き換えにICSPではなく書き込み専用のボードなどを使ってるなら(PICKITから電力供給)それが原因でPICやPICKITが壊れることは考えにくい

ICSPでPCのUSBが電気的な原因で物理的な故障したとすれば、PCとPICで使ってる電源が絶縁がされてない可能性もあるかも(可能性は低いと思うけど)

多分Pickit3に問題ないと思う
PC( X ide or IPE )-Pickit3-PICの接続で
上から緑・青・緑(1秒に1回程度赤点滅)で正常

(ユーザーマニュアルより)
1.2.5 インジケータ LED
インジケータ LED は、PICkit 3 の動作ステータスを表示します。
1. POWER ( 緑 ) - PICkit 3 に USB ポートから電源が供給されています。
2. ACTIVE ( 青 ) - PC の USB ポートに接続されて通信リンクがアクティブです。
3. STATUS (3 色のいずれか )
正常 ( 緑 ) - 開始する準備が整ったか、正常に完了しました。
ビジー ( オレンジ ) - プログラミング等の動作を実行中です。
エラー ( 赤 ) - エラーが発生しました。

31 :
>>27 >>28
別PC環境が用意できたので、そちらで試してみたところ同じ現象でした。
どうやら初回接続時にPICKITがコケていたらしく、PICKITを初期化して
何度か再起動と抜き差しをしていたらどちらのPCでも
エラー無く使用できるようになりました。
アドバイスありがとうございました。

32 :
>>30
たまたま連日帰宅が遅くてご返事が遅れてすみません。
PICKIT3は正常に動いている可能性大であることは了解しました。
これで心置きなく、週末には初心者コーディングに没頭できそうです。
ICSPではなくゼロプレッシャーソケットを使った自作の専用書き込み器
を使い、PCの電源とは分離されています。
古いルーターかなんかの5V1Aスイッチング電源のプラグを切り飛ばして実験用
電源として流用して使っています。
PICKIT3が壊れたんじゃないか、と疑ったのはIDE XでPICに電源の5Vを与える
設定をしても、アウトプットにデバイスを認識した表示が現れず、赤い文字で
デバイスがない旨の表示が繰り返されたことからでしたが、なぜか今は同じ設定
なのにデバイスIDが見えています。

いろいろありがとうございました。

33 :
>>32
http://detector.xsrv.jp/mplabx%e3%81%a7%e3%81%aepickit3%e6%9b%b8%e3%81%8d%e8%be%bc%e3%81%bf%e9%9b%bb%e5%9c%a7%e3%81%ae%e8%a8%ad%e5%ae%9a
これじゃない?
PICkit3はものによって出力電圧が低いことがあるから4.75Vとかに設定するとうまくいくことがある

34 :
ググれよ

35 :
>>14
暇だったのでコード書きなおしてみた
参考になればいいけど・・・

初心者向けに書いたコード
http://codepad.org/EHI5vSUz

見た目をすっきりさせたコード
http://codepad.org/GU0EOyy0

何かと急ぐ人向けのコード(`・ω・´)シャキーン
http://codepad.org/t4cXuGZM (参考にならない例です)

36 :
>>35
回路図はないですか?

37 :
>>36
https://imgur.com/a/jg18GNf
予想図だけど・・・

38 :
>>37
ありがとです

39 :
あれ画像の貼り付け方間違ってる( ^ω^)・・・
張り直し https://imgur.com/cbuSYeM

>>38
しかし何の目的でこんなの見たかったの?

40 :
>>33
この設定は当然やっていたのですが、理由はわかりませんが一時的に
認識されませんでした。4.75Vのことは知りませんでした。
ありがとうございました。
>>34
死に物狂いでググってはいるのですが・・・
>>35
ありがとうございます。理解に時間がかかると思いますが、試させていただきます。
自分で到達しないと意味がありませんので、内容についてはお尋ねさせていただく
かもしれませんが、その時はよろしくお願いします。
土曜日まる一日かけて、さらに見よう見まねで作ってみたのが、次のようなものです。
http://codepad.org/7sBQoZM5
この期に及んで見苦しいものをさらすのも気が引けますが、ブレッドボード上では
思った通りに動いてはいます。唯一の入力ポートのプルダウンがプルアップに
なっています。コンフィグレーションのMCLRイネーブルはONにしてCR+SBD
(BAT43)でリセット回路をつけるつもりです。
かさねてお礼を申し上げます。

41 :
>>40
見本で上げたコードの内PORTBの出力の辺り間違ってたごめん
×PORTB = 0b00000010; → 〇PORTB = 0b00010001; 4ヵ所

while(1){ // 無限ループ
sw_mae = 0;
sw_ato = 0;
※これだとコードがループするたびに変数がリセットされて意味がない

while(RA0==0){} //スイッチが押されるまで待つ
__Delay_ms(20);
if(RA0==0){
sw_cnt ++;
}
現状のコードだと変数を使わずこれをやってるのと一緒の状態ですね

if (sw_mae == 1 || sw_ato == 1){ //前後の状態が同じ1なら
※ この場合だとどちらか一方でも1(真)ならの意味になる &&が正解

変数として前の状態を記憶するのは正解だともうが、後の状態(今の状態)なら変数を使わず直接RA0と比較すれば良いので変数は不要

__delay_ms(1000);
※変数として前の状態を使用すれば、長いウェイトを使わなくても連続押し(押した状態で連続で判定される)を回避できる

よほど重要でなければリセット回路いらない、MCLRとVDD直結で動く

42 :
>>41
重要なご指摘ありがとうございます。なんともお恥ずかしい限りです。

お手数をおかけしました。

43 :
PIC16F1827を使ってサーボモータを動かそうと思っています
MCCを使っているのですが
タイマー2の割り込みと、CCPモジュールをタイマー1と同期させてコンペアモードを使用してパルスを作ることは分かりました。
この場合割り込みは
タイマー2
CCPモジュール
メインプログラムの割り込み許可設定
のみ許可すればよいのでしょうか?

44 :
>>43
質問の内容がいまいち理解できないので、適確な回答ができませんが・・・
具体的なサーボモータの型番や動き等の詳細を明記しましょう
MCCは楽ですがPICの周辺機能を理解するために最初はレジスタを直接設定した方が理解が早いかな
CCP(キャプチャ・コンペア・PWM)について理解ができてないように感じます
キャプチャ・コンペア → Timer1を使用
PWM→Timer2・4・6を使用
よく使われるサーボーモーターでPICのコンペアモードを使用する状況が考えにくいのですが・・・・
1からサーボモーターを自作するなら使うかな・・・
(コンペアにてモーターのパルスをカウントして停止等を制御する)
なので、割り込み許可設定以前に全体的な仕組みを理解したほうが良いと思います

45 :
>>43
ていうか、MCC使ってるならそのあたりの設定も全部MCCが書いてくれる。
なので、その程度のことを疑問に思うレベルなら一度MCC無しで書いてみることをお勧めする。

46 :
12F1822を使ったキッチンタイマーをつくったときに、タイマー時間を設定するときの入力として
スイッチにつないだピンの内蔵プルアップを有効にして、スイッチを押すとグランドに接続するようにし、if(RA3 == 0)というような形で入力をチェックしたらうまく動作しました。
しかし、別のプロジェクトで、上と同じスイッチを状態変化立下り割り込みで使おうとしたらスイッチを押してなくても勝手に割り込みが発生したり、回路に手を近づけるだけでも割り込みが発生してしまいました。
試しに10kΩの抵抗でプルアップしたところ正常にスイッチを押したら割り込みが発生するという動作になりました。
結果的に解決はしたもののなぜ内蔵プルアップではうまくいかなかったのかもやもやしているのですが、
内蔵プルアップは状態変化割り込みには使えないのでしょうか?PICの故障かと思い、別のものも使いましたが同じでした。

47 :
>>46
内蔵プルアップが働いてない可能性が一番だと思います
MCCを使ったのかレジスタで直接設定したのかにもよりますが、
プルアップの設定がうまくできてるかをよく確認した方がいいと思います

またデジタルテスターが有れば電圧のレンジでRA3の電圧を測ってみると良いと思います
プルアップが有効であればVDDとほぼ同じ電圧が観測できると思います

48 :
>>47
おっしゃる通りでした。ありがとうございました。
テスターで測ったところ、プログラムの初期では電圧が出ていたのが、途中で0Vになっていたのでプログラムを見直したところ
タイマー0の設定でOPTION_REGレジスタをいじったときにプルアップを無効にしてしまっていました。
その部分を修正したところ内蔵プルアップで状態変化割り込みができました。

49 :
エスパー現る

50 :
>>48
MPLAB X IDEだろうからレジスタの設定は以下の方法でやると間違えにくいよ
エディタで入力中にOPまで入力してCtrl+スペースを押せば候補が出てくるから入力も楽だよ
(例)ほかのレジスタも同様です
OPTION_REG = 0b11111010; // 一回で指定(間違えやすい)
OPTION_REG = 0x7D&#8236;&#8236;; // 16進数で指定(もっと間違いやすい)
OPTION_REGbits.nWPUEN = 1; //1bit 毎に指定できる
OPTION_REGbits.PS = 0b010; //3bit まとめて指定できる
OPTION_REGbits.PS0 = 0;// 3bitの部分も1bit毎に指定できる
OPTION_REGbits.PS1 = 1;//
OPTION_REGbits.PS2 = 0;//

51 :
ぎゃーーー! 例の2行目 コピペしたらえらいことに
× OPTION_REG = 0x7D&#8236;&#8236;; // 16進数で指定(もっと間違いやすい)
〇 OPTION_REG = 0x7D; // 16進数で指定(もっと間違いやすい)

52 :
すいません、質問さしてください
ポートを出力に設定して任意の0/1を出力する際はLATに設定しますが(PIC18)
今0/1のどっちを出力しているのかはLATを見ればいいんでしょうか?
それともPORTを見るべきでしょうか?

53 :
PORTを見る。

PORT = 端子の電圧を読み込む
LAT = 出力のFFの出力を見る
の違いね

54 :
シフトレジスタで飛ばし先が増やせると聞いたのですが
それでPWMの制御信号とかおくっても大丈夫ですか?

55 :
ごめんエスパーすら不可能

56 :
飛ばし先とか、おくる、とかあいまいな言葉で聞きかじったり、
考えたりしてちゃだめですよ。

「シフトレジスタを使って増やせる」のは、おそらくI/Oポートの話。
PICのポートより、やりかたによっては、単純にHにしたりLにしたりでも、とても遅くなる。
相対的にスピードが要求されないI/Oポートとして使うのが良いと思う。

「PWMの制御信号」が意味するところは何なんだろう。
たとえば次のようなものが考えられる。
(1)ポートでH/LをコントロールしてPWM信号を作る。
(2)PWM信号を作るICを制御する。

(1)だとすると上述のように、とても遅いので、周期が長いPWMでないと作れないかもしれない。
(2)だとすると、シフトレジスタ経由ではなく、直接マイコンから制御をした方がいいと思う。

57 :
https://i.imgur.com/MNCeti4.jpg

58 :
8桁の1/100秒表示できる
エヴァ風デジタル時計作ってみたいんだけど
クロックってそこまで出せて正確に刻めるものですか?
モヌヌメのPICあればおせーて

59 :
心を開かなければ、エヴァは動かないわ

60 :
負荷駆動力に定評のあるPICでも5,6桁以上は辛かろう。トランジスタでLED駆動するのがオヌヌメ。

61 :
>>58
1/100秒の桁は肉眼ではモヤモヤしている8くらいにしか見えないと思うが
1/100秒 というのはPICからするとすごく遅いから処理能力的には楽勝
正確さは発振器の精度に依存するが、それを正確に分周することも楽勝
問題は 8桁の表示器に何を使ってどうやってドライブするかで必要なピン数が変わるのでモヌヌメが変わるな。

62 :
>>58
>正確に刻める

許容できる誤差は具体的にどのぐらい?

63 :
>>58
https://www.%61mazon.co.jp/dp/B010GX9CA4/
https://www.%61mazon.co.jp/dp/B00YMIKPCO/
例えばこういうのを使うとPICから接続するピンの数が少なくて済むしPICの処理も軽くなる
4桁だったり8桁だったり、コロンが付いていたり付いていなかったり、赤だったり青だったり緑だったり…いろんな種類がある

64 :
カラーグラフィック液晶が安くなってんだから
7セグなんぞ使うのは愚か者の考えだな
エヴァ風と言われてそれしか思いつかない時点でご老体w

65 :
7セグの方がより少ないマイコン資源でできる、というメリットもあるし
愚かと判断するのは一方的にすぎるな。頭がかたい。

66 :
>>58
1/100秒はどうって事ないが、最長100万秒までカウントするわけで発振器によるけど、±数秒の誤差が出る。

67 :
えー。エヴァ風時計って単位が秒なん?

っていうのは横に置いておいて、

>クロックってそこまで出せて正確に刻めるものですか?

これを読んでどう解釈するか、だよな。
算数でも、応用問題は算数ではなくて国語の問題だ、って話があるけど、
エンジニアリングでも、意思伝達の問題であることが多いし。

俺は、1/100というような短い時間を正確に刻めるのか、という質問だと思った。

それと、何風であっても作ろうとしているのが時計だ、と解釈したので、もし時刻の
正確さが論点なら、誤差が出てくる、という話をするときには、日差なのか月差なのかを
明らかにしないといけないかな。

68 :
>>65
安いっていうだけの理由で7セグの選択肢を排除しておいて
人のことを愚か者扱いってすごいな

69 :
58っす

いろいろアザース!

picがどれ程早いのかよくわかってないけど1/100は余裕なんすね
クリスタル発信に挑戦

i/o 7seg+8桁+コロンの足かあればいいかな
あと設定ボタンの足か

7セグなのはとりあえずデジタルっぽいので試すにはいいと思った。
安いし!
ダイナミックで点灯させてみます

フルカラーの液晶でエヴァ風なのつくったら…
ってそこまでヲタじゃねーし初心者にきついです(´・ω・`)

あと月差とか日差も考えたけどNTPかJJYで適当に校正しようかなとw
リセット0スイッチで定時にポチー
って別回路にします

とりあえず…アセンブラかCか試します〜(;´д`)

70 :
>>65
エヴァ風と言われてイメージするものが貧困だって意味だよ
液晶ならかなりの絵的な要望に沿えるのになぜ7セグ縛りなのかと
つまり知識の貧困さが発想を縛ってる

71 :
やめろ折角電子工作に興味持ってくれたのにいきなりグラフィック液晶に綺麗に字描けとかハードル高すぎだろ。
自分が最初にLEDを点けた日を思い出せよ。結構ドキドキしたろ?

72 :
>>69
正確さを求めるなら商用電源AC100Vのクロックも利用できるよ。
50Hz地域ならパルスの両エッジでカウントすれば1/100S(10mS)になる。

カウントアップしつつ、時、分、秒、1/00秒の合計8桁をダイナミック点灯か・・・
うーん、どうなんだろ。私も作ってみようかな、組み立て配線が面倒そうだな。
ところでアセンブラで組むならAVRは如何?

73 :
>>70
何を言おうが結局自分のイメージを押し付けているだけにしか聞こえないな

74 :
>>73
というあんたのイメージを押し付けているだけにしか聞こえないな
っていうブーメラン食らうだけの水掛け論に持ち込むお前はやはり無能
まあ、液晶扱えないスキルの低さの裏返しなんだろうけどさ

75 :
>>74
まあ別にそれでもいいけど

液晶扱えるってだけで
愚か者とか発送が貧困とか無能とかスキルが低いとか
よくまあそれだけ出てくるわw

76 :
>>75
違うよ
扱えないことで卑屈になっているその品格が貧相だと言ってる
違いわからないだろう?
頭冷やしなよ

77 :
どっちだっていいんだけどさ
右を見てエヴァ風だと言う人がどれくらいいるだろうという話
7セグLEDという呼称を知らなかったからエヴァ風と表現したんだとしたら幼稚
https://i.imgur.com/JbNFUqz.png

78 :
誰が扱えないって言った?

そもそも質問者に刺さっていない提案は「独りよがり」って言うのよ
覚えておいてねw

79 :
>何を言おうが結局自分のイメージを押し付けているだけにしか聞こえないな

より狭い価値観を主張する方が「自分のイメージを押し付け」になるだろね。

なお、例外があって
「より狭い価値観を主張する方が『自分のイメージを押し付け』になる」
という価値観の押し付けは善いものとするよ。


で、別の人が見て貧困でもないものを、Aさんが貧困だといって、
Bさんが何を見ても貧困だといわないのなら、Aさんの方が価値観の押し付けだよな。

80 :
ニキシー管をカラーLCDに再現したって豊かだと感じるとは限らないし、
7セグには趣きもあるんだし、LCD万能にみんな従えっていうのもおかしい。
LCD万能だと思う人がいてもいいし、そうではないと考える人もいていい。
みんな同じ考え方だったら、多様性が失われるわけだし。

81 :
>>77
その左と右を比べてもなあ。
むき出しで終わるとは限らないのだし。

82 :
>>77
エヴァ風っていったら100%まず左が浮かぶよね。
でもカラー液晶が使えないから右の7セグのでいいやってんだろう?
押し付けてるって言われても困るわなあ、進歩、進化というのはそういうもの。

83 :
>>81
むき出しでないのを示してから語れ

84 :
>>82
自分ができる分野について、しない選択をする他人に対して、
できない奴は進歩がないとハラスメントをするとして、
あなたは自分ができない(あるいはしない)分野すべてについて、
出来る人から進歩がないとハラスメントを受けることは容認するわけかな?

85 :
>>83
>むき出しでないのを示してから語れ
なんでそういうことになるんだろう。可能性があればそれでいい話。

86 :
さて、話も済んだことだし、次のネタどうぞー

87 :
グレースモークのアクリル板ででも当てとけば十分な話だが。

88 :
エヴァ風じゃなくてエロ風はどう?
https://youtu.be/cBCFD_3g4Hw

89 :
ID:xi28L6g4
コイツか語りだしたらそのネタは締める、っていう共通認識だけは不思議と出来上がってるよなw

90 :
スピーカー出力でメーターっぽいの振らせたいんだけど
レベルメーターかVUにするのは後にしてww
スピーカー出力を一定にして入力に回すにはどおすりゃいいの?
スピーカーの音はぐりぐりVR回せば変わる訳で………
定電圧Di挟むくらいしか思い浮かばない

91 :
ALC ICでググれ

92 :
>>91
さすがパイセン!!これっすよ

レベルメーター回路も拾ってきたので秋葉原行ってきます〜♪

93 :
>>69
電子工作初心者なら
最初は7セグのLEDが良いと思うよ
理由
・電子回路入門にはちょうど良い難易度
・液晶だと1/100の位は表示に難あり(リフレッシュレート&残像の問題)

使用するPICの種類は28〜40Pinの物かな
8Bit系が5V駆動のが多く入門には楽だと思う
選び方としては
・16F1xxxxの型番が良い 間違っても古い16F8xxとか買わない事(ネットの作例に多いので買う人が多い)
・必要なピン数(IOポートの数)の足りる物を買う(途中機能追加とかも考えられるので余裕を見たほうが良いかも)
・安いのから選ぶ(古いものは機能が少ない&値段が高い)
・日本語のデータシートの有る機種から選ぶ(英語が超完璧ならその必要もない)
https://www.microchip.co.jp/download/index.php?Mode=4&CategoryID=08ff3e00bf7fedc9fd6adb0aa9a3499b55a4aff3

16Bit系でもPIC24FV32KA304 ファミリなら5Vだよ
16Bit系は詳しくないのが以下の物なら日本語のデータシートが有る
http://ww1.microchip.com/downloads/jp/DeviceDoc/39995B_JP.pdf

最新機種の一覧
8bit http://ww1.microchip.com/downloads/en/DeviceDoc/30010068F.pdf
16bit http://ww1.microchip.com/downloads/en/DeviceDoc/30010109F.pdf
32bit http://ww1.microchip.com/downloads/en/DeviceDoc/60001455D.pdf

PICライターは中華通販 or AMAZONでPICKIT3互換機が1200〜2200円位(送料込)
Microchip純正品のSNAPが秋月電子で1740円(送料別)

最初はC言語で作ったほうがいいと思う
アセンブラ学ぶのは勉強に良いが最初からだと完成前に投げ出すリスクもある
PIC用のC言語は昔は有料の物しかなかったけど、今はMicrochipの物が無償で使用できる

※そんな事より
エヴァ風の時計作るなら外部電源以外にも電池内蔵して、電源抜いたらキッチンタイマーが動くように作るといいんじゃない?

94 :
初心者に5V品を推すの意味不明

95 :
5Vが入門向けだと考えた理由は何なんだろう。

・5Vならモバイルバッテリや充電アダプタの電圧そのままで使えるから。
・3.3〜5.5Vで動作するものであれば、乾電池3本そのままで使えるから。

ほかの理由がおもいつかない。

96 :
5V系つーても今の8bitPIC はほとんどが3.3〜5をカバーしてるだろ

97 :
esp8266のntpクライアントと時計くっつけるがいい

98 :
93だが
自分でも思うなぜ5vって

あれだ、白とか青とかのLED光らせるのに良いじゃん
あと3.3vだとIO電流の最大値が減ってダイナミック点灯に不利かなって
まあ大した理由はないね

逆に5vを避けた方が良い理由はなんだろ・・・

99 :
電源5vって条件付けただけで使える品種がガクっと減る

100 :
>>98
LED駆動には確かにいい面もあるかも。
そのほか、周辺デバイスで5Vでないと動かないものを使いたい場合とか、だろか。

5Vを避けた方が良いケースは、低電圧I/Fのデバイスを接続したいときじゃないですかね。
電圧ブリッジを使えばいいとはいっても、手組みだったら少しでも部品点数は減らしたいだろうし。


100〜のスレッドの続きを読む
100均太陽電池で電子工作
オシロスコープ総合スレッド part24
原発反対派は精神異常者の集まり
【な】秋月、千石、若松などを語るスレ85【ど】
ネットワークアナライザって何よ?2KHz
ラジオ自作総合スレッド その11
【5球】真空管ラジオ【スーパー】その10
3Dプリンター個人向け@電気・電子板 その40
初心者質問スレ137
[MTM08]MAKEミーティングに出展するぞ
--------------------
MacBook Air 255枚目
サザエさん その10100
【性欲処理】人妻が落としやすい件2【肉便器】
【アプリ版】ステーションメモリーズ!72ヲチ目
水島努×横手美智子のアニメ『荒野のコトブキ飛行隊』 キービジュアル公開  [673871665]
【飯田橋】ペコちゃん焼き【不二家】
【NASA】BE!POP NAKEDは至急集合せよ!3【アルペソ】
【zaif】メンメン・麺屋銀次【2246兆の男】テクニカルにパート10
M J K T
ますたに・ほそかわ part2
【自然派】ビオディナミを語る!【減・無農薬】
☆☆☆ドラム・ドラマー雑談スレ☆☆☆
Linux de ゲーム 総合スレ Part4
【HOLIDAY】ホリデイスポーツクラブ豊橋店 PART 9
TOSHI 306
今更スカイリムを始めた
芥川龍之介part16
【諏訪とか】グラブについて語ろうPART78【南部とか】
ロック岩崎さんが・・・
【DQW】ドラクエウォーク 無課金スレ part.147【コテハン禁止】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼