初めてのPIC 0x06 ..
[2ch|▼Menu]
2:774ワット発電中さん
15/07/18 02:00:26.99 OdSmHP7o.net
早速ですが、教えてください。
MPLAB IDE 8.92, XC16, PIC24FV32KA, 水晶20MHz で、プログラムを作っています。
しかし、プログラムが止まってしまう現象が出て困っています。
タイマー割込を動かしています。
タイマーで、100msに1回のパルスを作り、main()で監視して、SPI関数を駆動しています。
SPI送信関数の中身の組み方によって、タイマーも止まってしまいます。
止まったという判定は、タイマー割込の中でLEDをチカチカさせているのが
点滅しなくなるからです。
SPI送信の中身が、以下の2つで、確実に再現性があります。
for( A=0; A<8; A++){    // forだと正常に動く
  MOSI=データのbit<A>送信; CLK↑; CLK↓
}
              // 一直線に羅列すると、止まる
MOSI=データのbit0送信; CLK↑; CLK↓
MOSI=データのbit1送信; CLK↑; CLK↓
    :
MOSI=データのbit6送信; CLK↑; CLK↓
MOSI=データのbit7送信; CLK↑; CLK↓
高速にSPIできるので羅列で使いたいのですが、そうすると確実に止まります。
何かヒントでもありましたら、指摘してください。
宜しくお願いします。

3:774ワット発電中さん
15/07/18 03:51:31.66 17SEwL+T.net
フラグのチェックが抜けてる

4:natu
15/07/18 09:42:21.31 RnWm+fdm.net
>>2
割込みそのものが止まるんだったらソフト?SPI部分以外が原因じゃなかろうか?
プログラムを晒した方が解決早いと思う。

5:774ワット発電中さん
15/07/18 22:54:24.45 WYzi1udN.net
>>3,4
どうもありがとうございます。
さきほど帰ってきたので、再度確認したら、僕のプログラムミスでした。
main()で、変なことしていました。
それを取り去ったら、あっさり動きました。
どうもありがとうございました。

6:774ワット発電中さん
15/07/20 13:24:23.11 HnmZ0EhF.net
URLリンク(dangerousprototypes.com)
↑のロジアナは60MHzにオーバークロックした PIC で 60MHz のサンプリングをしているらしいんですが、
PIC は 1 命令 4 サイクルとかかかるのと、取得+格納+ポインタ進めるのに 3 命令ぐらいかかりそうな気がします。
どうやってやってるんでしょうか?

7:774ワット発電中さん
15/07/20 13:42:52.44 20/3vFHp.net
>>6
これ次のページ見るとPIC32っぽいから1命令4クロックでもないし、オーバークロックでもないのでは?
PIC32は80MHzや200MHzのチップがある、内部PLLをオーバークロックと勘違いして書いてるのではないかと

8:774ワット発電中さん
15/07/20 17:52:05.60 KbPe6dKc.net
使ってるのがPIC32MX250F128Bだからオーバークロックはしている

9:774ワット発電中さん
15/07/20 21:03:18.10 HnmZ0EhF.net
なるほど、PIC32は1命令1クロックなのですね。(そっから知りませんでした)
PIC32MX250F128B が通常 MAX 50MHz ぽいので、1命令でうまいことやってるんですかね…

10:774ワット発電中さん
15/07/21 00:30:17.20 ENulHmMY.net
PIC32が直接サンプリングしてるわけじゃないよ。
サンプリングはSRAM(23LC1024)が行っていてPIC32はSRAMを
書き込みモードにして駆動用の60MHzクロックを供給しているだけ。
その60MHzもREFCLOCKで出力しているからサンプリング中は
ほとんどなにもしていない。

11:774ワット発電中さん
15/07/22 18:13:42.98 kX44Eoht.net
教えてください。
PIC MPLAB IDE 8.92を使っています。
このアプリに「Release」と「Debug」の切替があります。
これは、どのようにして使い分ければ良いのでしょうか?
結果として、どちらでも動くので、困ってはいないのですが、
本来の正しい使い方が知りたいです。
宜しくお願いします。

12:774ワット発電中さん
15/07/22 18:32:30.63 fPxUPY7e.net
ROMサイズを小さくしたいときとデバッグしたいとき

13:774ワット発電中さん
15/07/22 18:38:31.92 PinIEUxQ.net
ありがとうございました。

14:もっと議論してから採決しても遅くないよ
15/07/23 12:46:13.85 TUV9xSeO.net
この場合に、ROMサイズを小さくして、何か嬉しさがあるのでしょうか?
デバッグでROMサイズが大きくてもマイコンに入っているし、動いて居るわけだし。
敢えてROMサイズを小さくすることの意義は何でしょうか?

15:ぼく小学生(^p^)
15/07/23 12:59:21.45 J7t0Mb64.net
デバッグ用のマイコンにはそりゃ両方入るだろうけれど、
容量の小さくて安い兄弟機種がある場合に
製品のコストを節約できるかもしれないやん

16:774ワット発電中さん
15/07/24 02:53:09.51 eb08YuLx.net
>>15
ありがとうございます。
それはわかるのですが、であれば、デバイスの型番を、兄弟の型番に設定し直してコンパイルすればよく、
わざわざ「Release」とか「Debug」とか、アプリで切替る必要は無いかと思いますが
どうでしょうか?
例えば、Debugにすると、PICKit3経由でデバッグするのに都合の良い「モジュール」を
組み込んでコンパイルしてくれて、それを使ったデバッグが終わったら、
Releaseにして、そのモジュールを抜いたコンパイルをするということかな、と思いました。
FPGAで言うところの、チップスコープを入れてデバッグするイメージです。

17:ぼく小学生(^p^)
15/07/24 08:56:14.64 S7rVgPFV.net
そういういみですか。
デバッグ時は高速性を犠牲にして検証するための別のアプローチの関数に「も」飛び
正規の関数とデバッグ用の関数、両方で出した答えを突きあわせて検証する、みたいな
使い方もあるそうです(昔読んだプログラム技法書では、そういうやり方を推奨していました)。
あとはアサーションに相当する処理をいれたりするんじゃないですかね。
アサーションは、環境に依存するけど例えば変数hogeが
ある位置では3になっているはず・・・という場合に
ASSERT(3==hoge); と定義しておくと、値が期待と異なる場合に
プログラム動作が停止するようなサービスです。

18:774ワット発電中さん
15/07/24 08:58:04.21 XNKJ5dnX.net
朝ション

19:774ワット発電中さん
15/07/25 02:44:15.14 p7xpBXxt.net
結局のところ、リリースとデバッグの切替は、何のためにあるのか不明ということですね。

20:774ワット発電中さん
15/07/25 06:13:10


21:.20 ID:2TWdMa+q.net



