X



トップページ電気・電子
1002コメント338KB
PIC専用のスレ Part 57
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2018/02/03(土) 23:52:05.99ID:EM0c0L1y
     ______
   /Microchip ./|
 / ( ゚∀゚)   /  | アセンブラのアの字もわからない
 |~ ̄ ̄ ̄ ̄ ̄|  /. 超初心者からHEXが読めてしまう
 |/Z./Z./Z./Z_|/ ||  鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ
  ||. ||. ||. ||
大人気のPICマイコンのスレ
なんといっても情報が豊富だし、開発環境も多いし、パッケージも豊富
使いやすくて、しかも安い。やっぱりPICだよね
例の如く基本リンクだ
http://www.microchip.com/  マイクロチップ本社(Microchip Technology Inc. )
http://www.microchip.co.jp/ マイクロチップ テクノロジー ジャパン 株式会社
http://www.microchip.com/maps/microcontroller.aspx Microchip Advanced Part Selector (Maps)
またーりやっておくんなまし
種類が多くてワカランって奴は上記パーツセレクタで、機能から最適製品を絞り込め!
教えて君はとりあえずGoogle( http://www.google.co.jp/ ) くらい使おう

テンプレ内の秋月小売価格も在庫が捌ければ、次の仕入れからは昨今の為替相場変動にならって
適宜価格改定されてます。ここの表記価格とは違うかもしれないのでそのつもりで

回答者する人の注意
.  最初に回答したい気持ちは分かるけど、質問者の内容を、落ち着いてよく読もう。
質問者する人の注意
.  あなたの周囲しか通じない変な省略語は使わずに、なるべく詳しく説明してね

前スレ:
PIC専用のスレ Part 56
https://rio2016.5ch.net/test/read.cgi/denki/1501476623/
0669774ワット発電中さん
垢版 |
2018/04/14(土) 11:26:11.06ID:8NiDD5ji
>>668
仕様が間違っていたので修正して下さいと言うことなら修正しますけど
別途料金を頂きますよ
0670774ワット発電中さん
垢版 |
2018/04/14(土) 13:20:20.69ID:KdA6YWa2
>>650
その必要性がないのに、「フラグを立て、ポーリングでバックグランド処理」は
プログラムの効率を下げるだけだよ。
(サイズが大きくなって遅くなり、構造が複雑になる)

なんで「割込み処置は管理が面倒」なんだろ。
私にはそんな事を主張する君の脳味噌の管理の方が面倒に思える。
とにかくもっと経験を積み、勉強される事を希望します。
0672774ワット発電中さん
垢版 |
2018/04/14(土) 13:46:57.55ID:XZHHhxlZ
「割り込みが重複」の定義を聞いてるんだから
素直に答えれば良いのに

複数の割り込み割り込み要因が同時に発生
であれば普通に起こりうること
0674774ワット発電中さん
垢版 |
2018/04/14(土) 14:00:43.65ID:E4Vg1Xg4
>>666
>>660はそもそもそんな単純な話じゃないでしょ?って問いかけです。
あなたは少しあわてんぼうさんですね。

CPUのエラッタが気になる人なら、いくら自分が完璧でもちゃんと動作するかどうかは
特に開発段階なら不安になって調べまくるものなんじゃないのですか?
0675774ワット発電中さん
垢版 |
2018/04/14(土) 14:16:32.65ID:gEh3t1C9
>670
他人にレスするのはいいが、自分の意見と異なるからといってすぐに”上から目線の”憎まれ口を書くのは良くないな。
あなたがどれほどの経験を持っているか知ったことではないが、割込み処理の周辺がバグの発生要因になり易い
のは少ししか経験のないものでも否定はしない。

いくら匿名掲示板とはいえ、他人を罵倒するような書き込みは褒めたものじゃない。
不愉快ならレスしなければいい。レスされた方もあなたのようなレスは望んでいないよ。
0677774ワット発電中さん
垢版 |
2018/04/14(土) 14:28:18.54ID:E4Vg1Xg4
>>676

>>660
>必要か不要かを決めるのは何なんでしょうか。
>データシートに書かれていることに従って設計していればテストは不要? まさかね。

>>666
>そんな単純な話ではありません

このやりとりの>>660が質問に見えると?
0680774ワット発電中さん
垢版 |
2018/04/14(土) 15:48:16.44ID:ekKqgmYE
いいえ
わっちょいです
0681774ワット発電中さん
垢版 |
2018/04/14(土) 16:40:49.69ID:rZpcLLsL
メモリーが1ギガくらいあるPICを100円でだしてほしい
0683774ワット発電中さん
垢版 |
2018/04/14(土) 16:59:08.75ID:/lGI+BkU
>>681
1Gbitならなんとか…
0684774ワット発電中さん
垢版 |
2018/04/14(土) 17:55:32.55ID:vsBoAGR5
ううん とうじ たかおにできゃっきゃあそんでた きゃーきゃーか
0689774ワット発電中さん
垢版 |
2018/04/14(土) 21:15:54.35ID:kekLqC2p
「(NAND)Flashメモリーが1GB」なら現在の技術でも不可能でもないかも
(売れないから採算が取れず不可能とも言える)
0690774ワット発電中さん
垢版 |
2018/04/15(日) 01:06:58.75ID:0X55M9a4
ログ溜め込むのにmicroSDやシリアルEEPROM使ってるけど
1チップなら配線も楽だし、さらにコンパクトに出来るな・・・
0691774ワット発電中さん
垢版 |
2018/04/15(日) 01:50:51.86ID:gtNWIpDy
PIC32MX340FでPortB IOをLogicに設定にしようと
ANSELB = 0x0000;としてビルドしたのですが、
"ANSELB" undeclaredとエラーが出ます。

因みに、PIC32MX220Fのときは、このようなエラーは
出ませんでした。
原因を教えて下さい。
コンパイラはXC32 ver1.40 です
0692774ワット発電中さん
垢版 |
2018/04/15(日) 07:51:39.79ID:gHVH8cbG
>691
ここに書き込む前にデータシートを読むようにしないとダメだよ。
PIC32MX340FのADピン機能の設定はAD1PCFG。
ひょっとしたら間違ったデータシートを見ているかもしれないから、
データシートの名前はPIC32MX3XX/4XX Family Data Sheet。
PICは種類が多いから、自分が使おうとしているデバイスのデータシートは
必ずダウンロードしていつでも見られるようにしておくといいよ。
0693774ワット発電中さん
垢版 |
2018/04/15(日) 11:14:37.91ID:0pc7IGZU
質問させてください

PICのtimer1機能を使って外部パルスの数をカウントしようとしているのですがうまくいきません。

・使用PIC:16F1705
・使用コンパイラ:XC8(V1.44)

・外部パルス:100us(high)200us(Low)の繰り返し波形

プログラムの目的としては、外部パルスを検知したらC0PINをhighへ変更


以下プログラム箇所抜粋

//各ピン設定(要調整)
ANSELA = 0b00000000 ; // AN0-AN3は使用しない全てデジタルI/Oとする
ANSELC = 0b00000000 ; // 全てデジタルI/Oとする
TRISA = 0b00001100 ; // A2ピンへ外部パルス入力(RA3は入力専用)
TRISC = 0b00000000 ; // すべてのピンは出力に割当てる
PORTA = 0b00000000 ; // RA出力ピンの初期化(全てLOWにする)
PORTC = 0b00000000 ; // RC出力ピンの初期化(全てLOWにする)

//タイマー設定
T1CKIPPS = 0b00010;
T1CON = 0b10000001 ; // 外部クロック設定

TMR1IF = 0 ; // タイマー1割込フラグを0にする
TMR1IE = 1 ; // タイマー1割り込みを許可する
PEIE = 1 ; // 周辺装置割込みを有効にする
GIE = 1 ; // 全割込み処理を許可する


//割り込み関数

void interrupt Intertime( void )
{
// タイマー1の割込み発生か?
if (TMR1IF == 1)
{
LATCbits.LATC0 = 1;
__delay_ms(500);
TMR1IF = 0 ; // タイマー1割込フラグをリセット(再カウントアップ開始)
count++; //highになった回数をカウント
}
}
0697774ワット発電中さん
垢版 |
2018/04/15(日) 11:27:40.21ID:Z+IoQa4E
>>695
スマホからですみません
割り込み後にledを0.5秒光らせようと思って入れた待機用の関数です
0699774ワット発電中さん
垢版 |
2018/04/15(日) 11:50:15.00ID:0pc7IGZU
>>698
レスありがとうございます。

想定する動作としては

1.電源ON(外部パルスは常に発生)
2.A2PINに外部パルス入力
3.C0PIN(LED)がHigh
4.0.5秒待機
5.変数count(long型)に+1
※2.〜5.を繰り返し

このような動作をイメージしています。

「4.0.5秒待機」については、削除しても問題ないです。


現状としては、外部パルスをA2PINへ入力しようとしているのですが
うまく入力できてない状態です。


初心者のため、稚拙な箇所あるとおもいますが、ご指摘よろしくお願いいたします。
0700774ワット発電中さん
垢版 |
2018/04/15(日) 12:00:14.15ID:ya99p1m9
300us周期の外部パルスを全て取りこぼしなくカウントする必要があるか?
0704774ワット発電中さん
垢版 |
2018/04/15(日) 12:28:39.86ID:0pc7IGZU
>>703

》300us周期の外部パルスを全て取りこぼしなくカウントする必要があるか?
100usのhighの立ち上がり回数を数えたいです。

》LEDを消さなくていいの?
とりあえず割り込みの確認をしたいので、今は消さなくて大丈夫です。

》うまく入力出来てない状態の説明
オシロにて入力ピンの電圧を確認すると、想定通り(100us(high)200us(Low))が確認できますが
プログラム的には、入力として認識できていないという状態です。


》想定するLEDの状態、現状のLEDの状態

想定:LEDが点灯する
現状:LEDが点灯しない



下記の設定が初めてなので、》693の記述であっているかわかりません。
もしわかる方がいれば、教えていただけるとうれしいです。
・PPSにて「T1CKI」をA2ピンへ設定
・「T1CON」を外部クロック
0707774ワット発電中さん
垢版 |
2018/04/15(日) 14:23:45.47ID:FUo+WkZI
>>704
タイマー設定のコードはどのように作った?
Intertimeがどういう条件で呼ばれることを想定してる?
Intertimeががどういう条件で呼ばれるか知っている?
デバッガを使った事がある?
0708774ワット発電中さん
垢版 |
2018/04/15(日) 14:41:06.30ID:UvYIgKYn
タイマーの動きを理解しようか

タイマーのクロックを使ってタイマーの機能でカウントしたいのか
パルスの度に割り込みをかけてISRでカウンタをインクリメントしてカウントしたいのか

どちら?
0709774ワット発電中さん
垢版 |
2018/04/15(日) 15:06:01.92ID:0pc7IGZU
>>707
》タイマー設定のコードはどのように作った?
このサイト(ttp://www.geocities.jp/zattouka/GarageHouse/micon/MPLAB/16F1705/memo.htm)を参考につくりました。

下のような考えでつくりました。
@ T1CONレジスターの設定を行う
A TMR1カウントアップレジスターの初期化
B TMR1IFの割込みフラグを初期化
C 割込み機能を許可

void interrupt 割込み関数名( void )
{
if (TMR1IF == 1) { // タイマー1の割込み発生か?
TMR1H = ???? ; // タイマー1(TMR1)の再ど初期化
TMR1L = ???? ; // (65536までカウントアップさせるならこの2行は必要ない)
TMR1IF = 0 ; // タイマー1割込フラグをリセット(再カウントアップ開始)
}
}


》Intertimeがどういう条件で呼ばれることを想定してる?
今回の場合だと、A2ピンがHighになると呼ばれると想定してます。

》Intertimeががどういう条件で呼ばれるか知っている?
ごめんなさい、勉強不足で知らないです。

》デバッガを使った事がある?
ないです。
0710774ワット発電中さん
垢版 |
2018/04/15(日) 15:09:56.48ID:0pc7IGZU
>>708
》タイマーの動きを理解しようか
了解しました。

》タイマーのクロックを使ってタイマーの機能でカウントしたいのか
》パルスの度に割り込みをかけてISRでカウンタをインクリメントしてカウントしたいのか
》どちら?
後者です。タイマのクロック機能は今回使う気はなく、割り込みをかけてカウンタを1づつあげたいです。
0711774ワット発電中さん
垢版 |
2018/04/15(日) 15:33:57.76ID:GD18h9aj
>>710
結局 パルスの立ち上がりエッヂでカウントするだけなら、タイマーを使う必要もなくて
状態変化割り込み(IOC)だけでやったほうが
簡単だね
0712774ワット発電中さん
垢版 |
2018/04/15(日) 15:35:26.18ID:DXOvI/zL
だったらPORTのIOC(Interrupt-On-Change)機能で十分だよ
0713774ワット発電中さん
垢版 |
2018/04/15(日) 15:36:01.24ID:DXOvI/zL
おっとリロードしてなかった
0714774ワット発電中さん
垢版 |
2018/04/15(日) 15:50:20.10ID:0pc7IGZU
>>711
>>712
そうですね!!こんな機能があったとは

16F1705のデータシート内で検索してまいます

ありがとうございます!!解決しそうです!!
0715774ワット発電中さん
垢版 |
2018/04/15(日) 16:15:54.04ID:0pc7IGZU
>>714
ありがとうございます!!
↓のページ参考に書いてみたら、思ったように動きそうです!!
ttp://physics.cocolog-nifty.com/weblog/2012/06/post-cfdc.html

助かりました><感謝です
0716774ワット発電中さん
垢版 |
2018/04/15(日) 16:34:57.73ID:4NrhFNms
>>675
「〜を希望します」なんて書き方は罵倒じゃないと思うけどな。
ただし皮肉っぽい書き方、上から目線になったのは申し訳無い。
同じ論点主張の繰り返しで先に進まないし、
プログラミング経験が足りないのかなと思って、
ついついあんな文章になってしまった。
人それぞれで考え方が異なるのは仕方が無いですね.。
直接対面して議論できないのが残念です。
ではまたそのうちに。
0718774ワット発電中さん
垢版 |
2018/04/15(日) 19:13:57.42ID:rFExsETs
不自然というか、思考回路が違う気がする
いろいろ理解不能
0719774ワット発電中さん
垢版 |
2018/04/15(日) 22:29:01.53ID:+4IaFnWl
無線リモコンの受信側で、バッテリー節約のために数秒ごとにマイコンをスリープから起こして500msぐらい待ち受け、
そしてまたスリープっていう間欠駆動させて、その都度、受信モジュールの電源はON・OFFさせてるけど、
受信モジュールの電源をON・OFF繰り返してるとが故障する確率が高くなる?
受信モジュールもスリープさせたほうが良い?
0722774ワット発電中さん
垢版 |
2018/04/16(月) 02:16:29.55ID:OF2Ct9uc
>>710
>100us(high)200us(Low)の繰り返し波形
これを、タイマーを使って捕捉したいなら、
highの100us期間に必ず見に行けるような速さで、タイマー割り込みをする必要があります。
100us周期で見に行っていては遅いので、例えば60us周期で見に行けば、確実に取り込めます。

unsigned char check = off;
unsigned char LED_count = 0;

void interrupt 割込み関数名(){
  if (TMR1IF == 1) {   // Timer1割り込みなら
    check=on;       // checkの時間だぞ
    LED_count++;     // LED点灯時間ounter
    TMR1IF = 0;      // Timer割り込みflag
  } else if(...){      // その他の割り込み
  } else if(...){
  }
}

void main(){
  unsigned char count=0;      // バルス数
  unsigned char zenkai_check=0;  // 前回の割り込み情報
  check=off;             // 割り込み情報なし
  LED_count=0;          // LED点灯時間counter

  while(1){
    if( (zenkai_check==off) && (check==on) ){ // Timer時間の↑なら
      if(RC0==on){    // パルス入力=Highなら
        count++;      // パルス数
        check=off;      // Timer時間情報
        LED=on;       // LED点灯
        LED_count=0;    // LED点灯時間
      }
    }
    zenkai_check=check;  // Timer割り込み情報更新

    if( check==on ){    // Timer1割り込みありなら
      if(LED_count>500){ LED=off; } // LED時間が規定時間以上になったらoff
    }
  }
}
0724774ワット発電中さん
垢版 |
2018/04/16(月) 14:52:15.55ID:bHGBT4CK
ていうか、
全く何のために割り込みを使ってるのかわからないコードだな

メインループに1msの処理があったら取りこぼす
0725774ワット発電中さん
垢版 |
2018/04/16(月) 16:02:10.58ID:ZSTFrgy5
処理が逆だな
俺だったら入力波形を割り込みに入れて、
割り込みの中でタイマー値を見る
0726774ワット発電中さん
垢版 |
2018/04/16(月) 18:12:13.10ID:akAi1l4a
逆っていうか
何をしたいか次第だよ

単純にカウントするだけならパルスをタイマーのクロック入力にすればCPUを使わないで済む
パルス幅を計りたければキャプチャー機能
フィルター処理を加えたければポート状態変化割り込みとタイマー割り込みの併用
または変化割り込みとポーリング併用
などなど

>>722は何がしたいのかわからん
>>725もキャプチャーに対してメリットがいまいち
0727774ワット発電中さん
垢版 |
2018/04/20(金) 01:44:34.13ID:x3JrNkuW
お、今マイクロチップからPICKIT4出したから買えってメールが来たぞ
かわんがな
0729774ワット発電中さん
垢版 |
2018/04/20(金) 06:41:13.14ID:kjkbjcRi
3のユーザー様には9ドル75セント! だったら買う。
0731774ワット発電中さん
垢版 |
2018/04/20(金) 07:11:52.13ID:alXGJ6H4
16F18466はなかなか良さげだな…
UART直ってたら使ってみたい
0734774ワット発電中さん
垢版 |
2018/04/20(金) 08:08:05.76ID:Hqd9yM7H
>>732
>18446?
なぜ「?」が付くのか…。
型番間違ってるわけじゃないよな。PIC16F18446
0738774ワット発電中さん
垢版 |
2018/04/21(土) 10:55:03.45ID:IXAHf6c/
後継って、どこを改善して欲しいの?あるいはなんの機能を追加して欲しいの?

まあPIC18アーキで作ったものが欲しいと思わなくはない
0739774ワット発電中さん
垢版 |
2018/04/21(土) 11:16:07.41ID:bKjw0XYJ
PIC16F1454を愛用してたんだろか。
秋月で-E/Pに「D」マークが付いてるから心配だとか。
0740774ワット発電中さん
垢版 |
2018/04/21(土) 11:33:07.81ID:IXAHf6c/
もしそんな理由なら値段差10円の16F1455-I/P使えばいいと思うけどね
もっとも、Dマークついてても在庫AAA(トリプルA)なんだししばらくは
無くならないだろうけど
0741774ワット発電中さん
垢版 |
2018/04/21(土) 11:42:44.00ID:oXtXz/iS
PIC16F1455の後継でも良いです

不満はROM/RAM
これが倍のが出てくれれば嬉しい
0742774ワット発電中さん
垢版 |
2018/04/21(土) 13:23:40.41ID:IXAHf6c/
ちゅうーかさあ
初めてACTが出てきたときに「これでUSB対応の8bitPICは全部水晶不要になるな!」とか
すごい期待したのに結局ACT搭載PICっていっちゃん最初に発表された品種のみでその後
全く採用がないとか一体なんなの?

まあ、USB対応 8bitPIC自体がここ数年新しいのが全く出てきてないけどさあ
18F14K50のACT版出して欲しいわ(18F14KK50?)
0743774ワット発電中さん
垢版 |
2018/04/21(土) 14:29:27.43ID:YouRM+eQ
18F14K50も16F1454も買ってみたもののUSBを理解するのに気力を取られ未だ電源入れてすらいない
0744774ワット発電中さん
垢版 |
2018/04/21(土) 15:12:11.06ID:BrLhUXmi
真面目にやったら、USBだけでも結構なボリュームあるからな
むしろ、それでも めげないヤツの方が少数

引き出しに しまったままの状態でも、別に珍しくない
0745774ワット発電中さん
垢版 |
2018/04/21(土) 15:57:43.99ID:w85mg4Y9
なんとかMLAでデバイス作ったけど、MLA部分は理解は出来てない
0746774ワット発電中さん
垢版 |
2018/04/21(土) 15:59:32.47ID:YouRM+eQ
ごめん16F1454は電源は入れてたわ
デバッグ出力用にEUSARTを使えるようにしたとこで力尽きてた
0748774ワット発電中さん
垢版 |
2018/04/21(土) 17:26:52.86ID:01cA0JHA
PICにはarduinoとかmbed的な楽ちんライブラリってないの?
デバイスのハード層をラップしているような
Lチカ数行でできるような
シリアル出力数行でできるような
デバイス変わってもヘッダのデバイス名変えるだけのような
0749774ワット発電中さん
垢版 |
2018/04/21(土) 17:37:45.67ID:Co5IXgLT
MLAとかMCCでやれ。
0750774ワット発電中さん
垢版 |
2018/04/21(土) 19:09:09.71ID:5sl1/G0b
PIC KIT Programmer3 が使えない、PICを使い始めたので、
ようやく、IPEを使い始めているんだけど、
毎回、power の設定で、「Power Target from tool」 を設定するとか、
面倒くさいんだけど、諸々の設定を保存できませんかね?

また指定した、hexファイルの履歴が残っていれば、すぐに書き込みできるとかできるんだけど...
0751774ワット発電中さん
垢版 |
2018/04/21(土) 19:53:13.64ID:Co5IXgLT
ターゲットの電源くらい入れてやったら良いと思うの。
0753774ワット発電中さん
垢版 |
2018/04/21(土) 20:03:20.03ID:oXtXz/iS
設定出来ないとしたら糞だ

IDEも色々と糞なところがある
2重起動出来ないとか
エディタの基準線を消せないとか
起動時に前回プロジェクトを起動しない設定に出来ないとか
0754774ワット発電中さん
垢版 |
2018/04/21(土) 21:55:30.51ID:6a9K+8If
使いにくいと思う Windows アプリは uwsc 使えばあなたのお気に召すまま全部解決
0757774ワット発電中さん
垢版 |
2018/04/22(日) 05:53:23.04ID:1paPJSz9
コンパイラ・アセンブラ・プログラマ・デバッガを自作する
0760774ワット発電中さん
垢版 |
2018/04/22(日) 10:54:24.02ID:GQYDNGzA
>>756
基本それを使っているんだけど、それでは、Pickit2 とほぼ同じ品種までの対応で、
ここ数年リリースのPICの書き込みでは、使えないです。
0762774ワット発電中さん
垢版 |
2018/04/22(日) 11:03:53.80ID:vDWP1Fjq
デバイスによりけりだな
対応デバイスの "PK2DeviceFile.dat" を見つけられれば従来通りに使える
煩わしい、IPEともおさらばできる
0764774ワット発電中さん
垢版 |
2018/04/24(火) 15:25:33.53ID:H9BPvQc/
18F46K22でI2Cを使うのでMCCでMSSP1を選んだが動作しない。
EUSART1、TMR0、ADCは動作しています。
SCL1とSDA1のピンはHighのままです。
I2C1.hのEMULATED_EEPROM_Write/Readをコピペしているが、
PICKit3のデバッグでPAUSEにすると
while(status == I2C1_MESSAGE_PENDING) ;から抜け出せないようです。
MSSP2にしても同じです。
EasyタブはI2C Master/Enable MSSP/Slew Standard/SDA Hold 300nS/7bitで
I2C Clockの0x03≦0xA0≦0xFFで99.379KHzと表示されてます。
RegistersタブはBCLIとSSPIのチェックとADD=0xA0/BUF=0x0/CON1=0x28/CON2=0x0/CON3=0x8/STAT=0x80
SSP1MSKが0xFFで赤くブリンクしているのが気になります。
0765774ワット発電中さん
垢版 |
2018/04/24(火) 15:44:13.06ID:58dfx+0t
こちらに書いていないけど、こちらに書きなさいということかな?
0766774ワット発電中さん
垢版 |
2018/04/24(火) 16:41:04.65ID:16xAseAM
また、お節介な荒らしがコピペしたんじゃないの?
マルチするなと荒れる原因
0767774ワット発電中さん
垢版 |
2018/04/24(火) 21:16:07.79ID:kuNLiU6V
18F8520を使ってみたいのですが、これ用のソケットはあるのでしょうか?
そもそもテストや実装は個人で出来るのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

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