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/
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を使ってみたいのですが、これ用のソケットはあるのでしょうか?
そもそもテストや実装は個人で出来るのでしょうか?
0771774ワット発電中さん
垢版 |
2018/04/24(火) 22:17:34.51ID:50p198lT
>>764
ポートを入力設定にして無いとか、PowerDown設定してしまってるとか、
アナログ入力になってるとか、
0772774ワット発電中さん
垢版 |
2018/04/24(火) 22:24:23.38ID:R0opAjvi
0.5mmピッチは適切な道具が揃ってればあとは練習
0774774ワット発電中さん
垢版 |
2018/04/24(火) 22:30:57.37ID:elhCr7SK
>>767
ソケットとか変換基板買うよりもチャイナ基板屋で基板作ったほうが安いし早い。
初心者向きのフリーのCAD使えばわりと簡単。
パスコン程度は安く実装してくれるし、基板屋によってはPICなら実装もしてくれるかも知れないよ。
0775774ワット発電中さん
垢版 |
2018/04/24(火) 23:52:08.76ID:kuNLiU6V
>>768
これはいいですね。でも半田付け殆どやったことないんですよね〜

>>770
ラインチェッカーをPICで作ってみようと思いまして80pinで一番安いこれがいいかなと

>>772
適切な道具を教えていただけるとありがたいです。

>>773
そうなんですか!?

>>774
自分でも調べて個人で頼むのは高いなと思っていたんですけど、安いところがありそうですね。
半田付け高校以来やっていないんで実装してくれるとありがたいのですが

初めは変換基板で試してからやってみます
ありがとうございました
0776774ワット発電中さん
垢版 |
2018/04/25(水) 00:15:54.71ID:kvYQKGS0
今までXC8のFREE版を使っていたんですが、今回サブスク版を買ってみました。
んでPROレベルの最適化でコンパイルしてみたらそれまで55KBあったHEXファイルが
40KBまで縮んで「さすがPROのオプティマイズ化はすごいな」と思ったんですが、
いざこのHEXをPICに書き込んだら全く動きません

ためしに最適化レベルをFREEに設定してコンパイルしたHEXファイルを書き込んだら
やっぱり普通に動きました

PROレベルの最適化で逆に動かなくなるケースってのはどういうものがありますでしょうか?
0777774ワット発電中さん
垢版 |
2018/04/25(水) 00:16:08.77ID:S3bTZ6vT
>>775
ハンダコテは何でもいい。液体フラックスと吸い取り線は必須。
ハンダはこだわりがなければ有鉛を使う。
あとはようつべで引きハンダのやり方を見てひたすら練習。
仕上がりを確認するのにルーペが必要かな。
0778774ワット発電中さん
垢版 |
2018/04/25(水) 00:18:31.18ID:zq1Q34RN
>>776
ソースの一部分を削ってコンパイル&実行を繰り返し問題部分を特定するしか無い
0781774ワット発電中さん
垢版 |
2018/04/25(水) 06:13:58.57ID:wRI2g9bE
>>776
最適化によって正しいコードが動かなくなることはある
(昔のVisual Studioではよくあった)
最適化における仮定が正しくない場合にも起こるし
単にコンパイラのバグということもある

シンプルなコードから順番にコードを足していって場所を特定してコードの記述を変えたり
ソースファイルや関数ごとに最適化を切り替えられるならそれを細かく変えることで
場所を特定して最適化設定を最適化する

また、コード側の問題としては以下が考えられる
不定値
タイミング依存
使用リソースの変化 (RAM, スタック)
処理順が変わる (volatileつけ忘れ)
0782774ワット発電中さん
垢版 |
2018/04/25(水) 06:38:38.90ID:jPiSVkL0
あとハンダは0.3φの奴を。ルーペはスタンドか頭にかけるのを。
0783774ワット発電中さん
垢版 |
2018/04/25(水) 21:51:31.98ID:fxFIXfFi
ヤニなしで0.3mm径の半田より、
0.6mm径のものを使った方がヤニがたくさん得られて
上手に半田付けできるよね。
0784774ワット発電中さん
垢版 |
2018/04/25(水) 22:28:04.82ID:g4rG95E1
>ヤニなしで0.3mm径の半田より
0.3mmでヤニなしって売ってる?
0788774ワット発電中さん
垢版 |
2018/04/26(木) 00:14:12.91ID:DGkKXf/h
ハンダの径なんていろいろ選べるのだから、使い易いと思うものを使い分ければいいよね。
0.6が使い易いと思うならそれを使えばいいし。
0789774ワット発電中さん
垢版 |
2018/04/26(木) 00:21:57.53ID:nk82zNSV
糸ハンダの太さなんてアマチュアだから単に繰り出し易さで選んでるな。
あまり太いのも細いのもハンドリングし辛い。
0790774ワット発電中さん
垢版 |
2018/04/26(木) 03:23:10.45ID:DPPiNtsK
細い半田だと、脂の量が少ないので、半田付けが難しいです。
0.6mmとかだと、脂が多いので使いやすいです。
あとで脂を洗浄するつもりなら、フラックスをハケ塗りすれば、0.3でも行ける
0791774ワット発電中さん
垢版 |
2018/04/26(木) 06:58:20.83ID:DGkKXf/h
俺が0.3mmのハンダの芯のフラックスの量が少ないと感じるとき
・半田付け時の温度がうっかり高くなりすぎている。
・大きめのD、Cコテ先のまま使って、コテ先端へのハンダの広がりが大きすぎ。

ピンポイントでハンダを流し込むのに0.3mmを使っているのに、
芯のフラックスを、対象を活性化するのに使わずに、熱で飛ばしたり、
コテ先の余分なところを活性化するのに使っていては良いことないですね。
0792774ワット発電中さん
垢版 |
2018/04/26(木) 11:17:50.20ID:Jm065QMN
フラックスはハンダのヤニいりももちろんだが、別に筆で塗る奴用意して
基板に塗布+IC置いた後にピンごと塗布だろ。
太さは俺も0.3mm.
0793774ワット発電中さん
垢版 |
2018/04/26(木) 11:53:33.67ID:wsiyshJn
そうなんだけど、ついつい面倒で半田盛ってしまう
で、ブリッジして慌てる
ここ一番の時にはフラックス出動するけど
0795774ワット発電中さん
垢版 |
2018/04/26(木) 12:19:50.69ID:s2pS1aIU
ブリッジしないで済むようなら極力させない。
しちゃったらなるべく一回で済むよう吸い取る。
■ このスレッドは過去ログ倉庫に格納されています

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