22:774ワット発電中さん
15/07/25 09:25:41.60 0iLHhyQM.net
不明な人には特に用の無いものだということで使わなければいいし。
便利だと思う人は便利に利用すればいい。

23:774ワット発電中さん
15/07/25 10:25:19.67 04GeJkoe.net
何が違うんだ、それ。

24:774ワット発電中さん
15/07/25 10:36:46.50 rh+7cXgM.net
せやな

25:774ワット発電中さん
15/07/27 18:36:47.61 RDmOAsTR.net
>19
うろ覚えだけど、違いって "__DEBUG"が定義されるかされないかだけだったかと。
自身がプログラム中で意図的にデバッグモード時はこちらのコードで、リリース時は
こちらのコードでと使い分けないと意味が無かったような
#ifdef __DEBUG
// Debugモード時に利用する命令群
#endif
#ifndef __DEBUG
// Releaseモード時に利用する命令群
#endif

26:774ワット発電中さん
15/07/27 18:42:36.90 AZPhWVLU.net
ICD3とPickit3ってどう違うの?
Pickit3でもデバッグできるっぽいけど違いがあるのかな

27:もっと議論してから採決しても遅くないよ
15/07/28 13:51:04.22 gtQLsN0M.net
>>24
いいこと聞いた。ありがとう。今度一度やってみよう。
#define SLOW 500
#define FAST 200
#define on  1
#define off  0
void main(){
  unsigned int speed;
  while( 1 ){
#ifdef __DEBUG
    speed = SLOW;
#else
    speed = FAST;
#endif
    RA1 = on;  __delay_ms(speed);  RA1 = off;  __delay_ms(speed);
  }
}

28:774ワット発電中さん
15/08/02 21:17:26.98 3H/T8Gru.net
ど素人がPICのソフトを書き込むのって可能ですか?
ぐぐったら、バージョンやら、電圧やら、端子の設定や、かなりコツがいるみたいなのですが・・・
そして書き込みに必要な器具は、結構高いのでしょうか?
5000円程度のラジオキットの改造なので、
書き込みツールにお金を掛けるぐらいなら、
手間掛けて改造するより、新しいラジオを買った方が、早くて安く付くのですが

29:774ワット発電中さん
15/08/03 00:59:41.23 6oxqn/Ke.net
書き込み器は現状ほぼPICkit3の一択で、これが4500円する。

30:774ワット発電中さん
15/08/03 04:27:53.75 y6l99jZA.net
>手間掛けて改造するより、新しいラジオを買った方が、早くて安く付くのですが
スグに打算だね。
改造すること自身に興味はないのかなぁ。知的で面白いのに。

31:774ワット発電中さん
15/08/03 06:35:31.98 IQnefa1z.net
>>29
電子工作は、日曜大工と同じだからな。
道具を揃えるより買った方が安い。

32:774ワット発電中さん
15/08/03 08:10:18.59 49y68aHD.net
>書き込み器は現状ほぼPICkit3の一択で、これが4500円する。
PICkit3だけでいいのでしょうか?
調べたら、 Pickit対応ICSP書き込みアダプターキット
と言うのが在ったのですが、使わずに"PICkit3"で直接書き込めるのでしょうか?
>改造すること自身に興味はないのかなぁ。知的で面白いのに。
今回の改造は、知的な部分は少ないのです。
総務省の、AM放送のFM補完に対応して、FM周波数の上限を変更
(空いたアナログ放送の帯域をFM局に割り当てる。)
Si4734というラジオのチップを初期化するソフトを変更するだけ
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#define MAX_FM 9000 // 90.00MHz → #define MAX_FM 10790 // 107.90MHz
setProperty(0x1401, 0x2328); // FM_SEEK_BAND_TOP 90.0MHz → setProperty(0x1401, 0x2A26);// FM_SEEK_BAND_TOP 107.90MHz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
マニュアル ( BROADCAST AM/FM RADIO RECEIVER Si4734/35-C40 )の
ページ28 に書かれてあるデフォルト値に初期値を戻すだけなのですが
これ以上はスレ違い(ラジオスレ)と思うので控えます

33:774ワット発電中さん
15/08/03 08:19:52.20 49y68aHD.net
>>30
道具も揃えたいのですが、地方なのでホームセンターしかなくて
道具を揃えるのも大変なのです。
実際に作業を行って何か足りないモノが出たら、お手上げになると思います。
製造元に問い合わせたのですが、「検討します。」と言う返事だけで
どうもやる気は無いらしいのです。
テスト放送はもう始まっているのです。
地方なので聴きたい局数も限られているし、AMは朝鮮放送が被ってきて聞きずらいのです

34:774ワット発電中さん
15/08/03 11:11:09.19 l01mR4qe.net
製品として基板にONしたPICの場合、コードを保護してあると書き込み済みプログラムの読み出し&再書き込みが不可の場合がある
その製品の成功例はネットにあるのかな
今の環境はPIC型番入力すると書き込み電圧等が自動セットされるのでその辺は問題ないと思う
『Vpp端子を基板から浮かして』ICクリップ5個で書き込む 他にはPICKIT3とICクリップをつなぐピンヘッダと被覆線かな
Vdd端子が複数あるなら全部に供給する必要があるらしいからその分のICクリップ
あとはエロい人が教えてくれるだろう

35:774ワット発電中さん
15/08/03 11:35:25.58 pfoB7pi5.net
>31
>PICkit3だけでいいのでしょうか?
そのラジオキット基板のPICから伸びてる書き込み用の信号線の端子が
どういう形状か?によります。直挿しできるように設計されている基板なら
他に部品は要りませんが、大きさや順序(割り当て/ピンアサイン)が違うと
変換ケーブルが必要になります。
BROADCAST AM/FM RADIO RECEIVER Si4734/35-C40 ってのでググったら
それは集積回路の名前で、キットや基板のじゃないみたいだし・・・わかりません
書き込みするハードウェア環境が揃っていれば、
(無償開発環境についてくるMPLAB IPEっていうソフトで)
小学生にでもかんたんに書きこめるんじゃないかとおもいます(憶測)。

36:774ワット発電中さん
15/08/03 13:24:38.68 2QYxDx6R.net
>>33
PIC16F1827は、キットのソケットに差し込まれているのです。
アダプター無しでも、ソケットから抜いてピンに直接つなげればいいのですね
>>34
Si4734と言うラジオのチップに、PICから、選局、音量UP、音量DOWN、初期設定などのコマンドを送るしくみになってます
製作者さんのホームページをみたら、PICkit2で接続してた写真が在りました。
PICkit2は入手が難しそうだし、間違えるとデバイスを壊す恐れがなどと在ったので、こちらで訊ねてみました。
PICkit3とMPLAB IPEのマニュアル等を探しDLし、方法を調べてみます

