5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

PIC専用のスレPart27

1 :774ワット発電中さん:2010/02/08(月) 10:19:13 ID:DWEHp4hC
 /Microchip ./|
 /( ゚∀゚)    /  | アセンブラのアの字もわからない
 |~ ̄ ̄ ̄ ̄ ̄|  /. 超初心者からHEXが読めてしまう
 |/Z./Z./Z./Z_|/ ||  鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ
  ||. ||. ||. ||

例の如く基本リンクだ
http://www.microchip.com/  マイクロチップ本社(Microchip Technology Inc. )
http://www.microchip.co.jp/ マイクロチップ テクノロジー ジャパン 株式会社
またーりやっておくんなまし。
教えて君はとりあえずGoogle(http://www.google.co.jp/) くらい使おう

前スレ
PIC専用のスレPart25 … 実質Part26
http://science6.2ch.net/test/read.cgi/denki/1259844805/

701 :774ワット発電中さん:2010/03/27(土) 19:35:43 ID:yb2zPthF
>>698
デバッグ用のソフトは単独では動かない仕様だけどその点は大丈夫?


702 :774ワット発電中さん:2010/03/27(土) 20:35:03 ID:vdr+JwDJ
>>670
これだから(ryって言われちゃうんだよね

void intval()の中でポートをトグルさせてみるとか
// printf("test");
// delay_ms(500);
をコメントアウトするとかして切り分けていけば原因が
分かるんじゃないの

703 :774ワット発電中さん:2010/03/27(土) 21:11:44 ID:PHAWIjCz
 「パソコンに繋いで直ぐに開発できます」
とあったので、CY8c29466が乗った、Gainerって基板を買ったんだ。
 PSOCをマスターしたいと思ったんだが、どうもWEBサイトを見てもPSOCの
プログラムの開発じゃ無くて、高級言語をつかって基板のIOを制御するだけ
のようです。
 このボードを使ってPSOCをマスターするにはどうしたらいい?


704 :774ワット発電中さん:2010/03/27(土) 21:26:06 ID:AfDTFwHf
>>703
スレタイ読め。あるいは、PICの意味を知ることが先だな。PIC=マイコン全般だと思ってるだろ。

705 :774ワット発電中さん:2010/03/27(土) 22:04:02 ID:xVVKppGZ
>>703
【新時代!】PSoC スレ 其の八
ttp://science6.2ch.net/test/read.cgi/denki/1245848449/

706 :774ワット発電中さん:2010/03/27(土) 22:57:22 ID:9bdlBBbt
>703
PSoC専用スレがあるけど....。

707 :774ワット発電中さん:2010/03/28(日) 01:38:19 ID:2sPfZQM9
>>670

1,タイマー割込みが一回も掛からないかを確認する(mainではLEDを操作しない)
2,タイマーが動いてるかを確認する(タイマー値を出力してみる)



708 :774ワット発電中さん:2010/03/28(日) 01:45:24 ID:7OdRZcub
CCS-Cってvolatile宣言しなくていいんだっけ?

709 :774ワット発電中さん:2010/03/29(月) 16:41:19 ID:T3eb5V0y
MCC18、PIC18F2550のタイマー割り込みについてです。
割り込み内でWriteTimer()関数でTMR0H,TIMR0Lを再設定しますが、
正確に計算通りの割り込み感覚にならないように思います。

思うにカウンターオーバーフローが発生してから、
割り込み関数に入るまでに既に10数µs経過しているのが原因と
推測していますが、この認識であっていますか?

710 :774ワット発電中さん:2010/03/29(月) 18:45:23 ID:lRIwdTlZ
ID:6KXNJ+m7 はちゃんと動作したのかな?
結果を書いてくれない人って多いよね?

711 :670:2010/03/29(月) 19:07:00 ID:DnMRVKKE
>>700
そのような機器を所有していないのです…
すみません…

>>702
この手のバグ探しは質問する以前に色々していました。
しかしどうしても原因が分からなくて質問させていただきました。

>>707
1.1度たりともかからないです
2.タイマー値の出力をしてみましたがきちんと動作していました

>>710
すみません、なかなか時間がとれなくて…
アドバイスを頂いているのに素早い対応ができなくてすみません。
皆様にはとても感謝しています。ありがとうございます。

712 :774ワット発電中さん:2010/03/29(月) 19:28:36 ID:lRIwdTlZ
>>711
おお素晴らしい!

while()に入る前にLEDをONして、
シリアルの受信割り込みルーチン内でLEDをOFFする

1.LEDが点灯すればIOポートの設定は正しい
2.受信してLEDが消えればRSの受信は出来てる

こんな感じで一個ずつ確かめていくかな


因みに、コンパイラはCCS-Cだと思うけどバージョンは何?
古いCCSCだとtimer設定にバグがあって動作しなかったけど


713 :774ワット発電中さん:2010/03/29(月) 20:32:47 ID:OeNalsfE
>>711
PICkit2持ってるんでしょ?あれのロジアナも工夫次第で結構使えるよ。

714 :774ワット発電中さん:2010/03/29(月) 20:48:58 ID:QfHxUdEC
>output_low(PIN_D0)
これ;無いけどsyntax errorにならないの?
CCS は使ったこと無いからわからんけど。
>>713がいうようにロジアナ機能で動作してるかどうかは見れると思う。
回路は完璧でもマイコンつぶれてるかも知れんし。

715 :774ワット発電中さん:2010/03/29(月) 21:14:35 ID:VYxu1nz7
char の何でもいいループ用変数名って何にしてる?

for (char c = 0; c < 10; c++) {
みたいにcにしてるけど、i な気もする

716 :774ワット発電中さん:2010/03/29(月) 21:27:34 ID:ES2yWziL
ijk・・・

717 :774ワット発電中さん:2010/03/29(月) 22:30:00 ID:1IKlwFPa
>>715
cnt0,cnt1,cnt2・・・

データサイズにもよるけど、可能であればグローバルエリアに置いている。


718 :774ワット発電中さん:2010/03/29(月) 23:02:20 ID:tMQ0irIZ
>>715
別に何でも・・・俺は>>716と同じ。

719 :774ワット発電中さん:2010/03/29(月) 23:31:53 ID:OeNalsfE
俺は用途がわかるようにしてる。
datacnt,loopcnt,state,mode...

720 :774ワット発電中さん:2010/03/30(火) 01:27:37 ID:NWe8NKzj
RDCライタの接触が悪くて書き込むときに手で押さえて苦労してる。
しかも裏のトゲで怪我をした。
確実にできる改造はない?

721 :774ワット発電中さん:2010/03/30(火) 01:35:08 ID:Twb3FKPv
RCDライタはシリアルポートを壊す元だから生きてるうちにWriter509でも作って乗り換えた方がいいよ

722 :774ワット点滴中さん:2010/03/30(火) 09:06:23 ID:IJFj5kMI
>>709
その考え方で正解です。
8bit モードなら movlw タイマー定数; addwf TMR0,F で回避可能。
16bit モードでも high 側の割り込み禁止後、同様の方法も使える。
但し計算の実行時間を タイマー定数 - 実行時間として考慮する必要がある。
また書込・読出は TIMR0L でラッチを通して実行されるんで注意。

簡単には TIMER1(3)+CCP(16bit精度) or TIMER2(8bit精度) でフリーランさせて割り込みの方が楽ですよ。

723 :774ワット発電中さん:2010/03/30(火) 12:10:30 ID:PKBdlbRu
回路の設計で教えてください。

PICはPIC16F886です。複数のLEDの点灯を制御しているユニットです。

モード切替のためにPORTBを入力にしてプルアップ(内蔵)していて、
トグルスイッチでGNDに落とせばモードが切り替わるようにしてます。

ユニットからは、GNDとスイッチ入力の線は別々に出ています。

ここでおかしなことに気づいたのですが、
回路全体のGNDの線を外しても、スイッチをGNDに落とした状態だと
ユニットが動いてしまうんです。
PICの中を経由して電流が流れて動いてしまっていると思うのですが、
これを防ぐ方法はないでしょうか?

GNDの線を繋がないで動かすことはあまり無いと思うのですが、
不意のことでポートを経由して電流が多く流れて、ポートが壊れてしまわないかと思ってます。

よろしくお願いします。








724 :774ワット発電中さん:2010/03/30(火) 12:52:59 ID:nH5KRmil
>>723
入力の保護ダイオード経由で動いてしまうのはCMOSではよくある。

スイッチのGNDをPICの回路からとらないからそういうことになる。
近いところに落とすんじゃなくて信号線とGNDはループになるようにする。

725 :709:2010/03/30(火) 13:06:32 ID:LzMIVq8P
>>722
適切なアドバイス本当にありがとうございます。
後閑さんの本にちゃんと書いてあるんですね。
何故CCP?と思い、読み飛ばしていました。

726 :774ワット発電中さん:2010/03/30(火) 13:31:30 ID:PKBdlbRu
>>724

入力保護のダイオード経由ですか。なるほど。

>近いところに落とすんじゃなくて信号線とGNDはループになるようにする。

そうしたいのはやまやまなのですが、実はこれ車に取り付けるんです。
スイッチのGNDはボディーアースに落としてます。
ユニットはしまって、操作は手元でしたいので、なにか良い案はありませんか?
やっぱりスイッチ部分をループで戻すべきでしょうか?

727 :774ワット発電中さん:2010/03/30(火) 13:43:40 ID:nH5KRmil
>>726
そういう環境ならフォトカプラかました方が安心じゃないの。
GNDの電位差もありそうだし。

728 :774ワット発電中さん:2010/03/30(火) 13:48:02 ID:uKSb+gFG
>>726
よくわからんが・・・入力の信号線を延ばすなら
PIC内蔵プルアップに頼らず、外部プルアップ汁
配線長いなら1kΩ以下推奨

729 :774ワット発電中さん:2010/03/30(火) 20:23:30 ID:J7MZvys+
>>720
ソケットぐらい買えよ。

730 :774ワット発電中さん:2010/03/30(火) 23:02:46 ID:zFCvvMZt
ダイナミック点灯制御について、
トランジスタ使わず出力端子2つに跨ってLED繋がってる回路を見たが
オフで0Vになってる出力端子に5Vをかけると流れるって事か?
そんなことして中焼けたりしないの?

731 :774ワット発電中さん:2010/03/30(火) 23:21:12 ID:uKSb+gFG
PICの最大定格出力電流範囲内ならok

普通のLEDマトリクスと違ってコモンに電流合計されない
その代わり多数同時点灯出来ないから明るくも無い

732 :774ワット発電中さん:2010/03/30(火) 23:23:52 ID:XM0JuM4a
>>727

フォトカプラがありましたね。その方が間違いなさそうです。
検討してみます。

フォトカプラの話が出たのでもう一つ教えて欲しいのですが、
VCC以上の電圧(たとえば+12V)の入力をするためによくフォトカプラが出てきますが、

ttp://www.binzume.net/library/robo/e_tr.html

ここの真ん中あたりの「回路例」のNPNの図のように、

VCCを+5V、INが+12Vでトランジスタを動かしてPICに入力するのは
まずいのでしょうか?

電圧レベルの変換だとフォトカプラが多いので前から疑問に思っていたんです。

>>728

今まで内臓で特に不具合はないんですけど、外部にする必要ありますか?




733 :774ワット発電中さん:2010/03/30(火) 23:27:43 ID:zFCvvMZt
>>731
そうなんだ

734 :774ワット発電中さん:2010/03/31(水) 01:19:54 ID:sXNEOQSg
>>732

>VCCを+5V、INが+12Vでトランジスタを動かしてPICに入力するのは
まずいのでしょうか?

別に悪くはないが、しかし、俺はやらない
(→ 仮に、BC間がショートした場合、定格以上印加する事になる)

電源電圧が違う場合、絶縁&ノイズの意味も含めてフォトカプラを
使う方が賢明だろう

>今まで内臓で特に不具合はないんですけど、外部にする必要ありますか?

電流を自分で決めるかどうかの問題、好きにすれば
PIC内部で発熱するか、外付け抵抗で発熱するかの違い


735 :774ワット発電中さん:2010/03/31(水) 09:48:38 ID:A3dXs/5P
>>726
多分、流行の流れるウインカーとかに使うのだろうけど...
車はノイズの塊みたいなもんだからノイズ対策はしっかりとね
じゃないと、机上でOKでも車に取り付けて???なんて羽目に...
ユニット内に余裕あるんだったら、フォトカプラを10mA以上でONする方が
色々安心出来るかもね
と、経験者でした

あまりPICと関係ない話でスマ



736 :774ワット発電中さん:2010/03/31(水) 09:56:04 ID:pv/AksW+
ひさびさにROMってる人にも参考になりそうなレスの流れ

737 :774ワット発電中さん:2010/03/31(水) 19:25:39 ID:Gchp+yP6
>>730
> オフで0Vになってる出力端子に
たぶん、なんか勘違いしてると思う。

738 :774ワット発電中さん:2010/03/31(水) 23:04:47 ID:wZhA48nM
pickit2用のコネクターってどこで何を買えばいいのん?

739 :774ワット発電中さん:2010/03/31(水) 23:23:21 ID:Mb1wmYA7
今ひとついいのがないよな
ピッチだけ合ってるのをニッパーで切って使ってる

740 :774ワット発電中さん:2010/03/31(水) 23:27:56 ID:VLZK3ffR
秋月いけ

741 :774ワット発電中さん:2010/03/31(水) 23:29:05 ID:6OE6cLhw
秋月や千石で売っている1列のピンヘッダで良いんでね?
千石ならL字もあるし。

742 :774ワット発電中さん:2010/03/31(水) 23:38:16 ID:wZhA48nM
お、ピンヘッダでいけるのか、短か過ぎるかと思ってた


743 :774ワット発電中さん:2010/03/31(水) 23:56:00 ID:yp4MP0Or
>>742
ピンヘッダはpickit2のコネクタの付け根に結構負荷がかかるからここ辺がおすすめ。
https://www.marutsu.co.jp/user/shohin.php?p=69682
https://www.marutsu.co.jp/user/shohin.php?p=69680

744 :774ワット発電中さん:2010/04/01(木) 00:05:26 ID:JHg9t/wK
>>738-743
 こんなのもあるよ

ttp://eleshop.jp/shop/g/g75V333/

745 :774ワット発電中さん:2010/04/01(木) 00:24:12 ID:I4Lr2vlk
>>709

ちなみに2550の動作クロックはいくつですか?
すごく遅いんですかね?

746 :774ワット発電中さん:2010/04/01(木) 02:42:06 ID:BPkPZSge
そのくらい調べれ

747 :774ワット発電中さん:2010/04/01(木) 04:53:28 ID:7Z72yyFR
>>745
48MHzです。
レジスタの退避と復旧は自動的にやってくれるみたいですが、
結構時間がかかるんだな、という感想を持ちました。
ADコンバータは100kspsですが、変換時間待ちのループを嫌がって
AD割り込みを使ってもCPUの効率使用にはならない感じがします。

748 :774ワット発電中さん:2010/04/01(木) 15:32:48 ID:cCubMXkB
>>737
どういうことだ

>>731
範囲内って、入/出の合計で100mAまでってこと?

749 :774ワット発電中さん:2010/04/01(木) 15:44:40 ID:SNLGsj5I
ポートをHiにしてVccに繋いだら合計の出力電流は増えるの?

750 :774ワット発電中さん:2010/04/01(木) 15:48:13 ID:RkrGy5Ki
>>730
吸い込みのことか?
H8での例
ttp://www9.plala.or.jp/fsson/NewHP_elc/H8/H8_11PIO2.html

751 :774ワット発電中さん:2010/04/01(木) 17:07:12 ID:8z0ok16i
16F887でDEBUG_ONのままで動作させてICSPピンに触れるとハングアップする。
原因が分からなくて暫く悩んだ。
コンフィグレーションワードをDEBUG_OFFにしてあっさり解決した。

752 :774ワット点滴中さん:2010/04/02(金) 09:01:47 ID:B8hCfloQ
>>747
>レジスタの退避と復旧は自動的
これが大問題。 high 側 の割り込みは四則演算を使わないで I/O 制御に留めるべき。
nosave オプションで .mathdata セクションを保存しない事が実行スピードを上げるコツ。
mathdata には int16〜int64 の仮想アキュームレータや a+=b;a*=b; 時のテンポラリーが int8〜int64 分含まれる。
かなりの膨大な量になるよ。
C18 の データーシートの日本語と英文と両方を参考にして下さい。



753 :774ワット発電中さん:2010/04/02(金) 14:03:14 ID:qVcGoI/2
>>752
非常に重大なアドバイス、ありがとうございます。
こんな秘密(?)があったのか、という感じです。
C18のマニュアル見てみましたが、近々に実験してみたいです。
結果も後日報告します。

754 :774ワット発電中さん:2010/04/02(金) 14:12:46 ID:UlgatjTP
これだからCしか出来ない奴は

755 :774ワット発電中さん:2010/04/02(金) 14:28:48 ID:mn1rYJKd
って言われちゃうんだよね

756 :774ワット発電中さん:2010/04/02(金) 15:24:38 ID:qVcGoI/2
お!
言われると思いましたよ。
昔Z80やってた時は自分もそういうセリフを言ってた感じが・・・
USBフレームワーク使うとCになっちゃいますでしょ・・・違いますの?
貴重なアドバイス感謝です。これからもよろしくです。

757 :774ワット発電中さん:2010/04/02(金) 15:31:02 ID:UlgatjTP
>>756
まあ、z80やってたとかのたまう奴にも色んなレベルが居るって事だな。
Cを使っちゃいけないとは一言も言ってない訳だが?
これだから…

758 :774ワット発電中さん:2010/04/02(金) 19:19:24 ID:qzjCm+oq
これだからアセンブラとアセンブリ言語の区別の付かない奴は嫌だ


かな?

759 :774ワット発電中さん:2010/04/02(金) 20:00:52 ID:2dasQ/hh
これだからアセンブラ爺は

760 :774ワット発電中さん:2010/04/02(金) 20:10:50 ID:9nIfUEk6
sleep中の消費電流ってクロックに関係ありますか?
PIC12F683を2MHzで使っていますが、Sleep中に250uA位流れてます。
ポート変化割り込みしか使ってないのですが、数uA程度にならないのですか?

761 :774ワット発電中さん:2010/04/02(金) 20:24:07 ID:TTDkaIpG
>>760
クロックは止まるから関係ない
原因はBORかタイマ等の周辺機能じゃないかな
それかプルアップしてるピンからの流出か

762 :774ワット発電中さん:2010/04/02(金) 20:26:13 ID:TTDkaIpG
>>760
ちなみに12F675だと0.1uAも食わなかった
パスコンに溜まった電荷でも数秒記憶を保持できるレベル

763 :760:2010/04/02(金) 21:05:26 ID:9nIfUEk6
>>761
BORをOFFにして、WPUを必要なポートのみにしたら
ほぼ測定不能レベル(アナログテスタ)になりますた。

どうもありがとう。

しかしBORで喰っていたとは・・・

764 :774ワット発電中さん:2010/04/02(金) 21:08:28 ID:p81IKZsb
大須で売ってる店ある?

765 :774ワット発電中さん:2010/04/03(土) 00:47:03 ID:1F/gDRpY
少なくとも第一アメ横には無い
第二には僅かにあった気がするけど、素直に通販が吉

昔はパーツの店ばっかりだったんだが

766 :774ワット発電中さん:2010/04/03(土) 00:56:46 ID:Z/gpmcH3
PICなら第二アメ横のタケイ無線で多少売ってるよ
秋月のキットも若干割り増し価格で売ってる

767 :774ワット発電中さん:2010/04/03(土) 01:07:13 ID:1F/gDRpY
大須までの交通費と割増分が、送料500円に勝てるかという話だ
行ってみたけど欲しいのは無かった、というパターンが最悪
大抵のものはあるよ、と保障できるほど今の大須は電子に強くない
PCとエロなら大丈夫

768 :774ワット発電中さん:2010/04/03(土) 01:11:35 ID:fj9mErFG
名古屋から新今宮まであんまり遠くない
新快速であっという間

769 :774ワット発電中さん:2010/04/03(土) 01:29:43 ID:1F/gDRpY
明らかに500円以上かかるがな

770 :774ワット発電中さん:2010/04/03(土) 01:47:25 ID:fj9mErFG
デジットでも見て回れば良い刺激になるぜ。

771 :774ワット発電中さん:2010/04/03(土) 02:15:58 ID:1F/gDRpY
書店やCD屋がアマゾンに衝撃を受けているのと相似のダメージが、
パーツ屋vs秋月通販の間に成立しているのかもしれない

ブラウジングと呼ばれる、特に目的を定めない情報収集行為が通販には存在し難い

772 :774ワット発電中さん:2010/04/03(土) 18:28:36 ID:hoLaIsjy
やっと積みマイコンしてたPICを動かせた。
ちょくちょく触っていたとはいえ、二年ぐらいただのオブジェだった物が動くとさすがに安堵するな。
(とはいえ、ほとんどネットにあったソースコピペだけど)
…仕事なら首だNE。

とりあえず12F675は10ビットA/D4つも積んでたから、4ch分の取り込んだ値をPCに送るようにしてみた。
さてと次は部屋の中に隠れてるセンサさんを探さないといけないんだな…orz

773 :774ワット発電中さん:2010/04/03(土) 18:45:56 ID:UwF1yo0x
ありあわせの部品のanalogueなところをセンサ代わりにしてみるとか。

774 :774ワット発電中さん:2010/04/03(土) 19:02:47 ID:hoLaIsjy
わざと発振させて発振した素子を手で触れると値が変わるとかなw
…わからんやつがいるから却下w(というかそういう設計無理w)
という訳で温度と照度(CdS)と測位センサ、それに可変抵抗で行こうと思う。
温度センサさん何回も買ったはずなのに見当たらんがorz

しかしせっかく10ビットで取り込んでるのに値が255付近までしか出ないのはもしかして232通信の設定が8ビットだから?
(可変抵抗まわしてたら0〜240ぐらいまで回って、いきなり130いくつとかになる)
まだ詳しく調べてないけど、取り込んだ変数から二つの変数に値を分割して二回に分けて送らにゃあかんってことかい?

775 :774ワット発電中さん:2010/04/03(土) 19:54:33 ID:9b/rc58J
>12F675は10ビットA/D4つも積んでたから
A/Dは1つしか積んでないよ、スイッチみたいな感じで切り替えてるだけ

>>774
10bitだから8bitで受信の時点でどこかおかしくなってると思う、とりあえずソースを貼ってみてはいかがかと

776 :774ワット発電中さん:2010/04/03(土) 20:09:40 ID:mXsfyABT
Cしかできない典型だな

777 :774ワット発電中さん:2010/04/03(土) 20:26:38 ID:hoLaIsjy
>775
という事はマルチプレクスか。
まあ使えればどっちでもイイけどね。
という訳で直接ソースを貼ってみた。TABが消えるので適宜改行したけど、むしろ見辛いという…。

#include <12F675.h>
#fuses INTRC_IO,NOWDT,NOPROTECT,NOMCLR,BROWNOUT //内部4MHzクロック指定
#use delay(clock=4000000) //delayを使えるようにする
//#device ADC=10 //ADC=10bit return
#use rs232(baud=9600,xmit=PIN_A5,parity=N,bits=8,invert) //シリアル設定
//(上の行説明)GP5を送信に設定。またドライバICを使うか簡易的な回路でレベル変換を行うかによって、
//インバース(反転)を入れるか決める。(簡易的な回路ではuse行に,invertが必要)
// A/D4chはGP0〜2、4にあたるピンに有る。
//#device ADC=10の解説:12F675は通常でADCを使用するモードなので設定は不要。他のPICは必要なのが多い。

long value; //結果を入れる変数
void main(void){
//ADC設定
setup_adc(ADC_CLOCK_INTERNAL);
//ADCのクロックを内部クロックに設定
setup_adc_ports(sAN0|sAN1|sAN2|sAN3);
//ADCを読み込むピンを設定(ALL_ANALOGでは効かず)

//ADC読み取り
while(1){
set_adc_channel(0);
//ADCを読み込むピンを指定

value = read_adc(ADC_START_AND_READ);
//読み込み
printf("ch1=%Lu\r\n",value);
//結果表示

set_adc_channel(1);
value = read_adc(ADC_START_AND_READ);
printf("ch2=%Lu\r\n",value);

set_adc_channel(2);
value = read_adc(ADC_START_AND_READ);
printf("ch3=%Lu\r\n",value);

set_adc_channel(3);
value = read_adc(ADC_START_AND_READ);
printf("ch4=%Lu\r\n\n",value);

delay_ms(500);
}
}

778 :774ワット発電中さん:2010/04/04(日) 01:11:39 ID:lB+Gd2xo
hoLaIsjyがものすごく気持ち悪い

779 :774ワット発電中さん:2010/04/04(日) 09:09:13 ID:aY4Al9oQ
うるせぇ。
人のソースにケチつけんなチンカス。

780 :774ワット発電中さん:2010/04/04(日) 10:12:34 ID:vxumBffN
#divine

781 :774ワット発電中さん:2010/04/04(日) 10:42:49 ID:JrJ3EXNa
>>774
>(可変抵抗まわしてたら0〜240ぐらいまで回って、いきなり130いくつとかになる)
10bit表現の下位8ビットしか見てないと、そうなるんだろうなぁ。いきなり130はよくわからんが。
ライブラリに対する設定というのがあるんじゃない? MSBの合わせこみ位置とか、取得幅とか。

232通信が8bitは関係ないだろ。8bit一単位で複数バイト送信すればよいだけかと。
趣味になるんだろうけど、大は小をかねる。そうだけど、必要以上の型大きさは… value

782 :774ワット発電中さん:2010/04/04(日) 10:51:03 ID:szxGMLhU
つ可変抵抗の正しい使い方

783 :774ワット発電中さん:2010/04/04(日) 11:20:19 ID:vxumBffN
テキストで送信するのだ

784 :774ワット発電中さん:2010/04/04(日) 12:17:35 ID:aGOD/YOs
>>>777
set_adc_channel(); の後には少しdelay入れるんだ。
delay_us(20); // Acquisition time


785 :774ワット発電中さん:2010/04/04(日) 12:30:55 ID:21oFP7TP
//#device ADC=10 //ADC=10bit return
よくわからんけど本当に不要なの?

786 :774ワット発電中さん:2010/04/04(日) 12:49:11 ID:YLqS91k3
long long ago

787 :774ワット発電中さん:2010/04/04(日) 13:08:33 ID:QwTJudS2
解 決

やっぱり#device ADC=10の記述が必要だったorz
(直接5V与えてみたら255だったという所で判明orz)
でも最初はCan not change device type this far into the codeとか出てて何のエラーなんだろうなぁ…なんて思ってたけど、もっと前で記述しろってことだった。
結局下の様にかなり前の方に押し込んだらコンパイルも通り、1023まで範囲が増えました。

#fuses INTRC_IO,NOWDT,NOPROTECT,NOMCLR,BROWNOUT //内部4MHzクロック指定
#DEVICE ADC=10
#use delay(clock=4000000) //delayを使えるようにする

皆さんありがとうございました。
…後はシリアルポートから電力を供給できれば最高だけどさすがにそれは無謀なんだろうな。

>786
32ビット長ですね、よく分かります。

788 :774ワット発電中さん:2010/04/04(日) 14:01:15 ID:e8z31uLt
アセンブラ上で条件付コンパイルってできる?

xxx.asmのピン設定行で
 LEDpin equ 4

これをコンパイルの条件で4pin→3pinへ変更とか
(xxx.asmのソース元は変更しないとして)

789 :774ワット発電中さん:2010/04/04(日) 14:25:41 ID:21oFP7TP
>>787 さん
>…後はシリアルポートから電力を供給できれば最高だけどさすがにそれは無謀なんだろうな。
これはどういう意味なんですか?

790 :774ワット発電中さん:2010/04/04(日) 14:36:06 ID:QwTJudS2
ご指名なので出てまいりましたよ…

>789
電力を他で用意するのが面倒だなぁ、出来ればデータ通信で使う232のコネクタから一括して取れないかなぁ…と思っただけです。
今回は測位センサも付けているのでかなり電流バカ食いしていると思いますし、さすがにどこどこまで電流流せますって基準が(多分)あっても守られていなさそうなシリアルポートから取り出すのは無謀だと思うんですけどね。
ではでは

791 :natu:2010/04/04(日) 14:40:57 ID:j5Kduxfn
>>788
こんな感じ

if KISYU==1
#define hoge PORTA,1
else
#define hoge PORTA,2
endif
...
bsf hoge

MPLABの
Project->BuildOptions->ProjectのMPASM Assemblerタブで
Macro DefinitionsへKISYU=1と入れとくとhogeはPORTA,1になる。

BuildConfigurationでDEBUGの時だけ__DEBUGが定義されるので

ifdef __DEBUG
... ;デバッグ用
else
... ;リリース用
endif

も便利だぞ

792 :natu:2010/04/04(日) 14:51:03 ID:j5Kduxfn
連投ごめん。送信してもた

Macro DefinitionsへLEDpin=4と入れとけば
bsf PORTA, LEDpinは、PORTA,4になる。

793 :774ワット発電中さん:2010/04/04(日) 15:16:19 ID:21oFP7TP
>>790 さん
PIC単体なら232Cのハンドシェークピンで賄えると思っちゃいますが、
ダメもとでやってみるのも面白いかと。
(こういうところがハード屋さんから嫌われるんだろうな)

794 :774ワット発電中さん:2010/04/04(日) 15:21:17 ID:AqzpBly1
基本的なことだが、12F629のGP3/MCLRピンをI/Oに使用したら内部プルアップされるのはMCLRですよね?
つまり、GP3/MCLRピンは外部プルアップが必要?
12F629に限った話じゃないけど

795 :774ワット発電中さん:2010/04/04(日) 15:33:14 ID:GVqZ7shK
>>794
そもそも、MCLRって内部プルアップできたっけ?


796 :774ワット発電中さん:2010/04/04(日) 16:44:51 ID:vxumBffN
できるでしょ
できないのもあるの?

797 :774ワット発電中さん:2010/04/04(日) 17:16:55 ID:GVqZ7shK
>>796
内部プルアップされるわけじゃないっぽい。単に無効化されるらしい。
DS41190F-page25参照。
(スレ汚しスマソ)

798 :774ワット発電中さん:2010/04/04(日) 17:27:36 ID:hcIFyUGk
>>787
RTS/CTSピンからPIC駆動する電流くらいなら取れるよ

>>794
プルアップは必要。MCLRでもプルアップはされない。

>>796
ミッドレンジ以下は出来ないのが多い。特に古い品種は。

799 :natu:2010/04/04(日) 17:41:13 ID:j5Kduxfn
>>795
VDD(CMOS出力)に内部で繋がるだけみたいだ。
>>794
GP3/MCLRだとVDD方向寄生ダイオード無しの
デジタル入力になるのでプルアップ、ダウンは有るのが安心。
ICSPするなら邪魔にならない値で...


800 :794:2010/04/04(日) 17:47:01 ID:AqzpBly1
自分でも調べてみた。
CONFIGレジスタの設定に

MCLRE: GP3/MCLR pin function select(5)
1 = GP3/MCLR pin function is MCLR
0 = GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD

ってあるから、
・MCLRとして使用するなら外部プルアップが必要
・GP3として使用するならMCLRは内部でVDDにつながれる

つーことはGP3の外部プルアップは必要・・と
この解釈で合っているのかわからんけどww

しかもWPUレジスタにWPU3が抜けてるし

小さく作りたいから外部抵抗すらスペースが惜しいのになぁ

レスくれた人ありがとう

291 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)