1 :
PIC16(´-`)774 :
04/02/24 19:34 ID:4z03nuyi
あら、機械工学板にもあったんでつか
作りたいなら作ってみればいいんでないかい?
8 :
PIC わからん です :04/02/28 23:47 ID:XsuzISSN
MPASM Assembler を使ってプログラムを書き始めた者ですが、 宣言した変数への値の格納方法について 教えていただけませんでしょうか。 たとえば、CBLOCK で CBLOCKH'0C';ファイルアドレス0Ch番地から変数を割り当てる DATA1;(DATA1 は、0Ch 番地) DATA2;(DATA2 は、0Dh 番地) DATA3;(DATA3 は、0Eh 番地) DATA4;(DATA4 は、0Fh 番地) DATA5;(DATA5 は、10h 番地) HENSU_X;たとえば変数(HENSU_X という変数 (11h 番地)) ENDC;CBLOCK終了 と ファイルアドレスを割り当てたとして、あるレジスタの値によって格納先を 変える良い方法は、ないものでしょうか? たとえば、 MOVLWH'AA';リテラル AAh をWレジスタへ MOVWFHENSU_X;Wレジスタの値を変数 HENSU_X へ 移動 と、したあと . . . たとえば、Wレジスタの値が、 W = 1 なら HENSU_X の値を-> DATA1 へ格納 W = 2 なら HENSU_X の値を-> DATA2 へ格納 ・ ・ W = 5 なら HENSU_X の値を-> DATA5 へ格納する と いった具合です。 BTFSC などで 分岐して そこで処理させることは、できますが、もっと 良い方法って ないものでしょうか? 詳しい方 いらしゃいましたら 教えていただけませんでしょうか。 (初めて使ってみてるのは、16F84A と いうICです) 長文すみません。
9 :
8 :04/02/28 23:53 ID:XsuzISSN
▲名前 が、へんに なってしまった。(^^;
>>8 FSRに値ぶち込んで
INDFにデータ読み書きすれば良いのではないですか?
>>8 こんなんどうよ?
MOVLW リテラル
CALL ADGET
MOVWF FSR
MOVF HENSU,W
MOVWF INDF
GOTO NEXT
ADGET
ADDWF PCL,F
RETLW DATA1
RETLW DATA2
RETLW DATA3
RETLW DATAn
漏れだったらこうするけど
まあ参考程度に
12 :
8 :04/02/29 00:26 ID:DFZFHhkF
>>10 さん
早速のご返事ありがとうございます。
間接データアドレッシングのところを使うのですね。
資料をもう一度見ながら調べてみます。
解決できそうな気が 少ししてきました。
本当にありがとうございます。
13 :
8 :04/02/29 00:36 ID:DFZFHhkF
>>11 さん ありがとうございます。
FSR レジスタ が、まだ理解できていない私には、難しすぎですが、
11さんの プログラムが、理解できるように がんばってみます。
ありがとうございました
秋月ピクグラマーVer4カッテキタヨー!
>>14 俺も買ったよ!
でも気を抜いてチップ抵抗ずらしちゃった。
戻したら動いたから良かったけど。
16 :
774ワット発電中さん :04/03/02 01:12 ID:hqJzOz+o
CCS社HPでPCWHの30日限定の無償デモ版を今更ですが、 見つけました。 これは30日を超えても再インストールすれば、再使用できる ものなのでしょうか?ご存知のかたあれば、教えてください。
17 :
774ワット発電中さん :04/03/02 01:39 ID:OPM872fy
>>16 可能か不可能かわかりませんが、良識ある大人のすることではありません。
良いと思うなら、ちゃんと買うべきです。
>>17 の言うとおり。
無償でCが使いたいなら、フリーをうたってる
Cコンパイラを使っていればいい。
PICからPICに8ビットのデータを送受信したいです。 何種類かのシリアル通信用の機能が内蔵されてる みたいですがなんていう機能を使えばいちばん簡単でしょう? 使いたいPICは16F819です。 また参考になるwebサイトがあれば教えてください。
>>19 SSPモジュールをSPIとI2Cのどちらかで使うかってだけで
何種類もあるようにみえないが
>>20 すみません データ−シートめくってたら何種類もあるように
見えてしまいました。
なんせシフトレジスタさえ触ったことがないのシリアルはむずかしー
22 :
774ワット発電中さん :04/03/03 16:32 ID:wcmA76aY
おまいらどーやってアセンブラ覚えたんだよ ・゚・(ノД;)・゚・ なんだよMOVなんちゃらてよ ううう・゚・(ノД`)・゚・わぁぁぁん
23 :
774ワット発電中さん :04/03/03 19:06 ID:S14J6WJ6
ヨシヨシ (゚д゚)つД`)ヒックヒック
>>22 アセンブラで挫折する位なら、Cから入った方が良いぞ。
周りのPGみてても、Cは知ってもアセンブラハアな香具師らばかりだし。
それでもそれなりのPG作れるわけだ。
なにか、簡単なものを作って(音系、光物)それをどんどん膨らませればよい。
そのうちにアセンブラに入り込んでいく気がするが。
ガンガレ
26 :
774ワット発電中さん :04/03/03 22:10 ID:m6p42nl+
前、HI-TECH PICCの評価版インストールしたんだけど動かなかったんだよな。 使い勝手はどうですか?
フン、どうせ俺はPA始めちまったよ。今更。。。。
SDCCも、一応PIC対応になってる・・よね?
>>22 アセンブリ言語わからなくて、これから新規の勉強ならPICはヤメトケ
>>30 (・∀・)カエレ!!
>>22 (・∀・)新規の勉強にPICはオススメ
PIC勉強するなら、時計を作ってみることをお勧めするね
十分実用になるのが作れるし
>>22 がむばれ
漏れは初めて作ったのがPWMを作るだけってやつで、時計は2番目。つか今作ってて、あとはハンダ付けすれば完成でつ。
ソースきぼんぬ
漏れがはじめて作ったのはLEDが点滅するだけ。 2番目はADB/PS2変換アダプタだったなぁ。 MaceのキーボードとマウスをPCでも 使いたくて作った。 PIC一個じゃ漏れの実力ではうまくいかなくて、 2個使ってデータやり取りしながら処理させた。 確か完成まで二週間くらいかかったな。 もうMacもUSBになってしまったけどね。
36 :
35 :04/03/04 09:01 ID:WHruxJcD
あれ?MacがMaceになってる・・鬱
main mov on_tim,#200 ;オン時間 mov off_tim,#50 ;オフ時間 mov repeat,#20 ;オン/オフの呼び出し回数 call pat_1 goto main pat_1 ;オン/オフを呼び出すところ call on call off djnz repeat,pat_1 ret on mov loop_on,on_tim ;オン時間を一回loop_onへ代入 on_1 mov rb,#1 djnz loop_on,on_1 ret off mov loop_off,off_tim ;オフ時間を一回loop_offへ代入 off_1 mov rb,#0 djnz loop_off,off_1 ret
38 :
37 :04/03/04 10:53 ID:wSjf4Fou
今日は、大先生様方! ここ1ヶ月前から秋月電子で買ったPICライターとそのアセンブラ?で練習をしているものです。 色々うかがいたいことがあります。 今、LEDを光らせているのですが、高速でON-OFFをさせて明るさを調整してます。 例えば、下のプログラムでmainで指定した繰り返し回数(on_tim,off_tim)を直接on_1の中で扱うと 失敗します。(明るさが変わりません) この原因は何でしょうか?
39 :
37 :04/03/04 10:58 ID:wSjf4Fou
on mov ;オン時間を一回loop_onへ代入 on_1 mov rb,#1 djnz on_tim,on_1 ret /*こんな風にした場合のことです。*/
>>39 の1行目の mov は消し忘れだよね?
on_1のループを抜けたとき、on_timは0。
on_1に2回目以降来るとき、
on_timは0になっているので明るさは変わらない。
>>37 の場合はon_1のループに入る前にl
oop_onに値をいれてるから正しく動く。
PA使ったことないので間違ってたらごめんね〜。
41 :
37 :04/03/04 12:14 ID:L6fQbs3y
>>40 様 添削ありがとうございます。
>>39 の1行目の mov は消し忘れだよね?
*(゚Д゚)<ハイ先生! 気をつけます。
>>on_timは0になっているので明るさは変わらない。
設定値を一回目のループで使用してしまい、2回目以降は初期化されないと
言う理解で宜しいでしょうか!
…。 なんか悔しいので漏れもMPASMで粘ってみる(w
>>41 おkだと思います。
どーでもいいけど、pat_1内でonとoffを呼んでるけど
pat_1内に直接書いちゃった方が良いんじゃないかと思った。
あと、loop_onとloop_offは干渉すること無いから一つで良いのでは。。
メモリが有り余ってるなら良いけど。
44 :
33 :04/03/04 12:56 ID:p/jJTQ6J
漏れも初めて作ったPWMのソースを貼ってみよう。 LISTP=PIC16F84 INCLUDE"P16F84.INC" ORG0 MAIN BSFSTATUS,RP0 CLRFTRISA MOVLWB'11111111 MOVWFTRISB; MOVLWB'00000011';TMR0 MOVWFOPTION_REG BCFSTATUS,RP0 MAINLP MOVFPORTB,0 MOVWF0C MOVFTMR0,0 SUBWF0C,0 MOVFSTATUS,0 MOVWF0D MOVLWB'00000001' ANDWF0D,0 MOVWFPORTA GOTOMAINLP END
45 :
33 :04/03/04 12:59 ID:p/jJTQ6J
TABが消えちまった…見づらいけどSPACEに入れ替え。 LIST P=PIC16F84 ; INCLUDE "P16F84.INC" ; ORG 0 MAIN BSF STATUS,RP0 CLRF TRISA MOVLW B'11111111 MOVWF TRISB MOVLW B'00000011' MOVWF OPTION_REG BCF STATUS,RP0 MAINLP MOVF PORTB,0 MOVWF 0C MOVF TMR0,0 SUBWF 0C,0 MOVF STATUS,0 MOVWF 0D MOVLW B'00000001' ANDWF 0D,0 MOVWF PORTA GOTO MAINLP END
46 :
42 :04/03/04 14:36 ID:jfRo1iRe
_| ̄|○ なんか無力さが悲しい
○|_| ̄ とりあえず寝れや
48 :
774ワット発電中さん :04/03/07 13:17 ID:YUGdu4TO
後継スレage
50 :
26 :04/03/08 00:07 ID:boOcgKvg
HI-TECH C、再度インストールしたらできました。 MPLAB 4.12.12 HI-TECH PICC Lite V8.02 PL1 をインストールして、 www.gifu-nct.ac.jp/gakuseikai/club/brass/nannda/pic/pic.htm のようにいじってもMPLABのバージョンが古いせいかだめでした。そこで下記のような試行をして動くようになりました。 インストール時に作られたregdll.batの中で、regsvr32のパスが指定されていなかったので、 C:\WINDOWS\SYSTEM\regsvr32 Suite_HITECH16.dll のように指定した。実行してみた。その後MPLABを立ち上げて、 Project→Install Language Tool→ Language Suite:HI-TECH Tool Name:PIC-C Compiler Executable: CコンパイラのPICL.EXEのパスを指定 Project→New Project→Language Tool Suite:HI-TECH (このメニュは後からEditできないので、Newで作るときに指定する) これで動いた。今度アセンブラ出させて素性しらべてみよっと。
>>50 単に MPLAB 古すぎなんじゃ……
v6.x 使えとは言わんけど、せめて v5.70.40 使えば問題ないんじゃ?
52 :
774ワット発電中さん :04/03/08 18:28 ID:6zfFI4uA
だれか面白いもん作ってよ
本当に面白い物はここに書けない悪寒 俺は大学の春休み利用してジャンク屋で買った基板から汎用IC取って、 PICに繋いでいろいろ試して勉強してる。経済系の学部だけど。
よく7セグLEDなんかを使う時 GET_DATA ADDWF PCL,F ;PCレジスタに数字を加えてジャンプ RETLW B'00000000' ;Code 0 RETLW B'00000000' ;Code 1 ・・・・ RETLW B'11111100' ;Code 8 てことやりますよね。でも良く考えたら一番初めの命令のプログラムカウンタが 255とかだったらまともに動きませんよね。これ問題のある使い方では・・ 今回255個のデータを用意したのですがどうしたらうまく意図したデータをもって 帰れるでしょうか?
>>54 半分ずつに分けて、おのおの
org 0x100
org 0x200
とかで分けて拾ってくる。255個一気は無理。
>>55 なるほど
何気に使ってたORGを使えばいいのですね!
250個ぐらいにして使ってみたいです。
ありがとうございました!
255なら、0〜254だから大丈夫か…
ORG 0x100 GET_DATA ADDWF PCL,F ;PCレジスタに数字を加えてジャンプ RETLW B'00000000' ;Code 0 RETLW B'00000000' ;Code 1 こうやったらADDWFの命令を実行するとWレジスタ+1番地に飛んでしまいます。 (MPLABのシミュレーターで)デバイスは16F84Aです。 プログラムカウンタをウォッチしてみると上位ビットが0のままで変化しません。 無理やりPCの上位ビットを1にしてやると思うように動作しました。 なぜでしょう?見落としがあるのかなあ もしかしてバグ?
>>58 PCLATHセットしとかないとダメっすよ。PCL弄ると、PCLATHから上位ビット読まれるから。
>>59 何度もありがとうございます。
やっと完成しました。(ソフトだけ)
プログラムカウンターなんて気にしていじったことなかったので
結構悩みました。
AVRはもっと使いやすいのかなあ?
ちなみに棒の先にLED16個つけて振ると
文字が浮かび上がるのを作ってます。
後2つシフトレジスタと2Kワードくらいのメモリつんだ
PICがあれば解像度的にもっときれいなのが出来そうだ
○_○ ○○○ ←LED7個 ○_○ これで電子サイコロ作ってよぉ〜ジタバタジタバタ
>>61 そんなもん自分で作れない奴は才能無いから
電子工作なんてやめたほうか吉。
64 :
774ワット発電中さん :04/03/10 17:35 ID:ZecZXp2r
>>62 >電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
>電子工作なんてやめた"ほうか"吉。
65 :
774ワット発電中さん :04/03/10 18:16 ID:lraJRBgJ
67 :
50 :04/03/10 21:51 ID:Pu+T6FZR
>>58 -
>>59 PCLATHセットしとかないと
ほらだからあきらめてCコンパイラにしなさいって
Cコンパイラ使うとアセンブラに比べてどのくらい楽になりますか? アセンブラから入ったのでCでPICをいじる感覚がいまいちつかめないです。
アセンブラで十分だよ 演算ルーチンダウンロードして使ってるから 16BIT演算だろうが32BIT浮動小数演算だろうが ちょっと面倒だけどできるようになったし 前迷ってたのも ORG 0xFC GET_DATA_TOP MOVLW H'01' MOVWF PCLATH MOVF NUM,W ADDWF PCL,F ;PCレジスタに数字を加えてジャンプ RETLW B'11111111' ;0 RETLW B'11111111' ;1 ・・・ RETLW B'11111111' ;255 こうやれば256個までならできるようになりました。 でもC使ったことないので トランジスタ技術のおまけのH8でCを勉強しようと思ってます。 PICのCってそんなに便利?
英語わがんね
72 :
774ワット発電中さん :04/03/11 10:11 ID:vx3Gd5CE
>>69 Cを使ったら、アセンブラなんて使う気も起きません。
自分はhitec c liteを使っています。
>>65 > 値段を、ローカル変数。
> 2の、乱数。値段は、それ。
日本語だとかえってわかりにくくないかい(´Д`)
74 :
774ワット発電中さん :04/03/12 00:47 ID:ajTmvx4P
スイッチ一つでPWMのデューティー比を、 スイッチON デューティー100% スイッチOFF 2秒以内にスイッチON デューティー50% スイッチOFF 2秒以内にスイッチON デューティー25% のようにするにはどのようにしたら良いのでしょうか。 ディップスイッチなどで抵抗値を変えてデューティーを変えるような 例ばかりで見つかりませんでした。
>>74 懐中電灯でも作るのかなあと想像してみたり
とりあえずフローチャートを作ろう
PICはCCPってゆう機能のついたやつがいいなあ
この機能があるとCCP1Lレジスタに255を代入すると
DUTY比100% 0を代入するとDUTY比0%になり簡単
1
SW=ON?
YES 2にジャンプ
NO 1に戻る
2
DUTY比を100%にする
SW=ON?
YES 3にジャンプ
NO 2に戻る
3
DUTY比を0%にする
タイマカウンタから1引く
カウンタ=0?
YES 1にジャンプ
NO 次の命令
SW=ON?
YES 4にジャンプ
NO 3に戻る
4
DUTY比を50%にする
SW=ON?
YES 5にジャンプ
NO 4に戻る
5以降は3と4の繰り返し(DUTY比だけ変えて)
78 :
774ワット発電中さん :04/03/12 02:14 ID:wq3Awx3r
PICのCCPって、Dutyの0%,100%は出せなかったんじゃ? わずかに波形が出てしまうと記憶していますが
>>78 PICのCCPは10ビットの分解能があります。
CCPR1L(上位8ビット)
CCP1CON,5-4(下位2ビット)
なので上位8ビットしかいじらなければ
DUTY比0%でもわずかに波形が出てしまったり
DUTY比100%のつもりでも99.6%だったりします
下位の2ビットもいじってやれば問題ないと思いますよ
速度が要らず計算が必要で、かつ無理やり計算しなくていいようにテーブルでごまかそうとしても 数が異常に増えそうだとCがうらやましくなる。
81 :
74 :04/03/12 11:13 ID:ajTmvx4P
>>75 >>76 ありがとうございます。
かなり素人な質問なんですが、スイッチをOFFにしたのにpicのタイマカウンタ
は働くのでしょうか。それともpicのために別な電源が必要なのでしょうか。
picでパルスをつくりFETでスイッチングを考えています。
●-------------------------------------抵抗-●----
| |
| PIC GND |
-----------D-----●--●-●-1 8-●------------●--------- | -----
| C | | 2 7 | | |
電池 D C = | 3 6 | | |
| C | ●-4 5- | -----抵抗--FET---------●
スイッチ-----コ--------●------------●
ン GND
下のような調光器をDCコンで動作するものを考えています。
これをDCコンもろともスイッチ一つで。
ttp://modrock.hp.infoseek.co.jp/
82 :
74 :04/03/12 11:14 ID:ajTmvx4P
失敗した....
83 :
74 :04/03/12 11:16 ID:ajTmvx4P
●-------------------------------------抵抗-●---- | | | PIC GND | -----------D-----●--●-●-1 8-●------------●--------- | ----- | C | | 2 7 | | | 電池 D C = | 3 6 | | | | C | ●-4 5- | -----抵抗--FET---------● スイッチ-----コ--------●------------● ン GND
84 :
74 :04/03/12 11:17 ID:ajTmvx4P
あれ、できない.... アスキーアートって難しい....
85 :
74 :04/03/12 11:21 ID:ajTmvx4P
もう一回... ●-------------------------------------抵抗-●---- | | | PIC GND | -----------D-----●--●-●-1 8-●------------●--------- | ----- | C | | 2 7 | | | 電池 D C = | 3 6 | | | | C | ●-4 5- | -----抵抗--FET---------● スイッチ-----コ--------●------------● ン GND ダメだったらもうやめます....
半角スペースはたくさん入れても1個にしかならないとおもわれ 全角スペースを使うべし
87 :
74 :04/03/12 11:35 ID:ajTmvx4P
●-------------------------------------抵抗-●---- | | | PIC GND | -----------D-----●--●-●-1 8--●--------------●------ | ----- | C | | 2 7 | | | 電池 D C = | 3 6 | | | | C | ●-4 5- | -----抵抗--FET---------● スイッチ-----コ--------●------------● ン GND
88 :
74 :04/03/12 11:41 ID:ajTmvx4P
●-------------------------------------抵抗---●---- | | | PIC GND | -----------D-----●--●---●-1 8--●--------------●------ | ----- | C | | 2 7 | | | 電池 D C= | 3 6 | | | | C | ●-4 5- | -----抵抗--FET---------● スイッチ-----コ--------●------------● ン GND
AAエディタ使えよ
90 :
74 :04/03/12 11:47 ID:ajTmvx4P
●-------------------------------------抵抗-----●---- | | | PIC GND | -----------D-----●--●---●-1 8--●--------------●-------- | ---- | C | | 2 7 | | | 電池 D C= | 3 6 | | | | C | ●-4 5- | -----抵抗----FET---------● スイッチ-----コ--------●------------● ン GND
91 :
74 :04/03/12 11:49 ID:ajTmvx4P
あー、もうやだ。どうやってもずれる。 これでわかってください......
92 :
デム(ry :04/03/12 12:07 ID:C2wDsHkq
93 :
74 :04/03/12 12:29 ID:ajTmvx4P
┌-------------------------------------抵抗-----●---- | | | PIC GND | ┌----------D-----●---┬---●-1 8---●--------------●----------∩---- | C | | 2 7 | | | 電池 D C= | 3 6 | | | | C | └-4 5--∩-----抵抗----FET-----------┘ スイッチ----- コ----------●--------------┘ ン GND
新手の荒らしかw
95 :
774ワット発電中さん :04/03/12 13:48 ID:dooIH2JO
74はあぼーんします。
96 :
774ワット発電中さん :04/03/12 14:13 ID:tADknzlH
>>93 >>75 乙。
8ピンタイプならCCPの無い12F629/12F675が候補だね。
それなら、ソフトPWMだから、どっかに書いてあったHITECH-Cのソースが
参考になるよ。あれは127段階だったけど、自分で256段階とかもっと
それ以上のステップを作れると思うよ。
97 :
774ワット発電中さん :04/03/14 07:00 ID:mJQ4OK8r
ttp://science2.2ch.net/test/read.cgi/denki/1075302609/745より転載します 。
745 名前:CLRF TMR1L 投稿日:04/03/14 04:24 ID:Vi0TuBWy
PICマイコンのTMR1を外部入力の計数カウンタとして
使用する場合、まず最初にエッジの立下りが無いといけない、
というのはデータシートにも書いてあるのですが、
TMR1がONの状態でTMR1HレジスタやTMR1Lレジスタに00H
などを書き込んだ場合にも、同じことが起こってしまい困っています。
TMR1がON状態でTMR1Lなどに値を書き込むのはやはり邪道なのでしょうか?
TMR1を計数カウンタとして使用するには、TMR1H,TMR1Lレジスタをクリアせずに
増分のみを監視するしか方法が無いのでしょうか?
同じ経験をした人がいたら助けてください。おねがいしまふ。
・・・・というか激しくスレ違いの予感が
99 :
745 :04/03/14 18:52 ID:Vi0TuBWy
>98 転載ありがとうございます!
>>98 TMR1L/Hを読み書きする時にはTMR1を止めろとデータシートに書いてある。
ちゃんと嫁。
101 :
熱暴走 ◆2SA784NN.A :04/03/14 21:31 ID:YY+5HB1A
えーと、なんだかよくわからないけど、ここに簡易DVMのHEXを貼っときますね。
:020000040000FA
:1000000064008A0183017428F0000308F1008C3039
:100010008100AD0B0F28FA30AD000130AE061E3066
:1000200085002C0A0339AC008207192835283A28A4
:100030003F28AF1C24282408A0002508A10026087A
:10004000A2002708A300AF01200886000E3085001B
:100050002F1844281F1944289E3084000008A80047
:100060001E08A9001F152F144428210886001630E9
:1000700085004428220886001A3085004428230879
:100080002E0486001C3085000B1171088300F00ED1
:10009000700E09000F398207DE3414347A34763456
:1000A000B434E634EE34D434FE34F634FC34AE34B6
:1000B000CA343E34EA34E8342A088002840A2B0821
:1000C0000318682880020318672880036928013014
:1000D0008002840308002A088007840A0318800A23
:1000E0002B088007840308008F30840020308000B4
:1000F00081308400CF30800001309F009F30840029
:100100008E30800003309400DE308500853084001E
:10011000A13080008601863084008001F4308100A7
:10012000303090007B309200AC0101302D08AE01E0
:10013000AF010730A9006030A800A0308B002F1C51
:100140009F28050820390319A8280310A90CA80C1A
:100150000130A7000330AB00E830AA00283084004B
:100160005C200318B5286B20A7012708031D4A202F
:10017000A700A601AB016430AA00A60A5C20031800
:10018000BD286B20A60326080319A708031D4A20D3
:10019000A600A501AB010A30AA00A50A5C2003183D
:1001A000CD286B20A50325080319A608031D4A20A6
:0E01B000A50000084A20A4000230AF009F28DE
:02400E00513F20
:00000001FF
回路図は
http://science2.2ch.net/test/read.cgi/denki/1072100443/102 あたりに...
102 :
745 :04/03/14 22:40 ID:fijPq8Ix
>100 ありがとうございます。英語データシートに TMR1を一旦止めろと書いてあるのを確認しました。 ということは、TMR1をリセットする方法では、 正確な計数カウントはできないということですね。 増分のみを監視する方法でやってみます。 ありがとうございました。
>>102 TMR1を止めて0000hを書き込んでスタートするのはOKでないの?
プリスケーラ小さくてそれでは狂いが出るなら0001とか補正値を
書き込んでスタートとか
104 :
745 :04/03/15 01:22 ID:R746c2Wp
>>103 実は、ものすごく遅いパルスを計数するので、
TMR1をONにした瞬間に入力がHighだった場合と、
入力がLowだった場合とで、補正値が0000にも0001にも
なりうるのです。他のデジタルポートでHighかLowか
監視するという方法もあるかもしれません。
>>104 そこまでいうなら差分・・だけど、読むときにも止める必要なかったっけ?
>>105 読むときは止める必要なかった。すまん。上位を読んで下位を読む間(又はその逆)に
インクリメントすることを考慮しなきゃならんだけだった。
107 :
745 :04/03/15 14:03 ID:R746c2Wp
>>106 Microchip社のErrattaリストによると、TMR1H/Lを読むだけで、
正常にカウントアップしなくなることもあるようです。(汗)
だんだんPICが解んなくなってきました・・・
>>107 なんか頭痛いね・・・もうTMRを計数につかうのやめて、
外部割り込みで16bit変数をincしたら?割り込み停止して読み出す。
割り込み停止期間にパルス来ても割り込み再開時ちゃんと割り込み掛かる・・・よね?
>107 デバイスの型番は何なのでしょうか?
110 :
745 :04/03/15 16:42 ID:R746c2Wp
>>108 なるほど、試してみます。
・・・割り込みの勉強せねば・・・
111 :
745 :04/03/15 17:34 ID:R746c2Wp
>>109 16F873です。16F87x用のデータを見て作業しています。
ccp1かccp2をcapture modeにして RC2/CCP1かRC1/CCP2を出力ポートにして TMR1H:TMR1Lを読みたいタイミングで、データを出力すれば CCPR1H:CCPR1LまたはCCPR2H:CCPR2Lに取り込まれる というのはどうでしょう
>110 計測するパルスの幅と周期はどの位なのでしょうか? 下手なカウンタを使うより、割り込み無しのプログラムでチャッタノイズを除去しつつ カウントした方が良いような気がします。
114 :
745 :04/03/15 21:24 ID:R746c2Wp
>>112 なるほど!これならTMR1を読む間にカウントアップするとか
考えなくて済みますね。CCP初挑戦・・・
>>113 計測するパルスは、0から10^7cpsくらいまでです。
パルス数が多いときには、プリスケーラと
ソフトウェアカウンタを組み合わせて、
TMR1帯域の限界に達したら、外部F/Vコンを使用して
ADからカウンタの値を取り込むようにするつもりです。
(カウント数が多いときには、オーダーが判ればOKです。)
116 :
745 :04/03/15 23:26 ID:Am9b0gTY
>115 どうもです!
117 :
774ワット発電中さん :04/03/16 07:59 ID:gt8KMRZH
どなたかWIZ-Cを使ってる人います? 日本語アニマルないのでよくわからん・・
118 :
774ワット発電中さん :04/03/16 15:42 ID:uJXSqED3
>117 使ってますが、何か? プログラム自動生成のチェックを外すと(Project > USE Application Desiger) FED-Cと同じなので、日本語マニュアルがネット上にあるでしょう。 IPIから買ったのならば、FED-C日本語マニュアルがCDRで同胞されています。
下記の条件を満足するフローチャートを書いてください また、そのフローチャートを元にコーディングをして下さい。 @電源投入時5sec間はDuty100%制御 Aその後、PWM制御を行う。方式は下図参照 電源電圧 15V以上で、Duty 75%制御 電源電圧 11V以下で、Duty 100%制御とする。 B本プログラムは1msのタイマ割込みで発生するものとし、 出力のON,OFFも1ms単位で行われるものとする。 Duty[%] 100┝━━━━━━━┓ │ ↑ ↓ 75 ┝ーーーー━━━━━ │ l l │ l l │ l l └───────── 11 15 高圧電流[V] 板違いかもしれませんが、誰か分かる人いたら教えてください・・・ 私は電気のことはさっぱり分かりません でもせめてフローチャート ぐらいは理解したいので・・
仕事か? 甘えるな
122 :
774ワット発電中さん :04/03/18 12:14 ID:joPfpofy
>>120 そういうのはフローチャートより、ステート遷移
で考えたほうが楽だと思うよ。
それぞれの動作状態に番号を振って、どこから
どこに移るのか、移る条件は何かっていうのを
整理すればそのまんまプログラムにできるだろ。
125 :
774ワット発電中さん :04/03/18 14:45 ID:omVS3GWH
>120 電気のことがあんま分からなくても 高圧電流[V]って書くのヤメレ
>>120 > 本プログラムは1msのタイマ割込みで発生するものとし
?
> 高圧電流[V]
笑
>>126 この人、何を怒っているんだろうね。なんか怖い人だ。
>>126 なんかこのままでは完全にいちゃもん付けのような。
向こうからのメールは問題切り分けのために必要なことが中心だし
これを「自分たちにはまず非はないということが前提」っていわれてもねえ。
コンパイラの最適化らしい現象にもいちゃもんつけてるし・・・おれも昨日はまったけど
>126 2→パスを切り替えればすむ話じゃない? 開発環境を複数入れる場合にはよくあること 3→1byte...あたりまえじゃん コメント部にマルチバイトを認めるかどうかはコンパイラ次第 4→単なる最適化 5→変数のスコープを言っているの? 同一スコープ内で重なって確保されるならば問題だけど スコープ外ならあたりまえ 6→途中にスペースが入るとダメなのはよくある話、階層や総文字数は実装依存 まぁ普通は255文字ぐらいまでだろうけど シングルバイト文字文化のソフトでマルチバイト対応を期待してもねぇ 8→Microchipって結構まともな対応なのね
>>130 5→たぶん、最後に変数aを参照した行以降に実行される部分のみに変数b
参照部分がある、などのように関数内でaを扱う部分とbを扱う部分がはっきり
分かれていて、同じアドレスを割り当てても問題ないという場合な予感。
avrgccでも時々見る。
PICほしゅ
133 :
774ワット発電中さん :04/03/20 09:18 ID:T7DBtGgd
MPLABでも深いディレクトリだったら、最後のオブジェクト生成のときに 文句言われるよね。
134 :
774ワット発電中さん :04/03/22 15:37 ID:jAKIR4vC
135 :
774ワット発電中さん :04/03/22 15:59 ID:lvXjT0aU
コメントもくそも、ちゃんと書き込めるよ。 いちおうすべてのPICを書き込むので、スイッチで 作動とプログラムを切り替えているが、負荷の調整 もしくは、romライタのテストを回避するだけで、あんなスイッチはいらん。 で、オンボード書き込みはつかってみると結構便利かもしれない。 値段も安いので、試してみるべし
136 :
134 :04/03/22 16:15 ID:jAKIR4vC
>>135 情報ありがとうございます。思っていたより便利そうですね。
今度、買い物リストに入れて行きます。
;時計を16F84で作ってみようかと思ったんですけど、7セグメントLEDの直下にそいつを
;配置して小型にしようと目論んでたんで、オンボードで書き込めるならありがたいな〜、
;なんてふと思っていた次第で。
137 :
774ワット発電中さん :04/03/22 16:54 ID:lvXjT0aU
ほほっなるほど PICは書き込みのときには4本(電源入れると6本か)しか使わないから それ以外のピンは放置でおけー。 んでPICで時計というのは誰しも1回は 考えることだけど、いろんな理由で結構めんどいよ。 プログラムはそうでもないんだけど、 すべてPICで組むと処理の都合で速度が変化して 結果的に精度がよくない。んで、1日あたりに誤差を収束させて しまおうと帳尻を合わせるルーチンとか作ったりしたけど、 やっぱダメで、さらにいろいろやったけど 最終的にRTCを別に用意してそれを読むということの落ち着いた。
>>137 タイマ割り込み使えば誤差なんて生じないけど
事実、もれの作った時計は全然狂わないが
139 :
774ワット発電中さん :04/03/22 18:15 ID:lvXjT0aU
いろいろやったんだけどやっぱ最終的な累積誤差が でることがわかってRTCに任せたよ。 いいところまでは逝くんだけど、 最後のツメられなかったということ。すまんねヘタレで。 けど、RTCくっつけたおかげで、とりあえずバックアップは RTCだけで済むし、カウントはすくなくでもいいし、結果良かったかな。 と思ってます。
141 :
774ワット発電中さん :04/03/22 18:34 ID:lvXjT0aU
>138 神として聞くが 時刻合わせした直後の処理ってどうしてます? おいらが考えると時刻合わせ直後のキー待ちとか解消できなかった。 そのため、スイッチを操作させると必ず遅れる結果に・・・ 細かい時間調整が必要なので、1日あたりに約500msくらい づつ遅れてしまうととんでもない時計が出来上がった。 けっこうつらかったのよ。
16F88に対応したPICプログラマのファームはまだ出てないようですね。
タイマ割り込みを使いPIC内部にRTCを構成すると考えてほしい。 割り込み処理で計時を行い、通常処理(mainloopと言うんですかね)でスイッチの監視、表示デバイスの制御とかを行う。 このように処理を分けると、状態がどうであれ常に正確な計時が行われる。 時刻合わせに関しては、スイッチを操作した瞬間に計時関係のレジスタを初期化するとかで対応しました。 でもなんだか、漏れも不安になってきた 間違ってたらごめん
144 :
774ワット発電中さん :04/03/22 19:20 ID:lvXjT0aU
さんきゅです。なるほど。実はずいぶんやったんですけど。 なんかい作り直しても同じ現象が発生。で、処理で遅れるのならば最初から 遅れる分薦めちゃえ・・・とばかりに夜中に帳尻とるルーチンを入れたり したけど、結局はボツですわ。(藁 で、わたしなりの識者に聞いたら 一発目にRTCで解決しないの? っていわれて 目がさめたって感じでRTC採用。一発解決。 ただそのときの経験でプログラムで長時間の時計をつくっちゃいかん という先入観が植えられたとおもふね。 あのときにPIC神がいてくれたらよかったのに・・・・
145 :
138 :04/03/22 19:28 ID:tjKXB2f+
146 :
774ワット発電中さん :04/03/22 20:40 ID:8CQpKE2D
PICで時計は誰でも一度ははまるのかなあ? 俺もまったくおなじプロセス経験あります
PICで時計かぁ。 漏れも作ったことあるな。 でもアセンブラを書く要領がわからなくて(未だに)結局完全に自分の世界に入ったソースになってしまった…。
公開してしまえ〜 オープンソースだ(w
149 :
774ワット発電中さん :04/03/22 21:33 ID:IavBhTBx
150 :
774ワット発電中さん :04/03/22 22:44 ID:kOjSv9tK
PICで時計作って狂うとか言っている人って、タイマーに値を再設定しているんじゃないかと思う。 つか、俺、それでハマった。 再設定止めてフリーランにしてから狂わなくなったよ。
>>150 >PICで時計作って狂うとか言っている人って、
>タイマーに値を再設定しているんじゃないかと思う。
手前味噌だが、
>>101 では割り込みルーチンでタイマーの再設定
をしているが、全然狂わないよ。
狂う原因は、大体こんなもんじゃないかと。
1.タイマー割り込みで割り込みルーチンに入るが、タイマー再設定
までに掛かるクロック数が条件分岐等によって変わり、徐々に
誤差が蓄積されていく。
2.パイプライン等の影響で、TMR0 に書き込む命令より2クロック
遅れてからインクリメントが始まるのが考慮されていない。
3.他要因による割り込み処理によって,或いは明示的な操作に
よって割り込みがマスクされている時に TMR0 オーバーフロー
が発生するものの保留となり、タイマー再設定に掛かる時間
が変化する。
>再設定止めてフリーランにしてから狂わなくなったよ。
まぁ、これも一つの手だわな。
152 :
774ワット発電中さん :04/03/23 07:12 ID:pDUfxBLz
普通はフリーランでしょ Microchip社はそのつもりで設計してる
153 :
774ワット発電中さん :04/03/23 08:19 ID:x5RpaEqK
>>151 3.のように割り込み禁止をしているときは対策が困難ではないかと思う。
タイマーがオーバーフローしてから、割り込みルーチンに飛ぶまでの時間が
禁止しているときとしていないときとで一定じゃなくなるわけで。
タイマー0の再設定をすると、プリスケーラまでクリアされるしフリーラン
でないと誤差の解消は事実上困難じゃないかな。
hit-ech c v8.02PL1ってシフトレジスタのバグある? これが通らなくて(無視される)val = (val >> 1); これが通る。 val = (val >> 2);
>>153 やっぱり極力割り込み禁止せず、タイマ再設定せずににやるのが一番だろうなあ。
これなら理論上は端数誤差とクロック誤差しか出ない。
工夫すればそんなに大変なことではないように思う。
例えば1周期6.5536msecのタイマがあったとすれば、152カウントで
1秒だが端数は3.8528msec出る。これもカウントしておいて、
65536を越えるときは153カウントで1秒数えればうまくいく。
この端数値を調整すればクロック誤差まで調整できるかも。
ADCで外部温度取得して温度補正したら神!(w
156 :
774ワット発電中さん :04/03/23 11:14 ID:9f8hSLqS
pdfに問題なし。
158 :
154 :04/03/23 11:29 ID:im9uCQxG
自己解決。 パッチが出てるのね・・
160 :
774ワット発電中さん :04/03/23 14:12 ID:T2h8qyHr
時計の件だけどまるでPICが悪いみたいじゃん。 同じ問題はどのCPUでも起こるでしょ。 んで解決方法もみんないっしょだとおもう。 おれとしてはRTCを別搭載って手がいいとおもうけどね。 プログラムをあれこれ工夫するのはアマチュアとしてはたのしいけど その時間があったらより確実なRTCに渡したほうが いいんじゃない?
161 :
774ワット発電中さん :04/03/23 14:53 ID:yh2z770R
僕も16F88のデータシートで読みとりエラー109が出るのですが、 どうしたらよいでしょうか? 16F877はちゃんと読めるんですが。
162 :
774ワット発電中さん :04/03/23 16:43 ID:m5aMhvVL
>Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは? >Acrobatのバージンは?
大もうけだなww
166 :
164 :04/03/23 17:52 ID:81CNlZoy
実況の誤爆スマソ
167 :
161 :04/03/23 20:06 ID:ZyvhHpSk
acrobat 5.0です。Readerじゃなくて、pdfを作成できる商品版のやつです。
168 :
シナ人 :04/03/23 20:24 ID:jFvHU49Z
ピッキングについて教えてくれるスレはここですか? 俺、三和ロックなら得意だよ。普通のピッキングと違うのは最後に はさみの先端みたいなものを差し込んでガチャンと回さなきゃ駄目 なんだけど。
>>152 >普通はフリーランでしょ
>Microchip社はそのつもりで設計してる
TMR0はそうかもしんない。
ただ、計時用途に関してはTMR1モジュールが正にそれ用に設計
されていて、CCPモジュールと組み合わせると、CCPRxレジスタ値
でオーバーフローする1/Nカウンタが構成できるので、
>>151 の
1〜3の要因は回避できると思われ。
TMR1とCCPモジュールがあればの話だが。
>>153 >タイマー0の再設定をすると、プリスケーラまでクリアされるしフリーラン
そういえば
>>101 のはプリスケーラ使って無いや。
>>155 >例えば1周期6.5536msecのタイマがあったとすれば、152カウントで
>1秒だが端数は3.8528msec出る。これもカウントしておいて、
>65536を越えるときは153カウントで1秒数えればうまくいく。
タイマー割込みに端数が出ないように、水晶の周波数の選定をした方が
良いんではないか?
20MHz とかじゃなくて 10.24MHzみたいのをを使えば、
整数計算だけになるので割込み処理も楽になると思うが。
時計ぐらいなら、CPU速度を落としても、支障がないだろう。
でも、トラ技の今月号のキッチンタイマの記事は、
タイマーのプリセットしてるな…
あと、時計の精度って、どのくらいのものを期待してるんだ?
良く行く掲示板からのこぴぺっす。 簡単に説明すると、16F88は、シリアルとコンパレータがが使えて機能的に人気のある PIC16F648A(627/628)と、ADコンバータ搭載であるPIC16F819の良いところを足して 2で割りそれを改良した様なものです。 現在、書込みツールについては対応しているものが少ないですが、いずれこれが普及するでしょう。 現在の取り扱いは、IPI,秋月電子通商です。参考価格320円@2004/3/24現在 主な特徴 ・低消費電力で低電圧動作(2Vから動作可能、76マイクロアンペア@2V/1MHz) ・低スリープ電流(スリープ時0.1マイクロアンペア@2V) ・4KWのプログラムメモリー空間 ・内部で発振回路を持ち8段階の選択ができ、その最高周波数は8MHz ・内蔵発振器には、チューンレジスタが6ビットあるため、25度時で±1%を補償 ・2系統の外部クロック搭載可能、2つ目のクロックは、TIMER1に直接使えるので32.768KHzなどの安価なクリスタルを接続して時計などが簡単に構成可能 ・電源ピン以外の16ピンのIOを選択可能(RA4のみ入力) ・10ビットアナログ入力4チャンネル搭載 ・2系統コンパレータ、プログラム可能基準電圧発生回路内蔵 ・I2CとSPI搭載 ・UART(同期/非同期)内蔵であるため、RS232Cの構築がハードウェアで対応可能 (但し、16F648のUSARTのポートと、16F88のポートはピン配置変更がある) PIC16F627,8/648 : RB1=RX , RB2=TX PIC16F88 : RB2=RX ,RB5=TX ・USARTは外付けオシレータなしでも57.6Kbpsまで対応可能 ・RA5のポートでは定番だった出力オープンドレインは、通常のポートと同じトーテムポール出力になった ・CCPR1レジスタがあるため、簡単にPWM構成可能 ・小型化の流れである6ミリ角のQFNパッケージのプロダクトがある
秋月で売ってた12.8MHz発振モジュールと16F84Aで時計作りました。 いま電波時計に改造中。
173 :
774ワット発電中さん :04/03/25 10:18 ID:FbICqEDU
>>156 僕もよめません。AcrobatReader6(最新版)です。
ひょっとしてバージョン落とせば読めたりする?
16F84Aなどで、TMR0オーバーフロー割り込みを使った割り込み処理を行う場合についての質問です。 割り込み処理が終わる前に次のTMR0オーバーフロー割り込みが発生してしまった場合、そのとき終わらなかった割り込み処理と次の割り込みはどのように扱われるのでしょうか。 電波時計を作ろうとしているのですが、割り込み処理が多くなりすぎてその辺のことが不安になってきました。
単純に考えてスタックを食いつぶし、動作不定になる。
>>175 そうならないように、PICみたいなプアなCPUでは、
割り込み直後にまず、割り込みを禁止するのが普通。(INTCON GIEだっけ?)
>>176 >>177 ご回答ありがとうございます。
やはり割り込みがダブるとおかしくなってしまうんですね。
自走クロックによる時刻の更新と受信信号による時刻の更新がダブったときにそういう状態になってしまっていたようで、リセットしたときしか通らないはずのサブルーチンをなぜか実行してしまっていました。
原因がわかったのでなんとか解決できそうです。
PICでは割込みが起こったら、多重割込みを禁止する為自動的にGIEをクリアして RETFIE命令でGIEはセットされる、このとき他の割込み要因が有ればまた割込みが発生する だから有る割込み要因を処理中に他の割込み要因が発生しても、時間的遅れがあるが処理出来る しかしTMR0オーバーフロー割り込みが発生して、ユーザーがINTCON<T0IF>をクリアする前に 再びTMR0オーバーフロー割り込みが発生したら当然これを検出出来ない 長くてスマソが自分が16F876で使用している割込みルーチンだがこれでも問題無く処理出来る movwf w_temp swapf STATUS,W movwf status_temp clrf STATUS movfw FSR movwf fsr_temp movfw PCLATH movwf pcl_temp bsf PCLATH,3 btfsc PIR1,CCP1IF call int_ccp1 btfsc PIR2,CCP2IF call int_ccp2 btfsc INTCON,T0IF call int_t0 btfsc INTCON,INTF call int_int btfsc PIR1,TMR2IF call int_tmr2 btfsc PIR1,TXIF call int_tx btfsc PIR1,RCIF call int_rc btfss pcl_temp,3 bcf PCLATH,3 movfw fsr_temp movwf FSR swapf status_temp,W movwf STATUS swapf w_temp,F swapf w_temp,W retfie
>>179 ご回答ありがとうございます。
割り込み処理の前にGIEをクリアしておけばダブった割り込みは保留になるということですね。
そのソースでは、どの割り込みが発生したかによって処理をわけているんですね。
参考になりました。
こういうやり方が思いつかなかったので、私の書いたモノはスイッチの処理なども全部タイマ割り込みの中に押し込むという変なプログラムになっています。
>>180 つか、割り込みは最小限の処理だけで抜けるのが常識だべ。
>>180 177は間違い
>そうならないように、PICみたいなプアなCPUでは、
>割り込み直後にまず、割り込みを禁止するのが普通。(INTCON GIEだっけ?)
GIEのクリアはPICが勝手にやってくれる
183 :
231 :04/03/25 21:29 ID:GQ8aD9CI
タイマー割り込みは、注意しないといかんですね。 私の場合は、オシロを使って、割り込み処理時間を見ながらプログラムしています。 #int_timer0 void tim0(){ set_timer0(200); bit_set(a_port, 0); : : : bit_clear(a_port, 0); } として、aポートの0番をオシロで確認。予想通りの周期でパルスが 出ていればOK。さらに割り込みの中の処理内容によって、波形のdutyが 長くなっていくので、時間的な余裕もよくわかります。 mainは無しで、割り込みだけのプログラム? 売るほど作りました。 同期回路のようで処理が楽になりますから。
>>182 GIEのクリアは自動だったんですね。
レスを良く読まなくて申し訳ありませんでした。
>>183 オシロで処理時間を見るというのはいいアイデアですね。
私もやってみようと思います。
最初はステップ実行でシミュレーションして確認していたのですが、分岐条件が多くなりすぎて手に負えなくなりました。
それと、178で書いたリセットされてしまうという不具合は割り込みとは別の要因で起きていました。
テーブルがPCLATHで指定した範囲をアドレス2つ分だけはみ出していたんです。
それで、戻る先がなくなってリセット…という感じだったんだと思います。
>>180 ん? 割り込みがかかって割り込み処理が始まると「自動的に」GIEがクリアされる
→割り込み処理先頭で明示的にクリアする必要はない ですよ
問題は割り込みルーチン内で、例えば
>>179 さんの例では
btfsc INTCON,T0IF
call int_t0
で、int_t0ルーチン内で、割り込みを処理したマークとしてT0IFをクリアすると思う。
そうしないとその後TMR0割り込みがかからなくても、他の割り込みかかってこの
ルーチンに入ったとき、またTMR0割り込みがかかったように見えてしまうから。
でもって、
割り込みルーチン
↓A
T0IFチェック
↓B
int_t0ルーチンcall
↓C
T0IFのクリア
↓D
int_t0処理
↓E
int_t0 ret
↓F
割り込みルーチンretfie(GIEがセットされる)
で、D以降でTMR0割り込みがかかっても割り込みルーチンを抜け、
GIEがセットされた時点でまた割り込みがかかるのでいいが、A〜Cで
かかったTMR0割り込みに関してはどうしようもない。
この区間を出来るだけ短くするしか方法はないのではないかな。
場合によっては先頭でINTCONを丸ごとファイルレジスタにコピーしてから
INTCONまるごとクリアして、あとでゆっくりコピーをチェックなんて
どうだろ?と思う。やったことないけど。
186 :
183 :04/03/25 21:54 ID:GQ8aD9CI
オシロで見るやり方は、我ながらいい方法だと思っています。 紙の上で一生懸命説明しても全然理解しない新人に、 mainと割り込みと関数にそれぞれ信号を出して、多chオシロで 見させたら、プログラムの流れを一発で理解してくれました。 処理の流れ(分岐)によっても長さが変わるので、各ルーチンの 動作がよくわかります。 それ以来うちの部署では多chオシロが引っ張りだこです。
なぜロジアナを・・(Ry
MPLABのシミュレーションじゃ駄目なんですか? 漏れはオシロもロジアナも無いからMPLABフル活用でアセンブラ打ってますが....
大金持ち・ロジックアナライザ所持
金持ち・・オシロスコープ所持
小金持ち・秋月のPICプログラマー所持
このスレではこのようなヒエラルキーがあるって事ですか
>>188 同志と呼ばせてくだされ
190 :
774ワット発電中さん :04/03/26 00:52 ID:McOGa3zC
どのスレとは言わずそーゆー階層はあるさ。 素人がすげーもんもってるケースもよくあるけどさ(笑
191 :
774ワット発電中さん :04/03/26 01:05 ID:vmNeIf3a
多CHオシロでプログラムお稽古とはゴーセーな・・・ LEDでも並べれば十分でゲショ・・と、貧民は嘯く
192 :
774ワット発電中さん :04/03/26 02:40 ID:2s/uigbe
>>191 多くの場合は、LEDでOKだけど、
さすがに、10ms周期の1mSパルスは見えないでしょ?
また、リセットICの減電圧時のRESET出力なんかも....
>>187 この場合、ロジアナで何を見るの? ロジアナだとシングルで1回取って
ゆっくりと解析か、遅い周期のリピートトリガしかかけられないので、
今回の場合はオシロが適当と思われます。
私、自慢なんですが、個人でロジアナ(岩通4641)、オシロ(テクトロTDS3054B)、
などを保有しています。いわゆる計測器オタです。
学校で廃棄された測定器拾ってウハウハ オシロ5台 ロジアナ1台 スペアナ3台 さすがに型番は伏せるけど、怖いから。
PICでロジアナ作るっていうのはダメですか? 秋月の4行液晶あたりでさ。 オシロは無理でもゼロイチ表示なら大丈夫だろ。 なんなら液晶のキャラジェネのフォントを作って棒であらわしちゃえ。
>>193 お城一個くれ。
うちのアナログお城は、壊れてスイープしなくなっちゃったんだ。
100〜10KHzぐらいのパルスを出してパソコンの サウンドカードの入力を使うってのはどう?
ロジアナじゃジッタが見えないじゃん。 ここはオシロ
ぬるぽ
_ ┌――─┴┴─――┐ │ セルフサービス .│ └―――┬┬─――┘ ││ ./ ゛゛'゛'゛ / / | \/ \ \ \ノ
∧ < >_∧ = ()二)V`Д´)<ぬるぽ \ヽ ノ ) ノ(○´ノ ガッ (_ノ(__)
わろyた
HI-TECH PICC Liteの日本語リファレンスってありますか? 25のサイトだけでしょうか。
203 :
774ワット発電中さん :04/03/27 12:49 ID:gvp2y5Mi
204 :
774ワット発電中さん :04/03/27 13:01 ID:MEZO6v3u
∧ ∧ ( ´・ω) (⊃⌒*⌒⊂) /__ノωヽ__) ∧_∧ パシャッ パシャッ ( )】 . / /┘ ノ ̄ゝ
207 :
774ワット発電中さん :04/03/28 18:47 ID:CwMreixH
>>205 知ってたら教えて欲しいんだけど…
振って字とか絵とか出す奴、バーサライトって言うけど、バーサって何?
208 :
774ワット発電中さん :04/03/28 19:06 ID:RsP63ORz
なんだろうね とりあえずぐぐれ
uniVERSAl LIGHT
みなさん、何かプログラムを作るとき、ソースを書く前にどのような準備をしていますか? たとえば、仕様書やフローチャートなど。
212 :
774ワット発電中さん :04/03/28 21:48 ID:84szQagT
↑なにげにかこいいIDだ
214 :
774ワット発電中さん :04/03/29 18:01 ID:TvH5JjI8
超初心者ですが。 PICって1メートルくらいの高さから落として壊れるって事はないですよね? 書き込めたPIC16f819が急に書き込めなくなったから心配なんですが。
215 :
774ワット発電中さん :04/03/29 18:10 ID:n8c13fld
教訓 壊れないとは思うが、電子部品は大切にせよ。
216 :
774ワット発電中さん :04/03/29 18:15 ID:TvH5JjI8
217 :
774ワット発電中さん :04/03/29 19:05 ID:/CrOnWFj
219 :
774ワット発電中さん :04/03/31 04:21 ID:aVEiR/nv
>>218 はて?よく読めばある程度の結論が書いてあったり、そのページのリンク先にも
詳しく書いてある。自分が独自の方法を思いつき疑問に思ったら、実験するがよろし。
誰も試していないから誰も答えられないはず。
秋月のライターがお勧めでつよ。最新の16F88にも対応しているし、
>221 今日、不具合品と交換のPIC-Keyが来ました。 (例の20MHzじゃ動かない18F1320が原因) 基本的には、FED社のWIZ-C統合環境が無いと全機能使えないので ライターだけ(+PIC-Key-UNIV)として買うには、ちょっと高いかも。 USBさえあれば電源不要はとっても便利。
>>222 WIZ-Cって、どんなん?買って後悔しない程度には動く?
224 :
222 :04/04/01 14:59 ID:xxPA6+oA
>223 好みにもよるので何とも言えませんし、他社のン十数万とか使った事無いですので。 最初から英文マニュアル通りに学習すれば、かなり上手に使えるようにはなる。 サンプルプログラムとか一応付いて来るので、机上でエミュレーションすれば 実機を組まなくてもある程度は動作が確認出来ます。 FED-Cから使い初めて、WIZ-Cになってバグも少なくなって良くなったと思う。 アセンブラも、浮動小数点演算も一応使えるらしいので、これ一つで全部OK。 特に、統合環境でのICDデバッグやデバイス書き込みに関しては圧倒的に便利。 開発は、イギリスのベンチャー企業なのでサポートとかは殆ど期待出来ませんので 日本語マニュアル、ネットでの応用例たくさん、プログラムのデッドコピー マンセーの 教えて君にはちょっと辛いでしょう。
225 :
774ワット発電中さん :04/04/04 00:36 ID:Jx2mSnpK
226 :
774ワット発電中さん :04/04/04 14:38 ID:2oX+829K
ワンチップマイコンを弄ったことの無い初心者です。 今度、バイクの燃料制御用に回路を組んでやろうと思ってるのですが CPUは何がオススメですかね? 友達に聞いたところPICが手軽だよと、いわれたのですが・・・
227 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 14:43 ID:onoY5tr2
初心者でバイクの燃料制御って・・・度胸ありすぎ
229 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 14:57 ID:onoY5tr2
>>228 新聞で「エンジン爆発」報道が出るのを期待しちゃいまつ。
前に務めていた職場で、磁気軸受けの制御ミスでタッチダウンが発生!凄いことになったーよ。
>>226 ご自分が怪我をなさるぶんには構わないのですが、道路を汚したり、ましてや
他人を怪我させるようなことにならないことを祈念します。
まずはLEDをチカチカさせることからじっくり取り組んでください。
231 :
226 :04/04/04 15:12 ID:2oX+829K
ledのチカチカは学校の実習でやったことあるんです。 燃料制御と言っても、ガソリンの噴射口の[on/off]の時間で燃料の吐出量を 決めてるだけみたいなんで。 いけるかなと。 エンジンの回転数と、アクセルの開け方を参考に、噴射時間を決めるだけなんです。 >229 そう簡単にはエンジンって爆発しないですよ。
232 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 15:26 ID:onoY5tr2
>>231 意外に冷静でつね。
でも、Watch Dog Timerで暴走防止だけは忘れないでね....
>>230 の意見も尊重してね....
一見、簡単に見えることほど深刻な事故に繋がる危険が潜んでいるものです。
大阪府高槻の公園遊具の児童指切断事故なんて業者の責任だし....
233 :
226 :04/04/04 15:48 ID:2oX+829K
そうですね。 安全策について注意しておきます。 ただ、エンジンは燃料を多量に噴出しても、少なくてもエンストしてしまうものなので あんまり気にしなくてもいいかなと。
234 :
226 :04/04/04 16:08 ID:2oX+829K
32×32の2次元配列に燃料データをいれて、 適時データを取り出したいのですが そういう使い方にはむいてますか?
235 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 16:10 ID:onoY5tr2
>>233 DIP SWの設定に応じて、タイミングとるだけなら、DIPパッケージで作り易いマイコンがいいでしょうね。
PICとかで十分な気がします。では、気をつけて....
236 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 16:14 ID:onoY5tr2
237 :
226 :04/04/04 16:15 ID:2oX+829K
238 :
226 :04/04/04 16:17 ID:2oX+829K
>236 PICはメモリが少ないのですか? H8の方が少ないって話を聞いたのですが・・・ もしかしてだまされてる?
>>226 自分のことを初心者ですと宣言してなんになるの?
もしかして初心者ならやさしく教えてもらえると勘違いしてる?
240 :
226 :04/04/04 16:21 ID:2oX+829K
>236 これだけのスペックがあれば問題ないですね。 H8とPICではどちらのほうがプログラムは組みやすいでしょうか? 以前にpc-9801で遊んでいたころに、masmで常駐ソフトを組んだことはあるのですが 逆にCなどについてはさっぱりです。
241 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 16:23 ID:onoY5tr2
>>238 PICにはレジスタ(一部はSpecial FUnction Register)とプログラムメモリとEEPROM(非力)
しかない。Flashは書き込むのに時間がかかるからお勧めではない。
実験するだけなら、32×32のデータはRS232C等のインターフェース経由でパソコンに
転送して実験するほうが良いかと....
H8ならオンチップ上に2kとかRAM多いでつよ...
242 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/04 16:25 ID:onoY5tr2
>>240 MASM経験者なら、H8の方が良いかも....
PICは減算命令が他のチップと違って癖あるし、第一、add with carryのような命令付いてるのは
一部だし....
243 :
226 :04/04/04 16:50 ID:2oX+829K
>241>242 H8の方が扱いやすそうですね。 何か上手くいきましたら、またお礼程度書き込みさせてもらいます。 丁寧なレスポンスありがとうございました。
244 :
774ワット発電中さん :04/04/04 16:54 ID:8wAKt4tR
H8もPICもそれぞれに長所があるので、それを考えよう。 多分バイクのエンジン制御だったらH8かな。 車載で云々がでているが、 PICはいちおう某メーカのエアバックとかに採用されている事を付け加えておくよ。
245 :
774ワット発電中さん :04/04/04 19:11 ID:dhAucBsV
初めてPICのEEPROMに挑戦しようと思って ネットでいろいろと調べたのですが、あまり詳しく説明されていなかったので 以下のコードを作成したのですがプログラマでリードしても何も書き込まれていない状態でした。 御教授いただければ幸いです。 INCLUDE"P16F84A.INC" EPAD EQUH'10' ;EEPROMアドレス用変数 EDATA EQUH'11' ;データ用変数 MOVLW 10H;アドレスをWにセット MOVWF EPAD;変数にセット MOVLW D'10';データをWにセット MOVWF EDATA;変数にセット CALL EPWR EPWR BCF STATUS,RP0;バンクを0にセット MOVF EPAD,0;アドレス変数をWに移動 MOVWF EEADR;アドレスをセット MOVF EDATA,0;データをWに移動 MOVWF EEDATA;データをセット BSF STATUS,RP0;バンクを1にセット BSF EECON1,WREN;ROM書き込みを許可 MOVLW 55H;特定ワードをWに移動 MOVWF EECON2;特定ワードをセット MOVLW 0AAH;特定ワードをWに移動 MOVWF EECON2;特定ワードをセット BSF EECON1,WR;書き込みをスタート WRLOOP BSF PORTB,0 BTFSC EECON1,WR;書き込みが終了したかチェック GOTO WRLOOP;終了してなかったら戻る BCF STATUS,RP0;バンクを0に戻す END 長文申し訳ありません。
246 :
774ワット発電中さん :04/04/04 19:15 ID:8wAKt4tR
日本語版のデータシートは印刷して一様読みました。 一様その通りにしたつもりなのですが…
248 :
774ワット発電中さん :04/04/04 19:25 ID:8wAKt4tR
>>226 ここぐらいまでは良く見るけどね。バイクのステータス表示
エンジンの吸排気は、基本的にテーブル処理で、電磁ソレノイドを操作して
動かす。プログラム自体はそんなにも難しくないと思うけど、
電源系のトラブルと、ノイズに悩まされるよ(w
良い勉強かも。スタンドたてて十分検証してから走りにでてくれよ(w
249 :
774ワット発電中さん :04/04/04 19:29 ID:ocWKq0Dv
>>247 考えられる事
●PICがうまく動いていないのでは?
MCLRの処理がされていない。(プルアップとか)
レゾネータ、もしくは発振回路をつけていない。
電源電圧が低すぎる。
まず、プログラムの先頭にLEDを1秒間くらい4,5回ちかちかさせるプログラム
をいれてみたらどうだろう。
250 :
774ワット発電中さん :04/04/04 19:42 ID:ocWKq0Dv
ちなみに今MPLAB 6.50でシミュレーションしてみたけど 問題なく動いているね。
251 :
774ワット発電中さん :04/04/04 19:43 ID:ocWKq0Dv
252 :
774ワット発電中さん :04/04/04 19:52 ID:ocWKq0Dv
>>247 実際書いてうごかしてみたよ。
チャンとEEPROMの10Hに0Aがかけているよ。
INCLUDE文の次に
__CONFIG H'03FF1'
いれてみたら?
アンダーバーは2回ね
253 :
774ワット発電中さん :04/04/04 19:58 ID:ocWKq0Dv
>>245 あ、なんども書いてスマソだが、
このプログラムをマトモに動かすとEEPROMの寿命を激しく削るので
ENDの前に
ENDLOOP
GOTO ENDLOOP
位は入れたほうがよい。
あと最初のEQU とHがくっついているが、これは離しているよなぁ?(W
254 :
774ワット発電中さん :04/04/04 21:07 ID:ImIeafAF
255 :
226 :04/04/04 21:19 ID:2oX+829K
>248 >251 >254 皆さんthanksです 同じ事を考えてる人は多々居るんですね。
256 :
245 :04/04/04 22:10 ID:dhAucBsV
>>249 >>250 >>252 >>253 みなさんありがとうございます。
252=253さんの言う通りしてに新しいPICに書き込んで電源を入れると
うまくいきました!
本当にありがとうございました。
257 :
249=250=252=253 :04/04/04 22:40 ID:rqhRLs26
258 :
245 :04/04/04 22:47 ID:dhAucBsV
あ、同一の方でしたかw ID見て無かったです。 失礼しました。
259 :
774ワット発電中さん :04/04/05 20:03 ID:gkyq3XVh
AVR
>>228 日本語のコメントをつけると、表示がバグるのは直っている?
PICに興味を持ち、手始めにLEDを光らせたいと思っています。 LEDのひとつひとつをばらばらに光らせたいと考えたとき 理論上はいくつまで制御できるのでしょうか? かなりへんてこな質問だとは思いますがどなたかお願いします
>>262 どの石を使うかで変わってきます。
例えばPIC16F84なら入出力が13本あるから
6*7のマトリックスにして42個かな?
>>263 どうもです。
入力を他に使う場合、数も変わるということですね。
>>264 (;´д`)
そうじゃなくて、18ピンのを使うか、40ピンのを使うかで違うってこと。
>>265 足の数?
18ピンのやつが手ごろでしょうか
>>262 使う石はPIC(とトランジスタ)だけですか?
他の石も使っていいならシフトレジスタICなどで利用可能数はかなり増えます。
例えば
8LED+4本(4to16デコーダーIC使用で15バンク)で、12本で8×15=48個制御とか、
10LED+2本(例えば16bitシフトレジスタで16バンク)で、12本で10LED×16=160個
とか。
3本でここまでやる例も(7segmentLED8桁。LED素子数で64)
例はAVRだがPICでもできると思う
http://elm-chan.org/index_j.html テクニカルノート−AVR: ISP端子の活用−【LEDディスプレイを接続する】
話端折ってすみません。 当方マイコン初心者です。 これから本格的にはじめようと思うのですが、 どのマイコンを極めればよいのか非常に悩んでいます。 PIC、AVR、H8といろいろ有りますが、 将来性からも考えてどの石がお奨めか、ぜひ背中を押してやってください。 プログラム言語はCで行こうと考えています。
Cで開発するならH8がいいと思うよ。 開発環境も秋月のキットだけで、でソフトからハードまで一通り揃えられるし。 詳しい解説書も最近ちらほら見られるようになってきた。 まあ、どのマイコンを極めるにしても、興味と気合と時間がないとだめぽ。 がむばれ
>>269 どうも、ありがとうございました。
PICスレなのにどうも失礼しました(本当は誤爆だったんです)
H8ですか。
ではさっそくトラ技の4月号の付録あたりからはじめてみようかと思います。
興味はバッチリです。気合入れて行きます!
271 :
774ワット発電中さん :04/04/07 03:40 ID:iEIV/+3g
アセンブラは必須なのだが
>>262 PICの許容損失からいうと、
各ピン25mA、全体で200mAだから、LEDに15mA流すとするとだと10本くらい
同時点灯がいいところかな?
276 :
774ワット発電中さん :04/04/08 08:50 ID:FcxAz02C
277 :
774ワット発電中さん :04/04/08 10:18 ID:4yuMCSxW
これからは16F88だね いちろくえふぱちはち 高性能で安い!!
278 :
774ワット発電中さん :04/04/08 11:18 ID:7uvYfJAA
すいません。ブラウザって何処にあるんですか? 解凍したものをブラウザにドラッグドロップしなさいと言われたんですが・・ お願いします。
>>278 あなたがここを見るのに2ch専用ツール(2chブラウザ)を使わず、
WindowsなりMacなりの標準の機能を使って見ているなら、それがブラウザ。
とりあえずこのスレを表示させて、そこにドラックドロップ。
280 :
278 :04/04/08 11:51 ID:Du+Ysh7i
>>279 殿
無事解決しました。
本当にありがとうございました。
281 :
774ワット発電中さん :04/04/08 13:45 ID:Gff2XI2a
>>275 全てのビットが0だとと動作しなくなるので、初期値に注意。
PICじゃないのだが
昔、その原理で光るクリスマスツリー用のイルミネーションを知人に作ってあげた事がある。
でも、「しばらく見てたら気持ち悪くなった。」って言われちゃったよ。
>>281 確かに動作しないですね(暇な奴
>昔、その原理で光るクリスマスツリー用のイルミネーションを知人に作ってあげた事がある。
>でも、「しばらく見てたら気持ち悪くなった。」って言われちゃったよ。
ワロタ
点滅を遅くしてジワジワ点滅ならいいのかな?
283 :
774ワット発電中さん :04/04/08 19:51 ID:t0g2cdKl
16F88はバク多くて使えねえです
285 :
774ワット発電中さん :04/04/09 16:18 ID:fxyBSuLl
286 :
774ワット発電中さん :04/04/09 19:20 ID:Md68brWP
>>283 バグが多い???もまいがバグじゃないのか?
元々トリッキーな仕掛けのおおいデバイスですが何か。
250円でこれだけテンコ盛のシーピーユーもないとおもうぞ。
4`ワードもプログラム入るしさ。
大体エラッターみたら、精度の修正と、タイマー1で外部オシレータ
を使うときにはICSPを併用するとオシレータにダメージがあることくらいしか
書いてない。
内部クロックも8段階でアクティブにチェンジできるし、面白いと思うが。
これよりも16F819のRB3の件の方がえらッ太なんだが。
d
g
test
'
l
294 :
774ワット発電中さん :04/04/10 13:43 ID:RJvHiOUi
2004・04・12 PICPGM6ベータバージョン
http://akizukidenshi.com/down/tk/picpgm_v4/index.htm 1.PIC16F88対応。
2.PIC18F452で、CPBを有効にすると、WRTC,WRTB,WRTDも有効になってしまう不具合を修正。
3.PIC12C5xx,PIC16C5xシリーズのIDワードをファイルからの読込むときの方法を修正。
4.hexファイルをpicpgm6.exeに関連付けすると、hexファイルのダブルクリックでpicpgm6.exeの起動 および hexファイルのロードを行うようにしました。
5.引数で、HEXファイル、デバイスを指定できるようにしました。詳しくは、ヘルプファイルをご覧ください。
圧縮ファイルを解凍すると、PC側ソフトのインストールファイル(setup.exe)と、新ファームウエアファイル(ppgm636.HEX)が現れます。
PC側ソフトをインストール後、ファームウエアのアップデートを行ってください。
お気づきの点がありましたらご連絡ください。
>>296 int と long しかない。
printfがない。
298 :
774ワット発電中さん :04/04/15 17:36 ID:pr62KtjS
>>296 http://www.picant.com/c2c/c.html の、日本語版。バージョンは本家の方が高い。
PIC16F84だけ、ずっと使える。
主にヨーロッパ圏で使われているっぽい。
価格は安い。コードはたまに変なコードを吐くが、オプテマイズはまあまあ。
これをcと思って使っていると痛い目にあう。
cぽい言語と思えば、アセンブラで書かないだけ楽。
ちなみに、間違ってもGrich RCのcコンパイラは使わないほうがいい。
Grich RCのデバッグをやっているみたいになる。
ccscは後閑さんが解説したので結構使われている。
漏れ的には、MPLABと統合できるHi-tech PIC-CのLiteバージョンがいいと思うが。
Hi Softのコンパイラは出来がいいよ。マイクロチップのアプリケーションノートでも
度々でてくるし、自社のCを使わないというのが(w
>>298 日本語のリファレンスとかありますか?>Hi-tech PIC-CのLite
300 :
774ワット発電中さん :04/04/15 18:12 ID:pr62KtjS
>>300 私もそこ見たことあります。
英語リファレンス辛くてMPASMに帰りました。
302 :
774ワット発電中さん :04/04/15 18:22 ID:OtQM7PBa
数キロバイトぐらいアセンブラで書け
303 :
774ワット発電中さん :04/04/15 20:22 ID:ZfC0FD7e
>>302 かわいそうに・・・・・・・・・・・・・
土木の測量用冶具をアセンブラで作れる?おまえは天災だな
おれは盆栽だからCの三角関数で組み込んだ。すぐ終わった。
304 :
774ワット発電中さん :04/04/16 00:57 ID:qEwfzVlX
超初心者ですみません。 PICって書き換え耐久回数はどのくらいですか? あんまり書き込みを繰り返すと支障が出るのでしょうか H8なんかは100回前後と聞きますが
305 :
774ワット発電中さん :04/04/16 00:58 ID:CZx2cuLS
仕事でH8使っていくつか基板作ったけど、PICいいね。 コストの関係でH8は無理ってのをPICだといけそう。 ロジックで組むより楽でH8より遥かに安い...。もっと早く導入すべきだったなぁ。
306 :
774ワット発電中さん :04/04/16 01:48 ID:jnlx/KCD
>>304 12F675のデータシートみたら、
プログラムメモリー 1万回
EEPROMデータメモリー 100万回
年数40年だよ。
うまく使えばこんな良い石ないよ。150円
>>305 癖のある女みたいで、中を知れば面白い。(知れば知るほどドツボに)
量産だと、かなり値段が落ちるからね。それと量産時ICSP対応にすれば
生PICをリールで買って、検査時にチェックピンで書き込めば、
製品検査時に書き込みも済んで、書き込み代が無くなる。
307 :
774ワット発電中さん :04/04/16 01:51 ID:jnlx/KCD
>>304 H8はルネサスになってから1000回になった。日立時代は100回。
あくまでも保障値。100回書いたから終わりってわけじゃない。
マイクロチップは元々EEPROMを主力にやっていたから、そのノウハウがあるのだよ。
ここ、2年PICをやっていています。 そろそろ、H8かなと思いつつも、PICもより安く高機能になってきて なかなか、出番がありません。 一応、秋月電子通商のH8のKITを組んで、少し慣れておいて、 その時が着たら、本格的にやろうとは思っていたのですが。。。。 もともと、PCが専門なので、FTDI(USBのインターフェース)を使って PICを外部IO制御+αで使ったりしています。 アセンブラがややクセがありすぎていやなので、CC5XというCコンパイラを使っています。 シンプルで信頼性の高い製品です。ただ、演算ライブラリしかないので、万人向けではないですが、 チップ依存のライブラリは、データシートを見ながら、自分で書いた方が柔軟性が高いと思っています。
>>307 http://speana-1.hp.infoseek.co.jp/toragi/toragi_3.htm 幸いにH8Tinyには、E-7という非常に安価な(といっても、2万円近くする)
エミュレータがあるので、これを使用すれば、上記の問題は発生しません。
ただし、エミュレータは、ステップ実行する毎にフラッシュメモリを書き換えるため、
何度もデバッグしていると、デバイスが使えなくなるという問題があります。
H8Tinyの公証書き換え回数は、100回までとなっていますので、
100ステップのステップ実行をすると、それでデバイスが使えなくなる計算です。
(実際には、もっと使えるようですが・・・)
ぶわはっははは。実はエミュレータ買おうと思ってたんだが、買わなくてよかたー
PIC16シリーズは、16ビットタイマーがあるくせに、16ビットアクセスが無いのが超難点なんだよな。 16ビットタイマーの値を読むときに インプットキャプチャが使えないときには、 1)Timer1Hを読む 2)Timer1Lを読む 3)もういちどTimer1Hを読んで、さっきのTimer1Hと値が変わ っていたら、もう一度Timer1Lを読み直す。 (場合によっては、これによって生じた誤差分を引く) ってな事しなきゃならんのが欝。
311 :
774ワット発電中さん :04/04/16 13:07 ID:Voo9beGQ
>>310 16F88や16F627のTIMER1は、コンペアーモードがあるから、比較したいカウンター値を
CCPR1H,L CCPR2H,Lにぶっこめば、一致したときにCCP1EとRTIE、GIEを
イネーブルにしておけば勝手に割り込みがかかるので便利だけど、
12F675はTIMER1あるのに、コンペアレジスタないもんな(;´Д`)オイ
それと罠に陥ることとして、フリーラン(カウンターを止めない)で読むときは
必ず同期モードT1CYNCを0にして、同期させないとだめぽ。
フリーランのときは
>>310 の処理がマストになるね。
312 :
774ワット発電中さん :04/04/16 13:57 ID:gi2J12do
質問があるのですが? 現在、877をつかっていろいろ遊んでいるのですが。 RB6,RB7ピンをつかいたいのですが、うまくつかえなかったのです。 どうやら、CONFIGRATION BITのDEBUGを0にしなくては、いけないところまでは調べたのですが。 今度は、MPLAB上で変更する手段がわかりません。 つかっている環境は、 MPLAB6.50 PIC C LITE(フリー版) です。 ぜひ、教えてください。
313 :
774ワット発電中さん :04/04/16 14:10 ID:Voo9beGQ
>>312 ん?
CONFIGの部分のBit11は、常に1にしておけばいいんだよ。
このデバッグモードを0にしたら、RB6,RB7はデバッグ用のポートに割り振られるから
通常のI/Oとして使えない。
また、このデバッグモードについての詳細は公開されていない。
(どこかに、個人的に解析したものはあるかもしれないが)
結論はBit11を"1"に設定するべし
314 :
312 :04/04/16 15:20 ID:gi2J12do
>>313 勘違いしていました。確かにその通りですね。
こちらの方も何とか行きました。ありがとうございます。
もっと、精進したいと思います。
315 :
774ワット発電中さん :04/04/16 18:11 ID:Voo9beGQ
>>310 AVRだって、それは(16ビット転送)できまい?(出来たっけ?)
H8あたりは
MOV.L R1,R2 (R1=R1H+R1L=16bit)
とかあるんだけどね。
いかんせん、H8は高い。
やっぱ1チップ300円とかのPICは、貧乏人にはミリキテキなんだよねぇ。
AVRだと下位を読むと上位が自動的にテンポラリに入る仕組みなので 16bitタイマー値には同時アクセスが保証されます。
319 :
774ワット発電中さん :04/04/17 20:30 ID:3vpP5WoN
>>319 Status = Future Product か。
8ピン系は液晶が繋がらないからなぁ。
>>324 ダウンロードしようと思ったら404返されるんだが…
326 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/18 16:23 ID:Lj7tsoIe
327 :
774ワット発電中さん :04/04/18 16:46 ID:2kuDX01L
328 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/04/18 17:03 ID:Lj7tsoIe
>>327 このスレの
>>227 で漏れがV.6.50をダウンロードしたのが 2004/04/04 でした。
その後、1週間はDLできたと思いまつ...
>>324 さんが言うように戦略なのか?それともバグなのか?
329 :
774ワット発電中さん :04/04/18 17:35 ID:fC4GMS8k
こんにちわ! 超初心者ですがご教授ください。 最近、電子工作を始めようと思い、HPを探していたら 初心者はPICプログラマーを作ってみようと書いていたので 早速買って作ってみたものの、どんなものをプログラムして いいのかわかりません。 こういうものを作ってみるといいよみたいなことを ご教授ください。 こんなアホですが宜しくお願いします。
まずはLEDを点滅させてみれ あとは時計とか
>>329 ↑
実用性あるものとして電子サイコロ
必要なもの:PIC16F84(あたり)、18ピンICソケット
7セグLED, 抵抗(7セグ用のは集合抵抗がカッコいいかも)
タクトスイッチ
ユニバーサル基板 ハンダ少々
以上。
ちょっと拡張すればラーメンタイマーもOK
332 :
774ワット発電中さん :04/04/18 17:46 ID:pzcRavxu
ラジオ系は完成したら聞こえる感動があるので取っ付き易いかも。
>>333 ラジオは「うまく行かなかったときにテスターだけで調整が困難」というデメリットも。
あ、キットを買うんだったら、まー大丈夫か。
つっか、最初はLEDとスイッチと電池で光らせて見れ。
光ったら、それに2SC1815あたり繋いでみれ。
6.50 は ftp.microchip.com から入手可能みたい /tools/picmicro/devenv/v6xx/v650
>>335 そこにいけるのは知ってるが、そのあとの肝心なzipファイルがhttp,ftpとも
落とせないんだよ。
>>336 じゃあきっと貴方のやり方が悪いんだね。
私はたった今落とせたから。
339 :
329 :04/04/19 17:32 ID:P3cCkF8r
返信ありがとうございます。 電子工作初心者なので、キットなどを作ってみたいと思います。 ご親切にありがとうございました。
みんなMPLABのバージョン幾つ? やっぱり最新のやつ使ってる? 漏れはなんか6.XXになってから大幅にインターフェース変わって使いにくいから、 5.0使ってる…
>>340 俺6.40かな?
16f819使う時に思いきって換えた。
結局、テキストエディタでソース打ってる。
6.xx使ったら、もう5.xxには戻れない(W 機能が違いすぎ
>>340 同士。
新しいのも落としてみたけど使い方わからなかった…。
344 :
774ワット発電中さん :04/04/19 19:24 ID:cpi4BYXy
簡単な英語が読めないんだろ。そうだろ?
345 :
340 :04/04/19 20:30 ID:WVeESG5+
>>344 そうですが何か?
>>343 おお、同士キター・゚・(ノД`)・゚・
新しいのは使い方覚えるのかなり体力消耗する…w
個人的にはMPLABはデバッグにしか使わないので今のままで十分だけど、
でもやっぱり新しいデバイスを使う時新しいのバージョンのを使わないといけなくなるなぁ。
microchip.com、元に戻った? でもエラーが出るとこもあって中途半端
Project -> Project Wizard... ->次へ->デバイスの選択->次へ-> Select Toolsuite => Active toolsuiteにMicrochip MPASM toolsuite選択 ->location には C:\Program Files\MPLAB IDE\MCHIP_Tools\mpasmwin.exe (多分自動的にそうなってる) -> プロジェクト名 test01とか、好きな名前を、 Project directroy はBrowseボタンで、好きな所に作る。 -> 次へ->ソースの選択はないから次へ->完了 そのあとFile ->new ここにソースを書く、どっかからのコピペでもよし。 書き終わったら、file ->save でさっき作ったフォルダーに保存。名前は適当でいい。 次に、こいつをプロジェクトに取り込むので、 Project ->Add File to Projectとして、今セーブしたファイルを取り込んで融合。 あとはF10一発コンパイル。 シミュレータは、Debugger -> Select Tool -> MPLAB SIMで出来る。 日本語にするには、よくいくサイトのBBSに書いてあったので引用 1.MPLAB 6.50を起動 2.File -> New で新規のテキスト画面を表示させる (もしくは、既存のWorkspaceを開く) 3.Edit ->Propaties... を選択し、TextタブのSelectFontボタンを押し、 以下の設定を行う フォント名 Terminal スタイル 標準 サイズ 6 (5,6,9,12,14で好みを選択) 5-豆粒、6-標準、9-半角ぽい、12-でかい、でかい半角 それ以外の数字は設定不可 書体の種類 OEM/DOS (日本語を選択すると等倍にならない) 4.OKを2回押す どや、簡単だろー。MPLAB5なんて使ってられなくなるよ。
| \ |Д`) PICデ エコーマシン ツクッタケド、HEX uプ シテモイイ? |⊂ |
>>348 щ(゚Д゚щ)クレ
16F819あたり?16F88?16F873/16F877?18F452?12F675?
くれー
では、お言葉に甘えて・・・
回路図は↓に投下しときます。
―VVV― AAで電気・電子回路図を描くスレ ―||―
http://science2.2ch.net/test/read.cgi/denki/1072100443/114- :020000040000FA
:1000000064008A018301F428F0000308F10009303C
:1000100081001F190E281E08A4001F159501200835
:1000200086008510A0198514051121088600851009
:10003000A11985148511851A1514061024180614A3
:10004000A0030512051605158515200886008510E4
:10005000A01985140511210886008510A1198514A1
:100060008511851A95140610A4180614A00305120C
:10007000051605158515200886008510A01985141C
:100080000511210886008510A11985148511851A8E
:100090001515061024190614A003051205160515DA
:1000A0008515200886008510A019851405112108E2
:1000B00086008510A11985148511851A95150610DD
:1000C000A4190614A00305120516051585152008A8
:1000D00086008510A0198514051121088600851059
:1000E000A11985148511851A15160610241A0614EF
:1000F000A003051205160515851520088600851034
:10010000A01985140511210886008510A1198514F0
:100110008511851A95160610A41A0614A003051257
:10012000051605158515200886008510A01985146B
:100130000511210886008510A11985148511851ADD
:1001400015170610241B0614A00305120516051525
:100150008515200886008510A01985140511210831
:1001600086008510A11985148511851A951706102A
:10017000A41B06140512051605158515A00BDD2810
:10018000A103210FDD280310803086000015000038
:10019000061DA113860C800100150000061D211309
:1001A0008001860C00150000061DA1128001860C3E
:1001B00000150000061D211280010B11710883003B
:1001C000F00E700E0900051205160515851520089C
:1001D00086008510A0198514051121088600851058
:1001E000A1198514851108008F30840074308000B7
:1001F00081308400CF3080003030900081309F000B
:100200009F3084001E3080001C30850085308400C3
:10021000A1308000970192308400FF3080007F3051
:100220009500003086008630840000308000043065
:10023000920091010C30970003309400A001A101BD
:100240000830A600E7200614A003E3200614A0034C
:10025000E3200614A003E3200614A003E320061401
:10026000A003E3200614A003E3200614A003E32068
:1002700006100512051605158515A00B2229A10BE0
:100280002229A60B2229FF30A1008630840003100A
:100290008030860000150000061DA113860C800129
:1002A00000150000061D21138001860C00150000BA
:1002B000061DA1128001860C00150000061D2112EA
:0E02C0008001E23081009101A0308B006629A0
:02400E00422F3F
:00000001FF
>>351 の製作後記
・消費電流は12mA程です。
・起動後、DRAM全ビットに対して8回ダミーアクセスを行っているので、
音が出るまで2秒程掛かります。
(ダミーサイクルって、全ビットに対してではなくてDRAM単体に対して
でしたっけ?)
・DRAMに1bit品種を用いた(手元にこれしかなかった)ので、アクセス
に時間が掛かり、サンプリングサイクル内に間に合わせる為にアクセス
手順ルーチンはダミーアクセスでしか使ってません。 サンプリング周期
でアクセスするコードは上記ルーチンを展開したものになっています。
(多ビットIO品種のDRAMや、16F873等のIOピンの多いPICを使えば、
必要なマシンサイクルを減らせるので、サンプリング品質の向上や、
エフェクトの応用が狙えるでしょう)
・ディレイタイム設定のビットスイッチ読み込みは、当初、弱プルアップ
されたRBをディップスイッチでGND間にR=1.5kΩで落とす/さない
で判定しようとしたが、1.5kΩだと重い?のかAD変換にノイズが乗る為
断念。 現状の回路ではRB2にDRAMの入力容量がぶら下がっている
為か、一旦Hをスキャンすると次のラインのスキャンでもHが読めてしまう
現象の為、1ラインスキャンする度にRB2にLを出力して放電。 これの
解決に時間が掛かった。
面白い試みですね。 音を聞いてみたいのですが無理?
ぉ、エコーマシンですか。 なんか最近はPIC/AVRにDRAM直結するのが流行っているよね。
>>353 スマソ。PCに録音しようとすると何故か激しくノイズが・・・
それにエコーゲインのVRの設定によるのかブレッドボードで
組んでいるせいか、はたまたフィルタまわりの設計が悪いのか、
なんかたまにボツ・・・ボツ・・・とたまに発振!?している様な... orz
それと、音質もサンプリングレートが低い為、よくありませんです。
若松でDRAMの4164が370円で買えるみたいですので、 明日部品を買って挑戦しようと思います。
>>356 マ、マジですかー!?
/∧_/∧ /∧_/∧ オロオロ
((´´ДД``;;)) ((;;´´ДД``)) オロオロ
// \\ // \\ オロオロ
⊂⊂(( ヽノヽノつつ ⊂⊂ヽ// )) つつ オロオロ
しし((_)) ((_))JJ
4164タイプはメーカーによって1番ピンがN.Cじゃなくて
/REF(リフレッシュ)ピンになっているので、1番ピンは
GNDではなく、+5Vラインに繋いで下さいです。
(と、いうか互換性を考え当初からそうすべきだった...)
それと、
>>352 への自己レス
ダミーサイクルは、電源投入後 200uS 程非アクティブな
状態にした後、8回行う。 が、正解・・・
2004・04・23 PICPGM6ベータバージョン 1.PIC16F88対応。 2.PIC18F452で、CPBを有効にすると、WRTC,WRTB,WRTDも有効になってしまう不具合を修正。 3.PIC12C5xx,PIC16C5xシリーズのIDワードをファイルからの読込むときの方法を修正。 4.hexファイルをpicpgm6.exeに関連付けすると、hexファイルのダブルクリックでpicpgm6.exeの起動 および hexファイルのロードを行うようにしました。 5.引数で、HEXファイル、デバイスを指定できるようにしました。詳しくは、ヘルプファイルをご覧ください。 6.PIC16F88追加に伴うPIC16C715の不具合修正。(20040423:V6.3.2&ppgm637.hex)
359 :
774ワット発電中さん :04/04/26 17:56 ID:gDVGJYKg
質問させて下さい PICでRS232C通信をさせるオモチャを考えています。 その場合、クロックの精度はどの程度必要なのでしょうか? 以前試したものではXtalとか、セラミックの発振子を使ってうまく行ったのですが 今回の物にはポート数が欲しくて内蔵のRCクロックを使って見たいのです。 実は内蔵クロックって使った事が無いのです。 RS232Cの規格やMicrochipのANも調べてみたんですがどうも 見つかりませんでした。 スタート、ストップビットまで入れてもせいぜい10bit程度なので、+/-5%程度 取れてれば良いかと思うので、内蔵クロック(公称1%)でも良いかと思うんですが、 やってみた事有る方います?
360 :
774ワット発電中さん :04/04/26 17:59 ID:/F1VvngJ
361 :
774ワット発電中さん :04/04/26 18:01 ID:/F1VvngJ
362 :
361 :04/04/26 18:02 ID:/F1VvngJ
>>359 だった(´・ω・`)
(´・ω・`)(´・ω・`)(´・ω・`)
363 :
359 :04/04/26 18:21 ID:gDVGJYKg
>>361 どうも有難うございます。
内蔵クロックでいけそうですね。
364 :
774ワット発電中さん :04/04/30 23:54 ID:jE0n2VkU
365 :
774ワット発電中さん :04/05/01 00:21 ID:PhHA50uf
部品代約6000円 イラネ
>>364 基板が1枚400円@P板 っていうのはいいかもね。
367 :
774ワット発電中さん :04/05/01 20:57 ID:C6kaSg1x
秋月のPICプログラマキット Ver3でic-progは使えますか? ブランクの12c509aを読み込むと全部0000になってしまいます。 0fff〜0fffで最後が違う値にならないといけないんですよね。 環境はwindows2000で、Enable NT/2000 DriverとEnable Vcc control for JDM やポートの設定などはひととおり試しました
368 :
367 :04/05/01 21:18 ID:C6kaSg1x
すいません使えないようですね。解決しました。
370 :
774ワット発電中さん :04/05/03 01:45 ID:HOAVoFsX
2004/5/1
マイクロチップテクノロジー MPLAB6.51アップデート
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469 http://ww1.microchip.com/downloads/en/DeviceDoc/MP651.ZIP Version 6.50 -> 6.51 Interim Release
Add this text about the v6.51 Interim release:
New Features:
- Alt-key underline added to all menu items
- Project manager speed enhancements (v6.50 make facility slowed this down)
- Bitfield mouseovers
- Structure member pointer support (StructName->MemberName)
- Beta version of PM3Cmd
- Beta version of Visual Procmd
New device support:
PRO MATE II
- PIC16F54/57
- PIC12F635 advance support
PICSTART Plus
- PIC16F716
- PIC18F2331/2431/4331/4431 advance support
MPLAB ICD 2 Programmer
- PIC12F635 advance support
MPLAB SIM
- PIC16F785
- PIC18F8310
- PIC18F8390
371 :
774ワット発電中さん :04/05/03 09:37 ID:DX4BdtwZ
>>369 74HC4066がメーカーによって耐圧が違うから要注意だったよね。
結構、無理な使い方をしているから、耐圧が低いものを使うとアウトだったような。
>>371 アナログ的に動く74シリーズはメーカでまちまちですね。
注意しないとけっこう填ります。例えばワンショットとか、(74HC123とか)
はメーカで時定数がちがったりします。
さて、秋月のライタのお話ですが、参考程度に解説します。
一番食うのが、窓付きPICで、代表的なものとして、12C508
(In-Circuit Serial Programming? (ICSP?) Guide
http://ww1.microchip.com/downloads/en/DeviceDoc/30277d.pdf P50参照)
IPP Programming supply current 50 mA max がある。
これをコントロールするのは、TC74HC4066AP Toshiba
http://www.semicon.toshiba.co.jp/td/ja/General_Purpose_Logic_ICs/CMOS_Logic_ICs/20011002_TC74HC4066AP_datasheet.pdf スイッチスルー電流がアナログスイッチ一つあたり25mA
これを2つ束ねているから、最大で50mA取れる。ICCには殆ど電流は流れないので、問題はない。
オン抵抗はTYP 45Ω/2 = 22.5 Ωだが、
全抵抗分 = 13V / 50mA =260Ω
PICの等価抵抗 = 260-22.5 =237.5Ω
PICに掛かる電圧 = 237.5 x 50mA = 11.875Vとなり、
電圧最小値の12.75Vを満足できない。
逆算すると、このスイッチの抵抗は約5Ω以下にしないとならない。
しかし、例えばこれがフラッシュ型だと話は代わって、例えば16F84Aとかだと、
Ippの書き込み電流が200uA maxなのでPICによる電圧降下は無視できる。
また、最近の16F627Aや12F675などのデバイスは書き込み電圧はVCC+3.5V以上あればよい。
整理すると、
1.窓付きの古いタイプやOTP(例えば12C508)は、ワーストケースで計算するとスペック不足
2.フラッシュ型のマイコンについては、問題ない
但し、実際にはプログラムがコンペアをしているのでエラーがもしあれば、
書き込みアプリが警告をだすだろうし、窓付きは開発段階の一過性で使用される場面が多く、
量産には、専用のライタを使用するか、書き込み業者にて書き込む。
(もっとも、このライターで量産を出している企業も現実多いけどね)
12C580Aを実際にオシロスコープやカレントセンサーで状態を測ったことがあるけど、
ワーストケースの半分以下でした。Vppも12.75Vギリギリでています。
それに、今はそんなデバイスなんて使わない方向でしょう。16F88とか12F675とかあるので、
わざわざOTPなんてホビーでは使いませんし。(余談ですが、デジキーに12F675のフラットがあります)
つまり、実際の使用用途として問題は殆どでないです。
それをいったらJDMライタは、なに?(w
企業量産なら、マイクロチップ純正、もしくはメーカ保障完成品を買えということです。
参考までに。
どこかに、自分のところのライタの比較で秋月のライタを比較していたけど、
ttp://einst.hp.infoseek.co.jp/speed/compe.html ここの説明で200Ωとなっているのは、
昔は確かに4000番の66をつかっていたのでそうでした。
あと、キットで2万超えは高い・・・・世の中結局コストなんだよね
374 :
774ワット発電中さん :04/05/06 02:14 ID:/cQtQOKK
初心者がいきなり生意気なことするな。 まずはMPLABのチュートリアルにしたがって簡単なプログラムを書いてみろ。 話はそれからだ。
>>373 一番上のURLのサイトをザッと見たけど、コンパイラに何使ってるか
書いてないねぇ。 eedata とか snb とか PA クサいんだが、PA だと
最後の end はエラーになるし。
>>eedata-235; 0,166
手持ちのPAでは - はエラーになる。
サイトに BBS があるようだから、そこで聞いて味噌。
376 :
774ワット発電中さん :04/05/06 04:23 ID:/cQtQOKK
>>373 は自分が使っているアセンブラ標記について理解していないのがそもそもの大間違い。
ロジックを理解して自分が使っているアセンブラ用に書き直したほうが勉強にはなるが、たぶんそれは無理だろうねw
>>373 です。
>>374 LED1個の簡単な回路を組んでそれを点灯させるプログラムは一応理解出来ました。
>>375 試して頂いた様でありがとうございます。
やはりエラーになるんですね。
マルチになるので当該BBSでの質問は控えていました。
そちらで聞いてみようと思います。
>>376 MPASMのほうが私としてはとっつきやすい感じがしてそちらを使って
プログラムを始めたばかりですので正直、理解しているかと言われれば
生まれた赤ん坊が「あ〜、う〜」発音している段階だと思います。
少しづつ覚えていこうと思います。
皆さん、ありがとうございました。
>>377 (
>>373 )
PAは癖があるし、サポートももうしないから、
MPLAB6.51を素直に使ったほうが自分のためでもあるよ。
774ワット発電中さん
>>373 です。
MPLABを使っていこうと思います。
少しづつ前に進みたいと思います。
ありがとうございました。
380 :
774ワット発電中さん :04/05/06 20:33 ID:KDBFAW9V
PICのMLが面白いことになってるなw
ちょっと見ビ○コが激しく糞なんだがあってる?
384 :
774ワット発電中さん :04/05/07 01:41 ID:iEIV/+3g
ビッコ カタワ
ML一通も届いて無いぞ? いつの話だ?
>>387 サンクス。
今見たらなんかメールが別のフォルダに移動してたみたいで、ちゃんと届いてたw
さて今からじっくり見るとするか。
取り合えずざーっと目を通してみた。 まぁ、k藤はいつもちょっと使用してるソフトのバージョン等の書き漏れがあるとバンバン叩きまくるけど、 今回は正論だな。というかそう言わざるを得ないw つーかこのスレ本人見てるんじゃ(ry
まぁこちらはヽ(´ー`)ノマターリいこうぜ
391 :
774ワット発電中さん :04/05/07 23:19 ID:gu25KBmQ
マイコンをつかった回路の電源が急に落ちた時、失いたくない最低限のデー タをデータEEPROMに退避させようとおもいます。 このように、元の電源がなくなっても、そのデータを移動させるわずかな間、 マイコンに電力を供給するためにどのような部品で、どんな回路をつかうの がのが一般的なのでしょうか?
スーパーキャパシタとか
>391 書き込みのために電流が必要な場合は、普通の電解コンで4700uF位にチャージしておいて チビチビ使うと数十秒くらい持ちますけど。。。 EEPROMだと書き込み回数の制限とか有るので、普通はSRAMを電池でバックアップ するようにするとほぼ無限回の書き込みに簡単に対応することが出来ます。
394 :
774ワット発電中さん :04/05/08 20:05 ID:Y70zfxlo
>>313 16F87xのデバッグモードの詳細は、本家の
On-Chip Debugger Specification
にあります。
>>391 FRAMとか、NOVRAMってのも世の中には有る訳だが・・・
>>391 EEPROMは書き込みに数msかかるので、
データ数が多いとバックアップ時間がかかるね。
保存すべきデータのサイズとの兼ね合いもあると思うな。
>391 Vcc -(A)- ダイオード - (B) - 抵抗 - スーパーキャパシタ - GND マイコン回路の電源は(B)からとり、(A)を監視すればいいんじゃない
399 :
774ワット発電中さん :04/05/12 10:17 ID:IQofFFVD
安さにつられて16F648A買ったけど84のプログラムが動かない。。交換性あり って聞いたけど、、インターネットで648の情報って少ないんだね(´・ω・`) だれか教えてくれたらうれしいよ。。
>>399 648A に限らず、アナログ機能ブロックを持ったPICは
デフォルトで(リセット後、何も操作しないと)ポートAは
アナログ入力になるんでない?
648A はコンパレータ積んでるから CMCON レジスタ
を操作しないとダメかと...
(他にも何かあるかもしれんが)
>>399 アセンブラで書くのなら、16F84Aのレジスターアサインとまったく別物。
16F6X8A /16F627A系のレジスターアサインは、どちらかというと16F877に近い。
たとえば、デジタルとして使うならばCMCONの部分には0x07をセットしないと
RA0〜RA3の入出力ができなかったりする。面倒でも、使用するデバイスの
仕様書は墨から墨まで読むべきである。
このため、簡単なプログラムなら僕はCを薦めるよ。
CCS、HITECH、SourceBoostなど、フリーウエアのC言語開発環境は
いろいろそろっている。
だね。とりあえず MOVLW VRCON MOVWF FSR MOVLW B'00000000' ;DA Power OFF MOVWF INDF ;--------------------------------------- MOVLW CMCON MOVWF FSR MOVLW B'00000111' ;Comparater OFF MOVWF INDF ;--------------------------------------- と初期設定する。
403 :
774ワット発電中さん :04/05/12 13:03 ID:IQofFFVD
>> 400,401,402 親切に教えてくれてサンクス!!(・∀・) ピン配置も84と同じように使えるのでてっきり84のメモリ&ポートの 拡張版と疑わなかったのレス。。。今までアッセンブラしかつかってなかったので Cにも挑戦してみます。まずわお礼まで!
404 :
774ワット発電中さん :04/05/12 16:33 ID:PKGcar4E
すんません、オイラも質問! MPASMでリロケータブルに書く場合で、連続した変数領域を確保するにはどうしたらいいですか? CBLOCK 0CH HOGE1,HOGE2,HOGE3 ;HOGE1=0CH,HOGE2=0DH,HOGE3=0EH ENDC ↑こうすると、定数として扱われてしまい、RAM領域の確保はされません。
;' ':;,, ,;'':;, ;' ':;,.,.,.,.,.,,,;' ';, ,:' : :、 ,:' \ ,,. 、./ ノ( ::::::::', :' ● ● ⌒ :::::i. i ''' (_人_) '''' * :::::i ぬるぽぉーーーーーー!!! : {+ + +} :::::i `:,、  ̄ ̄ ::::::::: / ,:' : ::::::::::::`:、 ,:' : : ::::::::::`:、
>404 CBLOCK 0CH HOGE1 ;HOGE1=0CH,HOGE2=0DH,HOGE3=0EH HOGE2 HOGE3 ENDC ,じゃなくて改行じゃないかな
408 :
774ワット発電中さん :04/05/13 00:32 ID:sXPw22yR
>>404 CBLOCK H'0C' ;使用する変数を定義する (0Ch から〜 メモリーを確保する)
HOGE1,HOGE2,HOGE3,HOGE4 ;変数 HOGE1,2,3,4
HOGEHOGE1,HOGEHOGE2 ;変数 HOGEHOGE1,2
HOGEHOGE3,HOGEHOGE4 ;変数 HOGEHOGE3,4
DELAY1,DELAY2,DELAY3 ;変数 DELAY1,2,3
A_OUT,B_OUT ;変数 A_OUT と B_OUT
ADDRESS1 ;変数 ADDRESS1
ENDC
試してみたけど こんな書き方でも正常にできましたけど
私のこの書き方は、構文まちがいかな?
CBLOCK 0CH の書き方が気になるけど?
409 :
404 :04/05/13 01:27 ID:tIC3YnHj
わざわざ、ありがとうございます。
>404のやり方でエラーが出るわけではないです。
うまく説明できないのですが、
リロケータブルにすると、メモリに変数として確保されません。
HOGE1〜HOGE3は定数扱いになってしまいます。
画面ウプッたので良ければ見てください。
http://matsuya.dyndns.tv/2ch/img-box/img20040513012523.gif 問題は、WatchウィンドウでHOGE1〜HOGE3が変数として認識されない。
UDATAで確保した、AFO1〜AFO3が0Chから確保されてしまう。
目的は、HOGE1〜HOGE3を連続したメモリに領域確保して、
間接アドレッシングでアクセスしようと思ってました。
この例ではUDATAでも連続した領域確保がされているのですが…
410 :
404 :04/05/13 04:10 ID:p+7bwAC6
すみません。自己解決しました。 CBLOCKの"C"は、Constantsの"C"なので、定数扱いの様ですね。 3Byte連続確保するなら、↓こうすればOKですね。 UDATA HOGE1 RES 3 HOGE2,HOGE3を直接指定したいなら、 #DEFINE HOGE2 HOGE1+1 #DEFINE HOGE3 HOGE1+2 Watchウィンドウで監視したいなら、 HOGE1のアドレスから+1,+2のアドレスをWatchウィンドウのAddressへ 直接入力すれば、Symbol Nameは表示できませんが監視できますた。
411 :
774ワット発電中さん :04/05/14 08:17 ID:ChRQObYG
>>411 > PICC Lite Compilerって、最適化が商品版に比べて抑えられている、とか、
そういう限定はないんですか?
413 :
774ワット発電中さん :04/05/14 10:05 ID:p5aB9spc
414 :
774ワット発電中さん :04/05/14 10:42 ID:v3DHkXTr
秋月のPICプログラマーVer3を貰える事になったんだけど、 16f819 と 12f675 には対応していないよね?
415 :
774ワット発電中さん :04/05/14 12:25 ID:p5aB9spc
416 :
774ワット発電中さん :04/05/14 13:14 ID:e5BJkMMm
>>414 対応していない Ver.4からOK.
>>415 調べて分かることしかお前だって分からんくせに
何を大口叩いているんだか.
何か発明でもしてからそんな口はきけよ.
性格悪いんだよ、専門バカが.
417 :
774ワット発電中さん :04/05/14 14:47 ID:p5aB9spc
馬鹿晒しage
419 :
774ワット発電中さん :04/05/14 18:27 ID:bS4g4WZc
oremobaka?
その通り
>>1 を嫁(゜ζ゜)
テメーが解っても、初心者で解らん奴だって沢山このスレ見てんだから、そいつらの参考になるように書けばいいだけ話だろ?一行で終わるんだからw
後々PICを始めようと思ってる奴の為にもなるんだからもっとおおらかに見てやれよ。話題に溶け込みたいって場合もあるだろうし。
>>414 は気にすんな。漏れも629使えるようになった程度のレベルだから初心者とあまり変わらん、ガンガレよ(・∀・)つI
PIC16F88 18pinで多機能は良いが、 USARTのRX,TXが、RB2,RB5だ! 激しく使いにくいと思うのは俺だけか?
>>422 16F819や16F628とピンコンパチにして欲しかった・・・・・・
ま。今に始まった事ではないけどね(w
424 :
774ワット発電中さん :04/05/16 11:36 ID:fu+MGJNl
PICでオシロ作れないかな。と思ってググったら トラ技2000年7月の記事でPICを使って簡易オシロを作る記事を見つけたのですが、 バックナンバーはもう在庫がなくて購入できなくて、 とりあえずトラ技のホームページでプログラムは入手できたのですが、 回路図が探してみたのですが見つかりませんでした。 どこかに回路図を置いてあるページありませんでしょうか?
バックナンバーのコピーサービスがあるぞ。
>>425 それ買うお金があればオシロ買えるので…
>>426 検討したのですが、残念ながら回路図の乗っている
具体的なページ数が不明なので利用できないのです…。
429 :
427 :04/05/16 14:04 ID:fu+MGJNl
>>428 わざわざお調べいただいたのに申し訳ないですが、
AVRを使った方のオシロの回路図はトラ技のホームページから手に入るのですが、
picの方のが見つからないのです…
>427 ページ数は P240〜251(簡易デジタル・オシロスコープの製作)
>>429 トラ技に毎月ついてる過去記事データベース(CDROM内)であっさり調べられたぞ。
2000/07のP.240から12ページだ。
432 :
427 :04/05/16 16:14 ID:fu+MGJNl
レス有り難うございます。 できれば回路図の乗ってるページを教えていただけないでしょうか?
>>432 12pageくらい全部コピーしなさいよ・・・・
質問があります。 PIC16F873でpage2のプログラム実行中に割り込みが入ると 割り込みが終了してもPC+1に戻らずpage2の初めの方(0800付近)に戻っている様な動作をします。 割り込みをしなければ問題なく動きます。 0004でpclathを避難させてクリアーし、retfieの前で復帰させています。 page1のプログラムだけしか使わないときは割り込みを入れても問題なく動きます。 よろしくお願いします。
435 :
434 :04/05/16 16:32 ID:o81GKmN5
訂正 page1→page0 page2→page1
436 :
774ワット発電中さん :04/05/16 17:11 ID:6GfObA0U
>>432 回路図もってるけどうpすると逮捕されるからしない
>>436 回路図だけなら大丈夫だと思うが…
回路図上げただけで逮捕なら
>>428 のサイトの管理人もタイーホだなw
>>439 しかもオシロじゃなくてロジックスコープだし。
PIC使用ロジックスコープなら回路図なんてもんじゃなかった。
単なる入力とブロック崩しなどと同じVideo出力回路だけ。
このカラーオシロスコープはどうなってるのかな?
単にデジタルRGB出力+CXA1645とかではないのかな・・ソースから想像付かない?
>>424 PICのは外部にRAM付けたりけっこう複雑。
その分、AVRのに比較して実用性は上のような気はするが。
ソース覗いてみた。 equ定義からだいたい想像付くんでない? csync equ ra.2 ; C.SYNC出力ピン red equ ra.5 ; 赤出力 green equ rb.0 ; 緑出力 blue equ re.0 ; 青出力 we equ re.1 ; SRAM ~WEピン oe equ re.2 ; SRAM ~OEピン ;cs equ - ; SRAM ~CSピンはGNDに直続
>>427 自分の市町村の図書館には置いてないの?
>>434 PDFの Instruction Descriptions の CALL 命令の説明に
(PC)+1→TOS,
k→PC<10:0>.
(PCLATH<4:3>)→PC<12:11>
とある。 ひょっとして、page1 上のプログラム実行中のインタラプトが
原因ではなく、割り込み発生時に PCLATH<4:3> が b'01' or b'11' だと
割り込みベクタアドレスが h'0804' になるのでは?
(MPLAB だと h'0004' に飛ぶけど...)
>>434 スマソ... 割り込みの後が問題なのね。
よく読んでなかった... ○| ̄|_
>>434 >page1のプログラム実行中に割り込みが入ると
(略)
>初めの方(0800付近)に戻っている様な動作をします。
page1 って、h'0800' からだよね?
割り込み処理内で割り込み要因をクリアしてなくて、
retfie で GIE←1 された瞬間に再度割り込み発生に
なってるんでは?
>>434 度々スマソ。
>>445 はやっぱ無し。
(
>>444 で自分で書いてるのに... 疲れてるらしい l|l|l ●| ̄|_ l|l|l
もう寝よう...)
447 :
434 :04/05/17 12:02 ID:18HgZyqV
>>443 レスありがとうございます。
page1に入ってから多重割り込みが発生していたのが原因でした。
割り込みの管理難しい
448 :
774ワット発電中さん :04/05/18 15:55 ID:CQrIcxdJ
ネットに公開されていた回路を組みたいのですが、 PICにプログラムを書き込む環境がありません。 ライタを買うのももったいないので、どこかで書き込んでもらいたいのですが、 どなたか、秋葉でPICに持参のプログラム書き込んでくれる店知りませんか? ぶしつけな質問ですが、どなたかご存知の方が居られましたら、 どうか教えてください。
449 :
774ワット発電中さん :04/05/18 17:04 ID:798kMgYq
450 :
448 :04/05/18 18:56 ID:CQrIcxdJ
>>449 有難うございます。
JDMライタを作製することにします。
451 :
774ワット発電中さん :04/05/18 23:01 ID:IH3owacl
PICでTimer割り込み処理中に外部INT割り込みが入った場合 INT割り込みフラグはセットされるのでしょうか? またこの場合Timer割り込み処理が終了したら また割り込み処理に戻って今度はINT割り込み処理を させることは可能でしょうか
秋月の広告見ると 16F84A \350 16F648A \220 16F88 \300 16F84Aがとても割高に感じる
>>452 648が在庫が沢山あるか、沢山仕入れられるから安いんじゃないのかな
で、質問ですが、 AC12Vの入力を取りたいのですがプルアップ抵抗噛ますべきか、 フォトMOSリレー(静音化の為)使って取るべきか、どちらがいいのでしょうか?
456 :
454 :04/05/19 00:49 ID:1z0xTRAi
よく考えてみたらそうですよね。失礼しますた
457 :
774ワット発電中さん :04/05/19 03:19 ID:ZnIixMMO
抵抗分圧とツェナーではだめ? 抵抗で12Vを5Vか4.5Vくらいに分圧、それ以上の入力電圧が来た時用に ツェナーでクリップさせる。12V以上来ないなら、抵抗のみ。
>>458 そんなこと言う前に、おしえてえろいひと
460 :
452 :04/05/19 19:32 ID:6i83kibb
>453 在庫や仕入れの関係だろうけど、性能的には 16F88>16F648A>16F84A だし バイナリレベルで16F84Aコンパチだったら問題ないのにな。
Ver4キットを買わせるための価格設定だったりして(w 漏れは、F88に釣られてVer4買ったのだが…
ネットで探すと16F84Aでの製作例とか多いから需要も多いだろうに Microchipもひどいな。1種類くらい起動時は16F84Aとコンパチの 作ってくれればいいのに
FSRの一つや二つをいじるだけなんだから別にいいじゃん。 今となっては84を使うメリットが見つからん
465 :
464 :04/05/21 22:21 ID:gIOcHCTR
訂正 ×FSR ○SFR
リセット直後にコンパレータが有効になっていてデジタルI/Oができない、 というのは初心者が躓く定番だけどね。
>>466 だよね。
CMCONだけでも 00000111 を初期設定にしてほしかった。
アナログコンパレータって大抵の機種でリセットONになってるけど、
こうしないと、電源投入時に壊れるとか、なんか不具合があったんですかね?
>>467 アナログコンパレータと同一ピンのデジタルINがシュミットになっていない
ものがあるからじゃないのかな。
469 :
774ワット発電中さん :04/05/26 08:38 ID:nNQVANWo
PICのギャングライター使っている香具師いる? 使い心地とか教えてくだされ、プリ〜ズ
_| ̄|○ 秋月電子のPICプログラマ ver.4のファームウェアアップデートに失敗した…
471 :
774ワット発電中さん :04/05/26 16:53 ID:XbLYthX9
472 :
774ワット発電中さん :04/05/26 18:42 ID:wAB2oRS4
>>470 V3のPICに戻して、ファームをダウンロードしてきて、
VCC,MCLR,GND,RB6,RB7をV4のチップに配線して、焼直せば使える。
473 :
774ワット発電中さん :04/05/26 20:41 ID:V8aMHjSw
秋月のPICプログラマの最新ファームでF88焼いてる香具師いる? プログラムソース(MPLAB 6.50 MPASM)で、 __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF と設定しても、AE-PICプログラマのCFG2の設定は常に、 FCMEM,IESOとも Enable となってしまうのだが? バグ?
つーか秋月のライターソフトはコンフィグレーション読まなかった様な…
475 :
774ワット発電中さん :04/05/27 14:19 ID:ksWA4Fh/
>>473 MPLAB6.51にてテスト。
LIST P=PIC16F88 ;
INCLUDE "P16f88.inc" ;
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
ORG 0;
nop;
END;
ビルド結果
:020000040000FA
:020000000000FE
:02401000FC3F73
:00000001FF
LIST P=PIC16F88 ;
INCLUDE "P16f88.inc" ;
__CONFIG _CONFIG2, _IESO_ON & _FCMEN_ON
ORG 0;
nop;
END;
ビルド結果
:020000040000FA
:020000000000FE
:02401000FF3F70
:00000001FF
MPLAB6.51はデータを生成している模様です。
秋月Picwriterでは、無視されているっぽいです。
ベータ版ですからしょうがないですね。
秋月にメールを出せば信じられないほどの速さで直してきます。
476 :
473 :04/05/28 21:36 ID:AUQOmJ1m
>>475 そうですか、ありがとう。
秋月にメールするマンドクセ-し、
それほど困ってないから、しばし待ってみます。
秋月の人はここ見てないかな?
MPLAB6.5を使っているのですが builtしたときに出てくるoutputウインドウに、messageを表示させないようにしたいのですが、どうすればいいでしょうか? ご存知の方いらっしゃいましたら、ご教授願います
478 :
774ワット発電中さん :04/05/29 01:56 ID:H7DemIav
>>477 outputウインドウの枠の一番下にカーソルを合わせ、マウスの左ボタンで
ドラッグしたまま上方向に持ってってみ。
message が表示出来ない程の高さに縮まるだろ?
480 :
774ワット発電中さん :04/05/29 02:23 ID:hW2r/HJY
>>477 Project/BuildOptions.../Project/MPASM Assembler/Categories/Output/Diagnostics level/Errors Only
にすると、大分減る。
482 :
477 :04/05/29 20:50 ID:xF9vft+k
ありがとうございます。 バンク0以外のメモリにアクセスするとmessageばっかり出てきて、error探すのが大変だったのです........ これで快適に開発できます。
激遅レスだが、
>>482 それを止めたいだけだったら
errorlevel -302
をソースの前のほうにでも書いておくほうが良いと思うぞ。
>>483 ですね。PICの12F675のサンプルにも
errorlevel -302
movlw 0xa4
call 0x3FF ; retrieve factory calibration value
bsf STATUS,RP0 ; set file register bank to 1
movwf OSCCAL ; update register with factory cal value
bcf STATUS,RP0 ; set file register bank to 0
errorlevel +302
っていうのがあるよん。
485 :
774ワット発電中さん :04/05/31 12:43 ID:7yXTI1Gj
MPLAB6.52でたよ
>>484 お、それはOSCCALのルーチンだね。
クロックアップできるんだよね。
>>484 errorlevelは、おいといて^^; その部分、俺だったら
movlw 0xa4 ;<-????
call 0x3FF ;これも*.LKRファイルで定義してラベルにしたいーw
banksel OSCCAL
movwf OSCCAL
banksel 0
てな感じのほうが後々のためになるよーん
487 :
774ワット発電中さん :04/05/31 21:11 ID:B17nLDWb
CCPのスペシャルイベントトリガを使い、正確なインターバルタイマ (50000回のサイクル数で割り込み発生)にしたいのですが、 プリスケーラを使うとうまくいきません。 TMR1のプリスケーラを1:8として 50000回 / 8 = 6250 (H'186A') CCP1H = H'18'、CCP1L = H'6A' と設定したのですが、50001回のサイクル数になってしまいます。 「サイクル数=(CCP1H,CCP1L)×プリスケーラ値+1」となってしまうようなのですが、 何か対処法はありませんか? 使用環境は、PIC16F88とMPLAB6.50です。
>>487 どうせクロックの周波数誤差があるから、50000でも50001でも
いいんじゃないの?
1/50000=0.002%だよ?
490 :
489 :04/06/01 00:05 ID:FmD8BSE5
ごめん。プリスケーラを使ってるのか。それじゃだめだね。
491 :
487 :04/06/01 00:33 ID:7qn+PyB1
レスども。
>>488 まあ、そうなんですが、ちょっと疑問だったもので。
>>489 そうなんです。プリスケーラを使わないなら、
CCP1H,Lの値を-1すればいいのですが…
ダメな事がはっきりしてスッキリしました。
ありがとうございました。
492 :
489 :04/06/01 01:15 ID:FmD8BSE5
しかし、解せないのはなぜ50001サイクルだと分かったかだ。 単なる測定誤差なんじゃないか?
>>492 MPLABのstopwatch機能で分かるよ
質問です。 PIC18シリーズの命令でBZっていう命令があると思いますが Zっていうのはstatus,zのZとして見て良いでしょうか? 英語に弱くて首が回りません
>495 THX
24V同期三相モーターを駆動させながらロータりーエンコーダーで速度計りながら
秋月LCDにデータ表示させてるんだが
timer1とtime2を両方使っている時に割り込み中に動作が不安定(途中で止まったり、ループをぐるぐるしたり)
になります。
糞コード晒してみます。
http://up.isp.2ch.net/up/4f48e69faed5.txt 黒回路と動画もあるんだがみたい香具師いる?
電子工作半年の分際で調子に乗りすぎたか
498 :
497 :04/06/01 16:03 ID:l6RFfgcL
×黒回路→○糞回路
>>497 長いな...
ソースファイルをブロックに分けてアセンブルしたあと
リンクした方が後々楽にデバッグできるぞ。
ラベル retfielp 以降の4行はだいじょうぶか?
>>497 ぱっと見コードが見づらいな、
割込みの処理が長すぎる気がするが、全部読んでないのではっきり言えないけど
btfsc pir1,0
goto tmr1int
btfsc pir1,1
goto tmr2int
a) movf tempfsr,w ;fsrを帰還
movwf fsr
movf temppc,w ;pcラッチを帰還
movwf pclath
swapf tempst,w ;ステータスの値を帰還
movwf status
swapf tempw,f ;Wレジスターの値を帰還
swapf tempw,w
b) clrf pir1
retfie
気が付いた所で
・a)からb)の間でpir1<0:1>がセットされても処理できない
・b)でSTATUS<Z>がセットされるのでメインルーチンで問題になる
b)のclrf pir1が癌の様な気がする
>>487 6249にして不足分だけループカウントで時間稼ぎした後タイマ値セットしては?
502 :
497 :04/06/01 21:23 ID:l6RFfgcL
>>499 本が推奨したMPLAB4.70使ってるが6.x0にした方がいいかな
デバックはストップウォッチしか知らないし
デバック勉強します。
>>500 >ぱっと見コード見づらいな
同感です。
>・a)からb)の間でpir1<0:1>がセットされても処理できない
1秒あたり十回ぐらいは割り込み無視されても構いません。
clrf pir1削除してみましたが変わりませんでした。
clrfはZに影響するんですね。見てませんでした。
デジカメの動画モードで撮りました
モードはMC12でやる気のない矢印を見て頂ければ分かると思いますが
3回転+90度→3回転+90度→3回転+90度→3回転+90度→逆回転で約20回転後始めた角度に戻る
という動作です。
割り込みを有効にすると最後の逆回転約20回転の中盤で次の動作に進まなくなります。
正常 (約3MB)クイックタイム形式?
http://v.isp.2ch.net/up/0320e64dfaaf.mov 失敗(約4MB)
http://v.isp.2ch.net/up/efb1cf4c9150.mov
>>487 50000ならぷリスケーラーなしでも16bitでカウント
できるんじゃないのか?周波数が高いのか?
俺のかんちがいか?
12F675とか8ピン系のPICを使ってみたいのですが、 オススメのライタってなにかありますか? 個人的に調べたところでは、秋月で売ってるLEAP-PSTARTが 純正互換、完成品で手っ取り早いと思うのですが対応デバイス一覧に載ってないようです。 それともファームウェアをアップデートすることで使えるようになるのでしょうか・・・
505 :
774ワット発電中さん :04/06/01 23:21 ID:tZ2IS466
506 :
487 :04/06/02 00:15 ID:PICuvzeL
>>501 それをやっちゃ、CCPの意味が…
>>503 50000回でシミュレートしていて、そのままカキコしてしまいました。
50000回なら16bitで足りましたね。スマソ。
実際使っているクロックは12.672MHzです。プリスケーラ不使用で
切りのいい値は 20msec、63360(H'F780') CCPは(H'F77F')なのですが、
割り込み頻度を少なくするため、プリスケーラ1:8で 100msec毎の割り込みにして
時計を作り、丸一日走らせていたら予想以上のズレが生じたので、
おかしいな?と言うわけでした。
>>506 ちょっとまて。12.672MHz ÷ 63360 = 200Hz → 5ms だろ。
計算違いしてるんじゃないのか?
それとも俺の勘違い?
508 :
507 :04/06/02 00:53 ID:6nCVnCZK
すまん。タイマ入力がfosc/4だから合ってるね。
509 :
504 :04/06/03 01:14 ID:BFpHPGJL
>>505 なるほど、こんなものもあるんですね。
こっちも調べてみます・・・
510 :
774ワット発電中さん :04/06/03 06:21 ID:qtCCX/3n
hitech software では、PICC-18のベータ版テスターを募集しています。
一部抜粋
If you are interested, you must also fit into the following categories:
・You have a current extended support contract
・You have a (preferably large) project
that builds and works with the PICC-18 compiler
you are currently using.
・You are willing to share your project with us.
or, If you can't share your project,
you are willing to compile your project
and do some comparative tests for us.
詳細はこちらを参照してみてください。
http://www.htsoft.com/forum/all/showflat.php?Cat=&Number=12210&page=0&view=collapsed&sb=5&o=31&fpart=1
>>510 そんな難しい英語をそのまま載せるな。ちゃんと和訳してから上げろ。ここは初心者スレ
っていうこと忘れているのか?それとも自慢?
>>511 無料の翻訳ソフトもつかえないなんてかわいそうですね。
ちみには到底関係ない話だから、無視しても大丈夫ですよ。
> こんにちは、
> 私たちは、現在HI-TECH PICC-18コンパイラーの新バージョンに取り組んでいます。
> また、私たちは、喜んで外にあるベータ試験を手伝う顧客を捜しています。
> 興味を持っていれば、さらに、次のカテゴリーに入らなければなりません:
> 流れを延長された支援契約を持っています。
> 現在使用しているPICC-18コンパイラーを建造し働く(むしろ大きな)プロジェクトを
> 持っています。
>
> 喜んで私たちとプロジェクトを共有します。
> あるいは、プロジェクトを共有することができなければ、喜んでプロジェクトを
> コンパイルし、私たちのためにいくつかの相対的なテストを行います。
>
> 次のことを注目する、私たちのもとへ送られるすべてのコード/プロジェクト、
> 安全な/個人にしておかれ、目的のテストのために私たちによって使用されるだけである。
> 私たちは、実際にプロジェクトが行うことに興味を持ちません、私たちは、
> 実際の世界のプロジェクトの例で、それにもっと興味を持っています。
>
> 興味を持っている場合、その後、私と連絡をとってください
>
[email protected] >
> あなたの電子メールにあなたのコンパイラーの通し番号、
> および使用するプロセッサー(s)を含めてください。
>
> ありがとう、
まぁあれだ、ここはPICの初心者スレであって、 人生の初心者スレではない。 英語を読むくらいは一般常識。
514 :
774ワット発電中さん :04/06/04 17:52 ID:mIEBuysr
PIC16F84のPORTBから、秋月で売ってる液晶SC1602に4bitで接続していますが、 ポート節約のため、そのデータラインにタクトスイッチをパラに接続して、 スイッチを押した時、抵抗を介してGNDに落とすというやり方で、 スイッチ入力も兼ねたいのですが、電気的に何か問題ありますか? OPTIONレジスタでプルアップしておいて、通常はTRISBをINPUTに、 液晶出力の時は、TRISBをOUTPUTにするという使い方で大丈夫でしょうか? よろしくお願いします
>>514 問題ないです。しかし、PIC16F84使うのなら、オシレータ内蔵で16F84より安い
16F88,16F648A,16F819等をお勧めします。
>>514 スイッチが押されているときに液晶にデータを送ろうとすると化けるのでは…
>>516 化けないために直列に抵抗が入ってるんだろ
>>514 プルアップ抵抗/スイッチでGNDに落とすための抵抗 比を
Loになる程度充分大きくして、
出力Hi時にGNDに落とす抵抗を通る電流に負けずにちゃんとHiになる
ようにすればいけるかな。
>>514 スイッチをGNDじゃなくて出力ポートに接続し、
通常はHigh、ポートを読むときだけLowにすれば
抵抗比は気にしなくていいけどね。
そもそもポートを節約しようとしてるのだから却下かもしれないけど。
520 :
514 :04/06/04 21:37 ID:gW2shkCu
皆様ありがとうございます。 とりあえず挑戦してみます。
524 :
梨 :04/06/07 16:35 ID:ztg+HAvF
AKIプログラマーキット到着し、10日程経ちました。 LEDチカチカ、LCDユニット(LM16155)に名前の表示位は出来るようになりました 私のような本物の超初心者が読むべき解説のサイトをお教え下さい。 命令(ニモニック)、内容、その解説です。
526 :
774ワット発電中さん :04/06/07 17:42 ID:ztg+HAvF
>>525 ググルというのは良く見ていますので、やって見ていますが判りません
何しろ「超」ですので、具体的にお教え頂けませんか?
「超」初心者と名乗るなら、なおさら検索してこい。 具体的に…だって? なら知りたいキーワードを検索窓にぶち込めば良いだけのことだ。
528 :
774ワット発電中さん :04/06/07 17:59 ID:C+t8KPv8
超初心者はあきらめなさい
529 :
774ワット発電中さん :04/06/07 18:08 ID:ztg+HAvF
単なる厨だったようです 以降スルーの方向で
532 :
774ワット発電中さん :04/06/07 18:22 ID:ztg+HAvF
>>527 >>528 超初心者のスレにきちんと初心者として質問をしているのにそんな回答をすると
どこかの小学生のように殺されるぞ!!
>>528 はもっともな意見だと思うのだか。
それに反して逆ギレとは厨以外の何者でもない。
535 :
774ワット発電中さん :04/06/07 18:40 ID:ztg+HAvF
>>534 何に興奮したのか不明だが、532の意味は?
>>535 なんで?532は自分が書いた事でしょ?俺様にもわかんねよ
537 :
774ワット発電中さん :04/06/07 18:58 ID:ztg+HAvF
>>536 貴方様は何に興奮されましたでしょうか?
御回答頂けますでしょうか?
もしかして文章をお読みになり、読解することが出来ない人ですか?
>>537 ?だけど答えます。
・何にも興奮してません。そもそもどこから「興奮」って言葉の出所が分かりませんw
・はい
・読解できない文章でなければできるつもりです。
>>537 picいぢる前に、とりあえず病院行って来たほうがいいと思う。
内容はともかく、噛み合ってないレスを返してるのは確実に貴方の方。
540 :
774ワット発電中さん :04/06/07 19:18 ID:ztg+HAvF
541 :
539 :04/06/07 19:26 ID:YT4ektcv
>>540 なぜ?
私は貴方の発言が噛み合っていなかったので、
脳に障害があるのではないかと思い通院を促しました。
私が、病院行かなければならない様な事(or発言)しましたか?
反射だけでその様な事を言うのはただの厨房ですよ。
542 :
774ワット発電中さん :04/06/07 19:48 ID:ztg+HAvF
>>541 どこが噛み合っていないのか教えて下さい。
私は初心者として、超初心者のレスに質問したのです。
どこが病院に行かなければならない(脳外科?)のでしょう?
暴言(俺様とか)又はにべもない返答をする人間と私とはどちらが正常なのでしょう
それとも世間常識が通じないのが2ちゃんねるで、それ以外の人間は精神病院行きですか?
>>530 にはお礼も言わず、
煽りっぽいレスのみに煽り返しているID:ztg+HAvF
は荒し確定。みなさんスルーでおながいします
544 :
774ワット発電中さん :04/06/07 20:11 ID:ztg+HAvF
>>543 530がまともな回答と認めているようですね。
それ以外はまともじゃ無いということですな。
いまさら遅いですが 530 さん有難う御座いました。
545 :
530 :04/06/07 20:51 ID:9b881CNd
答えて損した気分だなぁ(w 俺も ID:ztg+HAvFは、クソ厨房&荒らし認定。
まぁまぁ・・・あなたの心にウォッチドッグ (のぼせたら定期的に頭を冷やそう。逝って良しという意味ではない(^^;))
549 :
774ワット発電中さん :04/06/07 23:53 ID:LP7vk/xz
>>549 間違ってる。
時と場合により使い分ける。
552 :
774ワット発電中さん :04/06/08 00:29 ID:KNVL7wIG
本日秋月電子通商で販売している「AKI-PIC プログラマキット Ver3」 を買ってきました。ジュンク堂でアセンブラ入門の本も買ってきました。
553 :
774ワット発電中さん :04/06/08 00:37 ID:wYOcRlgo
>>549 その通り
C言語、もしくは高級言語を取得すべきである。
今更アセンブラとか逝っているのは、単なる懐古主義か、頭が石膏のように
ガチガチの応用の聴かないやつである。
アセンブラで小数点演算簡単にできんだろうに。
>>553 > アセンブラで小数点演算簡単にできんだろうに。
固定小数点。
でも、趣味ならばアセンブラいらないんじゃない?
判らないことは判らないままでも良いのだし。
>>555 コンパイラの吐き出したコードが、
割り込み処理とかで、レジスタとかがちゃんと保存されているかどうか
とか、逆アセンブラを読むくらいの知識はあったほうがモアベターよ。
「Cでなんでもできるからアセンブラは覚えなくてもいいですよね」 って奴は、 「そのうち日本語マニュアルが出るから 英文マニュアルは読めなくてもいいですよね」 とか言っている奴と同レベルのDQNだと思う。 そういう奴は一生アセンブラのできない四流技術者やっててくれ。 俺も、商売敵は増えない方がありがたいしな。
アセンブラに固執しなくても、ある程度の用途ではCで開発するのが 格段に早いんだけど。アセンブラは最近殆どつかわなくなったなー。 アセンブラ使うほどタイトな設計をしないし。 150円程度のマイコンがCで作れるのはすごいよね
昔はCコンパイラも高価で、有難みもひとしおだったものじゃ
まぁ、趣味で使う場合と、実務で使う場合では話が違うと思うが。 ただ、トラぶった時に、アセンブラが読めないと不便ではある。
562 :
774ワット発電中さん :04/06/08 13:50 ID:/fANndpH
>>548 有難う御座いました、大変参考になります。
貴方のおかげで気持ちが救われました。
>>560 もっと昔は2PASSアセンブラ(ラベルだけ。「マクロって何?」の時代)も高価
だったから、ハンドアセンブルしてた…相対アドレスの計算がメンドかったw
正直、16F84程度でLEDやリレー動かしたりちょっとタイマー回す程度な 応用だったら、Cなんて持ち出すよりアセンブラでやった方が速いと思う…。
565 :
774ワット発電中さん :04/06/08 17:19 ID:QQsKVIYR
PICなんて命令コードが少ないんだからアセンブラつかったって苦にはならないけどね。 MPLAB IDE様さまだよw
566 :
774ワット発電中さん :04/06/08 17:55 ID:UCFsTkzX
私中学の時膝たけだったけど、女子からも男子からもダサいとか
ヤンキー、スケバンみたいとか凄かった。散々言われた。
でも突然短くして騒がれるのも嫌でできなくて、高校入学を機に
ミニにしました。男へ挑発じゃなくて、ミニが定番になってて
それに見慣れてるから長いのが変だと思うんです。だから女子は
ミニスカートなんです。確かにミニにしてからの方がモテるけど。
現に私は女子校にいますが皆短くしてますよ。そのうちロングが
流行れば皆そうするんじゃないですか?
でも私は男の人が短パンはいてても、触りたいとも思わないです。
>>1 みたいな考えの人がいるからいつまでも痴漢などの性犯罪は
なくならないのかなーと思う。
>>566 こういう誤爆は、おじさんにはちょっとうれしい!
先週の土曜日の出来事・・・ さあ!秋月でプログラマーキット買って 半田付けも終了!!CDもセットアップ終了! ボードとPCの通信もバッチシ!! どらどらPIC12C509Aをセットして・・・ ん?「プログラム」 ここをクリックかな?? お!なんだか動いてるぞ〜感激。。。 ん?どうなったのかな?? もう一回クリック!! あれれ?今度は何にもならないぞ? 「PIC12C509Aはワンタイム商品です」
>>568 PIC12Fxxx買ってくれば・・・(;´д⊂)
あ、それはそれで(バージョンアップしないと)動かないか。
電子サイコロ作ったんだが、うpする?
>>571 16F84
・1〜4ダイス(SW設定)
・2〜6V(低電圧側はLEDのVf次第)
・手動 or 自動停止(SW設定)
・ダイス毎のストップボタン
・オートパワーオフ(70〜90秒,5uA@5V),
スタートボタンによるウェークアップ
ソースは何処にうpすればいい?
>>572 16F84じゃなくて、12f675で作ったサイコロなら見てやってもいいが。
18ピン以上のpicじゃ面白くもなんともないっていうか、小学生の夏休みの工作だろ。
>>572 hexを直接カキコしてくれればOK
帝で逆アセンブルもできるし
PICにDSPが有るんですね〜〜 これを使うと何が出来るんですか?? わかる人教えて下さい。 丁愛のDSPみたいに高機能過ぎないので 電子工作には良いのかなとも思います。 (ツールもフリーみたいだし) うまい活用方法は無いものですかね?
>>573 8PINだとサイコロ1個になってしまうので、検討段階で却下しますた。
ソース(tab文字数=4です)
tp://radio.s56.xrea.com/radioup/circuit/radio_0066.txt
回路図
―VVV― AAで電気・電子回路図を描くスレ ―||―
http://science3.2ch.net/test/read.cgi/denki/1072100443/ バイナリ
:020000040000FA
:1000000064008A018301E3288C0003088D00040842
:100010008E00860186308400FF3080001E3085000F
:100020008F009830810006089500F03080009E080F
:10003000031920281E0C03181F281B0503190F1471
:100040000F0885001408820745283B2831288615AB
:1000500013080F058500193095196D20951D762020
:100060005328061512080F058500183015196D2044
:10007000151D76205328861411080F0585001730AA
:1000800095186D20951C76205328061410080F052E
:100090008500163015186D20151C76201A30951B1A
:1000A0006D20951F7620940A150E0339013E140227
:1000B000031894019B0A9C08031D9C03A00FA10335
:1000C000A10A0B110B100E0884000F100F088500F9
:1000D0000D0883008C0E0C0E090084000130000214
:1000E000031C0800801B13308000080084000130CE
:1000F000000703190800801FF63080000800150E65
:10010000033982070134033407340F341B1B9E1458
:100110001B1F9E1008009C08031D0800C5309C0092
:100120001E101F181E141F109D08031D9D03221C66
:100130009C282008AE209000A21CA128200EAE20F2
:100140009100221DA72821082006AE209200A21DA2
:100150000800210E2006AE2093000800A3000739F6
:1001600082070F341D340734153405341134000070
:1001700023081B07AE2819090319A211180903192E
:10018000221117090319A2101609031922100800D9
:10019000061B08009D08031D080006309D00D120A5
:1001A0000800A21DD628A2111F140800221DDB285A
:1001B00022111F140800A21CE028A2101F1408001E
:1001C00022101F140800813084000F3080001E3080
:1001D00085008530840080010030860086308400F0
:1001E000F030800094019B01A001A101A2019F01B8
:1001F00001309000910092009300A0308B000130FC
:100200009E00FA309C009C08031D03299C009C085A
:10021000031D072902309E00FA309C009C08031D34
:100220000E299C009C08031D12290F30900091009C
:10023000920093009E019A08031D1B290330A3001E
:100240009D01FF309C009C08031D2D29FF309C0060
:100250009D0B2D29A303031952291A09031D2329D4
:100260001B08A10718309D007F20A2008B2086204C
:10027000BB20C8201E081F040139220403191A29B3
:100280009A08031D36298B208620BB20C8201E0813
:100290001F040139220403191A291A09031D4329CD
:1002A000D12036298B121E308500860186308400CD
:0A02B000803080008B156300E32806
:02400E00F33F7E
:00000001FF
578 :
774ワット発電中さん :04/06/11 10:07 ID:845XavJU
>>577 AAでよくそんな複雑な回路をかけますね。(w
すごく複雑なさいころでつね(w
579 :
774ワット発電中さん :04/06/12 17:39 ID:w7OPuse8
PICでモータの回転方向の制御したいんですが そのモータは、かける電圧の正負で回転方向が変わるんですけど PICから負電圧ってどうやってだすんですか?
つりかも知れんけどPICからモーターを回すための電流をとることは出来ませんw 市販のHブリッジICなどを使うと楽です。
582 :
579 :04/06/12 18:16 ID:w7OPuse8
つりじゃないっす(_ _)レスありがとうです PWMで回転速度は制御できるみたいですよね。 それで負電圧だせたら、逆にまわるかなー っておもったんですが・・・ 基礎から勉強やりなおしですかねΣ( ̄□ ̄)
TA8429Hってのもお勧め。3Aも流せる。
584 :
774ワット発電中さん :04/06/12 18:24 ID:KVHMm2Vp
模型で使う小型のモータで自分の実験用に割り切れば、
2SC1815と2SA1015のエッチブリッジで動くよ。
現に、オモチャ分解したら、こんなのがあったわけだし。
トランジスタのコレクターとエミッタにはダイオード必須。
ま、本格的にやる場合は、FETがオン抵抗が小さくて便利だよ。
後閑さんのサイトも参考に。
http://www.picfun.com/equipj37.html
585 :
774ワット発電中さん :04/06/12 20:27 ID:rSV9z6mk
ソースきぼんぬ!
MPLAB6.53をインスコしようとしたけど、 32%で止まるOTL
>>582 PICから直接モーターを回す話はおいといて考えるなら、
モーターを逆回転させるには、負電圧を出すのではなく、
例えばモーターの+を+5Vに、−をGNDにすれば正回転、
モーターの+をGNDに、−を+5Vにすれば正回転
ってな感じで制御すればいい
588 :
冗談レス :04/06/13 16:28 ID:UI4U6ZaJ
マブチモーターなら2.5Vでも回るから、±2.5Vの電源を使うのはどうよ? PICのVddに+2.5Vを繋ぎ、Vssに-2.5Vをつなぐ。 "1"出力で正回転、"0"出力で逆回転。出力フローティングで停止。
>>583 TA8429Hはいいね。お勧め
TA8440Hは取り扱い注意だ。簡単に壊れるぞ
590 :
774ワット発電中さん :04/06/13 18:07 ID:FbAapNjl
>>588 低インピーダンスな2.5Vを用意するのが難しいと思われ。
同じタイマーから2つのPWMを生成できるマイコンで、 2つのPWMをトランジスタ経由してモーターの両極につなぐというのも おもしろいかも。PWMの差分で正転逆転する。 面白いだけで無駄遣いかもしれない
>>578 >すごく複雑なさいころでつね(w
工 エ エ (´д`) エ エ 工
じゃ、
>>573 のリクエストにも応えて、12f675 バージョンをば...
★仕様
・1 or 2ダイス(SW設定) ・2〜3.5V(低電圧側はLEDのVf次第)
・手動 or 自動停止(SW設定) ・ダイス毎のストップボタン
・オートパワーオフ(70〜90秒),スタートボタンによるウェークアップ
★ソース(tab文字数=4です)
ttp://radio.s56.xrea.com/radio/src/radio0005.txt ★回路図
―VVV― AAで電気・電子回路図を描くスレ ―||―
http://science3.2ch.net/test/read.cgi/denki/1072100443/132 ★バイナリ
:020000040000FA
:1000000064008A018301C728A0000308A100040836
:10001000A200333085049530840033308000853071
:1000200084003B3080009A3081000508A70095309D
:1000300084008001A30130082D05031D23158530A0
:100040008400260882074C283F283328250E0F39C4
:10005000230420388500183080002930A71A6F202B
:10006000A71E78205C2825080F3923048500183046
:1000700080002830271A6F20271E78205C28240E45
:100080000F39230410388500283080002A30A71843
:100090006F20A71C78205C2824080F3923048500D2
:1000A000283080002C30A7196F20A71D78202B3016
:1000B00027186F20271C7820A60A04302602031870
:1000C000A601AD0AAE08031DAE03B20A0B110B1058
:1000D0002208840021088300A00E200E090084005D
:1000E00001300002031C0800801B4F308000080014
:1000F00084000130000703190800801FBA30800017
:100100000800AA08031903340134AD1BB014AD1F55
:10011000B0100800AE08031D0800C530AE00301056
:10012000311830143110AF08031DAF03331C9B2866
:100130003208A120A400B31C0800320EA120A500A3
:100140000800B400073982072034323400341234F6
:1001500002341334000034082D07A128290903199B
:10016000B3102809031933100800AB08031908005D
:10017000AF08031D08001830AF00BF200800B31CF3
:10018000C428B31031140800331031140800903023
:100190008400FF239000073099009930840080018B
:1001A0009F019F30840060308000303090008130AB
:1001B00084000F30800096308400800195308400E8
:1001C00008308000A601AD01B201B301B1010330D6
:1001D000A400A500A0308B000130B000FA30AE00C2
:1001E000AE08031DF028AE00AE08031DF42802304F
:1001F000B000FA30AE00AE08031DFB28AE00AE081A
:10020000031DFF282030A400A500B001AC08031D89
:1002100006290C30B400AF01FF30AE00AE08031D5C
:100220001829FF30AE00AF0B1829B40303193B297E
:100230002C09031D0E296030AF008120B3008A20F5
:100240008520AE20B520300831040139330403196C
:100250000529AC08031D1F298A208520AE20B52062
:100260003008310401393304031905292C09031D11
:100270002C29BF201F298B1285018530840008306E
:10028000800096308400083080008B156300C728FA
:02400E00843FED
:00000001FF
>>594 名前とかが逆順だけどどうやったの?ヒマなら教えて。
596 :
594 :04/06/15 15:35 ID:EY+Ap0wQ
マイクロチップがdsPICでコンテストやってるよ。 ICD2キットが安く手に入る。 ワールドワイドの展開で7/24までやっているそうだよ。 コンテスト期間中にICD2を買っても、コンテストに出るのは絶対ではないらしい。 また、コンテストで優勝すると、 Harley Davidson® Motorcycle or $15,000USD cash! だってさ!
どこでコンテスト・キットを購入することができますか。
?DM300015コンテスト・キットは、ヨーロッパのアメリカあるいは部分で、
あるいは任意のマイクロチップに認可された分配者から買いマイクロチップ
から世界的に購入することができます。あなたがDM300015でICD 2を買うこ
とを計画すれば、分配者があなたのクーポン中のICD 2割引を尊敬するために
認可されます。販売代理店へのdsPIC設計コンテストに参加していることを
示してください。(マイクロチップを買う、コンテストの最初に
クーポン能力を持っていなかった。)。
困難を経験すれば、接触
[email protected] 。
マイクロチップは分配者を認可しました。
Where can I purchase the contest kit?
? The DM300015 Contest Kit can be purchased from Buy
Microchip in Americas or parts of Europe or from any
Microchip authorized distributor worldwide.
If you plan to buy the ICD 2 with the DM300015,
distributors are authorized to honor the ICD 2
discount in your coupon. Indicate that you are
participating in the dsPIC design contest to the
sales representative.
(Buy Microchip did not have coupon capability
at the start of the contest).
Contact
[email protected] if you experience any difficulty.
>>325 いい加減にしろ!
テメェのノー味噌にリセットIC埋め込むぞゴラァ(゚Д゚ )
601は誤爆です…ハズカシイOTL
>>604 単体で299jするボードにコンパイラとか付けて、139jだそうだ。
>>605 そういえば、昔、TIがDSPボードを1万円くらいで売っていたよね。学習用とかで。
あぁいう安いDSPってもうナインんですかねえ? スレ違いごめ。
>>606 秋葉の若松でSH-DSP評価キットが1万程度で売ってる。
608 :
(`・ω・´)シャキーン &rlo;ンーキャシ(´・ω・`)&lro; :04/06/16 10:47 ID:aOY/Lba9
609 :
774ワット発電中さん :04/06/17 14:36 ID:OckFXh+p
610 :
孤独な学生 :04/06/17 18:18 ID:WAXpdpMM
PIC16F87Xの電源電流について聞きたいのですが どのくらい流れるのでしょうか? 参考になるかどうかわかりませんが、ソース電流が25mAと書いてありました。 (規格表を見ても載っていないもので)
データシートくらい見ようぜいぃ
>>610 今でも電流値なんかは日本のmicrochipで提供するデータシートには載ってないんだっけ?
・・・・いま確かめたが日本語版には書いてないな
本家本元のデータシートをあたるべし。
ちゃんと本社へのリンクも張られていることだし。
614 :
774ワット発電中さん :04/06/20 13:50 ID:ErxTmRHT
教えてください。 PIC16F88で外部EEPROM(24LC256)とI2C通信をしようと企んでいるのですが、 F88にはSSPしかありません。(MSSPではない) この場合、F88をI2Cのマスターとするには、SSPは何の役にも立たず、 ソフトでシコシコやるしかないと言うことでよろしいでしょうか?
>>614 PIC16F88のdatasheet p.89より
An overview of I2C operations and additional information
on the SSP module can be found in the PICmicroR
Mid-Range MCU Family Reference Manual
(DS33023).
Refer to Application Note AN578, “Use of the SSP
Module in the I 2C. Multi-Master Environment”
(DS00578).
619 :
614 :04/06/20 18:24 ID:0eqX2Z8q
すみません。マニュアル読みつつ居眠りしてしまいました。
半日が無駄に。 _| ̄|○
16F88+ソフトでI2Cは使った事があるので、
I2Cの仕様については、一応分かっているつもりですが、
SSPモジュール付きのPICを使うのは始めてで、
英語が苦手な為、はまってしまいお聞きしました。
>>618 駄目ってことですか。 ありがとうございました。
620 :
614 :04/06/20 18:27 ID:gXa6KW89
↑「16F84+ソフトで…」ですた。
Hi,All
HI-TECH PICC Lite Compiler
Freeware PICC Lite Compiler v8.05 is available!!
HI-TECH Software is pleased to announce the release of a totally free
ANSI C compiler to support selected Microchip devices.
The HI-TECH PICC Lite compiler is a freeware version of
our industrial-strength PICC compiler and supports the
16F877, 16F877A, 12F675, 12F629, 16F627, 16F627A, 16F684,
16C84, 16F84 and 16F84A devices.
http://www.htsoft.com/products/PICClite.php
だいぶ以前に水銀線ランプ寿命計の代替物の話題があったような 気がするが、使用済みの廃棄品が入手できました。 電極10本あるLCD(9セグメントバー?)にSSOPのPIC16LC554-04/SS と32768Hzの水晶とボタン電池がついてました。 これが使い捨てなのね〜
623 :
774ワット発電中さん :04/06/23 16:48 ID:jgSr8ByP
そういや、PICのポートは負論理なんですか?
625 :
774ワット発電中さん :04/06/25 00:24 ID:DN+hTR2t
626 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/06/25 00:45 ID:gFufzXBA
627 :
774ワット発電中さん :04/06/25 10:49 ID:g/eXujZX
>>621 ぴーあいしーしー ぴーあいしーしー
う〜ん、なんか口にまとわりつくんぁ〜(笑)
ぴーあいしーしー ぴーあいしーしー
ぴーあいしーしー ぴーあいしーしー
628 :
774ワット発電中さん :04/06/25 11:04 ID:g/eXujZX
629 :
774ワット発電中さん :04/06/25 17:46 ID:R5QbKmCV
630 :
774ワット発電中さん :04/06/25 23:54 ID:7atFokpO
12F629のICSPについて 12F629のICSPを試された方はいらっしゃいますか? 12F629を使って簡単なシリアル通信のオモチャを作ろうとしてるんですが、 どうも書き込みエラーが多発するようです。 12F629単体に書き込んで基板に取り付けると動作に異常は発生しないのですが 基板に取り付けたPICにはエラーが多発します。(一応、いろいろ対策してますが) EETOOLS社のライターでは書き込みできるのですが、時々エラーが発生し、 PIC START PLUSだとブランクチェックもまともに出来ません。 最初、ケーブルが長いせいかと思って、どんどん短くして最後にはDIPのICに 空中配線して回路を作って見ましたが駄目です。 それどころか、VccとGNDに104のセラミックキャパシタを取り付けただけの DIPの石をPICSTART Plus に挿してみた所、ブランクチェックも出来ません。 16F84に自作のパラレルポートライターを使って書き込んでいた時はこんな事は 発生しなかったのですが、困ってます。 どなたか、同様な経験をお持ちの方はいらっしゃいますか?
631 :
774ワット発電中さん :04/06/26 00:12 ID:nph5O7tu
>>630 mplab6.xxのICD2のヘルプを見ると良い。
まあ、似たようなものだ。
容量性の付加つけたらタイミング狂う。
オシロあれば、こんなことはすぐわかる。
ICSPのデータシートを良くみれば、こんなところで聞く事も無いだろう。
632 :
774ワット発電中さん :04/06/26 01:45 ID:dPN6YEXr
>>631 情報ありがとう。
しかし、解決できるような情報は見つからなかった。
VccとGND間に入れる104は負荷では無い。(「付加」にはなるかも)
オシロ位持ってるが、VccとGND間の104が問題になるなら、ICSP自体が無意味?
そもそもPIC START Plus でICSPをしようとする事自体が間違いなのか?
Patch to enable ICSP programming with MPLAB® PM3 and MPLAB® v6.50
というのが出てるのも臭い。
ダウンロード出来ないようだし。
636 :
774ワット発電中さん :04/06/26 07:42 ID:vcUi/bDR
>
>>630 picstartでICSPをやる事は可能ですよ。
サンハヤトから、こういうのも出ていますし。
http://www.sunhayato.co.jp/technicaldata/CT-PIC-P/ 但し、それなりのケアは必要です。一番大きいのはVCCをシステムから
切り離してあることですね。ライターのVCC制御に移ったとき、システム
全体の5V電源をライターが供給するなんてなると、旨く動かないですし。
私の経験からすると、GP0とGP1を出力で使っていると、大抵その先につながっている
ものに影響される(LEDなど)ので、影響の出ないような電流まで落とすか、
ジャンパーなどで切り離すか、これらのポートは入力として使うほうがよいです。
参考までにAVRでの説明がありますが、これとほぼ考え方は同じでしょう。
http://elm-chan.org/works/avrx/report.html MCLRは12f675であれば、100KΩでよいです。
プルアップでもダウンでも問題はないでしょう。
理由は、内部でパワーアップタイマーと内部リセットオプションを__configで指定
(もしくはライタソフト)することで、
このピンは使わなくて済みます。プルアップダウンについては、これをつけないと、
消費電力が増大(といっても相当小さいですが)する為の予防策です。
10Kでは、VPPに12Vがきたら、VCCに10kを通して流れるので、もっと大きな
値にするか、ダイオードなどでカットするようなハードが必要でしょう。
このpic自体の電源も、インピーダンスを高くするために、電源を切り離すか
ダイオードを入れるかなどの工夫が必要になります。
参考になれば幸いです。
637 :
774ワット発電中さん :04/06/26 07:44 ID:vcUi/bDR
訂正です。プルアップは10Kでも問題は無いです。
ICPしたいなら、素直にAVRにしておけ。 16Mの28ピンデバイス(ATMEGA8)が@260円だ。
639 :
774ワット発電中さん :04/06/26 19:18 ID:vcUi/bDR
>>638 ここでの布教活動はどうかと。
漏れもAVR使いだけど、8Pinデバイス相手じゃAVRの出番は無いよなorz
結局、悩んだ末にディベロップメントキットとCコンパイラかっちまった… 3割引とはいえ4万の出費はさすがに遺体
誰か秋月のPICNICって作った人いる? 触ってみた感想とか聞きたい。
>>632 F629が乗っている側の電源を入れっぱなしの状態でPIC-STARTpulseと接続し、ICSP書込みして見れ!
>>640 それはそうだな。
AVRの8ピンは高いのに16ビットカウンタついてない、とか、
確かに魅力的な商品ではない。
>>644 書いた後で調べてみた。
例えばATTINY12は、DIGI−KEYで@130円(25個購入の場合) です。
PIC12F629-I/P-NDは@122円(25個購入の場合)だけど秋月でも10個120円だし。
AVRってもうアトメル見放したんじゃなかったっけ? それにAVRは電気PICに比べて無駄に食うし、AVR自体の情報も少ない。 まぁ、良い所といったらアセンブラがPICより癖が無い所だろうけど、 複雑なものはどっちみちCで作るから一緒だし。
PICは毎苦労チップの主力商品だけど、 AVRはア止めるにとって刺身のツマだもんな。 力の入れようが全く違う。 電力-性能比で見ると最近のAVRの方がPICより省エネだよ。
648 :
774ワット発電中さん :04/06/28 12:24 ID:ZuXiW6O7
>>647 とはいっても、低電力でベストソリューションになるのがやっぱしpic
AVRのファンクションはちょいと多いかなって所。
あと、絶対的にPICの方が参考文献おおし。
AVRでは到底0.00099マイクロアンペアでスリープなんて出来ない。
>>648 まぁAVRがPICに比べてマイナーなのは、その通りなんだが、
>あと、絶対的にPICの方が参考文献おおし
というよりも、データシートあれば、全く困らないので、参考書そのものが必要でないという事だ。
和訳もあるしな。PICはワンチップマイコンとして特殊な命令、特殊なアーキテクチャだから
参考文献がいるのだよ。
PICの参考書とかも特殊なインストラクションセットとか 16F84を使った回路の説明とかばかり。 Timer、EEPROM関係や新型に付いたAD変換やUSART SSP(I2Cも)あたりを解説してるのが欲しい。 結局データシートとpicfunがたより
>>649 わざわざPICスレでやることも・・・適材適所でFA?
といいつつ
消費電流は結構差があるのねー
32kHz
PIC12F629 9μA(2.0V)
tiny12 40μA(1.8V)
パワーダウンモード
PIC12F629 1nA〜3.5μA(2.0V) 3nA(5V)
なんでこんなに幅があるの?3.5μAは+125℃の値でしょうか
tiny12 ヨメネーよ(1.8V)/50nA?(5V,85℃)〜2.2μA(5V,85℃)
実際はいくらなんじゃろ?
12F629にゃ16bitタイマあるのね・・・・orz
>>651 そう、その16ビットタイマなんだが、ラッチがついていないから、
16ビット一度に読む方法がナインんだよ。(止めればいいんだが)
だからTMR1H読んでTMR1L読んで、もいっかいTMR1H読んで、
さっき読んだTMR1Hと値が代わっていない事を確認せにゃならんのよ。
そもそもTMR1H読んで、TMR1L読む間にTimerが進む事をかんがえると
結局使い物にならん。
というわけで、結局8ビットとして使うか、1:8プリスケーラ入れて使うしかないんだな。これが。
>>652 そうだったね。でもまあ8bitタイマをごちゃごちゃして16bitのまねごとするよりずっとましとはいえる
というわけで、ICD2を買いマスタ。 なるほどこれは浅田飴(w ところで、この"BUILT-IN STAND"とかを考えた香具師は、 世間をナメていると思います。
>>654 > ところで、この"BUILT-IN STAND"とかを考えた香具師は、
> 世間をナメていると思います。
なんで?
656 :
774ワット発電中さん :04/06/29 10:17 ID:jiNPUX+j
>>651 それはエクステンドでしょう。インダストリアルならマックスで0.7マイクロアンペア。
実際私が100個スリープモードにして計ってみたけど大体
0.001マイクロアンペアでした。(但しMCLRはVCC直結)
ランクがあって
I付インダストリアル=工業用の方がスペックがいい
E付エクステンド=拡張(単なるインダストリアル版のロット落ち)
エクステンドは殆どみないけどね。製品でいっぱい仕入れて格安でやる場合、
歩留まりを上げるためにエクステンドを発注することがあるよ。
>>652 こんなのでいいんとちゃう?
割り込み禁止
TMR1H読む(H1)
TMR1L読む(L1)
TMR1H読む(H2)
割り込み許可
L1>=128だったらH1-L1採用
L1<128だったらH2-L1採用
>>657 TMR1H読む(H1)
TMR1L読む(L1)
H1を読んでからL1を読む間にクロックが進んじゃうので、だめ。
先にL1を読まなきゃ。
>>657 movf TMR1H,w
movwf TH
movf TMR1L,w
movwf TL
movf TMR1H,w
btfss TMR1L,7
movwf TH
こんな感じ?
>>658 遅れは一定になるのであまり問題にならないような気もするが。
考慮して解釈すればよし
どうしてもTMR1Lを先に読んで、その値を破棄しないという条件なら
うーん・・・・・わからん
>>659 補足
TMR1L取得とbtfss TMR1L,7の間でタイマは進むと思うけど、
判断の境界付近であるTMR1L=128あたりだとどっちにころんでも
同じ事なので数カウントの進みは問題なしと思う。
PICは脳内ユーザーなので間違ってたら笑って
つっか、PICには「InputCapture]っていう概念が無いのか?
>>662 "DO NOT THROW AWAY PLASTIC PACKAGING"
ビルトインぢゃないじゃん(核分笑)
まず、外形をどうにかするという考えは無いのか・・・○| ̄|_
mplab6.60が公開されたよエロ化と
668 :
774ワット発電中さん :04/06/30 10:19 ID:zul8QwrG
669 :
774ワット発電中さん :04/06/30 10:33 ID:zul8QwrG
>>669 本当に解凍できないな。
Microchip最近おかしくない?
しっかし、毎回zipファイルって壊れてるよなww
674 :
774ワット発電中さん :04/06/30 21:23 ID:V0LcekRd
あいたーいな
675 :
774ワット発電中さん :04/07/01 00:16 ID:Eyzdy+9G
マイコン(MP-Z80)、I/Oボード(AB-10)を使ったプログラムについて 質問があるのですがよろしいでしょうか? まだマイコン習いはじめたばかりで。
678 :
630 :04/07/02 15:26 ID:xI16BY08
>>633 >>634 >>635 >>636 >>その他の皆様
いろいろとご教授有難うございます。
遅レスすみません。
色々やってみました。
もともと、書き込みする状態ではターゲットボードには負荷らしい物は何も
無いので、負荷のドライブによって影響されるような事は考えにくいのです。
VccとGNDのパスコンとMCLRの10KΩとセラミック振動子位です。
(内蔵OSCではちょっと精度(温特)が足りないみたい)
これらの部品でも影響を受けるのかと思い、最後は単に12F629の足をリードで5cm程
伸ばしただけの周辺部品無しでPICSTARTPLUSに接続してみましたが、何度かPICSTARTPLUS
で読み書きすると読み書き不能になる石が出るみたいです。
(石かライターのどちらかが不良品?)
他のROM Writerでは、書き込み速度を下げたり、書き込み電圧を調整してエラーを
出さないように出来るんですが、PICSTARTPLUSでは調整不可能のようですね。
仕方無いので、現在、EETOOLS社のライターでトライしてます。
こちらは、書き込み速度を下げて書き込んでやれば通常に使えるみたいです。
MPLABが使えないのが痛いのですが、もともとアセンブラでソース書いて
MPASMでアセンブルするのが普通だったので、これでも良いかな?
PICSTART PLUSを買ったお金と時間が勿体無かったかな?
ヤフオクにでも出すか?
とりあえずご報告まで。
679 :
774ワット発電中さん :04/07/03 20:40 ID:rB3HO6k9
12F675のA/D変換って 電源電圧が5Vの時 ・測定可能電圧は0〜5V ・分解能は5V÷1024(10bit)=4.8828125mV≒4.9mV ってことであってますか?
680 :
774ワット発電中さん&rlo;(どけイイもでうど) Oo .(`・ω・´)&lro; :04/07/03 22:19 ID:Zc8VrSne
681 :
679 :04/07/03 22:36 ID:rB3HO6k9
れすありがとうございます。 Vrefを設定すると測定可能範囲は GND-Vrefってことですよね? USBの電源って十分に安定してるかな…
>>681 してないよ。
電圧ドロップはかなりある。ケーブルに依存する。
DCDCでもかませとけ
683 :
679 :04/07/04 12:43 ID:EdTRHNw3
DCDCってことは昇圧?ってことでしょうか? 5Vとるのに78L05だといくら何でも入出力電位差なさ過ぎで無理ですよね? やっぱり0-5Vを4chで計りたいので、VddをUSBから取るつもりです。
>>683 仕様によって要求される精度は変わる。
相対的な変化でさほど精度もいらないのであれば、USBの電源をつかえばいいし、
高精度が必要なら、それ専用の電源を作りVREFにするか、PIC電源にするか
(3.3Vにするなど)すればいいし、VRの角度検出(ロボットの足の角度とか)なら、
ジャストな電源(それなりに安定は必要)でなくてもよい。
683は4ch使いたいということなので、USBパワーをそのまま使うということだけど、
電源もパソコンの電源なので4.9V〜5.2Vくらい変動。
お勧めは、USB電源を直前で3.3VのシリーズレギュレータをかましてPICを3.3Vで動かせば、
ダイナミックレンジは落ちるものの、安価に精度よく使用することができます。
PICでAD変換した振幅変調信号を復調した例とかって無いですかね。
PIC12F683が生産中らしいですが、国内代理店での販売はまだですかね?
12F675と12F683の違いって プログラムエリア1Kword→2Kword RAM 64byte→128byte EEPROM 128byte→256byte タイマーが1つ増えてCCPが使える 内部発振のクロックが選べる(31kHz〜8MHz,8種類) 以上でしょうか?
>>688 8ピンPICのクセにPWMが出せるですか?
690 :
774ワット発電中さん :04/07/16 11:01 ID:gUKDVE7H
PIC12F683のTimer1、コンペアモードとキャプチャーモードを期待していたが 無かった orz まあ、Timer2が使えてPWM使えて内部8MHz動作だからいいか OSCTUNEで±12%を32段階で調節できるのか・・・でosccalがなくなって工場で1%にしてるという ついていくのがやっとだ orz
>>690 TABLE 11-1: CCP MODE ? TIMER RESOURCES REQUIRED
CCPMode : Timer Resource
Capture: Timer1
Compare: Timer1
PWM: Timer2
によれば、Timer1でキャプチャして、Timer2でPWMっていうのはOKなんすかね?
(それでなんで10bitPWMなんだかよくわからんが)
>>691 CCPモジュールが1個しかないんだから、同時に使うのはダメなんじゃない?
CCP1CON で、Captureに使うか、PWMに使うか決めているんだし。
>>687 英語に苦労しましたが、注文しました。ありがとう。
ライタも12F683対応にバージョンアップしました。
>>693 日本のDigi-Keyサイト程度の英語がわからないのなら、電子工作辞めたほうが身のため
12F683のウリは内部発振のクロックが選べるようになった とこですかね。秋月はいくら位で売るのかな? ところで秋月で売ってるPICの現状はこんなもんでしょうか 8pin 高性能12F675(\150) 安価12F629(\140) ADコンバーター付で10円しか違わないから絶対12F675 18pin 高性能16F88(\300) 安価16F648A(\220) 差はADコンとSSP(SPI&I2Cs)かな、この機能使わないなら648A ただ648Aは古いとEEPROMバグが面倒そう 28pin 高性能16F876A(\850) 安価16F876(\650) 違いはコンパレーターの有無だけ? 安いほうがよさそうだけど 28pin自体がは中途半端なポジションか 40pin 高性能16F877A(\600) 安価 同じ でかくていいならこれ選べばOK。
>>695 P板.COMの\400基板でPIC入門しようとしてます。
ライタはPICerを自作する予定。
推奨はPIC18F2220なんですが、入手の手軽さとライタの
対応から16F876を使おうとしてます。
新しい型の16F876Aが気になるんですが…
メリットはコンパレータと書き込み制限が一ケタ上ぐらい?
>>696 悪い事言わないから16F84Aにしておけ。
大抵の本も16F84Aを対象にしてるし、ネットでの資料も、作例も多い。
そんなマイナーな石はやめておいたほうが吉だ。
>698 今更16F84Aはないでしょ。 プログラムのバイナリだけ持ってきて組むなら84A必要というのは 判るけど、自分でプログラム組むなら多機能のを覚えたほうが いいよ、最初にコンパレーターさえOFFにすれば84Aと同じように 使えるし、インストラクションは共通だし 何も問題はないでしょ 特に今回のP板.COMの基板って16F873,876限定だけど AD変換、PWM、シリアル通信、I2Cモジュールの実験ができるように なってるわけだし
本当の初心者なら、資料が豊富な16F84で慣れるというのは十分ありだと思うが。 何々が違うだけとか簡単に言う人もいるが、それすら理解できない場合もある。 そういうところが理解できるようになってから、最新や安価な奴に移るのがいいと思う。
701 :
774ワット発電中さん :04/07/18 17:53 ID:whkZTnt6
質問! PICのライター作って、アセンブラ勉強を3回断念しますた。 アセンブラ以外(もっと簡単なコンパイラ)はありますか? どうせまた断念するので、低機能、低価格(できれば無料) がいいんですが。
>>701 断念した原因をさぐらないと繰り返しになると思われ。
レジスタとメモリの区別がつかんとか、バンクが分からんとか?
>>701 >どうせまた断念するので、
断念するのがわかってるなら、
時間の無駄なので最初からやらないほうがいいと思われ。
704 :
701 :04/07/18 18:10 ID:whkZTnt6
>702 断念した原因 もちろんレジスタとメモリの区別はつかないし、BANK0と1は 意味が分からない。 LEDをピカピカさせるのに3日も考え込む言語は嫌。 やっと光ったLEDの光る順番を変えるのにまた3日・・・ >703 そういうわけにはいかん。 もう8000円くらいでライター買ってしまった。
>>704 最初は3日かもしれんが、次にやるときは3分だろw
あんたが、CやBASICのエキスパートなら適当な試用版を使ったら?
これから勉強するってのなら、俺は勧めない。
AVRの一番安いやつなら、メモリもバンクも無いから初心者向けかもね。
ライターは\200ぐらいで作れる。
基本が理解出来てから、PICに戻って来てもかまわないだろ?
706 :
701 :04/07/18 18:35 ID:whkZTnt6
>705 AVRって何?とてつもなくエッチなもの? いちおCは大学で学んだが、ほぼ完璧に記憶にない。 んでは、AVRをぐぐりに逝ってきます。
>>704 >もちろんレジスタとメモリの区別はつかないし、BANK0と1は意味が分からない。
コンパイラを変えたところで、これは変わらない。
>LEDをピカピカさせるのに3日も考え込む言語は嫌。
これもロジックの問題だから、
コンパイラを変えた所で大して変わらない。
>やっと光ったLEDの光る順番を変えるのにまた3日・・・
最初はそんな風でもしょうがない、
次のステップとして、光る順番を楽に変更できるようなロジックを考えればよいだけでは?
PICに限っては、アセンブラの情報が豊富だから、アセンブラでいいと思うが、
たぶん、コンパイラの導入に挫折しそう・・・
あと、最初から、断念するからとか、
8000円のライタを買ってしまっただとか、
しょうがなくやってても・・・
>>708 難点は、AVRの安直さになれると、二度とPICなんか使いたくなくなるって事なんだが。
あ、厨房は 「atmega8 日本語」でググると、日本語訳データシートが手に入る。
>>704 バンクだけはC言語にしたら意識しないですむかな。
レジスタ、メモリなどに関しては・・アセンブラほど意識しないですむが、
やっぱり基本概念くらいわからないとC言語でもBASICでも使えない。
AVRでもPIC程じゃないが事情は同じ。ただPICよりいくらか単純なのでハードルは低い。
というわけでどうしてもPICが困難ならAVRで基本を覚えるのは賛成する。
あれでだいたいのことがわかれば、その後PICを理解するのも容易だと思われ。
712 :
701 :04/07/18 22:01 ID:whkZTnt6
AVR調べますた。こっちの方がよさげですな。 情報ありがとうございます。 でも、せっかく作ったライターがもう無駄になるのが・・・(T_T) 母校のサイトでPICの講座を発見! 少し勉強してみますた。んで、また挫折しかけ。 頼む、一生のお願いだから、レジスタって何か教えてくれ。 メモリと何が違うんだ?PICには何個メモリがあるんだ!? あと、バンクも意味がわからん。てゆうか、TRISとPORT の違いが分からん。アホ母校、ちゃんと説明汁! 結局、何がしたいかというと、女手一つで漏れを育ててくれた母 の為に、超高機能お風呂センサを作りたいんだ。←最終目標
>>712 PICの勉強する前に、コンピュータの一般的な知識を
身に着けた方がいいのではないかと。
いにしえのZ80の入門書とか。
>>712 >レジスタって何か教えてくれ。 メモリと何が違うんだ?
PICに関して言えばメモリと同じ。
他のCPUでメモリと言われるものが「ファイルレジスタ」
こいつはたくさんあるが、あまり複雑な計算はできない。
数字の出し入れとカウントアップ、カウントダウンくらい。
もっと複雑なことをするには、特殊なメモリであるWレジスタを使う。
こいつはもう少し融通が利く。できるのは
任意の数値をWに入れる
任意の数字と加算、論理和、論理積などの演算(なぜか減算はできない)
ファイルレジスタから数字をコピー
ファイルレジスタへ数字をコピー
Wとファイルレジスタの間で各種演算
などなど。
他のCPUではWレジスタ相当のメモリが複数ある場合がある。
AVRではWレジスタ相当が16個、ファイルレジスタとWレジスタの中間的なものが16個、
ファイルレジスタ相当が0〜多いものでは32kバイトとか
これとは別にプログラムが書き込まれているフラッシュメモリがある。
PICやAVRではプログラムに使うメモリと計算に使うメモリは別の場所が
あてがわれている。
なんでこんな面倒なんだと思うだろうが、あなたが計算するときも、
どっかに書いてある数字を読み取り頭に入れ、その数値と他の所に
書いてある数値との間で計算していくと思う。そのとき計算中の
数値を覚えている頭の中の場所=Wレジスタ、計算結果を読み取ったり
書き出したりする紙=ファイルレジスタ(メモリ,汎用レジスタ)と考えればよし
16F84でこの紙は2ページあり、ファイルレジスタとして使えるのは
1ページ目で、記入欄が68個ある。
でもって、この紙だけど、使いやすいように紙の上端付近がマークシートになっている。
ここをマークしたら紙への書き込みだけじゃなく、外にいろいろ仕事ができるという
便利な機能がある。また、外から信号が入ったら勝手にマークが入るという機能を
持った部分がある。こいつが特殊機能レジスタ(SFR)。
こいつはややこしいことに1ページ、2ページ両方にあり、必要に応じて
ページをめくらなければならない。(バンク切り替え)
先に書いたファイルレジスタも、メモリが多いPICだと1ページ目に入りきらず、
必要に応じてページをめくらなければならないことになる。
>TRISとPORT の違いが分からん。
TRISAが1になってるbitに対応する足は入力ピンになる。入力はPORTAの対応bitに反映される
TRISAが0になってるbitに対応する足は出力ピンになる。PORTAに書き込むと対応ピンに反映される
>アホ母校、ちゃんと説明汁!
・・・・・・・・・・・・・・・・・・・・・・・・・・・・
正直、PICの初歩くらい独学でも勉強汁!といいたいが
>712
レジスタって何
ttp://www.picfun.com/memory03.html 読み書き可能なデータ格納専用のメモリの事で、2種類のレジスタがある。
(1) Special Function Register (SFR)
CPUの機能動作を指定したり、周辺デバイスの機能、動作を指定するためのレジスタです。
(2) General Purpose Register (GPR)
汎用のデータエリアとして使用し、変数やバッファとして使います
PICのメモリ構造
ttp://www.picfun.com/memory01.html プログラムメモリ、データメモリ、スタックメモリ、EEPROM
以上、4つのメモリーが有る。
バンク
データメモリは128バイトを単位とする「Bank」から構成されています。
PICの命令が、バンク操作をせずに直接にアクセス可能なデータメモリ範囲は
128バイトしか無いので、それ以上の範囲をアクセスするためにはバンクという
概念を導入して機能を拡張しています。
>>715 >任意の数字と加算、論理和、論理積などの演算(なぜか減算はできない)
SUBLWでできませんでしたっけ?
>>717 リテラルのこと言ってるんだろ?
ADDLWはあってもSUBLWは無いんで、Wレジスタからいきなり-3とか出来ない。
>718 SUBLWは有るよ。ただ動作が k - W → W だけど なんか変な動作だなと最初は思ったけど、意外と便利かも W - k → W なら W + (-k) → W で代用できるわけだし
>>713 Z80みたいに「普通の」マイコン覚えたら、PICがいかに変態的かバレちゃうからやめとけ。
スタックはないし、非破壊のコンペアはないし、ボローの時にキャリーが立たないし。
>>720 Borrow = !Carry ってことだよね。
別にPICに限ったことじゃない。
>>712 秋月のPICBASICって手もありますよ・・・
723 :
701 :04/07/19 22:25 ID:03vM3Bgp
みんなちゃんと教えてくれて有難い板だ。が、漏れにはちとむずい。 >714 情報THANX。めちゃ分かりやすい。 できれば、この他のPDFの在り処も教えて下さい。
725 :
714 :04/07/19 23:13 ID:gSZvOeoe
>>714 > リア厨の漏れでもEEPROMの読み書きくらいは余裕でできますよ。
おい、ほんとかよ?
>>726 > EEPROMの読み書き
読むのは「いーいーぴーろむ」だろ? 書くのは「EEPROM」のままでいいや。
それとも「いーつーぴーろむ」「いーすけあぴーろむ」か?
>>727 なるほど、それなら三菱鉛筆でも書けるな。
秋月のPIC一部値下がりしたのね、で>695を修正 ・8pin 高性能12F675(\150) 安価12F629(\140) ADコンバーター付で10円しか違わないから絶対12F675 ・18pin 高性能16F88(\250) 安価16F648A(\220) 一応16F84A(\350) 差はADコンとSSP(SPI&I2Cs)かな、この機能使わないなら648Aでもいいかも でも30円差ならF88か。648Aは古いとEEPROMバグが面倒そうだし ・28pin 高性能16F876A(\850) 安価16F876(\650) 違いはコンパレーターの有無だけ? 安いほうがよさそうだけど 28pin自体がは中途半端なポジションか ・40pin 高性能16F877A(\500) 安価 同じ でかくていいならこれ選べばOK。 16F88と16F877Aが値下がりしたのは大きいね。 16F877Aは前に並んでなくて、後ろの棚に置いてあるので気をつけて
732 :
774ワット発電中さん :04/07/28 21:16 ID:5NkNGWkQ
これからPICを勉強しようと思ってる者です。 入門書として後閑哲也さんの本を買おうと思ってるですが 下記の2冊のうちどっちがお勧めでしょう? A)電子工作のためのPIC活用ガイドブック B)電子工作のための「PIC18本格活用ガイド」 A)はPIC16、B)はPIC18を中心に書かれてるんですよね? PIC16を勉強してみて機能が不足するようならPIC18に進めば いいのでしょうか? それとも今後はPIC18が主流になる(?)のならいきなりPIC18 から勉強した方がいいのでしょうか? 最終的には自作のセンサ回路からの信号をPCに取り込む ということをやりたいのですが。 あるいは他にいい入門書があれば教えてください。 よろしくお願いします。
>>732 とりあえず後閑さんのHPに16/18どちらも概略があるので
それ読んで取っつきやすそうなのにしたら?
参考に出来るHPも多い16の方が良さそうな予感。
18って秋月みたら40pinのでかいパッケージのしかないし
734 :
732 :04/07/28 22:23 ID:5NkNGWkQ
>>733 アドバイスどうもです。
部品と情報の入手のしやすさは大事ですよね。
PIC18ってまだそんなに普及してないのかな?
とりあえず16から始めてみます。
どうもありがとう。
735 :
774ワット発電中さん :04/07/29 14:59 ID:4jQkerPO
すみません おしえて君で申し訳御座いません。 CCSのCですが 液晶表示器がうまく動きません。 参考書は 後閑氏の C言語プログラミング入門です。 中にあった LCD_LIB.cをインクルードして利用してるのですが 何も出なかったり 変な文字が どんどん出続けます。 結線も確認して 問題ないのですが何故でしょう??
>>735 LCDはPIC始動時初期化してる?
ウェイトの長さはOK?
(クロックが異なれば回路図通りでもだめなことある)
737 :
774ワット発電中さん :04/07/29 16:30 ID:4jQkerPO
>>736 ありがとう御座います
初期化も手順どうりで
ウエイトも ルールの3倍以上取っても駄目でした・・・・
ブレッドボードなのがいけないのでしょうか・・・
>>737 LCDつないだポートはきちんと出力指定してます?
#USE STANDARD_IO(port)指定でなく、入出力指定していないとか
739 :
774ワット発電中さん :04/07/29 18:11 ID:4jQkerPO
>>738 ありがとうございます
他の動作は、動いてるんです 涙・・・
それと 近況報告
数分前 PICの方向を間違えたため 16F877Aと三端子レギュレーターが昇天いたしました。 涙・・・・ なむ〜
740 :
774ワット発電中さん :04/07/29 21:36 ID:m6tuI0du
アセンブラでよければ、LCD用ルーチンくさるほどあるんだが・・・
742 :
_ :04/07/31 03:36 ID:QEbzn4Xg
相談させていただきたく H8マイコンスレッドから誘導されて参りました。 いまモータ駆動系につながったエンコーダからのパルスをPIC 16F84Aを使って カウント しています。(B相変化割り込みを利用して四逓倍カウントするプログラム を作りました) PICからの出力は8bitsのパラレルです。その出力を秋月のAKI H8-3048に直接接続 しています。(文字通りの直結です) 回路を組んで実験をはじめたのですが、どうもPICからの値が安定しません。 終いにはPIC自体が動作しなくなりました。 電源なのか、リセット回路なのか、それとも別の問題なのか判らないので原因を 調べているのですが、引っかかっているのが「H8マイコンと直結」している部分 です。通常のロジック回路の接続と同じように考えて直結としたのですが、本来で したら、ここには何か部品を挿入するべきなのでしょうか。それともプルアップ もしくはプルダウンなどの処置をするべきなのでしょうか。H8マイコンの方では 内臓プルアップなどは使用しておりません。PICには電源5vが供給され、リセット回 路も正常に動作、GNDもきております。エンコーダはRB6,RB7ポートに接続されてい ます。
>>742 >エンコーダはRB6,RB7ポートに接続されています。
これで8bitパラレルはどうやって出してるのか?
>>742 入出力設定は問題ない?H8が出力になってたりして
エンコーダの入力レベルは?実は5Vじゃないとか
746 :
774ワット発電中さん :04/07/31 09:03 ID:9DJme1m1
PICの水晶発振子はちゃんと規定の発振をしてますか?
>>742 H8/3048があるんだったら、PICなんか使わずに
ITUチャネル2の2相クロック入力使えば?
748 :
774ワット発電中さん :04/07/31 09:54 ID:ma1OtB1Y
>>742 まずは不具合原因の見極めが大切。
エンコーダーからのパルス入力を直接PICへ入力するの止めたほうがいいですよ。
バッファを入れてもちょっとしたノイズの影響で割り込みを使うとカウントが崩れます。
とりあえずプログラムが完璧か確認したければSGを入手しましょう。
へたれの秋月SGでも使えばPICのカウントが正しいかわかります。
去年おいらもPICでエンコーダーのカウントを測定したけど、割り込みを使ったらカウント値が
時々おかしかった。
SGを使うとまったく問題がないが、エンコーダーの入力は時々こけてた。
オシロを使って波形を見たけど特に問題はないように見えたが、SGとエンコーダーで
明らかに挙動がちがっていた。
対策としては遅いパルスだったのでレベルをプログラムで読み込んでH−>Lを判定
するようにしたらSGとエンコーダーのカウント値はぴったりと一致した。
PIC自体が動かなくなったのは別の理由だね。
エンコーダーの入力電圧とか、大丈夫かな?
PICは安いから新品に交換してみるのも手だね。
749 :
742 :04/07/31 09:59 ID:QEbzn4Xg
なんかたくさんお返事いただけて有難いです。ありがとうございます。 >743 RB0〜5ポートが下位6bits、RA0〜1ポートが上位2bitsになっています。 Bポート変化割り込みを使いたかったもので、こんなことになってしまい ました。上記のポートは全て出力ポート、RA2ポートのみが入力になり、 カウンタクリアにしました。 >744 ラッチですか。やってみます。 >745 エンコーダからは5vのパルスが出てきています。 >746 たぶん……手元にオシロがないので波形の確認はできません。 >747 エンコーダを二つ読む必要があるのです。二相クロックは一本 だけですし、IRQを使って読むのは一度やったのですが、割り込み が多すぎて本来のプログラムの実行自体に影響がでてしまって… なのでPICを使って8bitカウンタをつくって、10msec毎に(H8側から) クリアするような構成にしました。 一晩寝て落ち着いたので、またいろいろ試してみます。どうやら 直結自体には問題なさそうな雰囲気……でいいのかしら?
750 :
742 :04/07/31 10:09 ID:QEbzn4Xg
>748 ありがとうございます。割り込み使わないほうが良いですか。 計測するエンコーダからのパルスは20〜30kHzほどになります が、これは「遅いパルス」の部類に入るのでしょうか。 質問ばかりでもうしわけございません。
>>750 遅いパルスっていうのは、スルーレートが遅い(立ち上がりが遅い:矩形波じゃなくて台形波みたいになっている)
事を意味してるんでしょか?PICの入力としてはそれだとマズイんでしたっけか?
74HCなんかにそういう「遅い」パルスを入れると誤動作しますが、そのときは74HC14みたいな
シュミットインバータを入れるか、コンパレータを入れるかします。
PICにもシュミット入力ピンがなかったっけか?
752 :
739 です :04/07/31 10:36 ID:qmgqSaJK
液晶表示器不動の
>>739 です
無事動きました。
原因は 液晶の初期不良のようです
E端子に 信号が入っても 変化が無く
友人に 同じ物を借りて動かすと 無事動きました
初期不良の物を 友人のボードに使うと やっぱり動きません
でも 原因が解ってよかったです
皆様 ありがとう御座いました。
>>750 それはPICにとっては速いパルスになるんじゃないかな。
クロックいくつなのかわからないけど、20MHzだったとしても
PICは毎秒5M個の命令しか実行できない。
毎秒5M個っていうと速いようだけど、5M/30K=166.666。
つまり30KHzの周期の中でPICが実行できるのは命令160個程度。
あなたの言う30KHzってのがA相の周波数だとすると、
A、B相全てのエッジを処理するにはその4倍の速さで処理しなければいけない。
割り込み処理は40命令程度に収まっていますか?
>>748 割込み処理内で、PINの値を読み直して、変化していたらノイズと判断して
割込み処理を中断すればよろしい
>>750 30kHzとはかなり速いですね。
それが交互に来て両エッジ読むなら割り込み頻度としては120kHzでくるってことですよねえ。
つーことは割り込みに許されるのは。。あ、
>>753 でガイシュツでした
割り込みルーチンだけでも晒してみない?
問題を単純化するために、
エンコーダ入力を割り込み処理するが結果は無視して一定の値
(たとえば0〜255を1秒ごとにカウントアップ)を送るだけのプログラムを入れて
PIC→H8伝送がうまくいくかどうかをチェック
これがOKなら
エンコーダ割り込みが間に合ってるかどうかのテスト
割り込みルーチン抜ける前に割り込みフラグビットが立ってるかチェック→立ってたら割り込み間に合ってない、
>>752 そりゃ災難だったね。
マイコンとかだったらソフトかハードかどちらが原因か分からないしね。
757 :
774ワット発電中さん :04/07/31 19:09 ID:G1beJtHa
秋月のLCDだっけか?
>>752 災難だったね。
原因分からず煮詰まってウキー!な状態になったら
>>739 みたいなことをおこすから冷静にstep by step・・・
忘れがちな教訓をありがとう。
759 :
774ワット発電中さん :04/08/01 15:07 ID:mHOLF/YI
秋月のパーツは3つ買わないと安心できないんってことですか? 今回の教訓は
昔は半導体が軟だったので不良があったけど、今の半導体は丈夫なので、 秋月を含む電子パーツ(特に半導体)は、買って不良ということはめったに無くなったね。 秋月のLCDモジュールは、結構買い付けているけど、(数字にして累計1000個以上) 未だ社内内規での不良に当たった事はないかな。 端子とか剥き出しだから、色々壊れる要素があるので、どこで不良になったのかは 分からないけどね。(静電とかその他)
秋月って部品の扱いを知らない奴が混じってる様に思う。
762 :
774ワット発電中さん :04/08/01 17:57 ID:SQxZ7fcU
×:部品の扱いを知らない奴が混じってる様に思う。 ○:部品の扱いを知っている奴が混じっている様に思う。 デフォで知らない奴。 大体考えても見ろよ、知識ある奴が秋月の内情知ったら、面白いパーツ入ったら 売るのが惜しくなって独り占めの算段しかしないだろが。
763 :
774ワット発電中さん :04/08/02 21:25 ID:gGIdEZxV
くだらない質問でゴメン PICで各種センサーの電圧測れるじゃないですか。 あれってどういう原理で測ってるの? PICの中に電圧計が入ってるの?
そのセンサーの出力がデジタルなら、ただデジタル信号を読みとってるだけだし アナログなら内蔵のA/Dコンバータを使ってるだけ
765 :
763 :04/08/02 22:31 ID:gGIdEZxV
A/Dコンバータはどうやって電圧を読んでるの?
767 :
765 :04/08/02 22:54 ID:gGIdEZxV
そこをなんとか m( _ _ )m
769 :
774ワット発電中さん :04/08/03 00:05 ID:4t3GhqMo
初心者にデルタΣは難しいような・・・(w
>>762 そこでgenpin.comの誕生ですよ。
概念的には出るし具の方が理解しやすい希ガス
772 :
774ワット発電中さん :04/08/03 00:36 ID:uNRl47oL
秋月ってどれぐらい儲けてるんだろう...
773 :
767 :04/08/03 06:33 ID:0e0YcV2O
774 :
774ワット発電中さん :04/08/03 14:30 ID:OZ5ZSRnY
>>772 秋月のPICって海外から直接購入しているから安いって聞いたんだけど本当なのでしょうか。
775 :
774ワット発電中さん :04/08/03 18:23 ID:xLWslHtr
>>774 大漁に購入している業者からこれまた大漁に購入しているからあの値段になる。
その代わり不具合が出ても基本的にはサポートなし。
国内の業者から購入すると値段はアップするが、チップを使って動作がおかしい場合代理店経由で問い合わせ
が出来る。
出て間もないチップはバグがあるから問い合わせできるか出来ないかは結構大きい。
もっとも秋月では最新のチップがないから枯れたデバイスでサポートフリーで特に問題はない。
776 :
774ワット発電中さん :04/08/04 15:09 ID:OxQ73jeL
16F88
777 :
774ワット発電中さん :04/08/05 09:14 ID:Ik3n+Yiq
PIC16F88が秋月で安いから、 うちに出入りしている業者に見積もってみたら めちゃ高かった。 PIC18シリーズはまだ秋月に置いてないなー いつ取り扱うんだろー
778 :
774ワット発電中さん :04/08/05 11:08 ID:KLj434W8
18F452はすでに取り扱っていますがなにか? 使いたいPIC18はどれなんでしょうか?
779 :
777 :04/08/05 12:23 ID:Ik3n+Yiq
おっ確かに取り扱ってる 40pinDIP・・・でかい 18pinクラスが扱いやすくていいのですか。 300円くらいがいい
>>779 キミは、PIC18の、PIC16に対するアドバンテージをどこに求めているんだ?
高速性?だったらAVRとかに逝けば?
781 :
777 :04/08/06 13:09 ID:CwAO2tOP
確かに高速性も魅力です。 AVRでもいいのですが、 こちらの入手経路を考えると AVRはちと・・・ H8はDIPはないし・・・ というわけで小回りのきく PICが使い勝手がいいのです。 それと新しいもの好きという理由もあります。
>>742 の結果が気になります。どうだったんでしょう?
783 :
774ワット発電中さん :04/08/06 13:53 ID:3aE2oGpL
>>781 おまいの入手経路は秋月だけか?(笑)
あたらし者好きの割には消極的だな?
18ピンで300円に落ちる頃には鮮度は落ちて新しくないぞ。
おとこならUSから直接購入すれば大抵のチップは入手可能だ。
1個500円位で手に入れたとしても40MHzのセラロックはどうするつもりかな?
早いデバイスを手に入れてなにをやりたいのか判らないけど、40MHz版を手に入れて
232Cで19200bpsの通信やるつもりだった大笑いだ。
具体的になにをやりたくて高速なPICを欲しいのか判らないけど秋月に入荷しても
しばらくは様子見なんだろう?
他の人の使った後に手をだすだろうからぜんぜん新しい物好きじゃないんだろう。
悔しかったら具体的にやりたい事を書く事を希望しる。
言ってることはわからんでも無いが不必要な煽りを入れる事もあるまい。
786 :
774ワット発電中さん :04/08/06 14:24 ID:kPq64m0o
消費電力を考えると、PICも捨てがたい
要するに用途次第だと思うのだが。
>>777 の用途がPIC向きかどうかはわからんけど、
それ以前にもし
>>777 が「PIC18をいじりたい」ことが目的なら
外野が何言ってもムダと思うが。
アセンブラでやるのならPIC18から入ったほうがいいような気がする。 最新チップを買って、実際にいじるころには半額になってるのはよくあるなw
>>781 スレ違いでアレだが、AVRならDIGI-KEYで頼め。
月曜日に注文すれば、金曜日には到着する。送料が2000円なんだが、
ATMega8(28ピン16MHz)なら25個で1個260円くらいだし、プログラマー(AVRISP)は3300円くらいだ。
しめて 25*260+3300+2000=11800円だ。
ちなみにDigi-keyで18ピンのPIC18F1320は25個で377円だ(1個なら588円)
>>783 ググる前に憶測するが、PIC18シリーズの40MHzっていうのは、PLLで20MHzのてい倍を
使うんじゃないかと思う。
791 :
790 :04/08/06 16:22 ID:brOwlaKo
>>790 調べてみたら、10MHzのクリスタルを入れて40MHzPLLにしているらしい。
あと、PIC18って、出力ポートのラッチレジスタが無い、とか、メモリが分断していて
連続配列が取れないとか、PICの困ったチャンだった欠点がずいぶん改良されていて
なかなかいい感じだと思いました。
あとはGCC-PICがあればいいんですけどねぇ。
792 :
774ワット発電中さん :04/08/06 16:27 ID:3aE2oGpL
>>790 すまんみまちがえていた。
PLLは4倍固定です。10MHz−>40MHzです。
さっき見たデータシートだとPLL設定が見えなかったと思ったが、今確認してみたらPLL使うのしか見つからない。
どうやら幻覚をみたみたいだ。m(_._)m
793 :
774ワット発電中さん :04/08/06 18:12 ID:st7yQFF7
>出力ポートのラッチレジスタが無い、とか、メモリが分断していて >連続配列が取れないとか、PICの困ったチャンだった欠点 だから、そーゆー用途にPICを使おうとするのが間違いなんだよ。
>>791 wレジスタである限り、GCC対応は難しそう?
やっぱり命令に直交性が無いと、人もコンパイラも
マンドクセですよ
>>794 無駄を承知でwレジスタは内部テンポラリとして扱い、
2命令で1疑似命令のような扱いにしては?
ファイルレジスタが汎用レジスタのように扱えるので
一気に扱いやすいマイコンになるとか(^^)
遅くてオブジェクトサイズでかくて大変そうだけど
>>793 つっか、あんなにメモリが分断されているワンチップマイコン、他にはないぞ(断言)
GCCはともかく、PICのCコンパイラって、結構あるよね。HiTECH-CのLite版とか、フリーのやつも
結構あるみたいだし。
797 :
774ワット発電中さん :04/08/06 19:44 ID:pSQAwqzM
PICマイコンをCで使ったって良いこと一戸もない
またアセンブラ信者ですか もういいよ
799 :
774ワット発電中さん :04/08/06 20:57 ID:gRxaxBuz
BASICつかえば。
800 :
774ワット発電中さん :04/08/06 21:40 ID:GelQVmTP
PICでGCCか・・。できたらおもしろそう。
801 :
774ワット発電中さん :04/08/06 21:44 ID:rxIBdcC3
>またアセンブラ信者ですか >もういいよ お前技術者向いていないよ。現実を認めろ。
803 :
774ワット発電中さん :04/08/06 22:58 ID:EcUo7V9/
>802 鬼プロ ってあるぞ。
804 :
774ワット発電中さん :04/08/06 22:59 ID:EcUo7V9/
PICでC言語なんてのは、原付にエアコン積んで高速走る(つかまるけど)ような行為だ。
適材適所でしょ。 難しいプログラムならCで組んだ方が楽だし。 簡単のならアセンブラで組めばイイだろ。(まぁ例外はいくらでもあるがな) Cで組んだって結局問題に突き当たったときにアセンブラを確認できるスキルはいるだろ。
807 :
774ワット発電中さん :04/08/07 02:23 ID:L4iIz/7r
>805 Cで記述しなければならないような複雑なアプリならPICでは力不足だ。
808 :
774ワット発電中さん :04/08/07 03:11 ID:L4iIz/7r
PICですむようなCプログラムなんてC言語にとっては役不足もいいところだ。
>>807-808 私はPICは顧客の都合でアセンブラばっかりですが、メンテナンス性は
C言語の方が良いんじゃないですか?
同僚は顧客要求もあってPICのプログラムをCで書くことも多いですよ。
アセンブラでごりごり書かないとパフォーマンスが出ないようなプロ
グラムだと、別のマイコンをチョイスした方が良いのではないかと思う
こともあります。
秋田。
PICは非破壊の比較命令(cmp w,fとか)がないので、 Cの方がいいんだよ if ( a > b ){ hoge(); } else if ( a > c ){ hoge2(); } とかいうのはアセンブラで書いたら何がなんだかわからん。 H8とかAVRだったら、汗ブラでも可。
趣味的にプログラム・工作して楽しむのなら、好きなものを使って、好きなように作れば いいんじゃない? Cとアセンブラ、それぞれ長所短所があるのだから、どちらが絶対なんて言い切れないし、 言い切るようではスキルも向上しないと思うのだけど。 ソフト(ファーム)がらみだと、必ずこの手の宗教論争みたいなのが出てくるけど、 (ありがちなんだけど、エディタの優劣とか語りだした日には、本末転倒もいいところだ) 目的のアプリケーションを実現するためには、何通りもの道筋があるって事を 理解して、そのなかから(客先の意向や自分のやりたい事や好奇心を満たすとか) どんな方法を取れるか考えるほうが、はるかに建設的だと思いますよ。 前提条件がない状態で、単に C と アセンブラを比較しようとすることは意味がないでしょ。 たとえば、PICのアプリケーションの有名どころでブロック崩しがあるけど、こういうのを 如何に楽に実装できるか、どんな改造が出来るか、なんて考えるほうが遥かに楽しいと思うんだけど。
フットワークの軽い技術者になろう トラ技でよく目にする件だが、まさに理想はこれだろう。
自分だけで完結するなら、なんでも良いんだけどね。自分の手から離れるブツを 作るときは、後のメンテとか考えると…だし、そういうのを要求される。なかなか 難しいんよ。クライアントが要求したら、それでやってやらんとイカンし。 #マイコンじゃないけど、WinのAccessで…っつ〜のを頼まれた事がある。即逃げw
815 :
774ワット発電中さん :04/08/07 15:13 ID:/OrkAtN4
>フットワークの軽い技術者になろう あっちからチョイ、こっちからチョイ、集めたのをチョットひねって さあ納品! ってことでつか? 優ちゃんなんかの記事の作り方ってこれですよね? ひねってさえいませんけど?
816 :
739 です :04/08/07 15:39 ID:zZPmFCrL
CCS のCですが 適当なところは Cで書いて アセンブラが有利なところは そこだけ #ASMで アセンブラを入れますな
>>315 >あっちからチョイ、こっちからチョイ、集めたのをチョットひねって さあ納品!
優ちゃんというよりはイナェノリさんっぽいですね、そのやりかた。
コピペソースにコピペ回路図で漏貧作ろうとしてたんだから。
>>817 拙速主義なんだからしょうがないだろ!
接触手技ともいうが。
>>816 組み込み系のCはasm使えて普通だよ。
使えないと辛い。
漏れは、会社でPIC のHI Tech Cを買ってもらった。
最初は、Cなんて別にイラネと思っていたけど、
高速部分はasmで書いて、判定部分とか時間が掛かっていいところは、
Cで書いているよ。プログラムをする時間が物凄く短くなったよ。
早く導入しておけばよかったと思った。
漏れは趣味なんでつが、Cって便利でしょうか? アセンブラは人並みには書けるようになりましたが。 もし良ければお勧めをあげてほしいです。 実の事をいうとC自体触ったことがないんですが…w
821 :
774ワット発電中さん :04/08/07 18:10 ID:aog5jKmv
ソコソコの長さの文章を表示したり、発音させたり、入力を受け付けたりするような 用途になるとアセンブラでは厳しいかも(繰り返しが多くなるのでミスしやすくなり しかもそのミスは発見し難い)
822 :
774ワット発電中さん :04/08/07 18:11 ID:aog5jKmv
>高速部分はasmで書いて、判定部分とか時間が掛かっていいところは、 >Cで書いているよ。プログラムをする時間が物凄く短くなったよ。 ははは、無限ループに割り込み屋発見!
>>822 つっか、普通そうするだろ?
判定部分はアセンブラだと分かりづらいのでCで書く。
割り込み先では速度最優先なのでアセンブラで書く。
Cで書くと、よけいなレジスタまでスタックへ退避されるので速度が落ちる。
824 :
774ワット発電中さん :04/08/07 18:54 ID:aog5jKmv
その手法では8ピンPICでMIDIマージャーを作ることはできない。
なんか夏休みだなぁ、と、しみじみ感じる。
誰もがPICでMIDIマネージャ作るわけでなし。夏休みですね。
827 :
774ワット発電中さん :04/08/07 19:58 ID:qiUlPHTz
何なの?MIDIマネージャ って?
/////// ///////____________ ///////  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ /////// (~) チリンチリン /////// ノ,, /////// ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ /////// ( ´∀`)( 厨 ) )) < 夏だなあ〜 /////// (つ へへ つ \______ /////// //△ ヽλ ) ) 旦 ////// l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l /////  ̄| .| ̄ ̄ ̄ ̄ ̄ ̄ ̄| .| ̄ //// ^^^ ^^^
マージャーだから合成するもんだろう。 そんなもん既製品かえや。
830 :
774ワット発電中さん :04/08/07 23:32 ID:BsNjPKBl
2−2で1蔓延くらいするよ。
831 :
774ワット発電中さん :04/08/08 02:03 ID:F/Gk0Twi
夏休みくれ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜!!
832 :
774ワット発電中さん :04/08/08 14:58 ID:SVjXYYRE
漏れ、5年間連続夏休み。2000日マジかだな。 仕事ホスイ
>>820 プッお前はアセンブラでEEPROMにでもアクセスしてろw
>>820 速度とバイナリサイズに無駄が多くなりますが
コードの生産効率が非常に高くなります。
ちなみに私はPC-9801とTurbo-Cで勉強しました
お勧めです。
どうせ5年ごとに新しいCPUに乗り換えるんだからCにしちゃえよ。
質問なのですが、PICを使って外部EEPROM(マイクロチップ社の20AA08)を読み書きしたいのですが、 データーシートを呼んでもラフな図が書いてあるだけで全く理解できませんでした。 どなたか具体的な手順を教えて頂けないでしょうか? 内臓EEPROMくらいは読み書きできますが外部となるとそう簡単にいかないのは承知しております。
PIC18F1220って、10MHzのクリスタル使えば40MHzで動いて(コードは1/4で10MHzになるけど) PWMが8ビットで156.25 kHzで動くですか。そりゃすげぇ。 (PIC18シリーズだと、フリーのCが無いんだっけ?)
>>840 と思ったが、喜んでデータシート見てみたら、タイマーが4本もある!
と思ったが、CCPモジュールは1本。つまり、インプットキャプチャとPWMは同時に使えない?やっぱヘタレか?
と思ったが、インプットキャプチャなんて割り込みでやりゃいいんだよ。
と思ったが、PICの16ビットタイマーって、L読んでH読んでL読んで、で無駄時間があるんだよな。
と思ったが、
12.6 Timer1 16-Bit Read/Write Mode
Timer1 can be configured for 16-bit reads and writes
(see Figure 12-2). When the RD16 control bit
(T1CON<7>) is set, the address for TMR1H is mapped
to a buffer register for the high byte of Timer1.
おぉ、やっとバッファを搭載してくれたか。
PIC16C84を捨てて、PIC18F1320にしようぜ。電源ピンだけはコンパチっぽから。
842 :
774ワット発電中さん :04/08/09 12:00 ID:62R0ndmA
すげーバカだな。 今時は16F88をひつようなだけ並べるのが粋なんだよ。ボケ。
>>841 18Fの40ピンのやつはCCPが2個あるよ
>>839 40MHzでもAVR10MHz相当ではあるんだが、
RAM上の変数への演算が増えたところとか、1ステップ乗算演算があるところとかで
AVR-megaの16MHzを抜く速度をたたき出すケースもありそうだなこりゃ。
>>840 24bit変数に萌えてしまう俺は変かな?(CC8E C compilerの話)
>>841 >と思ったが、インプットキャプチャなんて割り込みでやりゃいいんだよ。
複数割り込みの時はやっぱり辛いぞ。
>おぉ、やっとバッファを搭載してくれたか。
>>843 18Fの40ピンのやつはCCPが2個あるよ
なんかマジでだんだんPIC18に引かれそうだなあ。
PIC16はヘタレだから無理としても、PIC18のGCCを作ろうっていう動きはないんですかねぇ?
>>845 gccのhomepageにはかけらもないなあ。
ML archive見てもないなあ。-fPICは全然関係ないオプションみたいだし(w
がんばって>PIC18な人
私は当分AVR
847 :
774ワット発電中さん :04/08/09 19:31 ID:2GA2wXAh
GCCにこだわる理由は?
>>847 タダだから
自分で使う分には1万ちょっとの言語くらい高くないけど、
作ったのを公開したいな、って考えると誰でもすぐ使えるgccみたいなフリーのを使いたくなる。
>>848 そうそう。
業務で使って、飽きて後輩にまかせるときに、言語が有料(またはマイナー)だと
結局引き継ぎが出来ないで、定年まで抱え込むことに(w
AVRに逃げたヘッタレどもはPICには戻ってこないだろうからな。 18F限定でもいいから、早くgccが出てくれないと困る。
>>849 え??業務でそれですか?
マイナーで問題ならわかりますが、有料で困るって・・
私物のC言語で開発するんですか??
852 :
774ワット発電中さん :04/08/09 21:02 ID:2GA2wXAh
>>851 課内にあるライセンス本数のことじゃないの?
たかだか1万円であっても購入が渋られる会社は珍しくはない。
>>852 [-mavr]
[-mpic14]
[-mpic16]
おぉ。楽しみ。(いつ出来るの?)
ところで、
AVR users should probably have a look at avr-gcc
ってなんて訳すの?
AVRユーザーは大抵は、AVR-GCCをみている筈だ?
856 :
774ワット発電中さん :04/08/10 00:28 ID:7JKVYXYV
周波数帯域が300〜3400ヘルツを保障している電話回線の帯域幅って 3100でいいんですか?
857 :
774ワット発電中さん :04/08/10 00:33 ID:7JKVYXYV
856 書き込む場所を間違えました。見なかったことにしてください。
見なかったことに
860 :
774ワット発電中さん :04/08/10 19:34 ID:sGTK0/BC
初心者でも簡単にできるPICを使ったマルチCPUシステムの作り方を教えてください。 とくにプロセス間通信と同期ついてわかりやすく解説していただけないでしょうか?
>>860 『初心者でも』 『簡単にできる』
どうでもいいが、なんでこういった予防線を張るのか気になるんだが。
どこから説明していいのかさっぱり判断出来なくなる。
取り合えず、『PIC単体のことはハードもソフトも全て理解しているが
マルチCPUシステムは知らない』ってことでOK?
>>860 IICで外付けEEPROMにアクセスすることとかは出来るのかい?
864 :
860 :04/08/10 20:05 ID:sGTK0/BC
やっぱりスタックが浅過ぎてむりでしょうか? 同時性処理をベタに書いたサンプルプログラムが見つからないので質問したのですが 皆様はどうコーディングされてるのでしょうか?
866 :
774ワット発電中さん :04/08/10 21:04 ID:6DK20N4J
>862 シッタカが予防線張るのに必死だな(W PICでマルチプロセッサやる場合はいわゆる汎用のCPUでのマルチプロセッシングとは 全く異なる。(つうか、PICは非力なコントローラに過ぎない。 マルチプロセッシングというよりも分散処理だな。) 複数のPIC間での同期の取り方、連絡の仕方で色々方法もあるだろう。 固定的に考えることは意味がない。 道具立ては、スレーブタイプのレジスタ装着タイプやシリアルバス装着タイプが便利だ。
一個はモーター制御、もう一個はLCDやスイッチなどのパネル関係とか。 でも、こういったのはマルチCPUシステムっていうかな? CPU複数使用システム?
>>866 そうだね、分散処理って言えばいいのか。
一個でやるのが美しい、複数使うのはどんくさい…
って印象があるのかないのか、無理矢理一個でやっちゃうのが多い?
16F84しか無かったころは、2個使った製作例も見た気がする。
>>867 AMPの事やね。でも
>>864 を見るとそこはかとなくSMPっぽい
のでちょっと違うかと・・・
PICでSMPって発想自体が基地外な気がしますけどね
ADBのキーボードとマウスを使いたくて、ADB<=>PS/2インターフェースアダプタ を自前でこしらえたときはPS/2マウス用とPS/2キーボード用それぞれ一つずつ PICを使ったっけな。 PIC間通信でエラーが起きたときの回復処理で悩んだ記憶がある。
>>871 TinyOSみたいなこととか。
無線ユニット内臓のPICが出るならこのへんの使われ方も出てくるかも
PICではないが、インテルの8742を数十個つなげる仕事を頼まれたことがある。 (その時は、興味がなくて断ったけど) パチンコで大当たりした時に、大当たり台を中心に隣の台、さらに隣の台... というように、ランプの光が島中を走るイルミネーションのようなやつ。
875 :
774ワット発電中さん :04/08/17 16:30 ID:QHBAXX5S
またかよw とりあえずインストーラー版がでるまで待ったほうがいいな。
877 :
774ワット発電中さん :04/08/19 13:00 ID:QfxEHpsl
878 :
774ワット発電中さん :04/08/19 14:34 ID:g7J3bEI4
>872 一個でやれよ。それくらい。
879 :
774ワット発電中さん :04/08/19 17:39 ID:QfxEHpsl
2個でやったほうが、考え方がすっきりする場合もあるよ。 なので最初は複数つかって作って、統合していった方が効率がよい。 いっしょにすると、色々な要素が加わって、かえって時間が掛かったりする。
880 :
774ワット発電中さん :04/08/19 17:42 ID:aJ+FBeUY
そんな複雑な問題かよ。2個使う意味が何もないじゃん。
>>880 だってFM-8だってCPU2個使ってるだろ?
(BUBCOM-8も、そうだったかどうかは覚えてねぇや)
883 :
TK :04/08/19 19:16 ID:yp4OsqDk
今日、初めて16F88を使ってみようとした訳ですが、Bポートのtris(アドレス0x86)をすべて0にしても 出力できませんでした。 Aポートは出力できますが、何か必要な設定があるのでしょうか? CCSのCで、デバイスを16F88にして set_tris_b(0b00000000); の命令をしても出力できません。(ポートはHインピーダンス状態で、オシロをあてると60Hzのノイズが出ます。) アセンブラリストを見てみると、tris命令が使われており、PICのマニュアルを見ると使ってはいけないと なっていたので、CCSのCのバグだと思います。そこで、上記の様にアドレス0x86に0を書き込みました。 あとは、ANSEL(アナログポートセレクト)(アドレス0x9B)を0にしました。 どなたか解る方いましたらご教授願います。
>>879 お互い独立しているなら2個でやるのも楽で良いけど、
お互い通信しなければいけないもので、リソース上2個でやる理由がないなら
(メモリ、速度、IO数とか割り込み数とか)1個でやる方が通信処理の分楽でない?
885 :
774ワット発電中さん :04/08/19 20:32 ID:kMAiIZS+
>>883 バグだと言い切るにはCCSのバージョンをちゃんと報告しないと笑われるよ。
あと、そのPICちゃんと動いているのかな?
初心者がやる失敗の一つが書き込みミス。
書き込み時のConfigの設定をちゃんとしないと動かないよ。
不思議なのがCCSを使っていながらアナログポートセレクトなんて面倒な事しているの?
setup_adc_ports(ADC_OFF);
が基本だよ。
ちゃんとリファレンスを読みましょう。
ちなみにおいらはちゃんとCCSCでポート出力できたよ。(^-^)
ccscは3.182と3.191のどちらでも問題なく出来た。
PIC16F88はじゃじゃ馬のIC。
今までPIC18F84Aと同じ気分でプログラムを組むと動かない。
ヘッダファイルとデータシートをじっくり読んで取り組まないと動かない。
>878 自分でやってみると、PS/2のいやらしさに気付くと思うぞ
>>883 コンパイラのバグが疑われるなら、最小限のものアセンブラで書いてみたら?
それでチップの問題(というか自分の思い込みの問題)とコンパイラの問題の
切り分けができるでしょ
>>885 じゃじゃ馬と言うより無理矢理多くの機能を突っ込んだために、気が狂ってるとしか思えない
ピンアサインになってたりするしな
USARTのTX/RXとか、I/O16本と言いながら3本単方向だったり
機能豊富な分色々な事ができるけど、その色々な事を一つのチップで同時にやろうとすると
資源の競合とかピンの割り振りとかで困る事も結構ある感じ
既存チップと同程度の事をやるなら、ピン配置の問題はさておき、置き換えはできるので
多種のチップを用意する必要が無いという点は良いけど、その多機能をフルに使い倒そうと
考えると無理が出てくる
16F628みたく、アナログコンパレータを積んでいるPICは、アナログコンパレータを使わないときには、 まず明示的にアナログコンパレータを切り離さないと、ピンがIOポートとして使えません。 (リセット時にはアナログコンパレータがONになっている)
889 :
774ワット発電中さん :04/08/20 02:29 ID:VijvVbKO
>>887 そこまで言いますか・・・。(^^;
さらに付け加えて言えば、OSCを内蔵したのは良いのですがこれが曲者で
デフォルト設定が内蔵OSCになっているみたいです。
MCLRも未使用にできるし、この石はなんでこんなに複雑なICになったのかたしかに謎です。
386(曖昧)バイトもあるから凄く便利そうなふりをしてCCSCだと約80バイト近くコンパイラーが食っていきます。
ためしにさくっと作ってみたら250バイトくらいでコンパイラーは悲鳴をあげました。「RAMもうねぇ・・・」
チップのバリエーションを絞り込む為の苦肉の策なのかも知れませんね。
890 :
774ワット発電中さん :04/08/20 02:46 ID:MWhBFrtW
>>889 80バイトをコンパイラーが食うって、どういうことでしょうか?
教えてくださいませ。
機能てんこ盛りなのは、ユーザーにとって迎合されることではないでしょうか
使いたい機能ごとにデバイスを変更するより、1つのデバイスで
なんでも使えるし、何の機能も使わないことだって出来ます。
ただ、従来のPICとの使い方の差がわかるまでは最初苦労すると思うんですが
一度やり方をつかんでしまえば、あとはこれ1つでOKになりますよね。
891 :
774ワット発電中さん :04/08/20 02:50 ID:MWhBFrtW
>>888 確かに16F628は、リセット後はコンパレータにつながっていますね。
私もこれで泣きました。まさか...って。
でも、それは特殊な部類で、16F74A、16F88など多くの品種では、
リセット後はデジタルI/Oになっています。
データシートを確認してみてください。
いちいち上げる理由は?
>>888 16F88ではコンパレータはリセットでOFFだよ
データシート 13.8 Effects of a RESET
A device RESET forces the CMCON register to its
RESET state, causing the comparator module to be in
the Comparator Off mode, CM<2:0> = 111.
さすがに、あれだけ他の機能と重畳しちゃったのでデフォルトONだと
マズいと思ったんじゃねえかな?
>>889 私は外部ピンをケチりたい人なのでIntOSCでばかり使ってるからなぁ
8MHzあればたいてい足りるし
コンパイラは・・・知らん
アセンブラな人だから(w
細かい話をすればSFRの割当も気に入らない
たとえばEEPROM読もうと思うと、必ずEEADR→EECON1→EEDATAとアクセス
する必要があるけど、EEADRとEEDATAがbank2でEECON1がbank3だから
必ずバンク切替が2回入る
リロケータブルモジュールなんかにするとbankselが必ず2wordになるから
計4word必要になる
こういう必ずセットで使われるレジスタは同じバンクに置いてくれりゃいいのになぁ
とか・・・
>>890 >一度やり方をつかんでしまえば、あとはこれ1つでOKになりますよね。
それがそうでも無かったり
たとえば
>>887 で書いた気が狂ったようなピンアサインだけど、USARTのTX/RXが
RB5/RB2に振り分けられちゃってるから、USART使うならPORTBで連続した4bit
分のポートを取る事ができない
だからUSARTでPCに接ぎつつキャラクタLCD接ごうと思えばRA0〜RA3を使うしかない
RA5/7は入力専用だからRA4〜RA7というのはダメ
コンパレータ入力はRA0〜RA3を使うから、たとえばコンパレータでほげほげした結果を
LCDに表示しつつUSARTでPCに流すなんて事ができない
648AとかならUSARTのTX/RXがRB2/1だからLCDはRB4〜7に接いでやればOK
もちろんビットごとに4bit分bsf/bcfしてやればF88でもできない訳じゃないけど、
そこまで変態的なプログラム書きたくないし(w
あと、F88は電源が4.0V〜なので3.3V系では使えない。というか保証されない
ま、実際は動くけどね
896 :
774ワット発電中さん :04/08/20 09:49 ID:zySB1s2J
>>890 80バイトではなく約80バイト。
断言はできないけど77バイトと思われる。(16進か10進かの記述がないけど10進と判断した)
コンパイラー側がスタック以外に作業用に使用するRAMの事。
(ユーザーが知らない間にPICのRAM領域を使用する)
書いてあるのはヘッダーファイル。
C Scratch area:とかかれているのがそれ。
16f84aだと0Cバイト、これがpic16f88になると77に激増する。
なぜこうなるかはCCSに聞いてくれ。
CCSCは癖が強いからおかしな動きをした時にはヘッダファイルを見に行くと良いよ。
知らない間に追加された#Fusesパラメータとかあるし、バグの回避にも使える。
(マイクロチップのエラッタなどでアドレスが変更されていたりする場合がある)
897 :
883 :04/08/20 13:32 ID:ayOfdLmW
どうも皆様ありがとうございました。CCSのCは3.191です。 もう一度チャレンジしてみます。 また結果を報告いたします。
>>896 77バイトでかいな。
なにか不要なライブラリの作業領域でも確保する作りになっていない?
文字列関数のワークとか、UARTのリングバッファとかが確保されてたりして
その"C Scratch area"を参照する命令があるかどうか、あるならどんな関数が
ここを見るのかレポートして欲しい
PIC16系は、RAM(つっか、レジスタ)がズツズタに分断されているので、 そもそもコンパイラ使うほうが無理。 PIC18系にするか、アセンブラで書くのがあたり前。 それがいやならAVRにでも逃避すれば?(w
余計なお世話
>>899 AVRは解説本が出ていないから、やだ。
入手性もあまりよくないしな。
>>901 たくさん使うお仕事?じゃないよなあ。お仕事なら解説本=データシートだろうし
AVRも英文ならいくらでも入門サイトあるんだけどね 日本語しか出来ないならあきらめなさい
>>903 入門サイトなら日本語でもいっぱい。
まあだからAVR使えって話にもならないが
PICは安部と違って力の入れ方がちがうからな。 安部の場合は単なる一製品だけど、PICはマイクロチップの主力製品だしな
日本でもマイクロチップから直接オーダーできるようになったよ。 これで、事実上何でも買えることになる。
dsPIC30Fシリーズって誰か使ってみましたか?
でもサンプルはやっぱり本社の方に頼まないといけないのか。 まぁ別にめんどくさくないが。 つか趣味でPIC使うとき全部サンプル使って(ry
909 :
774ワット発電中さん :04/08/24 19:40 ID:yyVoeONV
上げてみる
910 :
774ワット発電中さん :04/08/24 20:05 ID:3x6eEHqZ
>>909 ほんじゃ質問を一つ。
picの書き込み環境はあります。
LEDが右から流れたりランダムに転倒したりするのをやりました。
つぎは何をやればよいでしょうか?お勧めなんかあったら教えてエ口イ人!!
>>910 その流れならナイトライダーだな。
本物みたいに光が流れるやつきぼん。
912 :
774ワット発電中さん :04/08/24 20:35 ID:3x6eEHqZ
>>916 灯火類と速度計さえ車検に合致すれば通るんじゃないの?
改造届出はいるのかな?
>>917 車体・車台のサイズや構造変更が無ければ、全く問題ないです。
>>919 前照灯としての機能がないもので、ウインカーと紛らわしくないなら問題ないのでは?
前照灯並みの照度はなく、全体としては点滅していないからOKって解釈は無理?
921 :
739 です :04/08/25 21:20 ID:2iSYQOsr
だめだ〜 前方に照射する赤色は駄目でつ 道路運送車両法 保安基準 第42条第5項 同条第8項
気にするこたぁない
青ならOKとするとかえって格好いいと思われ
橙色にしてみる
ナイトフラッシャーって駐車灯じゃないの?
926 :
774ワット発電中さん :04/08/27 02:24 ID:AGxCfiLK
いきなりですが教えてください。PICのライターソフト(HEXをPICに焼き込むやつ)の configの設定の中で、プロテクトがかけられるラジオボタンがあります。 そのボタンには、ALL, OFFのほかに 1/2や3/4などもあります。 この1/2や3/4などは、どのような時に使用するのでしょうか? プロテクトかけるなら全部かければいいと思うし、かけないならOFFでいいと 思うんです。どういう目的で使われるのか、教えてください。
家にころがってた謎のステッピングモーターを動かそうとしてみて、
ttp://www.hobby-elec.org/step.htm の回路図をパクって、ソースはCで書いて、
最初から最後まで適当なのにモーターが回転してくれてしまったって状況なんですが、
ここで一つ疑問が。
そのモーターのシールに
42SIM-24D8YB
Δ7.5deg24Ω JAPAN
25JUN90DB
と書いてあるのですが、この情報からどの程度このモーターの仕様が分かる(推測出来る)もんなのでしょうか?
とりあえず一式ぐぐってみたのですがロクにヒットしなかったもんで・・・
>>927 ラベルシールも重要ですが、、、外形サイズがどれくらいかとか
アプしないのでしょうか?
urlにあった回路が使えたとなると、4相(2相のユニポーラ結線)
のモデルでしょう。
外形サイズが同じで相抵抗24Ω、ステップ角7.5度のモデルを
モータメーカ各社のカタログから探してみたらよろしいのでは?
型番からの推定では 最初の42が直径42ミリ 次の24が7.5DEGと
関係して極数でしょう。8は解りません。
>>926 OEM供給とかする時に、コード部分はプロテクトしておいて、データ(定数テーブル)
部分は見えるようにするとか、OEM先で書き込めるようにするとか、そういう
使い方するんじゃないかな?
>>930 なるほど、そういうことですか。ありがとうございました。
助かりました
>>926 update用のモニタを書き込んである部分を保護しているとか。
>>932 PICは自力でROM書けないから、それは無い
PICの最大の情報源だと思ってる電子工作の実験室のページ(picfun.com)の TOPページがR8C/Tinyに変わってる!
>>936 そうか?
そろそろ乗り換え時期なのかもな。
本出すにしても飽和してるし、PICが初心者向けだなんて方便だし。
>937 今見たら元に戻ってた。俺が見たのは幻だったのかな。 ページも全然できていなかったようだし
PICは通好みのマイコン。
最近文献を 全て電子化してディスクの中に格納してしまったので だいぶすっきりした環境になりました。 これって法的には微妙なんだよね?
私的複製つー事でいいのでは? さすがにそれをバラまいたらまずいと思いますが。
942 :
774ワット発電中さん :04/08/29 19:52 ID:Y9ixOm+F
電子工作も電気工作も初心者。 というか、全くと言っていいほど知識がないのですが、 PICを使った作品を作りたい場合、何からはじめればいいですか?
質問なのだがナイトライダーとデロリアンは別物か?
デロリアンの7セグLED萌え
デロリアンには漢のロマンを感じるな。 買って乗ろうとは思わないけど。
出ロリ餡は、実在の、普通のスポーツカー。 タイムマシンに改造されていないものには、7セグLEDは付いていなかった。 (アデレードの自動車博物館に展示されているので確認) 無いとライダーは、ライダーだから人間の方を表す。ナイト2000が正しい。
本物には7セグLEDは付いてないのか。残念。
へぇ〜へぇ〜へぇ〜
951 :
774ワット発電中さん :04/08/30 01:11 ID:gdqaxyaA
みなさん、PICの工作時に使うロジアナorオシロってどのような物を お使いでしょうか。ロジアナは高いし、オシロも色々種類があり、正直 どれを使えば良いか分かりません。 何かこれが良いぞ、という物がございましたら 教えていただけないでしょうか?
カメレオンUSB+ロジアナ基板
953 :
774ワット発電中さん :04/08/30 10:35 ID:pSZF3CJ0
>>951 予算は?
PICでなにを作りたいの?
PICはなにを使おうとしているのかな?
テスターは持っているか?
PICのプログラムの動きを知りたいのであればICD2を買った方が良い。
PIC周辺の回路のデバッグが必要だったらオシロがあれば良いが、予算が判らないとなんともいえない。
5万以下だったらヤフオクで中古か、ショップの中古しかない。
10万円まで出せるなら、ネットで中古(整備済み)のオシロが売られているので買うのがいいだろう。
http://www.evertech.co.jp/ 整備済み、3カ月保証は多少高いがヤフオクで怪しいのを購入するのに比べると初心者向けだ。
(ただし値段が高いのが問題だけど安心を買ったと思えるかが重要)
ロジアナで検索すれば16ビットタイプだったら5万円位から買えるのでそれで間に合わせる方法もある。
在れば便利だけど、無いなりに知恵を使うのも大事だね。
ヽ(´ー`)ノ (___) | |〜〜 ◎ ̄ ̄◎ ころころ〜
波形を見たいのであれば、オシロ 波形を計測したいのなら、ロジアナかな。 最近は、波形をメモリーできるオシロもあるし。
956 :
951 :04/08/30 15:26 ID:cEw/9Ecp
ヤフオクなら中古で2万以下でマトモなアナログオシロなら手に入るぞ。 ただし保証も動作もちゃんとしてるか分からんと思うので初心者にはお勧めできないなぁ。 と言っても殆ど余程古かったり注意書きが無ければまともに動くとは思うけど。
便乗で申し訳ないんですが、PIC(16F84)で作った周波数カウンタ にduty測定機能をつけたいのですが、何かいい方法ないでしょうか? 周波数計った後で、コンデンサで平滑化して電圧はかれば duty計ったことになる気もするんですが、そのときのコンデンサはどのくらいの容量がいいんでしょうか?
はい?
961 :
774ワット発電中さん :04/08/30 20:41 ID:EO0MJ1CX
アセンブリ言語で、プログラムが大きくなってくると、 ラベル名の付け方や、その管理、ラベル名と変数名の区別などが 難しくなってくるのですが、みなさんはどうしてますか? 名前の付け方に定石の方法とかあるんですか?
>>961 俺は、サブルーチンの中だと、適当に番号付ける。
後で他人に笑われなきゃどうでもいい。
女性の名前(USADA, MIYUKI01)
ローマ字(RANSU, MEMORIARU)
ラベルに使う英単語はだいたい決まってるから他人のを見ろ。
>>959 平滑化するんなら測定したい最低周波数の5倍から10倍程度の
時定数を目安にすればよいかもしれないけど、
たとえばランダムに1000回、入力信号のH/Lを測定すれば
Hの回数が0.1%単位のデューティ比という考え方もできる。
偶然、測定周期と入力周波数が近くなってしまうと破綻する
けどなぁ。
複数の(小さな整数比にならない)サンプル周期で順番に
計測することにして、そのたびに表示して、それらが大きく
違うなら、問題が生じているなんて判断することにすれば、
人に使わせるにはよくないだろうが、測定法の欠点を知っている
自分専用の簡易測定器としてなら役立つかもしれない。
>>961 サブルーチンのラベルは「動詞+目的語」にして、
サブルーチン内のローカルなラベルは、それを
簡略化したものに数字を後ろに付けたりする。
変数は名詞形に限るとかすれば、判断付くよね。
>>961 リロケータブルオブジェクトにしてモジュール分割すれば内部ラベルは気にしなくて済む
リンカースクリプトちゃんと書いてやれば思い通りのバンク/ページにマップできるし
>>959 割り込み中にRB0/INTの方向を変えればいいんじゃないの?
INTEDG ← 1 ; Hで割り込み
↓
(割り込んだときのタイマーの値を記録=T1)
↓
INTEDG ← 0; Lで割り込み
↓
(割り込んだときのタイマーの値を記録=T2)
↓
INTEDG ←1 ; Lで割り込み
↓
(割り込んだときのタイマーの値を記録=T3)
Duty=(T2-T1) / (T3-T1)
T = (T3-T1)
f = 1 / T
昔あるアセンブラで構造化っぽい事が出来るやつがあった。 goto @fとかやると次の@@:まで飛んで@bだと1つ前の@@:に飛ぶ。 便利だった。
>>968 なんだったっけ?
サザンパシフィックだったか、ライフボートだったか、
マイクロソフトウェアアソシエイツだったかの、
OPTASMとか、そういうやつだっけ?
970 :
774ワット発電中さん :04/08/31 18:00 ID:f0wbpAEd
いわく、 > dsPICさんのあなたは、みんなに慕われる親分タイプです。 > 物事に動じない強さと、明るく真っ直ぐな性格が魅力。 > 周りに振り回されて右往左往するようなこともなく・・・
>968 PICの場合、1インストラクションが1WORDだから、いっそ DECFSZ COUNT,F GOTO $-1 みたいなのでもいいんじゃない
リロケータブルオブジェクトで作るぞっと思って CODE,GLOBAL,EXTERN,UDATA,RES等を使ってソースを書いたはいいが リンク出来ず。MPLABのinstallフォルダにある対象PICの.lkrを コピーして指定してリンク出来るようになるまで半日。 その後 "can not fit the absolute section. "に悩まされて さらに半日、 ORG 0 GOTO MAIN ORG 4 INTR MOVWF INTR_W ORG 5 ; <-これ MOVF STATUS,w MOVWF INTR_STAT 上記の様にORG 5を入れて解決したが。普通はどうするもんなの? リンカースクリプトのCODEPAGEの所を書き換えるのかなぁ
974 :
774ワット発電中さん :04/08/31 23:04 ID:J2xJwbZh
まったく初心者なのですがPICで電光掲示板はつくれますか?
975 :
774ワット発電中さん :04/08/31 23:30 ID:8JxlL1hO
>>972 それすぐ使えるね。けどボクPA専門だからマクロだらけで相対距離わかりにくいん。
>>973 普通かどうかは知らんが、オレはこんな感じ
STARTUP CODE 0x000 ; processor reset vector
goto main ; go to beginning of program
INTRT CODE 0x004 ; interrupt vector location
goto service_int ; go to beginning of interrupt service function
INTRTF CODE
service_int
movwf w_temp ; save off current W register contents
:
リロケータブルにORG使うのは何かキモチ悪い
978 :
774ワット発電中さん :04/09/01 01:53 ID:u/kKmScW
>>974 秋月のシリアル制御32x16LEDマトリクス&PIC16F84A/PIC16F628で作ったことがあるよ。
フォントデータとかを置く余裕はないので、グラフィックデータを
プログラムエリアに埋め込むようにした。データの変更には再プログラミングが必要。
PIC16F84Aを使ったときは32x64のデータを縦スクロール。
PIC16F628で作ったときには256x64のデータを横スクロール&縦スクロール。
問題は、使用した秋月のシリアル制御LEDマトリクスがもう入手不可なところだ。
こいつは簡単にPICからコントロールできて便利だったのだが。
今作るとすると、単体のLEDマトリクスを買ってきて、ドライバを作って発光させる
ことになると思う。シフトレジスタやらを用意する必要があってちょっと面倒。
設計次第で128x16ドットとかのも作れるだろう。
>977 CODEの後ろに開始アドレス入れられるとは知らなかった。サンクス やっぱりGOTOで飛ばすのが普通なのかな。 前、PICのプログラム作ったとき割り込み処理が重くなってしまったので 出来るだけ処理を軽く作りたくてGOTOで2サイクルも消費するのが もったいなくて あと分割アセンブルで出来上がったプログラムのメインのソースと 他のソースの間にRETLW 0 が2個入ってしまうんだが何か意味が あるんだろうか?
981 :
774ワット発電中さん :04/09/01 10:57 ID:31AuWeW7
PICの割り込みでWレジスタ退避する際、BANKの指定って出来ないから Wレジスタ退避用のRAMと同じアドレスにある他のBANKのRAMも使用不可?
983 :
977 :04/09/02 01:59 ID:Ja+ZRqZV
>>980 gotoで飛ばすのがイヤならリンカースクリプト書き換えて、0x004以降に
セクション取って割込み処理ルーチン書けば良い
>あと分割アセンブルで出来上がったプログラムのメインのソースと
>他のソースの間にRETLW 0 が2個入ってしまうんだが何か意味が
>あるんだろうか?
ウチでは入らないけどなぁ
ORGとか使ってアブソリュートになってるからとか、そういうんじゃなくて?
984 :
977 :04/09/02 02:06 ID:Ja+ZRqZV
>>982 基本的には、STATUSとWレジスタの退避はバンク切替するUDATA領域ではなく
バンク切替しても共通にアクセスできるUDATA_SHR領域に取るべきだと思う
Microchipのサンプルコードなんかでもだいたいそうなってるし。
チップによってはバンクはあってもRAMが無い場合もあるから、UDATA領域に
取ってると、チップ変えた場合にハマるよ。648とか
>983 レスありがとうございます リンカースクリプトの方を書き換えて対処するようにします RETLW 0はちょっと試したけど原因不明です。2wordくらいどうでも いいと言われるとその通りなんですが STARTUP CODE 0x000 GOTO MAIN INTR CODE 0x004 GOTO INTR CODE MAIN GOTO MAIN INTR GOTO INTR END これを適当なリンカースクリプト持って来てビルドすると 0x005,6にRETLW 0が入ってGOTO MAINが0x007になってしまう (MPLABv6.50とv6.61試しました) >984 UDATA_SHR領域に取るようにします。RAMが実装されてない所って 他のBANKのイメージが出て来るのかと思ってたけどRead as "0" なんですね
986 :
774ワット発電中さん :
04/09/03 00:22 ID:9j/fgPV9