37:774ワット発電中さん
15/08/03 14:27:21.46 l01mR4qe.net
>>35
書き換え前提の市販製品かw めずらしいなおい
それならプログラムの保護はされてないやろ
あと書き換え時にVddとGNDに0.1〜10μのコンデンサ付けるとよろし
あつ、キットか・・・

38:774ワット発電中さん
15/08/03 15:54:51.50 NCz2nybw.net
AMラジオ局のFMサイマルは95Mhz未満にて行われるから(=95Mhzを越える割り当てはない)
旧来のワイド準拠で108上限でもいいけど、俺なら94.9上限にしたのも用意するだろうな
アナログなダイヤルチューニングでワイドバンドFM対応だと選局しづらいんだよねぇ
しかもEIRP上昇しててIMDイメージがあっちこっちに出まくるという。
タワーから出してた頃はそんな酷い状況じゃなかったんだがなぁ

39:774ワット発電中さん
15/08/03 17:37:52.55 3NVX0Izb.net
>>35
AKI−PIC2プログラマボード(PICkit2互換)
URLリンク(akizukidenshi.com)
これ使ったら良いんじゃない?
16F1827も使えるし、ソケットも付いているので直接書き込めるし。

40:774ワット発電中さん
15/08/03 20:21:15.86 DpPfh48y.net
>俺なら94.9上限にしたのも用意するだろうな
参考にします。今でもスカスカの局数なのでスキャン中の待ちは耐え難いので
>EIRP  >IMDイメージ
? ? ? 理解不能 (昔、マクスウェルの方程式の辺りで頭の中が止まっているので)
>>38
PICkit3関連の資料を見たのですが、ICEやら、Debuggerなどの資料まで落としてしまったので、分けワカメ
こっちの方が扱いやさしそうですね

41:774ワット発電中さん
15/08/03 20:28:22.16 zP11PzIW.net
止めとけ。互換は所詮互換品。しかも、あまり品質が良くない。

42:774ワット発電中さん
15/08/03 21:00:25.88 l01mR4qe.net
>>38
NewMidRange使いたい初心者に秋月のライター紹介するな
MPLABとの組み合わせでどんなドツボになるかわからんやろ
>>39
時間かかっても良いのなら海外通販でPICKIT3(赤いフリスク)
URLリンク(www.ebay.com)
PICKIT2でもいいけど、16F1827はデバイスファイル1.62.14を当てないと使えない
特殊な状況で、PICの内部クロック動作のプログラムを書き込むと2でも3でも壊れるけど今回は関係ないと思う
PICKITからの信号を5つのピンに接続すればいいので、ブレッドボードでもICソケットでもなんでもいい
書き込みがおかしければ、付属の赤いUSBケーブルを使用&Vdd−GNDに0.1μ
元プログラムのソースコードはあるかね?
なければワシじゃなく上級エロい人を召喚してくだされ

43:774ワット発電中さん
15/08/03 21:04:46.34 NCz2nybw.net
>>39
スカスカというほどに局が少ないなら(一応Freq:Up/Downのボタンも今まで通り用意しつつ)
1ボタン1局で固定の「プリセットチューニング」にしてしまえばいいとおもう
普段使いにはプリセットでザッピング選局が楽です
補完放送の割当て周波数はここが参考になると思う
URLリンク(ja.wikipedia.org)

44:774ワット発電中さん
15/08/03 21:26:26.99 3NVX0Izb.net
>>40
どの辺りが品質が良くないのでしょうか?
後学のために教えて頂けないでしょうか?
>>41
自分もAKI−PIC2プログラマボードとMPLABは使っていますが、特に問題になった事は無いので勧めました。
秋月のライターといっても、AKI−PICプログラマーの方なら勧めませんが、
PICkit2互換のAKI−PIC2プログラマボードはデバイスドライバーもPICkit2の純正で動きますし
書き込みソフトも純正で使えますのでネットでの情報も多いです。
何より、ソケット付きで尚且つ横の白いコネクタでICSPも出来るので使い勝手も良いのですが。

45:774ワット発電中さん
15/08/03 21:50:35.80 mjbOh86O.net
今回一回だけしか使わなかったとして
PICkit3は不要になった時にオク等で値段つくだろうけど秋月ライターの方はどうだろうかな?と思う。
あとデバッグヘッダに対応してるし。

46:774ワット発電中さん
15/08/04 09:16:46.20 ez6JQvz0.net
今の時代に秋月キットのライターはないでしょう

47:774ワット発電中さん
15/08/04 23:35:59.33 zOyRq3MZ.net
俺もAKI-PIC2プログラマボードは使ってるけど、
ソケット使いたい人には良いと思う。
もちろんPICKIT2互換で良い人向けだけど。

48:774ワット発電中さん
15/08/08 00:43:19.95 SnZjt+9O.net
教えてください。
__delay_ms(xx)について、以下のような解決策があるそうです。
今でもそうなんでしょうか?
URLリンク(detail.chiebukuro.yahoo.co.jp)

49:0x03の674
15/08/10 21:45:26.94 vW7kOjbB.net
0x03の674です。
だいぶ遅くなりました
書き込みをする環境をWindows8からWindows7に変えて書き込みをしてみたのですが、これは書きこめたということで良いのでしょうか?URLリンク(i.imgur.com)

50:774ワット発電中さん
15/08/11 02:39:57.02 VXxCgYU2.net
いいと思います。
program / verify complete が出ているから

51:774ワット発電中さん
15/08/14 01:37:54.97 WNyteqfB.net
スクリーンショットという概念は無いのか

52:774ワット発電中さん
15/08/19 12:49:31.98 cIkuOvwO.net
PIC初心者ですが、教えてください。
ネットでPIC用のCコンパイラのことを調べたのですが、いろいろあって、訳がわかりません。
出て来たキーワードは、以下の通りです。
・XC8
・MCC18
・PICC18
・XC16
・MPLAB C
・CCSC
・PIC C compiler
たぶん、時間列が入り乱れていて、今はもっと少ないのかもしれませんが、
それぞれどんな関係にあるのでしょうか?
今は、PICで、Ethernetを使って、IOや温度計のデータをやりとりする小物基板を
作りたいと思っています。
もっと平たく言うと、PIC Ethernetをやるときにスタック(?)ファイルが必要らしいのですが
それらが、どのCコンパイラーを前提に作られているのかによって決めたいのですが
スタックファイルの意味もわからずに困っているというのが本当のところです。
MPLABという開発環境で行うときは、どれを使うのがベターでしょうか

53:774ワット発電中さん
15/08/19 13:19:31.66 cIkuOvwO.net
>>51です
PICとRJ45コネクタの付いた基板と、サンプルプログラムが付いている評価キット
みたいなセット商品は売っているでしょうか?
安ければそれを買ってみようと思います。
RJ45コネクタと変換IC(?)の載った基板は3000円くらいで出ているようですが、
PICもサンプルも まとめてセットって、なかなか無いみたいなんです

