あ。しまった。 36にするの忘れた あとテンプレはあってる自信がないので誰かに頼む
3 :
774ワット発電中さん :2011/12/02(金) 19:56:21.00 ID:Jdq+i9/f
picに書き込めません。 icd2でicsp方式にて書き込みたいのですが、 ICDWarn0020 とエラーが出てしまいます。 また、前回書き込んだプログラムは実行できているので、 picの故障ではないと考えています。
ICD2使ってる人いるんだ。そりゃ居るだろうな。 やっぱ、pickit3よりも開発環境としては良いのだろうな。 金があったら買いたい。
ICDWarn0020: ICD2が物理的に接続されていないか、間違ったチップが接続されている場合に出ます。特に、 (expected=0xFF, read=0x0) と出ている場合は電源が入っていないか、物理的にプログラムケーブルが抜けている場合が多いです。
6 :
774ワット発電中さん :2011/12/02(金) 22:09:32.75 ID:Jdq+i9/f
3ですが、 VDD-VSS間のデカップリングコンデンサを5組中1組だけつけないと 書き込みが出来ないということはありますか?
このスレはどんな質問にもレスが付くけれど。皆さんどんな職業なんですか? 冗談でライターばかり作っているとか言っているけれど、マイクロチップ社の人とかですか?
8 :
774ワット発電中さん :2011/12/02(金) 22:14:23.01 ID:Jdq+i9/f
3ですが、 VDD-VSS間のデカップリングコンデンサを5組中1組だけつけないと 書き込みが出来ないということはありますか?
職業:怪傑ズバットのおじさん
>>6 >>8 VDD-VSS間のデカップリングコンデンサを5組中5組全部つけて試してみると
どうなりますか?
16F877で、もっともシンプルなLED全ポート点滅プログラム例(アセンブラ)をお願いします。 何がなんだか分からなくなってしまいました。
>>11 もっともシンプルなLED全ポート点滅プログラム例(アセンブラ)を動かしたら、
目視では点滅してるのが分からなくなるが(連続点灯にしか見えなくなるが)、
それで良いのか? 点滅周期は数十kHz〜数百kHzのオーダーになるぞ
>>11 それから基板の作りが悪いと全ポートオン/オフで発生するノイズの問題が
出てくることがあるから、最初はLEDは1ヶだけ接続して実験した方が良い
せめてスイッチは付けろ
SDカードに書き込んで、PCで見られるデータロガーを作ろうと思います。 PCでxxx.datとかで認識できるようにするには、 どうすれば良いでしょうか? マイコン直結のSPI書き込みで行けるでしょうか?
>>15 本屋に行けばそういうの載ってる書籍たくさんあるよ。
Petit FatFsを使ってできたな でも、あれ少しバグがある
向こうでレスついてるよ こっちで続けるなら、取り下げてきて
20 :
18 :2011/12/03(土) 17:11:22.06 ID:IDvEbAjY
>> 19 向こうでついたレスの分は修正済みでUPし直した。 PICスレ池って言われたので。
誰かさんのwebじゃなくてマイクロチップ自身が出してるからそっち参照したほうがいい USBデバイスのサンプル豊富で助かる
マスターになるサンプルが見つからない USBメモリに記録させたいのに
>>23 マスター⇔スレーブじゃなくてホスト⇔デバイス・ファンクションね。
マイクロチップのUSBライブラリ付属のサンプルに
「Host - Mass Storage - Thumb Drive Data Logger」
ってあるけどこれは要求に沿わないの?
25 :
774ワット発電中さん :2011/12/04(日) 12:57:42.24 ID:iDIOK+6F
USBメモリにファイル保存するだけなら
>>15 >>16 >>17 のやり方が普通だと思うよ。
USBホストのハード用意して
マスストレージクラスドライバを積んで
なんてしたら、ハード規模が大きくなり
PICを使う利点が無いよな。
たぶんPIC24Fを使うのだとは思うけど。
PICkit2 Programmer使ってて「Auto Import Hex + Write Device」というボタン を押しとくと、アセンブルしてHEXファイルが更新されると自動的に書き込んで くれるんだな。これはデバッグに便利。 結構長く使ってるけどこんな機能知らなかった。
ものすごく初歩的な質問。。 例えばPORTAの1(RA1)の値を読み込むとき、Cで書く場合 どうすればいいんだっけ? int i; TRISA = 1; i = RA1; だとうまくいかない。。
HI-TECH C だとそれでうまくいくけどね bitがうまくいくように定義されているから 普通は (PORTA)&(1<<RA1)==0ならRA1は0で (PORTA)&(1<<RA1)!=0ならRA1は1とやるのでは
>>28 HI-TECH Cだとできるんだね(前やったときおれもできた気がした)
今C30コンパイラ使ってやってるんだけど、そもそもRA1がundecleared
となって使えない状況なの。。
で、いろいろいじって、一応、苦肉の策で
if((PORTA & 0x02) == 2){
// RA1が"H"の時の処理;
else{
// RA1が"L"の時の処理;
}
で動くようにはなった。(0x02はRA1がPORTAの2ビット目なので)
もっとスマートな書き方があるといいんだけど。。
>>29 C18だとPORTAbits.RA1みたいな名前だったから、C30もそんな感じなんじゃないの?
定義読むべし。
>>30 すばらしい!
下記でできたよ。
if(PORTAbits.RA1 == 1){
// RA1が"H"の時の処理;
else{
// RA1が"L"の時の処理;
}
で、ヘッダーファイルを読んでみると、
#define _RA1 PORTAbits.RA1
とさらに置き換えしてあったので、試しに
if(_RA1 == 1){
// RA1が"H"の時の処理;
else{
// RA1が"L"の時の処理;
}
でやってみてもちゃんと動いた。
これからは横着しないでヘッダーファイル読むよ。。
どうもありがと。助かりました
てかこれでいいねw if(_RA1){ // RA1が"H"の時の処理; else{ // RA1が"L"の時の処理; }
>>32 ポートの値(1/0)だから可視性が落ちる
できればBOOL型のときだけ使いたい
・・・・個人的な思いだけどね
俺はboolとbitは意味的には同じ物として見ちゃってるなー まぁbool型が実際にはintと同じサイズだったりはするけど
わかってて書いたけど、可読性という意味では、
>>32 はよろしくないねw
横着すると、後ではまるのがプログラミング。。
それから、PORTAbitsはSFRの構造体になっているので、そう言う意味では、
_RA1ではなく、ちゃんとPORTAbits.RA1とメンバー指定の書き方で書いた方が
より実際の実装状態を意識した書き方になるね
ヘッダー読めばこの辺りもちゃんと書いてあるよね。最初から読んでれば。。
すみませんでしたm(_ _)m
よくいるよね、if(SW){・・・・と書く人。その書き方、僕は嫌い。 if(SW==H){・・・とか、if(SW==1){・・・とかでないと。
ネットで発表しているプログラムでif(SW==H)とか書いてるとわーーーこの人素人さんだ たいしたことないわねと思われるんだよ 無理してでもif(SW)と書くべきそうすればワンランク上の人と思われる
びットテーブルなら、(!SW)と(SW)でいいんだろうけど、読むときにうっとおしいのであえて == のある式にするなあ。 書式の統一をかねて。 while(1) ぐらいならやるけど。 while(-1) じゃなくなったのはいつからだろう?
>>38 真は1だし、最適化で違いはなくなるからね。
わざわざアセンブラ1行をCで1行にする意味について。
移植性とか言うけど、PICからAVRに移植するならCでも手直しが要るだろうし、 同じPICならアセンブラのほうが手直しが楽だと思うが。
>>42 マイコンの性能をギリギリまで絞り出すならアセンブラ、そうでなければC。
それに、複雑なアルゴリズムはCを使いたいよね。
>>37 >無理してでもif(SW)と書くべきそうすればワンランク上の人と思われる
逆だと思う。
SW==Hと、ハッキリと明示することが、勘違いしない、バグの出ないソース、
であることを知っている人だ、と思われるんではない?
経験が長い人ほど、押さえなければならないポイントをしっかり把握しているよね。
なんとなく負論理の方がカコイイので、 そのままif文にすると読めなくなる
>>45 なんでかっこいいんよ…
さて
ポートの論理を加味して、徹底的に読みやすくすると、defineとかに行き着くんだろうか…
#define SW_READ(x) !(x)
#define ON 1
if (SW_READ(SW) == ON)
みたいな
Cも平たく書けるのに、わざわざ難解な書き方して俺ってプロwwとかいう言語仕様をしてるのが気に入らん。
んな細かいとこに拘るより、もっと大切な事があるだろう。
スイッチ入力が正論理か負論理かは回路に依存するので それを吸収できるコードの方が望ましいっちゃー望ましいけどな
>>46 そこまで書くなら何のスイッチがオンになったかのマクロの方がよいのでは?
#define SW_START() (!(_RA1))
#define SW_STOP() (!(_RA2))
>>51 俺の場合、更に isを頭につけてる。 if (isSW_START()) てな感じ。
環境依存はdefineの中に押し込み、プログラムの記述にハードウェア論理を持ち込まない様にしてる。
ここ最近はこの形が多いけど、暫くすると、また書き方を変えるかもしれない。
defineだけで逃げ続けないといけないのが辛いな 関数使っていいならいくらでも綺麗に書けるのに
>>53 マクロから関数に簡単に変えられるでしょ。
ポートを読むだけならマクロで十分でしょう。
>>51 ああ、そうか。ビットテーブルだっけか。
>>54 関数っぽい記述にしておけば、関数にもすぐ差し替えられるね。
私は特殊レジスタの初期化は必ず B'11101111'みたいに書く でも世間では、H'fb' とか、わざわざ16進で表記するひとが多い あれは何で? データシートと付き合わせるなら2進の方が都合がいいと思うんだが
C言語に2進表記が無いから
最近は結構使えるんじゃないか
>>57 アセンブラでも16進の人が多いんだよな
本業の方のC言語で16進使ってるからつい流れでそうしちゃうってことかな
2進表記は位取りが誤読し易く読みにくいのでうちの職場ではNG。 16進表記ぱっと見てビットパターンが思い浮かぶようになっていれば見易い。
そこで十進数ですよ
10進、、、ビットパターンが思い浮かばん、、、。
カウントに使うなら、ありかな。
>>60 そういうことですか。
確かに16進からビットパターンが浮かぶようになっていれば一瞬で正確にビットパターンが読み込めるわけで
プロならそれは必須そうですね。
アマだけど覚えなくちゃ仕方ないかな
>>53 たかだかポートアクセスごときで関数化してたらオーバーヘッド多くて低速になってしまう。
粒度の細かい抽象化にはマクロ関数が最適。
〜広めてください。 ▼スイス政府 国民保護庁 著「民間防衛」(civil defense) 武力を使わずに他国を侵略する段階を説明しています。 マスコミは乗っ取りがほぼ完了しており機能していません。。クチコミでも身近な人に広めましょう。 日本は今、侵略されつつあります。平和ボケから目覚め、行動を起こしましょう! 現在第五段階です。 TPP ・ 日中韓FTA ・ 人権擁護法 ・ 外国人参政権 などが実現してしまえば最終段階が始ってしまいます。 猶予がありません。声を挙げて下さい! 第一段階「 工作員を送り込み、政府上層部の掌握と洗脳 」 第二段階「 宣伝。メディアの掌握。大衆の扇動。無意識の誘導 」 第三段階「 教育の掌握。国家意識の破壊 」 第四段階「 抵抗意識の破壊。平和や人類愛をプロパガンダとして利用 」 第五段階「 教育やメディアを利用して、自分で考える力を奪う 」 最終段階「 国民が無抵抗で腑抜けになった時、大量移住で侵略完了 」
>>64 プロでもなかなか2進⇔16進できるやつは少ない。たいてい関数電卓でやっちゃう。
できるやつってのは大抵アマのうちに趣味のPCでキャラ作ってた奴とかだった。
16進と2進は4bitごとにわけて考えられるから、16通り憶えればいい 結構すぐできるようになると思うけど
16進を2進に変換するなんて九九を覚えるより簡単でしょ。
>>69 俺は片手で31まで数えられる
でも、二進十進の暗算は苦手
通は16進で九九が言える
72 :
774ワット発電中さん :2011/12/06(火) 23:46:34.34 ID:ZRUkenVa
16進数を言われて、2進数がパッとわかるのは、以下のものだけ。 0x00 = 0b00000000 0x01 = 0b00000001 0x02 = 0b00000010 0x03 = 0b00000011 0xaa = 0b10101010 0xcc = 0b11001100 0x88 = 0b10001000 0xff = 0b11111111 および、ニブル入れ替えの数値も
少なくとも2^n系はすぐわかると思う 0x00, 0x01, 0x02, 0x04, 0x08 0x10, 0x11, 0x12, 0x14, 0x18 0x20, 0x21, 0x22, 0x24, 0x28 0x40, 0x41, 0x42, 0x44, 0x48 0x80, 0x81, 0x82, 0x84, 0x88
0-7は普通に判るだろ 8以降も、8とFは判って当然 9は8+1だし、EはF-1だからいいとして、問題はAからDの4種類 Aはまだ10進の10だとという認識が強いから2+8に分解すれば1クッションで判る B=1011 C=1100 D=1101 このへんが最後まで残る せめて、10進での1と9とか2と8みたいに、 Bと4、Cと3、Dと2が補数に見えればいいのだけれど、 一旦10進に戻してると1クッションでは済まない
何度も使ってれば勝手に覚えちゃうもんだと思うんだけどな 電卓とかキーボードで入力するようなのはなおさら
ちょいと疑問なんだが。 PICでLEDを点滅させてるんだが、 内部発振回路(4MHz?)を使うと 10k x 25 ウェイトでちょうど1秒になる。 外部発振回路(水晶 20MHz)を使うと 10k x 200 x 2 ウェイトでちょうど1秒になる。 ソースはこんな感じ #ifdef USE_XTAL Delay10KTCYx(200); Delay10KTCYx(200); #else Delay10KTCYx(25); #endif それぞれ、なんでその計算になるのかがわからない。 ついでに Delay10KTCYx(200); Delay10KTCYx(200); を Delay10KTCYx(400); とすると、ちゃんとウェイトがかからなくなる。 これもわからない。 わかる人教えでください。
78 :
77 :2011/12/07(水) 01:13:11.83 ID:6ssXB+oF
ぜんぜんちょうどじゃなかった。 Delay10KTCYx(200); Delay10KTCYx(126); くらいが一番近いかも。
引数はunsigned char型なので0〜255の範囲 0のときは256とカウント 256を超えるときには複数回に分ける必要がある ウェイト時間が計算値と違ってるのは 割り込みを使ってるのか? クロック設定が違ってるのか? プログラムがまずいのか? 何かしらの原因があるのでしょう
HI-TECH Cだと 255以上も使えたような気がする あまりよろしくなさそうだけど __delay_ms()の引数を変数できなかった気がするのだけど、 数値によってコード(マシン語?)が変化するからかな?
あれは数値決め打ちのループ命令に置き換わってるからな
秋月の300円LCDモジュール在庫切れのままだ・・・・
あんなのは売り切っておしまいでしょう
aitendoに同等品が売ってたような
300円液晶は今年の春頃在庫切れになって少したって復活した あわてて14個買ったさ
後閑さんとこのPIC CLUBミーティング写真、平均年齢たか! 今の電子工作の世界は普通?
普通かどうかわからんが発表内容の頭の柔らかさにビックリする
>>87 CQ ham radioを読んでる俺には見慣れた光景だ
オープンソース系のミーティングもいずれはああなる
老人は死なず、年金もらって長生きするのみ
>92 HT38A5ってなーんだ?
こんばんは。お力を借りたくやってきました。 picで電圧の精密な測定を行いたいのです。サンプルは電流・電圧どちらもです。 構成は、 サンプル−(オペアンプ)−pic−D/Aコン−表示 の予定ですが、 ↑ココ と ↑ココ にバッファやノイズ対策用のアンプ?などを挿入するべきでしょうか? 要求使用は5V,10ビットで誤差1%程度が望ましいのですが・・・。 また組み込むべきであれば、オススメの部品も教えていただけると非常に助かります。 よろしくお願いいたします。
>>94 まず、言葉の定義を、「サンプル」とは何?
電気回路で類似している言葉に「サンプル アンド ホールド」というものがあるが違うのかな?
また要求使用(仕様?)で測定時間(間隔)は?
D/Aコン(バータ?)を使っての表示とはどのようなもの?
PICを用いる意図は?
何で知らないのに首を突っ込みたがるんだこの回答者様は
98 :
94 :2011/12/10(土) 00:14:16.47 ID:jF0KTTCT
>>95 仕様誤字すみませんでした。
サンプルは
>>96 がおっしゃるとおり、測定したい電流値、または電圧値です。
picを用いる意図は、サンプリングタイムが数m秒で、A/Dコンバータを有していること。など
D/Aコンバータ→表示だとおかしいですね。表示ではなく、昇降圧後に外部機器に接続します。
なぜ単純にDC-DCコンバータを使わないのかと言われそうなので、
小数点2桁目ぐらいまで制御したいためです。そのためのpicでもあります。
// チラシの裏 // PICのADCで電圧受け取ってそれを加工、さらに加工したものを外部の // DACでアナログにして、アナログ式のパネルメーター?で表示するわけか // いまどきアナログ表示使おうとかいい趣味じゃネエか // 車のメータ類みたいにステッピングモータ使っても面白そうだな // チラシの裏終わり
>>98 計測用途でDCDC使おうとか思うのは、廚かキミ位なんで安心して欲しい
質問に答えられないなら黙ってればいいのに いちいちちゃちゃ入れて 嫌なオヤジ達だな
103 :
774ワット発電中さん :2011/12/10(土) 00:29:13.72 ID:m0ScnDly
5Vを10ビットサンプリングか。
ぶっちゃけ、この情報量で答えられる訳が無いんだがw 測定電圧がPICのVref- 〜 Vref+の範囲 Vref- と Vref+には高精度の電圧を与えること ADCの変換クロックはできるだけ遅くすること 測定対象とPICのGNDは共通にできること 測定対象のインピーダンスは10KΩ以下 この条件を満たせるならばPICのADCのピンに直接電圧を与えれば宜しい
最近のバイクはスピードメータがデジタルでオジサン悲しいです。
>>102 作りたいのは複数個の定電圧源です。ですので、D/Aコンバータも4chだったりします。
具体的には、
0~1Vをいじって1Vで出力。 1~1.5Vは1.25V 1.5~3Vは2.5V 3~5Vは5V
みたいな感じのを作りたいのです。もちろん値はもうちょっと細かくなりますが・・・
所詮、質問の質に見合った回答しか帰ってこないってこった 何を作るのか不明 使うPICの型番も不明 測定対象の範囲も不明 文章、用語の意味不明 これじゃ何もわからん まずは自分の作りたいものを正確に説明できるようでなければ まともな設計も制作もできないと思ったほうがいい
聞きたいのはノイズ対策についてだしな PICの型番が回答に影響するのか
>>107 影響しないと思うのならお前が答えてやれ
そうだね
>>105 でもまだ具体性に乏しくて何をどうすれば良いのか
アドバイスのしようがないかも
>>105 この仕様ならPICに入力された電圧によって出力するchと電圧をわければいいんだな
PICで電圧測定してDC−DCを4個用意して電圧調整して電圧をリレーとかでそれぞれ出力すればいける
う〜ん、素人なのでどの情報が重要なのかっ、てのがいまいちわからないです。
0~15Vの電圧を降圧し、PIC内でいくつかのしきい値を設定し、それらに応じた定電圧を出力
したいので、出力側にもアンプなどを置く必要があるかー、というのが知りたかったのですが・・
とりあえず、
>>108 さん、PICの型板がどう影響を及ぼすのかだけ教えていただけませんか?勉強になるので
>>112 なるほど、ありがとうございます。あと、表1ならさらっと見ました
>>113 追
性能差はもちろんわかりますが、あくまでノイズがPICによって変化するのかなーと思ったので
全部読みましたが、なるほどわからんです。電子工作向いてないんですかねぇ・・・ 皆さんありがとうございました。特にmDT2vu8pさん助かりました。
116 :
774ワット発電中さん :2011/12/10(土) 01:47:54.72 ID:k781YKhx
AVRに押されてあまり使われなくなった
>>116 ぜんぜん荒れないじゃないか! 責任取れ!
悪口罵詈雑言飛び交う2chはどこへいったのだ?
まったりお茶のも
>>118 ヴォケ!
>>115 全部読みましたが、あなたは電子工作向いてないです
電子工作に向いてないってことはないだろうが
>>94 →
>>98 →
>>105 →
>>111 と言ってることがコロコロ変わりすぎている
自分でも何したいのかわかってないんじゃないか?
とりあえず一度は自分の思うように作ってみればいい
その上で疑問が出たらまた来て下さい
PIC使う必要なくね? コンパレータとトランジスタスイッチでいいじゃん
>>111 つまり、まとめてエスパーすると、
入力が 0〜1V -> 1Vを出力
入力が 1〜1.5V -> 1.25Vを出力
入力が 1.5〜3V -> 2.5Vを出力
入力が 3〜5V -> 5Vを出力
(各出力電圧帯の電圧値は微調整可能)
な電源(4ch出力)が欲しいので、下記の様な構成を考えたんだけど、※1・2に
バッファやノイズ対策用のアンプ等必要でしょうか?
PIC
┌──────┐
※1 │┌─┐ │ ※2
ch1 ─[Buff]─┤┤A | ┌─┐.├─[D/A]─[Buff]─ch1 OUT
││/D.| │ソ ││
ch2 ─[Buff]─┤┤コ .| │フ │├─[D/A]─[Buff]─ch2 OUT
││ン .| │.ト.││
ch3 ─[Buff]─┤┤バ│└─┘├─[D/A]─[Buff]─ch3 OUT
││││ │
ch4 ─[Buff]─┤┤ タ│ ├─[D/A]─[Buff]─ch4 OUT
│└─┘ │
└──────┘
かな?
なんかの冶具だろうか…
アナデバの複数電源を制御できる石かなw とか言いたくなるような何かだな。 便乗して質問を… stricmpで140個ぐらいのコマンドを識別させようとしたら10個でもRAMが足りないとかでたww こういうときにどういう書き方をすれば上手く削減できるんでしょうか…現状素人がかじった様な感じなんで思いつきませぬ。 ついでに言うと、この後130組み合わせぐらいの切り替えもしたいんだけどこっちもどう書けばいいか…何か参考になるもの無いですかねorz
A) (なるべく)値がカブらないハッシュを作る B) トライ木を作る とか。
コマンドの文字列群をプログラムメモリに記憶されるようにして(const char?) 1個ずつ作業用の配列にコピーして比較対象の文字列とstricmpするとかかね
>125-126 トライ木は知りませんでした。 両方の手法をどうやったら実装できるか、まず自分で考えて見ようと思います。 ありがとうございます。
>>123 スーパーエスパーすると鉛バッテリー4個の並列充電装置
130 :
774ワット発電中さん :2011/12/12(月) 22:30:01.62 ID:1n+u0+KC
16F690でSSP(I2C)を使いたいのですが、HITEC-Cにてどうやって使うのか良く判りません。 解説サイトもうまく検索にひっかかってくれません。 解説書でもなにかお勧め情報ありませんでしょうか?
データシートやアプリケーションノート見るべきかと ライブラリにないから使えないんじゃarduino厨と同じだよ
16F690のSSPはよりメジャーなPIC16F886 887とかのと同じ構成っぽいから PIC16F886 887とからめて検索すればいいものが見つかるかも PIC16F886のSSPもPIC16F876 877のSSPにスレーブアドレスマスク機能が 追加されただけで他は互換性あるから参考になる情報が見つかるかも 自分なりに想定するi2cの動作があってそれをどう実現するかの観点でデータシート読めば マイコンが換わっても難しいことないけど最初はなかなか難しいものですよね
16F690のはMSSPじゃなくて16F88とかと同じSSPなんですねI2Cマスター機能がないという…
>>132 のレスは取り消します
134 :
774ワット発電中さん :2011/12/13(火) 14:42:39.58 ID:B7GEsJ49
icd3を使っていますが、以前は問題なく動作したicc3が 今日使ってみると以下のようにエラーが出ました。 ICD3Err0086: Target Device ID (00000000) does not match expected Device ID (42070000). If you experience persistent problems communicating, the ICD 3 test interface can be used to help diagnose the problem. picを変えても同じエラーが出るのでicd3の故障でしょうか?
いままでそういうメッセージ見たことない? 通信エラーでデバイスIDさえ読み出せない 配線短くするとか、対症療法的に信号線に小容量のコンデンサ(10pF程度?) ぶら下げるとか、電源電圧振って試してみるとか
136 :
774ワット発電中さん :2011/12/13(火) 15:15:35.27 ID:B7GEsJ49
>>135 今日初めてみました。
また、コンデンサを接続しても治りません。
137 :
774ワット発電中さん :2011/12/13(火) 15:23:29.96 ID:AOejU9ZV
>>134 通信ケーブルの断線や接触不良
PICに電源が通っていない
138 :
774ワット発電中さん :2011/12/13(火) 19:33:11.84 ID:B7GEsJ49
>>137 通信ケーブルの断線や接触不良でもないようです。
前スレだか前々スレだかで ピン配置はこうだろうって思い込みでデバッガーと接続して 動かねー動かねーって言ってたのいたよね
140 :
774ワット発電中さん :2011/12/13(火) 20:41:22.26 ID:XkyUv+9/
CCSでdspicを使ってモーター動かそうと思ってるんですけど レジスタを直接いじらないといけないんですか? ちなみにPWMモジュールを使いたいです
141 :
774ワット発電中さん :2011/12/13(火) 22:55:49.92 ID:B7GEsJ49
134ですが、 通常であればicd3とpicをicsp接続してるときはpicのMCLRピン (icd3の1番ピン)は0Vとなるはずなのに、現在は電源電圧が出力されています。
>>141 あんたの秋月の中華ICD3?本家版ICD3?
診断用ターゲットでテストしてみた?
143 :
774ワット発電中さん :2011/12/13(火) 23:08:10.19 ID:B7GEsJ49
>>142 本家です
診断用ターゲットの結果でもmclrピンがエラーみたいです。
ICD3Err0083: Test interface MCLR level failure.
ICD3Err0057: Interface test could not be completed. Please
contact your local FAE/CAE to SAR the unit.
144 :
774ワット発電中さん :2011/12/14(水) 00:23:00.99 ID:ChxeQAld
134ですが、 10kの抵抗を介してpicのmclrピンとVDDを接続していますが、 この抵抗を接続しない(picのmclrには何も接続しない)ときは、 エラーが出ず、書き込みが出来ます。
>>144 pickit2、3しか使ったことないけど、pickitの場合ICSPで書き込む時にはMCLRの所に書き込みの時の高電圧が逆流しないようにダイオードを入れてる
146 :
774ワット発電中さん :2011/12/14(水) 00:58:52.77 ID:ChxeQAld
>>146 そんなETN出てたんだ
Assy#が該当してれば変更して直る可能性はある
こういうのは本当に困るんだよね
同じような回路修正ETNがPickit2とPickit3にもあって、両方とも中をいじったことがある
>>146 本家のやつなら、マイクロチップに問い合わせてみればいいじゃん。
今まで使えてたんなら、壊れたんじゃないの?
あと、MPLAB最新にしてFWのUpdateしてみたら?
149 :
774ワット発電中さん :2011/12/14(水) 10:14:44.32 ID:96UCCRhm
マイクロチップに問い合わせをしたところ、以下のように帰ってきました。 We have automated ICD 3 replacement (RMA) process. So, a customer does not have to enter a ticket and wait for the response. Please visit www.microchip.com/cisar web site. The web site will walk you through the troubleshooting steps. If this does not help then in the end the web site will open a form before you. You can fill out your shipping address and ICD 3's serial number. You should receive the replacement tool within a week. 内容は、「ウェブサイトを見ても解決しなければ交換するから 住所とシリアルナンバーを教えてください。」 ということですよね?
USARTとUSBについてわからないことがあるので質問させてください。
いまPIC(a)→PIC(b)→USBという順番でデータをPCで処理しようと考えています。
PIC(a)→PIC(b)ではUSARTで、PIC(b)→PCはUSBで通信しようとしています。
しかし、どうも期待通りに動いてくれず困ってます。
環境はMPLAB C18コンパイラを、サンプルとしてMicrosoft SolutionのCDC Basic Demoを利用しています。
USARTのテストとして単純な送受信のみをプログラムし実行したところ、少しおかしいところはありましたが通信はできています。
また、PIC(b)とPCとの通信も無事に行えていることを確認しています。
しかし、これらをつなげPIC(a)からPCにデータを運ぼうとすると、CDC Demoのウィンドウにメッセージがなにも表示されません。
PICはともに18F4550(PICaはそのうちPIC16F785にする予定)を使っており、PIC(b)は秋月のUSB完成版です。
PIC(a)は内蔵8MHzで動作させ、PIC(b)は48MHz(?)で動作させ、PIC(a)とPIC(b)のTX-RXをジャンパ線で直接つないでます
また、PIC(a)のRA1にはトグルスイッチをつなげてあります。
ソース
PICa:
http://dl.dropbox.com/u/29158649/PICa.txt PICb:
http://dl.dropbox.com/u/29158649/PICb.txt
151 :
774ワット発電中さん :2011/12/14(水) 14:10:16.13 ID:2mmArGau
>>144 MCLR = 0.5 volts (too hi) - looks like bad driver in MPLAB ICD 2. Light load = 51k pup on target!
>>149 ?? 日本のマイクロチップに問い合わせたの?
日本のマイクロチップにメールか電話すればいいじゃん。
公式にのってるんだから。電話したの?
>>150 >USARTのテストとして単純な送受信のみをプログラムし実行したところ、少しおかしいところはありましたが通信はできています。
まずこれ直すのが先じゃね?
RS232で繋ぐならPIC(b)使わんでもFT232とかでいいと思うが
MPLAB IDEではコメントになら使えていた気がするのですが、 MPLAB Xでは全角コメントは使えないのでしょうか?
>>150 ソースは見てないけど、
・必要な事が書かれていない
・一度書いた後で見直しをしていない
・正しいと思い込んで間違いを見つけられない
・しょーもないポカミスをしている
という可能性が高いように思う
>>150 のコメントにはこれら全ての要素が含まれているからね
「できない、できない」っていう人は
>>155 さんの言ってる
要素満載だからね。
少しおかしな部分がありながら、その原因を探らないあたりに
問題があるんじゃないのかい?
あー、グランドの配線外れて877Aがしんでもーたーーーー
そりゃ、電源オフになっていたいうことか〜〜〜〜〜〜〜〜〜?
PICのポートは保護ダイオードを介してVdd端子とGNDとに接続されているから PICのポートがGNDに接続された状態でGND端子未接続だと Vdd端子や出力ポートから吸い込んだ電流が保護ダイオードを介して、GNDに接続されたPICのポートに抜け 保護ダイオードを破壊するということはあるかも知れない
詳しい解説サンクス。 これならマイクロチップが熱くなるのも当然な気がする。 +: ノートPCのアダプター →7805の電源基板→ ブレッドボード −: -------------------------------------------→ +: ノートPCのアダプター →7805の電源基板→ ブレッドボード −: ---------------→ ・・・・・外れた・・・・・ ----------- ↓________________________________↑ ブレッドボードのターミナルを使って共締めしていたんだけど、緩んで外れたみたい。
>>153 USARTの設定の baudUSART を追加し、送信するメッセージに CRLF を追加記述しました。
baudUSARTについては触れていない人が多いので、どうやら期待通り動かない原因は送信するメッセージに CRLF を記述していないことだったようです。
シリアル通信ではこれは必要なことなんですね
FT232ですか。確かにそちらのがいいのかも。詳しく調べて検討します。
>>155 ,
>>156 前述の通り、しょーもないポカミスでした。
PIC-PICのUSARTは期待通りの動作をしてくれるようになりましたが、そこにUSBの情報を追加すると期待通りにいかなくなってしまっています。
しかし、USARTの部分を取り除たらサンプル通り動いています。
ということはUSARTの設定で間違っているのでしょうか。
そこで質問なのですが、20MHzクリスタルでPLLで48MHz(96M?)に分周してUSBで必要な周波数を稼いでいる場合、
メイン処理のクロックはいくつになるのでしょうか。
USBのクロックが48MHzになっているだけで、メイン処理は設定しているオシレータ、今回は20MHzなんでしょうか。
>>161 それだと単純に7805のレギュレーション機能が動作せず
ノートPCのアダプターの電圧が不完全動作の7805を介してそのままブレッドボードに、ということかも
そうわかっててのレスだったんだな 申し訳ない
たぶん、そうだと思います・・・300円がぁ。
俺は1個1000円のPIC16F877を2個壊したことある A/D入力に直列の保護抵抗なしに15Vぐらいを入力して1個 負電圧も出力することがあるオペアンプの出力をA/D入力に直列の保護抵抗なしに接続して1個
PICのADって、+15Vを許容するの? 電源電圧以下、つまり5V以下じゃないの?
>165-166 そういう人のために新製品をお安くご用意しております。(マイクロチップ とか言い出すはず、いやそれでいい。 しかし、PICにDACあったよなぁ〜って調べてたらPIC12F752なるものを見つけてしまった。8ピンで1chとはいえDAC(5bit)付とは… サンプルすらないがすぐデジキー辺りに並ぶかなぁ…まあ急いでも使いたいのは半年後ぐらいなんだけど安いといいな。 >167 そんなこと聞かないで、次はこちらでどうでしょうってHV薦めとくんだよ。 877には無いかもしれないけど。
>>162 データシートくらい読んだら?
4550の場合、CPUとペリフェラルのクロックは、
・主発振周波数÷(1,2,3,4)
・USB用PLL出力96MHz÷(2,3,4,6)
・タイマ1オシレータ
・内臓クロック(31,125,250,500k,1,2,4,8M)
から設定で選べる。どれになってるかなど知らん。
11 名前:774ワット発電中さん[sage] 投稿日:2011/09/24(土) 01:11:29.77 ID:ZrkLo4kS [1/3] [新シリーズのPIC16F1xxx テンプレ用] ('11/09版) 旧シリーズより機能が大幅にアップしていて値段も下がってる。新規に組むならこちらから選択すべき 秋月に入荷していないラインナップも表記(未)。円高のおかげか若干値下げあり(v) [40pin] 16kwハ必要ナイカモシレナイケド10円差ナラ v◎16F1939 \170 16Kw 1024 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 v○16F1937 \160 08Kw 0512 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 [28pin] こちらも10円差なら -◎16F1938 \150 16Kw 1024 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 v○16F1936 \140 08Kw 0512 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 v×16F1933 \140 04Kw 0256 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 [20pin] こちらは秋月に無し -未16F1829 ---- 08Kw 1024 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 -未16F1828 ---- 04Kw 0256 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2 [18pin] 18ピンの割にMSSPが2コ,ADC入力ピン多,タイマーx5,CCPx4と多機能 -未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 v◎16F1827 \110 04Kw 0384 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 -未16F1826 ---- 02Kw 0256 I/O16 ADC12 CapS12 Comp2 Timer2/1 MSSP1 ECCP1/- CCP- [14pin] 下位のチップしかなく機能的に8ピンとあまり変わらないのは残念 -未16F1825 ---- 08Kw 1024 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2 -未16F1824 ---- 04Kw 0256 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2 v◎16F1823 \090 02Kw 0128 I/O12 ADC-8 CapS-8 Comp2 Timer2/1 MSSP1 ECCP1/0 CCP- [8pin] 8ピンでUSARTもI2Cも使えるってのは大きいね -未12F1840 ---- 04Kw 0256 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP- -◎12F1822 \080 02Kw 0128 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP- 表記 Timer[8bit]/[16bit],ECCP[Full]/[Half],CspS=CapSense,Comp=Comparator 共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計(?) VDD1.8〜5,5V,Max32MHz(Vdd2.5V以上),4xPLL有,内蔵OSCでも32MHz可 プログラム面で新命令追加,bankは32マデ拡張,スタック16レベル,LATが追加,割込時のレジスタ自動保存 16bit幅で2本になったFSRデ連続配置RAMやプログラム領域アクセス可能 追加命令群 ADDWFC,SUBWFB : キャリー,ボローを含んだ加減算 ASRF,LSLF,LSRF : シフト命令 BRA : PCLATHやページ境界に関係なく相対ジャンプ [9bit幅] PC+255〜PC-256へ BRW : PCLATHやページ境界に関係なく前方へのみ相対ジャンプ PC+W(0〜255) ADDWF PCL,f ヨリ便利 CALLW : 上位はPCLATH,下位はWのアドレスにサブルーチンコール MOVLB,MOVLP :バンクセレクト,PCLATHに直接定数入れる TRIS,OPTION :TRIS(A〜C),OPTION_REGにWの値入れる(12bit幅品互換?) RESET : ソフトウェアリセト ADDFSR : FSRに定数(-32〜+31)加減算 MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能
秋月のPIC12/16F(旧)シリーズ 命令セット14bit幅&DIP品限定ピン数別評価 あくまでも旧シリーズ内での相対評価。新シリーズが使えない場合のみ有効 値下品多数あり(先頭のvは値下げ,-は維持,*は新規)'11/9更新版 40ピンは決まり v◎16F887 \180 40ピン600mil幅が許せるなら 旧シリーズ最強 28ピンはフラッシュとSRAMの差をどうとるか v◎16F886 \170 887よりピン数減ってスリム(400mil幅) v○16F883 \150 886との違い8Kw→4Kw,SRAM368Byte→256Byte ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31K-8MHとフルサポート 新しめのチップで内蔵モジュールも多,大きささえ許せば20,18ピンよりこちらを 20ピンはF690のバリエーション多,価格差小なのでF690か,OPアンプF785,ポート割りがチョットカオス v◎16F690 \140 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31K-8MHzとバッチリ v○16F689 \130 F690からeCCP機能削られた v△16F687 \120 さらにF689を2Kwと半分に v×16F677 \120 さらにF687からeUSARTも削られた v×16F685 \150 F690からSSP&eUSART機能が削られたのに値段高いとは v◎16F785 \130 ADC有,CCP有,2Kw,内蔵31K-8MHz,OPアンプ搭載が異色(新シリーズにも無) 18ピンは種類は多いけど選択の幅は狭い。値段でF716いっそ20pinにするか -×16F84A \250 機能無,1Kw,新規では不要だけど作例参照用or互換用に v×16F648A \160 CCP有,USART有,4Kw,内蔵4MHz,ADC無同士でF87に軍配 v△16F628A \140 F648Aの2Kw版,売りが値段だけだと厳しいかな v△16F627A \120 F648Aの1Kw版,上に同じ v×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・ -○16F88 \200 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31K-8MHzと旧18ピンの王者ダガ高い v○16F87 \150 F88のADC無Ver,ADC無が問題なければ v○16F819 \170 ADC有,CCP有,SSP有,2Kw,内蔵31K-8MHz,F88とはROM,USARTの差 v○16F818 \150 F819の1Kw版,多機能なだけに1Kwに不安を感じる v◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意 14ピンは10円差ならF688 v◎16F688 \110 ADC有,eUSART有,4Kw,内蔵31K-8MHz,CCPは無が残念 v△16F676 \100 ADC有,1Kw,内蔵4MHz v×16F630 \100 F676のADC無し 無機能で影薄い 8ピンは多機能のF683かEEPROM無くても良いなら\60のF615 v◎12F683 \100 ADC有,CCP有,2Kw,内蔵31K-8MHz,8ピンとしては多機能 v△12F675 \80/90 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版, v△12F629 \70 675のADC無(機能無しってこと),EEPROM必要で安いの求めるなら v△12F635 \90/100 機能無し,1Kw,内蔵31K-8MHz,31KHz〜必要なら,環境によってはE/P版 v◎12F615 \60 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無さえ問題なければ v×12F609 \60 F615からADC,eCCP機能省かれてる (参考)機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ v△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら -△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら -×12F510 \60 ADC有(8bit),1kw,内蔵4Mor8MHz,EEPROM無し v×12F509 \50 機能無し,1Kw,内蔵4M,EEPROM無し v△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用 v△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用 マークの意味 ◎お勧め、用途決まっていないならこれ買っとけ ○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ △内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ ×ソースを変更できない等の理由がないなら、選択する必要なし 自分で、プラグラムもハードも作れる人のためのリスト。 そもそも、教科書にのってるのとか他の方の作品とかを作るだけなら 指名買いするしかないのだから お勧め度は意味がない
MPLAB X IDE v1.00出てたんだね 知らんかった
10F222買ったんだけど楽しい
debug時に必要なcofiguration bitの設定一覧とか知ってる人いない??
久しぶりにPIC購入を考えてたけど色々増えてるな。 Writer509系ライタでも書けるやら書けないやらか、実に楽しそうだな
microchipはもっとわかりやすくしてくれないかねぇ debugするのに、いちいちconfiguration bitを変えなきゃならんて どういうことなの? そんなの自動でIDEがやってくれよって感じ
>>177 そんな即座にコピペ貼らないでよ。ごめんて。。。
かわいいなおいw
13 名前:774ワット発電中さん[sage] 投稿日:2011/09/24(土) 01:14:40.82 ID:ZrkLo4kS [3/3] 秋月のPIC18Fシリーズ 5V動作可で比較的高速(12MIPS)だが16F1xxx(8MIPS) dsPIC30F(30MIPS)に挟まれて値段も高めで苦しい,拠り所はUSB 40ピン USB不要なら18F4525もありかな ◎18F4550 \370 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP1/1,SPP △18F4520 \340 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP1/1 ○18F4525 \380 24Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1 △18F4585 \500 24Kw/3328/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1,CAN ×18F452 \500 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/1 28ピン USB不要なら大容量で18F2620あたりも ◎18F2550 \350 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0 △18F2455 \340 12Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0 ○18F2450 \260 8Kw/768/0 [USB],Max48MHz(31kHz),PLL,CCP1/0,eUSART,MSSP無,TMR16bitx2少 △18F2420 \280 8Kw/768/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0 ×18F2320 \420 4Kw/512/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0 ○18F2620 \420 32Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP2/0 ×18F258 \530 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/0,CAN 20ピン 値段的にも格安でお得 ◎18F14K50 \170 8Kw/768/256 [USB],Max48MHz(31k〜32MHz),4xPLL,CCP0/1 18ピン 2ピン差だと体積的にメリット小 ×18F1320 \220 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1 PIC18F共通 VDD 〜5.5V,10bitADC,eUSART,TMR8bitx1/16bitx3,MSSP 24,dsPICシリーズ(24F,dsPICは品数限られているが値下げでお買い得感向上) 40ピン v○30F4013 \480 16kw 2KB EEPROM1KB v×30F3014 \500 8kw 2KB EEPROM1KB 28ピン v◎24FJ64GA002 \330 21.3kw(64kB) 8KB EEPROM無 リビジョンはイクツカナA3/4ハナイヨナ v◎24HJ12GP202 \260 4kw 1KB EEPROM無 この値段で40MIPSはお得感大きい v○30F4012 \460 16kw 2KB EEPROM1KB 5V動作必須でメモリ大きいのなら v×30F2020 \500 12kw 0.5KB EEPROM無 v△30F2012 \350 4kw 1KB EEPROM無 5V動作必須で安いの欲しいなら v◎33FJ32GP202 \320 11kw弱(32kB) RAM2KB メモリサイズ許容できれば24FJ64より、高速 18ピン v○30F3012 \400 8kw 2KB EEPROM1KB 共通 24Fシリーズ Vdd2.0-3.6V Max16MIPS (一部ピン5V入力可) 24Hシリーズ Vdd3.0-3.6V Max40MIPS 30Fシリーズ Vdd2.5-5.5V Max30MIPS DSP命令有,(5V動作可) 33Fシリーズ Vdd3.0-3.6V Max40MIPS DSP命令有
>>176 謝ってたけど(?)とりあえずレス。 それってDebugビットの話?
前PICkit2で実験したけど、プログラムによるDebugビットの指定よりもIDEに対するDebug指定の方が
優先。プログラムを書き込んだときに自動設定されてた。と、結果から解釈。
なので、プログラムではDebug指定は常にオフ。IDEのDebugTool指定だけで切り替え。
デバイス依存なのか、1年前の話で勘違いしているかもしれないけど、参考まで。
>>176 18F2550のデバッグをPICkit2で何度かやってるけど、Configuration Bits はIDEが勝手に設定してくれたよ
>>181 ,
>>184 みんなレスありがとう!
やっぱ基本IDEが自動でやってくれるよねぇ。。
書き込みしたの発端は、Pickit3+MPLAB X IDE v1.00+24FJ256でdebugやって
みようかなと思ってDebug実行したら
Programming...
Programming/Verify complete
The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding.
と、書き込みまでは完了するけど、そのあとデバイスがdebugできる状態
になってないから、configuration bit設定を確認せぇと出たの。
しかたないから、例によってソースコードに
_CONFIG1のBKBUG_ONを設定してみたんだけど変わらず。
それで、他にWDTはOFFにしてみたり、ちょこちょこ他のbitも変えてみたりしたん
だけど、何か上手くいかない状態。
IDEのDebug Toolしては、Pickit3を設定されてるけど。他に設定が必要なのかな。
何か、前のMPLAB IDEだと、Project -> Build Configuration -> Debugにすれば
いけるのかなと思うんだけど、MPLAB X IDE にはこのメニューが見当たらない。。
一応ここを参考にやっていてるんだけど、IDEが違うから苦戦中。
ttp://www.eleki-jack.com/mycom2/2009/05/pic9.html くそーmicrochipめぇー、お前どうして(ry
おっと、またコピペが貼られるのでこの辺にしとくか
>>185 MPLAB「X」IDEは未経験なので、わからないです。
是非、道を切り開いて下さい
>>186 うん、ちょっと引き続きトライしてみる
ありがとうございます
18F2550に書き込もうとPICerFTを作ったのですが 回路図のQ2のトランジスタ前後でVppが途切れてしまいます。 このばあい原因は何が考えられますか?
ちょっと質問、12F615世代でキャリブレーション飛ばなくなったんだっけ? それ以降の新型でキャリブレーション飛ぶ奴って出てる?
>>188 VPPが出ない時にVPPを計測しようとした、Q2が壊れてる、抵抗値が違ってる(カラーコードの読み間違え)、
どこかで短絡してる、配線間違ってる、FT232のモジュールが壊れている、その他いろいろ
悪いことは言わん、素直にPICKit3を買え
個人でハード/ソフトを作ってるライタは対応デバイスの増加に追いつかない
それを手間かけて作ってもPICKitにあるデバッグ機能等が無いのは寂しい
>>189 それをいちいち全部確認できないほど製品数が多いからわからんよ
プログラム板から移動してきました PICのプログラムを考えていただきたいのですが やっていただけるかたはいますでしょうか? PIC16F877Aで時計+αのプログラムです 詳しい動作や回路はやっていただける方がいましたら また説明させていただきます
月差300秒ぐらいならw
月差秒数×1万円で請け負うわ 月差秒数仕様は当方にまかせてもらいます
「こういうプログラムを作ってください」とか 「学校の宿題の答えを教えて下さい」 みたいな書き込み、よく出来るよな
いや、いいと思う。 この依頼者にとってはPIC自体は目的を達成する手段の一つなのだから。 それを現実のものにするために、それが得意そうなのがいる(と思われる)所に打診しただけ。
>>194 マジで?
それって「願いことを3つまでかなえろ」状態じゃんw
∧_∧
< `∀´> チョッパリ 願い事を3つまで叶えろ
( ∽)
)ノ _
(_ /〜ヽ
[il=li] <('A` 。) えっ!? 俺が叶えんの ?
)=(_ ( )>
(-==-) <^ヾ_
`ー‐''
一行100円くらいで請け負ってもいいよ。 1バイト20円とかのほうが良心的かな。 ちなみにこないだやったバイトは1000行くらいだけど30万円もらった。
ようやくUbuntu使いの俺に春がやってきたか。 mplabx! 残るは、PSocだけだな。
>>191 そうかー、テンプレに載ってる分だけでもと思ったけど仕方ないね。
わかってる分だけでも追記されてたらとも思うけど新型に手を出す人自体がまだ少ないのかな。
GPSのNMEAを読んでそのまま表示
>194 ひどすぎ。精度悪い方が高いとは、動かない時計作れば 3600x24x30 x1万円で約260億円かよ JJYやGPS無しで月差±0.1秒の時計が1000円なら格安だけど
204 :
250 :2011/12/19(月) 23:30:30.31 ID:LZd3mbf8
205 :
192 :2011/12/19(月) 23:37:57.16 ID:8Ny10aeM
192です もし質問する場合は 新スレ立てたほうがいいでしょうか? ちなみに月差ゼロがいいですw
>>205 クソスレたてんな」って聞いたこと無い?
>205 自分で考えて作る気が無いなら市販品を使えばいいのでは? 卓上タイプの電波時計ならAmazonで\1000以下で買えるでしょ
おれのは右下
32.768KHzのクリスタル使うのと、普通に20MHzのセラロックつかうのではどれぐらい月差がでるのだろう。
クリスタルは電圧変動や温度の影響を受けにくい。 誤差はppmレベルだが、ソフト的に補正は必要。 セラロックは問題外。
根本的に周波数と精度の区別がついてなさすぎワロタ
picで時計単体を作るなら難しくないけど 時計機能と何らかの制御を同時にするなら 専用のデバイスに時計機能を任せる方が楽だよな。 少ないタイマーを一個時計専用に取られるのは痛い。 それに専用デバイスならスーパーキャパつけるだけで 1日以上電源オフでも動いているし。
一時間毎にブザー鳴りっぱにして、時間あわせを強要するようにすればいいね。 そうすれば壊すかしぶしぶ時間合せるかの二択
実際に時間をあわせたかどうか確認するために正確な時間をGPSとかから取れば尚良いね。
最近は水晶が安くなって廃れてるけど 交流電源同期の時計はそんじゃそこらの水晶より遥かに正確だよ 事実上電力会社が常に校正してくれるわけだから だけどPIC16F????の液晶時計なんてどっかにそのまま使えるのが載ってない? 16F877に拘っちゃ駄目だよ。16F877はピンが余りすぎるから作例はなかなか見つからないでしょう
PIC自身の作った1Hzを、 インプットキャプチャ機能を使って、GPSからの1Hzと比較、 遅れ、進みの情報を得る。 その1秒信号をカウントすれば、かなり正確な時計が作れるよ。
みなさんありがとうございます 上で書いたかもしれませんが オリジナル機能(説明が大変なので割愛)を付加した時計が作りたく 877にした次第です 皆さんの意見を元に結局自分で コツコツやってみようかなと思いますw よく考えたらPICのライターも買わなくてわw
つ RCD
>192 移動前ってこれかよ。 >500 名前: デフォルトの名無しさん [sage] 投稿日: 2011/12/19(月) 00:42:02.24 >pic用のプログラムを考えて頂きたいんですが >まるまる全部なので >新スレ立てたほうがいいでしょうか? >502 名前: デフォルトの名無しさん [sage] 投稿日: 2011/12/19(月) 01:03:34.28 >電子工作好きのおっさんが >プログラム入門しよう! >って考えたんですが >いざプログラミングってなったら萎えちゃって・・・・ >でも回路は作ちゃったし・・・・ >慣れてる方には簡単だと思えるプログラムだと思うので >お金出して頼むのも・・・ >っていう感じなのですが
>>223 簡単だからって、知らんオヤジの為に趣味のコードなんて書くわけ無いよね?
225 :
774ワット発電中さん :2011/12/21(水) 23:03:29.13 ID:jFXb9DxG
タイマー関数使わずにPC用の時計ソフト作ってみれば、自分の言ってる事の手間と難易度が分かるんじゃないかな。
LCDに時計表示しようとアセンブラで書いたら1日で1時間以上ずれた・・・・
インターバルタイマー割り込み使えば発振器の誤差以上にずれないわけだが。
よくわからねえな、市販品にあるようなものなら今時買ったほうが早いしむしろ安い。 完全にオリジナルな機能なら面白がって作ってみようとする奴もいるかも知れないがそこには一切触れようともしない。 それでいてプログラムが面倒とか言うんだからよくわからねえな。
馬鹿でかい7セグLEDが眩しいばかりにテカテカ 光るダサいデザインにこそ希少価値がある 光らないLCD表示の時計なんてどこにあるのか 分からないじゃないか
>>229 世間がズレてるのか、君だけが妄想に取り憑かれてるのか
知人に意見を求めてはどうだろう。
ちなみに俺の手元には縦65cm級のデジタル時計基板があるよ
16F877用に作ったソースがあります。きちんと動いています。 これを、3.3V電源で動かしたいのですが、ソースというかコードは触らずに、 チップだけ変えれば、そのまま焼ける、そんなPICってありますか? それとも何某かの手当をしないと、そのままでは動かないものでしょうか? 16LF877では20MHz水晶が使えないので、別品番になると思っています。
16LF877は低電圧動作に適した半導体プロセスで16F877とは別に作っているわけではない 16F877として作ったものを低電圧で動作するか追加で動作テストしてパスしたものを 16LF877として売っているだけ 16F877を3.3V20MHzで使ってみて動いたらそれでいいんじゃね という話しは置いておいて PIC16F887はPIC16F877の後継でA/D変換機能とBポートの状態変化割込機能が レジスタのビット定義とかが変更になっいてそのままでは使えないだけで その他の機能は互換性があってプログラムの変更なしに使える PIC16F887で追加された機能も多いがリセット直後の状態ではPIC16F877と互換性が とれるように配慮されているから だから16F877用のプログラムの最初に ANSEL=0x00; ANSELH=0x00; の2行を追加して、リセット直後の状態では無効にされている アナログ入力と共用のデジタル入力を有効にするだけでそのまま動くプログラムは多い
そういう時、何%ずれたのか計算して調整すればOKなの?
>>233 周囲温度が一定ならば校正すればかなりの確度が出せるんだが
クロックの発振周波数には温度特性というものがあって
周囲温度の違う夏と冬ではどうしてもズレが生じる
対策としては
1、周囲温度を一定に保つ
2、温度補償するような仕組みを作る
3、温度特性の良い発振器を使う
なーるほど。 じゃADCで現在温度取得してウェイトを可変してやって、OSCも良いの使えばかなりいい線いくんだね。 それを考えると腕時計ってすげーな。
>>232 わかりやすい説明、ありがとうございました。
その線で調べて勉強してみます
ありがとう
>>235 腕時計程度の精度なら普通の水晶一発でいける
月差30秒=78ppm
> 月差30秒=78ppm 計算が合わない気がする・・・・
失礼。11.5ppmでした。計算途中で分母分子間違えてた。 そうなると時計用水晶って精度いいんだね
241 :
774ワット発電中さん :2011/12/22(木) 23:46:32.78 ID:WNj/5gFI
>>221 「PIC LCD 時計」とか「PIC 液晶 時計」で検索すれば山のように作例が見つかるし、
その殆どがプログラムを公開しているんだけど、
ここでプログラムを依頼する理由は何だろ?
自分好みのカスタマイズを施したいから、既成のプログラムではどうしても駄目ということなのかな?
それとも
PIC16F877限定でしか調べてないからまだ見つけていないということなのかな。
そんなに自分でプログラミングしたくないなら、自分好みのカスタマイズなんか諦めて
他人の作例をそっくり真似すればいいのに
もう回路は作ったということだけど、他種のPICに合わせて回路やソケット周りを改造するなんて
自分で回路を作ったくらいなら、ごく簡単なことだろうに
>>234 温度の影響を受けて電源電圧も変動するので、そっちの考慮も願いたい。
3端子レギュレータを使っていれば温度特性はとても良いので気にする必要なし だいたい1℃の温度変化に対して出力電圧の変化は約0.01%くらい 温度が±20℃変化しても電圧の変化は±0.2% このときの周波数変動は出来の良い発振回路なら±0.1ppm程度 年差で言うと±3秒
教えてください。 秋月で売っている、16桁×2行のLCD文字表示器を、C言語で操作するとき、 4bitモードと8bitモードの違いです。 僕は、1回のアクセスで済む8bitモードを多用していますが、 4bitモードでも時間は変わらないという人がいます。 変わっても5us程度だと言うのですが、2回アクセスするから、もっとかかるんじゃないか?と思うです。 昔、4bitモードでプログラム作ったら、LCDのおかげで処理が遅くなってしまい、 8bitモードにしたら速くなった思い出があり、今でも引きずっています。 みなさんは、どのようにしていますか? 時間は変わらないのでしょうか?
C言語であろうとアセンブラであろうとシミュレーターで簡単に調べられる
>>244 4bitと8bitで違うか違わないかと言えば、当然違う
違う事するんだからね
それがどれだけ全体に影響を与えるかは、プログラムによって変わってくるから
一般論として「影響がある」とか「影響は無い」とは言えない
ただ、余程特殊な状況、たとえばダイナミック点灯でグラデーション出すとか
極端にクロックが遅いとか、そういうのでなければ、4bitか8bitかで大幅に
プログラム全体への影響が違うという事はあんまり無い。
もし影響があるとすれば、何かバグってるかマヌケなプログラムで無駄な事をしてる可能性が高い。
ついでに質問 1msの割り込みタイマーを作ったらLCDが文字化けしたりして正常に表示ができなくなった 割り込みを長く(たしか10ms)すると改善した 割り込み1msでは短すぎ? 後閑氏のライブラリーを4bitモードで使用
まず、タイマ割り込みルーチンの実行時間を計算してみよう 仮に0.5msかかっているとすると処理能力の50%をタイマ割り込みで使ってしまっているということになる LCDの表示処理中に1ms間隔ごとに0.5ms待たされることになるが それによって誤動作を起こすようなライブラリーならば タイマ割り込み中の間隔を広げるか、タイマ割り込みルーチンを見直す必要があるだろうな
割込処理から1msも戻ってこられないようなプログラム組んでるのなら、 根本的に何か間違ってるだろ。 1usくらいで戻せよ。
>>244 通信より消去待ちとかのほうがはるかに時間掛かるからじゃね
>>249 8ビットのPICで1usだと割り込みジャンプ+無条件にフラグクリア+リターンで終わるんだが…
>>247 LCDは機能により制御時間がかかるから1msでは終わらないモノもあるよ。
ビジー状態を監視するか、規定時間待たなければ駄目。
単なる文字表示は大丈夫だと思うけど、消去指定とかは時間要するよ。。
DIPパッケージでmicrochip純正Cコンパイラ(C18とか)で開発できる おすすめPICって何??
>255 >170-171,180
>>256 お、おう、出てたね
さんくすべりーまっち
>>242 温度によって水晶発振子、電源どちらも影響を受けるが、
それぞれの補正を個別におこなったり考えたりする必要は全くない。
どちらもできるだけ温度に対する安定性を高くした上で、
単純に温度にしたがって時間を補正する仕組みをプログラムに組み込めばいい
>>260 いかんちょっと説明が拙かった
温度という、原因が同じでありさえすれば、どの部分が狂いの原因になろうと、淡々と補正すればいいだけ
と訂正
>258 簡単に言うけど温度に対する補正係数ってどうやって調べるの? 実際に組んで回路全体を恒温槽に入れて、温度毎に周波数カウンタでデータ取るの?
アマなら実測して補償マップでも作る程度の手段しかないんじゃないの。
>>262 桁数の多い周波数カウンターがあれば便利だけど
ない場合は、当該の時計を恒温部屋に置いてデータを取る
もちろん膨大な日にちがかかる
>264 非現実的だなぁ…データ取れた時にはエージングでずれてそう それだったら、温調した方が良さそう
>>265 >それだったら、温調した方が良さそう
意味がわからん
温度で補正する為にずれに関するデータを取ると言っているだが
>>265 エージングによるずれをそこで持ち出すのはおかしいぞ
周波数カウンターでハード完成後に短時間で校正する方法こそ、エージングによる影響を軽視しているんだからな
御回答願います。 dspic30f4012でSPI通信をしたいです。 具体的には、適当な配列 (bit[i] (i=0~10)) に2進値を代入し、 この配列を適当な変数 Data に代入して、Dataの値をSPIで送信したいのですか bit[i]をDataに代入するのがうまくいきません。 どうすればできますでしょうか?ご教授願います。
>>268 SPIとか関係なく、
forで回してシフトしてマスクしてorじゃだめなのか?
>267 個人で恒温槽持ってる人なんて極わずかでしょ。そんな非現実的な事って意味で>262を 書いたのだけど本気だったのね。 恒温槽なんて持ってない私を含む多くの人は夏冬 1年かけてデータ取って1年前のデータで 補正掛けるより、3端子レギュレータと水晶発振器とマイコンと温度センサにTr(加熱用)を 小さいアルミケースにでも入れて40℃位で温調する方が現実的と思うけど。こっちなら40℃ の時の補正値だけ調べればいいからエージング分の校正も随時可能だしね。
個人個人持てっるケツの穴は優秀な恒温
ここまでくれば時計の精度なんぞを追求することが如何に無駄であるかが分るよね。 精度が必要なら大人しく電波時計にしたほうが労力もエネルギーも僅かでいい。
個人で高温層を持っているって…いるのか?冷蔵庫?なんか方向性が違うぞ、やっぱり。 温度補償水晶発振器内蔵のRTCを買った方が手間いらず。DS3234Sとか。ちょっと高いけど精度2ppm。 サンプル入手済みだけど、時間なくて放置中。
すみません、兄にPCを支配されてしまって・・・
>>270 配列を一つの変数に代入したいのです。勘違いだったらゴメンナサイ。
>>271 つまり
int bit[10], Data=0x0000;
for( iは大きい方から ) {
if ( bit[i] == 1 ) { Data | 0x0001 ; }
Data << 1 ;
}
て感じでしょうか?今ビルダというか、デバッガの調子が悪くて確認できないのですが
>>276 お前みたいなリソース無駄使い野郎を修正してくれる教師に出会えることを祈ってる。
>>276 やり方(アルゴリズム)がわかってないんじゃなくてC言語(文法)がわかってないんじゃね?
>>272 アルミケースより断熱性の良い厚い発泡スチロール製の箱がベター
温度の安定度は確実に良くなる
手間かけて自作しなくとも以前はアマチュア無線機のオプションの
OCXOを簡単に入手出来たんだけど今は無いみたい
>>273 お下劣!
だがしかし医学系では実際に直腸温度測定しながらの実験をする
ことがあるのでお下劣発言を非難出来ない
ESPECのちっこい奴でいいから欲しいな。 小型の水槽をスタイロフォームで完全に覆って半分ほど水を張り、 ヒーターとサーモスタットを入れれば40度ぐらいまでなら そこそこ安定しそうな。 その上にあまったスタイロ浮かべて、その上に時計を置く・・・。 ただし、湿度がパンパ無いので電食が発生するかも。 タッパーに入れておくのがいいのかな。
俺は、12Vで動作するキャンプようのポータブル温冷庫(クーラー)を 恒温槽にしてるけど、なかなか具合良いよ。 制御も簡単。
最初の質問とはかけ離れてしまったな。
最初の質問を実現するための手段をこれだけ詳しく書いてくれるとか優しいじゃないか。
つまんねぇな。 結局、何作れんのさ もまえら!
作れるものが作れます
286 :
774ワット発電中さん :2011/12/25(日) 16:44:01.80 ID:YP5u49Yh
>>268 0-10っていうから送りたいビット数は11個なのね?
相手はセンサーか何かかね
16ビットで送るとして 11ビット送ってあとはオール0とかでいいの?
data = <bit[10] ... bit[1] bit[0] 0 0 0 0 0>
とかなればいいのね?
ならいちばんださいwやり方書くのでfor文使ったかっちょいい書き方は
自分で考えて
data = bit[10] * (1<<15);
data += bit[9] * (1<<14);
data += bit[8] * (i<<13);
...
data += bit[1] * (i<<6);
data += bit[0] * (i<<5);
287 :
286 :2011/12/25(日) 16:45:52.08 ID:YP5u49Yh
おおまちがえた (i<<13), (i<<6), (i<<5) はそれぞれ (1<<13),(1<<6),(1<<5)と読み替えて スマソ
飴 珈琲
>>288 レガシー・インターフェースがすたれたのでもうライタ作りはもう流行らない
レガシーが駄目ならUSBでやればいいじゃない キリッ …もう、ZIPソケットまで積んだ自動書き込み器的な無駄に楽な装置とか欲しいな。 5インチベイにマイコンまでストックしてて、CD-ROMドライブ風に書き込んだマイコンをトレーに載せて吐き出すようなの。
電圧やポート指定や、およそマイコン書き込みに必要な要素を全て設定ファイルから 自由に拡張できるオールインワンなライタは作りたいな。
ソフト作る手間を考えると結局メーカー製を買うことになる 古き良き時代のレガシー・ポート直結簡易ライタとフリーのライタ・ソフトは役割を終えたとしか言いようがない
デバイスの使い回しが多いので単なるイレーザーが欲しい。ブレボで組んでもいいけど。。 使い終わったら消す癖をつければいいのだけどね。どうも忘れてしまう。
PIC24F(V)32KAxxxが入手できるようになってから、avrから戻って参りました。 いや〜、メモリ空間か゜広いという事はいいな。 安いし、20pinだもんね。
>>295 どうせならギャングタイプ作ればいい
50個ぐらい一気にいくやつとか
あれ何でギャングって言うんだろう
>>298 gang には「群」「集団」って意味がある。
だとしても、普通はbatchとかblockとかそんな用語を選択するだろうに
>>295 無くても不便を感じないのだけど、書く時にイレースするのでは駄目?
以前、CAL値を全自動で復活させるのは作った事あるけどね。
>>301 秋月のライターの様にターゲットから完全に外された状態で書き込みを行うなら、過去のしがらみは関係なし。
PICkitの様にオンボードで書き込みを行う場合、消去されていない過去のプログラムが異なる回路、基板上で
いきなり動作しないかを心配してた。電源供給をターゲットと書き込み機のどちらにするかで変わってくる。
フラッシュメモリを書き込む上での作法になっちゃうから、自身が注意していれば大丈夫。運用手順次第。
1つのPICを別の回路に転用しない。という自己ルールを作っておけば、これも問題無し。
>>303 おれ、昨日、8ピン書き込みようにZPF使って同じようなの作ったとこだよ。orz
使わなくなった秋月の書き込み器をばらしてZIFの部分だけを使えば作れるな。
>>303 前に作ろうと思ったけど、ブレボで良いじゃんwと思って放置。
aitendoでゼロプレッシャーソケットが安かったので
幾つか買ってあるw
311 :
774ワット発電中さん :2011/12/29(木) 16:47:49.49 ID:uipnSX+/
3軸加速度センサ:KXP84モジュール,PIC:16F88,サーボ:s3003,mikroC を使って,加速度センサの傾きと同じ角度だけサーボを動かすようなプログラムを 検討しています.どのようにプログラムを書いたらいいでしょうか?
加速度センサの傾きと同じ角度だけサーボを動かすように書く。以上。
>>303 使ってない28ピンのゼロプレッシャーソケットが余ってたのでPICkit3を買ったときに作ったよ。
デバイスの切り替えは複数あるICSPのコネクタ(ヘッダピン)にライタを差し替える方法。
>>313 ICSPコネクタ差し替える方がいいな。。
12F675と16F1938を同時に動かして同時にデバッグしたいのですが、PICkit2とPICkit3の2つで同時にやるにはMPLAB IDEが対応したいないのでしょうか? 他に出来る方法はあるでしょうか?
316 :
774ワット発電中さん :2011/12/30(金) 14:22:27.82 ID:jn0OsrrT
MPLAB IDEを二つ起動させれば出来るよ
>>315 共有違反が発生しました。
というエラーが出てMPLAB IDEを2つ起動できないのですが、出来る方法があるのでしょうか?
PCを2台使えばおk
すまん、鼻で笑ってしまった
322 :
炬燵熊猫 :2011/12/30(金) 21:08:03.03 ID:wMPesnmy
MPLAB IDE 8.53 + PicKit2使ってるけど、PIC16F747で書き込みと実行は出来る でもデバッガでフリーランさせると動かないのは何でだろう? デバイスサポートリスト見ても、アダプタが必要とか書いてないし・・・?
すいません。PCが2台無いのですがどうすればいいでしょうか?
同時にデバッグするなんて馬鹿でしょ まず一方をある動きにおいて正常に動くことを確認した上で もう一方のデバッグに用いればいいでしょ 12F675で何をさせてるの?まずそっちを正常にしたら
シミュレーターだってあるんだよ 何でもかんでもリアルハードに拘ることはない
>>323 VMwareとかで仮想PC作れば、本体+仮想PCで同時デバッグできるかも。(未確認)
とりあえず、VMware上でのMPLAB + PICKIT2 は問題なく動く。
>>326 もちろんホストPCがよほど古くて能力不足ってことさえなけりゃ、その方法は実行可能
だけどそんなデバッグ手法は実際にはまず必要ない
質問者は殆ど開発経験がないと思う
ほっとくと路頭に迷いそうだな、誰か助けてやれよw
あけましてオメデトウございます。 さっそく質問させていただきます。 Main BTFSC EVENT_STA,4 GOTO Main1 BTFSC EVENT_STA,5 GOTO Main12 GOTO Main Main1 プログラムが1番最初に動き出して、はじめてMainにきた時だけ誤動作します。 EVENT_STAには0が設定されており、1行目にブレークポイントを設定してView→File Registersにて確認もしていますが、 どうした訳か2行目のGOTO Main1が実行されてしまいます。 Main1以降を実行した後に再度Mainに戻った際はそのようなことはありません。 はじめだけどうして?と頭を抱えています。 よろしくアドバイスをお願いいたします。
バンクの切り替えが怪しい気がするなあ
あまり親切にするとタメにならないけど ソースそのものをうpしてくれたらたちどころに判明すると思う
>>331-332 あけましてオメデトウございます。
早速のレスありがどうございました。
>>331 さんのご指摘のとおりでバンクの切り替えが出来ていませんでた。
お二人ともありがとうございました。
続けて質問行きます。よろしくお願いいたします。 5V電源を抵抗無しでPICに繋いで問題ないでしょうか? 入力設定のRB4のピンを2KΩの抵抗でグランドに繋ぎプルダウンしています。 5Vの電源から1kΩの抵抗とタクトスイッチを経由してRB4に繋いでいます。 通常はタクトスイッチは開放してあるのでRB4はグランドと繋がっていて0Vになっています。 ここで、タクトスイッチを閉じる事で、5Vの電源と繋ぐと、RB4の電圧は2KΩ/(1kΩ+2KΩ)で3.3Vになります。 一応PICの立ち上がりエッジ割り込みは発生するのですが、どうせなら5Vにしたいと思うのです。 そこで、電源とタクトスイッチ間の1KΩの抵抗を外すとそれは叶うのですが、 5V電源を抵抗無しでPICに繋いで問題ないのか?という不安があります。 RB4と電源の間にはドライブするものは何もないので電流は流れない筈なので、問題ないと思うのですが、 やがてPICが壊れるような使い方だと困るので質問いたします。 よろしくお願いいたします。
寄生素子がある。
ウェブで作例検索したらいくらでも直に繋いだ例が見つかる筈 PICの入力ポートは非常に大きなインピーダンスを持つ(確か何十メガΩ) 直につないでも殆ど電流は流れない 今度からは目の前の回路と2chだけを睨んで悩むんじゃなくて、 どんどん検索した方がいいと思うよ 1kΩの抵抗は電流制限の意味じゃなくて、コンデンサと組み合わせてちょっとしたノイズ除去フィルタになってると思う 1kΩを取り除いたんならソフトウェアでチャタリングチェックすればいい 実際にはそんな中途半端なフィルタがあったとしてもソフトウェアでチャタリングチェックをおこなうのが(かなり)一般的
>>336 大変勉強になりました。
ありがとうございました。
チャタリング防止についても再考します。
>>334 そもそも論で言うと
プルダウン抵抗を大きくすれば済む話
10kΩにすれば1kΩをつけたままでも4.4V以上になる
電源とタクトスイッチ間じゃなくて タクトスイッチとPICのポート間に抵抗入れればいいじゃねーかw
dirをミスることがある。
>>339 分圧でできる電圧に関しては違わない
それに多分既にそうなっているだろう
分圧になるような接続にしなけりゃいいのにな
>>343 いやいや、こういう接続はよくあります。
ただし、こういう接続をするにしても、
>>334 のような2kと1kの組み合わせじゃなくて10kと1kの組み合わせとかが定番です。
2:1の比率は異端過ぎ。分圧してできた電圧がスレッショルドに近すぎ
最初からこのことを書けば良かったんだけど、入力インピーダンスのことを書きたかったから先にそっちを書いてしまった
レスし過ぎた。冬休みだからある程度小まめにレスしたけどスペースの浪費だからもうやめる
失敗して学べばいい
単純なスイッチ入力では内蔵プルアップ設定しておいてGND側にスイッチ繋いで負論理入力にして抵抗使ってないんだけど、異端かな…
>>346 物の道理が判ってないという意味でなら異端
判ってやってるならご立派
PICの内蔵プルアップは最新チップ除いて スイッチ入力に使うには抵抗値が少し高いので 安定して入力するなら外付けで10Kほど付けたいところ またスイッチ入力は指が触る箇所なんで静電気による破壊を防ぐため ポートのクランプダイオードを保護する電流制限抵抗も欲しい ポート → 保護抵抗 → プルダウン → スイッチ → Vdd という接続にすればポートに入力される電圧は分圧されないので 入力保護抵抗に高い抵抗値のものを使うことができる
349 :
774ワット発電中さん :2012/01/02(月) 01:09:18.36 ID:GFzh9bjq
内蔵プルアップだけでやる勇気をたたえたいね。
PIC16F887+キャラクタ液晶で作った装置にリチウムイオン電池2本直列の8Vを数秒加えちゃったけど どっちも壊れなかった アナログコンパレーターの充電時間を測定してアレするものだったけど特性の変化もなかった 新年早々運がいい みんなも気をつけてね
352 :
774ワット発電中さん :2012/01/02(月) 03:16:33.21 ID:2gbKWIaF
>>348 >ポート → 保護抵抗 → プルダウン → スイッチ → Vdd
今年からは、
信号は左から右、上から下という書き方をしようね。
Vdd → スイッチ → プルダウン → 保護抵抗 → ポート という感じね。
>>346 PICなんかは、多少荒っぽくてもちっこくできれば正義、な世界なんだから、王道中の王道。
>>342 ファミコンの間違いか? 何十年も同じ版のまんまなんだろうな?www
>>354 「ファミコン」(R)は特定の商品名だから、一般名詞として当時流行った「マイコン」をあてたんだろうな。
ゲームじゃダメなの?
昔はPCはマイコンと呼んでいたからな。 マイコンベーシックマガジンとかよく読んだなぁ〜
PCはIBM-PCから来た呼び名で、オフコンとかに対して付けられたんでは?
そのまま「マイコン」という本もあったけどな
マイコンというあだ名の刑事もいたな
パーコンという呼び名がはやりそうになった。
`_コン
マイコンがPCを指さなくなるのと反比例して、 組み込みの生魚チップのことを指すようになっていったな
活きが良さそうだw
マイコンピュータのことマイコンって言うよな。言うよな。
ふつ〜マイラコンデンサの事
毎日音楽コンクールだっつの 日本音楽コンクールに名前が変わっても毎コンと呼ばれてる
はぁ?毎回撃沈合同コンパのことだよ
俺の地方では、美味いこんにゃくのことを言うけどな。
贈り物に舞昆 塩昆布風発酵食品
マイ昆布長
CADをシーエーディーという人がいた。 PICをピーアイシーという人もいた。 NECをネックという人もいた。 FETをフェットという人がいる。←この人とは あまり話をしたくない。
GNDをジーネヌディーという人。 DACをディーエーシーという人。 JTAGをジェーティーエージーという人。 IEEEをアイイーイーイーという人。 HPをヒットポイントとかホームページという人。 ここまでは許せる。だがしかしこれだけは許せん。 TCL/TKをチックルチーコという人。 ← ゆびゆび立てたらゆびゆび立てたら♪
もしかして LEDをレッドっていう人?
アムド
石原良純
FETはエフイーティーだけど、MOSFETはモスフェット
378 :
774ワット発電中さん :2012/01/07(土) 09:37:26.98 ID:4f+NxzS3
セブンセグメントレッド、なんかかっこいい
DAC ダック HP ヒューレットパッカード 訛っている先生がツナダイオードって言ってたの思い出したw
380 :
774ワット発電中さん :2012/01/07(土) 11:23:51.41 ID:NUmtYfXB
FETはエフイーティーだけど、MOSFETはモスフィート
GND グンド DAC ダック LED レッド FET フェット MOSFET モスフェット 客「レッドとモフェットください」 秋月店員「はいィ?」 秋月老店員「……」 NECAIはネーカイが公式呼称だったからNECはネックで合ってるよ
VCC ブッシ VDD ブッド VSS ブッス VEE ぶええ
385 :
774ワット発電中さん :2012/01/07(土) 15:24:37.31 ID:NUmtYfXB
VCC ブッシ VDD ブッド VSS ブッス VEE ぶええ hFE ふぃ〜
>>366 これマジレスか?
もしそうだったとしたらお前おかしいぞ
マイラーコンデンサをまいこんと呼ぶのは「マイクロコンピュータを指していないことが自明の場合」という条件付きだ
何も条件つけない場合はやはりPICとかAVRとかH8のことだ
NPN PNP さてこれはどう読んだら
ンピー!!! ピンピンー!!!!
ヌプン プヌプ ヌチャン プチャン ところでバリコンで呼び方おかしくね? 形状からしてもコンデンサの一種とは連想しずらくね? 支払いは任せていいのかよ それにバリスタって、意味がわからないよ らきすたのパクリかよ
>389 バリカンそっくりなとこ
>>389 空気バリコンは、すぐコンデンサだとわかる構造がダイレクトに見える
DACがダックならADCはどうなるんだ? ADCがかわいそうじゃないか。 ちなみに、俺は、DAコン、ADコンと呼んでいる。 コンデンサと間違えられたことはない。
394 :
のうし :2012/01/07(土) 18:45:37.89 ID:N9E1GRK8
え、ADCはもちろんアドシーだし
PWMはパウィムでしょ・・・なんなの?
正確にはパとプの中間のイメージだけど
ぴーだびゅりゅーえむとか噛んじゃう奴は交互にひっぱたいてやるびゅ
>>390 そうだよバリカンだよ
え?バリコン?
何かに似てると思ったら語感が近すぎて逆に意識の外だったよ
パソコンを、パナソニック製コンデンサと勘違いする奴はいないし
マイコンを、マイフェイバリッドなコンデンサと勘違いする奴もいないけど
でもバリコン、てめーはバリカンと勘違いしてしまうでしょ
そもそも可変抵抗器がボリュームなら 可変蓄電器はボリュコンに収まるはずだろ 中々流れないバリウムを思い出させて 恐れられる存在にでもなりたいのか だからバリコンと聞くと、嫌な気持ちになるのだ
ボリュームは、もともと音量のvolume(体積・大きさ)を変えるというところから 来てるんじゃないの? volume自体に変わるという意味はないと思うけど
おまえらせめてPICライタの話をだな…。 PICで作る他のマイコンライタでもいいぞ。
またマイコンの話が舞い込んで来た・・・
だれがうまい(ry
マイコンがPCを指さなくなるのと反比例して、 組み込みの生魚チップのことを指すようになっていったな
活きが良さそうだw
マイコンピュータのことマイコンって言うよな。言うよな。
ふつ〜マイラコンデンサの事
何かおかしい。なんとなくそんな気がした。
>>403 そもそもマイコンピュータなんて言わない
団塊世代の…おっと、そのくらいの爺さんにPCのメンテを年末に頼まれていたのを思い出したよ!サンキュー
あっ話しが逸れた。団塊世代のジジイしかいわねぇよ
毎日音楽コンクールだっつの 日本音楽コンクールに名前が変わっても毎コンと呼ばれてる
毎日音楽コンクールだっつの 日本音楽コンクールに名前が変わっても毎コンと呼ばれてる
大事なことなので、2回書きました。
だから毎回撃沈合同コンパのことだって言ってるだろ 言わせんな恥ずかしい
今日もいい天気
俺の地方では、美味いこんにゃくのことを言うけどな。 贈り物に舞昆 塩昆布風発酵食品 マイ昆布長
マイコンと言えばインテルじゃん インテルの 蹴球選手
だからマイコン刑事だって
スーパー巨人って知ってる?
キョンくん電話ー
>>418 なつかしいなー、細かいとこまでは覚えてないけど。
漫画とコラボしてたTK-80世代のワンボードマイコンに憧れた...
それを思うと今のPICは何でも出来る夢のようなマイコンだなぁ
マイコンは生き残ってるけど、オフコンは完全に死んだな
完全に、ということもなかろうが、分けて考えるひとは思いっきり減った気がする。
オフコンは長い事何の略か判らなかった オフ会のコンパ オフラインコンプレックス
>>418 >>420 マイコン制御のクーラーが操られて町中凍りついたとか、話の無理が目立った。結局打ち切り。
お麩のコンクール
PICで、2mくらいの距離を、I2Cで通信できますか?
プルアップ抵抗を小さくしたらできるんじゃない? 速度出ないかもしれないけど
モスキート
線が長いと信号が鈍るけど、遅くすれば大丈夫 オシロで見たクロックが四角ければいける筈
ありがとうございます。 今日明日にでも やってみます。
ロータリエンコーダ、PIC16F877、秋月の16*2行のキャラクタLCDを使って、 エンコーダのup/down値を、LCDに表示するプログラムを作っています。 表示する数値は、0〜65535まで5桁あり、タクトSWを2つで ← → と桁移動して、 エンコーダを回すと、その桁の数字が変化します。ここまでは、あっさりできました。 しかし文字の下に出す「カーソル」で苦戦しています。 カーソルは、SWで指示するまでは、その桁にい続けて欲しいのですが、 文字を書くと自動的に次の右隣の桁に移動してしまいます。なので、 cur( off ); として、いったんカーソルを消してから、 moji( enc ); として、数字を書く。 cur( on ); その後、カーソル再表示すると、すぐ右に表示されます。 cur ( left ); なので、1つ戻しています。 もっと賢いやり方はないものでしょうか? カーソル無しにすればいいのですが、それだとどの桁の数値が変化するか示せないし。 カーソルを表示するが、位置は自動で勝手には動かない、という設定があればいいんですが。
CGRAMにカーソルと同じ形を登録して交互に表示するとか
ありがとうございます。 それもいいですね。でも、CPU負荷がが増えそうで怖いです。 また、5×7のdutyで、カーソル領域まて書けましたっけ?
cur ( left ); cur( on ); の順にするとうまくいかない?
あと指定桁のアトリビュートを点滅にするとか
関数使わずにやればできるんじゃなかったっけ? 速度とプログラムサイズに問題なければ、1文字戻る方法で良いとおもうけど。 楽だし。
みなさんありがとうございます。
ggrksとか言われない所を見ると、
さほどピンボケの質問でないようで安心しました。
>>435 そうです。
>>432 は書き間違えでした。
昨日の時点で、そのようにして、一応実現していました。すみません。
自動の機能を付けてくれるなら、その機能の有効/無効も
選択できると良いと思います。→日立
ありがとうございました。
オリジナルは日立だけど、もう20年以上前の設計じゃないかな? 多分、台湾か韓国の互換チップが載ってるよ。
Target:PIC16F747 Soft:MPLAB-IDE v8.53 + Pickit2 言語:HI-TECH C v9.70(Lite-Mode) Debugger(Pickit2)でFile Registersウィンドウを見ると アドレス70Hが"RR"(Reserved Area)で、なぜかそこに変数が割り付けられてる・・・ 回避策を探さないと
>>440 自己解決
Build Option->DebuggerをIDC2に変更
DebuggerはPICKIT2のままで解決しました
442 :
774ワット発電中さん :2012/01/14(土) 01:41:51.18 ID:oLGY0fhG
なんか軽石ふぁくとりぃも、日シ相テクニカもアクセス不能になってる。 ついに逝ってしまったの?復活を待っていたのに。
プリント基板でお手軽にタッチセンサのパターンを作ろうとしているんだけど、タッチセンサーの推奨最低サイズってどの資料に書かれてる? 出来れば25x25に収めて、ピザみたいに分離したパターンをなぞると回転を検地できるようなものを手軽に作ろうとしているんだけど。 見かけたのは10x10の銅版で単純にタッチ検地している個人サイトと、マイクロチップのAN1202の近接スイッチにするにはリーチはパットの直径に等しいってのぐらいなんだけど。 やっぱり最小サイズって当然あるよね?
PICを製品として使えるか?
うん
>>445 格安でちゃんと生産されてれば何でも使えるでしょ。 昔はマイコンの質が悪くてチェック体制と歩溜まりが悪すぎて色々やらなきゃならなかったとかあるらしいけど。 さすがに最近はそういうのも聞かないし。
被せる絶縁層の厚さが薄ければいくらでも小さくできるよ 静電タッチセンサーとして制限というより人間が操作するキーとしての最小サイズの問題ではないですかね
絶縁層は無い方が簡単
絶縁層なかったら静電じゃなくてノイズ検出センサじゃないか
検出できれば、それでいい
一理あるが生の金属を触るなんてダサいのよね
エレベーターのボタンに謝れ
申し訳ありませんでした。
質問した自分も生の基板に触るのもアレじゃね。とは思いますけどね。 フラックスとか、色々と…。 絶縁体かどうか分かりませんけど透明なヒシチューブとかで覆うとか、大きい生基板を切削した上でならラミネートするとかやってみようかなとか思っています。 どこかで結果を発表できたらよさそうですけど…。 とりあえずはCADでパターン作る、そこからだな!!
>>426 です。
仕事が忙しくて、今日はたまたま早く帰れたので、実験してみました。
距離1mですが、なんとか通信できるようになりました。
↓こんな波形です。
http://loda.jp/mcnc/?id=397.png data線にclockのヒゲが出ますが、このくらいなら許してもいいと思いますが、どうでしょうか。
スルーレートを維持しつつ、V(Low)を上げないように、ノイズを減らすのは、難しいですね。
いろいろと工夫が必要でした。
どうもありがとうございました。
>>457 そんな事よりそのTekのMSOとおぼしきものは個人持ち?
はい、個人所有です。
>>459 うぅ、うらやましい。
金貯めて買うかなぁ。。。車買わなきゃよかったw
いいですよ。 「01000010だから・・・Bか」とか、やらなくていいですから。 AUTOモジュール、電流プローブも一緒に買いました。
全然うらやましくない
なんでうらやましくないの? 欲しいなあ、解像度の高いデジタルオシロ。 デバッグが楽になりそう。
欲しいか欲しくないかって言われれば欲しいけど、 金出してまで買おうとは思わないな。 会社でやればいいし・・・
確かに なんかうちの会社、自由研究みたいな時間がやたらあるんだ
467 :
774ワット発電中さん :2012/01/17(火) 23:49:37.38 ID:Rt5faL0d
また苺リナクスで安い基板出してるわ。 センサのちょっとした知能化に使えるな。
>>464 残業禁止、就業後は速やかに帰宅のこと。
>>466 今時うらやましい会社だな。
どこだ?履歴書送る
フレックスだから残業しても関係ない
フレックスでも残業あるだろ。見なし就労時間扱いで、会社に騙されてるんじゃね?
うちはコアタイム有りのフレックスで、1日8時間(休憩を含まない)以上は残業(というか超勤)扱いだな。
>>471 そうだった。管理職扱いだから残業手当が出ないだけだった。
でも、さすがに0時間はマズいから10時間くらいは残業してる。
2ch見てる時間はもっと長いけどね。
そりゃ日本の製造業も落ちぶれる訳だわな
名ばかり管理職か
全員管理職だろ
大丈夫、見習い給料のまま主任よりマシ。 見習い給料のままなんだが、このまま行くと間違いなく設計主任にさせられる。 (もう設計の出来る上司は社内にいない。) しかも検図が気まぐれ社長の指示だろうから、見直したら図面のフォーマット自体が違うとかありそうw 勘弁して欲しい、何でここ1ヶ月は仕事がないのに病院行かなきゃと思うくらい病んでいるんだ俺。 趣味だけで生きていけないかなぁ…。
転職転職! 漁業とかいいぞ。
"フレックスだから残業しても関係ない" "そうだった。管理職扱いだから残業手当が出ないだけだった。" って抜けた流れ、日湘の近藤さん?
その年で転職なんて似たような職種しかないでしょ
違う職種なら 朝の6時からコンビニで弁当買ってる ハイエースの人たちの仕事くらいか?
ニートに比べりゃ1000倍もマシ
ニートなんて都市伝説だろ
485 :
774ワット発電中さん :2012/01/19(木) 20:49:38.13 ID:pUJgkwea BE:235424922-BRZ(11529)
12F1822でLEDチカチカすらできないのですが何かご存知ですか? CCS+Pickit3です。プログラムも他のPICなら動くのですが…
テスターでポート出力を計って見るんだ 話しはそれからだ エスパーは居ないから原因がハードなのかソフトなのかをまず切り分けろ
>>485 ソフト側の問題と仮定して、F1x系PICは初期化すべき項目がかなり増えてるから一通り再確認してみては。
怪しいのはconfigのリセット関係とクロック関係 後はANSELの設定だけど、CCSだと関係ないんだっけ? ハードが駄目だとどうしようも無いけど、同じ回路で他の12Fのpicが動くならソフトだろーな
14k50のことなんだけど、pickit3でデバッグする場合はヘッダが必要で ICD3の場合は必要なしでおk?
>>489 どちらにしてもデバッグするにはデバッグ用ヘッダが必要。
ヘッダにはデバッグ機能のついた14K50が実装されているみたい。
回路図とか全部あるから作れるじゃん・・・? 何が分かりづらくて困ってるのか分かんないから答えようが・・・
回路図が見づらくて・・・(ry
まるち
市販のUSB接続のいくつもの種類のメモリーカードに対応した メモリーカードリーダーですがパソコンにつながずにPICにつないで カードを読み書きするとしたら、プロトコル?みたいなのはどの種類のカードも共通で カードリーダーが翻訳のようなことをしてくれるんでしょうか?
マルチなのか・・・そんなに急ぐ質問でもないような パターンの図を回路図と思っているようだし・・・元ネタのURLまで載ってるのに・・・ なんかかわいそうな奴だな・・・
>>495 カードリーダーが翻訳のようなことをしてくれます
PIC側はマスストレージクラスのホストになるプログラムを書けば、
どのメモリーカードも読み書きできます。
(メモリーカードを使いたいだけなら、USBを使うよりもSDカード(MMC)をSPIモードで使ったほうが簡単ですが)
499 :
774ワット発電中さん :2012/01/22(日) 00:16:00.68 ID:gExI+Gu7
復活カキコ
500 :
774ワット発電中さん :2012/01/22(日) 13:14:22.65 ID:E9I5YGIR
16F1827を使用してみたいのですが、 PICKIT2しか所有していません。 拡張デバイスファイルをインストールを前提として MPLAB上でHITEC-Cにてプログラム作成したい場合、 (1)MPLABでPICKIT3を選択し、1827を選択。 (2)Cでプログラム作成し、HEXファイルまで持っていく。 (3)HEXファイルをPICKIT2専用プログラムで書き込み の手順でいけますか? MPLABから直接いける方法もあるのでしょうか?
>>500 MPLABから書かないなら、MPLABのプログラマ選択はNoneでいいよ
502 :
774ワット発電中さん :2012/01/22(日) 19:20:37.86 ID:SKN7SPQ6
>>501 をを、謝々。了解です。
と、するとMPLABから書く方法もあると?
>>498 ありがとうございます。
敷居が高そうですが情報を集めてみます。
PICを機器に組み込んだ後、ユーザーが色々データ登録をできるようにしたいと考えています。 容量4Kbyte位欲しいです。しかし EEPROMの容量は最大でも1Kbyteのものしか見当たりません(dsPIC30除く)。 登録データはEEPROMを使わずに、プログラムメモリ内に書き込むのが常套手段なのでしょうか。 それとも私のやろうとしていることはPICの応用範囲外なのでしょうか。 ご教示いただければ幸いです。
そこはI2CのEEPROMの出番かと。
9個の16F88で pic→pic→・・・→PC ってのをでやりたいんだけど、どの通信方式がいいんだろうか ここのpicでデータを作って、そのすべてを1秒以内にPCにもっていきたい
データ量によるがPIC間はI2C、PCへはUART
>>507 作成するデータは32バイトの予定
I2Cは最低でも100kbpsもでて127個まで接続可能なのか
これで検討してみる、ありがとう
509 :
504 :2012/01/22(日) 23:12:41.57 ID:rvtKSZvX
>>505 どうもありがとうございます。
これからデータシートを読んで使い方を勉強します。
>>508 127個は余程工夫しないと無理だUSBとは違う
実使用上は8個くらいがいいとこ。
I2CいいよI2C
PIC16F88のI2Cはスレーブ側の機能しか持ってないから注意だな あと前何かで話題になったけどUSARTで送信受信送信受信送信受信と自分のデータも加えつつバケツリレーしてPCまで運ぶ方式とかもあるな
>>504 見て思ったけど、
内蔵EEPROMと書き換え可能プログラムメモリの使い分けがイマイチわからない
なんで両方乗ってたりするんだろう
>>502 MPLABから書き込む場合は、16F1827のような新しいデバイスに対応しているのはPiICkit3
だけ。だからSelect ProgrammerメニューでPIKkit2を選択できない。
専用アプリを使えばPIKkit2でも書き込めるのだから、MPLABも対応してほしい ->Microchip
>>514 PiICkit3 -> PICkit3
PIKkit2 -> PICkit2
頻繁に書き換えが発生する内容をプログラム領域に置いたら、誤動作やバグ時に自滅するじゃないか。
14k50のデバッグがヘッダないとできないのはわかったけど それってDIPのことだよね? SOPはついてるってどっかで聞いたんだけど
昨日から、いきなりPICKIT2がNo device Detectedになって、 書き込みできなくなってあせったよ。。。 MPLABから全て、リインストしたら、直った。なんだったんだろ。 それより、最近PICの背面の文字が読めなくなった。老眼かな。。。
質問。教えてえろい人。
PIC18F2550(USB内蔵)であるものをつくってる。
ttp://loda.jp/mcnc/?id=406.png (一部省略)
電源はUSBバスパワーではなく、セルフパワー。
8.4Vのバッテリーから三端子レギュレータで5Vにしてとっている。
書き込みはPicKit3をICSP接続で
オンボードで書き込めるようにしているんだが……。
とりあえずLEDを光らせているだけなんだが、
書き込みが終わった後、
電源のスイッチを入れてもLEDが点灯せず、
Pickitを抜くと点灯する。
つまりPicKitを抜かないとプログラムが
動作しないような挙動なんだが、これどうにかならない?
Pickit挿しっぱなしで何度も書き直して実験できれば楽なのに。
前にバスパワーで実験してたときはこんなことなかったんだけど。
お願いします。
521 :
330 :2012/01/24(火) 02:57:45.63 ID:3/p9cxoj
>>518 じゃ、そのどっかでやり方を聞け
DIPだろうがSOPだろううが、同じピン数の同じデバイスで機能の差をつける意味がないだろ
524 :
774ワット発電中さん :2012/01/24(火) 17:56:02.96 ID:94b2/vOA
誰か教えてください。 pic24間でデータの送受信をspi通信で行っていますが、 簡単なデータの送受信はうまくいきますが、システムの中での データの送受信はうまくいきません。 1 spi通信はちょっとでも通信を行わないときはspiモジュールを無効にしたほうがいいですか。 2 できればデータの送受信のサンプルプログラムを教えてください。
どなたか教えてください。 数年ぶりにPICのプログラムをやろうと思い、Windows7のマシンに MPLAB IDE v8.83とCCS Cコンパイラv3.224をインストールしたん ですが、"Invalid option: +EXPORT"というエラーが出てライブラリ などが読み込めません。昔書いたソースが全滅でした。 どこかの設定を変える必要があるのでしょうか?
>>525 昔のMPLABやCCSCと最新ではオプションが変わってるんじゃね?
>526 そんな感じなんですが、そもそもPCMがMPLAB IDE v8.83に 対応していないように思えたので、使っている方がいたら 教えてもらいたかったんです。
528 :
520 :2012/01/24(火) 19:38:56.72 ID:mpfwI79/
レスども。 Releaseにはなってます。 MCLRプルアップしてなかったけど、しても直りませんでした。 orz
>>528 ライターの/MCLRにチェックが入ってるとか
530 :
521 :2012/01/24(火) 19:55:00.79 ID:3/p9cxoj
>>528 デバッグにしてリコンパイルしなよ。リリースだとデバッガ効かないよ
>>524 どうなんだろうね?
クロック設定に対してLATデータを反対にして、クロックに一発ゴミが入った事はある。
一発入るとそれでアウト。
それ以来、怖くて、関数入出でのSPIのenableコントロールはしないようにしている w
>>525 よいしょっと。
CCS3.214 MPLAB IDE8.80で、コンパイルして異常なし。自社製品機器ソースなんで問題あったら大変 w
インストールパスが通ってないようなメッセージだね? PCMを再インストールしてみたら?
パスに日本語が含まれてるとダメとか?昔はそういうのあったと思うけど今はどうなのかな
16F648AにてWDT_ONでプリスケーラをWDTに使用しない(TMR0に使う)とき OPTION_REGのPSAに0を書きこむとWDTがすぐに誤動作する。 プリスケーラなしでWDTを使う手順がさっぱりわからない。
>534 データシート通りにやってもダメってこと? EXAMPLE 6-2: CHANGING PRESCALER (WDT → TIMER0) CLRWDT ;Clear WDT and prescaler BSF STATUS, RP0 MOVLW b'xxxx0xxx’ ;Select TMR0, new prescale value and clock source MOVWF OPTION_REG BCF STATUS, RP0
>>535 ダメです。シミュレータでも。実機でも
clrwdt
;**** OPTION_REG ****
banksel OPTION_REG ;
movlw B'10000011'
movwf ,OPTION_REG ;
;**** タイマ0 初期化 *****
ここで死ぬ→ banksel TMR0 ; タイマ0バイナリカウンタ(オーバフローで割込発生)
clrf TMR0 ; カウンタ初期値設定(これによりプリスケーラもリセット)
WDT使ったこと無いけど割り込みフラグのリセットってしなくていいんだっけ?
>>537 今、clrwdtの前に
INTCONクリアを入れて試したがダメ
>>538 > movwf ,OPTION_REG ;
OPTION_REGの前に付いてるコンマは何なの?
"コンマ6"を逆から読むと、
>>536 よいしょっと。 648A懐かしす!
コンフィグデフォだが、実機、SIM共正常にトレースできるけど? MPLAB8.80+PicKit2+フルカラーLED基板。
確か、外部クロック異常の時にこんなのがあったような気がするが?
あとは、MPLABIDE動作が変になっているとか?
おっと、SIMでもおかしいのか... デバッグ情報がデバッガーに正常に伝わっていないか、先頭のデバッグコード処理がされていなくて、 1アドレスずれたコードをステップしているとか?
>536 タブ消えるから大変だろうけど、こんな感じでSIMは普通に動きそう(MPLAB IDE v8.83) CLRWDTを最後に実行してから18msで下記のメッセージ出してWDTが効く >CORE-W0003: Watchdog Timer event occurred. Break in execution requested ;---------------- list p=16f648A errorlevel -302 #include <p16f648a.inc> __CONFIG _CP_OFF & _WDT_ON & _BODEN_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF radix dec CBLOCK H'20' T0,T1 ENDC ORG 0 BCF STATUS,RP0 BCF STATUS,RP1 CLRF PORTA GOTO INIT INTR BCF INTCON,2 RETFIE INIT MOVLW H'7' MOVWF CMCON CLRWDT BSF STATUS,RP0 MOVLW B'10000011' MOVWF OPTION_REG BCF STATUS,RP0 CLRF TMR0 MAIN ; CLRWDT CLRF T0 CLRF T1 DECFSZ T1,f GOTO $-1 GOTO MAIN END
>>544 追試どうもありがとう。皆様、申し訳ありません。
ソフトを最高に単純化したらうまく出来た。
原因は最初のclrwdtの前に全RAMクリアのサブルーチンを呼んでいて
その閉ループ内でclrwdtを行なっていた。
したがって、プリスケーラを切り替える手前のclrwdtはリセット後一発目の実行ではなかった。
リセット解除後初回のclrwdtの直後にプリスケーラを割り当てないとダメなのか・・・勉強になった。
>>545 一発目じゃないとダメとは思えないな。他に原因があると思う。
メモリクリアする時にプログラムメモリまでリセットしちゃった時の症状に似てるかなあ。 久しぶりにMPLAB弄った時になんでだーなんでだーってなった覚えがある。
548 :
774ワット発電中さん :2012/01/27(金) 10:28:00.55 ID:GLCbeX5y
よろしくお願いいたします。 NRD-545という受信機(RS-232C有り)と、 RF-551Aというプリセレクタ(BCDで制御)とを 接続し、前者の受信周波数に応じて後者を 制御したいのですが、初心者には途方も ないことなのでしょうか?
>>548 まず、各々の機器に対して発行する命令(読み込み要求、書き込み要求)と通信(232C、BCD)を問題なく把握しているか。
次に、PICでその2つを再現する知識をもっているか。
そしてそのデコードロジックを作れるだけの頭があるか。
LEDを一定時間で点滅させることすら苦労するなら、「途方もない」だろうな。
552 :
551 :2012/01/27(金) 16:20:28.78 ID:qd3u3xco
PIC16F876 877 886 887の在庫をほぼ使い切れてPIC16F1xxxに船出しようとしている 俺の心を惑わすには十分なラインナップではあるw
>>550 16F,18FでEUSARTが2個入ってるのは他にないので、用途によっては希少価値が
あるな。
PICkit3がFRCの補正情報を壊してしまう。 という不具合があるとのことですが、 こうなった場合に補正情報を書き戻す方法を知っている方いらっしゃいませんか? PICは24FJ256GB110シリーズです。 宜しくお願い致します。
>>550 300円未満 28PINのものについての俺用メモ
PIC18F26K22 ¥220
32kword/ram3896byte/eeprom1024byte/
IO25/10bitAD19ch/CCPx2/ECCPx3/MSSP(SPIorI2C)x2/EUSARTx2/
comparatorx2/CTMU有/BORLVD有/SRlatch有/8bittimerx3/16bittimerx4
PIC18F26K20 ¥190
一言メモ:PIC18F26K22の2chある機能を1chにしたような感じ
PIC18F26K22 ¥220 との差分機能
/ram3936byte/10bitAD11ch/CCPx1/ECCPx1/MSSP(SPIorI2C)x1/EUSARTx1/
/CTMU無/BORLVD無?要確認/SRlatch無/8bittimerx1/16bittimerx3
PIC18F25K80 ¥220
一言メモ:12bitADとECANが特徴
PIC18F26K22 ¥220 との差分機能
16kword/ram3648byte/
IO24/12bitAD8ch/CCPx4/ECCPx1/MSSP(SPIorI2C)x1/
/SRlatch無/8bittimerx2/16bittimerx3/
ECANx1/
PIC18F26J50 ¥260
一言メモ:RTCC USB リマッパブルIOが特徴 EEPROMが無い
PIC18F26K22 ¥220 との差分機能
/ram3776byte/eeprom無し?/
RemappablePins16/10bitAD10ch/ECCPx2/
/BORLVD無?要確認/SRlatch無/8bittimerx2/16bittimerx3
RTCC有/USB有
PIC18F25J50 ¥230
PIC18F26J50 ¥260のプログラムメモリが半分の16kwordになったもの
PIC18F26J11 ¥240
PIC18F26J50 ¥260からUSBを省いたもの
PIC18F25J11 ¥210
PIC18F26J11 ¥240のプログラムメモリが半分の16kwordになったもの
PIC18F4550の倍のROM,RAMの品種を出して DIP40 3.3V(入力5Vトレラント) USB ROM 64kword RAM 4kbyte これだけあればPCからUSB制御 スタンドアロンでSDカードにFAT対応できる。
できるだけ安価で手数をかけずPIC18のライタがほしいのですが RCDライタじゃ多分自分のノーパソだと電源不足でうまくうごかせないと思ってますが 改良で使えるようにするとか、何か1000円以内でいい手ないでしょうか?
>>558 ICSPポートにスイッチを四個付けて、パチパチすればいいよ
pickit2ですら高いってどんな世界だよ
561 :
774ワット発電中さん :2012/01/28(土) 11:28:58.02 ID:3sPi2GdY
PICでハンドアセンブルか… それもオツかもしれんなあ
ICSPってついてないようですが。。
手書き
自分でできないならおとなしくPickit2か3買いなよw
>>566 それで電気的に何か変わると思う・・・?
繋ぐ先は結局はPICの同じポートだよ・・・?もうしこし勉強するんだw
君がみんなに言われてるのは
┏━┓─SW─Vpp-─┏━┓
┃電┃─SW─Vdd-─┃P ┃
┃ ┃─SW─Vss.-─┃ I ┃
┃源┃─SW─DAA ─┃C ┃
┗━┛─SW─CLK ─┗━┛
手動で高速にSWをONOFFでもして書き込んでろよ ってことだよw
初心者を馬鹿にするのは良くない。
>Rc8VbaoH
Pickitを勧めたのは良かったのに、
>>567 はいただけないと思う。
初心者と自分で考えない人は違うだろう。
私はみんなにバカにされててもそうとも思わず真に受けて勘違いして違う方向にいっちゃって 可哀想だから丁寧に何を言われてるのか教えてあげただけじゃん・・・ひどい(´・ω・`) RCDライタ+外部電源で調べたら 禁断の外部電源接続!とか書いてたし RCDライタもお試しで作るのもったいないならUSB接続でお安く純正なPickit買うのが間違いないかと・・・
>>570 とりあえずつっこんどくと、Vssには(多分Vddも)SW要らないお。
手動書き込みなんてほぼネタでマイコン上級者が遊びで手を出すようなものじゃねえの。 わざわざ 違う方向 に誘導してどうするw
Lチカすんのに何回パチパチすればいいんだw
解説と実演(早回し)を動画にして上げたら受けそうだな。パチパチ
面倒だからロボットアームで自動化させようぜ
大人の科学だっけ。マイコンボードがあって、それを打ち込むための外部装置を作った人いたな。
ターゲットボードにPickit2コネクタ設置するのがマンドクセになったのでやり方を変えてみた。多分、賢明な2ちゃんねらーならもうやってるんだと思うけど。 ターゲットボードにはPickit2用の信号(/MCLR,Vdd/Vss/PGC/PGD)をチェック端子で出せるようにしておく デバッグ時はPickit2−テストクリップ変換アダプタを使ってPickit2と接続。 まぁ、もともとロジアナツール用に作ったものだが・・・ これでターゲット作成時のマンドクセが多少解消したかもしれない・・・
いいなその回路、夢があって実にいいよ。
>>578 DATAは18ピンを使うといいんじゃないかな。
プルアップいれたほうがいいね。25Vの電源用意しといてね。
もうちょっとだね。頑張ってくだちいw
プログラムはラウンドロビンで書いていますか?
>>558 PIC18F1XK50_PIC18LF1XK50 Flash Memory Programming 41342E
とかを読んで自分で作ればいい。
自分はPIC16/18/24の書き込み器を作ってみたけど、PIC18を使う機会がまだ無いのでPIC18への書き込みは確認していない。
あなたの書き込みを見た感じだと、pickitを買ったほうがいいんじゃないの?とは思う。
ライタを自作って今時意味が無いぞ。 書きこみ環境くらい保証された環境を揃えな。
>>577 俺はICSP端子を日圧XH6に統一した。
逆刺しが嫌なんで。PICKIT2側もXH6に置き換えた。ケースも削ったww
ネタでいいんだよね・・・?もうネタでしたと言っておくれよ・・・ RCDライターの途中にSW入れて電圧高くなったり電流増えたりしないでしょ・・・ 逆に電気的に切断したらPICに信号いかなくて書き込みもできないでしょ・・・ とりあえずシリアルポートの電圧測ってみたら・・・?RCDライタが使えるかもよ・・・? Q2 わたしのノートパソコンのシリアルポートでRCDライタは動きますか? A2 最近のノートパソコンは低消費電力となっているため、シリアルポートも最低±5Vの出力があれば旧RS-232規格との互換性が保たれるようになっています。 RCDライタが動作するにはデバイスの要求するプログラミング用の高電圧によりますが、およそ±7V以上のシリアルポートの電圧が必要です。 お使いのシリアルポートの電圧を測ってみて電圧が±7Vなければ、RCDライタはお使いのノートパソコンでは満足に動かないでしょう。 また、省スペース型のデスクトップパソコンでも、ACアダプタから電源を供給されるタイプのものは、ノートパソコンと事情はおなじです。 どんな回路を作るつもりなのか知らないけど・・・まぁ素直にPickitを買うのが一番かと・・・
>>586 VGAがあればもっと使える範囲広がる予感
589 :
774ワット発電中さん :2012/01/29(日) 18:30:03.43 ID:pKHgdHkZ
OSがあってエディタがあってコンパイラがあればれっきとしたパソコンだよ 自分の上で走るソフトを自分の上で作れる状態 そこまでやればいい いいおもちゃになる、本人にとっては
591 :
774ワット発電中さん :2012/01/29(日) 19:33:32.41 ID:kgwrc2ge
35年は言い過ぎ。31年くらいだよ。
592 :
774ワット発電中さん :2012/01/29(日) 19:44:02.45 ID:pKHgdHkZ
手持ちの範囲だとトラ技77年4月号に記事が出てるな それ以前から一部のマニヤは実践してただろうから 35年前後で合ってる
パチパチ1号がすごいですね。 オリジナルの大きさのZ80 やTTLが手に入ったのもだけど部品面での綺麗な手配線もすごい。 ビンテージ部品欲しいな
やっぱり書き込み機は pickit3で決定? あれってpic32は書き込める?
>>586 昔のコンソールみたく多少のエスケープシーケンスもこなせるなら欲しいかも。
>>586 これVT100互換に出来たら楽しそうだな。
Yoのけそうぶみとか、Ramda-1を思い出した
>>550 データシート見てたけど、秋月の18F23K22の商品説明間違ってるような
・SRAM:3896バイト→512バイト
・EEPROM:1024バイト→256バイト
18F26K22のコピペ修正し忘れかねえ
>586 GJ!パチンコ液晶活用できる キャラ液晶は制限多いし。
む。
pickit2のUART Toolがすごい便利でもう一台買っちゃった
ピン1個使って状態をばんばんPCに表示させるデバッグが一番楽だな
pickit3買ったけど書き込みできません。 12f675は書き込めるんだが、16f628a,16f88,16f688の16fシリーズは書き込みできない。 なにが問題なんでしょうか。 「program operetion of program memory failed 」ってでるんだけどどうゆう意味?
608 :
774ワット発電中さん :2012/01/30(月) 23:50:14.96 ID:i6K9qGz4
HブリッジドライバTA8428Kで2個のモーターの正転、逆転をPWMでドライブしたいと 思ってるんだが。この場合マイコンには4チャンネルのPWM出力が必要と思うけど PICにはそういうチップがないね。16F88あたりでもこういう用途に使えるかな? あるいはこの手の用途にどのあたりのマイコンを使うのが一般的なのかな?
>>608 タイマーで蹴れるDMAやパルス生成機が入ってるマイコン。
一昔前はH8とか78kだった。最近はARMにモーターIP付いたの探す。
捨て駒的に一個使ってソフトPWMをやるとか?
>>608 モーター1個につき1個のPWMをロジックでルーティングする
PWM2chで2個制御できる
もしくは相補PWMx2chのPICってなかったっけ?
>>608 小型ワンチップマイコンで荷が重い
fpgaを付加するほどでもない
こういうときはPSoCがお勧め
CCPにEがついたECCPという機能が相補PWM?の機能を持ってる、たぶん
だからECCPが2ch以上あるPICがあればいい
>>556 のPIC18F26K22等が該当するのでは?
>>606 USBからターゲットに電源供給してる場合にケーブルがしょぼいとそのエラーになった事がある。付属の純正ケーブル使ってますか?
>>614 純正ケーブルつかってます。あと電源もいろいろ試みましたがだめでした。
616 :
586 :2012/01/31(火) 06:04:28.00 ID:H+BLrIK2
>>587-601 リアクション、ありがとう。返事が遅くなってスマン。やはり、汎用性を持たせるなら、
形態性ね。VGA出力にすれば、使える液晶とかが色々あるのかな。カラー出力するなら、
VGAの方が楽だから、次はそっちの線で考えてみるよ。
617 :
774ワット発電中さん :2012/01/31(火) 11:29:43.30 ID:wakQTFA2
>>608 です。みんなレスありがと。
こういう用途はやっぱり16F88あたりでは一般にはスペック不足なんだ。
とりあえず手持ちの16F88で割り込み使ってソフトPWMで4チャンネル分作って
みようかと考え中。PWM周期は100Hz、分解能は32ステップくらいかなと見積もってる
けどモーターのPWM駆動で100Hzあたりの低周波数だと何か不都合がでるだろうか?
一般には数kHzくらいがPWM駆動時の周波数かなと思うけど。
ECCP付きを買ったほうが幸せになれると思うよ。 周波数も分解能もレジスタ弄るだけ。自動デッドタイム制御なんかすごく便利。 全てをソフトPWMに組み込むのは面倒だよ。
>>617 16F84(4MHz)で2ch6ビット50Hzっての作ったけど別に問題なかったよ
2chのパルス幅計測もやりながらちゃんと動いた
タイマ割り込みで足し算やって最上位ビットをポートに出すだけだし、正逆デッドタイムは割り込みの外で面倒みればいい
PIC16F88で、50Hzと60Hzのノッチフィルタってできますか? foで60〜80dBくらい落ちて欲しいです。 50Hz,60Hzは同時ではなくてもスイッチ切替でいいです。 ADとDAは、16bitのSPIシリアルI/Fです。 16F88でなくとも、18pin程度のPICであればかまいません。 PICではスペック不足でしょうか?
621 :
774ワット発電中さん :2012/01/31(火) 13:57:35.88 ID:E5bJHrFR
>>620 FFTを組み込めれば、問題なくできる。
ぜひやってくれ。
フィルターはデジタル圧勝だよな アナログの機能をデジタルで真似したら遥かに追い越した
あーちゃんフィルタと かしゆかフィルターがまだだ。
625 :
774ワット発電中さん :2012/01/31(火) 19:14:59.62 ID:E5bJHrFR
>>622 最初からデジタルになってる信号なら圧勝だな。
実際は量子化するのが大変なわけだが。
626 :
525 :2012/01/31(火) 20:44:07.31 ID:9toi9011
>551さん レスありがとうございます。 遅レスですみません。m(..)m インストールする場所は、問題なさそうです。 (ソースファイルを一つにまとめるとビルドOK になりました。今後ソースをひとつにまとめて 使う気になれないので、フリーのCコンパイラへ 移行しようと思っています。) すっかり根性無くなってXPのノートPCに昔の バージョンをインストールして乗り切りました。
>>620 サンプリング周波数次第かと。
16Fでは乗算器がないので遅い。
スピード命なら16bit×16bitが1サイクルで出来るdsPICがベスト。
>>626 CCS-Cって始めから複数のソースファイルを扱えないんじゃない?
オイラはinclude使って無理やり分割する方法でやってるけどw
629 :
626 :2012/02/01(水) 07:56:51.50 ID:IHwZYW0s
>628 バージョンによる違いは分かりませんが、昔頻繁に使って いた頃は、普通にソースを分割してリンクできてました。 というか?分割できないとやってられません。
#include = 分割という理解で良いの? だったら どのコンパイラでもできるんじゃない?
コンパイルは一蓮托生だが 編集するニンゲンにとっては幾分楽にはなるだろう。
う〜む。#include "xxxx.c"スタイルを分割コンパイルと呼ぶのか... ちょっと抵抗あるが良いとするか。 グローバル、パブリック、プライベート分離なんて概念とは無縁の世界だな w
includeは分割コンパイルじゃないよ ファイルを分割してるだけ コンパイルは同時
スゲえ、確かに書いてあるけど 大風呂敷だなぁ 別にこのデバイスじゃなくてもいいことだし… まぁそれだけ自信のある部品なんだね
メインの理由はそれが安いからだけど
10円で500個くらい買えるのか?
638 :
774ワット発電中さん :2012/02/03(金) 21:25:19.26 ID:CDhdYWdN
部屋を片付けていたらエレキジャック誌(No.2)の付録に付いている PICデュアルライターの基板が出てきました 本を捨ててしまい、どの部品を買っていいかわかりません・・・orz 知っている人いませんか?
639 :
774ワット発電中さん :2012/02/03(金) 21:37:48.23 ID:VgZ2TKi5
「PICデュアルライター」でググれば直ぐに見つかる
>>639 基板は持っているので、パーツリストとか上げているサイトって無いですか?
ググッても見当たりません・・・orz
本当にググったか? 俺は一発で見つかったぞ。
ググって最初のリンク先の冒頭に PICデュアル648版のプログラムと回路図B ってのがあるから、そこからDLだ
>>643 ありがとうございますw
あと、PICの上にある青色のやつと、ビニールに巻かれた部品の名前が
わかりません・・・あと下にある黒いやつ(トランジスタでは無い方)
わかる方いませんか?
>>645 パスコンぐらいは解ろう
あと黒いほうは、回路図からトランジスタ周りを消去法で消していけば解りそうだとはおもうが…
>>645 青いのはセラミック発振子、ビニールはわからん。黒いのはダイオードだろう
青いのは0.1uFのセラミックコンデンサ C2 0.1u 50V でしょう C4とかC3のビニールに巻かれているのは電解コンデンサでしょう TR3の右下にある黒いやつ(トランジスタでは無い方)はコイル L1 680uH でしょう
さっくり回答しちゃうのかー
>>645 もしかして、回路図が読めないとかじゃないだろうね?
だとしたら部品セット買った方が早いぞ。
個人的には、そこまでして作る価値があるのか疑問ではあるが・・・
共立エレショップ
EJ No.2PICデュアルライタパーツセット
過疎ってるからな
この後 PICKIT買え 的な流れになるだろう
俺も買いたい
会社で要るからPICKIT3買ったが、なんていうか…ベッコウ細工みたいで不思議。
657 :
774ワット発電中さん :2012/02/04(土) 00:43:28.26 ID:GDfZIiG8
すみません教えてください PICで生成したPWMを、0〜5Vの電圧のアナログ信号に変換する方法とか回路はありますか? 精度そんなにシビアでなくても構わないので一番簡単な方法を教えてくださると助かります!
658 :
774ワット発電中さん :2012/02/04(土) 00:43:48.09 ID:GDfZIiG8
すみません教えてください PICで生成したPWMを、0〜5Vの電圧のアナログ信号に変換する方法とか回路はありますか? 精度そんなにシビアでなくても構わないので一番簡単な方法を教えてくださると助かります!
大事なことなので2回書き込んでしまいましたすみませんorz
何Hzぐらいを想定してるんよ シビアじゃないってどれぐらいシビアじゃないんよ PWMの何で電圧を変えるんよ 周波数?デューティ?
ごめん、0〜5Vの電圧ってとこしか読んでなかったわ。 アナログ信号?正直なにがしたいのかちょっとわからん。
ローパスフィルタかまして電圧発生器みたいのを作りたいのだと僕は感じた
>>649 さっくり回答すれば大人しくしてくれるし荒らしに変身もしない
質問者が成長するかは関心ないし
LPFじゃダメな理由は何なんだろう。。
>>660 デューティ比って決めつけてやれよ
いつもそんな意地悪レスばかりしてるんだろ
何に使うか知らないけどそれほどの品質は要らないんだろ
10uHのインダクタと10uの電解コンデンサくらいでとりあえず平滑化してやればいいだけだと思う
アナログ信号に変換するだけなんだから10kΩの抵抗と0.1μFのコンデンサで いいじゃん。
目の前にあるPICkit2/PICkit3にまさにそういう回路が入ってるね ターゲットVDDを生成するのに使われてる
DCじゃなくてアナログ信号ねw
だったら
>>670 でFA
673 :
657 :2012/02/04(土) 08:50:27.97 ID:GDfZIiG8
みなさんおはようございます いろいろとご回答ありがとうございます。 実はPICとか電子回路をちょっとかじった程度のド素人でして ましてやフィルタだのコンデンサ容量がどうだのチンプンカンプンですorz 使用目的を申しますと、三相200Vの工作機械(モーター)の回転数制御をしたいと考えています。 工作機械の電源は、単相100Vを三相200Vに変換できるインバータを使うのですが、このインバータは出力の周波数を変えることができ、 本体のダイヤルまたは外部入力の電圧(0〜5V)と電流(4〜20mA)の2種類で制御できるようです。 電圧入力は可変抵抗でできるみたいなのですが、それをPICで制御したいと考えましたが、PICにはどうやらADコンバータの逆は出来ないみたいで困ってしまいました
>>673 納期があるだろうから、急いで業者を探せ
DAC内蔵してるのも有るでしょ
676 :
657 :2012/02/04(土) 09:51:01.21 ID:4tOFcCMP
>>674 すみません。趣味の工作なので納期とか無いですw
>>675 PICの16Fシリーズしか使えません。しかもほんのちょっぴりorz
678 :
774ワット発電中さん :2012/02/04(土) 11:22:49.18 ID:9SbF4WAY
pic16fと24fで無線通信がしたいのですが なにがおすすめでしょうか? できれば平均的なものがいいです
>>657 のひとが、PWM→電圧 に至った経緯が知りたいな。
俺だと、CRがめんどくさいので、ラダー抵抗にしちゃう。
>>679 無線って、電波?赤外?
電波ならxbeeでも使えばいいんじゃ
ゆんゆんという音声に超音波を重畳させて通信
>>673 外付けDACが便利
MCP4822とかなら配線も3本なので楽
>>681 ロボットの遠隔操作をしたいので無線がいいです
無線と言うのは、単に線がつながっていないというだけの意味しかなくて、 伝える手段が、いわゆる電波だろうが、磁界だろうが、電界だろうが、赤外線だろうが、 可視光だろうが、α線だろうが、超音波だろうが、何でも線が繋がっていなければ全部無線なのです。 逆に、テレビ放送とケーブルテレビは同じ電波信号を使っていても、テレビ放送は無線でケーブルテレビは有線です。
688 :
774ワット発電中さん :2012/02/04(土) 15:24:52.19 ID:qHJC/gkG
無線はXBeeが楽でいいよ PIC側はUSARTしか使わないし
だれか助けて。 pickit3を基板に接続すると Target Device ID (00000000) does not match expected Device ID (00001240). というエラーがでるようになった。 前も配線ミスで出たことがあるんだど、 今回は以前ちゃんと動いていた基板でもエラーになるし、 対象の基板(これまた以前は動いていた)を取り替えてもエラーになる。 MPLAB IDEの設定かPickit3側の問題だろうとは思うんだけど、 直し方わかる人いますか?
電源オプション?
XBeeって結構伝送エラーが多いんだよなぁ。
>>689 MPLABでのデバイス設定が間違っていませんか?
メニューバーの[Configure]-[Select Device]でPICの型番があっていることを確認を。
あとは、ICSPを逆ざしにしているとか、PICに電源がいってないとか、
その辺を確認してください。
>>1 1年くらい、このスレに来ていなかったのだけど・・・ Orz
MPLABでのC18で、コンパイラエラー
「Error - Device not specified. Use /p option to specify a device.」
って何でつか?
>>694 分かんねーよ!www
>>695 そんなに褒めるなよ?www
やった事、ちょっと具々た
駄目だった。
.hの位置を弄ってみた・・・だめ・・
リンカの位置に/w/p○○/
なのか?
あーめんどくせww
697 :
774ワット発電中さん :2012/02/05(日) 19:22:36.28 ID:S1jl4Ahx
概出かもしれんが 適当にdigikeyを眺めてたら、300円台でDIPのPIC32が売ってた PICKit2に対応して秋月で取り扱われるのが楽しみだな
デバイスを指定してください。と書いてあるじゃないか。
>>698 ありがとう
だけど・・・25分前にHDDが飛んだ orz
プログラムの検証が出来ない・・・
取り合えず、お礼と返事を・・・
これから再インスコなので、明日・明後日には戻ってきます
700 :
774ワット発電中さん :2012/02/05(日) 23:17:18.64 ID:Z1BRo48y
質問させてください。 当方PIC初心者です。 12f683でギミックを作ろうと思って、MPLAB IDE及びHI-TECH(共に最新Ver)を用いてC言語でプログラムを書いていました。 あとはシミュって終了だと思っていたのですが、どうにも思い通りの信号を返してくれず…。 シミュ途中にGP0をシミュ途中でfireしても反応せず、プログラムがGP1=1を命令しても反応せず…な状況です。 GP2〜GP5はきちんをシミュ途中でfireすれば反応するし、命令に従ってHigh/Lowを返してくれます。 これは、12f683はGP0〜GP5の全てをGPIOとして用いることはできない、ということなのでしょうか? それともなにか理由があるのでしょうか? わかる方よろしくお願いします。
fireってなんぞ? 兼用ポートの設定で入出力ポートとは別の機能、ADとかが生きてる場合あるよ。
702 :
774ワット発電中さん :2012/02/05(日) 23:36:31.26 ID:Z1BRo48y
fire=入力、って意味だと思います。 なるほど…。__CONFIG内かその他設定でデフォで有効になってるものを確かめてみます。 ありがとうございます。
703 :
700 :2012/02/06(月) 00:24:22.77 ID:ZTjK0P5d
たびたび失礼します…。自分の力では何が有効になっているためにGP0とGP1をGPIOとして使えないのかわかりませんでした。 下の設定内容でGP0とGP1が何か別の機能に使われているようであればご指摘お願いします。 #include <htc.h> #include<stdio.h> __CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF ); #define _XTAL_FREQ 8000000 void main(void) { //クロック設定 OSCCON = 0x70;//8MHz //アナログ入力設定 //0・・デジタル。1・・アナログ ANSEL = 0x00; //各ピンのインプット、アウトプットの設定 //0・・出力に。1・・入力に。 TRISIO = 0x0D; GPIO = 0x00; //初期は全部Low
俺はHI-TECH Cは知らないが、 6ポート全てデジタルIOとして使うために考慮しなければならないのは、 CMCON0,ANSEL およびconfigの_MCLRE_OFFだ
>>703 GP0,1の動作が異常となるのは、コンパレータが動作しているのが原因でしょう。
コンパレータを使わない場合は、CMCON0で明示的にオフする必要があります。
デフォルトでコンパレータをオンとしたのは設計ミスのような気がする。
707 :
700 :2012/02/06(月) 03:37:43.32 ID:bxksMjIN
>>705 さん,
>>706 さん
CMCON0 = 0x07;
を設定に組み込んだら無事GP0、GP1ともにプログラム通り作動してくれました!
お二方及び701さんのおかげです!本当にありがとうございました!
708 :
774ワット発電中さん :2012/02/06(月) 10:43:40.44 ID:6DslLE4N
なんでデフォルトでコンパレータがONなんでしょうか? 何か目的でもあるのでしょうか。
>>708 アナログポートが一瞬でもデジタルポートにならないようにする配慮だと思う。
デフォルトでコンパレータがオフだったら、コンパレータを使いたかったら、
コンパレータをオンにしてから、A/Dをオフにするという順番を守る必要が出てくる。
なるほど!
すみません、 >コンパレータをオンにしてから、A/Dをオフにするという順番を守る必要が出てくる。 ここがわかりません。
>>711 A/Dをオフにしてから、コンパレータをオンにするとどうなるかな?
途中でA/Dとコンパレータの両方がオフになるよね。
デジタルポートにアナログ電圧をくわえると貫通電流が流れて消費電力が増大することになる。
わずかな時間だといえば、その通りだけどね。
ANにも、そんなことを無視して、デジタルポートにアナログ電圧をくわえる使い方が紹介されていたりする。
最新のチップでは、その電力が無視できないかもしれない。
これは、使う側が理解していないといけないことだよ。
ANって何ですか?
アプリケーションノート
メモメモ_φ(・_・
初歩的な質問ですいませんが、8ピンの1822を使いたいのですが、最大消費(許容?)電力がわかりません。 I/Oピンをフルで使う予定はないので、合計70mA程度に耐えられればいいのですが、 どなたかご存じの方いらっしゃいませんか?
コンパレータがオンだオフだとか A/DがONだOFFだとかは本質的でないと思う 要するにPICはリセット直後の状態ではアナデジ共用端子については デジタル入力回路を端子から切り離しておくという 設計方針で アナデジ共用端子をデジタル入力端子として使いたいなら アナログ入力端子としては使わない旨の意思表示を ユーザはしろというということだと思う その意思表示とは具体的にはこの端子についてはA/Dの入力としてもコンパレータの 入力としても使いませんと宣言することなんだ12f683の場合は AVRマイコンの場合なんかはリセット直後はアナデジ共用端子のデジタル入力回路を 端子に接続しておくという設計方針でユーザがもしアナログ入力として使いたいなら デジタル入力回路を端子から切り離すレジスタ設定を行う必要がある AVRマイコン式だと一見便利だけどユーザが設定を 怠っているとアナログ入力信号の電圧レベルによってはデジタル入力回路のCMOS回路が ONでもなくOFFでもない中途半端な状態になって消費電流が増しているのに そのことにユーザが気づかないままとなるおそれがある PICの方式のほうがより慎重だというだけで設計ミスだなんていうのはPICに気の毒
>>716 データシートの ELECTRICAL SPECIFICATIONS の項に書いてあるけど、読んだ?
>>719 ありがとうございます。最初に読んだデータシートが4ページしかなかったもので・・・
すいませんRCDライタって読み込みもできます?
スイッチを押したらLEDが点灯し続け、 同じスイッチをもう一度押したらLEDが消灯するプログラムを作りたいのですが、 mainの部分が分かりません。 どなたか教えて頂けないでしょうか? コンパイラはHI−Tech PIC10/12/16MCUs V9.83を使用しています。
宿題は自分でやれよ
割り込みポートじゃなければ、定期ポーリングして3〜5回一致とかで チャタ取りしつつうんちゃらかんちゃらでいけんじゃね?w
煮たようなのが別のスレでも湧いていたな。 宿題か何かなんかねー?
なんでプログラムを書く気がないのにマイコン使おうと思ったの? なんでググれば3秒で出てくるような情報すら自分で探せないの? なんで何も作ろうとしないのに自分で作れると思ったの? なんで?
731 :
774ワット発電中さん :2012/02/07(火) 01:06:12.12 ID:/3eqOzAq
IDがNoo2BだからNOOBなんだろ 察してやれよ
>>724 PICじゃなくて555でも使ったほうが早いだろ。
オルタネイトのスイッチで十分じゃん
別にPICでやってもいいじゃん PICのスレなんだし
>>724 main関数だけでいいというので、書いたよ
void main(void)
{
while(TRUE)
{
led(read_sw());
}
}
やっぱりひねくれ者が湧いたか
737 :
774ワット発電中さん :2012/02/07(火) 10:14:42.03 ID:8m2ynmNW
>>735 ちょっと違うと思う
void main(){
while(1){
SW_to_LED();
}
}
エコワットにログ機能を付けたいんだけど、どうすればいいだろう
まずはエコワットなる物を買ってきて、 中を開けて観察することから始めよう。
電力計で検索する。 電力=電圧*電流
いや、エコワットは既にあるんだけどね
皮相のロギングならそんなオモチャいらねーだろw
>740 一定間隔でカメラ撮影。 必要ならさらにOCR。
まあセグメントだから適当に自作OCRでいけそうだね WebCAM+適当なPCで画像処理して終わり PICの出る幕無し
エコワットってPICはいってるの? 持ってるんだけど
このスレに集う程の人なら 液晶駆動系の配線から情報を引き出すなんて造作もないことだろう
最大の問題は絶縁だ。 トランスレス… フォトカプラかなんかかまさないと。 (軽石復活かよ…)
1、HC164でLEDマトリックスを使おうとしたらなんか面倒に感じたのでPICで直に制御するか、と思ってしまった。 2、使用したいあまっているPICだとLEDマトリックスを動かしてちょうど終わり。、外部からの入出力なしって… 3、まあそれでもいいかなと思い始めていたときに結局最後は164で制御するんだからと勇み足で164積む分の基板を作る。 4、しかしHC164でどこまでいけるかなぁ…あんまり使ったことがないんだよなぁ←NEW な俺
HC595のほうが便利に使えそう
俺はBポートに74xx574を複数個亀の子接続する派だ
前にも出てたけどカメラ映像を取り込んでデジタルの数字を認識させるに一票。絶縁は完璧w おもちゃデジカメの配線引き出して・・・あれ?
うまく位置を合わせて、フォトTrで1セグメントずつ認識したらどうだろうとか思ったけど、 数が多いから画像の方がきっと楽だな
そんな面倒なことをせずにエコワットを分解して中のマイコンのADに繋がっているラインをPICのADに接続。 AD値を通信は赤外線LEDでもチカチカさせて一分毎にp平均値を垂れ流しで。 8pinのpicとledぐらいなら隙間に入る。 AD値から電力量への変換やロギングは赤外線受信側
おまいら、節電のためにはいくら電気使ってもいいとか思ってるだろ
3333-01でも買え
>>756 それだと厳密にはエコワットのログにならない
やっぱり確実なのはPCにウェブカメラつないで定期的に撮影してOCR処理
もしくはネットワークカメラで定期的に撮影してftpでPCに送ってOCR処理
ワンタイム品の書き込み済み?について聞きたいんだけど。
某通販業者から16C57(古いけど)を購入し、秋月ライターで書き込んでいたんだけど、
1個だけ何故か、一部の番地に0FFFと書き込まれていた状態だった。
ttp://ux.getuploader.com/mcnc/download/73/error.jpg ワンタイムなので、上書きもできずに…ほかの石は、問題なく焼けたからなおさら。
物もメーカーが詰めているようで、1個ずつ静電防止袋に入っていたけど。
静電気でやられたとすれば、でたらめなデータになると思うけど綺麗に0FFFと並ぶのも?で。
これが初期不良なのか、取扱い上の問題なのか、何か情報があれば教えてください。
>>760 何も書き込まれていない初期状態は b'11111111'
エコワットそのものが簡易電力計だから、 苦労多くして成果少なしになる可能性大なんだな。
エコワットからロギングするくらいならPICで電力ロガー作った方がいいって事か。
エコワットは力率100%固定 ワットチェッカーはちゃんと積分してるけど電流は抵抗使って計ってる 赤外線でログ送出くらいあってもいいと思うけどiPhoneはこういうことダメだから 携帯用にjpegでグラフくらい出せないもんかな
ああ、よく見たらうちのワットチェッカーだった 何となく通りのいい方の名前で覚えてた
駄目だ…疲れてるのかな。エロワット orz いや、仲間がいるはずだ
PIC16F57マイコンデジタル時計キット のソースコード(もどきでもいいです) ありませんか?
hexを逆アセンブルすりゃいいじゃん
そうだな プロテクトかかってない(16F57はそもそもないか?そんなの) なら吸い出してディスアセンブルでよろし
16F57使ってPIC16F57マイコンデジタル時計キットと同じものを 作りたくなったということじゃないの? 回路図は手に入るからあとはプログラムだけということかと だからソースコードがダウンロードできるサイトとかを教えてあげる必要があると思う あるいは手持ちのPIC16F57マイコンデジタル時計キットから吸い出してうぷしてあげるとか
今からpic16始めるなら辞めたほうがいい。 メモリ空間がリニアな他のマイコンにしましょう。
了解しました じゃあアセンブラからC言語にするようなものあります?
あなた
PICにはCPUコアの性能だけでは語れない 周辺機能の魅力がある
>だからソースコードがダウンロードできるサイトとかを教えてあげる必要があると思う アホか
PICほど単純で簡単なアセンブラは無いんだからアセンブラで書けばいいじゃん。 レジスタの衝突もなく4サイクル1クロックで全ての命令をクロック単位で 完結させてるとかどんだけアセンブラ専用なんだよって話だよ。
777 :
774ワット発電中さん :2012/02/09(木) 01:59:05.44 ID:1GskGdVJ
>>771 今ならHITECH-Cにお守りさせるのがデフォじゃないの?
それとも無料版だとそもそもセグメントまたがなくちゃいけないほどの大きさのプログラムは作れないのかな?
>じゃあアセンブラからC言語にするようなものあります? _asm と_endasm で囲めば良いんじゃないと思うが。 冗談はさておき、Cが書けるのなら、スクラッチから書いたらという話なんじゃ?
>>776 めちゃくちゃアセンブラで書きやすいのは事実だけど
全ての命令ってどういうこと?
btfsc,btfss,decfszなんかはジャンプするときは2サイクルだし
gotoは常に2サイクルだし
あとあなたクロックとサイクルを逆に書いてるよ
スクラッチから書く ではなくて、 スクラッチで書く ね
VC++用のデコンパイラなら昔あったな...
>>781 シンボルテーブルとライブラリがあればCコード復元も形になるかもね。
PIC16はアセンブラ一択だけど。
>780 スクラッチ = スタートラインに引いた線、 で「スタートライン(ゼロ)から始める」の意を、 スクラッチから書きおこす。 「スタートライン」で書いてどうする。
>>783 いや、それ全然意味違うから
元々スクラッチというのは、「線を引いて(塗りつぶして)消す」といったような意味がある
それから転じて、「データを削除する」という意味に使われる
そこから更に転じて「全部削除(フルスクラッチ)して書き直す」事を「スクラッチから書く」と言ったりする
元々の英語の表現だと「Written from scratch」となるから、それを直訳調にすると「スクラッチから」となるわけ
だから、
○スクラッチから書く
×スクラッチで書く
というのは正しいけど、
「スクラッチ = スタートラインに引いた線」
という意味は無い
785 :
776 :2012/02/10(金) 00:30:52.22 ID:L5QTrn8e
>>779 間違えてる気はしてたけどやっぱ間違ってたわ、ごめんよ。
AVRが1クロック1命令っていうのに惹かれて仕様調べたことがあったんだけど、
結局x86みたいな動作仕様をしていて、アセンブラで速度、タイミングを突き詰めるっていう使い方には向いてないって思ってPICに戻ってきたって経緯があってな。
多分シーケンシャルな処理をさせるのはPICはお手軽で、タイミングの処理はアセンブラでやらないともったいないって思ったんでついカッとなって書いた。
んで、全命令の部分は1サイクルじゃなくてサイクル単位な、これはすごい楽だ。堕落だ。長くなったな、ごめんよ。
>>785 オレの知ってるAVRと違うAVRがあるのか
787 :
779 :2012/02/10(金) 01:30:45.69 ID:Ha6w60Nn
>>785 俺の方も訂正
>btfsc,btfss,decfszなんかはジャンプするときは2サイクルだし
btfsc, btfss, decfsz, incfszはジャンプじゃなくてスキップ
次行がnopに置き換わるようなイメージだからその次行までトータル2サイクルかかるというのは当たり前といえば当たり前
いや別に昨日まで間違って理解してたわけじゃないんだけどつい楽に書いてしまった
788 :
776 :2012/02/10(金) 01:37:04.79 ID:L5QTrn8e
>>786 あ、調べたのはtinyシリーズかなんかだったから無印とかだとわからんかも。
PIC16は特殊だからな。1個しかないレジスタならアキュムレータと呼べばいいのに なんでWレジスタと言うんだろうと疑問だったけど メモリ上のAをA=A+10みたいな処理する時 通常のMCU的考えだと MOVF A,w ;Aを読みだして ADDLW 10 ;10足して MOVWF A ;Aに書き戻し だけど、PIC16は結果を直接メモリに書きだせるので MOVLW 10 ;Wに10を入れて ADDWF A,f ;AにWを足す の方が良いと気づく。メモリをレジスタの様に使い、Wは一時的に値を入れるために 使うのが正しいんだと 減算の方向が逆に思えたのは使い方が間違っていたから。A=A-6なら MOVLW 6 ;Wに6入れて SUBWF A,f ;AからWを引く と、ちゃんと使えばPIC16のアセンブラもそこそこ使えるけど、ぶっちゃけ AVRのアセンブラの方がずっと使いやすいけどね。レジスタ・メモリ間の転送に2サイクル かかるけど、32個あるレジスタ内に収まればバカっ速い
俺はマクロ使ってWレジスタをほとんど意識しないで書いてるから、PICのニモニック を時々忘れるよ。 mov macro x,y movf y,w movwf x endm movi macro x,i movlw i movwf x endm
Wレジスタだけに分けがわからん
メリットが感じられん。リンスでも入っているのか。
俺も似た様なマクロ作ったけど、1byte系より2byte移動とか大小判定の方が効果がわかりやすいかと。
>>793 だよね
旧PA、現CVASM系の大小判定なんかは便利だよ
でも俺は絶対にそんなのは使わなくて素のMPASMを使ってる
判定箇所とか繰り上げ・繰り下げ計算とかは、いまだに空で一から書けないけど過去のをコピーすれば大丈夫
16F688のコンパレーター使わない場合の設定で 000 = Comparators off. CxIN as analog 111 = Comparators off. CxIN as digital I/O と二種類あるんですが、どうゆうふうに使い分けるんですか?
>>794 btfsc,btfssと組み合わせて死ぬ
>>795 000 = Comparators off. CxIN as analog
デフォルト、コンパレータは使えないが、使う設定にできる。
ポートはデジタルI/Oに使えない。
111 = Comparators off. CxIN as digital I/O
コンパレータは、この設定以降使わない。
ポートはデジタルI/Oに使える。
798 :
774ワット発電中さん :2012/02/10(金) 22:56:59.63 ID:Bv1D1pZb
セラミック発振子をクロック源としているのに IOピンとして使いたいので OSCIOFNC_ON (OSC2 は汎用デジタルI/O ピン) としたらどうなりますか。
800 :
774ワット発電中さん :2012/02/10(金) 23:01:13.04 ID:Bv1D1pZb
>798 共用はダメというのは動作しないということ?
803 :
774ワット発電中さん :2012/02/11(土) 00:41:09.41 ID:gUDYMcXt
>>801 やっぱりダメか
ピン数の多いpicに変更するよ
804 :
774ワット発電中さん :2012/02/11(土) 00:47:26.65 ID:HHW4MseV
>>803 共用できる可能性があると思ったのはどうして?
内部発信でダメなの?
>>804 許してやれよ。
どう考えても共用なんて不可能なんだから
>>806 責めるつもりはない
「(初心者?)がどんな思考過程を辿るものなのか」に純粋に興味がある
マイコンにクロックを外付けするときに、ピンを2本占有される意味が分かりません。 クロックって、一定間隔でピッピッと電圧がかかってくるもんじゃないの? だったらピン1本でいいのでは? あと、セラロックとかクリスタルを使わずに、タイマーICの出力がそのままマイコンに入るようにしたら、 超低速動作させたりできませんかね?
>>808 データシートのクロックの項を参照。色々なアプローチの仕方があるよ。
やりたい事のヒントも書いてある。まずはデータシートを三回ほど読んでみようか。
データシート データシート データシート 3回読んだ
外部CLK前提なら1本でもいいが、スタンドアロンでマイクロパワーなら 水晶抱いた方がいいに決まってんだろ
産業?いた
「データシート読め」って、他のスレで言われるならまだ分かるけど、 マイクロチップの100ページも200ページもあるようなデータシートなんて、とても読んでられません。 表紙だけで1ページ、美辞麗句ばかり並べて中身の無いFeaturesやOverviewのコーナーだけで5ページとか ユーザーを馬鹿にしてるとしか。 3行でまとめろ、とは言わないけど、USB内蔵とかでなければせめて30ページくらいにまとめてほしい。 だったら読む気になる。
>>813 まだPICは良心的な方だよ。MIPSとか電話帳級だよ
>>813 全部読まなくても必要なところだけよめばいいんだよ
何のためのナビゲーション付きPDFだと思ってる
まず使う型番でぐぐって、 「最初に〜しておかないとダメ」みたいな情報を探す PICの場合は初期ピン状態がADC向けになってたりするので その後は必要なとこだけ読めばいいんじゃないかな マイナーなICだとぐぐっても出てこないから全部読むことになる 最初に読むべきなのはその時点でのエラッタかもしれない
そこはPICじゃなくて水晶発振子やセラミック発振子の発振の仕組みについて調べたほうがいいんじゃないか・・・?
>>813 データシート読まずに扱うのなら、無理だと思った方がいいよ。
質問に答える人はデータシート見て答えているんだし。
819 :
774ワット発電中さん :2012/02/11(土) 10:39:33.62 ID:zIo+3gMD
あまりにもお客様すぎるだろw 能力も気概もないのに無理して使うなよww
この質問者はまず電気電子回路の知識がないからこうなってるんじゃないか? 水晶発振子とインバーターを使った発振器回路を調べてみると端子が2つ必要な理由が分かるかと。
ピンアウトが少ないのがエライと思ってんじゃねーか? それとクロックを作るだけで電力を必要とすることを知らない ものすごいバカだよ
スタンドアローンでマイクロパワーなら、水晶もセラロックも無しで32kHzなんじゃないの?
マイコンてどれも水晶内蔵してるの?
>>825 誤差1%以内のオシレーター内蔵のが在る。水晶じゃないはず。
どれでもってわけじゃないと思うけどよく使われるPICは、内部発振ができるはず でも内部発振は水晶みたいに高精度じゃないから精度欲しいときとかは外部にセラロックとか水晶とかをつけるわけで・・・ とりあえず動けばいいなら内部発振でもいいんじゃないかな
>マイクロチップの100ページも200ページもあるようなデータシートなんて、とても読んでられません。 >表紙だけで1ページ、美辞麗句ばかり並べて中身の無いFeaturesやOverviewのコーナーだけで5ページとか >ユーザーを馬鹿にしてるとしか。 なんかちょっと「ムカッ」っと来るのは 俺だけ?
トランジスタみたいなFeaturesやOverview、ピンアウトまで全部一枚目に纏めろよ恥かしいって事を言いたいんだろう。 そういう書式のデータシートも有るけど、後ろがアセンブラコードの書き方指南書だったりして面白いぞ。
途中からつまらなくなったけど、クロックとI/Oを共用しようと思ってた時に どんな思考になってたのか興味ある
TVのブースターとかPLCみたいな感じ・・・?
あらかじめ型番指定されてて使い方だけ知ればいいなら邪魔かもしれんが、普通はこの石で何ができるか調べながら選定するんだよ。 そんなとき「美辞麗句ばかり並べて中身の無いFeaturesやOverviewのコーナー」がすごく役に立つ。
>>813 それなら、悪いことは言わないから、この世界から足洗って
さっさと別の道を探した方がいい。
英文マニュアルで1000ページ超えだって珍しくない世界だし、
>813の都合に合わせるようなことはしないから。
俺は、813の言っていることが分からなくもないな。初心者で、ちょっとだけ 応用してみようかって人に、datasheet読むのは無理。初心者用の良い解説書 を見付けるしかないんじゃないかな。どうせなら、コンピューターの動作原理とか、 クロックとは何かとか、そんなのまで書いてあれば、この人が読むにはぴった りだと思うけど。
ただし、俺もユーザーの一人だけど、datasheet読んでいて馬鹿にされたと 思ったことはないけどね。それは、書く側ではなくて読む側の問題だな。
単に「読むのヤダヤダ-代わりに読んで全部教えろ」ってことだろ。
初心者はこんなところでうだうだ言ってないで、後関さんの本買って、 書いて有ることだけそのままなぞればいいんじゃないの? それ以上やりたいならメーカーのドキュメントくらい読んでから来いw その上で、何したくて、どこまでどうやって、何につまづいているかを、他人にわかるように表現しろ。
813は、その人物が持つ人間性がその能力まで影響してしまう良い例だなw
俺に300万くらい払ってくれたら、PIC16Fくらいなら全部読んでどこでも教えてやるよ。 100万調査日、200万はコンサル費用。一ヶ月で。 安いだろう?いつも損な仕事してると自分でも思う。
>>840 100万日も調査に充てるのか。人生捧げてる感じだ。すげえ。
40万で16F満タンまでならコーディングとデバッグするぞ
コーティングとデバッグだけなら、俺も40万で良いけど、 こういう輩は、どうせ仕様とか全然決まってないから、 お話聞いて、試用決定と設計までで160万くらいみとかないと、 赤字になるのさ。
よし俺なら35万でやってやる
なんか入札になってるw おれは実績精算にしとく。 まぁ、それはおいといて、データシートが嫌なら(?)やはり解説本かな。 そこで学んで、機能意味をデータシートと照らし合わせるのが近道かと。
>>845 だね。
せっかくPICには他のデバイスよりも、クロックや電源、AD特性などの解説が
丁寧に書かれている良い解説本が多いのにね。
813はそういうのも読んでないんじゃないかな。
発振子絡みで便乗話題。 普通にPIC16やPIC18にセラミック発振子をつなげて 動作しているときに発振子付近の実装パターンを指で触れるとPICが暴走する。 これは指の抵抗で発振が不安定になっていると考えて問題ない? セラロックでも水晶+セラミックコンデンサでも現象は起こる。 これを防ぐ方法は、パターンのコーティングしか無いわけ?
>>847 原因としては7つあげられる。
あと、暴走って表現は雑すぎるからやめた方がいい
>>848 現象としては
・リセットがかかる。
・見た目動作が非常にゆっくりになる(ダイナミック制御のちらつき)。
原因としてはいろいろあるけれど、パターンの長さや引き回しは規定を満足している? GNDはきちんと安定しているかとかもあるしな。 あとは、あなたの静電気。 パターンを下手にコーティングすると、それはそれでまた別の問題が起きると思う(場合もある)。
16Fといっても最近の16F1938とかはプログラムメモリが16Kワードも乗ってる けどいいのかな。
>>850 発振回路はクロック端子の直近2cm以内には収まっている。
パスコン(0.1uF)もなるべく最短で入れてある。VCCピンが複数あればその数だけ。
>>850 静電気とかアバウトな答えなら偉そうに書かなくていいです。
人体の電位は電力線からの電界により商用周波数(50/60Hz)で変動している PICのクロックドライバの入力(OSC1)側は高インピーダンスになっているため 人体が接触すると商用周波数の電圧が発生してしまう それにより次のようなことが起こるかも 発振の停止あるいは発振周波数の乱れ 内部回路のセットアップあるいはホールド時間の不足による メモリ化け、レジスタやフラグ化け、プログラムカウンタ化け
>>854 それを防ぐ、電子回路上の対策はあるのでしょうか?
>>854 奴には理解できない。
チンコで例えれてやれ
>>855 物理的接触を避けるためにケースに入れるだけじゃダメなん?
ICを包んでる樹脂使えばおk
>859 発振周波数のA3 だな。 指でのチェックはお約束。
>>855 指が直接触れないようにGNDに落とした金属でシールドする
>>860 ありがとうございます。
発振子のマッチングに関しての知識が不足しているので勉強し直します。
「触っても大丈夫なように」とか、子供みたいだな
PIC24FJ32G002でサーボモータを制御したいんですけど、 やり方載ってるサイトとかありますか?
そんなの検索すれば即わかるだろ。いちいち書くなよ
>>864 それは、あなたが自身で調べることです (ミタ)
ミタさんPIC使えるのか
>>867 カバンのなかにPICKit3が入ってます。l
>>825 なんか真珠入りマイコンを連想してしまった
占のうてみるかにゃ
ちなみに、ダイワニャンもPIC使えるらしい。 秋月で16F88買っていた。
writer509の、新型16Fバージョンの回路はまだですか?
つかいい加減5Vオンリー書き込みでいいじゃんなぁ。 5V専用の安くて安定しているライタの登場求むわ。
なんでPICKITも買えない貧乏人がマイコンの開発をy
>>875 趣味なんだから道具から作りたい人も居る。
他力本願なのはイクナイ
マイコンなんて貧乏人の趣味じゃん。 本体50円、基板50円、LED3.5円、パスコン1円 で、とりあえず何か作った気になれる。 3000円台のライターなんて法外に高価だよ。 こんな機器が必要だと知ってたなら、最初から4017と555だけ使って フラッシャー作ったほうが安上がりだった。 と、俺の嫁が言ってました。
555は絶滅してなかった?
880 :
774ワット発電中さん :2012/02/13(月) 12:26:25.83 ID:UHjHMHNW
秋月で普通にレールで売ってるけど。 絶滅したの? 今のうちに買い占めておくのが吉?
555はバリバリ現役だぜ。 3909は引退したけどな。
ごめん。勘違い。 TIが555互換品の製造中止の記事で記憶違していた
555で出来ることはPIC12F615とか 使ってソフトでやるほうが工作は楽
555は、広い電源電圧と高い出力電流にアドバンテージがある。 なので、制御の対象が12V系とかなら電源回路やドライブ回路を簡略化できる。 ソフトで簡単に機能拡張できるマイコンほどの便利さはないけど、555も捨てたもんじゃない。
PIC16F84A PIC16F877 PIC16F887 と書き込み手順から自作のライタで凌いできたが PIC18F26K22を使いたくなって書き込み手順のデータシート調べたら CPUコアのプログラムメモリアクセス機能をライタから遠隔操作 するような複雑仕様で萎えた でもPICKIT買ったら負けのような気がするんだ
時は金なり デバッガも役に立つかもしれん
>>883 可変抵抗の値を A/D して周波数変えるとか
面倒くさいと思うんだ。
888 :
774ワット発電中さん :2012/02/13(月) 15:18:53.42 ID:UHjHMHNW
555を「ゴーゴーゴー」と読むか「ファイズ」と読むかで、歳がバレます。
君のテレホンナンバー 555 オゥ〜
スリーファイブじゃないんですか……
>スリーファイブ 999世代乙
ゴゴゴ、風が泣いている
>>878 なんのフラッシャか知らないけど、555使ってできることならそっち使ったほうがいいし多分楽しいんじゃ?
マイコンを選んだ方が圧倒的に楽、または既存のアナログ、デジタル回路では条件が複雑になりすぎる制御にマイコンを選択するのでは?
PCのソフトなんて初期投資のPC買うだけであとはタダじゃないですか。 今時PCぐらい家庭に1台以上あるから実質ゼロ円。 マイコンというか電子工作は必要な部品選んで買い集める辺りで もう既に敷居が高いと思います。
ゴーゴーファイブもあったな
>>894 川柳のほうが楽しいぞ。人口多いし投資?もない
原価厨って何が楽しくて生きてんの
原価上等よ 俺ら気合い入ってるからよォ
899 :
774ワット発電中さん :2012/02/13(月) 20:04:57.32 ID:G+EC/ZrR
自分もクロックについて質問だけど、 picによっては発振子に1MΩの抵抗を 並列接続する理由は?
帰還抵抗
)900 名称ではなく、理由を聞かれています、軽石さん。
902 :
774ワット発電中さん :2012/02/13(月) 21:09:54.77 ID:G+EC/ZrR
だれか、PIC24E扱っている人いないかい? 別に、知らないことを聞きたいんじゃなくて、 物珍しいから、使っている人がいないかなぁっておもっただけ。 趣味の工作なのに、わざわざ海外から取り寄せたし。
>>海外から取り寄せ 下手な国内業者から買うより余程早くて安いけどね
PIC16F57マイコンデジタル時計キットVer.3(卓上型) を使って作った自慢のプログラムを誰か披露してくれませんか?
秋月に著作権あるんじゃないの?
AVRで同じようなのをスクラッチで作ったよ JJYとGPSからの時刻取り込み機能付きのやつ PICじゃないのが残念だ
キット品を買ってあえて別の物を作ろうってことだな!ちょっと面白そうだ。 キット自体高いからあまりやりたくはないけど。
質問です (´・ω・`) 【目的】 3.3Vで動く回路上のPICに、Pickit3(ICSP)でプログラムしたい。 【状況】 回路に Pickit3 を繋げて、MPLAB IDE の 『Program』 をクリックすると、 新品の PIC には 1度だけプログラムを書き込める。 もういちどプログラム(つまり、そのPICに上書き)しようとすると、次のようなエラーが出て、 プログラムできない。 -------- Address: 00000000 Expected Value: 00000025 Received Value: 00000000 (※ 00000fff となるケースもあり) Programming Failed -------- ここで使用したのは、PIC12F509です。 念のため、3個の個体を入れ替えながら3回試してみたが、いずれも状況は同じ。 【進展】 回路の電源を5Vに変更してみたら、あっさりうまくいった(2度目以降の上書きプログラムができた)。 【質問】 電源を5Vにすればよいと分かったので、それで解決といえば解決だけど、 LEDとかがまぶしくてイラッとするので、できれば3.3V電源のままでICSPできるようにしたい。 回路の電源部分に、インダクタとかで5Vに昇圧する回路をくっつけて、プログラムするときだけ スイッチでそっちに切替える・・・という強引な方法は思いついたんですが・・・ できればもっとスマートに解決できないでしょうか? よろしくお願いします (´・ω・`)
>LEDとかがまぶしくてイラッとするので LEDの上にシールでも貼ったら?
5V電源にして、使うときだけ3.3Vにレギュレータで落とす
>>909 書き込み時はPickit3から電源を供給するとか。
切り替えがスイッチ以上に面倒か…
PIC初心者です。 SPIを使ったPIC間通信がうまくいかず、行き詰まってしまったので質問させてください。 言語はC言語で、コンパイラはC18,C30を使用しています。 PIC24FJ64GB002(以降GB002)をマスター、PIC18F26K22(以降26K22)をスレーブとしています。 両方ともクロックは外部8MHzを、4倍にして使用しています。 ピン接続は以下のようになっています。(SSは今回使用しません) GB002 | 26K22 SDO1: RB3(RP3) | SDI2: RB2 SDI1: RB2(RP2) | SDO2: RB3 SCK1: RB1(RP1) | SCK2: RB1 GB002のRB15にスイッチ、RB7,8にLEDがついています。 26K22にはRB0にLEDがついています。 GB002のスイッチを押すと、SPI通信で26K22にデータを送り、データがきちんと届いたら26K22のLEDを光らせるテストプログラムを作成していました。 しかし、スイッチを押しても26K22側のLEDはつかないため、通信がきちんと行われていないものと思われます。 どうすればきちんとSPI通信が行えるでしょうか?どなたかご教授していただけませんか? 以下にソース(main関数)を記述します。 //GB002 int main(void){ // 内蔵Pull up setting CNPU1 = 0x1800;// CN0~15 CNPU2 = 0x0000;// CN16~CN30 // Disable Watch Dog Timer RCONbits.SWDTEN = 0; // SPI port setting RPOR1bits.RP2R = 8; // RP1 is SCK output RPINR20bits.SDI1R = 2; // RP2 is SDI Input RPOR1bits.RP3R = 7; // RP3 is SDO Output // all A/D converter disabled AD1PCFG = 0xFFFF; TRISA=0; TRISB=0; TRISBbits.TRISB2 = 1; // SDI port TRISBbits.TRISB15 = 1; PORTA=0; PORTB=0; SPI1Init(); CloseSPI1(); #define config1 (SPI_MODE16_OFF |SPI_SMP_ON | MASTER_ENABLE_ON | SEC_PRESCAL_4_1) #define config2 (FRAME_ENABLE_OFF) #define config3 (SPI_ENABLE) OpenSPI1(config1,config2,config3); ConfigIntSPI1(SPI_INT_EN | SPI_INT_PRI_4); // main loop start while(1){ if(PORTBbits.RB15 == 0){ // SPI start // スイッチを押すとRB8のLEDがつき、通信が終わるとRB7のLEDがついて、RB8のLEDが消える。 PORTBbits.RB8=1; PORTBbits.RB7=0; WriteSPI1(0x01); while(SPI1STATbits.SPITBF); PORTBbits.RB7=1; DelayMs(500); PORTBbits.RB8=0; }// SPI end }// main loop end CloseSPI1(); return 0; }
>>913 つづきです
//26K22
void main(void){
char data=0;
// all ADconverter disabled
ANSELA = 0xffff;
ANSELB = 0xffff;
ANSELC = 0xffff;
TRISA=0;
TRISB=0;
TRISC=0;
PORTA=0;
PORTB=0;
PORTC=0;
PORTBbits.RB0=0;
// SPI Init
CloseSPI2();
OpenSPI2(SLV_SSOFF,MODE_01,SMPMID);
TRISBbits.RB1 = 1; // SCK in
TRISBbits.RB2 = 0; // SDO
TRISBbits.RB3 = 1; // SDI
while(!DataRdySPI());
data = SSPBUF;
if(data != 0)
PORTBbits.RB0 = 1;
//while( PIR1bits.SSPIF!=1 );
CloseSPI2();
while(1);
}
>>912 Pickit3からの給電で書き込めるんでしょうか?
Pickit3の要件 (中に入ってたポスターみたいな奴のRecommended Settings の欄)
によれば、『Power: Supplied by target』 となっています。
使い方の手順にも 『Connect power to the target board』 と書いてあるし・・・(´・ω・`)
>>909 はいまいち質問の書き方が悪かったですが、私の本音としては、
できれば 『3.3V のまま(電圧を上げるなどの細工をすることなく)PICに書き込むための条件』
を、いちばん知りたいです。
ポスターの説明書には、PICの電源については 『Target Vdd』 としか書いていません。
ポスターに電源に関する追加条件などが記されていない以上、 “うまくやれば” PIC本体の
データシートどおりの電圧 (つまり最低 2.0V) だけで、きちんと書き込める “はず” だと
思うんですが・・・ (´・ω・`)
どなたか Pickit3で、3V前後の target Vdd のまま書き込めた人はいないでしょうか? (´・ω・`)
916 :
774ワット発電中さん :2012/02/14(火) 21:46:01.21 ID:cvD7gf/c
>>912 c30のspi通信はマスター側がデータを送信することで
マスターの送信データとスレーブの送信データが交換される仕組みみたいだよ。
プログラムとしてはスレーブ側の
while(!DataRdySPI());
の前に
SPI1BUF = 0xFF; or WriteSPI1(0xFF);
を入れてみて。
917 :
774ワット発電中さん :2012/02/14(火) 21:47:00.92 ID:cvD7gf/c
>>915 書込みは4.5V以上ってなってねぇか
ムリすれば消去以外はできるようだが
TIMR0で割り込みした後、FLAGをクリアするのはわかるんですが、 T0IE も SET する必要があるんでしょうか。 私は必要ないと思うし、実際必要がないようです。しかし、他人の 書いたプログラムを見ると多くの人が毎回 SET してるようですけど。 どうなんでしょうか?
>>903 使ってるよ、情報少ないけど安くて便利だわ
>>916 追加して動かしてみましたが、現状変わらず、期待した動作は得られませんでした…。
GB002の方に問題があるのか、それとも26K22の方に問題があるのかすらわからないですね…。
PIC使いではないのでわからないけど、 SS無しでSPI通信できるのですか? フレームの先頭をどうやって知らせるのでしょうか
925 :
774ワット発電中さん :2012/02/15(水) 21:57:23.75 ID:+fA3hJ1x
AKI PICPGMで書き込みしようとすると途中で止まります. 使用PICは16F88 書き込みソフトはPIC Programmer v4 PICにプログラムを書き込むところまではいくんだけど,9割方書き込みの途中でとまる. ごくまれに何事もなかったかのように書き込みが成功するんだけど, 原因はなんでしょうか ちなみに,ファームウェアは6.5と6.72beta両方で試したけどかわらない. はじめは,AE-PGM877がダメかと思って,追加購入した
926 :
774ワット発電中さん :2012/02/15(水) 22:14:20.57 ID:ebm2In70
>>915 MPLABのメニューから
Programmer > Settings > Power
で設定できる。
USBポートの供給力不足で書けないことはあった。
俺も、秋月のライターで?な事象が起きていた。 1回目はC系を焼いていて、何故か0FFFが書き込まれた状態で書き込み不可。 2回目もC系で、途中まで焼けたと思ったらフラッシュ領域NG・コンフィグ領域OKと出てダメだった。 一つ覚えたのが、C系で書かれたhexでも、強制的にF系に書き込めるのね。 まぁ、ワンタイムかフラッシュかの違いだし、同じ型番なら行けちゃうのね。
PIC18F4525(+40MHzレゾネータ)にI2C EEPROM 24LC64を繋げて 読み書きしようとしています。HI-TECH C PIC18 v9.80で、plib関数を使用してます。 データシートとマニュアルを見て、以下のコードを書いたのですが、 ReadI2C()から戻ってきません。どこが悪いかどなたか添削いただけないでしょか。 教えて君で、本当に申し訳ありません。 void i2c_init(void) { // XTAL 40MHz, Bitrate 400kHz OpenI2C(MASTER,SLEW_ON); SSPADD = 0x18; } signed char i2c_write_byte(unsigned int eeprom_addr, unsigned char byte) { IdleI2C(); StartI2C(); WriteI2C(0xA0); WriteI2C((unsigned char)((eeprom_addr >> 8) & 0xFF)); WriteI2C((unsigned char)(eeprom_addr & 0xFF)); WriteI2C(byte); StopI2C(); delay_ms(10); return 0; } signed short i2c_read_byte(unsigned int eeprom_addr) { unsigned char data; IdleI2C(); StartI2C(); WriteI2C(0xA0); WriteI2C((unsigned char)((eeprom_addr >> 8) & 0xFF)); WriteI2C((unsigned char)(eeprom_addr & 0xFF)); RestartI2C(); WriteI2C(0xA1); LED=1; data = ReadI2C(); LED=0; NotAckI2C(); StopI2C(); return (signed short) data; }
秋月picライタはeeprom書き込み機専用になってしまった。 PC接続が鬱陶しいのでUSBバスパワーに改造した。 5vレギュレータとvppレギュレータ削除して usv5vと昇圧回路で作った12.7vを元のレギュレータ出力にぶち込んだ。 シリアルはUSBから変換。 一応PICも書き込みできた。
931 :
774ワット発電中さん :2012/02/16(木) 01:19:41.66 ID:nlP+8m6x
>>925 念のため書いておくけれど、
俺の持ってるPIC Programmer v4の場合、
デバイスをPIC16F88に設定すると「基盤裏面の所定の場所に1MΩの抵抗を追加しろ」みたいな
注意メッセージが出る
1MΩの抵抗を追加しない場合に書き込みエラーが出るかどうかは知らない
俺自身は1MΩの抵抗を追加しない状態でPIC16F88に書き込んだことはない
pic用のC言語はなぜ高いの。2万円ぐらいするらしいけど高すぎるよね。 おかげで、私はいまだにアセンブラでやってる。 マイクロチップ社ももうちょっと安く提供してほしい。 みんなどう思ってるの?
二万円なら安い方じゃない 良心的だと思うけど
HI-TECH C や MPLABのコンパイラ から比べると CCS Cは安いよね。 CCS Cは「安いんだから 一回開発したら充分元が取れるでしょ?」 っていうスタンスで売っていると どっかに書いてあったな。
え? コンパイラただじゃね? いま俺がタダで使ってるのは何なんだ?
>>913 です。
オシロを使い、波形を見ながら試行錯誤したところ、GB002の方はきちんと波形がでるようになりました。
ポート割り付けを一部ミスしていて、1つのピンに機能が重複していました。自分に知恵を貸していただき、ありがとうございました。
しかし、26K22の方がうまくいきません。
試しにマスターモードにして、WriteSPI2をつかい、きちんとSCKからクロックがでているかなどを探っていますが、どうやらうまくでていないようです。(自宅にはオシロがないので、明日大学でオシロを借りて調べてみることにします)
どなたかSPI2(SCK2,SDI2,SDO2)を使ってSPI通信をされたかたがいらっしゃいましたら、ご教授のほどお願いします。
>>937 ソース忘れてました。
実験用のWriteしまくるソースです。
void main(void){
char data=0;
// ADconverter disabled
ANSELA = 0xffff;
ANSELB = 0xffff;
ANSELC = 0xffff;
TRISA=0;
TRISB=0;
TRISC=0;
PORTA=0;
PORTB=0;
PORTC=0;
PORTBbits.RB0=1;
TRISBbits.RB1 = 0; // SCK out
TRISBbits.RB2 = 0; // SDO
TRISBbits.RB3 = 1; // SDI
// SPI Init
CloseSPI1();
CloseSPI2();
//OpenSPI2(SLV_SSOFF,MODE_00,SMPEND);
OpenSPI2(SPI_FOSC_64,MODE_01,SMPMID);
while(1){
if(WriteSPI(0x55) == -1){ // Write 0x55 to the SPI bus
while(1);// If bus collision occurs, loop here forever
}
}
}
スレを私物化しているアホが湧いているな. 学校の宿題でベタベタソース貼るなヴォケ! チラ裏ならブログでも作れや!
全角スペース使って字下げしろよ。読む気にもならんわ。
941 :
774ワット発電中さん :2012/02/16(木) 06:11:22.67 ID:Sol21tPE
16Fにこだわるなら CCS買うのわかるけど 金無いなら18F以上で無償コンパイラ使えばええがな 実装面積が問題なのか? アセンブラで無駄のないソース組む楽しさもあるけど Cでバリバリ組みたいなら AVRとか選択肢あるし 何? ただの情弱?
942 :
774ワット発電中さん :2012/02/16(木) 11:57:36.77 ID:GayhmffX
最近は趣味でこの手の情報を丁寧に紹介してくれるサイトが少なくなってきてるんじゃないかな。 5年、10年前はネットで探せば技術解説記事もたくさん見つかったものだけど。 そういう有用な情報は減り宣伝やデマなどがあふれ、ネット、だんだんつまらなくなってきてる。 情弱もそんなに悪くない。
>>942 5年10年と言うより、ブログが流行りだしてからだな
それ以前は、ある程度体系的にまとまった情報でサイトを作るのが主だったが
ブログが流行りだして、断片的な情報は増えたけど体系的な情報集積が無くなった
ま、オレそうそうなんだけどな
ブログで書いちゃうと、それをまとめてサイト作り直すのが面倒で、そのまま放置してしまう
>>942 > そういう有用な情報は減り宣伝やデマなどがあふれ、ネット、だんだんつまらなくなってきてる。
> 情弱もそんなに悪くない。
そうそう俺もそれ気になってる。C言語のページはどうも宣伝臭い。企業が買わせるために
サイト運営してるっぽい。
有用な情報が減ったというより 手軽に情報発信出来るようになったから 情報が溢れかえって、有用なサイトが埋もれてしまったと思うな PICを使ってC言語でLEDチカチカしました! で、PICKIT3で書き込みました!爆速! ICD3でも書き込んでみました!激早! とかアホみたいな情報が溢れかえってるしな ま、この書き込みもその情報海へ垂れ流しされるわけだ
個人的にはアセンブラでってのはちょっと可読性と移植性が悪いのでパス…無論個人的な意味でだ。 しかし、なんでこうCを目の敵にするのかね、別に人がJavaでPIC使っててもBasicでぬるいコードかいててもいいじゃない。 俺は…ひたすらHITEC-CとかCCSCとかアフェリされてたら吹くw でもCQでもそうだけど○○で△△つくりました〜だけのサイトってさすがにとは思う。 せめてその…コードだせと。一部でもいいから中身も見せて欲しい。 コピっただけで動いても嬉しいし。 個人的にはCCSCは232だろうがI2Cだろうがライブラリ持ってて使いやすいのがいい、そりゃ高いと思うかもしれないけど。他のCコンパイラは組み込まれてなくて苦手だなぁ。
>>947 とりあえず16F以下での高級言語は、自分の中だけで終わらせてほしい。
だな そもそも16F以下はアセンブラ前提での設計になってる
C18のI2Cライブラリってウンコだな 応答があるまで中でループして返ってこない関数ばかりじゃないか ソフトウェア構造の思想がなっとらん 結局自前で作り直したわ
ルネサスエレクトロニクスってネーミングには笑った RH/RM/RNとか言ってんのかな奴ら
日立三菱日本電気半導体、みたいな名前なら良かったの?
NECエレクトロニクスからエレクトロニクスをもらうってのはイジメだろw RN憤死
じゃあNECエレクトロニクスからNEをもらって、 ネルネサス、ルネネサス、ルネサネス、ルネサスネ のほうが良かったのか?
サークルNMHっていいよね
ルネサスのネがNECのNEなんだよ、察してやれよ
16FなんてCがマトモに動くような代物じゃないから コンパイラとPICに無理難題押し付けんなよ
ねっ
16FでCを使うのがそんなに悪いことなんですか? 具体的にどんな不都合があるんでしょうか? lite版だと16Fだけ機能制限があるとか?
pic16f877で32bit浮動小数点演算が使えるhitech c liteは偉いと思う よくやったよ 演算速度なんて関係ない できるだけですごいよ
>>961 マジレスするとアーキテクチャがksだからCに向いてない。
そういえば20年ぐらい前、「8086なんてしょせんコントローラだから高級言語なんぞ使わずに アセンブラで十分。C使うなら68kにしろよ」なんて話をしてたやつらがいたなぁw まあ8080(or Z80)と6809の頃から繰り返される話ではあるが。
PIC16FでC使って、あ〜だ・こ〜だ悩む位ならAVR使えばいいのにと思ってしまう。
PICでCばかりで仕事してますが、何か? AVR好きな人は、AVR使ってください。 品種の多さ、形状の豊富さで、PICの方がメリットがでかい。 AVRにする理由が見つからない。
ヘンテコアーキテクチャであるほど、高級言語がありがたいと思うのだが。 6809は素でアセンブリコードを書いていた。 Z80では無理。TurboPascalがありがたかった。
969 :
774ワット発電中さん :2012/02/17(金) 20:05:06.12 ID:+cQkSfuW
pic16F1938なんですが、立ち上がりエッジ割り込みでタイマー0をスタートさせ 立下りエッジでタイマー0をストップさせる処理をしています。 時々、立ち下がりエッジ割り込みが発生しない不具合が起きているのですが、 おそらくは、立ち上がりエッジ割り込みによる処理が終わる前に立ち下がりがおこり、 その間GIEビットがオフの為に認識されていないのだと思います。 何か良い解決方法はないでしょうか?
>967 別にあ〜だ・こ〜だ悩んで無い人なら、そのまま使って下さい。 Cコンパイラ高いと思う人や、コードみながらデバッグできないなら人なら 無理に16F使う必要はないでしょと。AVRやPIC24Fや他使えば
atmega328p+GCCの組合せと同じぐらいの量がプログラムが書けて 最近のPICの周辺機能てんこ盛りのマイコンがあればと思ってきたが PIC18F26K22が秋月で売られるようになって夢が叶った気がする
973 :
774ワット発電中さん :2012/02/17(金) 20:51:55.70 ID:+cQkSfuW
>>970 いやそれが立ち上がりから立下りまでせいぜい20ms程度のものなので、
割り込み処理中に・・というのも変と言えば変なのです。
考えてみたら、初めの割り込みは立ち上がりと決め付けて
立ち上がりエッジ割り込みを禁止して立ち上がりエッジ割り込みを待つ。
次のエッジ割り込みが発生すると立ち下がりエッジ割り込みと決め付けて・・・
というのが原因のようです。
立ち上がりエッチ割り込みなのか、
立ち下がりエッジ割り込みなのか
判別する方法ってありますかね?
>立ち上がりエッチ割り込みなのか (*ノノ)
975 :
774ワット発電中さん :2012/02/17(金) 20:59:53.56 ID:+cQkSfuW
いやまて、立ち上がりエッジ割り込みと、立ち下がりエッジ割り込みを 両方許可しておいて、割り込みが発生したら、そのピンがオンかオフか 普通にPORTレジスタで確認すればいいのかな?それってありかな?
976 :
774ワット発電中さん :2012/02/17(金) 21:04:42.27 ID:+cQkSfuW
いやそれじゃ、割り込み処理中にピンが変化した場合正しい状態を反映しなくなるな。 やはり、立ち上がりか立ち下がりかを判断するステータスとか無いのでしょうか?
>>975-976 処理中に変化、というが、割り込みの中で処理する前に変化するような「ヒゲちっく」なポート変化まで見るのか?
割り込みの初っぱなでレジスタに待避させてやれば、割り込み+1命令程度のラグになるはずだが。
ヒゲちっくかどうかは、前回の割り込みの論理を覚えておいて、今回も同じならヒゲちっくだったとして捨てればいい。
というのが俺の方法。
978 :
774ワット発電中さん :2012/02/17(金) 21:19:47.06 ID:+cQkSfuW
>>977 そうでしたか、やはりその方法になるのですか。
Lレベルを確認してから割り込み許可でいいんじゃないの
>>962 > pic16f877で32bit浮動小数点演算が使えるhitech c liteは偉いと思う
これは褒めていいなw
w付きで。
>>954 > 日立三菱日本電気半導体、みたいな名前なら良かったの?
そういや、日立三菱日本電気記憶半導体がやばそうだな。
応援の気持ちでちょっぴり株持ってるんだが、これじゃ売れない・・・
16Fの時代は終わった 24FJもそんなに高くないんだしそっち使えばいいのに
俺18F始めたばっかなのにw USB面白いね。事実上フルアセンブラが無理なのが寂しいが。 あと24のCANが使いたい。
>>981 趣味の工作なら
PICは、8pinや14pinじゃないと可愛くない
24fj使うくらいならルネサス系やARM、FPGAでもいいじゃないか
PIC18F25K80にもCANあるじゃん
16FはMS-DOSで18Fはwindowsみたいな感じ
今更ながら16Fで興味あるのはmTouchぐらいかな ただPSoCが大量に余ってるんでPICのmTouchは味見してない
987 :
774ワット発電中さん :2012/02/18(土) 01:00:10.99 ID:Krf8O3oW
>>969 駆動周波数を高くするだけで解決するような気がするけど……
まっまっ、そもそも、いちいち立ち上がりエッジ検出、立下りエッジ検出を
切り替えるのはトリッキーすぎるでしょ
GIEをオフにするってことはそういうことなんでしょ
その条件だとどうせCCPでハードウェア計測できないよね
だったら、
変化割り込みを使えばいい。両エッジに反応するよ
立ち上がり・立下りの判別はポートの値を見ればいい
便乗ですが、パルス幅計りたいときはどうすればいいんですか?
インプットキャプターさくら機能使うのが基本では
タイマ1のゲート機能使う方がより基本かも
おお、インプットキャプチャ機能というものがあったんですね。 PIC18で使えるのかな・・ありがとうございます
DIPがあるのは有り難いね 本当にPIC感謝だよ 32bitCPUすらDIPある ブキッチョな手半田電子工作人を見放していない DIPなんて昨今製造する意味なんて無いんじゃないのか?とすら思う ようは、それで儲かっているって事なんだな
993 :
774ワット発電中さん :2012/02/18(土) 02:30:48.39 ID:Krf8O3oW
>>969 そもそも変な目的だよね
立上がりと立下りの間の時間はPICではハードウェアでは測れないから
ソフトウェアで計測することになる
当然1パルスの時間は大して正確に測れない
正確に測れないなら、1山の時間を測る意味がそもそもあまり見いだせない
同じ向きのエッジ間の時間ならハードウェアで正確に測れるから
1パルスでも測る価値がある
連続パルスじゃなくて、
時々ぽつんとパルスが来るのかな?
それなら仕方がないけど、
連続パルスなら仕様を考え直した方がいいと思うよ
みなさんPICで何作ってるんですか? 自分本にあるようなモータ制御とかLED点灯とか電圧計とかしか作ったことないっす
>>969 メインループで何もしないなら
ソフトウェアで計測してもハードウェア並みに正確に測れる
ただし補正は必要
次スレを・・・ 私は立てられんかった
>>994 データーロガーと鉄道模型用パワーパックとモルモット用にエアコンの自動制御
1000ならいい事あるかな
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。