【皆で作ろう】PIC専用のスレPart13【Writer509】
>1
乙。
だが前スレ1000で次としてあるアドレスが前スレそのものなのはいかがなものか。
まぁ、ドンマイ。
前スレのPICKIT2でPIC16F84Aを扱いたかった者です。
部材が手元にないんで、取り合えずブレッドボードで試してみますね。
ありがとでした。
発振しなくなったりしてな
683とかでクロック源を作っとくと便利だぞ
秒1命令用4Hzとあとは適当なのを余りピンで選択
足に直接時計水晶32kをありだ
14 :
774ワット発電中さん:2007/03/29(木) 12:44:24 ID:wmaP7bON
> なにせ、秋葉原にはハーフピッチのコネクタの売っているところがない(と思う)。
千石でも売ってるがな。2.54の隣に。
博識なライターさんだこと。
頭の中はHC244か?JDMか。
前スレの1000をPICのアセンブラで書くとしたらどうなるの?
16 :
774ワット発電中さん:2007/03/29(木) 14:27:27 ID:d3qGj8Ba
おい、PICを使った小基板でのでふぁくとすたんだーとてきな外部信号配置みたいなの
なにかありますか?
PICFUNの掲示板が久々に復活したと思ったら
早速荒らされてるよ。
アク禁にできないのかなぁ…
>15
goto $
そのURLじゃ騙しは無理だろ
I2CD2ですが予想道り難航中です
電源周りはサクッとできたのですが、ターゲット3V辺りから動作が不安定
原因はプログラム時にシュミットトリガ受けになるというのを忘れて
作ってしまったからですけど orz
VHCTじゃワースト3.6Vあたりなので、1.9Vを目標に変更中
いちおうLCXの3V固定で受けて、VHCをターゲット依存とすれば2.5-5.5Vで
いけそうなんだけど、あと0.6V落としたいから低電圧用に専用回路を
別途切り替えてしまうか悩みどころ
22 :
774ワット発電中さん:2007/03/31(土) 00:40:59 ID:8v1HDMlI
はいチックcがすごいことになってうおえp456t7ゆひじょ
>>22 すごい事、というほどではない罠
プチ嬉しいけど
ごだびんblog
http://goda.blog3.fc2.com なんか、事実誤認があるような....
> ちなみにPICマイコンはこのように値を変えて試すには結構大変です。(秋月で基板を買って試せるかもしれないけど。)
> そのようなときR8Cマイコンのようにオンチップデバッガ機能があるマイコンは、パルス幅の値を開発ツールのパソコン画面上からマイコンのメモリ変数を変更でき、その動作を実際に確認できます。
SIM使ってないんだよきっと
もしかするとSIMのSGの存在を知らないだけかも
>>25 インサーキットデバッガを初めて使ったんじゃないか
最近ので書き換えられないやつを探すほうが面倒な気がする
っま648とか648とか648とか648とか探せばあるけどw
PICでは使えないと、十把一絡げなのがごだびんクオリティ
PICの型番って意味深なのが多いよね
629 無肉
648 虫歯
819 俳句
877 バナナ
88 ババー
>29
さすがに深読みしすぎでは・・・
くだらないことは683やたらと言わない方が良いと思お。
24H使ってる人いる?
俺はPICを24時間肌身離さず使ってるぜ
なんて奴居るのかな
腕時計作った奴くらいじゃね?
ページャー用
マルツパーツ館に1個だけあったような。。。
CLOCK:40MHz
ROM:128KB(FLASH)
RAM:16KB(DATA)
って、CLOCK・ROMはもちろん、RAMも含めてPC-8001を超えそうな感じ・・・
PIC24ってインストラクションはまともなの?
いや8001なら8722で余裕で超えてるから
41 :
36,40:2007/04/06(金) 11:21:51 ID:0yR8Nr+e
RSでほぼ全種類売ってた。
MPLAB REAL ICE IN CIRCUIT EMULATOR が\25,507-となっているので
買おうと思ったが、一応メーカー型番AC244002を調べたら、
PERFORMANCE PAK とかってやつでオプション品だった。
もぅまぎらわしいなぁ。
>38
PIC24がPC8001を越えてるって・・・・
カセットテープのインターフェイスなんかも内蔵してるって事?
>>38 マウスとかキーボードを刺すコネクターが付いているって事?
>>42 カセットインターフェースが越える条件なのかw
おいらのPCは8001を越えてない
HIDデバイスはAVRと同様に殆ど直結でつなげられるんじゃね?
46 :
36,40:2007/04/06(金) 15:03:01 ID:0yR8Nr+e
リムーバブルドライブを内蔵しているか?
って事ならUSBがドライブでUSBメモリがテープの代わりになるかな。
スマソ、24にはUSB無かったかも。
>>44 やろうと思えば、サッポロシティスタンダードだって出来るんじゃないのか?
サウンドブラスターで出来るし
やってるひとは多い
A/D, D/A, GIO、でカセットインタフェース
UARTで PS/2
マジで8001超えるには、CRTCが....
51 :
774ワット発電中さん:2007/04/08(日) 11:04:56 ID:pbgThwSF
イーサネット内蔵PICへの書き込みってどうやればいいの?
Writer509で書ける?
>51
> Writer509で書ける?
正式版でのPIC18への対応はまだじゃなかった?β版でなら書き込みできるかもしれない
けど、自分はまだ試してないから知らない。
53 :
774ワット発電中さん:2007/04/08(日) 15:09:02 ID:OA0cyHgK
PICやる奴は、悪い事言わないから、ICD2を純正でも互換品でもいいから備えれ。
>53
趣味でやる分には無くても・・・と思いつつICD2 cloneは作ろうと思う。
55 :
774ワット発電中さん:2007/04/08(日) 16:22:25 ID:qgZGdYhW
4000円で作れるものな。純正互換なら新しいPIC出てきても安心。
馬鹿なこと考えずにPICkit2買え
しかし・・歳がばれるスレだな(w
58 :
774ワット発電中さん:2007/04/08(日) 20:10:33 ID:WPN9pYeG
ハーフマットのページに行ってみた
PIC18シリーズへの対応作業中だった。何ヶ月か待ってみようっと
俺はICDなんか要らないし
Writer509はソケット書き込みで使う分には十分。
18F2550も書き込んでみたけど特に問題なかった。
18Fは12Fや16Fみたいにデバイスによって書込みシーケンスが
コロコロ変わるようなことが少ないから、1機種書き込みができれば
ほとんどファームは完成と見てもよさそうな気がする。
あとはWindows側のソフトしだいじゃないかな。
>イーサネット内蔵PIC
っていうのはTQFPだからICSPになると思うけど、Writer509でICSPはビミョー。
びみょーって流行ってるみたいだけど誰が最初に使い出したの?
>>60 Writer509がICSPにはやや難があるという指摘は、以前にも見た気がしますが、
具体的にはどんな難があるんでしょう?
ソフトの問題ではなく、書き込み回路が12F509直結の簡易型だという部分だと
想像してはいますが・・・
>>62 PICの書き込みはデバイスによってVddやVppのタイミングが結構細かくて、
VppとVddのどっちを先に立ち上げるとか、一方が立ち上がった後に何ms(us)以内に
もう一方が立ち上がらないといけないとかいうのがある。
ICSPの場合VddやMCLRラインにいろんな物が接続されてる。
特にコンデンサはタイミングを狂わす要因になりやすい。
ICSPをより確実にするには、VddやVppをONにするときは低い内部抵抗で電圧を供給し、
OFFにするときはGndに放電できるような回路を持ったプログラマが必要。
ただ、これはPIC12Fや16Fの内部OSCを持ったデバイスに起きやすい問題で、
それ以外の16Fや18FはVpp(MCLR)だけでも制御できる物が多いから場合によっては
うまくいくこともあるような…
ってWriter509のICSPのページにそんなことが書いてあるじゃん。
ttp://www.geocities.jp/orange_denshi/ICSP/ICSP.html
>>58 Vppの可変が無い以外は同じカンジ。巷のシリアル接続ICD2クローンと一緒だから、自作できるなら作る方が安上がりだと思う。
Vpp電圧次第ってことか
自作は調整の余地があるからまだマシなんだが
じゃあ、Mini Mobile Pic Witerは?
67 :
774ワット発電中さん:2007/04/12(木) 23:56:16 ID:GqLRaOJa
PICを用いて、PC用モニタに文字を出力する
ということをやってるサイトってありますでしょうか?
ありますよ
69 :
774ワット発電中さん:2007/04/13(金) 00:37:45 ID:+GsdS99j
>>68 紹介していただけないでしょうか・・・・
パチンコ液晶を再利用しようと考えていまして・・・
パチンコ液晶サイズになるとメモリがぜんぜん足りないから
PICでとなるとあまり使い道がないんだよな
外部バスだと高くつく
別に色数と解像度は適当に落とせばいいじゃん。
モノクロ32x24ドットとかに。
73 :
774ワット発電中さん:2007/04/13(金) 01:34:09 ID:+GsdS99j
>>70 どうもです。
覗いてみます。
>>71 モノクロでもいいのでとりあえず作ってみて
使えそうな液晶ならばPLDなんかで外部のものの設計を・・・・
言い訳ばかりで実行しないウジ虫みたいな奴だな
PICだと難しいそうなんだけど
防犯用のタイムジェネレーターみたいのを作った人いるかな?
IC使って良いならわりと簡単
78 :
今日始めた初心者:2007/04/15(日) 21:32:39 ID:UeUIIf/n
何時間も調べたのですが、すみませんギブアップです。
ご教授願います。
あるHPで紹介されているPIC16F88用のソースを
Cコンパイルすべく(←ヘンな用法?)
とりあえずテキストファイルで保存し、
mikroCをダウンロードして、
ファイルを開き、DEVICEでP16F88を選択するところまで進みました。
で、CLOCKの選択でわからなくなりました。
次はどうすればいいのでしょうか???
アドウィン社のPICライタ(書き込みソフト付)は購入済です。
79 :
774ワット発電中さん:2007/04/15(日) 22:19:18 ID:rBwDziOw
>>78 >あるHPで紹介されているPIC16F88用のソースを
念のため聞きますが、それはmikroC用のソースなのですね?
80 :
774ワット発電中さん:2007/04/15(日) 22:27:00 ID:rBwDziOw
>>78 つっか、そこまで困っているなら
「あるHP」なんてもったいぶらずに、ちゃんとURL示さないと、初心者にありがちな
「情報をもったいぶって少しずつ出す」為に「回答が回答にならない」罠に落ちるよ・
FOSC : INTRC_RA6 = IO
WDTE : Disable
PWRTE: Disable
MCLRE: RA5 = IO internal pulled up
BODEN: Disable
LVP : RB3 = IO
CPD : not protect
WRT : protection off
DEBUG: Disable
CCPMX: CCP1 = RB3
CP : not protect
config2 value x3FFc
FDMEM:Disable
IESO :Disable
82 :
78:2007/04/15(日) 22:44:43 ID:UeUIIf/n
>>80 ありがとうございます。
http://www8.plala.or.jp/InHisTime/ の中の、
周波数表示ユニットU(真空管ラジオ用)
のソースです。
mikroCにはこだわっていません。
PIC用Cコンパイラで(期間限定)無料という
理由だけです。
PICの勉強はしたいのですが、
とりあえず、上記ソースをPIC16F88に書き込むことを
目的としています。
よろしくお願いいたします。
83 :
774ワット発電中さん:2007/04/15(日) 23:23:17 ID:rBwDziOw
>>78 そこのページに外部クロックとして16MHzを入れているので
クロックは16MHz、
EditProjectで□EXTCLK にチェック。
コンパイルできたぞ
回路図からすると
HS_OSC
MCLR= OFF
じゃまいか
まずC:\LcdMonitor2というフォルダを作って、
microCのメニュー Project > New Project... を実行。
ProjectName: LcdMonitor2
ProjectPath: C:\LcdMonitor2
Description: test
Device: P16F88
Clock: 016.000000
Device Flagsはデフォルトのまま。
microCのメニューFile > CloseでLcdMonitor2.cを閉じ、
C:\LcdMonitor2にダウンロードしたソースを上書きコピーして
Project > Build で出来上がり。だと思う。
86 :
78:2007/04/15(日) 23:57:05 ID:UeUIIf/n
>>85 ご親切にありがとうございます!!感謝!!
早速やってみたところ、C:\LcdMonitor2フォルダ中に
ファイル名LcdMonitor2で拡張子が、asm,cp,dbg,hex,lst,mcl
の6ファイルと、
LcdMonitor2_callertable.txt というファイルが作成されました。
これでOKなのでしょうか?
87 :
774ワット発電中さん:2007/04/16(月) 00:06:04 ID:tQ+t2CRb
>>84 PICは昔触ったキリなので、勘違いかもしれないんですが、
HS_OSCっていうのは、水晶モジュールじゃなくて、セラロックとか水晶発振子をつける場合であって、
この回路図は5VTTLの外部クロックを使ってるっぽいのでEXTCLKじゃないでしょか?
あーそだ 勘違いしてた ごめん
Device Flagsはデフォルトのままじゃまずかった。
_CCP1_RB3
_LVP_OFF
_WDT_OFF
_MCLR_OFF
_EXTCLK
をチェック。ビルドして出来たHexを書き込めばOK。だと思う。
MikroCってソース上にConfigの設定とか書けないんだ。
不便だなぁ。
91 :
774ワット発電中さん:2007/04/16(月) 09:17:05 ID:ivmY9njC
MikroBasicのほうがバグ少ないと言う話だ
ライブラリはMikroCのほうが豊富じゃなかったか?
ちょっち前のMikroBASICなんてなーんもできんかったぞ
mikroBASICのほうがバグは少ないし使いやすいよ
mikroCはバグだらけでバグ回避で疲れた
ライブラリは多いけどまともに使えるまでにいくつバグ発生の原因を覚えないといけないことやら
そもそも12Fや16FはC言語向きの構造じゃ無いし
>>91 Hitech PIC C Lite だな。かなり便利だ
96 :
78:2007/04/16(月) 20:35:58 ID:GOFo8Rho
>>89 ありがとうございます。
やってみたんですが、
フォルダ内にあるファイルは、拡張子が、
ppc
cp
mcl
c
の4ファイルだけです。。。
open するのは デフォの *.c じゃなくて project file *.ppcだよ
98 :
78:2007/04/16(月) 22:05:03 ID:GOFo8Rho
>>97 ありがとうございます。
すみません。もう少しお教え願います。
*.ppcをオープンするタイミングがよくわかりません。
はじめは*.cファイルしかないですよね。
*.cファイルをopenし、
以下
>>85 >>89 さんの手順・設定に従って
Project>New Project と進めていくと、
openするものがない???
・・・きっとウスラバカな質問なんでしょうが、
よろしくお願いいたします。
>99
> 18Fにも対応した、となってるが、どこを改良したんだろう?
もともとJDMは18Fにも書き込めたけど、動作検証をしてなかった。
18Fうんぬんに関しては動作検証をしただけでしょう。
> オリジナルJDMアダプタで問題だった電源回路の不安定化に対して
> 対策を行ったバージョンアップ版です。
問題はこっちですね。誰か情報plz
>>98 もう一回フォルダ作るところからやってみ
>>86 ではhexできたんでしょ
>>98 ファイルの種類で▼押す
すると ppcモ開けるようになる
これでビルドすればhexは生成される
*.c を開けてビルドはできるようにみえるが対応するファイルはできていない これ非常に勘違いしやすい
あ よく読んだら 開けないではなくてproject file がつくれてないのね
ちょいまち
help の ビルディング アプリケーションのとこにかいてあるとおりだけど・・・・
よんだ?
105 :
774ワット発電中さん:2007/04/17(火) 00:03:56 ID:2M4hu38A
ダウンロードしたファイルを hoge.c とする。
mikroC立ち上げたら
project / closeproject (closeできない場合は不要)
project / newproject
projectname = pro(なんでもいいが、hoge以外の名前)
projectpath = hoge.cのあるパス
その他、クロックとかは上のレスとか見て合わせる
左側のprojectsummlyタブを開く
Cfile 右クリック
remove from project =pro.cを選択。remove selected/OK
エディタのpro タブを閉じる。
Cfile 右クリック
add to project = hoge.c
Cfileの左側が+になっているので、ここをクリックして展開して
hoge.cをダブルクリックして開く。
project build
かなぁ?
2輪のモーターをジャイロセンサで姿勢制御させながら走行させたいんですが
参考になる文献とかサイトとかないでしょうか?
いろいろ探してみたんですけど、PICとジャイロの組み合わせっていう情報を
見つけられませんでした・・・ 初心者には無謀な挑戦なんすかね?
軽石です。
> 初心者には無謀な挑戦なんすかね?
無謀です。
デカイジャイロを乗せて倒れにくくすればおk
いけるよ
本体に影響するほどのジャイロのことだから、設計図を晒さないと
お勧めも何もねーべ
勘違いしているようだが、センサじゃないぞ
111 :
774ワット発電中さん:2007/04/17(火) 16:00:02 ID:AiJxIqcY
どう動かないの?
数字が表示されないの?
デタラメな数字が表示されるの?
2月ごろ作ったうちのカウンタは動いているので
まずブツが間違っている
114 :
774ワット発電中さん:2007/04/17(火) 16:11:01 ID:InlLt2Nc
>111
おまえにゃムリだ。
ということは111を見れば判る。
その回路の肝はHCU04だ。
115 :
774ワット発電中さん:2007/04/17(火) 16:17:14 ID:AiJxIqcY
7セグ表示しないです。回路は何回も見直しました。
部品も同等品の物を使ってます。プログラムはHPに
あったのを秋月のPICプログラマーver4で書き込みました。
コンフィング設定はそのままだったのですがココが原因かな?
PICノイズが出てるので動作はしてるようですが・・・・!
116 :
774ワット発電中さん:2007/04/17(火) 16:23:44 ID:AiJxIqcY
追記!テスト段階なので分周回路は付けて無い。
付けないと表示すらしないのだろうか?
>>114 見捨てないで・・・泣
>116
情報の小出しイクナイ!
回路は間違ってないという根拠は?電源はちゃんと出てる?クロックは発振してるか?
パスコン入れた?PICを使っておきながら高々600行のソースのデバックも自力じゃ
出来ないヤシの目視なんて当てにならないよ。
先ずは切り分け
簡単なテストプログラム作って動作確認
ジャイロはセンサじゃないのか!?ジャイロといっても色々あるって事なのかな
レートジャイロを想定してたんだけど・・・
お話にならないほど何にも分かってない段階で何聞いても無駄って事だよな、修行して出直すわ ノシ
120 :
774ワット発電中さん:2007/04/17(火) 17:23:25 ID:nOb+penH
この板でジャイロと言うと圧電型のジャイロセンサがデフォだ。
PICに直に繋ぐのはムリだ。Opアンプ使え。
dsPICで頑張ればどうにでもなるだろ。
ラジコン屋なんかが言う○○ジャイロはこの板の十人では判らん。
にゃるほど、了解です。
ほのかに分かってきた気がする。アリガトン
>>116 分周回路が付いてないなら、
そんな速い周波数にPICのカウンタは追従出来ないさ
まず、PICが動いているかどうか、発振回路でも作って
カウンタ入力に入れてみたらどう?
123 :
774ワット発電中さん:2007/04/17(火) 18:55:48 ID:6J11For0
小出し質問ばかりのスレ。
これぞPICクオリティw
>123
それでもレスがつくのがこのスレのいいところ。
>>115 >>111 のページに行って、Ctrl+F で
外部入力の発振に対応するためにCONFIGの設定が必要です。
の文字列を検索するんだ!
この程度でメール送られる管理人も大変だな
127 :
774ワット発電中さん:2007/04/17(火) 21:02:40 ID:JrVtGu/1
125>> 情報有難う!早速やってみたが設定してたみたいだぜ!
残念だ!又情報頼むぜ!556
>コンフィング設定はそのままだったのですがココが原因かな?
小出しどころか嘘までつかれちゃレスする気なくなります
129 :
774ワット発電中さん:2007/04/17(火) 21:22:14 ID:JrVtGu/1
>>128 それは違うぜ! コンフィング設定って言っても
ASMの設定ではなくライターソフトでのコンフィング設定
だぜ!俺は嘘はつかねぇ!説明不足だったな!すまねぇ!
>>115 >部品も同等品の物を使ってます。
7セグメントのコモン(アノード・カソード)の種類は合ってるのか?
うんこ
>>129 入力端子をHC138のY0〜Y5あたりにつないだらなんか出るかね?
133 :
774ワット発電中さん:2007/04/18(水) 03:49:21 ID:Q6uqIsYI
16F88の6〜12pinに電圧が出てませんでした。
74HC138、トランジスタードライバーとも動作してるようです。
20MHZOSCも発振は確認しました。32,768khzは見確認(新品を使用)
各ICへの供給電圧も5Vでした。良くあるGND忘れも無いです。
7セグLEDへのCOMへの電圧は出ているようです。16F88を交換しても
同じでした。プログラムでしょうか?
>12pinに電圧が出てませんでした
これだろ
つくりが悪いんだよ
135 :
774ワット発電中さん:2007/04/18(水) 07:59:29 ID:AWARh31K
>>133 小出しにするなって、
プログラムとか書き込み機とか書き込みソフトの情報を一気に出せ。
最低でも、対象、測定方法、結果を個別に書かないと
まともなレスを得られない
config っぽいな
LEDピコピコするようなテストプログラム作って動作確認
ちゃなみに config1 config2 の数値はどうなってる?
138 :
774ワット発電中さん:2007/04/18(水) 10:53:51 ID:E58V+E5E
>>135 >>136 解りました。詳しく説明します。
まず元となるHPです。
http://nonchansoft3.at.infoseek.co.jp/audio/fcount1.htm 症状は7セグLEDに何も表示されない。
原因を探してみる。
16F88の6〜12pinに電圧が出てませんでした。
74HC138、トランジスタードライバーとも動作してるようです。
20MHZOSCも発振は確認しました。32,768khzは見確認(新品を使用)
各ICへの供給電圧も5Vでした。良くあるGND忘れも無いです。
7セグLEDへのCOMへの電圧は出ているようです。16F88を交換しても
同じでした。
プログラムの書き込みは秋月のPICプログラマver4で書き込みました。
書き込みソフトは秋月のライター付属ソフトです。
その時に右側に出てくるconfig欄は変更はしてません。
プログラムはHPのを、そのまま書き込みました。
測定方法とはどのようなのか解りませんが取りあえず分周回路を
付けてないのでSGで450~600KHZを入力してみましたが変化なしです。
AsはMPLAB IDE v7.50を使用。
139 :
774ワット発電中さん:2007/04/18(水) 11:03:06 ID:E58V+E5E
>>137 asmの方は__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _MCLR_OFF & _EXTCLK
のですがconfig1、2はデフォルトのままです。従って
CONFIG1は FOSC EXTRC_RA6=CLKO WDTE Enable MCLRE RA5=MCLR
BODEN Enable LVP RB3=PGM CPD Not_Protect WRT Protection_Off
DEBUG Disable CCPMX CCP1=RB0 CP Not_Protect
CONFIG 2は FCMEM Enable IESO Enableとなってます。
>16F88の6〜12pinに電圧が出てませんでした
これはどういう意味なの?
1、 0Vが出てるのに、LEDが点灯しないという意味?
2、それともフローティングしてる?
>>139 WDTE Enable ってのが悪いように思うが?
ソースでは WDT使ってないのだろ?
136指摘のの計測方法と結果を
書かないから追加で質問がでまくる
あ、ず〜と上げてたので下げます。
>>140 1番かな?
>>143 そうすると、今度は1,17,18 ピンがパタパタしてるかどうか確認しろとなる。
たぶん WDTを使ってないプログラムなのに WDTをイネーブルしてるのが原因だろ
指定された設定通りやらなけりゃ、そりゃ動かん
で、1,17,18 ピンがパタパタしてるのに、LEDが点灯しないなら
トランジスタ、お前間違ええてつないでるだろ!となる。
で、そんな基本的な所も押えないで、ソフトのせいにしやがってとなる
>__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _MCLR_OFF & _EXTCLK
>CONFIG1は
>FOSC EXTRC_RA6=CLKO
>WDTE Enable
>MCLRE RA5=MCLR
>BODEN Enable
>LVP RB3=PGM
>CPD Not_Protect
>WRT Protection_Off
>DEBUG Disable
>CCPMX CCP1=RB0
>CP Not_Protect
>CONFIG2
>FCMEM Enable
>IESO Enable
これでいけないか
WDTE Enable >disable
LVP RB3=PGM >RB3=IO 回路図ではIOとして使用してるからこれにしないとだめ
FCMEM Enable >disable
IESO Enable >disable
しかし、秋月のライターで 普通に書けば、 CONFIGはその通り書かれる筈なんだけどな
まだ、何か隠してるな
すいません!HEXを読み込ませてたらconfig設定は
変わってました。変わった所は FOSC EXTCLK_RA6=I/O
WDTE Disable LVP RB3=I/O ここは変わってなくってFCMEM Enable >disable
IESO Enable >disable としましたが変化なしです。もう少し調べてみます。
>>149 書いたPIC挿して、 READってボタンで読んでごらんよ
それで
>>145 の結果はどうなんだ?
T1OSCENは?
きせい
電圧が出ないってどういう意味?
普通はフロート状態だと思うんだが.
ときに
>>149にアドバイスしている住民の皆は実のところ回路と
プログラムのどっちが原因だと思ってるの?
俺は95:4:1ぐらいの確率で 回路:その他(configとか):プログラム
だと思うんだが。
ソレはさておき、まずはPICがきちんとリセットされてプログラムの
実行に写っているかの確認からでしょう。
電源・GNDの配線とちゃんと電圧が出てるかは確認済み。
>>133 (ただしパスコン入れたかと聞いたのに答えてない。)
クロックも供給している。
>>133 (ただし外部発振なのでPICが動いてる保障にはならない。)
リセット回路は_MCLR_OFFで省略。(ただし、ライタ周りの設定で
しくじっている可能性もありそう。)
とすれば次はポートを1Hzぐらいの周期で信号反転させる簡単な
プログラムを書いてみて、テスタを当てて確認とかじゃないかな。
同じ回路図から起こした別の基板に同じプログラムを書き込んだ
PICをさしたとしても回路の実装によっては動かなかったりすること
はよくある。そう考えるとプログラム単体で、あるいは回路単体で
正しい/間違っているという議論をすること自体がナンセンスだと
も思う。回路・プログラム共にコピーだとしても、例えコピー元が
完璧な設計でなかったとしても、動かない責任はコピーしたやつ
にある・・・んじゃないかなぁ・・・
原因なんて、このレベルで書かれた内容からは突き止められませんよ。
質問にも答えてくれないんじゃね。
config は普通に書けば一緒に書かれる筈なので、
そもそもプログラムをPICに書き込んでないんじゃないかとさえ思ってる
なお、PICが動いているかどうかは、わざわざポート反転のコードを入れなくても
PA0〜PA2 を見れば判る。
オシロを持っていないならLEDでも付けてみればいい
ポート反転と言ってるやつはそのまま拡張して7セグとか動作確認させたいんだろう
よくみたらRA3はあいてるのね。ここにLED付けてみるほうが早そう。
>>155 >そもそもプログラムをPICに書き込んでないんじゃないかとさえ思ってる
さすがにそれはねぇー・・・とは言えないかも。
>>146 返信が遅くなってスマソ!1,17,18 ピンがパタパタはしてない。
テスターで計ったら2V〜の電圧が出てる。トランジスター回路は
正常に動作してた。色々やってみたけど解らず挫折しました。OTZ
>>160 まて、7セグのLEDは完全消灯で
テスターで2Vの電圧が出てたのは 1,17,18 ピンなんだな?
単純な配線ミスか部品選択ミスの可能性が大おおくなってきたぞ
確認の為に、LEDに1Kくらいの抵抗を直列につないで、
1、PIC 1ピンとGND で点灯するか
2、PIC 1ピンと+5V で点灯するか
3、74HC138 15ピンとGNDで暗く点灯するか
4、PIC 6ピンとGND で点灯するか
5、PIC 6ピンと+5V で点灯するか
と順に調べてみて。 LEDの±の繋ぎ方が判らないなら、反対にしてみて。
あと、トランジスタが正常に動いていたというのは、どういうふうに確認して正常と思ったのかも書いて
それと、持ってるテスターには Hzのレンジはないかな?
Hzレンジがあるなら、
>>161の試験は各ピンをヘルツレンジで測ってくれれば済むのだけど
もしLEDもない。 テスターにHzレンジもないというなら、
イヤホンに抵抗直列につないでブーと音が出るかどうかで確認してくれてもいいよ。
質問なんですけど、pic16f88のrb0ピンと、赤外線受信モジュールのout端子を直結して赤外線コードを受信したいと思っています。
その際 rb0外部割込みの立下がりで割り込みかけたいのですが、割り込みがかかりません。どうもTTLレベルLレベルになってないみたいなのです。(GNDにすると割り込みかかるので)
直結ではなく回路的になにか工夫しなければいけないのでしょか?
>>165 俺が買ってるのは、Lレベルにならないという事はないけどな。
何か勘違いがあると思うよ。
その赤外リモコン受光素子に電源を正しくつないでないとか
プルアップしないといけないタイプだとか、
>>165 受光部がTTL出力なのか、オープンドレインとかじゃないか仕様を調べる
問題なければ実際H/Lで何Vとなってるのか調べる
その結果で色々と手がある
>>165 秋月で購入したCRVP1736、150円の奴です。。H83664タイニーなどでは直結でうまく割り込みかかるんですが。
>>168 じゃあ PIC16F88の設定が出力になってるとか WeakPull-Upの設定とか
169>>
回答ありがとうございます。WeakPull-Upってわからないのですが。ちょっと検索したらそのような気もします。その場合は、プログラム的に対処できるという事でしょうか?
>>149 取り合えず、LED周辺の動作確認をしてもらいたいのだが、
1.HC138 をソケットから抜く。
2.PIC16F88 をソケットから抜く。
3.HC138 のソケットの10番ピンとGND間をワイヤーで接続
4.PIC16F88 のソケットの6〜12番ピンのどれかとGND間をワイヤーで接続
5.1桁目の7セグメントのどこかが光る筈
確認可能?
OPTION_REG
RBPU と INTEDG
172
>>169>>さん
ありがとうございます。ちょと試してみてみます。それにしてもPICって素直に動いてくれない物なのですね。リセット回路とか作らないとうまく立ち上がらない等。
16F88 は内部リセットに設定できるよ
CONFIG のとこ
秋のライターだったらMCRLE RA5=IOにする
>>161-171 HC138の10番pinをGnd 16F88の8番pinをvddに接続
したら7セグLEDの1部が点灯しました。共にICは外した状態です。
LEDは接続間違いは無さそうです。
>>175 そう。 LEDとトランジスタは大丈夫なんだね。
>>160で2Vの電圧が出てるという事で
もし入力ポートになっているなら、テスターなら0Vになるだろうから
ダイナミックスキャンしようと出力がパタパタ動いてるようだ。
次は、Y0端子がパタパタ動いてるかどうか確認して欲しい。
イヤホンでもスピーカーでもつないで音が出れば動いている。
出てないなら、HC138の4,5,6ピンの処理が間違えているのだろう。
それで点くならベース電流で動いてる
カソードコモンで組んでんじゃねーかよw
あ、ホントだ。 GND-GNDで点灯する筈なのに
GND-5Vで点灯したのか!
トランジスタがダイオードとして動いて、点いた訳か?
しかし、だったら
>LEDは接続間違いは無さそうです。
って結論はおかしいだろ! 書き間違いか?
書き間違えてないなら、結論は自分で下すなと言いたいぞ。
接続はあってる
でもパーツが間違ってるってことか
3択だな。
1、LEDをカソードコモンに変更するか
2、アノードコモンのままトランジスタを 2SCタイプに変更して PICの出力論理を反転するか
3、あきらめるか
いや!アノードコモンだから COM側はGNDになるはず!
>>182 いいか、
| アノード LEDの+側
▽
ー
| カソード LEDの-側
アノード側(+側)を束ねたものをアノードコモンって呼ぶんだよ。
だいたい、カソード(-側) を束ねているなら トランジスタに2SB使ってるのが変だろ?
同等品ってのが今回の釣りのキモだったわけか
185 :
171:2007/04/18(水) 23:20:01 ID:+75+uozX
>>175 7セグメントLEDの種類(カソードコモン/アノードコモン)が違っているので、
対処方法は
1.指定どおり、アノードコモンの7セグLEDを買ってきて交換
2.LED直前(a-g,COM)に抵抗内蔵トランジスタ(通称デジトラ)を入れて論理反転
3.以下のソースリスト修正(a-gの論理反転)を施し、2SB641の
エミッタ → +5V コレクタ → COM を
エミッタ → COM コレクタ → GND に変更。(エミッタフォロア)
ソース(変更後)
suji_table1
;-----------
retlw 3fh ;0
retlw 06h ;1
retlw 5bh ;2
retlw 4fh ;3
retlw 66h ;4
retlw 6dh ;5
retlw 7dh ;6
retlw 27h ;7
retlw 7fh ;8
retlw 6fh ;9
retlw 77h ;a
retlw 73h ;b
retlw 7fh ;c
retlw 7fh ;d
retlw 7fh ;e
retlw 00h ;f(space)
なお、結果には責任持ちまへんのであしからず。
ちょっと待って!マジかよ!店頭でアノードコモンって書いてたから
安心してたんだけどジャンク品で200円で買った。だまされたかも!
店もだまされたのかも
横に印刷されたIDにAかKが9割りがた含まれるので、店も客も
データーシートがなかろうがまず間違えないものなんだがな
今7セグLEDを10KのRをはさんで直接点灯してみた。
結果はCOM側はGNDになってた。と言う事は間違いなくカソードコモン?
今 カソードコモン(アノードコモンと思ってた)しか
無いので試しにCOM側と入れ替えてみたら点灯した。
もちろん数字にはならないが点灯確認は出来た。アノードコモンを
買ってテストしてみます。色々有難う御座いました。
まさか7セグLEDが原因だったとは夢にも思わなかった。
又結果を報告します。コメントくれた皆に感謝っす!
193 :
106:2007/04/19(木) 17:33:26 ID:fjT41p9M
>193
可能でしょう。どの程度の分解能が必要なのかは知りませんが。
12/16Fのなかから選ぶなら代表的なのは以下のでしょうか。
必要なI/Oの数から決めてください。
12F675 8pin
16F88 18pin
16F876 28pin
16F877 40pin
>>193 要件が固まってないところからカットアンドトライですすめる気とみるが、
それなら倒れないプログラムと駆動系を作ってからセンサを決定したほうがよい
そうすればプログラムが完成するころには、入力として何が必要かはっきりしてる
倒れないための情報量にそのセンサ+PICが足りてなければ、製作は泥沼決定となるしな
196 :
106:2007/04/19(木) 22:24:05 ID:go0NDwLY
>>194 入力はENC-03R系のセンサ x 1、モーターがどんだけ動いたか監視するのに x 1
出力はモータを動かすパルスを出すのに x 1、
2輪を別々のモータで制御するとしても入力 x 3 、出力 x 2 ぐらいかな。
って事は12F675でまかなえるかな〜。使用を確認させてもらいます。
ありがとでした。
>>195 ご名答です。手探り状態なもんで・・・
傾き a に対してある一定量 b だけモータを駆動させるっていうプログラムを組んで
一先ず静止状態で立っていられるように a=xb の x を決定すれば何とかならないかな〜
って考えてる程度で。。。
高さ15センチぐらいのセグウェイもどきな機構を考えてます。
>196
内部クロックを使えば入力×3、出力×2がまかなえますね。
ワンランク上の12F683なら1chだけだけどPWMモジュールが
ついてます。モータ制御するなら参考までに。
198 :
106:2007/04/19(木) 23:56:51 ID:go0NDwLY
そうか、PWMが使えた方がいいのかも。使ったことないけど
それに普通のモーターを使うとなるとHブリッジとかになって、一つのモーターに
出力 x 4。。。 後閑さんのサイトでは16C73Aを使ってるようですが・・・
すいません。各種PICの簡単機能比較リストなんて、都合のいいものないですかね?
ないですね、はいスミマセン、コツコツ調べます。
>>198 おまいはmicrochipsに行ったことないのかw
AVRならPWMいくつもついてるよ……とスレ違いな事言ってみる
いや多ピンでよければ1000円以下のdsPIC33FJ64GP706に
キャプチャ付きPWMx8あるし選択肢としてはどうかと
8bitのPICでその手の制御は難しいよ。
制御となると掛け算や倍長演算が欲しくなってくるけど
PICはキャリー付加算も出来ないからコードが冗長になりがち
多少コストアップでも、最初はH8やM16のボードでC言語で書いて実験して
成功してからそれをPICでやるにはって考えた方がいいとおもうよ
>>200 行ってみても発見できない俺がいる・・・
>>201 どもです。ヘタレほど何が難しいのかすら分からずに無茶な挑戦をして玉砕・・・
自分でも分かってるんですけどね
>>202 開発環境を整えて勉強しなおしてああああああああああ
>>203 もはや手も足も出ません。開発環境もそろえ直しっすよねぇ?
>>204 感謝感激です!
>>205 それをいっちゃ〜 orz・・・
dsPICで再出発するかAVRとかに流れるか・・・
皆様アドバイスありがとう。もうちょい試行錯誤してみますね。
PicBasicコンパイラのスレ立てていい?
>>207 PicBASIC限定にすると、すぐにネタ切れになっちゃうと思うんだけど。
アセンブラ、C、BASIC、PASCAL…とPICのプログラミング言語全般にするとか、
いろんなマイコン(PIC、AVR、H8…)のBASICスレにするとか。
でも、どっちにしても他のスレとかぶるところがあるか…
>>206 AVRへの移行は簡単だぞ、いまではWinAVRでC++が無料でデフォだ。
ちなみに俺はPICとAVRの両方使ってる。
PICBASICって使ってる人いるの?
mikroBASICあるから十分だと思うんだけど。
追記
だれか16FのPICでこれを作ってくれw
212 :
192:2007/04/20(金) 22:23:15 ID:UdQq95/a
7セグLEDを交換したら表示出来ました。でもPICに負荷がかかった
のか表示がでたらめに・・・・PIC交換で復活しました。
今度はIF周波数が450khzになってるんですけど455KHZに
変更するのはどうするのか調べてます。picって奥が深いなぁ〜!
213 :
192:2007/04/20(金) 22:59:45 ID:UdQq95/a
dec_1000
movlw 0d0h
subwf data_s0,1
movlw 01h
btfss STATUS,0
subwf data_s1,1
btfss STATUS,0
subwf data_s2,1
btfss STATUS,0
subwf data_s3,1
movlw 0ddh
subwf data_s1,1
movlw 01h
btfss STATUS,0
subwf data_s2,1
btfss STATUS,0
subwf data_s3,1
movlw 06h
subwf data_s2,1
movlw 01h
btfss STATUS,0
subwf data_s3,1
return
多分ここを変更すると思うけど・・・・!挫折 OTL
214 :
774ワット発電中さん:2007/04/20(金) 23:42:24 ID:8iXuguVm
>>213 そのものズバリ dec_450 ってサブルーチンがあるみたいだが?
216 :
192:2007/04/21(土) 00:59:01 ID:PmeWFUxP
>>215 そこは知ってるよ!上のと同じ。どこを変更するのか
解らない泣;
dec_450
movlw 0d0h
subwf data_s0,1
movlw 01h
btfss STATUS,0
subwf data_s1,1
btfss STATUS,0
subwf data_s2,1
btfss STATUS,0
subwf data_s3,1
movlw 0ddh
subwf data_s1,1
movlw 01h
btfss STATUS,0
subwf data_s2,1
btfss STATUS,0
subwf data_s3,1
movlw 06h
subwf data_s2,1
movlw 01h
btfss STATUS,0
subwf data_s3,1
return
217 :
192:2007/04/21(土) 01:00:24 ID:PmeWFUxP
ちょと上げてみたw
>>216 名前は dec_450 で450を引く様に感じるが、引くのは Hz 単位。
つまり、450000(06ddd0h) を引く。
さぁ、もう一度そのソースリストをよ〜く眺めて味噌。
219 :
192:2007/04/21(土) 09:43:15 ID:HJmjxt43
>>218 う〜ん 最近始めたのでソースリストの解読は
難しいです。具体的に宜しくです。多分06ddd0hは
10進数とかで書かれてるのだと思うのだけど
それが解れば変更出来るかな?
16進数だけど・・・・・
calcとかで確認すれば
movlw 06h
movlw 0ddh
movlw 0d0h
222 :
192:2007/04/21(土) 10:08:44 ID:HJmjxt43
今関数電卓で16進数で計算したら6DDD0となりました。
近い数字になるけど割り当てはどうすれば良いのかな?
すこしは考えろ そのくらいできるだろ
PICスレって奥が深いなぁ〜!
おんぶにだっことはこのことだな
226 :
218:2007/04/21(土) 14:29:17 ID:R6Xeuatf
ソース眺めればリスト中の
>>221 に直ぐ気付くかと思ったのに… orz
450000 -> 06 dd d0 h
455000 -> 06 f1 58 h
今度はコンパイルの仕方が・・・・・・・・
>10進数とかで書かれてるのだと思うのだけど
ム板でよくあるのが
「メモリに10進数で書き込んできるのを16進数で書き込むようにしたいのですが、どうしたらいいでしょう?」
「書き込んだ値に10進も16進もあるかい!」
229 :
192:2007/04/21(土) 21:02:44 ID:p6pZZt7/
>>226 返信が遅れました。IFを455KHZに設定
できますた。気がつかずスマソOTZ
ム板ならCOBOLとかPコードってオチかもしれず
>>228 10進数がBCDで書き込まれてるのかも知れない
どっちもアスキーコードで書き込まれてるのかもしれない
232 :
192:2007/04/21(土) 22:16:59 ID:OtmKOela
0h 0h 0hで普通の周波数カウンターになりました。
解ると面白いぞ!!
判った判った。 さあ次の人どうぞ
>>230 >>231 そうそう、こういう大ボケが後を絶たない。
値をどう解釈するかは取り出して加工する側の問題で、書き込まれてる値とは
関係ないことを理解させるのに苦労するんだよ。
いや、でもここでの文脈では、メモリ上じゃなくて
アセンブラソース上ってことだろ
どちらかというと
>>228がぼけをかましている
ついでに2進数ですらないってことも説明するべきだろうしな
こないだメモリにつなぐアドレスとデータの線はどんな順序でも
いいんだと説明しているのにどうしても理解できない奴がいた
そいつは次にGPIOを適当な順序でつないで怒られてたから
今でも理解できてないようだ
>>236 メモリって、ROMでそれやられる前にきちんと教えた方がいいぞw
238 :
774ワット発電中さん:2007/04/22(日) 08:03:59 ID:Z2PqKJIk
7セグLEDへのポート変更で解らなくなった。セラミックOSCを
使ったらRA6が使えなくなる為RA3に変更しなければ
いけないのだけどソースを見てもそれらしき場所が解らないでつ!
ココにそれらしきソースを見つけたけど・・・・・・
port_set ;RA0,RA1,RA2,RA3,RA6(OUT)
;RA4,RA5,RA7(IN)
;RB0,RB1,RB2,RB3,RA4,RA5(OUT)
;RB6,RB7(IN)
call banksel_1
clrf TRISA
bsf TRISA,4
nop
bsf TRISA,5
nop
bsf TRISA,7
nop
clrf TRISB
bsf TRISB,6
nop
bsf TRISB,7
nop
call banksel_0
return
?です。
又 挫折しました。よろしくです。
参考資料
http://nonchansoft3.at.infoseek.co.jp/audio/fcount1.htm ;RA0,RA1,RA2,RA3,RA6(OUT)
;RA4,RA5,RA7(IN)
;RB0,RB1,RB2,RB3,RA4,RA5(OUT)
;RB6,RB7(IN)
そこはセラロックにしない、で全て解決
PICのカウンタは、マスタークロックと同期しているので、
最終桁の数字がブレたりとか碌な事にならない
>>239 PICは単体で動作してるの? 結線しなければピンを手でさわるだけで
割り込みとかかかるはずだけど
RB0はちゃんと入力(1)になってるね?
>>239 RB0に抵抗つないで、テスターで電圧計って、出力抵抗を計算してみたら?
もしかして、出力ポートにわざわざしてるんじゃないの?
>>241-242 set_TRIS_A(0b00000001);
set_TRIS_B(0b00000001);
ext_int_edge(H_TO_L) ;//立下がり
プルアップしたボタンでGNDにショートすると(5v→0v)割り込みはかかります。赤外線モジュールのout端子とrb0繋ぐと最初から0vなので割り込みかかりません。
┐(´д`)┌
ハード的なことは弱いので宜しくお願いします。
ネットでの独学も限界かと思い、参考書買おうと思うんですけど
「C言語によるPICプログラミング入門 」
とか
「CによるPIC活用ブック」
あたりが評判よさそうなんでげすが
使ってるCコンパイラがMikroCなんで対応書籍が無く、
どうしようかと悩んでいるとこであります。
ANSI準拠ならPIC関連の参考書でなくてもいいのでありますか?
>>246 受光素子はプルアップしてません。プログラムで内部プルアップあるなし等でいろいろやりました。
mikroCはヘルプに詳しいこと書いてからいらないだろ、それより何を作りたいのか決めた方が良い。
>>247 RB4-7のピンではどうよ 他のPICでやってみるとか
INTCONの設定もちゃんやった?
>>247 センサーをRB0に繋げて、
set_TRIS_B(0b00000001);
を実行したら割り込みマスク+無限ループする様にして、
その状態でRB0の電圧を測るとどうなる?
ポートの構造上、出力モードになっていても
>>243 みたいに
無理矢理スイッチでLowにするなどして、指定されたエッジを
検出させたら割り込みは発生するよ。
>>238 /,. -‐'⌒ ̄⌒ー-、 \ \
/':.:.:.:.:.:.:.:.:.:.:|.:.:.:.:.:.:.:\ ヽ: /_/
/.:.:.:.:.:/:.:.:.:,:.:.:|:.:.:ヽ.:.:.:.:.:.', } /:.:.|
l{:.:.:.:|:.l:.:.:.:/l/'ハ:、.:.:ヽ.:.:.:.:} .{::.:.:.:.:l
ハ:.:.:.|:|:.// ノ ‐ヾ\_|l.:.:.:i }::.:.:.:.:.',
ヽ:.:.{. ,:=、 ==、 ノ.;./ /::.::.::.:.:.:.',
ヽゝ 、 ソ!※}::.::.::.::.:.:.
{ `ヽ、ヽフ /イ /‐、_:.:.:.:.:.:.
f^)^)^)^)^)^)^)^)^)^)「-、_,{※} r′ヽ:.:.:.:.
r''⊇、 l|ヽ_/ } t′ ',:.:.:.
{ =='、 知ってるが l|!;r'!※{ t′ ',:.:.:
ハ,,_う´ l||;;l}. {,コ !:.
_{'V|l お前の態度が l||;;;{※.},コ !、
ゞ |l l|.l;;{ },コ }
\,,|l気に入らないですぅl| L{.※{,コ /|
|l________l|,rn} },コ\ / 〉
まぁ、
>>240 も書いてるが、セラミック振動子を周波数カウンタに
使うのはお薦めできない。
夏や冬になると表示が狂う可能性有り。
どうしても使うなら水晶発振子で。
ヒント: sel_clear main_loop2
251 :
774ワット発電中さん:2007/04/22(日) 14:50:27 ID:8NZ8r2a8
間違えた翠星石?
253 :
774ワット発電中さん:2007/04/22(日) 16:01:07 ID:yfuzcL9/
精度要らないならセラロックで十分>カウンタ
>>250 ポートが入力になってないってことですか?set_TRIS_B(0b00000001);以外に何かやる事があるのですか?ちなみにCCS−C使ってます。
255 :
774ワット発電中さん:2007/04/22(日) 19:00:32 ID:0YrzPu2M
PIC16F84以降のPICは、使うまでの儀式が増えたからなぁ。
アナログきったり、いろいろいろいろ。
めんどいし、GCCが使えるのでAVRに転ぶ気がよくわかる、
ccsでset_tris_bしても#use fast_ioしてないと勝手に変わっちゃうよ
AVR=84A?
>>255 面倒なのもあるけど性能がいいのと内部が使いやすくなってるしね。
Tiny2313が秋月で120円・mega48が苺で300円と値段もPICより安くなったのとISPが使いやすいしな。
確かにISPできるはいいね。ちょっとしたもので安いTiny2313なら
ソケット無しで直付けして使ってる。
PICもISPできない事はないようだけど、クリスタルオシレータを
使うときはどうすればいいのかな
>>256 今まで、グローバルエリアで#use fast_io定義してたのですが、main関数内でset_TRIS_Bの直後に#use fast_io書いたら割りこみかかりました。ありがとうございました。
set_TRIS_A(0b00000001);//0・・出力に。1・・入力に。
set_TRIS_B(0b00000001);
#use fast_io(a)
#use fast_io(b)
261 :
774ワット発電中さん:2007/04/22(日) 20:17:41 ID:yA7GXBIb
262 :
774ワット発電中さん:2007/04/22(日) 20:19:43 ID:KGPO+ZfG
>>261 自分もLEAP使っている。
本家のやつもLEAP社が作ってOEM供給しているから
LEAPも本家も基本的には同じ物。
当然ファームのバージョンアップも無問題。
安心して使え。
263 :
774ワット発電中さん:2007/04/22(日) 20:22:15 ID:0YrzPu2M
>>261 使っています&バージョンアップ実際にやりましたっていうか、確かPStartがOEM先がPICSTARTだったような気が。
264 :
261:2007/04/22(日) 20:44:39 ID:yA7GXBIb
265 :
774ワット発電中さん:2007/04/23(月) 01:24:32 ID:/26VwTIH
ちなみに古い奴17C44使ってる奴をフラッシュに変えるためのアダプタ。
何故か3000円もするが、単に64ピンQFPを40ピンDIPに変換しているだけ。
ちょっす。
今MikroC評価中なんですけど
")" expected but ; found
ってエラーが 「;」使ってない行に出まして、構文エラーでいいのですか?
実は昨日からC始めたんですけど、「+なんか使ってねえよ!」って
キレそうです。再インストールしたけど同じ。CCS買った方がいいかな
>>266 単にカッコの数が合わないよって意味じゃないのか?
エラーコードでリスト作って、表示するときに画一的に意味を表示する
だけだろうから。
その辺にエラーがあるってことだけ分かれば充分でね?
どもです。お騒がせいたしまして直りました。
訂正「+なんか → 「;なんか
カッコの数は同じだったんだけど、変数の宣言を直したら直ったっす。
結局の意味はわかりませんでした。
ところが書いたプログラムは50行に満たないのに、
Demo limit と出てコンパイルできませんでしたとさ。
これで2kワードとは…
浮動小数点つかったから?
さて、どうせ金払うなら CCSにするか それともMikroCで行くかなやむなあ。
269 :
774ワット発電中さん:2007/04/23(月) 08:24:09 ID:+v/PsqAi
>>269 意欲的な人がいるモンですねー。
残念ながら使いたい型のPICが対応してなさそうなので…。
CCS高いからホントはフリーので使ってみたいんですけどねー。
保守料ってなんだYO!みたいな。
でも日本語の参考書がたくさんある現実は捨てがたい…。
というか浮動小数点って相当複雑な計算してるんですね。
floatを3個作ってそのうち1個を比較しただけでHEXワード数が1978とか行きました。
Sin と 小数点の積なんか使ったら、
MikroCのデモ限界2000ワードを超えて
いくつになってるのかわかりません。
にわかに信じられないんですけどそういうものなんですか?
そんなもんだよ。
っていうか、PICで浮動小数点演算を行わせようとする時点で(ry
CCS Cなあ。年間メンテナンス入ってないと30日間しかアップデート
できないとかハァ?って感じだな。つか対応プロセッサの追加とか、
本来の意味でのアップデートはいらねーから、致命的なバグの
バグフィックス位はメンテナンス契約の有無にかかわらず提供すんのが
道理だろと。
CCS-Cはねぇ
何だかんだ言いながらPIC用のCでは最も完成度高いからね〜
売る方も客の足元見ちゃえるんだよね
商売の力関係なんだから、それに文句を言っても仕方ないと思うけど、
日本で後閑さんが、アマチュアの工作者向けに、
この非常に維持費の高いコンパイラを、その事実を隠してプッシュしてるのは、
いただけない話だよね〜
Wiz-Cが値段が安いから、まあ値段なりに納得出来ると思うよ。
ただ、便利機能はクセがあるから使い方に慣れないと逆にメンドクサイね
・ 便利機能は無視
・ 全部BYTEでしか使わない
・ for文はマニュアルで推奨された方法でしか使わない。
・ ビット操作をとにかく使う
・ 引数なんてもんは使わない グローバル変数で渡す
・ 帰り値は使うならBYTEのみ
高級アセンブラとして使えば、エミュレータが秀逸だから、事前デバッグがとても楽
あとWiz-CのUNICODE対応は気持ち悪い出来だから無視した方がいいだろな
Wiz-Cは割り込みが(ry
277 :
774ワット発電中さん:2007/04/23(月) 11:36:52 ID:jxlXmUnq
意欲的なのは良いけどCCSCやmikroCやWiz-C買うのはやめてやめとけ。
自分はmikroBASIC買いかけたけどPICにC言語自体……。
数万出してアレを買うならAVRを勉強してフリーのWinAVR(C++)を使ったほうが後々にもいい。
278 :
774ワット発電中さん:2007/04/23(月) 11:38:49 ID:jxlXmUnq
誤:買うのはやめてやめとけ
正:買うのはやめとけ
orz
あ。。ども。 なんか噴出してる…w
確かにGさんの本は比較対照にわざと競合外してる感があって営業っぽい感じがしますねえ。
なんかマイコンの選定から始めたほうがいいみたいですね。
ここ数日の投資が全部無駄になりそうだけどw
>>277 まあ勉強なら、最初はH8/M16あたりのボードからやるべきだろうな。
ただ、ADC付で小ピンでとなるとPICの独断場で、選択肢にどうしても入ってしまう。
しかしPICはアセンブラで書くとなるとメモリバンク操作がとにかくバグを誘発し易いから
C言語を高級アセンブラとして使えば、だいぶ楽になる。 そういうサイズのコードを
書かないならアセンブラで十分。
C言語を再利用性とかの観点からPICに導入したらそりゃ失敗だ。
281 :
774ワット発電中さん:2007/04/23(月) 11:52:14 ID:jxlXmUnq
282 :
774ワット発電中さん:2007/04/23(月) 13:10:41 ID:6n2JLOxu
SourceBoostいいよ。安いし。
SourceBoostはライブラリ関数が(ry
・・・って最近のはシラネ
>>281 ゴルァ!直リンするなって書いてあるだろ!
こういうのが居るからAVRユーザのイメージが悪くなる。
初心者向けとしてAVRを推していくなら、この手のユーザが増えはしても
決して減らないと思うよ
その分メジャーになったってことなので、悪いイメージのレッテルは
我慢するべきこと
>>281 やっぱ手元の評価ボードが無駄になっちゃうからPICで行くことにします。
情報ありがとう。
で、コンパイラですが、mikroC、ヘルプは英語だけど素直な英文らしく、
翻訳サイトに突っ込んだらかなりまともに日本語化してくれるのでとりあえず必要なところは読めてOK!
保守料払ってまで、しかもタイプごとに小分けして…なんてのに金払うより
安くてほとんどのPICに対応しててANSI準拠なmikroCで
とりあえずCの勉強しながら進化しようと思います。
ソフトとしては一長一短なんでしょうけど。
浮動は…スムーズに加速させたかっただけなんですよ。
記述が1行で済みそうだからやってみたんですけどねー。
288 :
774ワット発電中さん:2007/04/24(火) 00:20:30 ID:e6+VzRPE
>>287 掛け算禁止。
割り算禁止。
どうしても掛けたい時は、左シフト
どうしても割りたいときは、右シフト
>>284 >こういうのが居るからAVRユーザのイメージが悪くなる。
いや、わざわざPICスレに勧誘に来てる時点で、もう(ry
初心者質問スレとか見てると、昔はPICスレからの勧誘カキコが
多かったのに、今はAVRスレからの勧誘カキコの方が多いんだよな。
必死なぐらいw
まぁ、78k・Renesus・PSoC・ARM・MSP430 スレからの勧誘が
皆無な事を鑑みると、
>>285 のとおりユーザが増えたんだろうな。
>Renesus・ARM
PICとレンジ違うからそこのユーザーがPICユーザー勧誘する意味なし。
>PSoC・MSP430
PICとターゲット違うからそこのユーザーがPICユーザー勧誘する意味なし。
なだけだと思う。
AVRとPICはモロ競合なのでちょっかい出される。
個人的には
旧PICは新たに初心者には薦めない。Cとか使いにくいから。
新PICは新たに初心者に薦めるけど、まだ応用例が心もとない。
応用例が既にある場合、AVRでも薦める。
って感じなのだが。
はっきり言って秋月ATTiny2313がなけりゃあまり薦めない。
>>287 mikroCのANSI C準拠な部分って・・・哀しくなるほど。
え、そうなの?
どれがまともなコンパイラなんだ〜。 ハイテク?
294 :
774ワット発電中さん:2007/04/24(火) 03:20:20 ID:znQ+moH5
だから、PICで C言語なんかつかうなって
PICはやっぱ変態アセンブラだろ
じゃあベーシックで。
つか今ケロロ軍曹見ながらテストしてたんだけど、
飲んでたコーヒー吹き出して基盤…の3センチ横がびっしょりになりました。
速攻ビニール袋に格納しますた。
297 :
774ワット発電中さん:2007/04/24(火) 08:28:01 ID:e6+VzRPE
>>293 WinAVRは、GCCなので、かなりまとも。
>>297 元レスの3つの浮動小数点と1つの比較するHEXは
どのくらいのコードサイズになる?
299 :
774ワット発電中さん:2007/04/24(火) 09:09:29 ID:aCfaIyj/
今まで秋月のPICプログラマver3を問題なく使っていました。
それをPICプログラマーVer.4『バージョンアップキット』にしたら、
例えば、PIC16F876を焼くときに、
マイコンがソケットに正しくセットされていません。
キットの組み立て直後の場合は〜
とエラーが出るようになりました。
COM1:AE-PGM877 V6.50
PICプログラマV4 V6.5.68
でソフトは正しいはずです。
同じような現象を尚した方がいたら教えてください。
>キットの組み立て直後の場合は〜
その先は?
Ver.4モジュールがおかしいんじゃない?
302 :
299:2007/04/24(火) 10:10:49 ID:aCfaIyj/
>300
キットの組み立て直後の場合は製作にミスがある可能性があります。
メニューバー⇒ヘルプ⇒政策確認資料をご覧になり確認を行ってください。
です。
なんか、モジュール引っこ抜いて再度入れたら動きましたよ。
なんか不安だな。。。
ICソケットの接触不良だったんじゃね?
糞スレ禁止!!
かるさん、それがごみレスって言うんです。
華麗にス(ry
PIC16F785どっかで買えない?2〜3個で良いんだけど
Directはクレジットカードが要るみたいだ
Digi-Keyにあるだろ
何か買うついでに紛れ込ませておけば良いんじゃねぇの?
>>307 特定アプリケーション/特定ユーザー向けに作ったカスタマイズ版を外販しちゃったっぽい石だね
307です。
>>308 ありがとう。調べてみます
>>309 内蔵オペアンプがうれしいおまけなんです
PICを初めて扱うのですが、
フルカラーLEDの制御回路を考えています。
60秒ごとにはっきりと色が変わるもので、
PMW制御とか難しいことは考えていません。
どなたか回路作りのヒントを下さらないでしょうか?
3色なら直結でもいけると思うが
それともソフトが分からんのか?
>>312 本当にPICが初めてで。
ソフトも分からないのですが、
クリスタルなどは必要ありますか?
>>313 PICにもよるけどセラロックで十分かと
っていうか、本買ってやったほうがいいよ
>313
60秒というのがどの程度正確に必要なのかにもよりますけど、
クロック精度1%程度なら内蔵クロックが使えるものもあります。
というよりPICの開発環境は大丈夫ですか?PICライタとか。
>>314 ありがとうございます。
本は買ったのですが、理解力に欠けているみたいですorz
>316
どの本買いましたか?
>>315 制度5%以内なら大丈夫なくらい大雑把ですw
ライタについては秋月のものがあります。
>>319 とりあえずライターはあるのか?
その本は見てないけど、LEDチカチカの実験はあるみたいだから、
訳分からなければその通り作ってみたらいいと思うが
>319
後閑さんの本ですね。picマイコン使いのなかではとても有名な方です。
ご存知かもしれませんが著者のサイトは
ttp://www.picfun.com/ 私はその本は持っていないのですが、
ttp://www.picfun.com/picbookC.html をみると第二章にLEDの点灯の項目があるようですね。
3色フルカラーLEDといっても、普通はただ単に4本足が生えていて
うち一本がアノードコモンまたはカソードコモンとなっています。
コモン(つまり共通)となっていない側の端子はそれぞれの色のカソード
またはアノードとなっているので、回路的には別々のLEDがくっついて
入っていると考えればよいです。
なんかわかりにくい文章でごめんなさい。
コンパイラーは何使ってるの?
>>320,321
その通り作るとなると、
まったく分からないのでPICを3つ使用することにw
質問攻めにして申し訳ないですけど、秋月ライタのVer.4バージョンアップキット
もちゃんと買いましたか?多分8ピンpicだとバージョンアップしないと書き込め
ないと思うので。
あーごめん、アマゾンのコメントにCコンパイラ前提ってあるな。
アセンブラで十分なので
>>321のサイトとかで勉強すればいい。
ハードは後回しにして、MPLABいじくり回すとかやってみれば?
>>322 すみません。初めてなので、
できればお勧めのコンパイラーを教えていただければ(ry
>>324 とりあえず無理に8pinで構成しようとは思っていません。
なるべく分かりやすく16F84などで作ろうと思っています。
>>325 本当にほぼ0からのスタートですw
本すらよく見ていませんでした。
>327
どうもまだ、なにが分かってて何が分かっていないのかも把握していない状況のように
見受けられます。まず何か作ってみてはどうでしょう。
最初は1個のLEDピカピカぐらいの本当に簡単な回路からはじめるのがおすすめです。
教科書どおり作ったつもりでもなぜかうまくいかないというのはよくある話ですので。
8ピンPICへの書き込み環境がないのなら、とっても古典的な入門パターンになりますが
言語はアセンブラ、picはPIC16F84A、参考書は
ttp://www.picfun.com/picbookA.html がおすすめです。おすすめサイトは>3のあたりでしょうか。後はGoogle先生・・・
>>329 点滅からの入門ですか。
参考書については、考えてみます。
>>331 正直に言いますと、作ろうとしている回路のLEDの発光は、
チカチカ × 3 で簡単に出せるので、
まずはそこから勉強していきたいと思います。
丁寧にありがとうございました。
>>333 ありがとうございます。
金銭的に余裕が持てたら、購入したいと思います。
>333
I/Oの数って、6ピン以内で何とかなってしまうことも多いんですよね。
そうすると今度はI/O節約自体が楽しくなってくる。
で、気がつくとPIC12F683に74HC595がたくさんつながってて、俺は
一体何がやりたかったのかと・・・
337 :
774ワット発電中さん:2007/04/30(月) 12:45:15 ID:PauWIQzz
テーブル参照で使用する
RETLWの動作がわからないんです。
PCL、PCLATH?
本読んでも解らない
7セグ表示で使いたいんですけど
やっぱ動かしながらSIMでレジスタ
の変化を見て理解するしかないのかな
RETLWの動作って Wレジスタに 何か入れてCALLで呼んだ次の行に戻るって動作だけだと思うのだけど
PCLレジスタってのは今実行している次のアドレスが自動的に入っているので(PICが勝手にやってる)普段は意識する必要がないのだな
多分参考にしているPIC本に例が載っているので、始めはそのまま実行してみる方が良いかもね。
>336
ありがとう。ちょっと自信がもてました。
>337
RETLWは単純にRETURNとほとんど同じだけどWレジスタの値が
書き換わるだけです。
分かっていないのは多分PC(プログラムカウンタ)の概念かと。
PICのなかにはPCといって現在実行しているプログラムの番地が
記録されているレジスタがあります。GOTOとかRETURNとかの命令
はそのPCを書き換えることによってジャンプを実行しています。
さて、このPCなのですがジャンプ命令以外のMOVWFとかADDWF等の
命令で直接書き換えてもジャンプが出来ます。
RETLWのテーブルはこの方法を利用しています。
しかし、実を言うとPCは13ビットのレジスタです。これに対してPICが
MOVWFなどの命令で直接書き換えられるのは8ビットまでなので
不都合が出てくる。
例えば今H'00F0'を実行していてH'0100'にジャンプしたいとき下位8ビット
だけ書き換えてしまうとH'0000'にジャンプしてしまう。こういった事態を
防ぐためには下位8ビットと上位5ビットを同時に書き換える必要が
出てきます。
そこで、PIC内部ではPCの下位8ビットを直接読み書きできるPCLレジスタ
のほかに間接的にPCの上位5ビットに書き込めるPCLATH(PC Latch High)
レジスタが用意されています。
PCLATHレジスタは値が書き込まれてもすぐさまPCに反映させることは無く
PCLにMOVWF等の命令で書き込みがあったときに、それと同時にPCの上位
5ビットを書き換えます。
先の例ではまずPCLATHにH'01'を書き込んでおいてPCLにH'00'を書き込めば
それと同時に上位5ビットも反映されるので無事H'0100'にジャンプすることが
出来ます。
長文スマソ。暇なもんで。
参考
ttp://www.picfun.com/memory02.html
340 :
774ワット発電中さん:2007/05/01(火) 07:55:34 ID:14n8lqh/
>339
337です。
有難うございました。
pic関連本ではここまで詳細に解説した内容が記載
されておらず悩んでいました。
つか、pic関連本のデバイスの説明って、たいていデータシートのサブセットでしかない
>341
まぁ、日本語で書いてあるだけでありがたく感じる人間もいるんですけどね。
自分みたいに。
PICのデータシートを日本語に翻訳して公開してくれる人いないかな。
AVRの翻訳済みみたいなのがPICにも欲しい。
データシートくらい英語で読めよ
俺は高1の時に16F819のデータシート読破した
んだ
最初は全部わからなくてもいいんだし
尻込みして欲しくないね
文学作品じゃあるまいし英文データシート読めないなら電子工作諦めろ
>343
それこそPIC関連本のデバイスの説明でいいでしょう。12/16シリーズ
はどれも大体同じだし、違うところだけデータシート読むというスタンスに
私は特に不満を感じませんが。
>344
少なくともマイクロチップの日本語データシートは記述がところどころ
怪しいと思います。もちろん取っ掛かりとして有用だということは否定
しませんが・・・現に私も87Xのデータシートにはお世話になりましたし。
>345-347
別に>343は英語のデータシートが読めないとは言ってないと思うのですけど。
そういうの屁理屈っていうんだよ
>349
そうですかね。英語が読めないから日本語の文献がほしいと思うのと、
英語の文章も読めるけど日本語の文献がほしいと思うのにはずいぶんと
違いがあるように思うのですが。
少なくとも日本でPICがそこそこ普及しているのは、16F84の日本語データ
シートがあったことも大きいと思いますよ。
後だしでそんな条件つけちゃだめだよ
>351
「条件」とは具体的にどの内容を受けてのことでしょうか?
私は>343の書き込みは英語のデータシートが読める人物によるものだと
解釈したのですが、>345-347はそれとは違う解釈をしたのですよね。
コテ書いてないけど
あんた lightなんとかっていうのか?
ところで「PICkit2 Clone」作らないか?
>353
いいえ。確か前々スレにいた人ですよね。
親戚縁者、同僚、学友、友達?
同じ臭いがする
>少なくともマイクロチップの日本語データシートは記述がところどころ
怪しいと思います。
怪しくない日本語翻訳版データシートというものにはなかなか出逢わんね。Intelなんか笑っちゃう位酷いものだった。
きちんと翻訳や校正ができる位のレベルの奴に翻訳/校正作業なんていう付加価値の低い仕事はさせないという、いかにも欧米系な合理主義もあるのだろうが
358 :
774ワット発電中さん:2007/05/01(火) 19:24:13 ID:dWldGxFA
いまどき日本語のデータシートを容易しないことで失うビジネスチャンスなんてゴミ以下。
毛唐連中は中国語への翻訳に掛かりっきりだ。
359 :
774ワット発電中さん:2007/05/01(火) 19:37:24 ID:VEZ/Lr+P
>>358 だな。
サイトに行っても、たいてい、切り替えボタンは
English
German
French
中文
の4つだ。
でも中国人なら余裕で英文読むんじゃないか
簡体中文以外は不要だ
362 :
774ワット発電中さん:2007/05/01(火) 19:52:04 ID:VEZ/Lr+P
>>360 不謹慎だが、戦争に負けたときに、公用語を英語にしてほしかったと思う。
>>360 コピー商品作ってる連中は英語ダメダメだから
365 :
774ワット発電中さん:2007/05/02(水) 23:25:22 ID:z6+FvMcX
PICで6桁LED時計作りたいのですが
もすすめのページないっすか?
普段はAC100Vの周波数を計っておいて、停電中だけ水晶で動かす方が精度はいいよね
>367
なるほど。盲点でした。
そして引越し先で・・・時計が早く動く!?
水晶は、正確にどんどんずれていくからね。
コンセントの50Hzは数ヘルツずれたりするけど、一ヶ月のパルス数調整するのでほっといても分単位なら遅れ進みなし。
370 :
774ワット発電中さん:2007/05/03(木) 03:04:19 ID:PT6HmuhX
ノイズの誤カウントで進むことになる。
内蔵クロックで50Hz/60Hzの判定とノイズブランキングを行えばよい。
CDSを使って明るさを感知したいんやけど出来るかな?
条件として
PortBを内部プルアップした状態。
暗い状態は1、明るくなると0
A/Dは使わない。
外付け部品は極力少なく。
感度調整用VRは使う。
秋月の安いCDSを使って、スイッチの様にON.OFF出来たら最高です。
明るさでsleepから復帰するとか使えるしね。
コンパレーターもだめか?
コンパレーターを使うとsleepからの復帰が無理じゃない?
単純に電源からグランドまで順に抵抗−VR−Cdsと繋いで、VR−Cds間にポートを繋げると無理か?
スリープ機能 使ったことがなかった
復帰しないのか そうなのか
>>374>>375 コンパレータでSleepから復帰できるぞ。
データシートのComparator Interruptsを参照。
CMIEてのがあるね
CDSの抵抗変化は劇的だから、 コンパレータ無くても
>>374で十分だろう
ただ、欠点はCPUがスリープしていてもCDSのオフ時数10Kの抵抗で電流が流れてしまう事
だから、電池を長時間持たせないなら
PICを38Kとかのクロックでタイマー動かして一定時間毎にポートを見る方が長持ちするかもね
CDSと小さいコンデンサCを並列にして
port
-R--+----CDS---+---gnd
+---- C ----+
PORTをH にして出力し、Cに充電出来たら 入力ポートにしてポートを監視
Lになるまでの時間を見れば、ポート1本である程度の明るさ検出も出来るぞ
>>378 おーー、すばらしい。
なるほどいいアイデアだな。今度使わせてもらうよ。
ポート2本使って似たようなことをしたことあるけど。
でも、Cdsの電圧そのものをポートで駆動すれば、Sleepに入る前に
ポートLにすれば、暗電流も減るけど。どう?
>378
同僚からは匠と呼ばれてる?
382 :
技術奴隷:2007/05/03(木) 14:44:26 ID:mHqv4oPE
>>379 CDSの回路をOFFにしてスリープしてしまうと、「明るさでスリープから復帰」
が出来ないので、適当な周期で監視する必要が有るんじゃないかな。
時間精度を気にしないなら、WDTでスリープ解除して明るさを調べれば
普通のクロックでも消費電力を減らせるけどね。
>>379 ポート2本使って CDSの電圧を切ってスリープって事は、
P2------------R2----+
|
P1--R1--+----CDS----+
|
C
|
GND
こんな配線かな?
1、 P1,P2を入力に、 P2のプルアップ抵抗をオン、 P1はプルアップ使わない
2、 スリープ
時間がたてば P2の内部プルアップ抵抗経由でPCが充電されHになりスリープ解除
3. スリープ解除したら、一定時間待って、
4 P2をL にして P1がLになるまでの時間を計ればアナログ量が測定出来る
5 こんどはP1をLにしてCを放電
6 1に戻る
訂正:
× 工夫すれば暗電流は数μAに抑えられる
〇 工夫すれば明電流・暗電流とも数μAに抑えられる
暗電流だけ抑えてもしょうがなかった・・・
VDD----R1----VR-----+--ANPort
GND----R2----CdS----+
こんな感じにして、R1,R2を1MΩくらい、コンパレータのリファレンス電圧をVDD/2、VRをCdSの明抵抗と暗抵抗の中間にすれば、センス電流は最大でも数μAで済む。
ただしコンパレータ出力のソフト的なノイズ対策(例えばリファレンス電圧の一時的変更によるソフト的シュミットトリガ)は必須。
5Vならだけど、
電池2本で動かすような場合は、貫通電流はそんなに心配するほどじゃないけどな
でもコンパレータとして使えば中途半端な電圧OKってのは不思議だね
あと、コンパレータ使って数uAってどうやるの?
内部で比較電圧作ると50uAくらい流れるよね。
比較電圧を外部で作るのかな?
まあ、アナログ部品が入ると省電力は難しい。
色々やってみるしかないからな。
だんだん、高度なテクニックになってきましたよ。
sleep中にTIMER回して定期的に起こす。
そんでもって、コンデンサに充電し、放電時間をはかる。
省電力優先なら起こす時間を伸ばす。
てか、sleep中にTIMER動かすのは電気食い?
LEDを光センサーとして使うって一時期流行ったよねw
>>387 コンパレータ使うには、比較用の電圧作るために内部に抵抗が必要で
それは 2K*24 か 2K*32 Ω なんで、この電流の事を考えると
32K内部発振持ってるPICなら 一定時間寝てた方が少しマシかも
>>386 数uAは外付回路の消費電流。その他に基準電圧が必要で、指摘のとおり内部生成すると数十uA食う。なので、タイムラグがあっても良いのならばWDT等で間欠的に起きてチェックするほうが平均消費電力が低くなるので第一候補・・・というのが
>>384の趣旨。
WDTでも数uA〜10uA程度食うから、Ultra Low-Power Wake-Upが使える品種なら、そのほうがより低消費電流になる。
コンパレータとして使うと中途半端な電圧でもOKなのは、ポートをアナログ入力モードに設定するとデジタル入力バッファがOFFになって貫通電流が発生しなくなるから。
>>384で挙げたErrataは、そのデジタル入力バッファOFFのロジックにバグがあって特定条件で貫通電流が増えますよ、という内容。maxが1mA前後だからtypは0.2mAとかだとは思うが、それでも低クロックで動作し続けるより多い程度は流れるわけだ。
>>387 Sleep中はメインクロックが停止するので、タイマを回すには、セカンダリオシレータ(要32kHz水晶外付け)を使う必要がある。消費電流はWDTより僅かに少ない程度の違いしかないから、部品増やすよりWDTを使うほうが良いように思う。
省エネを追求するなら
P1----CDS--+
|
C
|
GND
の方がいいかもしれない。
1、 普段はポートにLを出力して、おく
2、 ポートに t 時間Hを出す t =0.3*(C*R) RはCDSのスレッショルド抵抗値
3、 ポートを入力にしてポートの状態を見る Hならオン
4、 1に戻る
その後、アナログ値を読む時は
1、 普段はポートにLを出力して、おく
LP:
2、 ポートに 1パルスHを出す
3、 ポートを入力にしてポートの状態を見る H なら ループ終了
4、 カウント
5、 カウンタ値が255ならループ終了
6、 1に戻る
VRをCDSに直列につないでもいいし、VRも同じ方法で読めばいい。
短時間なら貫通電流も無視出来る
× t =0.3*(C*R)
○ t =0.7*(C*R) だ。
抵抗10K、コンデンサの値は 332(0.0033uF)とすると
CR=33uSec で 時間は 22uSECくらい
入力のスレッショルド電圧にも依存するけどな。
せっかく溜めた電荷なんで、逆向きも活用して交互に動かしたほうが省エネかもな。
Cのリークが少ないということが前提だが
アナログ的な読み取りはポートがオープンドレインモードで'L'かHi-Zという
選択だと、'L'パルスのカウントにしないと
まあね。 でも
>>391にしておくと
Weak PullUp をONにして Hになるまでの時間を見るという方法も使える
ただ、バラツキが大きいのが困りものだが
内蔵プルアップは相当いい加減だしなぁ
あと、RがでかすぎるとCのチャージを抜ききるまでの時間が問題になってくる
だろうから入力ポートをオープンドレインにするなどしてCを初期状態にもって
いかないといかんか
確かに真っ暗でRが1MΩ越えてくると、入力端子の数ピコの容量が効いてくるから
1、 普段はポートにLを出力して、おく
2、 ポートに 0.7*(C*Rth) 時間Hを出す RthはCDSのスレッショルド抵抗値
3、 ポートを一瞬Lにする
4、 ポートを入力にしてポートの状態を見る Hならオン(明るい) Lなら暗い
5、 1に戻る
というふうに一度Lを出してやらないと誤動作するね
明るさを読み取るには、その辺が限度かな。
VRでプリセットしたスレッショルドに対して明/暗が分かれば良いだけなら、
P1-----1MΩ----VR-----+--P2
GND----1MΩ----CdS----+
と接続しておいて(P2はコンパレータ入力)、測定したいタイミングでP1⇒H、電圧リファレンスON、コンパレータON。
適当な時間(10us程度)置いてコンパレータ出力を読み取ったらP1⇒L、電圧リファレンスOFF、コンパレータOFF。
これだと、外付け回路・電圧リファレンス・コンパレータの合計で30uA食うとして、平均消費電流は
>>392の定数の1/20くらいになる。ってまぁ、
>>392のCが151なら同じになってしまうわけだが。
絵で説明すると、 オープンコレクタ方式だと、回路はこうなる
P1---R---+---CDS-- +V
|
C
|
GND
P1をLにして Cを完全に放電してから、P1を入力ポートにして
CDSを通してCno電圧がHになるまでの時間を測定するか
一定時間後のH/Lで判定する。
この方式でも、、CDSが高抵抗(暗い所)だと、Hまで長い時間かかるので
そうなると貫通電流の流れる時間が増えてしまうから、
一定時間でHにならないなら、P1を出力に換えてHを出力するという事になる
1回の測定でCにかかる電圧は0〜 +Vだけ振れる
P1----CDS--+
|
C
|
GND
こうして
普段はポートにLを出力しておき、測定する時
>>396の手順でチェックし
敷居値を超えて Hを検出したら、
そこから P1 にいLパルスを 出しては 入力ポートにして Lになるまでのパルス回数で数値化する方式なら
暗い時のCへのチャージ電圧は大きくないので、その分だけ省エネになるというわけ
>>397 ちょっと考えてみたけど、
やっぱり1MΩはインピータンス高すぎて、電磁波ノイズ
ホコリや結露とかの影響受けやすいから、それは怖いよ
ノイズ対策の為に何度も計るなら、抵抗減らした方がいいという事になるしさ
401 :
774ワット発電中さん:2007/05/04(金) 00:01:30 ID:umZHp2vI
>>366 dクス なかなか すごい時計ですが・・・・腕がorz
>>398 確かに。分かりやすく1MΩにしたけど、30kΩでも総消費電流は3倍にもならないから、実際に使うときにはそのくらいまで下げたほうが現実的だね。
ここまでインピーダンス下げればセトリングタイムも減らせるから、平均消費電流はたいして変わらないわけだし。
403 :
402:2007/05/04(金) 00:25:04 ID:o610Jgm2
LinuxのPiklabでICD2+USB書き込みできてる人いますか?
Windows+ICD2+USBでは問題なく書き込めるのですが、Linux hostになると
piklab-progが
$ sudo piklab-prog -c program -p icd2 -d 30F2010 -t usb --target-self-powered pic30-ledtest.hex
Piklab version: 0.12.2 (rev. distribution)
programmer: icd2
device: 30F2010
port: usb
target-self-powered: true
libusb 0.1.12: using interrupt mode
Connecting ICD2 Programmer on USB Port with device 30F2010...
Error: USB Port: Error sending data (ep=1 res=-22) (err=error submitting URB: Invalid argument).
といって失敗します。pic30-gccでビルドまではできるので、なんとか
動かしてリモート開発できるようにしたいんですが・・・上のエラーに
あたったことがあって、解決できた!っていう人がいればアドバイス頂ければ。
7セグ使ってないとは頑張ったな
>>407 8ピンPICじゃポート足りなくて7セグ使えないんで。
す、すげぇ
素直に18pin使えばいいものを
>>406 その点灯方法だと輝度のバラツキが気にならないか?
8ピン(5ポート)で制御する事に意義があるんですよ。
>>410 正直かなり気になるが、回路のシンプルさを優先させてみた。
この駆動方法で発生する輝度のバラつきは次の2種類。
1. LED自体のVFのバラつきによるもの。
2. PICのVOH,VOLやD31〜D33のVFのバラつきによって発生する、「D1〜D20」「D21〜D25」「D26〜D30」の3グループそれぞれの駆動電圧のバラつきによるもの
このうち1.は、他のどんな駆動方法でも抵抗で電流制限すれば同様に発生する。
定電流駆動すればかなり解消できる。やってないけど。
2.はこの回路に特有のもので、グループ内の輝度は(上記1.の範囲内で)だいたい揃うが、グループ間の輝度は大きくバラついてしまう。
D31〜D33のVFでバイアス電位を与えるのではなく1.と同じく定電流源にすれば、グループ間の輝度のバラつきはかなり解消できるはず。やってないけど。
この場合でも「D21〜D25」と「D26〜D30」の駆動電流は「D1〜D20」と比較して少なくせざるを得ないが、それによる輝度差はダイナミック点灯の点灯時間の比率を増やすことでソフト的に補償できる。
AC100Vから50Hzを拾ってカウントするところまではできたから、あとは50Hz/60Hz判別と時刻設定モードの追加か。
いろいろ試してるうちに、プログラム/ベリファイはできてクロックの外部出力やMCLRも生きてるのにプログラムが実行されない状態になってしまった。
どうやら12F675のCPUコア(コード実行)部分のみが死んでしまったらしい。
こんな中途半端な死に方は初めてで、死んでることの確認にずいぶん手間が掛ってしまった。
12F675の買い置きがないんで、買い置きのある12F683(同じく8ピン)に変更して作業続行中。
単純に電圧上げるだけじゃだめ?
415 :
774ワット発電中さん:2007/05/07(月) 00:08:49 ID:pXfQlji2
>>414 D1〜D20を明るくする(=流す電流を増やす)だけなら、電流制限抵抗R1〜R5を減らせばOK。
例えばGP0=H、GP1=LにするとD1が点灯するが、R1とR2を減らせば電流が増えてD1は明るくなる。
このとき、D33の電圧降下(ダイオードドロップ)がR2の電圧降下より少ないとD26も同時に点灯してしまう。
この状態ではD1とD33を別々に点灯できないので、これを避けるため、D33の電圧降下はD1点灯時のR2の電圧降下より大きくしなければならない。
GP0=HにするとD26が点灯する。こちらもR1を減らすかD33の電圧降下を減らせば明るくなるが、上記条件を満たすとD1点灯時のD1の電流よりも少なくなる。
× この状態ではD1とD33を別々に点灯できないので
〇 この状態ではD1とD26を別々に点灯できないので
>>413 ウオッチドッグがONになってるとか、ソース変に弄っちゃったとか
という可能性は?
>>417 アドバイスdクス
うpしたHEXを再書き込み⇒×
set_tris_a()とoutput_a()するだけのテストプログラム作成⇒×
同じテストプログラムを12F683用に再コンパイル⇒12F683で〇
同じ作成中プログラムを12F683用に再コンパイル⇒12F683で〇
だったので、ソースが原因ということは考えにくい。
ウォッチドッグはOPTION_REGでOFFにしてある&一瞬も動作しないので、こちらも考えにくい。
というところまで試して、12F675は飛んだものと判断しました。
もうすぐ12F683が壊れる
に1票
>>418 >>406 の回路図、フォトカプラの発光側に逆向きにダイオード入れて
保護しないとフォトカプラ死ぬぞ。
逆耐圧はせいぜい5Vぐらいしかない筈。
>>418 最終アドレスにあるCaribデータ(0x34**)を失くしたんじゃないか?
(CALL 0x1FFF に対し RETLWが無いと無限ループ)
OSCCALのセンタ値は0x80だから最終アドレスに0x3480を入れてみるといいよ。
422 :
774ワット発電中さん:2007/05/07(月) 01:36:32 ID:YG9dl8NJ
MPLAB 7.60リリースあげ
現在インスコ中
>>420 フォトカプラも適当なシンボルがなくてLED単方向のシンボルを入れてあるが、実際にはLEDが逆並列に入っているもの(AC入力用)を使っている。
>>421 それが、キャリブレーションデータもちゃんと入っているのです・・・
>>423 了解。
うーん、後は、コンフィギュレーションのOSC設定とか、MCLR設定ぐらい
だし、LVPなんか出来ないし、その辺ミスってるとは思えんから、やはり
壊れたんかね?
余生はリセット付き発振器という事で。
>>423 たとえば数秒間ソフトウェアループを実行後Sleepを実行するようなプログラムを書いて
消費電流を測ってみる。
数秒後に消費電流が減少しなければ、プログラムが実行されていない。
プログラムの実行部あるいはMCLR付近、実行-書込み切り替え制御あたりの故障か…
数秒後に消費電流が減少すればプログラムは実行されている。
出力ポートの故障、TRIS制御付近の故障か…
MCLRがふらついてるとか
>>425 ライタでのフラッシュ/EEPROMの読み書きは正常なんで、電流を測るかわりにEEPROMに定数を書き込むプログラムを書き込んで電源を入れてみたが、EEPROMは書き換わらなかった。
>>426 MCLRをInternalにしても外部入力にしてプルアップしても状況は変わらず。OSCを外部出力しておいてMCLRをプルダウンするとOSCの外部出力が停止するので、MCLRの動作自体は正常っぽい。
429 :
sage:2007/05/08(火) 00:23:47 ID:b10Axw89
>>431 ”軽蔑すべきときに軽蔑すべきものを軽蔑する勇気を持たないと、
自分自身を腐敗させ、台無しにしてしまうことになるのですから。”
433 :
774ワット発電中さん:2007/05/08(火) 13:47:16 ID:vUjIsX4J
>>427 しっかし、よく8ピンPICでやったわなーwww
アセンブラじゃ発狂するねwwwwww
これはどのCだ?
ソースブースト?ハイテック?CCS?MIKROC?
あーそういえばコンパイラ名書いてなかったね。
CCS-C V3.249(V3の最終バージョン)を使用。
固有ディレクティブ・関数を使いまくってるので、他のコンパイラではコンパイルできないと思う。
それどころか、CCS-CのV4でもダメかも。
まぁ、ソース見る物好きはいても追試する人はおらんだろうけどww
最近はJALv2いじってるからCCS-Cはご無沙汰だな
相変わらずちょこまかバージョンアップしてるのか
と思ったらVer4になってるのかよ
438 :
774ワット発電中さん:2007/05/08(火) 20:07:56 ID:pdJSNIKL
と思ったらDWMは25万『システム』ゲート=5万ゲート相当のFPGAか
これだけインフレ気味だと有り難いのか有り難みが無いのか...........
440 :
774ワット発電中さん:2007/05/08(火) 21:31:23 ID:aF3QVSLB
MPLAB環境でCCSCコンパイラでプログラム造ってるんですけど、
#include<12F675.h> ←のようなデバイスのヘッダファイルが開けません
ソースがあるフォルダにこのファイルを入れれば開けるのですが、
元々このファイルはCコンパイラのフォルダに存在しており、
毎回デバイスが変わる毎にコピーしてくるのは面倒です
以前他のパソコンでプログラミングしていた時は、普通にそこからファイルを開いててくれたんですが
何故か今は開けないんのです…
ちなみにMPLABもコンパイラも最新板です
何故かわかる方はいらっしゃいますか?
>>440 最新(Ver 4)だと違ってるかもしれんけど、Ver 3のCCS-Cコンパイラの場合、
C:\Program Files\PICC\ccsc.ini(標準インストールの場合)の中に
I="C:\PROGRA~1\PICC\devices\;C:\PROGRA~1\PICC\drivers\"
という行(標準インストールの場合)を入れておくと、そこで指定したフォルダが
システムインクルードファイルの検索先になる。
442 :
774ワット発電中さん:2007/05/08(火) 22:53:54 ID:aF3QVSLB
>>441 レスありがとうございます
そんな設定方法があったなんて初めて聞きました
でも何故以前は何も設定した覚えが無いのに、ちゃんとそこから検索してたんでしょうねぇ…?
しかし今回に限らずMPLABやCコンパイラにはいつも何かにつまづいてしまいます
>>443 けっこう前から気づいてたけど、ソフト次第だと思うお
XPortよりイージーにしてくんなきゃヤダい
TCP/IPスタックなんかでいらん苦労はしたくない
スクリプトチョイチョイでwebインターフェース作れたり、
仮想COMポートで何〜も考えずに制御したいんだよ
445 :
443:2007/05/09(水) 00:00:15 ID:gbxh3/lC
>>427の強引PIC時計を3日連続で動かしてみたが、誤差は1秒以内に収まってるみたいなんで、
基準クロックのカウントに境界バグはなかったようだ。
次は便所紙引き出し長さアラームを作ろうと思っている。
家族に、音が響くほどのすごい勢いで便所紙を引き出すやつがいるんで、何とかならんかとww
構成は
>>372-402のようにCdSで入室(照明点灯)検知、フォトインタラプタで便所紙引出し量検知、
スピーカでアラーム(20cmごとにビープ、1mごとに長さを読み上げ(「いちめーとる!」等))、
リチウムボタン電池1個で1年以上動作が目標。
読み上げデータを格納するメモリ容量を考えると、今度は8ピンPICが使えなさそうなのが残念。
447 :
SOS:2007/05/10(木) 21:51:30 ID:oUsSx5wK
あわわ PIC16F88がとても熱くなります!
とりあえず考えられる原因は何でしょうか?
お願いします!
>>447 ・出力ピンにGND/VDDに接続している、LED等を接続して電流制限をしていない
・入力ピンにVDD超/GND未満を入力している、すごいノイズを入れてラッチアップ
あたりでは
裸にしたらどうよ?
450 :
SOS:2007/05/10(木) 22:15:20 ID:oUsSx5wK
さんくすです。
正常に動作してたんですが・・・
どこかがショートしたんでしょうか・・
451 :
SOS:2007/05/11(金) 07:46:21 ID:Ziuk44RL
picが壊れてるのかな?
壊れたpicに電流を流すと熱くなるんですか?
ボリューム式の可変電源を使っていてガリオームで
一瞬、過電圧が入ったとか
453 :
451:2007/05/11(金) 10:57:53 ID:Ziuk44RL
>>452 ・・・もしかすると、一瞬10V入ったかも デス。
それでもその後も使用してて、熱くはならなかったのですが。
それやって 砕けちった
換えてみればぁ すぐわかる
DEATH
456 :
451:2007/05/11(金) 14:53:24 ID:Ziuk44RL
換えてみてまた熱くなるとコワイノデス。
つまり回路のせいだったら・・・
(何度も見直したのですが)
PICって壊れると熱くなる可能性があるのでしょうか?
質問者が「・・・もしかすると」って言う時は
たいていの場合「絶対に」に置き換えた方が
正確な意味になる。
>456
壊れ方によるだろ。
内部の数ミクロンの配線のどこか一カ所が死んでも
常時短絡する制御に化けることだってあり得る。
>>456 ここで回路もソフトも現状の実装状態も示さないでこれ以上聞いても、
交換してOKならPICが故障してた。
交換してもNGならソフトかPIC以外のハードの異常か設計ミス。
としか言えない。
ちょっと熱もつぐらいの短時間ならそうそう壊れないから、捨てるつもりで
思い切ってやって原因を切り分けるか、前述のとおり何もかも曝け出すか
どちらかだ。
ブレッドボードみたいなもんで 単品でテスト
16F88だったら電源つなげれば動くようにできる
テストプログラムでもつくりゃ切り分けできるでしょ
たとえばPWM前提の回路がHになりぱっなしだと壊れるのは出力側だし
ソフトが原因でPICが熱くなるのは考えにくい。
448さんの指摘ぽいかな
内部プルアップって間違って出力ポートに設定しちまった時
どうなるんだっけ?
俺は色々ミスの原因になりやすいので内部プルアップは
一切使ってないからわからんのだが。
>>462 データシートのブロック図を見ればわかるけど、
プルアップ設定ビットとTRISの該当ビットのANDをとってるから
出力モードのときはプルアップが自動的に切れる。
仮に出力でプルアップが動作しても弱いからたぶん問題ない。
>456
>459の言うとおり。だけど一応質問だけには答えておこう。
> PICって壊れると熱くなる可能性があるのでしょうか?
ある。以前熱くなる以外は正常動作する殺し方をしたことがある。
465 :
774ワット発電中さん:2007/05/11(金) 19:44:03 ID:+tq/VZu8
PIC内蔵のEEPROMってページ書き込みとか出来ます?
大量のデータをいっぺんに書きたいんですけど、
8バイトずつだと書き込み制限回数に到達してしまいそうで…
>465
データEEPROMの事?少なくとも自分はページ書き込みがあるという話は
聞いたこと無いな。まぁ、データEEPROMは型番によって書き込み手順が
若干違うからなんともいえないけど・・・
そもそも大量のデータって・・・容量的に内蔵のEEPROMで足りるの?
・・・の前に内蔵EEPROMに入りきらないデータって・・・保持するための
RAMがないか・・・
>>465 それはプログラムコード用フラッシュのことだね。
多分仕様を誤解してるのだと思うのだが、書き込み制限回数が(たとえば)
100万回というのは、各セル(各ワード)ごとに書き込み回数がその回数までに
制限されるということで、全セルの延べ書き込み回数のことではない。
なので、特定の4ワードだけ消して書いて・・・を繰り返した場合、その4ワードの
書き込み耐用回数はどんどん減っていくが、他のアドレスのメモリの耐用回数は
残っている。
ただし、PIC16F88のように消去と書き込みのワード数が異なる場合、4ワードだけ
消して書いて・・・のつもりでも、その4ワード以外の部分まで同時に消去して
しまうので、その「4ワード以外の部分」の耐用回数も同時に減ることになる。
「ページ」という表現はPIC16シリーズの仕様書には出てこない(かわりに
「ブロック」という表現が時々出てくる)が、あえて使うとすれば、PIC16F87XAは
1ページ4ワード構成、PIC16F87/88やPIC18Fシリーズの一部(全部は知らんので)は
1ページ32ワード構成ということになる。
469 :
774ワット発電中さん:2007/05/11(金) 22:13:50 ID:+tq/VZu8
>>466 >>468 レスどうもです
今まで外部EEPROMでI2Cで書き込みしてたんですが、結構頻繁にライトするので書き込み回数を減らすために
バイトでは無く、ページ書き込みしてたんです。
1バイトじゃなく、64バイト単位など連続送信してストップコンディションを出してました。
今度は外部じゃなくてマイコン内蔵のEEPROMを使おうって事になりまして、PICを使う事にしました。
PICではまだ内蔵EEPROMの書き込みはやった事が無いので、仕様がよくわかってないのかもしれません。
チンプンカンプンな事を言ってるのかもしれませんが…
>469
言いたいことはよく分かるよ。
で、PICのデータEEPROMにもフラッシュプログラムメモリにもI2CシリアルEEPROM
のページライトに相当する書き込み方法は(多分)ない。
データを保存するのにデータEEPROMを使うことも出来るしフラッシュプログラムメモリ
に定数を保存するのも問題ない。
フラッシュプログラムメモリにデータを保存する場合、>468の言うように書き込み回数
制限は全セルの延べ書き込み回数ではない。
データEEPROMにデータを保存する場合の書き込み回数制限も同様で各Byteごとの
回数が問題になる。
ttp://www.fsinet.or.jp/~mad/0026.htm というわけでライトの回数を減らす目的がデータEEPROM(またはフラッシュプログラム
メモリ)の寿命を延ばすことにあるならページライトをする必要は無い。
一方、書き込みの実行速度の方に問題があるとするなら、素直にI2CシリアルEEPROM
を使ったほうがいいと思う。
>>469 データEEPROMのことであれば、こちらは1バイト=1ページなので、特定の1バイトだけ
書き込みを繰り返すとその1バイトが使えなくなるだけで、他のバイトには影響しない。
ただ、もともと単体のシリアルEEPROMと比較してPIC内蔵のデータEEPROMの書き込み
耐用回数は1桁〜2桁少ないので、その回数が問題になるような使い方をするのであれば
何らかのウェアレベリングは必要だろうし、場合によっては外付けEEPROMを選択せざるを
得ないかもしれない。
横槍ですまんが、データEEPROMとフラッシュプログラムメモリは何が違うの?
PICのEEPROMエリアって同じフラッシュメモリの中にあるんじゃなかったっけ?0x2100番地?とかにある
プログラムメモリに書き込めるってのは、プログラム領域にデータをいつでも書き込めるって事?
そんな事できんの?
PICのフラッシュプログラムメモリとデータEEPROMは、チップの物理構造上もソフトウェア的な
構造上も全く別の場所にあり、アクセス方法も全く違う。
HEXでデータEEPROM用のデータを0x2100〜に置くのは、1つのHEXデータでプログラムと
EEPROMデータの両方を表現するための便法に過ぎない。PICライタはそのHEXデータを
読んで、プログラムメモリのデータとデータEEPROM用データを区別して、それぞれ別々の
方法でPICに書き込む。
>>456 各ポート全てに、抵抗入れろ。
発熱が止まったところが原因の周辺。
W
VDDとGNDに抵抗入れたら発熱止まったヨ!
>472
> プログラムメモリに書き込めるってのは、プログラム領域にデータをいつでも書き込めるって事?
そのはず。といっても自分は使ったこと無いんだけど・・・
本来はフォームウェアのアップデートとかに使う機能なんだと思う。多分秋月ライタのVer.4
基板上の877とかはこの機能でフォームウェアの書き換えをしてるんだと思う。
479 :
774ワット発電中さん:2007/05/12(土) 00:46:17 ID:WEni6wfZ
>>478 Σ(゚Д゚;エーッ! ! まぢかよwww
ちょっとPIC買ってくる
>478
PICとブレットボードはあるけど、圧電スピーカーがないよ。しょうがないから
普通のスピーカつなげてみた・・・
み゛ゅみ゛ゅみ゛ゅみ゛ゅみ゛ゅみ゛ゅ・・・
としか聞こえない・・・orz
代わりにオシロで波形を見てみた。なんていうか3bitだなって感じだった。
まぁ、PICで音声出力って結構大変ですよね。かといってビープだけに
するんなら発振回路内蔵のブザーでよいわけで、それだとつまらないし。
ポートと圧電SPの間に簡単なハイカットフィルタ入れるといいんじゃね?
(さすがに普通のSPでは駆動しきれないとおもうけど・・)
音声なら数KHzカットでいいかな。
回路図では既に3KΩの抵抗が入っているから、
圧電SPとパラに 0.1uF のコンデンサ(とりあえずセラコン)追加してみたらどう?
素人な質問ですいませんが、インサーキットデバッガとインサーキットエミュレータの違いって何ですか?
>>478 codecで再生すると4kHz以上を綺麗にカットしてくれるけど
PWMではそのサンプリング周波数がもろに聞こえてしまうからね
インサーキット=実物の回路(ボード)上で、
・デバッグができる -> ICD
・エミュレータを動かす -> ICE
後者はチップそのものをエミュレータで代替する方式で、応用の
1つとして、エミュレータを介したハード・ソフトのデバッグがある。
前者は「デバッグができる」ようにするだけで、その方法は規定してない。
モニタ方式でやってもICDだし、オンチップのデバッグサポート機能で
実現するのもICD。ICEでICDもできる。しかし、どちらもデバッグ関係で
常用される用語なので、最後のはあまり言われず、
ICD = ICE でない方法によるインサーキットのデバッグ技術
という風に使われてると理解してる。
つまり、ICEはある(かなり強力な)手法の呼称で、一方のICDは
実回路上でのデバッグ、という作業についての呼称で、似て非なるもの。
485 :
774ワット発電中さん:2007/05/12(土) 12:16:29 ID:BwT5FUTr
PICの出力ピンの電圧って幾らなんですか
4V駆動のFETを直に作動させようと思っているのですが
大丈夫でしょうか。やはり間にもう一つトランジスタを挟まないと無理でしょうか
>>485 オープンドレインでない端子で、かつ負荷が十分小さいなら
H出力の時はほぼ電源電圧、Lならほぼ0V
電源に5Vを採用してるなら、最近のFETなら十分にオンオフ出来る。
12Vくらいの電源持っているとかでないなら、トランジスタを入れると逆効果
大抵はPICの出力段のドロップより電源に付けてる三端子レギュの誤差の方が大きいよ
>>484 すいませんまだイマイチよくわかりません
実機上でデバッグするのはどっちも同じなんですよね?
マイコンチップの替わりに動くのも同じですよね?
何が違うんでしょうか?
というのも、マイクロチップの製品でICDとICEがあって、ICEはICDに比べて格段に高いんです
でもどっちもリアルタイムでデバッグできると説明があります
素人なので何が違うかわからないんです
>>484 商標の問題だけなんじゃないのか
オシロスコープをシンクロスコープって言うのとかわらんのじゃないか
490 :
774ワット発電中さん:2007/05/12(土) 12:40:39 ID:BwT5FUTr
分かりました。 4V駆動と書いてあるFETを買って
試してみます。
スイッチングさせるなら抵抗かましといたほうがいいぞ
>>488 機能を比較してみればいいんじゃない?
たぶんICEはリアルタイムで命令トレースができるとか違いがあると思うよ。
あと、マイクロチップの言うICDはマイコンに内蔵されたデバッグ機能を使って
チップを取り外したりせずデバッグできるようにするツールのことだと思う。
乱暴なこと言うと、ICEは高級で高価な(数十万〜数百万)、ICDはお手軽で
安価な(数千円〜数十万)デバッガ(w。実際は接続形態が違ってて、ICEは
ターゲット(デバッグ対象のボード)からCPUを取り外して、それと置き換え
るように取り付ける。それに対して、Microchipの言うICDは元のCPUを取り
付けたまま、それに内蔵された機能と数本の信号線を使ってデバッグを行う。
ICEのCPUのかわりに取り付ける部分(プローブって呼ぶ)は、ターゲット
から見ると動作からピン配列、電気的な特性まで、本来のCPUとほぼ同じに
なってる。ターゲットの回路の中で、本来のCPUの動作をエミュレートする
からIn Circuit Emulatorって呼ぶわけだ(この各CPU固有の動作をさせる
ため、ICE側に取り付ける回路をポッドって呼ぶ)。
もちろん同じ動作をするだけじゃ意味が無いわけで、デバッグのために、
動作の停止やステップ実行ができたり、メモリの内容を覗けたり、
プログラムのトレース(コード実行の履歴を取る事)ができたり、
ROMやRAMの存在をエミュレートしてデバッグ中のコードをダウンロード
できたりする。
ICDの場合も同じようなことは出来るんだけど、CPU内のデバッグ用回路を
使うから、ブレークポイントの数が限られるとか、複雑な条件でのブレークが
設定できないとか、トレースが取れないとか、いろんな制約が多い。
あと、ICEは未完成なターゲットでハードのデバッグをするのにも使えるけど、
ICDはターゲットのハードウェアがきちんと動作するのが前提になる、
っていう違いもある(そうとは限らない事もあるけど)。
で、もともとはCPUを置き換えるものだけをICEって呼んでたんだけど、
CPUは外さずにターゲットのROMのソケットとCPUの数本の信号線だけを
接続する形態のデバッガがROM ICEって名前で製品化されたり、あるいは
JTAGっていうシリアルポートを使って接続する(ICDとほぼ同じ構成の)
ものをJTAG ICEって呼んだりして区別が付かなくなってる。なので本来の
高級品ICEのことはハードICEって呼ぶようになってます。
最近はCPUがいちいち取り外せないだとか、動作速度が上がってハードICEの
設計が困難になったとか諸々の事情でICDのような形態が主流になってます。
安いしね。
長文スマソ。
>>488 長いので
>>493は読まずにレスすると、
>マイコンチップの替わりに動くのも同じですよね?
いや、それは同じじゃないと
>>484氏も書いている。
>モニタ方式でやってもICDだし、オンチップのデバッグサポート機能で
>実現するのもICD。
これはいずれもマイコンチップ自体が動く。
ICE=電動こけし
ICD=電動バイブ
ぶっちゃけMPLABのデバッガで十分じゃね?
ICEなんて使う程大規模なプログラムなんて造らないし
12とか16じゃ絶対必要ないな
18とか24シリーズは知らんけど
最近TOP-GUNの話を出すと「古っー!」って言われるんだよね。
例の「ミサイルに頼りすぎて空中戦の戦闘能力が低下…云々」にたとえて
「デバッガに頼りすぎるとプログラミング能力が…」ってな話をすると。
最後の有人デバッガ登場!
ICDはデバッグ用ポートを開けなければ使用できないので、PICのピンを使い尽くした
状態で実環境デバッグを行うにはICEが必須。
まぁ10万セットとか出荷される製品作るんだったらICE買ってもいいんじゃない。
10万台とかだと、開発コストは1台10円も出せないだろ
C18で18F2450のプログラミングをしてるんだけど、
突如こんなエラーが出るようになってた。
最後に使った2ヶ月前は正常にコンパイルできたはずなんだが・・・
unable to locate 'p18f2450.h'
とりあえず再インストールで回避できた
しょっちゅうこんな状態になったら厄介だな
>>502 環境変数 INCLUDE が、何か他のコンパイラ入れたら書き換わったとかあなんとか。
おっと、4kHz/2kHz再生プログラムHEXの使い方を書き忘れていた。
PIC12F683を使用。再生は前の音声風再生回路と同じく、GP2(ピン5)−3kΩ−圧電スピーカ−GND。
GP5(ピン2)をHにすると4kHz再生、Lにすると2kHz再生。
一次CRフィルタで効果を上げるには、もっとサンプリング周波数を上げて1/2fsを稼ぐしかないか。
連続スマソ
オシロ観測のトリガ用に、出力波形と同期したパルスをGP0(ピン7)から出している。
出力波形はガチャガチャに乱れていてトリガが取りにくいので、GP0でトリガするのが吉。
キター とか言ってる?
PSoCで2500Hz位を肩にした2次のLPF組んで通してやったらだいぶ綺麗に聞こえたから
(USBからプログラマ経由で電源もらってるせいか、サーッというノイズはでかいが)
フィルタの次数上げてみるのも良いかも
>>509 正解です。
いい歳こいた男がマイクに向かって「キター」とか吹き込んでる姿はかなり寒かったorz
フィルタ次数上げれば効果的というのが分かったのは、せめてもの慰め・・・
「サー」が多いのは3bit圧縮で標本化ノイズが激増しているせい。再生長が短すぎる(0.4秒)のも
分かりづらい理由なんだろうな。
PIC12F683の容量では3bitサンプルでも0.5秒までしかデータが入らないので、次はPIC16F88を
使ってみるか。これなら8ビットサンプルでも1秒は入るし、同じ3bitサンプルでよければ2秒入る。
CODECのLPFはFIRの強力なのが入ってるから、それ相当の音を出すのは大変だよ
PWMを使うより、インターバル割り込み周波数を最大にして、
http://www.tensyo.com/urame/prog/ALGO.HTM >DDA:累加算によるPWMアルゴリズム
でやってみたらどう?
メモリに加算しては、上位ビットなりキャリーフラグなりを見てポートに出すだけだからさ
音量が足りないなら、圧電スピーカーをポート2本でコンプリメンタリに駆動してやれば電圧が倍に出来る
もっともサンプルレートを上げた分、自前でLPFを実装してやらないといけないのが厳しいかな
>>511 トンクス
現在の3bitデータのデコード速度が既にサンプル周期125us(毎秒8kサンプル)で精一杯。
コード最適化(≒フルアセンブラ化)しても、現在のPWM周期(16us)を上回る速度で
データ出力するのは無理っぽい。
8MHz駆動のPICだと16usで32命令しか実行できないので。
コンプリ駆動については、コンパレータを使えばハード側のみで処理できるので、
音質(S/N)の問題が片付いたらやってみようと思っている。
513 :
774ワット発電中さん:2007/05/13(日) 17:59:37 ID:62qeoqkL
>>510 無音の時に(まだwav再生していないときに)出てしまってるサーッ音
なんで、完全にPSoC側の責任(つか、電源の責任か?)っす
音自体はだいぶきれいに高い音が消えてたから、少し次数稼いでやれば
良い感じかも。オペアンプちょっと奢って作ってみたら?
>>512 >506 の再生サンプリングって何kHzなの?
3bitサンプルってどういうことやってるの?
517 :
774ワット発電中さん:2007/05/13(日) 19:54:12 ID:/tLuhqvT
>ICDはデバッグ用ポートを開けなければ使用できないので、PICのピンを使い尽くした
状態で実環境デバッグを行うにはICEが必須。
まぁ10万セットとか出荷される製品作るんだったらICE買ってもいいんじゃない。
ボケがいらぁ
PIN数の多いもので全品チェックしなければならないような自体はそもそも無い。
PINすうの少ないものならPIN数の多いパーツを使えば済むこと
ICD2は無敵なのら
Pickit2 Ver.2.2 って不安定だよなぁ。
16F819のConfigが書き込めてないことがよくあるし、プログレスバーが止まって、応答なしになるし。
Ver1.21では問題なく動くけど、対応してないPICもあるからな。
>>513 なるほど。
音声再生そのものが目的ならオペアンプ入れるなりするのですが、
>>405の無理矢理時計と同様に、
>>446の便所紙アラームを最小部品数(できれば多ピン品はPIC 1個)で作りたく、
その構成要素として音声再生が現実的かどうか試しているという段階なので、ひとまず
PIC単体でできそうな線から試してみたいと思ってます。
>>514 元データは8kHz 8bitリニア(64kbps)でサンプリングしたもので、それを8kHz 6bitリニアに落としてから
8kHz 3bit(24kbps)にエンコードしています。
>>515 不等幅DPCM(サンプル間の凾±1,±4,±8,±16のうち1つで表現)です。デコードすると
8kHz 6bitリニアのデータになります。
ITU-T G.726のADPCMにすれば同じビットレートでも遥かに良い音質になるのですが、クロック8MHzの
PICでデコードするとおそらく毎秒2kサンプルくらいしかデコードできないので諦めました。
どうでもいいことなんだけど、
「なのら」のは元ネタは何?
40過ぎで語尾になのらを付けるおっさんがいて、
以前から気になってるんだが..
バカボンか何か あれは「何々ナノダ」か
>>506 >・・・どの容量を追加しても、4kHzのp-pレベルは2kHz時の半分orz
PWMのピリオドが64(±32)で、DPCMテーブルの最大値が±16だと、
8kHzサンプリングで4kHz再生すると +16 -16 +16 -16 …で、2kHz再生
すると+16 +16 -16 -16 +16 +16 -16 -16… となるからレベル半分に
なるのは理にかなってると思うけど。
つまりLPFとして機能していないと。
てかEEPROMとセラロックつけようぜ
聞けたもんじゃないだろ
3bit PCMで音になるの? 意外・・・
ADPCMみたいなものかと思ったよ。
>>512 普通コンパレータはオープンコレクタ出力だから、オペアンプをお勧めする。
魔法使いサリーちゃんのパパなのら〜
>>523 確かに!
で、指摘されて気付いたのですが、
>>519の回答間違っていました。
8kHzサンプリングなのは「キター」のほうで、
>>506の4kHz/2kHz正弦波のほうは
125kHzサンプリング・6bitリニア(4kHzの場合)でした。
>>526 アドバイスども。
外付けなしで済ませたいので、使用するのはPIC内蔵のコンパレータモジュールです。
このコンパレータはトーテムポール出力なので吐き出しも吸い込みもOKです。
>>528 >125kHzサンプリング・6bitリニア(4kHzの場合)でした。
それってオーバーサンプリング?
それとも、元のサイン波のデータも125kHzサンプリングレート
で用意してあるの?
サンプリングレート125kHz、6ビットリニア、一次デルタシグマのサイン波のサンプル値を
あらかじめ計算してテーブルにしてあります。
某所で少々話題になってたので、Wisp628ライタを久しぶりにヲチしたら、
書き込みソフトのXWisp2が激しくバーチャンupしていて、かなり対応PICチップが増えてる件
http://www.robh.nl/picsoft.php Wisp628は以前から存在は知られてたが、対応チップが少なかったんでスルーしてた
チャージポンプ内蔵、Linux版あり、ICSP対応など、Writer509より優位な点があるので、
対応チップが増えれば一考に値すると思う
ただしXWisp2は依然12F509、16F57などに対応してないのと、GUIがないのが短所か・・・
(GUI書き込みソフトはBumbleBeeという代替があるにはある)
貧乏くさいこと言わずにPICkit2買え
サポートデバイスもじき増える
ライタ工作は卒業してPIC工作に進めって
533 :
774ワット発電中さん:2007/05/16(水) 17:21:36 ID:RFTJSqyh
環境:MPLAB IDEv7.50 PICProg4U RCDライタ
PIC12F675でC言語でLED点滅をさせる実験をしています。
@では点滅するのですが、
Aでは点灯だけで点滅してくれません。
どうしてでしょうか?教えてください。
@--------------------------------
while(1){
GPIO0=1;
DelayMs(250);
GPIO0=0;
DelayMs(250);
}
A--------------------------------
while(1){
DelayMs(500);
if(GPIO0)
GPIO0=0;
else
GPIO0=1;
}
if(GPIO0)
if (GPIO0 == 0){
GPIO0=0;
}
じゃねの
>>533 LEDのドライブ回路がわからないんで、推測だが。
LEDをドライブしたために、GPIO0のピンの電圧が'H'レベル以下に下がっているので、
GPIO0を読んでも'0'しか読めないから。
変数くらい使おうよと……
537 :
774ワット発電中さん:2007/05/16(水) 19:19:12 ID:iy0OIdLT
デフォルトのアナログ入力modeだとポートのreadが常に'0'だからでは?
ANSEL = 0; を入れて試してみるといいかも。
あと if(GPIO0) ... else ... は GPIO0 = ~GPIO0; だけで桶
初心者が
>>535の内容を読んでもピンと来ないと思うので、少し解説。
PIC12/16シリーズのI/Oポートを出力モードに設定しても、そのポートを読んだ時の値は
「最後に出力した値」ではなく必ず「現在のI/Oポートの状態(ピンの電圧が高いか低いか)」になる。
なので例えば、1を出力していても、比較的大電流を吐き出していてピンの電圧が下がっていると、
読み込んだときに0が読み込まれることがある。(逆もあり得る。)
>>538 ちなみに、AVRでは、同じピンでも、出力に使う時はPORTA、 入力で使う時はPINA ってな感じで使う。
疑問なんですがPCLAHTレジスタってプログラムメモリが2K以下の場合は常に0で必要無いはずですよね?
なんで存在してるんですか?
あと2kを超える時でも、割り込みでPCLATHを退避する意味がわかりません
だって割り込みに飛んだ時点でスタックに戻りアドレス入ってますよね?
退避しなくても大丈夫なような
>>539 ちなみにPIC18Fでは、出力に使う時はLATA、入力で使う時はPORTAってな感じで使う。
>>541 プログラムメモリ2Kワード以下の品種ではPCLATHを使わなくてもよい。
でも使っても構わない。
品種ごとにCPUコアを作り変えるなんて面倒をせずに使いまわしているのだろう。
2Kワードを超える品種ではPCLATHを使う必要が出てくる。もしも割り込みルーチン内で
PCLATHを変更する可能性があるのであれば(例えば割り込みルーチン自体が2Kワード境界を
またいで分散している等)、あらかじめPCLATHを退避しておく必要がある。そうでなければ
退避しなくてよい。
>>544 ありがとうございます
そういう事ですか。勉強になりました
546 :
774ワット発電中さん:2007/05/16(水) 21:44:37 ID:iy0OIdLT
>>541 PCLATHだろ?
GOTO,CALL命令のPage概念だけ気にしてるようだけど、
ADDWF PCL,f 等によるRETLWデータテーブル利用の場合
下位のPCLは8bit(256word)分しかないからPCLATHの意味があるのさ。
上のようなテーブル参照でPCLATHを利用しているなら
割込み時にも退避・復帰が必要になるわけだ。
>545
ついでに・・・PCLATHはgotoやcallの時だけじゃなくて
>>339みたいに
テーブルアクセスの際にも使います。そういった使い方ではプログラム
メモリが2k以下でも必要になってきます。
548 :
547:2007/05/16(水) 21:51:48 ID:MgO1kPUu
リロードせずに書き込んだら既にかかれてたよ。スレ汚しスマソ。
>>546 >>547 普段C言語ばかりで組んでたもんで、そこの概念を全然意識してませんでした
やっぱりアセンブラから入らないとダメですね
楽をし過ぎてました
550 :
544:2007/05/16(水) 22:48:10 ID:O0w9egc0
あー確かに。retlwでテーブル引くときには5ビットとも使うね。
すっかり忘れてた。
てか普通retlwテーブルはプログラムの最初の方のアドレスに書くのが常識だろ
だからPCLATHなんて書き換えねーよ
552 :
533:2007/05/17(木) 00:18:19 ID:BCLHxrV3
>>535 5Vなので電圧は問題ないです。
7番ピンに抵抗、LED、グラウンド とシンプルな回路です。
>>537 ANSEL = 0; 変化なしでした。
GPIO0 = ~GPIO0; エラーがでました。
レスありがとうございました。
でも、どうしても
>>533のifでの制御ができない・・・。orz なんでだろう
553 :
774ワット発電中さん:2007/05/17(木) 00:22:22 ID:X3/JoRsb
>>551 256ワード境界を越えられない狭い常識の持ち主みたいだね。
>>553 リテラルテーブルに256ワード以上使うってそうないからwww
>>554 そんなことないよ
漏れは768ワード使った
バンク毎にPCLATH書き換えてからcall
>>552 いや、だからこんな感じではどうなのよ?
GPIO0の値が常に'0'かもしれないんだから。
char a;
while(1){
DelayMs(500);
if(a) {
GPIO0=0;
a=0;
} else {
GPIO0=1;
a=1;
}
}
>554
10bitADCをテーブル引きするだけでも1kワードになるよね・・・
>555
値によって条件分岐をかくよりも、加算結果をPCLATHに反映させたほうが
楽ですよ。例えば右詰ADC10bitから値を引くときは
MOVLW high(TABLE)
banksel(ADRESH)
ADDWF ADRESH,W
MOVWF PCLATH
banksel(ADRESL)
MOVLW low(TABLE)
ADDWF ADRESL,W
BTFSC STATUS,C
INCF PCLATH,F
MOVWF PCL
TABLE
RETLW D'0'
見たいな感じで・・・。実行速度は遅くなるかもですけど、lstファイルとにらめっこ
しなくてもよくなる点で。
スペースがつぶれちゃったのでコードだけ・・・
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;MOVLW$nbsp;$nbsp;$nbsp;high(TABLE)
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;banksel(ADRESH)
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;ADDWF$nbsp;$nbsp;$nbsp;ADRESH,W
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;MOVWF$nbsp;$nbsp;$nbsp;PCLATH
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;banksel(ADRESL)
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;MOVLW$nbsp;$nbsp;$nbsp;low(TABLE)
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;ADDWF$nbsp;$nbsp;$nbsp;ADRESL,W
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;BTFSC$nbsp;$nbsp;$nbsp;STATUS,C
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;INCF$nbsp;$nbsp;$nbsp;$nbsp;PCLATH,F
$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;$nbsp;MOVWF$nbsp;$nbsp;$nbsp;PCL
TABLE$nbsp;$nbsp;$nbsp;RETLW$nbsp;$nbsp;$nbsp;D'0'
もうやだ・・・寝る。
MOVLW high(TABLE)
banksel(ADRESH)
ADDWF ADRESH,W
MOVWF PCLATH
banksel(ADRESL)
MOVLW low(TABLE)
ADDWF ADRESL,W
BTFSC STATUS,C
INCF PCLATH,F
MOVWF PCL
TABLE RETLW D'0'
ごめんなさい。
560 :
774ワット発電中さん:2007/05/17(木) 01:52:18 ID:X3/JoRsb
>>552 > ANSEL = 0; 変化なしでした。
ANSEL = 0; CMCON = 7; かな?
> GPIO0 = ~GPIO0; エラーがでました。
HI-TECH PICC(lite)ではエラーになるようですね。
気が向いたら次のを試して。
GPIO0 = !GPIO0; // GPIO0反転
if(GPIO0) // これは入力
GPIO0=0; // これは出力
else
GPIO0=1;
}
って、大丈夫(出力ポートを読み込むと、最後に出力した内容が読める)なんですか?
私は入出力の間で、TRISIOを切り替えなくてはいけないと思ってた・・・
今まで無駄なことを・・・・ orz
>って、大丈夫(出力ポートを読み込むと、最後に出力した内容が読める)なんですか?
>私は入出力の間で、TRISIOを切り替えなくてはいけないと思ってた・・・
if のところは 条件式いれるんじゃないの?
Cでプログラム書いてあるのにTRISIO意識する必要はあるのか?
564 :
533:2007/05/17(木) 10:15:52 ID:BCLHxrV3
>>556 点滅成功しました! それで変数・・・ 理解できました。
>>560 GPIO0 = !GPIO0; エラーは出ませんでしたが点灯しませんでした。
ANSEL = 0;
CMCON = 7;
GPIO0 = !GPIO0; これで点滅成功しました
ありがとうございました。
最後に出力した内容が読みたいならTRISIOは0(出力)でなきゃダメ。
566 :
533:2007/05/17(木) 10:31:04 ID:BCLHxrV3
>>563 562ではないけど、if(GPIO0)は条件式ですよ。
TRIS0=0; がないと点灯しませんでした。
>>562 iGPIO0 出力データが有るか無いかの様なことを本に書いてあります。
TRISIOの質問です。
TRISIO は、whileの中がいいのですか? それともwhileの上に書くものですが?
どちらも点滅成功したので、whileの上に記述しました。
評判を聞いてから,必要となった時に基板だけ○2で買えばよさそう
イカン,間違えた
C級の付録基板スレに書き込んだつもりだった.......
570 :
774ワット発電中さん:2007/05/17(木) 12:33:08 ID:X3/JoRsb
>>564 報告乙
データシートの GPIO PORTの章ブロック図とか参照すれば
analog入力モードではPORT readが常に'0'になること理解できると思います。
(ANSELとCMCONの初期設定で該当PORTピンをdigital設定にする必要がある)
GPIO0 = !GPIO0; の記述は if(GPIO0) ... else ... より単純でいいでしょ。
>>566 TRISやANSEL,CMCON等の初期設定はwhileループの前で桶。
途中で設定変更する場合とかはその都度だけど
なんかCって大変だな(w
572 :
533:2007/05/17(木) 19:09:47 ID:BCLHxrV3
>>570 ありがとうございます。
大変勉強になりやすでやんす。
LEDの点滅で、i++のiを利用して、
高速点滅からゆっくり点滅から高速点滅の繰り返しをする場合、
@まで動作するのですが完成系?のAでは動作しません。 どうしてかわかりませんか?
どなたか教えてください。
@---------------------------
while(1){
DelayMs(i);
if(a){ GPIO0=0; a=0; }
else { GPIO0=1; a=1; }
if(i == 100){ f=1; }
//この部分に追加したい
if(f){ i--; }
else { i++; }
}
A---------------------------
while(1){
DelayMs(i);
if(a){ GPIO0=0; a=0; }
else { GPIO0=1; a=1; }
if( i==100 ){ f=1; }
else if( i==0 ){ f=0; } //これが問題みたいな
if(f){ i--; }
else { i++; }
}
>>572 IF文の部分は問題ないと思うからそれ以外の部分を書いてみたら?
>>
間違ってるようには見えないが。
while(1) のループに入る前に、変数の初期化は行ってるか?
a=1;
f=0;
i=1;
while(1){
:
:
:
}
~ってどいう演算子?
!はよく使うけども
576 :
774ワット発電中さん:2007/05/17(木) 23:22:17 ID:i/dMpuAx
ある数を1/16するとき
BSC STATUS,C
RRF DATA,F
BSC STATUS,C
RRF DATA,F
BSC STATUS,C
RRF DATA,F
BSC STATUS,C
RRF DATA,F
ってやる人はぶっちゃけセンス無いと思う
RRF DATA,F
RRF DATA,F
RRF DATA,F
RRF DATA,F
MOVLW 0x0f
ADDWF DATA,F
ってやる人は普通
訂正ADDWFじゃなくてANDWFね
…さぁ正解を誰か答えてくれたまへ
3行でOK
BSCよりはBCFのほうが若干良さそうだな
命令の綴り間違えてた…BCFだった…orz
俺が一番センス無いわw
584 :
774ワット発電中さん:2007/05/18(金) 00:40:54 ID:t+HB1brH
Cでは DATA /= 16; か DATA >>= 4; だね。
DATA = DATA/16; や DATA = DATA
>>4; でもいいけど
SWAPF命令使えばいいじゃん
>>585 正解!!
SWAPF DATA,F
MOVLW 0x0f
ADDWF DATA,F
でOK
センスが無い人の例と比べて半分以下の命令で出来ちゃうわけ
こういう積み重ねで素人と玄人ではプログラムの効率が全然変わってくるんだよな〜
他にこういう小ネタ募集
587 :
774ワット発電中さん:2007/05/18(金) 00:53:16 ID:t+HB1brH
またADDWFかよ。 センス大丈夫か?
間違ったとこからコピペした…orz
オプティマイズはコンパイラにまかせる.
メモリ足りなかったら,メモリ容量の大きいデバイスを使う.
四苦八苦してメモリ使用量削減するのに無駄な時間かけて製品の
市場投入遅らせるのは素人. 製品開発は趣味でも遊びでもない.
俺も面倒なアセンブラなんかで組まないな
もうCコンパイラでもほとんどアセンブラと変わらないくらいまで最適化できてるからね
コードの可読性や保守性を考えるとCで書くのが一番
ページやバンク、メモリ配置をいちいち意識しなくて良いしね
アセンブラを使うなんてのは車を未だクラッチとマニュアルで操作してるようなもん
車なんて90%以上がオートマの時代だ
591 :
774ワット発電中さん:2007/05/18(金) 01:16:49 ID:t+HB1brH
因みにCCS-Cは DATA /= 16; に対し
>>586の正解ANDWF版コードを吐くぞ。
オプティマイズは優秀だな。
その程度のネタで玄人って言われても…ねえ。
>>586 演算後、その数値を利用する(条件分岐とか)可能性を考えると、
SWAPF DATA, W
ANDLW 0x0f
MOVWF DATA
なコードの方が良くないか?
>>590 x86とかARM,MIPSのコンパイラなら最適化が高度に進んでるが、PICのコンパイラは
まだまだ最適化の余地が多いよ。
今時のx86のコンパイラで最大最適化を掛けると、よほど大量にコードを追わないと
手作業で最適化できそうなところが見つからないが、PICのコンパイラならアセンブラ出力を
ざっと眺めた程度でも最適化できる場所がすぐ見つかる。
まぁ、今程度の最適化でも十分Cで書こうという気にはなるが。
CCSで間接アドレス参照使うプログラム書くと悲惨だよ。
半分以上無駄なコード吐きやがる。
繰り返し文で変な書き方しないとDECFSZすら使ってくれないし。
CCSの場合、最適化以前の問題として、まずバグのあるコードを吐かないでくれ!
とコンパイル時に祈らなくてはならないのが問題だww
597 :
533:2007/05/18(金) 09:45:38 ID:ySRIFAA9
>>573 >>574 レスありがとう
型をintにしたりcharにしたり初期値に変化をつけたり
いろいろしたのですが動作せず、アゲクノ果てにpicへ書き込みもできなくなた・・・ orz
LEDの点滅を高速→ゆっくり→高速→ゆっくりと繰り返しを実験してました。
どうも無理っぽい・・・。orz
#include <pic.h>
#include "delay.h"
__CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTDIS & INTIO);
__IDLOC(0100);
main(){
int i,a,f;
GPIO0=0;
TRIS0=0;
while(1){
if(a){ GPIO0=0; a=0; }
else{ GPIO0=1; a=1; }
if( i==1 ){ f=0; }
if( i==50 ){ f=1; }
if(f){ i--; }
else{ i++; }
DelayMs(i);
}
}
>>597 だから、while()ループの前に変数の初期化は入れろyo。
a=1;
f=0;
i=1;
while(1){
:
:
:
}
無理じゃないんだよ!
ところで
DelayMs()って関数の1単位はmsec?
SourceBoostも
>>586のANDWF版になったよ。
600 :
774ワット発電中さん:2007/05/18(金) 12:03:41 ID:t+HB1brH
>>587 いろいろツッコミたい箇所多いが、一応動作する内容だろ。
(int型変数は16bit長だから無駄だと思うぞ)
因みに俺は #include"delay.c" に変えてSIM動作確認した。
動かないのはPICが死んでるか、ライタがおかしいんじゃね?
補正値消してしまったとか……
602 :
533:2007/05/18(金) 13:05:08 ID:ySRIFAA9
>>598 PIC自体が動かなくなった。
DelayMs()たぶんmsecだと思います。
>>601 PICProg4Uを使ってるのですが、
書き込む時、
工場出荷時の補正は読み込んでるが、
途中で値が変わってるのですよ。
それが問題なのかな?
難しい・・・ orz
>>602 まあ、PICが動かなくなったならしょうがないな。
今のプログラムDelayがmsec単位なら、動作がわかりにくそうだ。
点灯する比率を変えたほうがわかり易いはず。
約5秒周期で明暗を繰り返すようにしてみた。
動かせるようになったら、下のプログラムでも確認してみてくれ。
main(){
int i,a,f;
GPIO0=0;
TRIS0=0;
a=1;
f=0;
i=1;
while(1){
if (a) {
GPIO0=0;
a=0;
DelayMs(i);
} else {
GPIO0=1;
a=1;
DelayMs(51-i);
if( i==1 ){ f=0; }
if( i==50 ){ f=1; }
if(f){ i--; }
else{ i++; }
}
}
>567
確かに面白そうな回路だと思う。
この位なら自分でコードを書いて見る方が、もっと面白いと思うよ。
605 :
774ワット発電中さん:2007/05/19(土) 07:15:32 ID:KCvYKySL
mikroCってレジスタのビットアクセスができないみたいなんですけど、
できてほしい。
GPIO.3 = 1;
とかかけないもん。
がーん。
>>605 PORTB.F3 = 1;
とか書けるよ。
607 :
774ワット発電中さん:2007/05/19(土) 11:32:14 ID:KCvYKySL
>>606 ありがと
助かりました。
やる気も出ました。
ヘルプとサンプルを全部読んだ方が良いよ
PICCliteの解説本ってある?
PICC気に入ったので製品買っちゃったwwwwww ちょっぴりだけ後悔している。
PICCに特化した解説本ってあまりないんで、チュートリアルまとめてるサイトを
まわったほうがいいかもしれない。あとは英文になってしまうけど公式に色々と
サンプルコードが出てるよ。
612 :
774ワット発電中さん:2007/05/19(土) 23:31:18 ID:ZgfiqA/m
ストロベリーリナックスの無線モジュールを使って遊びたいのだが、
送受信のプロトコイルは考えついたんやけど、送信モジュールの電源選びに困ってる。
3〜6Vらしいんやけど、CR2032では無理かな?
キーレスエントリーの様に使いたいから小型の電池なんかないかな?
613 :
774ワット発電中さん:2007/05/20(日) 00:03:01 ID:NCOFAPvc
まだスペックというほどの物はきまってないよ。
乾電池などをTL499Aで昇圧するとしたら効率悪くない?
市販のキーレスなんかは1.5Vで長時間もつのってどんな回路かなって思ったのよ。
ageすまそ
普通のコイン電池は3Vじゃん。
ついでに長時間もつと言っても、通電されるのはせいぜい日に何秒程度
なのだから、自己放電が年1%もないリチウム電池なら何年ももって当然。
617 :
技術奴隷:2007/05/20(日) 06:31:58 ID:onOQuivH
>>612 市販の物は、その電圧に合わせて設計出来るから心配要らないのだけど
件の無線モジュールはテストしてみるしか無いと思う。
特に、3Vの電池で3Vのモジュールだと余裕が無いから
あとはモジュールの実力しだい。
慣れれば送信回路は簡単に作れるので挑戦してみるのも乙かも。
618 :
78:2007/05/20(日) 09:40:26 ID:0wqyV4Cz
>>78 で mikroC による PIC16F88 への書き込みについて教えて
戴いた者です。
遅くなりましたがおかげさまで無事書き込みできました。
すみません、続いてなのですが、
ttp://www8.plala.or.jp/InHisTime/ の中の、「周波数ロックユニット」のうち、
PIC12F683 用のソースをやはりmikroCにて書き込む場合、
Device Flagsはどれをチェックすればよいのでしょうか?
よろしくお願いいたします。
>>618 FCMEN - OFF
IESO - OFF
BOREN - ON or OFF
CPD - any
CP - any
MCLRE - OFF
WDTE - OFF
FOSC - EC/IO
かな?
ソースに埋め込めないのは不便だな
620 :
78:2007/05/20(日) 13:06:07 ID:0wqyV4Cz
>>619 ありがとうございます。
すみません。基本的な知識不足のためもう少し教えて下さい。
mikroC のDevice Flagsの画面では、
BOREN - ON or OFF
CPD - any
CP - any
FOSC - EC/IO
に該当しそうな項目がないのですが・・・
FCMEN - OFF
IESO - OFF
MCLRE - OFF
WDTE - OFF
は見つかったのですが・・・
よろしくお願いいたします。
CPD,CPは、どちらでも動作には関係ないと思う。
クロックの設定ぐらい、どこかにあるはずだけど...
INTOSCとかHSとかXTとか mikroCは使った事ないけど
BODEN OFF
CPD OFF
_HS_OSC
ところでライター何使ってる?
すまん 16F88 の設定みながらやってしまった
624 :
78:2007/05/20(日) 18:49:31 ID:0wqyV4Cz
>>622 ありがとうございます。
えーと、
BODEN OFF
というのは見当たらず、
BOD OFF
というのがあるのですが、これに該当するのでしょうか?
ライタはアドウィン社のものです。
CCS-C使えNEEEEEE!
これじゃwhile(1){}じゃないか!
20:while(!kbhit()){}
0D8 1E8C BTFSS 0xc, 0x5
0D9 28D8 GOTO 0xd8
0DA 28D8 GOTO 0xd8
>>625 「while(!kbhit()){}」の前後は何書いてる?
まさか
while (1) {
while(!kbhit()){}
}
じゃないだろうな。
>>625 バージョンぐらい書きゃいいのに。
脳味噌足りねえなあ…。
630 :
774ワット発電中さん:2007/05/20(日) 23:12:56 ID:+wI/ItFG
>>626 僕の持ってるライタは、ジッポーなんですが、大丈夫でしょうか?
Writer509オススメ
プロメートも買えん貧乏人ばっかりなんだなぁ
PIC内蔵のEEPROMのみに外部のPICから書き込む事ってできる?
外部からIDを割り付け出来たらと考えてみたりして。
できる。というか、大抵の手製ライタはPICで書き込み制御してるだろw
PICにHost Portってあった?
そっか。microchipのサイトへ飛んでくる。
シリアル通信なんかでデータを渡し、書き込もうかと思ってた。
某サイトのpicの説明に「PIC社が出したコントローラ用RISCマイクロプロセッサ」とかあって笑った
639 :
78:2007/05/22(火) 21:01:56 ID:RqE8RpIy
>>622 >>626 ありがとうございます。
うーむ 動きません。。。
ひとつだけ疑問
以前16F88で同様の質問をしたとき、
>>87 >>89 で、_HS_OSC でなく、EXTCLK と教えていただきました。
今回も水晶16MHzを使用しているので、同じことがいえるのでしょうか?
しかし、mikroC の12F683 の画面では、 EXTCLK というフラッグは
なく(16F88だとある)、それらしきものとして、
_EXTRC_OSC_NOCLKOUT
_EXTRC_OSC_CLKOUT
_EXTRCIO
_EXTRC
というのがあるのですが・・・
よろしくお願いいたします。
データシートに全部書いてる
回路図の上としたではFOSCの設定は異なる
下のは内部クロックだよ
642 :
78:2007/05/22(火) 22:05:49 ID:RqE8RpIy
>>640 もちろん書き込む前に見てみましたが、
勉強不足なのでしょうが(
>>82 )、わかりません。
>>641 いずれも水晶16MHz→12F683ではないでしょうか???
>642
>641が言ったのは
ttp://www8.plala.or.jp/InHisTime/PIC-006/FreqLockV2.bmp の回路図中の88と683はクロックのソースが違うってことでしょ。
以前あなたが聞いたのは
ttp://www8.plala.or.jp/InHisTime/page018.html#PIC-013 の回路図中の88でしょ。確かにどちらも外部クロック→PICで同じだけど
あなたの書き方が悪いから混乱するんですよ。
で、あなたが求めてる683に必要なのはおそらく
_EC_OSC
picのクロック回路は大まかに言って
(1)内蔵(internal)クロック
(2)外部(external)の発信器を内部の発振回路でドライブ
(3)外部(external)の発振回路の出力を入力
の3種類があります。
今回は(3)です。
>639であがっている
_EXTRC_OSC_NOCLKOUT
_EXTRC_OSC_CLKOUT
_EXTRCIO
_EXTRC
はどれも(2)のパターン。4種類あるように見えるけど
_EXTRC_OSC_NOCLKOUT
と
_EXTRCIO
および
_EXTRC_OSC_CLKOUT
と
_EXTRC
は同じ内容なので、実質2種類。発振回路自体はPIC内部にあるのでそのクロックを
他の回路で使うことを考えて外部に出力する設定がある。必要ないときはI/Oにする
ということ。
逆に(3)のパターンでは発振回路自体がPICの外部にあるのでわざわざPICからクロック
出力する必要が無いので、OSC2端子は常にI/O
ちなみに
_LP_OSC
_XT_OSC
_HS_OSC
も(2)のパターンだけどOSC1/OSC2の両方の端子を占有してしまうので、I/Oとして利用
できる設定は存在しない。
644 :
78:2007/05/23(水) 00:47:37 ID:ngk4Z3pP
>>644 16MHzのOSCがちゃんと入力できてないとか…
OSCのモードがRCぃ
ぅぅぅぅ....。
>644
0.1Hzだとどうだろうね・・・ちゃんと点滅してるけどぱっとみ点灯しているように
見えるだけとかはないよね?
まぁ、俺はそのサイトの中の人じゃないので知らないよ。
0.1Hzってなんだよ・・・0.1sと10Hzがごっちゃに・・・
ついでにいうと、分周されるからLEDの点滅は5Hzか・・・
>>644 生成されたHEXファイルあげてみなよ コピペでもなんでもいいから
651 :
78:2007/05/23(水) 07:52:48 ID:ngk4Z3pP
>>650 すみませんよろしくお願いします。。。
:100000002D28FF3FFF3FFF3FFF00030E8301A100AC
:100010000408A0000A08A2008A0100308C1A0130EE
:10002000F1007108013A031D24288C1205140030D8
:10003000051A0130F1007109F0000030701810301D
:10004000050610398506051022088A00200884005C
:10005000210E8300FF0E7F0E0900703003138316FC
:100060008F0007308312990083169F012830850086
:1000700081130B128B1001138B110B108C16831232
:100080008C120B30950050309300C33094008B12CB
:100090000B1181018316811201128111011081104F
:1000A00001110C1083120C108E018F011016901686
:1000B000101483168C1083128C10121112109210CF
:1000C00091010B178B1763286428FF3FFF3FFF3F09
:02400E00D330AD
:00000001FF
652 :
621:2007/05/23(水) 09:44:01 ID:rEQaEGHe
>>651 Configは合ってるみたいだな
2007H = 30D3HだとOSCはECだぞ。動かないのは他が原因だと思う。
mikroCは使った事ないけど
暇なのでHEXファイルをMPLABでシミュレーションして見た。
ぴったり100mSで割り込みを実行していたのでHEXファイル
は正解っぽい。
Config は問題なさそうだし
ハードか
655 :
78:2007/05/23(水) 14:49:35 ID:ngk4Z3pP
皆様ありがとうございます!
うーん ハードですか・・・
無意識の内に8ピンにVCCを接続して
破壊させた事があるぞ orz
たったそんだけのHEXになるならソースも短いだろ。なんでソースを晒さんの。
割り込みは240サイクルごと(MPLABシミュレータ上)ごとに発生してはいる。
GP4は微動だにしてないが、GP2がFoscの1/16くらいでトグルしてるな。
typoした
× 240サイクルごと
〇 249サイクルごと
>>657 使用しているMPLAB 7.6ではシミュレーションで
GP4も100mS周期で反転しているみたいだけど
ソース
>>618
>>655 あともうちょっとで動作するから がんがれ
一番あやしぃのはクロックのモジュール
実は普通のクリスタル繋いでるとかない?
一旦 内部クロックにしてLEDの点滅を確認するとかして
どこに問題があるのか切り分ける
662 :
78:2007/05/23(水) 20:50:10 ID:ngk4Z3pP
>>660 そうです。お手数おかけしました。
>>661 ありがとうございます(涙)
水晶発振器を使用しています。
デジタルテスタのfreqモードで16MHzの発振が確認できます。
> 一旦 内部クロックにして
申し訳ありません。方法がわからず、勉強してみます。
:02400E00D330AD → :02400E00D430AC
これで INTOSCIO
664 :
78:2007/05/23(水) 21:22:50 ID:ngk4Z3pP
>>663 速レスありがとうございます。
何から何まで すみませんが、
ご指示のようにhexファイルを直して、
上書き保存すると、拡張子txtがついてしまうので、
その拡張子を外してファイルネームを変更し、
書き込みソフトでloadしようとしたのですが、
読み込めません。
>664
だったらhexを直接いじるんじゃなくてコンフィグの
_EC_OSCを_INTOSCIOにしてコンパイルしなおせばいいじゃない。
>>665 それをどうやるか まだわかっていないみたいで・・・・
>>664 上書きじゃなくて
名前をつけて保存 ファイルの種類を全てにしてから ファイル名をtemp.hex にして保存
*tempの部分はご自由に
667 :
78:2007/05/23(水) 21:44:49 ID:ngk4Z3pP
>>665 やってみました。やはり点滅ではなく点灯です。
ビルドされたhexファイルの内容をコピペします。
:100000002D28FF3FFF3FFF3FFF00030E8301A100AC
:100010000408A0000A08A2008A0100308C1A0130EE
:10002000F1007108013A031D24288C1205140030D8
:10003000051A0130F1007109F0000030701810301D
:10004000050610398506051022088A00200884005C
:10005000210E8300FF0E7F0E0900703003138316FC
:100060008F0007308312990083169F012830850086
:1000700081130B128B1001138B110B108C16831232
:100080008C120B30950050309300C33094008B12CB
:100090000B1181018316811201128111011081104F
:1000A00001110C1083120C108E018F011016901686
:1000B000101483168C1083128C10121112109210CF
:1000C00091010B178B1763286428FF3FFF3FFF3F09
:02400E00D430AC
:00000001FF
しょうがない今日仕入れてきた12F683があるから ブレッドボードに挿してやってみるか
669 :
78:2007/05/23(水) 21:57:44 ID:ngk4Z3pP
>>NBYgilC8
申し訳ございません
>668の実験がなかなか終わらないらしいからちょっと愚痴でも書こうかな。
>666
> それをどうやるか まだわかっていないみたいで・・・・
書き込む前に数日文のレスぐらい読んだほうがいいよ。
>669 他 ID:ngk4Z3pP
今回の683ぐらいのトラブルは初心者が問題解決の練習としてちょうど
いいぐらいの難易度なんだから他人に頼らずに自分で解決しようとして
みたら?
どうもあなたの書き込みを見てると他力本願なかんじがしてならない。
言うまでも無いことだけど、勉強したい初心者の手助けはしたいと思うけど
初心者を装ったクレクレ君のお守りをしてあげるつもりは無いので。
クロックモジュールがないのでINTOSCIO でやってるが LEDをGP0に繋ぐと
パルス確認できるぞ オシロあるけどアースの変換ケーブルがないので今はできないけどな
672 :
78:2007/05/23(水) 23:10:55 ID:ngk4Z3pP
>>670 <1>
前提として
>>1の主旨には反していないと自分なりに判断しました。
また、自分の基本的な目的は
>>82で表明したつもりです。
ご不快感を与えてしまったのなら謝罪いたします。
<2>
>>666 を書き込んだ方のID を今一度ご確認願います。
<3>
>今回の683ぐらいのトラブルは初心者が問題解決の練習としてちょうど
>いいぐらいの難易度なんだから
申し訳ございませんが自分では判断できませんでした。
>>671 NBYgilC8さん、本当にご親切いただき心に染みます。
何度も見直したつもりですが、どこか私にウスラバカな間違い
があるのでしょうね。
そこまでしていただき、もう十分です。
また、貴方に対して他の方から微妙な表現までされてしまい、
申し訳ございません。ありがとうございました。
673 :
78:2007/05/23(水) 23:16:34 ID:ngk4Z3pP
>>670 書き忘れました。
>初心者を装ったクレクレ君
確かに
>>82で表明した内容はクレクレ君だったですね。
しかし、初心者を装ってはいません。
貴方のミッションはこれを完成させることです。 あきらめずやってください
定番の16F84あたりでLEDピコピコでも作ってじっくり弄ってみてください
ほんの一年前ぐらいまでは自分も似たような感じだったし・・・・
では めげずにがんばってください
>673
わざわざ愚痴にレスをしてもらったので一応。
<1>
あなたの言っていることは間違ってない。
<2>
数日分のレスを読めばID:ngk4Z3pPがコンパイル時のコンフィグの設定変更方を
知っていることは読み取れるであろうといった程度の意味で書いたんだが。
<3>
PICの勉強をするための例題として件の回路を選んだんでしょ?それはPICの勉強を
するに際して自分のレベルに適していると判断したからではないの?
> しかし、初心者を装ってはいません。
そうか。じゃあ>78の名前欄を100回読め。
別にあなたがクレクレ君だというつもりは無いよ。ただ、質問の内容から自己解決する
ための手がかりを得ようとする意思が感じられないように思えただけ。
折角マイコンの勉強をしたいと思った貴方なのに本当のクレクレ君になってほしくなかったんですよ。
まぁ、俺はひねくれ者だけど、このスレの人間は基本的に初心者に優しいのでなんかあったら
またこのスレにきてください。
>674
ID:NBYgilC8氏もお疲れ様です。
別に貴方の事を悪く言うつもりも無かったのですが、なんだかけんか腰になってしまった
みたいでごめんなさいね。
>all
スレ汚しすみみませんでした。
なんだかんだ言ってもみんないい香具師だね
がんばっておくれ
何時の日か 「できた」と報告があればいいね
自力で解決すれば勉強になるけど、初心者にはちょっと難しいトラブルかもしれないな。
落とし穴がいくつも仕掛けられてる感じ。
まず1つ目は件のサイトにConfigが示されていないこと。
ある程度の経験があれば、回路やその動作原理から想像が付くけど、
今回の流れのようにOSCに気をとられてBODもMCLRもDisableにしてしまうと、
中途半端な電源ON/OFFで容易にリセット失敗状態に陥ってしまう。
ちなみに
>>667のHEXは動作(LED点滅)したけれど、電源OFF後に
電源電圧がちょうど1Vくらいに落ちたところで
電源を入れると動作しなくなった。->LED点灯または消灯
完全に0Vまで放電後電源を入れると動作する。
2つ目は
OPTION_REG.F7 = 0;
[弱プルアップ有効]
このソースでOSCモジュールが0V-5Vのフルスイングか
1/2VccのBIASにクロックを載せて出力していればいいけど、
AC結合の1Vp_pのような出力の場合、ポートの入力は'H'のままとなってしまう。
使用する16MHzOSCモジュールの種類によっては罠にはまってしまうことがある。
・・・といった感じかな?
あぢぃ
681 :
774ワット発電中さん:2007/05/24(木) 18:11:24 ID:7q7BqU3v
マルツで24FJがあるみたいだけれど、
書込み器はICD2とか純正ライターしか対応してないのかな?
RAMが8Kもあって28PINのDIPがあるのが物凄い魅力なんだけれど、、、
使った人いないですか?
>>681 楽しそうなPICだな。
2クロックで1サイクル?
DIPといってもSPDIPじゃん。普通のユニバーサル基板に入らないよ。
秋月のライターが18シリーズにも対応し始めたって言うのはガイシュツ?
ほんとだ。でもα版だから普通のファームアップはできないのね。
ver.4キットをもう一個買えってか。
もうライタで悩むのやだからICD2を買っちゃった。速くて便利だよ。
>>683 釣られよう
28pinでDIPと言えば600mil、SPDIPは300mil
100milピッチのユニバーサル基板が「普通」だと
すれば入る。
688 :
683:2007/05/24(木) 20:55:13 ID:jzZruqxo
勘違いしてた… orz
データシートみたら(16F876なんかと同じ)細身の28pin DIPになってた。
SPDIPというのはSkinny PDIPのことなのね。SDIP(Shrink DIP)の仲間かと思ってますた。
ごめんなさい
PROMATEUいらなくなったんだけど、ヤフオクに出していくらくらいで売れるかね?
ソケットは3つ付き
たぶん8ピン〜28ピンならほとんど対応してる
24シリーズへの書き込みならPICkit2でも出来るよ。
691 :
774ワット発電中さん:2007/05/24(木) 22:21:50 ID:m5OcS90Z
>>680 本当だ!!
古い資料みてて対応して無いと思い込んでた、、、
24FJのデータシート眺めているのですが、
24FJシリーズは電源が2系統必要の認識であってます?
CPU−CORE用電源2.5VとI/O用<5Vってこと?
>>692 LDOレギュレータが付いてるらしい。VDDCORE/CAPピンがあるので
内蔵/外部、お好きなほうで行けるんじゃないかな
694 :
774ワット発電中さん:2007/05/25(金) 10:30:59 ID:zfT3JYK+
電源VDDは標準3.3VでVDDCOREが2.5Vだよね。そして5Vトレラント入力
>>693 データシート-23.2に記述がありました
3.3V電源のみで駆動可能のようです
出力もPIN毎のOPEN-DRAIN設定を行えば、5.5Vまで直結できる
おぉ、、、なんか3.3V系と5V系の混在に頭悩ます必要が無くなるデバイスですね
697 :
774ワット発電中さん:2007/05/25(金) 23:19:26 ID:XZtMDcb0
PORTBの0〜5ビットを入力、6,7ビット目を出力としています。
RB0〜RB5に入力される電圧レベル(HかLか)を判定し、
それに応じてRB6、RB7に出力を行いたいのですが、
RB0〜RB5への入力電圧の判定はどのように行うのがエレガントなんでしょうか?
0〜5までのビットを持ってきて、1を引いて0ならとするのは普通の方法なんでしょうか?
文章が苦手だったらせめてプログラムくらい例示したら?
>RB0〜RB5への入力電圧の判定
と
>0〜5までのビットを持ってきて、1を引いて0なら…
の
つながりがわからないネ
>697
何がしたいのかよく分からないから、答えようがないけど・・・
分岐条件が簡単ならBTFSCとBTFSSで単純にチェック、
ほとんどすべてのパターンで違う分岐に行くならRETLWの
テーブルの応用でCASE文みたいな感じにするかなぁ?
いつもエレガントなコードを書こうとは思ってるけど、あまり
うまく行っていない人間のレスですが・・・
PCからPICへ、FT232RL経由でRS-232Cでデータを送信しているのですが、
0〜127まで値の1バイトデータはPICで受信可能なのに、128を超えた
あたりから値が0になる問題に見舞われています。
全てが0になるのでなく、例えば128とか160とかの値は受信出来ます。
129,130は0になりました。
同じ値を送ると、毎回同じ結果となります。
このような現象は起きうるのでしょうか。また回避法はないのでしょうか。
よろしければお知恵をお貸しください。
PIC:PIC18F4525
C:CCS-C(MCH)
MPLAB7.21利用
送受信 データビット=8、ノンパリティ、ストップビット1
速度115200(低速でも同じ現象が起きる),非同期
ハードウェアのUSART機能を利用
>>702 PCから正しいデータが送られているのは確認できているのか?
704 :
702:2007/05/26(土) 20:36:26 ID:JR0ByRcc
PC側のソフトは何度も確認しましたが、問題はありません。
VB6でMSCOMM.OUTPUT=chr(1バイトデータ)として送信しているだけです。
連続送信でのトラブルを回避するためにインターバルを入れてみましたが
改善しません。データがずれた、ということでもありません。
少なくとも0〜127以下のデータは正しくPCから受信できています。
それまでの作業では127以下のデータしか送っていなかったので、
こういうトラブルが起きるとは思わなかったくらい、問題なく
通信できていました。
>>702 ちゃんと障害箇所切り分けしてる?
FT232RLの出力をPCのRS-232Cで受信して、正常に受信できるか。
PCのRS232CからPICに送信して、正常に受信できるか。
どっちかが不可になったら、そこがおかしい。
>>704 >PC側のソフトは何度も確認しましたが、問題はありません。
>VB6でMSCOMM.OUTPUT=chr(1バイトデータ)として送信しているだけです。
だから、それで本当に128以上の正しいデータが出てる確認は出来てるのか?
VB6のMSCOMMでやってるから問題ないと信じてるだけなんじゃないのか?
まあ、一番あやしいのがVB6のMSCOMMだがな。
707 :
702:2007/05/26(土) 20:59:10 ID:JR0ByRcc
>705
正確な返答になっているかはわかりませんが、
PICからPCへの送信はprintfで行っていて、問題なく受信できています。
PCからの送信(PICの受信)の際に、702での問題が起きます。
PICへの送信データにbit7が入っていると、何らかのルールで受信不良(値0)が
起こるといった感じです。
bit7を無視してプログラムを組めば良いかもしれませんが、何か
悔しい気もします。
>>707 PCから出てるかどうかは確認できてないんだろ。
"MSCOMM キャラクタコード"
で、ググれ。
709 :
702:2007/05/26(土) 21:08:04 ID:JR0ByRcc
>706
MSCOMMが怪しいなら、根本的な対策は不可かもしれませんね。
でも、そういうことは起きうるのだろうか??
データビット、パリティ、ストップビット、速度という基本的な
設定しかしていなのですが、他に設定すべきことがあるのかな?
調べてみますね。
RS-232Cのモニターは所有していないので、ライン上での
データ確認は出来ませんが、
他に作った装置(MAX232搭載品)でデータの受信テストをすれば、MSCOMMの問題かどうかは
判別できるかもしれないですね。これはやってみます。
710 :
702:2007/05/26(土) 21:13:58 ID:JR0ByRcc
>708
「Output プロパティを使ってバイナリ データを送信する場合は、
バイト配列が格納されているバリアント型データを設定します。」
という情報を見つけました。
これを行えば上手く行きそうですね。試してみます。
有難う御座います!
>>710 「128以上の値のデータを送るにはバイナリモードに設定しないといけなかったんですね」
っていう、レスを期待してたんだが・・・
まあいいか。
713 :
702:2007/05/26(土) 21:53:50 ID:JR0ByRcc
実機でも送信出来ました。
皆様有難う御座います!
714 :
702:2007/05/26(土) 21:55:27 ID:JR0ByRcc
実機でも送信出来ました。
皆様有難う御座います!
普通ループバックとかでテストするだろ?
今日の教訓は正しいはずという思い込みほど
怖いものはないということか。
しかし、ID:ukExfVN1の手際よかったね。
エスパーかとオモタよ。
717 :
697:2007/05/27(日) 03:23:09 ID:SVpvTb7W
Bit Testでググったら解決しましたお手数おかけしました
が、しかし1ビットづつではなく、2ビットいっぺんに確認する際は
シフトして足してキャリーフラグが立ったら・・・・
のようにするべきなんでしょうか?
普通の人はどう書くんでしょうか?
方法は2つ
1、ポートからRAMに転送しておいて BTFSC/BTFSS で分岐
2、and 命令した後
・両方が0かどうかはゼロフラグを BTFSC/BTFSS
・それ以外は引き算か、XORした後、ゼロフラグ
簡単なのは1
>>717 ANDで回2ビット以外をマスク
比較命令で分岐(w
720 :
774ワット発電中さん:2007/05/28(月) 11:21:11 ID:/ghIXjAj
PICの回路を作りたいんだけどどうにもうまくいかない。
参考になるサイトなんてないですかね?
721 :
774ワット発電中さん:2007/05/28(月) 11:28:49 ID:yoZx9ybq
何がうまくいかないのか、、、エスパーまかせじゃうまくいかないよね。
722 :
774ワット発電中さん:2007/05/28(月) 11:40:40 ID:/ghIXjAj
ですねえ・・・すみません。
まだ回路の基本ができてないみたいで
自分でもどこが悪いのかよくわからんようになってきましたTωT;)
そんなあなたに出来合いのキット(ただし秋月は駄目よ)
724 :
774ワット発電中さん:2007/05/28(月) 12:04:28 ID:/ghIXjAj
出来合いのキット使いたいんだけど
作れって命令なんですTωT;
もうあるのに作れなんてしんじらんない・・・
なんだそりゃ 回路もなにを作るかモ不明
学校の演習か仕事かしらないけど、
試行錯誤の末に自分が作った物が動くとうれしいもんだよ。
小出し質問はPICスレの日常
秋月のはキットというより部品セットだからだよ。
回路図と動作原理理解してないと組み立て困難だからエレキットから始めた方が良い。
物によるが 確かに理解してないとドツボにはまることがある
ドツボにハマってからもっと簡単なキットに手を出すほうが勉強になるぞ。
電源ON直後の村田セラロック20MHzがきちんと発振しない。
基板はサンハヤトのMB-P02 。
指でランド触れれば発振開始する。
>>734 で、そのセラロックの型番とPICの型番は?
指で触れたランドはどこ? PICのピン? セラロックのピン?
半田付けは大丈夫? 基板汚れてない?
・PICのオシレータモード設定が誤っている
・ハンダ付けがテンプラ
・セラロックのほかに負荷Cを付けている
あたりじゃね?
セラロックまで配線長すぎるんじゃ?
直付けでも発振せんか?
セラロックに繋がってるスイッチ外して最短距離で配線しろ
ICSPの電源・信号の投入シーケンスがきちんとしてれば
スイッチでセラロックを殺す必要など無い
740 :
774ワット発電中さん:2007/05/29(火) 23:50:16 ID:Gssm8/Gm
セラロックも4メガヘルツを超えれば5Vの電源でないと発振しないわな。
といってみるてすつ
ブレッドボードでやってるとか
セラロックに切り替えスイッチってどんな冗談?
743 :
774ワット発電中さん:2007/05/30(水) 01:26:26 ID:msSqosPu
>>738 これが原因のようです。
至近距離で配線し直しで、安定しました。
基板はサンハヤトのMB-P02ですので、みなさんの指摘のようなICSP切替え
SWが入っています。
>>740 いつも単3電池2本で20MHZ発振させてますが何か
ま、趣味用途だしね
LEDを5×5にならべて、縦列方向のダイナミック点灯で数字や英字を表示させたいんですが、
何故か1列ずれて表示してしまいます。
回路はポートAを抵抗2kΩを介してトランジスタのベースにつなげて列を制御。
ポートBを抵抗220Ωを介してLEDに繋いで行を制御してます。
コードとしては
while(1)
{
output_a(0x01);//1列目に切り替え
delay_ms(3);
output_b(行ビットデータ);
output_a(0x02);//2列目に切り替え
delay_ms(3);
oubput_b(行ビットデータ);
・
・
・
output_a(0x10);//5列目に切り替え
delay_ms(3);
oubput_b(行ビットデータ);
}
何が悪いのかわかりません。アドバイスお願いします。
delay_msとoutput_bは逆なんじゃない?
>>748 ありがとうございます解決しました。
でもちょっとLEDが暗いのと、少しちらつきます。
何かキレイに表示させる良い方法は知りませんか?
チラツキはインターバル割り込みを使えば改善すると思う
暗いのは電流をLEDのパルス定格まで上げるしかない
>>749 output_a(0x01);//1列目に切り替え
output_b(行ビットデータ);
delay_ms(3);
output_b(行ビット全消灯データ); // ←追加
output_a(0x02);//2列目に切り替え
output_b(行ビットデータ);
と、列を変える前に消灯する行データを出力しないと、
次の行に前の行データが短期間だけど持ち越される
のではないか?
>>749 delay_msの値を小さくすればちらつきは少なくなると思う。
全消灯の時間を設ければ、表示がくっきりするかも。
暗いのはデューティが20%だからだよ。抵抗を小さくして電流を大きくするしかない。
while(1) {
output_a(0x00);//消灯
delay_us(10);
output_a(0x01);//1列目に切り替え
output_b(行ビットデータ);
delay_ms(2);
output_a(0x00);//消灯
delay_us(20);
output_a(0x02);//2列目に切り替え
output_b(行ビットデータ);
delay_ms(2);
>>749 1行あたり点灯時間3ミリ秒で5行だと、繰り返し周期15ミリ秒⇒毎秒の点灯回数は各行60回程度。
点灯回数は少なくとも毎秒100回はないとちらついて見える。150回以上は欲しいところ。
明るくするには点灯電流を増やすか、より高輝度のLEDを使うしかない。
連続して20mA流してちょうどの明るさのLEDだとすると、ダイナミック点灯で1/5の時間しか
点灯しないから、同じ明るさにするには100mA前後流す必要がある。
このくらいになるとPICで直接ドライブは無理だから、行もトランジスタ等のバッファを
使うのが無難。
連続3mAで十分な明るさの超高輝度LEDなら、5倍でも15mAだからPICで直接ドライブもいけそう。
みなさんどうもありがとうございます。
おかげでだいぶ良い感じになってきました!
これからスクロール表示にも挑戦してみようと思います。
ダイナミック点灯は結構周波数あげないとちらつくよね。
36Hzじゃ使い物にならんかった。
意外と人間の目の応答って速いんだね。
倍の72Hzで静止してればちらつかずに見えた。
インバータ点灯でない昔ながらの蛍光灯が、50Hz地域で100Hzの点滅だけど、
割とちらついて見えるからね。
60Hz地区の120Hz点滅だとめったいにちらついて見えないんだが。
(それでも体調によってはちらついて見える。)
759 :
774ワット発電中さん:2007/06/01(金) 02:42:43 ID:8IrmrgKI
>>443 共立のそれ(KBC-P18LAN)、発売になったお
\6615だって
おまいらこのキンタマをどう思う?
>>759 リレーにAC100V繋ぐやつが出てくる!
PIC、というかマイコン全般の初心者です。
ちょっとお聞きしたいのですが、ライターって、スレタイにあるようにWriter509がおすすめなんでしょうか?
安かったのでRCDライターキットを買い、組み立てて、一回書き込んでみたんですが(PICProg4U)、
その時はチップが駄目になってしまいました(書き込んだ後にデータを読み出しても書き込みが反映された形跡がない)。
もちろんチップ自体が不良品である可能性もあるのだろうけど、ライター自体の信頼性もちょっぴり疑ってしまっています…
可能性は
・ そもそも書けていない
・ 高い電圧で壊した
普通は書き込む事で壊れない。 壊れたとすれば電源回路のミス等で壊したのでしょう。
安定した書込器を買うのも選択肢だし、
その金で測定器類を買って、必死で書込器の不良を捜して修正するのも勉強だし
>>760 安いのには、安い理由があるわけで。
Writer509のほうが、RCDより確実なのは確かだが、最初に買うんだったら
キットより完成品を買ったほうがいいんじゃないか?
おとなしくPICkit2買いなさい
これから出てくる3.3Vのデバイスの書き込みも安心できるから
PIC16F84Aだけ使うならアマライターでもOK
初心者な質問です。
5本の出力信号 - | PIC | - 光ケーブル(1本) - | PIC | - 5本の信号入力信号
このようなシリアル通信をすることは可能なのでしょうか?
双方向ではなく、一方通行です。(できれば全2重がいいのですが)
2点間を絶縁しつつ、232Cのように信号線を何本も使うのではなく、
1本の光ケーブルで済ませたいのです。
PICのピの字もわからないのに
PIC16F873 x2 光1本, LEDその他部品だけ渡されました。
RX と TX だけを信号線として繋いでみたら動いたり動かなかったり。
動いても光ケーブルを途中で抜いたらもう2度と動かないし。
1本で済ませるような通信プロトコルがないと無理だと思うのです。
>766
PIC内臓のUSARTモジュールは、一方通行なら1本でいけるよ。
非同期シリアル通信、いわゆるRS232Cと同じ方式でなので。
まずは非絶縁でPIC同士の通信だけやってみたら?
768 :
761:2007/06/01(金) 14:38:40 ID:pefNEQJp
勉強になります。
書込器の解析よりは、まずPIC自体の勉強を優先させたいので安定した書込器を探すことにします。
どうもありがとうございました。
>767
ありがとうございます。USARTモジュールすら知りませんでした。 orz
RS232Cと同じと思ってても、232Cには信号線が数本接続しているから
光1本のRXとTXシグナルだけでどうやって処理しているのかと思って。
エラー処理さえきちんとすれば光1本でも実現できるのですね。やってみます。
「渡された」ってことは趣味じゃなくて仕事?
上司から「自分で工夫して勉強しろ」という意味で渡されたなら
自力でやらないと意味がなさそうだけど・・・
TTL<->光ケーブル変換モジュールは部品としてあるから、
活性挿抜(電源入れたまま接続を切ってしまう)対応のプログラムを
完成させるのが先かな。
まずはTTLレベルでスイッチ経由で接続して、
途中でスイッチ一度OFF(通信配線を切る)にしても復活するようにソフトを組む。
これがうまくいったら光通信モジュールを買ってきてつながれば終わり・・かと。
>>764 WAV方式ライタ面白そうだが、それもサウンドデバイスとの相性があるよなw
>>770 仕事ですし上司から「お手上げ」って渡された物です。
TTL-光変換モジュールはあるので取り付け、なんとか動作しました。
ただ一度でも光ケーブルを抜いたり、電源の中途半端な入れ方や
ケーブルの再接続すると固まった状態になって動作しません。
ソフトのエラー処理問題みたいですね。うがー。
>>764 サウンド出力を使うやつは波形の立ち上がりがビミョーだからねぇ…
そのサイトのRSなんちゃらの方が確実かもしれないな。
エレキジャックのやつはそのRSなんちゃらが付いてるんじゃなかったっけ?
>>772 信号の論理が逆になってるんじゃねーの?
光無しで信号はいりっぱなしみたいに。
>>773 RSなんちゃらも、かなりトリッキーなやり方をしてるけど、
組んでみたらあっさりうまくいったお
そうです、エレキジャックのデュアルライターは、Writer509/JDM両用なんだけど、
自身のファームを書き込む方法はRS-CR方式で、鶏卵問題を解決してまつ
さらにそのRS-CR方式は、作者のソフトを使うと、非常に信頼性・再現性も高い
あの作者はいいセンスしてるお( ^ω^)
>>774 オシロやLEDで確認しても大丈夫そうなんだけど、
一度エラーになると受信側が固まるっぽいです。
今はLEDだけど設計後が5KVの電圧スイッチ用なので
入りっぱとかはシャレならないす。
送信側は putc で 受信側は getc な事をしてるだけ。
エラー処理方法が分からないす (. ; _ ; )
とにかく頑張ります。
>>776 まさかPICのRXとTXをそのまま光に変換して通信してるってオチ?
_, ,_ そうです。 8bit信号入力 - PIC - TX - 光 - RX - PIC - 8bit信号出力
:.(;゚д゚):. それじゃあダメなんですか?
:.レV):.
:.<<:.
マンチェスターとかコーディングしてないのか
>>779 >エラー処理方法が分からないす (. ; _ ; )
このレスを見て思ったのだが、
・通信不能時、外部から光以外でスイッチを操作する手段あるの?
・通信断した場合のスイッチの挙動の仕様(Offになる/現状維持とか)
・送信側はどうやって通信断を検出するの?
この辺の仕様が詰められてない気がしたのは俺だけか?
>>781 そこまで仕様が詰めれるのなら、こんな問題起こってないだろ。
>781
激しく同意。特に
・通信断した場合のスイッチの挙動の仕様(Offになる/現状維持とか)
が決まらないとエラー処理も何もないかと。
少なくともこの部分は光とかプロトコルとか以前の問題。
調歩同期は スタートビットだけで同期してるから、その途中で抜けると必ずデータ化けする
だから、そういう用途なら必ずデータ化け確認の手段=チェックサムだの、XORだの、CRCだのが必要だ。
他の方法としては マンチェスタ符号や光リモコンのようなパルス幅変調
これなら、抜ければビット単位にデータが抜けるので調歩同期よりもCRCなどのチェックが弱くてもいい
785 :
774ワット発電中さん:2007/06/01(金) 21:00:34 ID:j5VATfnL
USARTのエラー処理って・・・要は通信中断されると大概フレーミングエラーやオーバーランエラーになるから
そのエラーフラグをクリアしてやれば桶。
それって基本だろ。
786 :
不明なデバイスさん:2007/06/01(金) 21:58:11 ID:RL2M3oI8
FPGAにもシリアライザー/デシリアライザーが入ってる時代なのに
789 :
774ワット発電中さん:2007/06/02(土) 01:20:34 ID:L8EXifmU
>>786 >問題は通信再開の方にあるんだけど。
どんな問題があるの? kwsk
どういう顔していいかわからない....。
パソコン通信世代なら、調歩同期での伝送エラー発生とリカバリなんて
いくらでも身をもって体験してるからピンと来るのにな。
こんなところでインターネット世代とのギャップを感じてしまう。
> 送信側はどうやって通信断を検出するの?
送り返して送信と受信が一致したら断線なしとか
794 :
技術奴隷:2007/06/02(土) 03:03:05 ID:OWunQja9
>>776 仕事でやってるなら
●MPLAB ICE4000インサーキットエミュレータ(MPLAB ICE4000 In-Circuit Emulator):
か、最低でも
●MPLAB ICD2 インサーキットデバッガ(MPLAB ICD2In-Circuit Debugger):
ttp://www.microchip.co.jp/tools.html を買って貰うのも手。固まってしまうのは今の段階ではソフトの問題だから
まず原因を調べる事が先決。マイコンをかじった事のある人ならデバッグ出力を出して仕事を進められるけど
そうで無く、Cから始めた様な人だと、まず、固まった時にPICがどの様な状態にあるのか把握するのが大変だから
ICEで直接見た方が理解しやすいと思う。
実機にのせるとノイズによる誤動作も有るので、それを見込んだプログラムを書かなきゃいけないけど
多分難しいだろうから
>今はLEDだけど設計後が5KVの電圧スイッチ用なので
>入りっぱとかはシャレならないす。
と言う事であれば、必要な信号線の分、光ファイバを使って直接ON/OFFした方が安全かも。
いずれにせよガンガレ
>>791 パソ通世代でも、エラー訂正なんてモデムがやってくれたし一般ユーザーは
エラー訂正なんて大して知らなかったんじゃないか?そもそもその時代は「文字化けしちゃった」
位で済ますのが普通であって、TCP/IPみたいにPC内部で再送処理なんかしてない事が多かった。
パソ通世代がターミナルソフトを使うのと今の人がIEを使うのは大差ないと思うよ。
勉強して理解してる奴は理解してるし、エロ画像専門の奴はそれなり。
ギャップを感じるのは単に(ry
教科書的な理解をしてるかどうかとは関係なく、パソ通世代は伝送エラーによる
文字化けというものを体験しているし、伝送エラーで化けたら化けなくなるまで
繰り返せばよいという最低限のエラー訂正プロトコルも実際に手を動かして
体験している。
どちらも、今の人がIEで体験したくてもできない・・・ということ自体、
体験がなければ指摘されるまでなかなか認識できないわけだが。
音響カプラなんて、横でどたばたされると文字化けしたりとかいろいろあったな。
まだ電話のモジュラージャックなんて一般的じゃなかった時代さ(ふっ
797 :
774ワット発電中さん:2007/06/02(土) 10:08:23 ID:HOZsGFUT
データ転送といえばアマチュア無線のパケット通信のTNCだっけ?
あれってPICやAVRじゃ作れないのかな?
Z80で前に見たような気がするけどPICやAVRだとメモリ足りないのかな。
798 :
774ワット発電中さん:2007/06/02(土) 11:16:18 ID:bPO4tCh0
799 :
774ワット発電中さん:2007/06/02(土) 11:17:21 ID:bPO4tCh0
違った WB8WGAだった。
サウンドじゃなく、画面の点滅で焼けるようなの作ってよ。
非接触型が欲しい。
画面をチカチカさせるソフトと、
LEDを光センサとして受信して焼くハードの組み合わせ。
問題は読み出せないこと。
801 :
のうし:2007/06/02(土) 12:54:25 ID:SbukU6/j
PICでそーやってるのをいつだかのトラ技の特集でやっていた。
CdSで画面からシリアル点滅を読んでロードするみょーなやつ。
それをやってる写真があったけどそこに写ってた女(だと思う)が凄っごく理工ブスだったやうな‥
>>799 海外では既にあるのですか、参考にしてみます。
>>801 たしかLEDが8個くらいついてて振ると文字が出るっていうのだっけ?
画面で表示させる文字のデータを受信するっていうのだったかな。
SDCC 2.7.0 でたねー
804 :
PIC初心者:2007/06/02(土) 23:34:52 ID:U5CbOowi
はじめまして、PIC12f629マイコンを使って、入力した信号(別のマイコンから出たPWM信号)を遅延して、
遅延した信号と元の信号のANDとORを取って出力するプログラムを作りたいのですが、
初心者なので、なかなかうまくいきません。PICCLiteかアセンブラで書きたいと
思っているのですが、どなたかご教授ください。おねがいします。
なかなかすごいのが現れたぞ。
まずは自分でなんやかんややってみて
つまずいたら質問してね。
最初から質問なんて、PIC道に反します。
>>803 SDCCって、どのあたりまでのPICをサポートしてんの?
>>804 PWMの周期や幅が分からないけどマイコンで取り込んだら
タイミングがガタガタになりそうだね。
CR遅延とゲートICで組むべきでは
>>804 うまくいかないって、今どうやって実現しようとしてるの?
PWM信号の仕様とか、遅延量、波形の精度・分解能とか・・・
PICのプログラム処理でやれるレベルなのか?
Microchip PIC10F Design Contest っていうのがあったらしいね。
もう締め切っちゃったけど。
上位100作品にはPicKit2他、上位10作品には2000US$+ICD2だって。
何で誰も教えてくれなかったんだよ〜
>>811 これって世界規模なんだよね。しかも作品じゃなくてアイディア募集。
いったい何百件応募があったやらw
>>810 SDCCはMPLABに統合できるプラグインなんてあるのかな?
マニュアルみた限りは見当たらなかったんだけど・・・
先月調べた段階では、なかった。
gputilsまでは統合できるんだけどね。
815 :
774ワット発電中さん:2007/06/03(日) 11:21:22 ID:vyALk4UM
スレの流れを読まないで申し訳ないんだが、
前に「ロボティクスX1ボード」っていうサーボを最高8個まで制御できるマイクロコントローラーについて聞いたんだが、入手方法など知っている人がいたら教えてくれないだろうか?
MPLABのエディタってバグありませんか?
最新バージョンのをCCSCコンパイラと統合して使ってるんですけど、
普通intとか#defineとか定義すると色が変わるじゃないですか?
でもある行だけ変わらなかったり、コメントみたいな色になったりするんですが…
そんなにあるんだ。PikLabは知ってけど、Linux用だと思ってた。
MPLABと比べてできはどうなんだろ。
820 :
774ワット発電中さん:2007/06/03(日) 18:27:50 ID:vyALk4UM
821 :
774ワット発電中さん:2007/06/03(日) 18:28:51 ID:vyALk4UM
822 :
774ワット発電中さん:2007/06/03(日) 19:49:02 ID:EcqPl6Hb
823 :
774ワット発電中さん:2007/06/03(日) 19:54:57 ID:EcqPl6Hb
またえらく活用されなさそうなフォーラムを作ったもんだなw
>>816 それは昔からだよ。
全角文字に弱いみたい。
行末に全角文字がある場合、文字によってはそういう挙動を示す。
行末の全角文字の後に半角文字のスペースなどを入れてやると直った気がする。
PICでも使えるGCCってまだ無いの?
やっぱエディタはMIFESでしょ(w
MIFES懐かしいな、MS-DOS時代はすごく良いエディタだった。
Windows版出したけど売れなくて消えたな。
ああ、まだ売ってるんだ。ていうか高けえな。
4000yenの秀丸でいいや。
Vz
xyzzy
XPでも、まだ健在だったか。EDLIN
C:\>edlin hoge.c
新しいファイルです.
*i
1:*#include <stdio.h>
2:*^C
*E
C:\>
もちろん、プロは
C:\>copy con hoge.c
#include <stdio.h>
^Z
1 個のファイルをコピーしました。
C:\>
ってやる。
復活したんじゃないか?
>>835 それたまにやってた、AUTOEXEC.BAT書くときとかに。
C:\>adddrv /?
キャラクタ型デバイスドライバを組み込みます.
ADDDRV [ドライブ:][パス]ファイル名
[ドライブ:][パス]ファイル名 定義ファイルを指定します.
おー、こんなものまで、まだあるのか!
TSRとか、懐かしい言葉が浮かんできそうだ
>>685 βが出てもう一個買わなくてもおk
はガイシュツ?
761です。先日はどうもありがとうございました。
>>765さんのご忠告どおりpickit2、買って来ました。
これであと10年は戦える!(`・ω・´) シャキーン
と思ったらレッドバージョンなんてのもあるのね(´・ω・`)ショボーン
色なんてどうでもいいじゃまいか
ここは20年以上も時間が遅れているのか
元気なオヤジどもめ..........
help|more でDOS窓も進化してることがわかるぞ
ソースブースト、6.0は知らないが、以前のバージョンはライブラリが「ないも同然」だった
使い物になる組み込み関数の多寡って、けっこう大事だぞ
まあそれを言いだすとCCS-Cの圧勝になっちゃうんだが・・・
16F88初めて使ったんだが
input_a(x)すらできねえ・・CCS-C
trisも設定したし、ADC,コンパレータもOFFにしたし
外部プルアップしてもLOWにおっこちたまま。
なんじゃこりゃ
>>848 どっかのサイトに書いてあったけど(英文のマニュアルに書いてある)が16f88のポートAってデフォルトでアナログの設定になってるらしいから、trisのまえに
setup_adc_ports(NO_ANALOGS);
//各ピンのインプット、アウトプットの設定
//0・・出力に。1・・入力に。
set_TRIS_A(0b11111111);
って設定してやらないとデジタル入出力にならないんよ。
>849
なるほどサンクス!
851 :
774ワット発電中さん:2007/06/07(木) 21:21:43 ID:bGi/oHQ2
>>848 16F88は初心者には向いてないよ。
素直に16F84Aから始めるとよいね。
84は知ってるでしょ
>>842 赤バージョン改造は簡単.
チップ抵抗を交換してなんて馬鹿なことを考えずに,
おとなしく1/8Wまたは1/6Wの抵抗を貼り付けなさい.
(抵抗値を小さくしなければいけないところはチップ抵抗はずさずにに並列接続)
プラケースには余裕があるから大丈夫!
855 :
774ワット発電中さん:2007/06/07(木) 22:39:31 ID:8+o5JjvR
ついさっきPICを始めたばかりなのですが16F84Aでラジコン用RCサーボを幾つか動かしたいのですが一個のPICで同時に何個まで動かせると思いますか?C言語で開発したいと考えてます。ちょっとした質問
>>855 PWM機能を持っているマイコンを使ったほうが楽と思う。
ソフトウェアPWMでいけるかなぁ?だとすれば、13個か?w
>>855 仕様と才能次第。
サーボ信号周期は?分解能は?サーボ位置の(PICへの)指示方法は?PICのクロックは?
>855
RCサーボの制御用PWMのDuty比は大体10%以下だから力技でも10個までは
いけるんじゃないの?
あとは>857の言うとおり仕様次第。
>856のいうPWM機能ってちょうどいい周波数ってあったけか?
タイマとソフトウェアでやるほうが簡単じゃないかな。
RCサーボはおよそ50Hz周期の
____|~~~|___________________________________________________|~~~|______
|<---------約15〜22ms---------------->|
1.5ms のHパルスが中立で 1〜2msパルス幅で制御する
こんなパルス波形だから複数を
____|~~~|___________________________________________________|~~~|______
____________|~~~|___________________________________________________|~~~|______
_____________________|~~~|___________________________________________________|~~~|______
と言う感じで出せば、この1〜2msの間割り込み禁止すればいいので6台くらいは楽勝
>>855 16F88はPWM機能がある。
とりあえず16F84Aあたりからやるのが無難かな
あっと
>>859 の図で H パルスの幅にはシビアだけど Lの幅には甘いから
Hの間だけ割り込み禁止して nopでwait してL出して
割り込み許可して、次のポートの処理して
って感じでイケルよって事ね。
863 :
855:2007/06/08(金) 00:20:14 ID:VRkzn0vY
レスありがとうございます。
イメージ的には862さんのと同じですね。(私も最初調べたときリンク先を見ました。)
16F88が最強とは聞いたのですがコンセプトはフリーの環境でいかに多くのサーボを制御するか・・・みたいな感じなので
最初にPICやるなら84Aからがいいよと勧められた経緯もあります。
サーボですがプチロボのサーボを使いたいと考えてます。サーボの詳しいデータシートがあればよかったのですがちょっと探しきれませんでした。
分解能は512ぐらいあれば十分かと思います。
PICの動作周波数は10MHZのを使ってますが20MHZが使えるようであれば20MHZにしようかなと考えてます。
サーボ位置の(PICへの)指示方法ですがこれがまだ決めてません。まずはボタンで右左動かそうとは考えていますがPWMジェネレーターにした16F84Aとは
別のPIC(おそらくこちらも16F84Aで)とで通信させてみたいのです。まだ細かな仕様は決めてません。説明不足ですみません。
>863
> 分解能は512ぐらいあれば十分かと思います。
パルス幅1〜2msを512段階だから1段階あたり2usか・・・10MHzのクロックで
1命令サイクル0.4usだから割り込み使わないと厳しいね。
しかし、PIC側はともかくRCサーボってそんなに分解能取れたっけか?
> 別のPIC(おそらくこちらも16F84Aで)とで通信させてみたいのです。
上の条件でタイミングの条件が厳しくなるならマイコン同士の通信は内臓
モジュールを使ったほうがいい。USART、SPI、I2Cといろいろあるけどどれを
選ぶにしてもPIC16F88かな。
ただ、PIC同士(にかかわらずだけど)の通信は簡単なように見えて初心者には
引っかかりやすいところが多いから最初はPIC16F84Aひとつだけでやってみる
のがお勧めです。
ま。なんにせよがんばってください。
PICからのサーボ出力は何も1個づつしかだめってことはないので、
複数オンしておいてそれぞれ必要なタイミングでオフすればたくさん
制御できる。まぁ、電源が弱ければできないけど。
分解能512は意味が無いと思う。
無駄に苦労が増えて益無し。 せいぜい256。 これでも十分すぎる。
12Mのクロックで、12命令分が時間分解能だから
これだと割り込みでは逆に厳しい。
割り込み禁止して12命令のループで2つのカウンタを処理すれば
12個くらい処理出来るだろうけど、
ただ問題は、この方式だと割り込み禁止期間が大きいから通信が難しい事だな。
PSoCだと8ビットPWMで良ければ16個、プリスケーラで一つ潰しても15個
通信はI2Cで・・と、つい考えてしまう
869 :
866:2007/06/08(金) 10:06:40 ID:RMxakuIk
>>863 その内容なら、アセンブラで書くなら出力ポート全部(PIC16F84Aなら13本)に
分解能500で出力しても十分いけるが(それだと制御入力ピンがなくなるがw)、
Cで書くんだとコンパイラの最適化能力次第かな。
タイトループの実行時間が長いと分解能は落とさざるを得ない。
もっとも、分解能は100もあれば十分かという気もするが。
プロポ位置決めパルスの出力中は他の実行時間不定の処理(割り込み含む)が
できないから、PIC16F84Aでソフトシリアルで通信するには一工夫が必要。
PIC16F88等のシリアル機能内蔵品種を使えばパルス出力中でもシリアル送受信が
できるから、対策はぐっと楽になる。
>>868 スレ違いだが、位置決めパルス周期20ms、パルス幅の可変域が1ms、可変域の
分解能が8ビットとすると、PWMの分解能は13ビット弱必要。
8ビットPWMでは可変域の分解能が実質4ビット弱しかなくなってしまって全然足りない。
といって16ビットPWMを使うと1チャネルあたり2ブロック食うのでもったいない。
各チャネルを8ビットタイマ、その立ち上がりタイミングを別のタイマで
取るようにすれば、実質分解能8ビットのまま16ブロックで15チャネル取れる。
8ビットPWMのEnableを1個の16ビットPWMで一斉にコントロールしてやるとかな
PICに興味を持ったのですが、適当に本買えばなんとかできますか?
一応PC組めてC使える位のスキルはあるんですが・・・
分解能で必要なタイミングで割り込みを掛け、チャンネルごとにHiかLoか判断してパタパタさせる。
割り込みから抜けたら通信とかをする。
通信で取りこぼしをしないためには分解能を下げる必要があるかも知れない。
>>872 その「なんとか」が、LEDをチカチカさせる程度か二足歩行ロボットをコントロールするかによって変わるぞ。
>>674 LEDチカチカの方からステップアップしたいと考えています
それなら、余裕でOK だと思う。
>>876 ありがとうございます
早速明日にでも挑戦してみたいと思います
picって初めて触った時はLEDチカチカどころか
「チカ」させるだけで3日ぐらい掛かったよ。
もう20年以上昔の話だけど。
>>879 丁度今参考書を探していたところです
分かりやすそうですね。
似たような本で C言語によるPICプログラミング入門
てのを買った。
Cとアセンブリどっちの方がやり易いですか?
Cだとコンパイラが少ないみたいで心配なんですが・・・
制限あるけどfree のCがあるよ
mikroCってやつ バグがあるけど慣れたから使いやすい
>882
実際に書くのはCの方が楽だけどCを選ぶことはアセンブラの勉強を
しなくてよいことを意味しない。
最初はアセンブラから入るのが正解だと思う。
>>884 PICのアセンブラなんて、覚えるだけ人生の無駄遣い。
ちゃかちゃかとCで書け。
>>884に同意だけど算術演算とかってアセンブラでやってられない。フリーでもコンパイラは持ってたが良いよ。LEDチカチカくらいはアセンブラでいいかもしれないけど
>>882 趣味だから何をどういう順番でやってもいいわけだが、1つずつ着実に事を進める
性格だったら、既にスキルのあるC言語を使うことを勧める。そのほうが
「PICというハードウェアを使ってみること」と「アセンブラを新たに習得すること」を
同時にやるよりは敷居が低い。
漏れはロッククライミングのごとく苦労するのが楽しみで、何でもまとめて
一度に手をつけたがるタチだが。(そして挫折して放り出すことも多い。)
>>878 20年以上前からか。
Microchip社ができる前から使ってるとは凄いなw
>886
ほかのマイコンでアセンブリ言語に触れてるんならそのとおりだと思う。
逆に、初マイコンで高級言語から始めるなら選ぶべきはPICじゃないと思う。
まぁ、とにかくやってみれば?
すんなり使えるかトラブリまくるかは人によって違うし。
ここで聞いても始まらん。
行動あるのみ!ガンガレ
PICでC使うなら他のマイコン(AVRとか)でC使った方がよくないか。
PICでC使ってる参考資料はそれほど多くは無いから、参考資料少ない
てもいいのならPICにこだわらなくてもいいはず。
一から始めるならPICでは無く 新しいマイコンを使った方が楽だし
893 :
872:2007/06/09(土) 18:20:45 ID:FHOmvVxt
PICのライターが高くて手が出せません・・・
自作してみようと思いますが、おすすめはありますか?
894 :
技術奴隷:2007/06/09(土) 18:25:08 ID:o4W7FlDW
8bit PICはコンパイラ動かすのに向いたアーキテクチャじゃないから.........
大昔のリソースきちきちのDSPみたいな感じ
でも16bit PICはイイ!
>>893 PCはデスクトップかノートか?
PC本体にシリアルインターフェース(DSub-9)は付いているか?
学校/会社/知り合いにライターを借りることができるか?
つか予算は?
PICkit2くらい買えよw
PICやめてAVRにしたら?
AVRISPmkIIなら6000円程度で買えるよ。
gccも使えるし。
ヤフオクで書き込める奴3000円ぐらいで買った。
いろいろやったらLEDがピコピコするようになった。
嬉しい。
エレキジャックのPIC Dualライター、なかなかいいよ
鶏卵問題を予想以上に再現性の良い方法で解決してるし、安定動作するよ (^o^)
902 :
872:2007/06/09(土) 21:53:20 ID:FHOmvVxt
>>896 ノートPCを使っていて、232Cポートの変換アダプタは持っています
>>897 5000円くらいでできると嬉しいのですが・・・
秋葉原は電車で30分圏内なので、部品調達で困ることは無いかと
>>901 エレキジャックのPICライタですね
調べてみます
PICでwavもしくはmp3を再生することは可能でしょうか?
もし可能であれば参考になるサイトを教えていただけないでしょうか。
905 :
774ワット発電中さん:2007/06/09(土) 22:48:00 ID:HN74TQFS
> Vbe=0.6V 一定説の考察結果
"説"ってなんだよw。ヒトラー生存説みたいだなww。
味があるね、ダメ君の天然加減。
データシートに書いてある内容をわざわざSim乙です。
ライブラリの逆アセンブルみたいなもんだな。
> ぜひ追試検証を・検討をお願いします。
教えてくれと、なぜ素直に言えないのだろうか。
つーか、甘えてるというか。
だから”エンジニアじゃないのか?”って言われちゃうんだ。
世のレギュレータが動いているんだから、検証もなにも。
>入力電源方向へ流れ、2N3055は壊れてしまいます。
まだ逆流してるのね...。
Simの定電圧源、電流源じゃなくて、現実の回路は(ry
ダメンジョン君、実回路で検証してみては?
その行為なら価値があると思うよ。
すんまそん。誤爆しますた。
Damensionに関しては、PIC-ML同様、スルーでおながいしまつ。
>>902 Microchip Directで純正ライタPICkit 2を買ったら?
USB接続で手軽だし、VDDやVPPの電圧はPICの品種に応じて自動で変えてくれる。
1台$34.99+送料$15+税$1.75、合計$51.74、レート$1=125円として6,500円ほど。
3台まで送料$15だから、まとめて買って残りをヤフオクで売り払う手もある。
>>902 >232Cポートの変換アダプタは…
「ポートリプリケータ」や「ドック」のことならRCDライタでも動くかもしれない(ビミョーだけど)
「USB-RS232C変換」のことならRCDライタはたぶん無理。
でも、ノートPCなら「USB」または「USB-RS232C変換」対応のもののほうが無難。
信頼性が低いキットに2800円も出すなら、安いとこだと5900円くらいで買えるPICkit2を買ったほうがいい気がする。
書き込みが速くて、たいがいのPICは2-3秒で焼けてしまう。
Version2になって添付ソフトが糞重くなった(メモリ27MBも喰う)のが難点だが。
>>912 それってたしかKitsrusのdiypackそのまんまなんだよね。
久しぶりに現状どうなってるか見に行ったら、diypack26ベータ2まで来てたんだけど、
作者(newfound)が、あまりにも海賊版(コピーライトを削除した偽造品)が横行するんで
火病って公開を停止してしまってる(´・ω・`) ←まさしく今日の話
でも完全にぶち切れたわけではなく、diypack27を出す気はまだあるみたいなんで、
作者をこれ以上怒らせないように、生暖かく待ってるしか、ないみたいだね。
・・・まさかアドウィンのやつもライセンス守ってない海賊版とかじゃないよね?
せっかく回路図もファームも公開してくれてんだから、後ろ足で砂をひっかけるような
ことしちゃ、だめだよね(´・ω・`)
ライター関連でWisp628の著作権を意訳すると、個人で作るのは自由だが
プリント基板を配布するときは開発者も儲かるようにして欲しいらしい
やっぱり盛り上がるのはWriterネタのみなのか・・・
916 :
774ワット発電中さん:2007/06/15(金) 13:13:01 ID:CB3Dr0H1
16F873はVcc=5[V]以下でも動作させることができるんでしょうか?
>916
16MHzで動かすにはVcc=4.0V以上必要。
20MHzで動かすにはVcc=4.5V以上必要。
詳しくはデータシートのELECTRICAL CHARACTERISTICSの項目を
参照。
ただし、趣味のレベルでは3.3Vでも動作させられるものもあるみたい。
919 :
のうし:2007/06/15(金) 18:42:32 ID:03nKokoK
それやったらもうおしまい。
あとは目的がないから製作やプログラミングもせずにお蔵入り。
でも焼くことすらできなかったのもいたが‥ (○原)
ハードが弄れずに買っただけで理解した気分になる奴が多い。
>>916 動く保障はないが、単三電池二本で動いたりもする
921 :
78:2007/06/17(日) 17:44:22 ID:qvyRy0al
以前↓の件でお世話になった者です。
ttp://www8.plala.or.jp/InHisTime/page005.html#PIC-006 お蔭様で12F683は点滅しました。PIC自体の故障だったようです。
それで、またまた質問で恐縮ですが、16F88のCONFIGは、
_CCP1_RB3
_LVP_OFF
_WDT_OFF
_MCLR_OFF
_EXTCLK
でよろしいでしょうか?
PIN9に電圧が出ないのでCONFIGがおかしいのかと・・・
発振周波数の計測まではうまくいっているようで、周波数カウンタ
で測った周波数の動きと緑・赤・橙LEDの点滅状態は整合しています。
MikroCのバージョンは?
古いとPWMがうまくうごかないよ
ちなみに俺のは6.2.10
923 :
78:2007/06/17(日) 19:37:53 ID:qvyRy0al
なぜ_EXTCLK?
単に「よろしいでしょうか?」と聞くんじゃなくて
「〜という理由で〜にしましたが、これでよろしいでしょうか?」と聞くべき。
小出し、出し惜しみはやめましょう。
925 :
78:2007/06/17(日) 21:24:57 ID:qvyRy0al
つまり内容は考えてないのか。
まず考えろよ・・・
927 :
78:2007/06/17(日) 21:41:55 ID:qvyRy0al
すみません補足です。
申し訳ありませんが、私はPICの知識は殆どなく、
私が作ろうとしているもののレベルには全く至っておりません。
ただ、これを作ってみたいという一心でいろんなHPを見たり
皆さんに教えていただいて何とかここまで辿り着きました。
PICの勉強をしたいというより作ってみたいというのが正直なところです。
本来ならCONFIGの勉強をしてから質問すべきなのでしょうが、
>>1 を見て甘えさせていただきました。
>>921は実際のところ「CONFIGはどのようにすればよいのでしょうか?」
という質問になってしまいます。。。
Cだとソースコードにコンフィグビット書けないのか・・・
回路図、ソースコード、データシートを見て自分で考えた方が勉強になると思うよ
単に完成されたいだけならサイトオーナーに聞けば?
内部クロック 8Mhz INTRC_IO
回路図には載ってないけど5Vのレギュレーターにコンデンサーついてなくて
動かないとかない?
>>921 16F88には外部からクロック入力はないから、
_EXTCLK じゃなくて、
_INTRC_IO だと思うが。
931 :
78:2007/06/17(日) 22:37:16 ID:qvyRy0al
>>929 >>930 ありがとうございます。
クロックを_INTRC_IOでやってみましたが(他は
>>921のとおり)、
ダメでした。
PICまで5Vは来ており、また、
>>921で書いたとおり、周波数の
計測と3つのLCDの点灯まではきちんと動きます。
PIN9から電圧が出ない・・・んです。
>>928 #pragmaだかの拡張命令で書けたはずだが...(もちコンパイラ依存
>931
素直にサイトの管理人にメールしたら?
コンフィグの設定がページ上に書かれるようになれば、ほかの訪問者にとっても
よい事なんだし。
いま ブレッドボードで組んでやってみたけど
RB3からほぼ duty50%ぐらいの波形が確認できるけど
>>934 asmを本人にあげればいい
それで解決
:10000000CB2BFF3FFF3FFF3FFF00030E8301C500E7
:100010000408C4000A08C6008A0171088316A200F9
:100020007008A10000308B180130F1007108013A0E
:10003000031D3A288B1083122108FF3A031D212843
:100040003A282108003A031D2A2883160516831230
:10005000A10A3A28A10A80302206F0008030210649
:10006000700203183A288316051283120512FF3016
:10007000A1003A280313831283162208F1002108F5
:10008000F000831246088A0044088400450E83006D
:10009000FF0E7F0E0900031383127408F80275081F
:1000A000031C750FF9027608031C760FFA02770815
:1000B000031C770FFB02F30D0730FC00730DF80DE6
:1000C000F90DFA0DFB0D7408731C7428F8027508FD
:1000D000031C750FF9027608031C760FFA027708E5
:1000E000031C770FFB028128F80775080318750FAA
:1000F000F90776080318760FFA0777080318770FC1
:10010000FB07F30DFC0B5E28720DF80DF90DFA0DCF
:10011000FB0D7408731C9A28F8027508031C750FF0
:10012000F9027608031C760FFA027708031C770F92
:10013000FB02A728F80775080318750FF90776085A
:100140000318760FFA0777080318770FFB07F20DED
:100150000730FC00720DF80DF90DFA0DFB0D740857
:10016000721CC028F8027508031C750FF902760886
:10017000031C760FFA027708031C770FFB02CD28C9
:10018000F80775080318750FF90776080318760F36
:10019000FA0777080318770FFB07F20DFC0BAA2864
:1001A000710DF80DF90DFA0DFB0D7408721CE6289F
:1001B000F8027508031C750FF9027608031C760F08
:1001C000FA027708031C770FFB02F328F80775087B
:1001D0000318750FF90776080318760FFA077708E2
:1001E0000318770FFB07F10D0730FC00710DF80DB8
:1001F000F90DFA0DFB0D7408711C0C29F802750835
:10020000031C750FF9027608031C760FFA027708B3
:10021000031C770FFB021929F80775080318750FDF
:10022000F90776080318760FFA0777080318770F8F
:10023000FB07F10DFC0BF628700DF80DF90DFA0D0A
:10024000FB0D7408711C3229F8027508031C750F28
:10025000F9027608031C760FFA027708031C770F61
:10026000FB023F29F80775080318750FF907760890
:100270000318760FFA0777080318770FFB07F00DBE
:100280000730FC00700DF80DF90DFA0DFB0D740828
:10029000701C5829F8027508031C750FF9027608BE
:1002A000031C760FFA027708031C770FFB026529FF
:1002B000F80775080318750FF90776080318760F05
:1002C000FA0777080318770FFB07F00DFC0B42299C
:1002D000701878297408F80775080318750FF9075E
:1002E00076080318760FFA0777080318770FFB07CD
:1002F000080003138312FB09FA09F909F809F80A3F
:100300000319F90A0319FA0A0319FB0A080003136F
:1003100083126F088316A00020088400A00A00083A
:10032000F0007008031D8C2983126F0883162002C9
:10033000F0000130F002F101031CF103080000306D
:100340000313831698180130F1007108003A031D59
:10035000AB2900009F2983126F089900080003133E
:100360008312FC01F71BFC0AFD01FB01FA01F901F4
:10037000F80173087204710470040319432A7308A6
:100380007706A000A01BFD09F71FD129F409F50984
:10039000F609F709F40A0319F50A0319F60A03190D
:1003A000F70AF31FDE29F009F109F209F309F00A4F
:1003B0000319F10A0319F20A0319F30A73087704FF
:1003C000A000A01BFF294B20FC1B1C2AFD1F432A59
:1003D000F009F109F209F309F00A0319F10A031906
:1003E000F20A0319F30AF809F909FA09FB09F80AEC
:1003F0000319F90A0319FA0A0319FB0A432AF71F1A
:10040000162AF31B102A7308FB007208FA00710801
:10041000F9007008F800F301F201F101F001E6299A
:10042000F301F201F101F001F00A0034F309F209DD
:10043000F109F009FC17E329F80A0319F90A03196D
:10044000FA0A0319FB0A74087802031DE6297508E5
:100450007902031DE62976087A02031DE62977084A
:100460007B02031DE629FB01FA01F901F801F00AFC
:100470000319F10A0319F20A0319F30AF31FE62913
:10048000A0012016FF34A0017C1C472A7921003FDF
:100490000800031383126408F0006508F100F10CF2
:1004A000F00CF113F10CF00CF11370089500013011
:1004B0006405F00000307018403017064039970688
:1004C00002306405F3006508F4000030F405730899
:1004D000F0007408F100F10CF00CF113003070180A
:1004E000803017068039970608000313831606101C
:1004F000831212150C30970408000313831264084A
:10050000EF00872170088312E500E601803066065F
:10051000F0008030650670020318962A66086407AA
:1005200084000008EF009F21E60A862A08000313D2
:100530008312EE0180306706F00080307002031DE8
:10054000AB2A00306602031DAB2A00306502031D92
:10055000AB2A003064020318C92A0130EE00F00112
:10056000F101F201F3016408F0026508031C650F54
:10057000F1026608031C660FF2026708031C670F8E
:10058000F3027008E4007108E5007208E6007308E1
:10059000E7006408E9006508EA006608EB00670800
:1005A000EC000130ED008030F00080306706700212
:1005B000031DE42A6608003C031DE42A6508003C8C
:1005C000031DE42A6408003C0318FE2A0A30F400E4
:1005D000F501F601F7016408F0006508F10066080E
:1005E000F2006708F300AF217008E4007108E5002D
:1005F0007208E6007308E700ED0AD32AED03003025
:10060000F0006C06031D0E2B70086B06031D0E2BED
:1006100070086A06031D0E2B6908003A031D122B91
:100620000130ED0068088400203080002030840A0A
:100630008000840A8000840A8000840A8000840A82
:100640008000840A8000840A8000840A8000840A72
:100650008000840A8000840A800184036D08003CC5
:100660000318782B0A30F400F501F601F701690848
:10067000F0006A08F1006B08F2006C08F300AF218B
:100680007808F0007908F1007A08F2007B08F3009E
:10069000700880000008F400F501F601F701690810
:1006A000F0006A08F1006B08F2006C08F3007408AF
:1006B000F0027508031C750FF1027608031C760F13
:1006C000F2027708031C770FF3020A30F400F501F9
:1006D000F601F701AF217008E9007108EA0072081D
:1006E000EB007308EC00303080078403ED032E2B01
:1006F0006E0803197D2B2D30800008000313831230
:10070000950117129712080003138316981690305C
:100710008312980083160615861283128C1E932B63
:100720001A08E8008D2B0800031383122230FC0006
:10073000F801F901FA01FB01FC030319CA2B0310AC
:10074000FB0CFA0CF90CF80CF30CF20CF10CF00C9D
:10075000031C9C2BFC030319BC2B7408F8077508B9
:100760000318750FF90776080318760FFA0777084C
:100770000318770FFB07A02B7408F80775080318F8
:10078000750FF90776080318760FFA07770803182C
:10079000770FFB070800463003138312C70072303F
:1007A000C8006530C9007130CA004C30CB006F30D2
:1007B000CC006330CD006B30CE002030CF00523003
:1007C000D0003130D1002E30D2003030D300303064
:1007D000D4002030D5004A30D6004630D700333020
:1007E000D8005330D9004630DA004230DB000D30FB
:1007F000DC000A30DD00DE014830DF007A30E00046
:100800000D30E1000A30E200E301703083168F0002
:1008100007309C009B01FF30850005308600811366
:100820000B138B130B168B1001138B110B100C1168
:1008300083120C110F309700950196018B120B114A
:100840008101831681160112811501108110011199
:100850000C1083120C108E018F01101290121010C8
:1008600083168C1083128C101211121092109101A9
:100870008316051283120512FF30A1000030C2005A
:100880000230C300F930831692007E23FF308316B6
:10089000920083124208E4004308E50049227522D1
:1008A00004300505F4007408003A031D612C013082
:1008B0000505F4007408003A031D612C0130A30003
:1008C000622CA30133308316990018158423061275
:1008D000061386130330FC00FF30FB00FF30FA00E4
:1008E000FC0B732C7A2CFB0B762C792CFA0B762CC8
:1008F000732C702C8C30FB00FF30FA00FB0B812C2A
:10090000842CFA0B812C7E2CA130FA00FA0B862C59
:100910000000000006160330FC00FF30FB00FF3033
:10092000FA00FC0B942C9B2CFB0B972C9A2CFA0BAB
:10093000972C942C912C8C30FB00FF30FA00FB0B91
:10094000A22CA52CFA0BA22C9F2CA130FA00FA0B9A
:10095000A72C0000000006170330FC00FF30FB004E
:10096000FF30FA00FC0BB52CBC2CFB0BB82CBB2CBD
:10097000FA0BB82CB52CB22C8C30FB00FF30FA00EF
:10098000FB0BC32CC62CFA0BC32CC02CA130FA00D5
:10099000FA0BC82C0000000086170330FC00FF3063
:1009A000FB00FF30FA00FC0BD62CDD2CFB0BD92C06
:1009B000DC2CFA0BD92CD62CD32C8C30FB00FF303E
:1009C000FA00FB0BE42CE72CFA0BE42CE12CA13011
:1009D000FA00FA0BE92C0000000006120613861339
:1009E0002308013A031DF72C4730E4007D228316CB
:1009F00006140B178B170030831285180130F40092
:100A00007408013A031D0C2D831681150110811005
:100A100001308312C100132D83168111011081143E
:100A200008308312C100003085190130F4007408C9
:100A3000013A031D1E2D0130A200202D0A30A20014
:100A400081010B11A501A601A701A801A10121089F
:100A5000FF3A03193C2D00300B190130F4007408E3
:100A6000013A031D3B2D0B11A50A0319A60A031910
:100A7000A70A0319A80A272D2708F3002608F20061
:100A80002508F100F0017008A5007108A6007208A1
:100A9000A7007308A8000108A500A601A701A801E6
:100AA0007008A50771080318710FA60772080318CC
:100AB000720FA70773080318730FA8074108083AB5
:100AC000031D7E2D0330F4002508F0002608F100F8
:100AD0002708F2002808F30074080319762DF00D9A
:100AE000F10DF20DF30D7010FF3F6D2D7008A50094
:100AF0007108A6007208A7007308A8002208013A2E
:100B0000031D982D2508F0002608F1002708F200A3
:100B10002808F3000A30F400F501F601F7019423E8
:100B20007008A5007108A6007208A7007308A80045
:100B30002308013A031DAD2D2508E4002608E50031
:100B40002708E6002808E7002D30E80097222D301E
:100B5000E4007D225F30E4007D2204300505F400CE
:100B60007408003A031DBE2D0130A4002508A90019
:100B70002608AA002708AB002808AC0001300505AC
:100B8000F4007408003A031DC62DA4012408013A9C
:100B9000031D812E6430F000F101F201F3012908F8
:100BA000F4002A08F5002B08F6002C08F70070085E
:100BB000F4027108031C710FF5027208031C720F16
:100BC000F6027308031C730FF70228087702031D4F
:100BD000F32D27087602031DF32D26087502031D49
:100BE000F32D2508740203181B2E6430F400F50160
:100BF000F601F7012908F4072A0803182A0FF50758
:100C00002B0803182B0FF6072C0803182C0FF707D7
:100C100077082802031D162E76082702031D162EBC
:100C200075082602031D162E7408250203181B2EB4
:100C30000616061386136430F000F101F201F30189
:100C40002908F4002A08F5002B08F6002C08F70004
:100C50007008F4027108031C710FF5027208031C7E
:100C6000720FF6027308031C730FF702770828024D
:100C7000031D442E76082702031D442E7508260204
:100C8000031D442E740825020318512E0612061364
:100C90008617C20A0319C30A4208E4004308E500A4
:100CA00049226430F400F501F601F7012908F40740
:100CB0002A0803182A0FF5072B0803182B0FF6072D
:100CC0002C0803182C0FF70728087702031D722E33
:100CD00027087602031D722E26087502031D722E48
:100CE000250874020318802E061206178613013099
:100CF000C202031CC3034208E4004308E500492282
:100D00008D2E0612061386130030C2000230C30077
:100D10000030E4000230E50049221A30FB00FF30C9
:100D2000FA00FB0B942E972EFA0B942E912EE7309F
:100D3000FA00FA0B992E00000000FB2C9E2EFF3FBC
:04400E00182FFC3F2C
:00000001FF
RB3の波形だけしかみてないけど
fc かなんかで 比較すれば いいと思う。
942 :
78:2007/06/17(日) 23:50:43 ID:qvyRy0al
>>941 なんてお礼を申し上げたらよいのか(涙)・・・
ありがとうございます。
ファイル C:\FLOCK88\flock88.hex と C:\FLOCK88\TEMP.HEX を比較しています
***** C:\FLOCK88\flock88.hex
:100D3000FA00FA0B992E00000000FB2C9E2EFF3FBC
:04400E00582FFFFF29
:00000001FF
***** C:\FLOCK88\TEMP.HEX
:100D3000FA00FA0B992E00000000FB2C9E2EFF3FBC
:04400E00182FFC3F2C
:00000001FF
*****
頂いたもので試してみましたが、状況は同じでした。
配線間違いか、PICが壊れているか でしょうね。
本当にありがとうございました。
壊れてそうだね 間違えて12V直にかけてバチンと音がして何個か壊したことがあるな
RB0は使用してるから代替できないし
予備とかあれば・・・・
dsPIC焼くのに安くて手軽な方法ない?(トラ技8月号おまけ除く)
>>944 いろいろ苦労するよりICD2買っちゃった方がいいよ。
946 :
774ワット発電中さん:2007/06/18(月) 08:37:43 ID:mbcC1//M
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
BATTLE GEAR4 Tuned The 8th Lap [アーケード]
ちょwおまっwwwwwww
オレかよwwwwwwwwwwwwwwww
>>948 USB-シリアル変換ケーブルが使いないのが残念。
ノートPCだとやはりPICkit2かICD2かな。
>>947 >PICkit2赤ボタン版
について詳しく
953 :
950:2007/06/18(月) 22:14:23 ID:InF9+ztJ
>>951-952 不具合修正ってことのようだけど、dsPICと関係あるの?
認識されないUSBデバイスのエラーがよく出るから参考になるかも。
リコールしろよと言いたい。
リコールは、製品に人体や財産に損害を与えるレベルの瑕疵がある場合に(ry
致命的ではないツール類のバグを回避して使う能力を持っているのがプロ
ブーたれるだけなのは素人
956 :
78:2007/06/19(火) 12:29:46 ID:19JWAtLG
>>941 PICを交換したところ正常動作しました!
ありがとうございました。
予備買っておきなよ
ツールのバグ解析をしている暇があるのはアマ、
日程に追われてそんな暇がないのがプロ
という発想もある(w
限られた時間できちんと対処するのがプロ
「致命的なエラー」がでても補償しないMicroSoft
金を出来るだけかけないで、たっぷり時間をかけて理想の物を作るのがアマ
時間を出来るだけかけないで、確実に動く物を作るのがプロ
必死なのがアマ
いかに逃げ道を作るかがプロ
チップ :PIC18F2550
コンパイラ:Boost C(ピカントC) 6.0
ライタ :秋月のプログラマ Ver4にβ版
で初めてのPIC18を試すために簡単なプログラムを
作ってみたのだけど頻繁にリセットがかかる。(不定周期)
ブラウンアウトリセット、ウォッチドックのリセット
スタックオーバフロー/アンダーフローのリセット
をDisableにしても起こる。
(ブラウンアウトについては電圧を監視してても落ちないので
無いとは思っていたけど念のため、ウォッチドックは使ってない)
プログラムとしては表示器(ノリタケのVFD3線シリアルのグラフィック)
をつないで、タイマ0でとりあえず決めた周期毎に文字列を表示してるだけ。
rconを表示器にだしてみたら、リセット命令によるリセットだと・・・?
ライタでフラッシュの中の命令読み出してもリセット命令は無く
とうぜん、Hexやアセンブラを確認してもない・・・
電源オン時のrcon = 0x1C
不意のリセット時 = 0x0C
もしヒントでもあれば、ヘルプをお願い致します。
VCCにコンデンサ BOR enable
ど素人でスンマセン…48MHzなめてました orz
パスコンで解決。
パスコンすら入れてないとか……
78KスレでPIC厨が暴れている件について。
じゃぁ昔PICスレで暴れた78k厨の罰がやっと下ったと言うわけか
オレはアマ
ペットはタマ
そういえば、そんな奴いたな確かLightConeとか。
78kがどうのこうのPICスレに書き込むくせに78kスレには何一つ書き込んでない(笑)
78kスレは2年以上経つけどまだ500番台か
あの気持ちワリーーやつ?
パスコン忘れ・・・
初めはそういう時期もあるね。
ガンガレ!
PIC FUN = PIC厨 = 自称自営業 = 浮浪者 = 社会の屑
>>972 電解コンデンサに300uF入れたら、電源の立ち上がりが遅くなって、CPUのパワーオンリセットが
かからないってなオチもあるからなー。コンデンサもよしあし
特定のCPUにこだわってXX厨と呼ばれる人たちって
ナイフ派とノコギリ派に分かれて切れ味の論争をしてるのと同じ
適材適所でどっちも必要な道具なんだけどな。
>>975 パスコンは0.1uF程度のセラコンが基本、
数百uFの電解コンデンサはCPU動作ノイズの高周波領域では
ほとんど有効な容量がない。
電源端子の出来るだけ近くに0.1uF程度のセラコンをつけて
瞬停対策に大容量のコンデンサをつけるのが基本
リセット端子にはヒステリシスがあるから電源の立ち上がりが
遅いせいでパワーオンリセットがかからないことはまずないが
PICの場合特に消費電流が少ないので電源SWをOFF-ONしても
リセットがかかるまで電圧が下がらずパワーオンリセットがかからない
ことはよくある。
切れるナイフの俺が来ましたよ。
どこに分類されますか?
>>977 そりゃナイフだろ
ナイフは切れて当たり前だし
>>976 >瞬停対策に大容量のコンデンサをつけるのが基本
ってさ、それって間違っているよ。
>979
そうなの?なんで?
瞬停はだめだろw
>>976 パスコンの配置についてはその通りだが、動作周波数が数MHz〜数十MHzに対して
0.1uFは大き過ぎて、チップコンデンサでない限りパスコンの役をなさない。
リードコンデンサを使うのであれば0.01uF程度ないしそれ以下に下げる必要がある。
この辺、伊藤健一先生wの著書でかなりしつこく解説されていて有用。
(クロック1MHzとか500kHzで動作させるのであれば0.1uFでもOKのはず。)
それとパワーオンリセット(POR)だが、ヒステリシスがあっても(実際あるわけだが)、
電源電圧の立ち上がりが遅いとPORが正常に働かない。立ち上がり速度はPICの
データシートで規定されているし、立ち上がりが遅いとPORが正常動作しないことは
PICのアプリケーションノートにも記述がある。
PORが正常動作しない理由は、おおざっぱには、こう。
あるPICの動作VDD範囲が2.0V〜5.5Vだとする。このとき、PORスレッショルド電圧は
2.0Vより高くするわけにはいかず、また製造上のバラつきを避けるためちょうど
2.0Vにするわけにもいかないので、たとえば1.8Vとかに設定することになる。
(このとき、実際のPORスレッショルド電圧は、例えば1.8V±10%とかになる。)
PORスレッショルド電圧は正常動作するVDD範囲より「必ず」低いため、VDDに
ちょうどPORスレッショルド電圧が加わった場合、PORによるリセットは解除されるが、
VDDはPICの動作VDD範囲より低いため、PICが正常に動作するとは限らない。
このPORスレッショルド電圧から動作VDD範囲まで(この例では1.8Vから2.0V)の
「不安定領域」でリセットが解除されるのを避けるため、PORはPORスレッショルド電圧に
到達してからある遅延時間tだけ待ち、それからリセットを解除するという動作に
なっている。この遅延時間tのあいだにVDDが「不安定領域」を超えて動作VDD範囲に
到達してくれれば、リセット解除後、PICは正常に動作するというわけ。
この、VDD電圧が「遅延時間t」のあいだに「PORスレッショルド電圧から動作VDD範囲
まで到達する」というところで、VDDの立ち上がり速度が規定されることになる。
VDDの立ち上がりが遅すぎると、「遅延時間t」を過ぎてもまだVDDが動作VDD範囲に
到達せず、PICが正常に動作しない可能性が生じる。
>>980 電解コンデンサを電源に配置する理由は
電源電流変化の大きい回路では、端子電圧の変動を抑えることが出来るから。
決して「瞬停対策」じゃーないんだよ。
変な基本を身に付けていると、すぐに挫折するよ。
984 :
982:2007/06/21(木) 13:38:32 ID:ajkMaAm1
「VDD電圧」って何だ・・・これじゃ頭痛が痛いだw
まぁ、VDDは電源電圧でありピンの名称でもある、ってことで許してくれ。
それと、VDDの立ち上がりが遅いとPORが正常動作しないってのは「正常動作しない
*こともある*」ということであって、運がよければどんなに立ち上がりが遅くても
正常に動作するので注意。(「オレは電源に1F入れてるけどPOR失敗したことないぞ」
ってな人は、運が良いだけ。)
例えば、動作VDD範囲の仕様値が2.0V〜5.5Vのところ、製造上のバラつきによって
実力値が1.7V〜のチップができたとする。このチップのPORスレッショルドが1.8Vだと、
このチップに限定して言えば、VDDが単調増加する限りPORは絶対に失敗しない。
>983
×瞬停対策
○端子電圧の変動対策
ってこと?まぁ、確かに対策すべきは端子電圧の変動であって瞬停じゃないわな。
俺は>979を「端子電圧の変動対策には、大容量コンデンサの挿入よりも適切な方法
がある。」と読んだんだよ。
>>982 >動作周波数が数MHz〜数十MHzに対して
>0.1uFは大き過ぎて、チップコンデンサでない限りパスコンの役をなさない。
ある意味正論だが実際にはCPUクロックが数MHz〜数十MHzまでだった
Z80〜8086の時代のCPUボードのパスコンは0.1uFが標準。
パスコンの役割はCPU動作に伴い発生するノイズを低減すること
ノイズはクロック周波数だけでなく広範な領域で発生するもので
対策を考える上で次の2点がポイントとなる
1.クロックより低い周波数のノイズを全域にわたって抑えることが特に重要
2.コンデンサの周波数特性は種類と容量によって異なる
http://www.murata.co.jp/catalog/c72j.pdf Murata ラジアルタイプセラミックコンデンサカタログの
P.21にあるインピーダンス・周波数特性を見るとわかるように
確かに0.1uFと0.01uFのインピーダンスは15MHz付近でクロスしているが
クロック以下の周波数全域でインピーダンスを下げるためには
0.1uFを多めに使うか0.1uFと0.01uFを混在して使うのが有効。
少なくとも容量の小さいコンデンサを使えば済むということはない。
リセットに関しては
原理的に指摘通りの現象がおこる可能性はあるが
それは低電圧電源でゆっくりと電圧を上げたような場合のこと。
電源側のインピーダンスは低いから数百uF程度のコンデンサを
電源側につないだ程度では電圧の立ち上がりは数mS以上にはならない。
>>983 瞬停も大きな電源電流変化の一因ということでOK?
987 :
986:2007/06/21(木) 14:18:40 ID:gJMSvCly
低電圧電源 > 定電圧電源
の間違い
PICってパスコンに溜まった電荷で何十秒もSleep維持できるんだよな。
パスコンなんて指で軽く触れたらすぐに電荷が抜けてしまうレベルなのに。
で、コンデンサのインピーダンスを何Ωにしたら満足するのかな?
Vddに0.1μFの表面実装のコンデンサ入れ、MCLR端子を10kΩでプルアップしてLCDに文字表示させたりしてるんだけど、電源投入時に起動したり、しなかったりします。起動を安定させるにはどうしたらいいのでしょうか?
>>990 普通、それでいけるハズなんだけど、やっぱリセットICとか?
>>990 あ、LCDが動作しないの? それは多分イニシャライズの待ち時間が短いから。
と決め打ち。