54:774ワット発電中さん
15/08/19 15:54:42.45 KSLusmlF.net
>>51
PIC18以上なら標準ライブラリ用意されてる。

55:774ワット発電中さん
15/08/20 13:06:23.51 nzUazu/w.net
>>52
共立電子あたりから、PIC18F67J60を載せた基板が出ているはず。
使いやすいのでいろいろ使ってる。microChipのライブラリとC18かXC8で無料。
能力は落ちるが、PHI内蔵なのと、8bitなので低消費電力でいい。
後閑本もあったはず。使いやすいのでいろいろ使ってる。
オリジナルでよければ生基板あげるよ。

56:774ワット発電中さん
15/08/20 16:55:23.57 ZYCmoYAP.net
Ethernetコントローラ内蔵CPUボード KBC-P18LAN2
web販売価格 : ¥6,804
やっぱり中華Raspberry Pi3買うわ(本家の2B相当)

57:774ワット発電中さん
15/08/20 17:05:34.16 iSrbmazG.net
興味が出たのでググってみた
PIC18F67J60を載せた基板
URLリンク(eleshop.jp)
後閑サイトの情報
URLリンク(www.picfun.com)

LAN端子付きのマイコンボードは他にも色々あるけれど、大抵5千円以上するので
どうしても Raspberry Pi と比較してしまう。
マイコンボードの方が有利なのは低消費電力という点だけかな?

58:774ワット発電中さん
15/08/20 19:23:21.75 nzUazu/w.net
>>56
低消費電力と普通の面実装であのサイズの小ささはいいよ。
いろいろ検討したけど、開発環境の構築と実装の容易さ含めて、
RJ45コミで簡単にあの50×50mmくらいの基板サイズを実現できるのは案外少ない。
他のだとメモリとPHIが必要なのも多いし。
Piもいいんだけど、製品としてリリースするにはちょっとね。値段も高いし、
遠隔常時動作で、環境や振動試験まで含めると、piは脱落けっこうはやい。
単機能ip組み込み機としてだと原価2000円くらいだとpiは無理。
PIC18F67J60は、普通のデータEEPROMないのでプログラム工夫するか外付けEEPROMないと
MACの書き換えとか微妙だから乗せといたほうがいいよ。

59:774ワット発電中さん
15/08/21 01:12:04.39 iwUBo8yd.net
>>54
PHYな
ところでみんなPHYってなんて読んでる?
「ふぃ」か「ふぁい」かそれともフィジカルとかか

60:774ワット発電中さん
15/08/21 10:11:33.06 QlkqczU9.net
ファイと読みたくなるけど、
軽く見られたくないので、あえてフィジカルとフルで読む。

61:774ワット発電中さん
15/08/21 10:25:13.76 ImUK4slT.net
>>56
格安wifiモジュール「esp8266」 [転載禁止](c)2ch.net
スレリンク(denki板)
ESP-WROOM-02(技適取得) WiFi-UARTモジュール 
尼で1個で¥680
10個セットで¥4,680

62:774ワット発電中さん
15/08/21 16:00:15.24 7h1KrZBK.net
>>52
Arduino用シールドでこんなのもある
URLリンク(www.ebay.com)
SPI接続らしくMicrochipのライブラリーも使用可能らしい (大改造が必要らしいが)

63:774ワット発電中さん
15/08/21 23:04:12.48 VWLrc9BS.net
>>58
ファイでいい

64:774ワット発電中さん
15/08/22 03:30:28.99 fQ8yKBdf.net
>>60
そういうモジュールを2個使って、特定のMACとデータやりとりしたいんですが、
IPアドレスとMACアドレスなどを、プログラムに書き込んでコンパイルするのでしょう

65:774ワット発電中さん
15/08/22 12:48:47.49 MZRld5MZ.net
マイコンのそばに、eepROM置いて、その中に記憶させておく

66:774ワット発電中さん
15/08/22 14:30:52.31 To14vSE/.net
どーもシールドにはEEPROM乗ってるみたいだよ
24LC128SN

67:774ワット発電中さん
15/08/22 15:57:05.58 Y4Vb2vYQ.net
質問ですが、複数の割り込みを使う場合INTERRUPT()内でどの割り込みが起こったかの識別は
if(TMR0IF == 1 )
{ 処理  }
if(INTF == 1 )
{ 処理  }
と言うようにif文で判断するのが普通なのでしょうか?
使おうと考えているのはINT割込みとTMR0割込みです。
PICは16F1827を使用しています。
他にもどの割り込みか判断する方法など有るのでしょうか?
よろしくお願いします。

68:774ワット発電中さん
15/08/22 16:46:20.90 9LKiKUSe.net
>>66
picのアーキテクチャとしての割込の読み方なのか、cの文法としての扱いなのか微妙だけど、
cの処理系にもよると思うが、割り込みはレジスタ直接読んだほうがいいだろ
用意されている構造体でビット読んでもバイトで読んでもいいと思う。処理系次第では割込みライブラリもある。
文法としては、if でも if else if でも s


69:witch でもお好みで。



70:774ワット発電中さん
15/08/22 17:49:50.52 Y4Vb2vYQ.net
>>67
回答ありがとうございます。
すみません、Cの文法としての話です。
基本的に条件分岐の各命令のどれかで処理するという事でよいのですね。
PICのCを書くのは初めてだったので悩んでおりました。ありがとうございました。
あつかましいですが、もう一つだけお聞きしたいのですが、
INTERRUPT()内に入った直後にGIE = 0;として割込み自体を停止すると書かれている書籍を読んだのですが、
この時、使用している各割込みも個別に停止させた方が良いのでしょうか?
想像するに、
INTERRUPT()
if(TMR0IF == 1 )
{
TMR0IE =0;
処理;
}
if(INTF == 1 )
{
INTE = 0;
処理;
}
と言う書き方でグローバル割り込みを停止し、
どの割り込みかを確認後にその割り込み用の処理に入った最初でその割り込みも停止すると言うのが良いのでしょうか?
また、フラグクリアのタイミングは、該当する割り込みの処理に入った最初か最後かどちらが良い書き方でしょうか?
重ねて質問ですみませんがよろしくお願いいたします。

71:774ワット発電中さん
15/08/22 18:35:21.89 qmTUdsrN.net
何かの勘違いでしょう。少なくともPICではGIEは割り込み時にクリアされ、RETFIEでセットされる仕組みのはずです。
各割り込みの停止は、なおさら不要です。
フラグクリアは、割り込み処理中にさらに割り込み要求が発生する可能性があるなら、早いほうがよいです。
そうでなければどちらでも変わりません。

72:774ワット発電中さん
15/08/22 19:18:59.07 zhvde1/k.net
>>63
標準搭載のファームでシリアル経由でATコマンドで接続もできるし、
Lua搭載のファームでLuaを使用してHTTP通信やGPIOの制御を実行可能。
URLリンク(illmaticindustries.com)
また、ArduinoIDEでモジュールに搭載されたMCUを直接叩ける。
URLリンク(qiita.com)
Tensilica L106 32bit 80MHz MCUと 4MB flashROMを搭載、36KB程度のRAMが使用可能。
WiFi(802.11b/g/n)以外に、HSPI、PWM、IR、ADC、I2C、UART、I2Sがある。
URLリンク(doc.switch-science.com)
と自分は理解している。
これ以上は当該スレで質問して下さい。

73:774ワット発電中さん
15/08/24 17:33:20.03 9liKOrdC.net
PICについて回答お願いします
pc--pickit3--dsPIC33FJ32MC302のようにつなげているがpc側がPICを認識しません
具体的には、MPLABに「Target Device ID (00000000) does not match expected Device ID (06010000).」のように出ます
以下のことは確認したができませんでした
・MCLRのプルアップ
・MPLABでdevice selectを設定
・同じ型の異なるpicにかえる
残る問題はpinだと考えています
ネットにはRP6,RP7ピンにpickit3のPGD,PGCをつなげているのでそうしているのですが、上手くいきません
データシートを見てもICSP?やPGDのピンがなくて困っています
データシートには PINOUT I/O DESCRIPTIONSの欄にPGED,PGECがあり、
「Data I/O pin for Programming/Debugging Communication Channel 1.」のような記載があるので
これにPGD,PGCのピンをつなげたのですが、上手くいきませんでした
(pickit3のPGD,PGCをそれぞれpicのPGED1,PGEC1につなげました)
「pc側がPICを認識しません」といいましたが、
PIC側の電源(pickit3とは別電源)を外すと、MPLABに「target removed」と出るので、
全く認識してないわけではなさそうです
何か助言いただけないでしょうか

74:774ワット発電中さん
15/08/24 17:34:14.65 9liKOrdC.net
長文すみません
他スレでこのスレを紹介していただいたのできました

75:774ワット発電中さん
15/08/24 18:04:11.24 cozoKSAT.net
>>71
そのPICのデータシートのp338にある、ICSの値は、いくつに設定してありますか?
ピンの機能共用の多いPICでは、ICSPが、何カ所からか書き込めます。
  ICSPのピンが1箇所だけだと、自分の使う機能でピンを割り当てたときに、
  ICSPが無くなってしまうことがあるので、
  「この3組の中から、都合のいいピンを使ってね」という意味で、
  3箇所切替設定ができます。
その、何組のものを使うか設定するのが、上記ICSです。
実際にPICLitを接続するピンと合わせて記述します。
また、ICSPの他にJTAGという書込方法も使えるのですが、ICSPで使うのなら、
「JTAGは使いませんから」の設定にしておく必要があります。
それが、同ページのJTAGENです。
configレジスタの上記の値を確認してみて下さい。
>MPLABに「target removed」と出るので、
これは、MPLABが、通信によるやりとりの結果「相手ターゲットがいる」と思っているのではなくて、
「PICKit3のVdd端子に5Vがあればターゲットと繋がっている、0Vなら繋がっていない」という
判定に基づくメッセージだと思います。
MPLABは、ProgrammerにPICKit3が選ばれると、USB経由でPICKit3と通信して、お互いを確認します。
それができたら、さらにその先のPICマイコンと通信して、マイコンの種類によって決まる値を読み出して
「おー、dsPIC33FJ32MC302が繋がっているのね、了解了解」となり、準備状態になります。
ターゲットのVddが0Vだと「なんだよ、ターゲットいねーのかよ」と言って、
そもそもPICと通信しようとしません。
なので、ターゲットの電源が入ると、PICKit3のVddが5Vとかになるので、
たーげっとに対して通信を始めます。

76:774ワット発電中さん
15/08/24 18:06:56.24 cozoKSAT.net
誤記訂正
× その、何組のものを使うか設定するのが、上記ICSです。
○ その、何組目のものを使うか設定するのが、上記ICSです。
× 実際にPICLitを接続するピンと合わせて記述します。
○ 実際にPICKit3を接続するピンと合わせて記述します。

77:774ワット発電中さん
15/08/24 18:57:54.53 9liKOrdC.net
>>73
回答ありがとうございます
p338は「INSTRUCTION SET OVERVIEW (CONTINUED) 」の項で間違いないでしょうか
だとするとICSの設定が見当たりません
このデータシートで間違いないでしょうか URLリンク(ww1.microchip.com)

MPLABのconfigure>configuration bitsを見てみると、ICSのsettingは
「communicate on PGC1/EMUC1 and PGD1/EMUD1」とあります
EMUDなるピンはどれに相当するのでしょうか
JTAGENについては「JTAG is disable」とあるので大丈夫かと思います

target removedの旨わかりました
ではVddにはpickit3のみならず別の電源をかませるべきなのでしょうか

78:774ワット発電中さん
15/08/24 21:17:44.19 /5GHfLni.net
失礼します。
PIC18F25K80を使っていてPICがフリーズしてしまい、どうしても解決できないので質問させていただきます。
内部クロックを使用し、16x4で動作させています。
現在、タイマ0,1,2を使用し、割り込み優先度機能を使おうとしています。
タイマはそれぞれ次のような使い方をしています。
タイマ0:外部割り込み信号でon/offできるストップウォッチ
タイマ1:100Hz程度で割り込みをかけてスイッチのポーリング
タイマ2:CCPモジュールに使用し、PWMでLEDの輝度変化
外部割込み(INT1, 2)を高優先割り込み、タイマ1のオーバーフローを低優先割り込みに割り当てて実行したところ、
GIEH = 1とした瞬間にPICがフリーズしてしまいます。
割り込み関数内で無限ループしているのかと思い、割り込み関数内を全てコメントアウトしても動作しませんでした。
LCDを接続してデバッグしてみたところ割り込み関数内の処理は一切行われておらず、GIEHが許可された時にmain処理も停止しているようです。
しかし、試しに高優先割り込みの実装自体を全てコメントアウトしたところ、GIEH = 1としてもフリーズはしなくなりました。
何が原因なのでしょうか。
長文失礼いたしました。どうぞよろしくお願いします。

79:774ワット発電中さん
15/08/24 21:28:47.71 cozoKSAT.net
>>75
そのpdfだと、p324の表です。JTAGENと上下仲良く並んでいます。
>EMUDなるピンはどれに相当するのでしょうか
わかりませんねぇ。EMとあるからICDなどのエミュレーターの関係かな。
>communicate on PGC1/EMUC1 and PGD1/EMUD1」とあります
であれば、PGED1(4ピン)とPGEC1(5ピン)のピンに、PICKIt3のPGDとPGCを繋げば良いと思います。
それから、
PICのリセットピンは、10kでPICのVddにプルアップして、そこにPICKit3のMCLRを繋ぎます。
この線には、他の部品、線を繋がないようにします。
同様に、PGED1, PGEC1は、プルアップなしで、専用で、直接PICKIt3のPGD、PGCに繋ぎます。
認識が成功するまで、PICKit3の専用にした方がいいです。慣れてきたら、周辺回路との共用もやりますが、
最初は、PICKit3様の専用にします。
また、
PICKit3のUSBは、PCと直接繋いでいますか?
USB HUB経由だと、PICKit3, ターゲットともに、MPLABが認識してくれない場合が多いです。
PICKit3に添付の赤いケーブルを直接PCのUSBに接続するといいです。
100円ショップのUSB延長とか使って、認識せずに1日泣いたことがあります。

80:774ワット発電中さん
15/08/24 22:06:19.25 6B4/m/cI.net
>>71
IDが読めないってエラーなので、
・PGC,PGDの配線がおかしい
  書き込み専用(他には配線しない)にしてみる
・電源ラインがおかしい
  繋ぎ忘れがある
  コア電源用レギューターを有効にするのを忘れてる

81:774ワット発電中さん
15/08/24 22:36:01.76 9liKOrdC.net
>>77
>PGED1(4ピン)とPGEC1(5ピン)のピンに、PICKIt3のPGDとPGCを直接繋げば良いと思います。
とのことですので、そうしたところできませんでした
念のため2や3に設定してつなぎかえてみてもうまくいきませんでした
専用で、MCLRはプルアップとのことですが、常にその状態です
pickit3もUSB一本で直接pcにつないでいます

一応以下で間違ってないか確認してもらっていいでしょうか
・AVddは3.3v(pickit3からの電源ではない)
・Vref,Vcapは未接続
>>78
コア電源とはAVddのことでしょうか

82:774ワット発電中さん
15/08/25 00:53:26.96 KeGb4gf6.net
>>79
>一応以下で間違ってないか確認してもらっていいでしょうか
おいおい、あなたの問題解決を手分けしてやっているわけではないのだから、
「確認してもらっていいでしょうか」は、ないでしょ。
データシートを読んで探せってか?
>・AVddは3.3v(pickit3からの電源ではない)
PICKit3のVCCにもつないでいる?
>・Vref,Vcapは未接続
なんで未接続なの? データシート読んでないでしょ?
データシートは、読まなきゃダメだよ。自分のために。
460ページもあるデータシートを他人に読んで調べてもらって、
答だけをもらうなんて、10年早いと思うぞ。

83:774ワット発電中さん
15/08/25 01:11:38.30 aW+PHX4V.net
インターネット全盛の時代、その時点で他人様の力借りまくりなのに甘えすぎだな

84:774ワット発電中さん
15/08/25 01:46:00.23 25+EqFqm.net
XC16コンパイラーで、教えてください。
変数名の文字は何文字までよいのでしょうか?
型の数値範囲はありましたが、変数名の文字桁数が見つけられませんでした。
どんなキーワードで探せば出てきそうでしょうか?

85:774ワット発電中さん
15/08/25 01:56:54.51 UZR4rzf3.net
>>79
内部は2.5Vで動いていて、2.5Vを作るレギュレーターが内蔵されてる。
このレギュレーターは端子設定で無効にも出来る。
有効の場合はVCAP端子にコンデンサを繋ぐ。
無効の場合は2.5Vを入力する。

86:774ワット発電中さん
15/08/25 01:58:08.32 UZR4rzf3.net
>>82
プロジェクトのプロパティで設定出来る。デフォルトは255だったと思う。

87:774ワット発電中さん
15/08/25 02:44:45.57 25+EqFqm.net
>>83
いずれにしろ、VCAPピンの開放はよくない、ですよね。
>>84
ありがとうございます。
調べてみます。どうもありがとうございました。

88:774ワット発電中さん
15/08/25 11:25:53.08 elaeHU73.net
>>80
勝手にpicはどれも仕様が同じようなものだからデータシート見なくても慣れてる方ならわかる
と思いこんでいて「確認」といいました。別にデータシート読めと言いたかったわけではないです
誤解させたなら申し訳ないです
データシートは読んだのですがよく理解できずに他所の型違いのサイトを優先していました
データシートをもっとしっかり読んで出直してきます
>>83
ありがとうございますやってみます

89:774ワット発電中さん
15/08/25 12:38:08.73 KeGb4gf6.net
>>86
>勝手にpicはどれも仕様が同じようなものだからデータシート見なくても慣れてる方ならわかる
いやいや、形状や中身のバリエーション(品種)で言うと、業界ナンバーワンの数だと思うよ。
使うPICを変えるたびに、皆さんデータシートを読んでいるです。
確かに、似たような部分は多いので「思い込み」でやってしまうけど、
それで1日ハマることも多いです。場目〜確認すれば良かったぁ〜 という感じ。
あと通常は「マイコンに空きピンは無い」をデフォルトに考えます。
VCAPは、内部の3端子レギュレータの平滑用のコンデンサであり、
PIC内部にそんな大きな値のコンデンサは入れられないので、
わざわざピンに出して「外部にコンデンサ付けてね!」と言っているピンです。
だから「V cap」とキャパシタンス(コンデンサ)のcapを付けているんです。
どうすれば良いのか → データシートに書いてあります。パスコンと合わせて図が載っていて親切ですよ。
Vrefも同様で、参考にする(参照する)電圧なので、V referrence という名前が付いているのです。
入力を欲しがっているピンを開放にしてはいけません。手当をしてください。
どうすれば良いのか → やはりデータシートに書いてあります。
昨日からの展開を見ていますが、写真を1枚upすれば、回答率がグッと上がります。
見せられるものなら、写真をupしましょう。
皆さん、アップローダ→ URLリンク(img.wazamono.jp) を使っています。

90:774ワット発電中さん
15/08/25 12:39:05.65 KeGb4gf6.net
× 場目〜確認すれば良かったぁ〜
○ あぁ〜確認すれば良かったぁ〜

91:774ワット発電中さん
15/08/25 23:57:08.39 37DNbiZ6.net
自己解決しました。
ダメ文字をコメントの末尾に使っていたせいで次の行のIPEN = 1がコメントアウトされてしまい、割り込み優先度機能が無効になっていました。
そのままlow_priorityとhigh_priorityの関数を定義したのが悪かったようです。
コメントを消したところきちんと動作するようになりました。

92:774ワット発電中さん
15/08/25 23:58:16.65 37DNbiZ6.net
>>89>>76についてです。

93:774ワット発電中さん
15/08/26 00:40:09.78 PIMX37xz.net
>>89
なるほど、たまにやってしまうよね。
確か行末に「能」を書くとダメだった気がする。
3日くらい悩んだ記憶がある。

94:774ワット発電中さん
15/08/26 00:49:03.88 W21N4ybK.net
>>91
2バイト文字使うときは、コメントに // 使うのは危険。

95:774ワット発電中さん
15/08/26 02:19:39.46 PIMX37xz.net
//使っても、最後にTABを打っておけばいいような気もする

96:774ワット発電中さん
15/08/26 07:08:06.88 XKZciWO9.net
改行の前が0x5Cでなければいいわけかな

97:774ワット発電中さん
15/08/26 07:38:29.30 028LZoNQ.net
Sjisの罠か

98:774ワット発電中さん
15/08/26 11:51:42.51 j4oIxNhH.net
UTF-8にしとけば問題ないんだっけ

99:774ワット発電中さん
15/08/26 12:48:21.02 jdd5RduS.net
学習方法について教えてください。
完全な初心者です。
PIC24から始めようと思っています。
しかし検索してもPIC16,18とは違ってサイトが全然見つからないです…
本を探してみると後閑氏の
「 C言語ではじめる PIC24F活用ガイドブック」を見つけましたが、中身を見たところ現状では殆ど理解できませんでした。
上記のようなPIC24Fに特化して書かれているものを買って、分からないなりに一つずつググり学習するのは正攻法なのでしょうか?
それとも種類を限定せずにマイコン全般について解説のある本で勉強すべきでしょうか?

よろしくお願いいたします。

100:774ワット発電中さん
15/08/26 13:04:51.86 UrMOfw4o.net
>>97
資料の多いPIC16f84をアセンブラから始めて、Cに乗り換えればどのファミリのPICでも開発できるようになるよ
急がば回れ、コッテリやってください
開発環境のMPLAB Xの情報は多いか少ないか微妙なところだけど、旧式のMPLABに慣れたらさっさとMPLAB Xに移行すると良いよ

101:774ワット発電中さん
15/08/26 13:21:17.85 qZSwa5YZ.net
MPLAB Xが良いのは同意だが
触る予定もない16Fをアセンブラで勉強しろとか
頭おかしいんじゃないの
>>97
PICファミリは8bit(16F/18F)、16bit(24F/dsPIC)、32bit(32MX MZ)で
それぞれ性能やカバー範囲、プログラミングスタイルが違うから
たまたま同じメーカーなだけで、別物だと思って問題ない
24Fを使いたいなら、まずは一通りの開発を手ほどきしてくれる本を買って体験して
その上で応用したり他の路線に切り替えたりすればいいよ

102:774ワット発電中さん
15/08/26 13:27:41.71 KsQlMHVp.net
配線しなくても書き込みとデバッグのできる他のマイコンボード買って始めた方がいいぞ
動かして自信がついたらPIC24Fにチャレンジ

103:774ワット発電中さん
15/08/26 13:43:56.29 PIMX37xz.net
>>97
>>100の言う方法が良いと思います。
1. まずは、全体の流れを知る。(本で脳内体験はなくて、実地体験)
2. イメージが湧いたら、PIC24Fに行く
ハンダ付けなど工作もやりたければ、鈴木哲哉のPIC本を、頭から全部やる。
ハンダ付けしたくないなら、・・・(わからん)
イメージができるまでは、PIC16でも18でも、PIC24Fでも、なんでもいいです。
でもPIC24Fは設定も多くて難しいです

104:774ワット発電中さん
15/08/26 14:06:39.25 KsQlMHVp.net
なんとか致命傷で済みそうだ

105:774ワット発電中さん
15/08/26 14:36:00.05 UrMOfw4o.net
PIC32だけは別物と考えていいけど、それ以外はアーキテクチャのクセもほぼ同じだと思うんだけど?
下らないところに嵌まらないためにもアセンブラの知識は必須だと思うけどね
MPASMもASM30殆ど変わらないし、インラインアセンブラ無しでまともな物が書けると信じるのは経験値不足かな
ボードでやり始めるのはいいかもね

106:774ワット発電中さん
15/08/26 15:32:17.47 PIMX37xz.net
>>103
Cで書くところの
  unsigned long int a;
  while(1){
    if( a < 1234567890){
      a++;
    } else {
      a = 0;
    }
  }
って、アセンブラで書くと、どのようになるのでしょうか?

107:103
15/08/26 15:47:29.38 740Gs38T.net
そのコードをアセンブラにする意味が分からないけど、最適化コンパイラなら無視されるだろうね
変数aにstatic属性が付いてないからwhileループ内での計算が無意味だからね
そのコードで何かしたいならstaticを付けるか、unsignedの前にvolatileを付ければいいと思うよ
アセンブラが生きるのはリアルタイムなところ

108:774ワット発電中さん
15/08/26 16:03:21.43 CKk28K19.net
?

109:774ワット発電中さん
15/08/26 18:57:45.27 PIMX37xz.net
>>105
すみません、そこまで精密に書かなければいけませんでしたね。

Cしかやったことがないので、アセンブラで、
  ・16bitを超える数値をどのようにして扱うのか
  ・16bitを超える数値をどのようにして比較するのか
が知りたかったんです。
a = (b * c / 123456) >> 5; とか簡単に書けるけど、アセンブラだと、
行数も多くなるんだろうなぁ、


110:ニ思っていますが、そんなことないでしょうか?



111:僕小がく生
15/08/26 20:11:57.49 CwgSs17/.net
>・16bitを超える数値をどのようにして扱うのか
数学処理用のサブルーチンをマイクロチップが公開しているので
そのサブルーチンを呼ぶのが簡単確実だよ Σd(^ー^)
>・16bitを超える数値をどのようにして比較するのか
マイクロチップが公開している数学処理用のサブルーチンは
アルゴリズムの解説やソースも添付されているのでそれを読んでみれば
いいとおもうよ(^ー^)

112:774ワット発電中さん
15/08/26 23:28:35.36 dcLtlgvo.net
>>107
その手の整数計算、整数比較は最適化コンパイラと人力アセンブラは良い勝負だから可読性の高いCで書いた方がいいよ
純粋にアセンブラコードを知りたいならCで書いてMPLABXのシミュレーションで逆アセンブル結果を見ると良い
どうもアセンブラの使い所が分かってないようだからアセンブラが活きる高速計算の例を1つ書くと、
整数計算で32bit÷16bit=16bitのような型違いの計算がしたいときなんかがまさにそれ
(Cだとlong÷intは型キャストされて32bit÷32bitになるから4倍の計算時間が掛かってしまう)
この応用で、int整数×実数(int分子,int分母)なんかもフロートを使わずに、int整数×int分子÷int分母という風に書けば、計算途中のint×intをlong型で保存したりその一時的longをintで割って答えのintを得たりといったCでは文法的に絶対出来ないミラクルが可能だったりする
同然フロートを使わない分、型キャストがない分、Cよりも遥かに速い実数計算が出来る

113:97
15/08/26 23:42:04.62 jdd5RduS.net
アドバイスありがとうございます。
色々ご意見頂きましたが、とりあえずPIC24を本と一緒に触ってみて、歯が立たなければもっと簡単なもの(arduino等?)でやり直して見たいと思います。
ありがとうございました。

114:774ワット発電中さん
15/08/27 00:26:43.70 jv5vWcQq.net
デュイーノは無いかなw

115:774ワット発電中さん
15/08/27 02:20:04.57 6xZaUuJz.net
>>110
また両極端なマイコン選択

116:774ワット発電中さん
15/08/27 11:31:21.74 OVL51lZK.net
プログラムの実行速度やサイズを気にしない人
数Kバイトのプログラムなのに移植性や可読性を優先する人
やる気の無い人やコピペで済ませたい人などは
Cだけをやってたほうがいい
それにCとアセンブラでは流儀作法や考え方(アルゴリズム)が異なるので
Cの一部に埋め込みアセンブラを使っても大したものは出来ない
(以上は一部のアマチュア向けの話ね、利益優先のプロは別)

117:774ワット発電中さん
15/08/27 12:47:55.29 6xZaUuJz.net
今あえて アセンブラをやる必要は感じないですね

118:774ワット発電中さん
15/08/27 12:49:45.98 jv5vWcQq.net
そりゃ内部モジュールを誰かのライブラリ使ってたらそう思うわな
ここは素人スレだから仕方ないけど

119:774ワット発電中さん
15/08/27 12:54:50.59 EbzS1Qj2.net
使わなくてもいいけど使えるようになっておけばトンでもないコードを書くことはなくなる

120:774ワット発電中さん
15/08/27 14:02:49.38 6xZaUuJz.net
内部モジュールもCで書いて使っています。
トンでもないコードって、例えばどんなコードですか?

121:ぼく小學生
15/08/27 16:24:24.65 HMnuzEYc.net
116に対して、おれPICのコード書くときはいつもasmだけど、
とんでもないコード平気だって書くよ!ってレスをして、不用意な断言に
釘を刺そうかと思ったけど、117の質問が俺に向きそうだからやめとく(^〜^;)

122:774ワット発電中さん
15/08/27 17:33:50.87 80Vyj45l.net
asmでプログラム書いてるプロは、設計資料はどこまで書いてるの?それにどれくらい時間かけてる?
提出資料を求められるのは普通だと思うんだけど、cで書くのに比べてかなり工数がいるでしょ。
PWM使ったLチカ程度でも最低フローは4レベル、定数と変数の遷移図がアセンブラで要求されるよね。

123:774ワット発電中さん
15/08/27 18:18:02.04 jv5vWcQq.net
なんか拗らせてんなw
コッテリやってこなかった人はアセンブラに夢を抱きつつも解らないから難癖をつける印象
実際ただの常識なんだよなー

124:ぼく小學生
15/08/27 19:20:42.97 98po/nYQ.net
>asmでプログラム書いてるプロは、設計資料はどこまで書いてるの?
ぼく小学生だからわかりません(^p^)

125:774ワット発電中さん
15/08/27 22:42:46.86 kegbyfQO.net
永遠の小学生()

126:774ワット発電中さん
15/08/27 23:33:52.33 Sct5v83d.net
UTF-8ならダメ文字の問題がないのは分かっていても、
文字列に半角カナを直接書けるShift_JISの利点は捨てがたい。
シリアルポートとかキャラクタ液晶とかに文字出すのに便利なのよ…。

127:ぼく小學生
15/08/28 10:53:49.93 Kc4FIQHT.net
茶化しただけじゃ失礼ですね、サーセン><;
外注さんとか派遣さんに頼んだりする業態だと、
保守時やらに同じ人が責任もって対処できる保証もなく
作業の引継ぎを前提にすると資料の整備が不可欠となり、
要求仕様書とかを包括したものはもちろん、
関数単位で仕様の文書が整理されたりもするようですが
うちは零細で保守・クレーム対応も自分でこなしますし
PICの資源の殆どを使わずに残す様な単調な処理にしかPICを用いていませんので
打ち合わせ内容の整理・要求仕様の確認ぐらいまではしますけれど
ソフトウェアの内部構成に関しましては、さほど資料整備はしていませんです、
(バグが予想されるほどよっぽど複雑な内容でもない限り、
状態遷移図もめったに書きません)参考にならずすみません。。。
(うちの場合、込み入った内容ならルネサス系の石でC言語を使ってます)

128:774ワット発電中さん
15/08/28 20:37:34.62 Gk7mpfeG.net
うちも似たような業態で、同じような規模の仕事。
うちは込み入ってくると、PIC>ルネ>ARMかな。
PICな仕事でアセンブラはどうよってことなんだけど、設計資料は提出未提出問わず、
できるだけ書いてます。自分が三歩歩いたらアルゴリズム忘れるタイプなので。
で、たまにエンドクライアントから、internalTestの結果と項目提出を求められる。
FunctionTestは項目少なくて簡単なんだけど、ITの場合は全分岐の妥当性チェックを求められるんで、
項目抽出がアセンブラだと膨大な量になり大変なことになってしまう。
キャリやボロー、フラグ変化で動くところすべてを出さないといけないのはたまらん。
おまけにPICの場合、ポインタ関数ジャンプも使えんので、メンテ製も低い。
なので、できるだけアセンブラは避けるようにしてます。
速度や容量など必要な場合は、スペックあげる方向で動く。駄目な場合は嫌々アセンブラで書くが、
スペックあげさせてもらえない場合は仕様変更ということで工数あげてもらうよう交渉かな。
見積はそこのマージンだけは何とか確保しておく癖がついた。

129:774ワット発電中さん
15/08/30 16:37:11.06 oPpfsedj.net
>>124
小学生のくせに何しったかしてるんだw

130:ぼく小學生
15/08/31 09:27:45.99 fAvBJxC/.net
さーせん><;

131:774ワット発電中さん
15/09/01 03:18:15.00 38IB9HlQ.net
PICのA/Dコンバータで教えてください。
データシートに、A/D入力の信号限インピーダンスは、3kΩ以下


132:@などと書いてあります。 この値について、次の理解で正しいでしょうか? ・信号限のインピーダンスは、低い方が良い。   3k以下であれば、データシートに書いてある電気的性能を満足します。 ・なので、もっと誤差が多くても良い人は、3kより高いインピーダンスの信号でもいいです。 ・また、3kは最高速度のサンプリングの話なので、サンプリングスピードを1/2に遅く使うなら   3k以上でも大丈夫 ・あるいは、入力にA/D入力容量の10倍程度のコンデンサをつければ、   信号限抵抗が3kより大きくなっても良い ・要は、PIC内部のコンデンサに、規定時間以内に、信号源の電圧をコピーできれば良い   つまり、CRの充電なので、C×Rの値が小さくなればよいのです。




次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

872日前に更新/295 KB
担当:undef