2 :
774ワット発電中さん:2012/02/18(土) 14:17:41.17 ID:tshaCHEi
2たりこ
[新シリーズのPIC16F1xxx テンプレ用] ('11/09版)
旧シリーズより機能が大幅にアップしていて値段も下がってる。新規に組むならこちらから選択すべき
秋月に入荷していないラインナップも表記(未)。円高のおかげか若干値下げあり(v)
[40pin] 16kwハ必要ナイカモシレナイケド10円差ナラ
v◎16F1939 \170 16Kw 1024 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2
v○16F1937 \160 08Kw 0512 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2
[28pin] こちらも10円差なら
-◎16F1938 \150 16Kw 1024 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
v○16F1936 \140 08Kw 0512 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
v×16F1933 \140 04Kw 0256 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
[20pin] こちらは秋月に無し
-未16F1829 ---- 08Kw 1024 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
-未16F1828 ---- 04Kw 0256 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
[18pin] 18ピンの割にMSSPが2コ,ADC入力ピン多,タイマーx5,CCPx4と多機能
-未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
v◎16F1827 \110 04Kw 0384 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
-未16F1826 ---- 02Kw 0256 I/O16 ADC12 CapS12 Comp2 Timer2/1 MSSP1 ECCP1/- CCP-
[14pin] 下位のチップしかなく機能的に8ピンとあまり変わらないのは残念
-未16F1825 ---- 08Kw 1024 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
-未16F1824 ---- 04Kw 0256 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
v◎16F1823 \090 02Kw 0128 I/O12 ADC-8 CapS-8 Comp2 Timer2/1 MSSP1 ECCP1/0 CCP-
[8pin] 8ピンでUSARTもI2Cも使えるってのは大きいね
-未12F1840 ---- 04Kw 0256 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
-◎12F1822 \080 02Kw 0128 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
表記 Timer[8bit]/[16bit],ECCP[Full]/[Half],CspS=CapSense,Comp=Comparator
共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計(?)
VDD1.8〜5,5V,Max32MHz(Vdd2.5V以上),4xPLL有,内蔵OSCでも32MHz可
プログラム面で新命令追加,bankは32マデ拡張,スタック16レベル,LATが追加,割込時のレジスタ自動保存
16bit幅で2本になったFSRデ連続配置RAMやプログラム領域アクセス可能
追加命令群
ADDWFC,SUBWFB : キャリー,ボローを含んだ加減算
ASRF,LSLF,LSRF : シフト命令
BRA : PCLATHやページ境界に関係なく相対ジャンプ [9bit幅] PC+255〜PC-256へ
BRW : PCLATHやページ境界に関係なく前方へのみ相対ジャンプ PC+W(0〜255) ADDWF PCL,f ヨリ便利
CALLW : 上位はPCLATH,下位はWのアドレスにサブルーチンコール
MOVLB,MOVLP :バンクセレクト,PCLATHに直接定数入れる
TRIS,OPTION :TRIS(A〜C),OPTION_REGにWの値入れる(12bit幅品互換?)
RESET : ソフトウェアリセト
ADDFSR : FSRに定数(-32〜+31)加減算
MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能
秋月のPIC12/16F(旧)シリーズ 命令セット14bit幅&DIP品限定ピン数別評価
あくまでも旧シリーズ内での相対評価。新シリーズが使えない場合のみ有効
値下品多数あり(先頭のvは値下げ,-は維持,*は新規)'11/9更新版
40ピンは決まり
v◎16F887 \180 40ピン600mil幅が許せるなら 旧シリーズ最強
28ピンはフラッシュとSRAMの差をどうとるか
v◎16F886 \170 887よりピン数減ってスリム(400mil幅)
v○16F883 \150 886との違い8Kw→4Kw,SRAM368Byte→256Byte
ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31K-8MHとフルサポート
新しめのチップで内蔵モジュールも多,大きささえ許せば20,18ピンよりこちらを
20ピンはF690のバリエーション多,価格差小なのでF690か,OPアンプF785,ポート割りがチョットカオス
v◎16F690 \140 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31K-8MHzとバッチリ
v○16F689 \130 F690からeCCP機能削られた
v△16F687 \120 さらにF689を2Kwと半分に
v×16F677 \120 さらにF687からeUSARTも削られた
v×16F685 \150 F690からSSP&eUSART機能が削られたのに値段高いとは
v◎16F785 \130 ADC有,CCP有,2Kw,内蔵31K-8MHz,OPアンプ搭載が異色(新シリーズにも無)
18ピンは種類は多いけど選択の幅は狭い。値段でF716いっそ20pinにするか
-×16F84A \250 機能無,1Kw,新規では不要だけど作例参照用or互換用に
v×16F648A \160 CCP有,USART有,4Kw,内蔵4MHz,ADC無同士でF87に軍配
v△16F628A \140 F648Aの2Kw版,売りが値段だけだと厳しいかな
v△16F627A \120 F648Aの1Kw版,上に同じ
v×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・
-○16F88 \200 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31K-8MHzと旧18ピンの王者ダガ高い
v○16F87 \150 F88のADC無Ver,ADC無が問題なければ
v○16F819 \170 ADC有,CCP有,SSP有,2Kw,内蔵31K-8MHz,F88とはROM,USARTの差
v○16F818 \150 F819の1Kw版,多機能なだけに1Kwに不安を感じる
v◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意
14ピンは10円差ならF688
v◎16F688 \110 ADC有,eUSART有,4Kw,内蔵31K-8MHz,CCPは無が残念
v△16F676 \100 ADC有,1Kw,内蔵4MHz
v×16F630 \100 F676のADC無し 無機能で影薄い
8ピンは多機能のF683かEEPROM無くても良いなら\60のF615
v◎12F683 \100 ADC有,CCP有,2Kw,内蔵31K-8MHz,8ピンとしては多機能
v△12F675 \80/90 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版,
v△12F629 \70 675のADC無(機能無しってこと),EEPROM必要で安いの求めるなら
v△12F635 \90/100 機能無し,1Kw,内蔵31K-8MHz,31KHz〜必要なら,環境によってはE/P版
v◎12F615 \60 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無さえ問題なければ
v×12F609 \60 F615からADC,eCCP機能省かれてる
(参考)機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
v△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら
-△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら
-×12F510 \60 ADC有(8bit),1kw,内蔵4Mor8MHz,EEPROM無し
v×12F509 \50 機能無し,1Kw,内蔵4M,EEPROM無し
v△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用
v△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用
マークの意味
◎お勧め、用途決まっていないならこれ買っとけ
○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ
△内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書にのってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
秋月のPIC18Fシリーズ 5V動作可で比較的高速(12MIPS)だが16F1xxx(8MIPS)
dsPIC30F(30MIPS)に挟まれて値段も高めで苦しい,拠り所はUSB
40ピン USB不要なら18F4525もありかな
◎18F4550 \370 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP1/1,SPP
△18F4520 \340 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP1/1
○18F4525 \380 24Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1
△18F4585 \500 24Kw/3328/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1,CAN
×18F452 \500 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/1
28ピン USB不要なら大容量で18F2620あたりも
◎18F2550 \350 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0
△18F2455 \340 12Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0
○18F2450 \260 8Kw/768/0 [USB],Max48MHz(31kHz),PLL,CCP1/0,eUSART,MSSP無,TMR16bitx2少
△18F2420 \280 8Kw/768/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0
×18F2320 \420 4Kw/512/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0
○18F2620 \420 32Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP2/0
×18F258 \530 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/0,CAN
20ピン 値段的にも格安でお得
◎18F14K50 \170 8Kw/768/256 [USB],Max48MHz(31k〜32MHz),4xPLL,CCP0/1
18ピン 2ピン差だと体積的にメリット小
×18F1320 \220 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1
PIC18F共通 VDD 〜5.5V,10bitADC,eUSART,TMR8bitx1/16bitx3,MSSP
24,dsPICシリーズ(24F,dsPICは品数限られているが値下げでお買い得感向上)
40ピン
v○30F4013 \480 16kw 2KB EEPROM1KB
v×30F3014 \500 8kw 2KB EEPROM1KB
28ピン
v◎24FJ64GA002 \330 21.3kw(64kB) 8KB EEPROM無 リビジョンはイクツカナA3/4ハナイヨナ
v◎24HJ12GP202 \260 4kw 1KB EEPROM無 この値段で40MIPSはお得感大きい
v○30F4012 \460 16kw 2KB EEPROM1KB 5V動作必須でメモリ大きいのなら
v×30F2020 \500 12kw 0.5KB EEPROM無
v△30F2012 \350 4kw 1KB EEPROM無 5V動作必須で安いの欲しいなら
v◎33FJ32GP202 \320 11kw弱(32kB) RAM2KB メモリサイズ許容できれば24FJ64より、高速
18ピン
v○30F3012 \400 8kw 2KB EEPROM1KB
共通
24Fシリーズ Vdd2.0-3.6V Max16MIPS (一部ピン5V入力可)
24Hシリーズ Vdd3.0-3.6V Max40MIPS
30Fシリーズ Vdd2.5-5.5V Max30MIPS DSP命令有,(5V動作可)
33Fシリーズ Vdd3.0-3.6V Max40MIPS DSP命令有
乙
このテンプレいつも参考になるなぁ。
7 :
774ワット発電中さん:2012/02/18(土) 21:58:54.92 ID:bmRdbciU
タイマー2で3kHzのピー音を鳴らしたのですが、音が止まりません。
BCF T2CON,TMR2ONとしても
CLRF CCPR1Lとしてもダメです。
どうすればいいのでしょうか?
>>7 「タイマー2で3kHzのピー音を鳴らしたのですが」
どうやって?
Kのついた新しい PIC のテンプレもほしいところですね。
私は初心者なのであまり詳しくないのですが、うわっつらのスペック(と値段)を
見る限り、18F14K50 がオススメっぽいと思うんですが、どうでしょう?
>>9 >20ピン 値段的にも格安でお得
>◎18F14K50 \170 8Kw/768/256 [USB],Max48MHz(31k〜32MHz),4xPLL,CCP0/1
>>7 PICが音を出すわけじゃない
PICで矩形波を出力する方法は沢山あります。
あなたがどうやって矩形波を出してるか説明して下さい
トラ技見たんだけど、PLDモドキが載ったデバイスまであるんだな。
14K50はなんか仕様が変態だったから避けた
■18Fシリーズは5V動作可(J除)で比較的高速(10〜MIPS) 新型のKシリーズは多機能で高速(16MIPS) '12/2更新版
40ピン 旧ラインナップしかないので苦しい、USBの4550か不要なら4525もありかな
-◎18F4550 \370 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP1/1,SPP
-△18F4520 \340 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP1/1
-○18F4525 \380 24Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1
-△18F4585 \500 24Kw/3328/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1,CAN
-×18F452 \500 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/1
28ピン 新ラインナップが強力。多機能・高速の26K22か12bitADCの25K80かUSBで26J50か
-×18F258 \530 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/0,CAN
*×18F248 \500 8Kw/768/256 ↑258のメモリ縮小版
*×18F252 \450 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP2/0,
*×18F242 \420 8Kw/768/256 ↑252のメモリ縮小版
*×18F2580 \430 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL.CCP1/0,CAN
*×18F2480 \390 8Kw/768/256 ↑2580のメモリ縮小版
-×18F2620 \420 32Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP2/0
-×18F2420 \280 8Kw/768/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0
-×18F2320 \420 4Kw/512/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0
-×18F2550 \350 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0
-×18F2455 \340 12Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0
-×18F2450 \260 8Kw/768/0 [USB],Max48MHz(31kHz),PLL,CCP1/0,MSSP無,TMR0/2
*×18F2523 \390 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0,12bitADC
*○18F2431 \340 8Kw/768/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0.14bitPWMx6
*×18F2321 \240 4Kw/512/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0
*×18F2221 \220 2Kw/512/256 ↑2321のメモリ縮小版
*◎18F26K22 \220 32Kw/3896/1024 Max64MHz(31k-64MHz),4xPLL,eUSART2.TMR3/4,MSSP2,CCP2/3,SRLatch
*○18F23K22 \160 4Kw/512/256 ↑26K22のメモリ縮小版
*◎18F25K80 \220 16Kw/3648/1024 Max64MHz(31k-64MHz),4xPLL,eUSART2,TMR2/3,CCP4/1,12bitADC.ECAN
*○18F26K20 \190 32Kw/3936/1024 Max64MHz(31k-64MHz),4xPLL,CCP1/1
*△18F23K20 \150 4Kw/512/256 ↑26K20のメモリ縮小版
*◎18F26J50 \260 32Kw/3776/0 [USB],Max48MHz(31k-48MHz),PLL,eUSART2,TMR2/3,MSSP2,CCP0/2,リマップ,▲3.6V
*○18F25J50 \230 16Kw/3776/0 ↑25J50のメモリ縮小版,▲3.6V
*△18F26J11 \240 32Kw/3776/0 Max48MHz(31k-32MHz),4xPLL,eUSART2,TMR2/3,MSSP2,CCP0/2,リマップ,▲3.6V
*△18F25J11 \210 16Kw/3776/0 ↑26J11のメモリ縮小版,▲3.6V
20ピン USBの有無でK50かK22を
-◎18F14K50 \170 8Kw/768/256 [USB],Max48MHz(31k〜32MHz),4xPLL,CCP0/1
*×18F13K50 \170 4Kw/512/256 ↑14K50のメモリ縮小版
*◎18F14K22 \160 8Kw/512/256 Max64MHz(31k-64MHz),4xPLL,CCP0/1,SRLatch
18ピン 20ピンから選択すべき、14bitPWMx6に魅力あれば1230を
-×18F1320 \220 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1,MSSP無
*×18F1220 \210 2Kw/256/256 ↑1320のメモリ縮小版
*△18F1230 \220 2Kw/256/128 Max40MHz(31k-32MHz),4xPLL,TMR0/2,MSSP無,CCP無,14bitPWMx6
PIC18F共通 VDD 〜5.5V,10bitADC,eUSART,TMR8bitx1/16bitx3,MSSP
追加表記 CCPx/y/ x=CCP数/y=eCCP , TMRx/y x=8bit/y=16bit
PIC18版を更新しました、疲れた。
PIC12/16と24&dsは新品種や値段に変化ないのでそのままです。
無料コンパイラの質を考えると、多少高くても18F使いたいところ。
遅くて小規模なら16Fの新シリーズも有りかと思うけど。
PIC16Fでラジコンが平面座標でどれだけ移動したかを感知したいんだけどいい方法ないかな
ぱっと思いついたのは光学式マウスをラジコンに取り付けてPICでマウスの出力を読み取る
>>18 ラジコンの車高を最低5センチほど高くしないといけないのでマウスは無理ですね
マウス引きずれば?w
路面の粒度で誤差ありまくり、アスファルトや土の上でやるとマウス即死だろうけどw
三軸ジャイロと加速度センサーだろ
ドイツじゃ真空管使って68年前にロケットに載せてるぞ
メカニカルなマウスバラせばロータリエンコーダは取れるから、
タイヤの回転数検出でもしておけば?
>>22 >>21は明らかにありふれた情報だ
kwskなんて書くような話ではない
PIC16Fでは多分実現無理だと思うが
誤差の蓄積しない、平面座標を取得する手段なら
MVPenかアノトペンのアイデア活用しかないだろう
あまり分解能が必要ないならMVPenの方式ならPIC16Fで真似できるでしょう
26 :
774ワット発電中さん:2012/02/19(日) 10:02:08.61 ID:jDlOkM2p
平面の隅で超音波発生させればOK
27 :
774ワット発電中さん:2012/02/19(日) 10:47:45.61 ID:jDlOkM2p
よくよく考えたら、車から超音波を発して隅で受信した方が簡単だな。
で、座標を計算して車に送り返せばいい。
GPS
>>27 超音波発生装置A,Bを平面上のそれぞれ固定された2箇所に設置する
車から全周に向けて2種類の赤外線命令を発射する
超音波発生装置Aは赤外線命令Aを受信した際に超音波を発射する
超音波発生装置Bは赤外線命令Bを受信した際に超音波を発射する
↑
このやり方ならありふれたテクニックで実現できる
ただしA,Bからの距離を同時には測定できない
>>19 > ラジコンの車高を最低5センチほど高くしないといけないのでマウスは無理ですね
マウスをそのまま設置するのではなくて、工学マウスを分解して部品だけ取り出し
設置する方法でも無理なのかなあ?工夫してみる価値あると思うけど。
ラジコンが実際に移動した距離が欲しいのではなく、x0,y0→x1,y1へ移動した
時の直線距離が欲しいんだよね?
31 :
774ワット発電中さん:2012/02/19(日) 11:10:49.06 ID:jDlOkM2p
>>29 そんなめんどくさい事しなくても、隅につけたマイクで時間差取ればOK
>>31 >につけたマイクで時間差取ればOK
君の書いていることと殆ど同じだよ
車側で座標が欲しいか、そうじゃないかの違いはあるけど
マイクって言葉を使ってないから、マイクを使う方式じゃないと思ったのかな
33 :
774ワット発電中さん:2012/02/19(日) 11:55:41.72 ID:cT/5NDlC
>>32 いや、マイク云々じゃなく、赤外線なんて、しかも2回に分けるとかメンドクサイと思った。
ラジコンから全周に超音波のパルスを発生させてマイクで受けるだけで距離はわかるよ。
しかも超音波を一回、送信するだけで。
>>15 乙。
10f32xとかいうシリーズも出たらしいけど、どうなんだろう。
>>24 加速度センサーで傾きを調べたりするのはありふれてますけど平面座標を取得する情報は
見つからないんですよー
>>30 そうです、でも光学マウスは地面スレスレでないと感知しないのでは?
>>35 加速度センサーの値を二階積分して、自分で座標出してみるとおもしろんいじゃない?
28PINのPIC18F26K22に対応する40PINはPIC18F46K22だけど
秋月は売る気ないのかね A/D入力30chとかすこいんだけど
いろいろ存在してるのに、秋月が持ってきてくれないと入手できないんだよな
16F1xシリーズも、前からあったのに秋月のラインナップに入ってからいきなり人気出た
39 :
774ワット発電中さん:2012/02/19(日) 15:37:59.82 ID:l8JxFq+F
PIC18Fなんて一生使わないだろうと思ってたのに
18F26K22が秋月で扱われるようになって考え変わった
PIC18Fのほうから俺にすり寄ってきたw
>>36 実機とか実車のように進行方向がゆっくり変わるものなら実用になるんだが
言うまでもなく、ラジコンでは誤差が酷い筈。もしこれが実用になれば相当に便利
もっと便利なのがDGPSがGPS並みに安価になり、誤差が1mm以下になり、測位時間がほぼ瞬間になるということが実現した時
>>33 地面側の配線の都合とか、車側・地面側どちらで座標が必要かとか、通信プロトコル次第だよ
>>29はそれなりにメリットがあるんだよ
2つの地面側の固定局はそれぞれ単独で置けて長い配線が必要ない。通信プロトコルが必要ない
>>35 >>21はV2(A-4)ロケットの存在を指摘してるだけなんだから
>>21に問うても仕方がない
>>40 俺の所にはまだ挨拶にも来ないな
持参金付きで来てくれればうれしいんだが
>>43 書きわすれた
実機と実ロケットとか実船の慣性航法装置の加速度センサーは方式そのものが違う
座標系の認識に外部に設置したカメラから。ってのが動画であった。赤外線を発行する物体の
三次元座標を外部のPCで求める。外部からの光をカーテンで遮っていたので、室内専用かな。
物体の単独動作はできず、設備が大がかりなのが難点。
それ、16Fだと出番あってもIR-LEDチカチカぐらいだなw
学校の選択実験でステレオカメラ使って似たのやったけど選択間違えたわ
高い機材使ってやってることはゴムボールの運動計測なんだもん、眠い…。
49 :
774ワット発電中さん:2012/02/19(日) 23:50:44.38 ID:dRfOaYI9
MPLABX+HI-TECH PICC 18-PROって18Fで使えてる?18F26K22(18Fは初めて)でLチカやろうとmain.cでdefine LED RA5ってやっただけで、undefined identifier "RA5"って出る。
でもってRA5でGo to implementationすると、なぜかpic18f87k22.hのRA5を指すんだよ。
project propertiesではPIC18F26K22指定してるのに・・・
頭おかしくなったかな
Lチカ?
この板で活気がある方なのがこのスレか? 前は人多すぎだったのになぁ。 電子工作もいよいよ終わりか?
ぶっちゃけ何を語ればいいのよここで
>>52 バカダナァ
ライターダロ
ライター自慢
オレ3台アルヨ
最低限USBで繋がらないと話にならぬわ
それか無線
なんでAndroidってあんなに糞なんだろ
元がlinuxだからだよな
無線はXBeeでさえ高いのにマイコ尿BTは高すぎる
USBホストになってPC用ドングルを使うしかない
アホすぐる嫌な世の中やのう
>>53そうか分かった
俺の初代ライタはWIN98とプリンタポートに接続して使うトラ技の記事にあった回路だ
ライタソフトは誰かが作ったPIC16F877まで対応したやつ
俺の2代目ライタはPIC16F877にRAMをI/O増設してハイパーターミナルの「テキストファイルの送信」で
インテルHEXファイルを丸々転送する方式のやつだ PIC16F887にも書き込める
俺の3代目ライタはAVRマイコン用で PIC16F887にRAMをI/O増設してハイパーターミナルの「テキストファイルの送信」で
インテルHEXファイルを丸々転送する方式のやつだ ATMEGA644Pとかに書き込める
俺の4代目ライタはPIC/AVR兼用で ATMEGA644PにRAMをI/O増設してハイパーターミナルの「テキストファイルの送信」で
インテルHEXファイルを丸々転送する方式のやつだ PIC16F887とかATMEGA644Pとかに書き込める
以上だ
じゃあこんどは無線で作れや
線がないってのはいい
アバターみたいなのどぼとけ通信がいい
5代目はPICKIT3にするよ
リモコンなら赤外線だろ、という一般常識をかなぐり捨てBTを組み込んだ
ウィーには先見性があった
そういう発想力(ぢから)が必要なのだ
アイフォーンの成功もそうだ
たっちぱねるぅ?どうせ・・・というこれまでの偏見を、
マルチタッチや精度の高いパネルで覆した
そして数々の特許
しょぼい既製品パネルを流用するだけのPalmや
PDAの世代ではとうてい無理だったことだ
つまりマイコンの開発も、常識を捨てて挑まなければ成功はない
常識は邪魔をする、あいつ狂ってるぐらいの認識で調度いいかもしれない
頭を壁にぶつけるなりするのは常識的に考えて危険な行為だが、
もしかするとやってみる価値はあるかもしれない
アバターの車椅子男がパンドラに到着直後、
運搬車に轢かれそうになっていたのを覚えているだろうか
ギリギリ轢かれはしなかったが、優秀な運転手なのか、
それとも優秀な運搬車なのか、どんな技術かを問わせる
描写をさらっと入れるセンスは見習いたいものだ
もし轢かれていたら障害者虐待映画として見られるのだ
監督がバーホーベンなら躊躇なく轢くだろうが
少し話が脱線したが、要するに魅せる技術の事を言いたいのだ
アイフォーンは魅せる技術も巧みだった
だから皆が注目した
ちまちまPICで・・・なんて考えてる時点でお前はダメなんだよ!
まず「PICで」という考えは捨てろ
>>63 少し落ち着けよw
その時点でスレチって事に気付かない?
とっくにあぼーん設定してます
ぶっちゃけ何を語ればいいのよここで
という流れったから
ここの住人に少し説教したかった
スレチですか?
ではどうぞPICにちなんだお話をなさってくださいなw
手持ちで8bitポート、タイマ用外部オシレータ、PWM 2chのたった計12pinを同時に使える品種がない
リマップ可能な18F26J50買うしかないかね
もしくは2チップ構成にするか…
68 :
774ワット発電中さん:2012/02/20(月) 20:53:52.00 ID:UONKmIO/
49だけど、MPLABのバグっぽい。
view include hierarchyではpic18f26k22.hをインクルードしているのにgo to implementationではpic18f87k22.hをさしてるし、対象を兄弟チップに変えたらエラーが無くなった。
秋月で扱いだしたので買ってみたけど、このチップに絡むコンパイラのバグはいくつか報告されているので、地雷なのかもしれない。
以上ですー
インクルードの順番が違うってことはないよね
外部オシレータからPIC2つに同時にクロック与えてデュアルPICとか考えてる。
上手くいけば8bitPICで16ポート同時に操作できる、かも。
>70
何に使うのかわからないけど、マスター・スレーブ決めて通信やSYNCで2つの同期とか取るのかな
そんなにシビアでもなく同じクロックでそれぞれのPICが勝手に動く感じ?
3個同時に走らせて多数決で出力するのがカッコイイだろ
>>70 リセットが同期出来ないので難しくないかな?
多数決コンピュータといって、アポロじゃなくてエヴァが出てくるってのは…時代か…
同期信号出すならそれで校正すりゃいい
両方に外部オシレーターのピン割くなんてもったいにゃい
77 :
774ワット発電中さん:2012/02/21(火) 18:05:15.49 ID:Zzh0mZIG
>>72 3個位じゃ全部違ってる可能性があるから数百個でよろ
>>77 二択だから3つで多数決できるわけで…
数百個要るってことは、数百通りの答えを出させる気か。 PICにか。
なんかジグビーとかいう無線通信のやつを7個貰ったんだけどなにすればいいかわからない
81 :
70:2012/02/21(火) 19:09:49.81 ID:07qa1lC6
似た様な記事見つからなかったので、ちょっとだけ。
同時起動に関してはちょっと怪しかった、初期起動はとりあえずリセットで無理やり。
どっちにしろ選別して銅の板でも貼っとけばいいかなあ。ちゃんと波形見てないからまだわからないよ。
マスタにタイミング持たせてスレーブにポート割り込みして、互いにタイミングを取ればいけるかな、とかその程度しか考えてない。
物凄く頭悪い方法だと思うよ、自分でも。16ポート同時操作できるマイコンがあればこんなことするよりそっち使ったほうがいい。
高速動作を要求しなければ不可能な話ではないと思う。
でも、一番最初に採るアプローチ手法でもないなぁ。
8bit→16bit変換ならラッチ等のロジック回路を外付けするのがいいんじゃないかな
I/Oエキスパンダってのもあるし
バタついていいなら4040でもおk
>81
素直に16bitのPIC24F使うのが楽じゃないか
秋月で\330のPIC24FJ64GA002ならRB0〜15の16bit操作可能のはず
ただしリマップ機能はRBにしかないので残ったRA0〜4で内蔵モジュールは
全く使えないけど。
86 :
70:2012/02/21(火) 20:47:50.51 ID:07qa1lC6
だよねー。
手持ちでそこそこの速度で動かすには、ってことで考えてただけだからね。
10f32xってどうよ
同一クロックを使って2個のPIC動かしても
命令サイクルは揃わないんじゃねえの?
89 :
774ワット発電中さん:2012/02/21(火) 23:14:06.43 ID:yxU5tdz7
>>76 1ピンでクロックとリセットタイミングを同期なんてできないでしょう
外部オシレーターの2ピンと同期用の1ピンの計3ピンを使わないと完全な同期は無理なんじゃないの
リセット前後は超低速なクロック(10Hzとか)を与えてバラつきを抑え
起動した位でクロックを通常に戻せば複数で同期できないかな。
>>89 そんなことない
アプリケーションノートにもあった
>>87 苺にボード付きで売ってるけど試したら良かったよ
たとえ同じクロックソースから動かしても1命令サイクルは4クロックだから
複数のPICの命令サイクルのスタートを確実に揃えるのは無理でしょ
94 :
774ワット発電中さん:2012/02/22(水) 03:21:49.74 ID:yg6LDzCy
2つのCPUを同期させるならクロックを共通にしてリセットもクロックに同期
させればできる。あと、I/O入力もクロックに同期させてからPICに入れない
とだめ。
96 :
774ワット発電中さん:2012/02/22(水) 07:50:33.81 ID:yg6LDzCy
97 :
774ワット発電中さん:2012/02/22(水) 16:04:22.89 ID:UlfU/KO6
16F688は入門者には最適です。14ピンという数が絶妙でこれでかなりのものができます。
しかし、アセンブラ言語によるプログラムがサイトに見あたりません。
そこで自分でブログを作ってプログラム公開しました。まだ数が少ないけどね。
よかったらどうぞ。超かんたんなプログラムしかないからね。
http://seclus4.blog.fc2.com/
ちょっと質問。
1msのインタバルタイマを作りたいとき、クロックソースが1MHzとしてCCPRの設定は1000とするのが正解なのか999とするのが正解なのか?
H8系は999が正解なのだが、PICは違う気がしてきた。
まだ基板が出来上がってないので実験出来ませぬ。
データシートひっくり返さないと断定できないけど-1だった気がする(ちがったらすまん)。
>98
-1の999。
16F877Aで昔 作った時計のソースが 12.8MHzをプリスケーラ1:8で
CCPR1H に 156 , CCPR1L に 63 (156*256+63=39999)設定で
ちょうど1/10秒割込みできてる
確か、MPLABのSIMだとバグっていたのか40000でちょうど良い
値なのに、実機で動かすとどんどんずれて困った覚えが
全くの初心者だが、MIDI入力からの音程をその周波数に対応したパルス間隔(矩形波)に変えて4つ出力するにはどのチップが最適ですかね。
膨大なマイコンの中から性能のどの点を見て適するものを選んでいくかという過程が知りたいです。
お願いします。
>>101 >全くの初心者だが、MIDI入力からの音程をその周波数に対応したパルス間隔(矩形波)に変えて4つ出力するにはどのチップが最適ですかね。
一番安い奴。
いや、2番目に安いほうがいいと思う
ぜんぜんわからんw
>>101 まず、MIDI入力を処理するのにUARTがあると便利。
つぎに、矩形波を4つ出力するために、波形出力機能の付いた16ビットタイマーが4本あると便利。
なので、秋月で売っいるマイコンだとSH7125とかRX621みたいな、1000円弱のやつが16ビットタイマーをたくさん持っているのでプログラムが簡単。
出力する矩形波の周波数が数十キロヘルツ程度の低い周波数なら、16ビットタイマー1本を使って、ソフトウェアで波形出力するのもいいでしょう。
その場合なら、UART付きのマイコンならどれでもいい。100円くらい。
初心者なら評価キットの様なマイコンボードで試作してからチップの選定やハードウェア設計。
評価キット(学習ボード)は何回でも再利用出来るので試作に便利ですよ。
PICで
>>80みたいなXBeeを使ったラジコンやってる人いる?
MIDIってまだ31250や38400bpsなのかな
全くの初心者ならArduinoがいいんじゃないの
似たような作例も多そうだし
Arduino MIDIでぐぐってごらん
アルデーノは、そんなにいいですか?
Arduino MIDIでぐぐれと言えるところがいい
もちろん、PIC MIDIでぐぐれとも言えるわけだが、
全くの初心者相手なら自重しようという気持ちにもなるわけだよ
>>99-100 ありがとうありがとう。
ついでにもう一つ。
PWMを10ビット分解能で使う(PR2がffH)とき、
デューティ設定3ffHは100%?それとも99.9%くらい?
デューティ設定0は0%? それとも0.1%くらい?
0%デューティと100%デューティのどちらか、あるいは両方とも
例外処理としなければならないのかなという質問。
アートワーク終わってから装置の仕様が若干変わって、
回路図まで逆戻りでござる。
汚いニーモニックだなぁ
>>112 その調子ならどうせ改版を繰り返すので試作機をオシロで測ってから対策
たしかAVRのPWMだt、、ここPIC専用か
>112
PWMで0%はできるけど100%は無理だったはず。
datasheetでも周期が
(PR2+1)*4 *Tosc*TMR2PR
パルス幅が
(CCPR1L : CCP1CON<5:4>) *Tosc*TMR2PR
なので
PR2=0xFF=255 , (CCPR1L : CCP1CON<5:4>) =0x3FF=1023 に設定しても
1023/((255+1)*4)≒99.9%
質問ですがアセンブリ言語とC言語で同じ処理をさせた場合
実行速度って変わってきますか?
体感的には分からなくてもマイクロ単位で見た場合アセンブリ言語のほうが早いとかあるのでしょうか?
変わる場合もあるし、変わらない場合もある。アセンブラのほうが遅い場合もある。
実際にコードを書いて、シミュレータで速度を比較してみたらいいよ。
>アセンブラのほうが遅い場合もある。
それはないだろ。
規模のデカいマイコンだと、アセンブラで書くと毎回予測分岐失敗するとかで、
コンパイラの最適化のほうが強い場合があるらしいが
PICでそんなことがあるのか? という話だな
カンニングできるしCじゃ書けない最適化もできるし
どこを省いていいか分かるのは書いた本人だけだし
>>121 簡単な構造のPICでそんなことは絶対にない
アセンブラはわざと回り道するように書かない限りC言語で書くより速い
>>123 コードを短く見やすく書くとアセンブラは思うほど速くない。
例えばCで速度重視の最適化をするとswich文はコンペア、ジャンプの固まりに展開される。
アセンブラだとコンペア値と処理ルーチンアドレスのテーブルを作って参照ループにするほうがコードが短くなってメンテナンス性もいいしデバッグが楽なので良くやる手法だがベタ展開よりは遅い。
割り込みルーチンとかの速度重視の部分はコードが汚くなってもジャンプを減らしたりメモリーアクセスを効率的に配置したりするのでC言語よりも速い。
>>124 >コードを短く見やすく書くとアセンブラは思うほど速くない。
簡潔に見易く書くのも、可読性捨ててでも速度を重視するのも、どっちらにも
プラグラマの判断で対応できるのがアセンブラだろう。何言ってんの?
>>125 そういう説明を書いたつもりなんだが、、、、
↑id変わったみたい
124です
>124
>アセンブラだとコンペア値と処理ルーチンアドレスのテーブルを作って参照ループにするほうがコードが短くなってメンテナンス性
実際 PIC16Fのアセンブラでどんな処理ルーチンになるの?
積算温度計を作ろうと思っているのですが、
A/Dで取る温度センサーと1-wireとでお勧めは?
1-wireだと通信が面倒そうだしA/D入力だと基準電圧や調整が面倒かな
>>132 積算温度計って、何?
温度を積算するの?
桜の開花時期や、杉花粉の飛散開始時期などは
あるタイミングからの積算温度で予測できるようだから、
そういうのに使いたいんじゃマイカ。
積算温度が一定レベルに達するとサクラの花が咲くとか
イチゴの花が咲くとかじゃないの
そもそも↓これが一番面倒ではw
>積算温度計を作ろうと思っているのですが
積算するだけじゃん
面倒ならやめてしまえばよい
市販のロガーでも買えば?
>>138 ロガーではパソコンに取り込まないと積算できないでしょ
電池で動く小さいのを作りたい。
例えばスイカなら開花から1日平均温度が20度以上の日を足して1000度で食べ頃
種もみなら15度から20度の範囲で積算100度で芽が出る
A/DならLM35DZでダメな理由はないのでは
その用途では1wireよりはI2Cインターフェースの温度センサのほうが簡単で良いのではないか
とかですかね
>>140 i2cにしました。LM92。
ありがとう
142 :
774ワット発電中さん:2012/02/25(土) 05:45:12.10 ID:c/5Iw//r
イマダニアセンブラ虫が沢山
オモシレ
デバッグモードで書きこもうとすると
The following memory regions failed to program correctly:
Debug Executive
Programming failed
と表示されて書き込めないのだが、これの原因って何?
環境はPickit3と30F2020
プログラムモードだと普通に書き込める
MPLABは最新の8.84
Pickit3のファーム更新もやった
>>143 プログラムが大きくなって、Debug Executive が使うメモリが足りないのでは?
PORTA,4のスイッチは内部プルアップされています。そのスイッチを長く押す場合(一秒以上)
と短く押す場合で二つのプログラムを選択したいと言うことで
MAIN
SLEEP
GOTO MAIN
INTR ;割り込み発生
CALL TIME1S ;1秒待つ
BTFSC PORTA,4 ;1秒後も押されているかかどうか調べる
GOTO A_PGM
GOTO B_PGM
A_PGM
BSF PORTC,1
CALL TIME1S ;1秒待つ
BCF PORTC,1
BCF INTCON,RAIF
RETFIE
B_PGM
BSF PORTC,3
CALL TIME1S ;1秒待つ
BCF PORTC,3
BCF INTCON,RAIF
RETFIE
ところが、うまくいきません。
短押しの場合>A_PGMが実行される
長押しの場合>B_PGMが実行され、その後なぜかA_PGMも実行される
なぜ長押しするとAとBのふたつのプログラムが実行されるのか理由わかりますか?
>>145 うわ、余白がなくなってる。書き直しますので忘れてください。
夜更かしするからそんな事で悩む
寝ろ
俺も寝る
余白 → TAB ね
>>145 プログラムゃんと読んでないけど
チャタリングじゃないの?
長押しで信号offする前に手を離すと大丈夫じゃない?
そうなるならば、 割り込み解除で、まだ押されていたら再度割り込みが入るからかな
>145
短押しと長押し区別したいなら、1秒後に確認じゃなくて
押してから離すまでの時間で区別した方が良いと思う。
0 割込み発生(押し)
1 カウンタクリア
2 適度にWAIT
3 カウントアップ
4 SW押されたまま →2へ
5 カウント値で判断
とか
>>150 速報。
回路間違い。現物はVusbはVddと切れている。
ソースはツイッター。
>>152 押して離すと反応するSWは個人的に嫌い。
同じSWでも離した時に反応する様に使うと痛みが早いのは押した時に反応がない為に人は無意識に押す力が大きくなる
>>153 >回路間違い。
もっと正確に言おうよ。
回路図 なのか 現物の回路 なのか
言葉足らずだよ。
156 :
143:2012/02/26(日) 14:32:55.74 ID:vokVD6Ve
>>144 プログラムメモリは1534/4096
データメモリは80/512だからそれはないと思われ
それとデバッグモードに移行した初回だけPK3Err0040が出てた
ヘッダないとデバッグできないってこと?
>>145 ピン変化割り込みだよね?
だとしたら最初の一秒ウェイトする前に、まず立ち下がりかどうか調べてから、以降の処理をする様にしなきゃいけないと思う。
出ないとスイッチ離したときの立ち上がりを拾うのでは?
秋月のUSBのやつは機能制限付きらしい
なんじゃそら
これならAVRの板のがいいな
あ、USB-IOとしてじゃなく
普通にファームウェア焼いて使うなら別に問題ないから誤解しないように
何の話だ。
>154
押した瞬間に反応する様にした場合、どうやって短押しと長押しの区別をつける?
一旦、反応してから長尾氏だったら
その反応するしか出来ないぞな
>>161 早く離したらオフで反応。
長押しされたら離されなくても規定時間で反応。
加速系の操作なら押されて直ぐに反応。
そのまま長押しされたら加速。
キーリピートやモーター、時計設定とかはこの手法
こういうところに出てくるプログラムってdelay関数を使ったようなのばっかり
だな。10ms位のインターバルタイマー割り込み使って、状態遷移としてとらえる
ようなプログラムを見たことない。
ポート余ってるんなら1秒の時定数持たせた入力を余分に作って
状態01か11で判断すれば、チャタリング対策にもなって一石二鳥かと。
掲示板に書ける行数に限りもあるし仕方ねんじゃね?
>166
インターバルタイマー割り込み使う位なら、ピン状態変化割込みで
ONの割込みで内蔵のタイマをクリアだけして戻り、OFFの割込みでタイマ値読んで
判定して各処理実行して戻りの方が無駄な割込み発生せずシンプルと思うけど。
まあマイコンの場合 目的さえ達成できればMPU時間全部使えるんだから
delayでもタイマ割込みでも何の問題も無いけど
delayは楽でいいけど、プログラム規模が大きくなるとスパゲティになりやすい
割込みは良くできた機構なので良く理解して多用していきたいと思ってる
171 :
774ワット発電中さん:2012/02/27(月) 00:38:20.19 ID:DhkCB6dD
>>166 素人の最初の一歩としては仕方が無い。
例えば苺で売ってるガイガーも同じだけど、計数するのとBEEPを鳴らすのが同時に出来ないプログラム
だからBEEPを鳴らすと計数値が微妙に減るw
もちろん、そういう素人プログラムだから、BEEP以外にも計数漏れがあるかも知れず値は当てにならない。
よくタイマーをフリーランさせてピン変化でカウンタ値を
読み取ったりしてるのがあるけど、それでは発展性がない
ピン変化はスリープから復帰に使ったら停止させて、
後はタイマー1本でいいんだよ
割り込み負荷も一定にできるし
Nchを同時にとかの処理を設計すると自然とそうなる
>計数するのとBEEPを鳴らすのが同時に出来ないプログラム
だせぇww
PIC16でタイマ1個でマルチタスクを実現するにはどうすればいいか
1日でいいから真面目に考えるべきだと思うよホント。
一度雛形が出来れば他のマイコンにも応用が利く
>>171 苺のガイガーってPICじゃないよ。
技術力ゼロな、苺クレーマーの「℃玄人さん」www
>>156 7.3 TOP 10 REASONS WHY YOU CAN’T DEBUG
コードプロテクトしているとか?
176 :
774ワット発電中さん:2012/02/27(月) 11:51:48.80 ID:W+GTIP9s
>>173 >1日でいいから真面目に考えるべきだと思うよホント。
てか、苺のHP見るとソフトを生業としてるみたいなんで、24時間365日考えているはずなんだけど
お粗末過ぎる現実www
Cしか出来ない奴みたいな愚かさだなw
177 :
774ワット発電中さん:2012/02/27(月) 11:55:23.01 ID:W+GTIP9s
>>174 PICかどうかなんて問題無いし、もし、そんな当たり前のプログラムさえ組めないのが
チップの制約ならPICに変更するべき。
所詮、問題点さえ自分で理解出来ない℃素人って事だよ。
>>171 どのような検証をしてそう思った?
上から目線で奴なら検出したらbeepして次の検出待ちするようなシーケンシャルにしているだろうと妄想?
>>177 なんでPICなんだよ
高級言語に不向きでアセンブラはもっと不向きだぞ
>なんでPICなんだよ
スレタイ
181 :
774ワット発電中さん:2012/02/27(月) 14:17:10.59 ID:W+GTIP9s
>>145を動かすとしたら
割り込みに入った直後は10msくらい待って読み直す。押されていなかったらそのまま戻る、、か
簡単な演習でも割込みをメインループにする発想なんてもうできねぇわ
急に内容ガッタガタなスレに成り下がったな。
>>183 ゆとり教育の成果のあらわれなのか、どうも最近は、基本的なコトを知ら
ずに電気やソフトいじってる香具師が多い。
まだ個人の趣味ならいいが、それを仕事でやってたりする。
もはや驚きを通り越して怖い。知らないって最強かも。
悪いロートルは批判と嘆きと細かい事に口を出す。
良いロートルは基本は押さえて放任
187 :
774ワット発電中さん:2012/02/28(火) 01:58:27.61 ID:xEx8sTLK
>177
こんな所にガイガースレの℃玄人が。
くやしいのう。
188 :
774ワット発電中さん:2012/02/28(火) 06:44:57.38 ID:j7STJjXk
歳とると昔から若者の行動を批判する
最近の若いものは、、、
若い人間の行動は社会に依存する
その社会を形成したのは、歳よりの人達
未熟さを批判自慰行為する暇があったら、教育なさい見苦しい
ま、他人を見下す事で己の立ち位置に満足する人間は
技術屋に多い
歳とって時代に取り残され新しい物事を否定批判しているうちに
まわりに誰も居なくなる
そんな人達沢山見てきた
ある意味、そういう醜い姿を正す教育者がその人達にはいなかったわけだ
反面教師也
189 :
774ワット発電中さん:2012/02/28(火) 10:14:17.85 ID:rGpFOvhL
苺には年寄りも若いのにも碌なのがいないって事か
16F88の場合割り込みピンの選択で INT0IEとRBIEがあります。
INT0IEはRB0ピンだけその他のピンとは独立して使えるようになってます。
なぜRB0ピンだけ独立して使えるようになってるんですか?
191 :
774ワット発電中さん:2012/02/28(火) 17:18:59.58 ID:jHkSvKW1
そのほうが便利だから
使い道が違うから
昔のPICはINT0しかなかった。互換性のために残してる。
今は利便生のためにポート割り込みが実装してある。
シュミット入力かそうでないか
指定エッジのみか、変化したらとにかく割り込み発生するか
196 :
774ワット発電中さん:2012/02/28(火) 21:49:26.93 ID:9vYuoOJT
>>194 INT0IEは別名「外部割り込み」
RBIEは別名「変化割り込み」
外部割り込みは基本的にパルス入力用
1つのピンと1対1で結びついている
シュミットトリガー入力になっている
変化割り込みは一つの割り込みが複数ピンと結びついている
基本的にボタン入力用。スリープ解除用途とかに便利
外部割り込みは「立ち上がりエッジ」もしくは「立下りエッジ」のどちらかのみに反応することができる
変化割り込みは「立ち上がりエッジ」「立下りエッジ」をそもそも区別することができない
どのピンかも区別することができない。実際にポートの値を見る必要がある
変化割り込みで監視されるピンはチップによってはマスクレジスタによってカスタマイズできる
197 :
natu:2012/02/28(火) 22:29:02.00 ID:EPXp/O4G
仕様書から読み取れないので教えてください。dsPIC30F3010です
UARTの送信割り込みで1文字をバッファーに書き込んでtxBuff.writeを+1
した後、IEC0bits.U1TXIE=1をしてます。
void ISR _U1TXInterrupt( void )
{
if ( txBuff.read == txBuff.write ) {
IEC0bits.U1TXIE = 0;
}
else {
IFS0bits.U1TXIF = 0; //これを@の行へ移動するとU1TXIFが出なくなる
U1TXREG = txBuff.buff[ txBuff.read++ ];
txBuff.read &= kBuffMask;
@
}
}
送信処理が終わってU1TXIF=0が@に有る時は、U1TXIEが1でも割込みが掛からなくなりました。
上記の状態だと正常に動作します。これで安心して良いでしょうか?
>>197 ダブルバッファだから書き込んだ瞬間に次の書き込み可能になるからじゃね
199 :
natu:2012/02/28(火) 23:21:31.25 ID:EPXp/O4G
>>198 ありがとう。
そうか、書き込んだ瞬間TXIFが1になるのにプログラムで0に
してしまうと2度とTXIFは、1にならないのか。
「送信できますよ」レベルでセットされないでエッジでセットされるのね。
ありがとう。
200 :
natu:2012/02/28(火) 23:23:42.21 ID:EPXp/O4G
大事な事なので「ありがとう」を2回書きました...
スレ違いかもしれませんが、下の例のように文字の左側に余白をつくるにはどうすればいいんですか?
Jane Styleで書いてます。
if ( txBuff.read == txBuff.write ) {
IEC0bits.U1TXIE = 0;
どこの間抜けだ、何でもかんでも答えるんじゃねえ。
基本的にブラウザは空白(0x20 スペース)をサプレスします
よって別の空白(全角)を使えばインデントを入れたコードもちゃんと表示されます
プロ並のスレ住人にも見てもらいやすくなるでしょう
こう書けばスレ的にも良かったのでは?
■マ
■■イ
■■■コ
■■■■ン
どっかのソース専用あぷろだを使えば良い話
コピペした時に謎のエラーが出るけどな
ブラウザのテキストボックスで全角スペースの数を調整しても思ったような
表示にならない。Windowsならメモ帳(notopad.exe)で調整してから書き込めば、
うまくいく。
そんなもんは各環境のフォント依存だ
上手く表示できてるソースを探して、如何にしてスペースを入れてるかを調べればいいだけ。
2chに貼ること前提なら、AA(アスキーアート)エディタ使えば実表示の確認しながら調整も可能。
その程度の発想すら出てこないのに、なんでこんな板のこんなスレに来てんだか…
>>212 言いたい事はわからんでもないが、別にAAなんぞ知らない住人がこの板にいてもいいんじゃね?
この板の全ての住人が回路図AAスレ住人だったってわけでもないんだしw
手書きの図面取り込んでうpしよ!
ちょっとpicとは直接関係ないんだけど、
if (!(n--)) { 〜
ってどう機能してるの? n=0の場合と同じ?
216 :
natu:2012/03/01(木) 23:13:13.49 ID:lnn4rTeE
>>215 そのまんま、nを評価して0だったらif{ }が実行されるけど、その前にnを-1するでどうよ
こういう質問とは違うのかな?
それは--nだ
評価したあとに、-1 か。
評価以外で使わないなら問題ないな。
219 :
215:2012/03/01(木) 23:30:58.84 ID:6+Thgj28
プログラムから察するに、nをマイナスカウントしてってn=0になったら条件分岐って感じなんだよね
書き換える前にデバッグして動きを確かめておくべきだった・・・
if(n){
n=n-1
}else{
n=n-1
〜
}
等価コードはこんな感じか
>>221 そんな感じだけど
アセンブラに展開されるのは
こんな感じのソースをコンパイルされたコードになる
wkreg=n;
n=n-1;
if(!wkreg)
PICKIT3買ったんですが、12F683,12F675が書き込みできないんですけど
なんかの間違いでしょうか。
あとPICKIT3に対応しているPICを調べたいんですがどこに資料ありますか。
>>223 既に自身のパソコンの中にあるはずだよ。
ProgramFiles/Microchips/MPLAV IDE/Readmes/DeviceSupport.htmとかに載ってる。
パス名はちゃっちゃっと手雨位置したので、それっぽいフォルダ名を探して。。
表の右端にあるPK3P/PK3Dが該当箇所。マウス合わせると意味がポップアップされる。
手雨位置・・・手打ち。。
書き込みできない場合、表示されるメッセージを読むとヒントになる。
ブレボで単独書き込みやってるか、ターゲットに実装した状態で行うのか否か。
ターゲット回路の影響や配線間違ってる?電源供給の設定等、チェックポイントは幾つかあるよ。
シンプルにブレッドボード上に単独書き込み試してみたらどうだろか。。
>>224 ありがとうございます。12F683,12F675ともに書き込みできることになってるんですね。
230 :
774ワット発電中さん:2012/03/04(日) 12:49:56.55 ID:tJW6tmZM
ああそれ、ガイガースレの℃玄人ってやつのたわごと。
答えなんか無いよ。
並列処理で思い出したが、PICの入門書って、大抵その場待ちでタイミング作るソースが載ってるけど、なんで?
初期のちーさいPICでちーさいプログラムを前提にしてるとかそのへん?
スタックねぇからな
>231
わかりやすいし、プログラム作るのが楽だからでしょ。
単に1Hzの信号出すだけとかだったら、割込みやCCPを設定して使うより楽だし
℃玄人さんならPICなんか使わないでバイポーラのCPUを使いそう。
235 :
774ワット発電中さん:2012/03/04(日) 22:32:40.05 ID:iZW4yVMz
>>231 著者も℃素人なんだろ。
初期のPICは16C54、55だけど、製品にするのにそんな℃素人っぽい組み方した事は無いな。
真面目に設計すればそんな方法で使い物になる筈は無い。
Lチカくらいなら問題ないけどね。
>>232-235 メーカーの提示した設計思想がそんなんで、著者はそれに従った、とかそんなんでもないのか。
コンパイラに他所では見かけないディレイとかあるし、わりと不思議だったが…
>>235 それって、
後×氏は℃素人
と言ってるのと一緒じゃんw
>>235 旧PICは基本多重割り込みできないし、コール・リターンもできないから
適材適所ってことでしかないと思うが…
タイマで待つより、ループで待つほうが簡単だし。
>>235 割込みが無いCPUで割り込みルーチン作るなんてさすが℃玄人さん。
WDTを割り込み替わりに使えない事は無いがベタ書きで対応出来るものをややこしく作る為に時間をかけるのはバカの自己満足
>235
入門書に色々詰めん込んでも、初めての人に理解できるわけないだろ。
なんで入門書に、理解しやすいように素人っぽい組み方書かれると非難されるんだ?
おまえの言ってる事って中学生が小学生の教科書みて幼稚だなと著者までバカに
してるのと同じだろ
241 :
774ワット発電中さん:2012/03/05(月) 00:11:22.50 ID:9LJrtQdA
>>236 当時の代理店が言うには簡単なロジックの置き換えとか言ってたな。
でも普通に液晶表示のサイリスタ式PID温調機とか作ってた。
ボタン押してる間、ヒーターがONになりっぱなしなんて
苺のガイガーが、BEEP発生時にカウントしない位恥ずかしいw
>>237 後関本は持ってないから℃素人かどうか俺にはわからんw
>>238 コール、リターンはあったと思うぞ。
ループで待つほうが簡単かどうかは、何を作るかによる。
>>240 素人っぽい組み方じゃ無くて、℃素人の組み方な。
「ぽい」なんてつけると、まるでまともな製品にも同じ組み方のプログラムが
入ってると勘違いする℃素人が出てくるだろ。そんなプログラム組んでるのは
しょっちゅうリセットかかるようないい加減なプログラムをリリースする苺くらいのもんだ。
そもそも入門書だからといって、℃素人の組み方だけでお茶を濁して良い訳無いだろうに。
z80の頃なんかは入門書にもアルゴリズムまで解説してる本があった。
今の本は殆ど同じ様な横並びで低レベルの内容。℃素人の本を読んだ℃素人が本を書いてるからだろ。
割りとどうでもよいチラシの裏に書いとけって感じの情報だなw
243 :
774ワット発電中さん:2012/03/05(月) 00:19:08.67 ID:9LJrtQdA
>>239 Lチカしかやった事無いくせに、なんでもLチカと同じレベルでしか
考えられない℃素人乙w
℃素人の典型的な例だなwww
新しいところに仕事がどんどん取られちゃってるのかな?
Lチカって何すかw
そして、Lチカだけがマイコンじゃないんだけどw
246 :
774ワット発電中さん:2012/03/05(月) 01:14:06.45 ID:9LJrtQdA
半年ROMれw
247 :
774ワット発電中さん:2012/03/05(月) 02:27:36.36 ID:uNkWkGgZ
>>246 ℃玄人さん、あなたがROMることこそ、おそらくみなさんが望んでいることだと感じます
249 :
774ワット発電中さん:2012/03/05(月) 08:56:59.47 ID:ttHr610P
Lチカがわからないならこのスレは不向き。
初心者スレあたりをオヌヌメする
よし、俺はRAMるわ
>>249 >Lチカがわからないならこのスレは不向き。
LEDチカチカならわかるけど、
変な省略するからわからないんだよ。
バカな省略語を使って得意顔するの、やめよう
253 :
774ワット発電中さん:2012/03/05(月) 13:02:33.86 ID:KgWDoWho
>LEDチカチカならわかるけど
wwwwwwwwwwwww
オッサンが寒い略語を使って若者に裏で失笑されているのはよくある例
Lチカ…巻き戻ってみたら、1スレに1回出るかどうかだが、けっこー前から出てるね。
割り込み無しで並列動作しようとすると、メインループでカウントして、その数をもとに条件分けして…
すべてのルートがほぼ同じ時間になるようにすれば…
すくなくとも、時間制度なんかどうでもいいって仕様には使えるだろう…
そんな事しなくても、タイマーをフリーランで回して、時々確認して良さげなタイミングで
何かする(LEDのOn/Offとか)ようにすれば、割り込み無しでもそこそこの精度出るし
ステップ数える必要も無い
まあ、タイマー使うなら割り込み使った方が楽だけどw
擬似マルチタスク構造なら割り込みやソフトからのスタック操作は別に必須じゃないもんね
CPUからタイマレジスタ覗けて実行位置や時間を保存しとくRAMがタスク数×2〜3バイトほど空いてれば基本おk
Lチカ、デパチ
デパチ。。なんだろう。
Lチキなら知ってるw
>>258 >デパチ
デジタルパチンコの略ですか?
デジタルパターンチェンジかな。
まったくわからん。
そんな省略語、使うな、ボケ
デジタルでパチパチ入力ってのかなぁ。Lチカが出力の基礎として、入力側の基礎を表現。
いずれにしても紛らわしい。
デパチ・・・カ?
疑似マルチタスクならsetjmp,longjmpでできる
//job1,main,job2,main,job1・・・と順番に実行
#include <setjmp.h>
#define TASKS 2
jmp_buf tcbmain[TASKS];
jmp_buf tcbjob[TASKS];
#define task(n,adr) { if( setjmp( tcbmain[n] ) == 0 ) { adr();}}
#define ext(n) { if( setjmp( tcbmain[n] ) == 0 ) { longjmp(tcbjob[n],1);}}
#define DoEvents(n) { if( setjmp( tcbjob[n] ) == 0 ) { longjmp(tcbmain[n],1);}}
void job1()
{
while(1) {
:
DoEvents(0); //タスク切り替え
:
:
}
}
void job2()
{
while(1) {
:
DoEvents(1); //タスク切り替え
:
:
}
}
main()
{
task(0,job1);
task(1,job2);
while(1) {
ext(0); //task1実行
ext(1); //task2実行
}
}
ローカル変数は使えない気がする。
267 :
774ワット発電中さん:2012/03/06(火) 01:46:56.93 ID:NUzk73TQ
℃玄人召還呪文としてはよくできてる。
>>264 呪文はもういいから、産業で解るように書くか動画でも貼ってくれ。
1msインターバルタイマー割り込みからプログラムを周期起動してやれば
スタックを使わずにマルチタスクできる。
20MHzのPICで1msあたり5000ステップ実行できるから余裕。
1ms周期・・・・・A/D変換
10ms周期・・・・LED点滅、キースキャン、タイマー
100ms周期・・・タイマー
1s周期・・・・・・・タイマー
>>269 自前で簡単にタイミング作るときはソレが普通なんじゃないの?
割り込み無しって
>>239あたりからの流れかな?
まあ割り込みなくてもフリーランタイマーがあれば、空ループで時間切り出しできるけど。
>>269 順次動作するような制御でタイマーイベントドリブン的な作りは、しんどい。
チップは安いんだから
1プロセス1チップでいいよ。
>>271 逐次やりたいことの後ろに、次にいくかの判定があるのは同じだし、その判定後に毎回抜けるだけでいいんじゃないの?
>>271 状態遷移で書くのではだめなのでしょうか?
>270
割込み無しは >235で16C54,55で"その場待ちでタイミング作る"
素人の組み方した事は無いと豪語する人がいたから。
インスト12bit幅品は
・割込み無し
・スタック2段まで
16C54/55はROM512,RAM24/25
TMR0がある位(オーバーフローしても割込も無いしフラグも立たない)
連枝のラダーでおk
277 :
774ワット発電中さん:2012/03/07(水) 13:29:54.08 ID:7Y8uAlH7
インスト12bit幅品 って、何?
278 :
774ワット発電中さん:2012/03/07(水) 14:58:00.83 ID:T6lmC5OP
>>277 ベースライン・アーキテクチャ(Baseline Architecture)のことだよ。
プログラム・メモリの幅が12ビットです。
>>277 インスト→インストラクションだな。
変な略語より「命令」のほうが短い。
死んだと思って数年前からジャンク箱に入っていたPIC12F510
試しに書きこんでみたら正常動作した
当時はなんで書きこめなかったのだろう・・・
愛だよ愛
16F876Aで128x64液晶に24FC256に美咲フォント入れて
やっとShiftJISコード全領域表示できるドライバができた。
これから同期シリアルスレーブで18F4550から制御する。
間違い。24fc512だった。
32kBじゃ美咲フォントは入らん。
プルアップ抵抗はだいたい10KΩが多いようです。
SLEEPのときの電流をできるだけすくなくするため、プルアップ抵抗を、
1MΩぐらいにするなんてのはどんなもんでしょうか。大きすぎますかね。
285 :
774ワット発電中さん:2012/03/09(金) 21:07:15.73 ID:uUASTmQ1
止まってる時、励磁電流が流れてモーターも熱くなるし電気ももったいないから
励磁をストップさせようと思ってプログラム変更したら最初の1回は動くんだけど
その後動かなくなって、何が悪いのかなあと思って調べたら
ビットの順番をファーストMSBとファーストLSBを逆に考えてて
思いっきりHブリッジでショートさせてたわ
多分、電源電圧が下がった瞬間にブラウンアウトリセットが掛かって
ポートがLOWになるからそれでショートするのが一瞬だけで済んでたんだと思う
ヤバかったよ、まったく
電流が上のトランジスタから下のトランジスタに一直線に抜けてショートしてたんだから
>284
ピンをアナログ入力設定にしておくと消費電力が少ないとどこかで読んだ覚えがある。
そのピン入力でスリープから復帰するなら使えないけど。
>>284 Sleep中に電流が流れてないなら10Kでもいいんじゃね
>284
そういう感覚は大事にしたほうがいい。
洩れ電流によってHになるべき電位が想定外に下がってしまうということの他に、
出力A → プルアップ → 入力B
で、AがLからZに切り替わった時、B端でラインがHになるまでに時間がかかるようになる。
プルアップ抵抗 1MΩ × Bの入力容量 10pF
とみると 10us位のオーダーで信号が鈍って立ち上がってくる訳で
1MHz位で動いてると遅延が気になり出す頃合。
>>284 Sleep中って、どの経路で電流が流れるの?
pull-up抵抗1Mでもいいけど、ノイズにとても弱くなるのは自明。
そういうときは、1Mにパラに「10kにCの直列」を付ける。
ダイナミックには10kで、staticには1Mとなる。
Sleep中って、ポートの入力インピーダンスが下がるの?
sleep時のポート設定によるよね多分
基本入力にしておくかHiZにしておけば、マイコンへの流入は
小さくできるはずだけど
ポートによっては、sleep時強制L出力になったりするやつもあるから
そういうのは注意だろうけど
だよね。
sleepに入る前にdirを適当に変えておけば、何か対策できるような気もする。
ただ、出力をHi-Zにしてしまうと、出力機器が動作したりして危険。
安易にpull-up抵抗を上げるワケにはいかないと思うけどなぁ。
スイッチとかエンコーダーなど、自分だけの範疇での機器なら、
pull-up抵抗のcommonそのものを自分のポートでon/offして、電気をケチるのは
見たことがある。
何を作ってるのかは知らないけど、プルアップ電流を気にするくらいだから電池電源だろうか。
必要な駆動時間を電池容量と消費電流から計算するのが先では。
ノイズの影響を無視できそうな上限が大体100KΩくらい。
しかし単三アルカリ2本で電圧を3Vとすると10KΩ1本だと4000時間以上持つ計算になる。
sleep時の消費電力下げる努力をしたことあるけど、PIC12F1822は結構電流流れるんだよな。
使い勝手のいい石なのに。
PIC12LF1822なら消費電力下がるんだが、電源に5V使えないのが悩ましい。
PICって、入力がTTLということになっているけれど、あれって、thresholdが1V
付近と言うことだけなのかな。
もし厳密な意味でTTL入力なのであれば、プルアップ抵抗に10kΩより大きなものを
入れると、誤作動する可能性が在ると思うけれど。
内部プルアップ抵抗を使っておいて、sleep時にそれをオフにするのでは駄目なの?
PICに限らすCMOSの素子で入力がTTLコンパチといったら、スレッショルドが
TTLと同等ということ。
VIL=0.8Vなのにスレッショルドが1Vってあり得ない。1.4V位でしょ。
データシートによると、VIL=0.8Vの規定は4.5<VDD<5.5の場合で、2.0<VDD<4.5の場合は0.15VDDらしいよ。
5Vで使うときのtypicalなthresholdは、1.1Vぐらいだそうな。で、1V「付近」と書いたのだけど。
それより、「PICに限らすCMOSの素子で入力がTTLコンパチといったら…」ここの部分、
これが本当なのかどうかと言うことなんだけど。どこかに書いてある?
そっか、Input Leakage CurrentがMax±1μAだから、CMOS並という解釈で良いのか。
スマン、お騒がせした。
Vddによって、VILが変化するのはなんでだろうか。
単にMOS FETのGateがポートに出てくるなら、VgsはVddに非依存かなと。思う。
MOS FETのGateがポートに出てるだけじゃないってことさ
>>299 なんで?普通のCMOSの石(74HC04とか)でも、VILはVDDに依存するよ。
N-MOSとP-MOSと両方使ってるからなんじゃない?
302 :
774ワット発電中さん:2012/03/11(日) 11:19:55.99 ID:iLq/9KJH
MPLABXに移行しようと思っているんだけど、使用感とか聞かせてもらえないでしょうか。
>>302 いいと思うよ
起動に少し時間かかるけど、使用時は特に重さも感じない
PIC FLASH(初歩のPIC)以外で
サイトだけですっと頭に入り勉強できる有意義なサイトないですか?
305 :
774ワット発電中さん:2012/03/12(月) 00:44:17.07 ID:RUrOHn9i
MPLABのシミュレーションでも大丈夫かと。
秋月の新商品に出てる18F25K22、18F23K22に対して
・Flash 4KW→16KW
・SRAM 512B→1536B
・EEPEOMは変わらず
・値段 160円→170円
そろそろ12F・16Fから外に出ようかなぁ
作るものによるだろうけど、次は18Fでいいんかね?
割り込みが有るか無いかはどこで見分ければいいのかな?
10Fと12Fは全部割り込み無しでおk?
>>310 10Fは全部なし
12F50xはなしでそれ以外はあったはず(6xxや4桁品は割込有)
見分け方は命令が12bitか14bitか
割込み無しだと、マイコンの使い道として、
だいぶ限定されそうだけど、どうなんでしょうか。
>>309 用途で分ければ良いと思うよ。
電池で動かすとかは12F629や12F675の信じられないスリープ電流も捨てがたい。
超低消費はLFシリーズなどで対応しているが、秋月で買えるというのがミソだし。
新しいPICは多機能な反面、設定レジスターが多すぎる。
昔のは簡単に組めるからよいとか。
ターゲットがマイコン好きなのか、目的を達成したいかの違いで
アプローチが変わると思うけれども、
メジャーなPICは当分ディスコンにならないだろうから適材適所に使えてこそだと思う。
同じ電池駆動だけど数mAのマイコンの消費電流とか基本興味ない人種もいるよね
モーターガンガン回す競技系ロボットバカとかラジコンバカとか
ま、数年前の俺と友人のことなんだが
当時の俺らにはSLEEPにしたりクロック落としたりして
数ミリの電流に一喜一憂する人々が不憫にすら見えたものだ (遠い目
>>311 WDTリスタートとパワーオンを判定できるので割込みタイマーの代わりする事もできる。
>>317 文章のまんまじゃね?
起動直後にレジスタチェックして、起動要因を判別。WDTによるならRAMの内容を信用して処理続行。
>>318 割り込みでなくリセットだから、中断点から再開できない。
どんな状態からでも再開できる工夫が必要だよね。
単純に1巡のタイマーでいいのなら、次のリセットまでに処理を完了させればいい。
定期タスクを起床するような使い方やね。
>311
PIC10Fの中でも 10F320/322は Mid-range の14bit命令、割込みもある。
PIC10F322 ADC(8bit)有,PWM有,0.5Kw,内蔵クロックmax16MHz,他にFVR,温度計,CLC,NCO,CWG
新型のチップだからか新しい機能が盛り沢山
>>320 いつリセットが掛かるかわからない。
だから、単純には、処理を完了してスリープするのが簡単だね。
でも、スリープ中は何もできなし、ウォッチドッグは精確さに欠けるから使いにくいよね。
これは、省電力のために使う機能だろう。
精確さが必要ならタイマを細かくチェックする方が使いやすいかもしれない。
>>322 >これは、省電力のために使う機能だろう。
一度WDTでググってみた方がいいよ
リアルで恥かく前にね
>>322 WDTを定周期タイマの代わりに使うのだから正確さは後回し。
仕様マージンに納まっていればそれなりに使える。防犯用のランプ点滅とか、のんびりした物なら問題無いと思う。
定周期処理は次のタイミングまでに処理を終わらせておくのが原則だから、処理中にいつリセットがかかるかわからない様な設計は論外。
>>323 既に、ウォッチドッグとして使っていないからね。
名前だけで、内容まで判断するのは止めた方がよいよ。
>>324 本来のウォッチドッグは、特定ポイントを特定時間内に必ず通るようなプログラムのためのもの。
リセットが掛かるかもしれない場所は想像できても、その通りとはいかないことも想定しなければならない。
異常事態だから最初からやり直しで問題ない場合が多いかもしれないが、それが許されない場合もある。
327 :
774ワット発電中さん:2012/03/15(木) 21:55:22.31 ID:wfTDOCSP
アッセンブラ使って定数領域 cblockを 16F88とかだと
0x20から 0x7Fまで 96バイト使えますが、
それ以上の定数領域を使いたいとき、
やはり banksel使って他の bankに確保するしか
無いんでしょうか?
定数はソースに直で書くと配列を取らずに確保してくれるぞ
330 :
327:2012/03/16(金) 00:14:02.92 ID:xk7gioun
ごめん間違えた
定数で無く変数か
teisu1 equ 0xAA
movf teisu1,W
movwf hensu1
これだと teisu1の方はアドレス割り振られないけど
hensu1の方は 0x20から 0x7F間に指定しておかないと
アッセンブルしたときエラー出るよね?
それはあまりにも初歩過ぎだろ
>330
16F88ならBANK0〜3まで使えるから
CBLOCK 0x20 ;BANK0 0x20-0x7F
AAA
ENDC
CBLOCK 0xA0 ;BANK1 0xA0-0xEF
BBB
ENDC
CBLOCK 0x110 ;BANK2 0x110-0x16F
CCC
ENDC
CBLOCK 0x190 ;BANK3 0x190-0x1EF
DDD
ENDC
で定義して、それぞれBANKSELで使えると思うけど,質問にあってるかな?
BANKSEL AAA
MOVWF AAA
BANKSEL BBB
MOVWF BBB
BANKSEL CCC
MOVWF CCC
BANKSEL DDD
MOVWF DDD
初心者はバンク0RAM以外は使わないほうが良い。
趣味なんだからどんどん難易度を上げて、パズル的な快感を味わうといい
実用の人はCで
こないだのものだけど
PIC15F57でアセンブラの最低限のテンプレを作ってくれませんか?
定義文がまったくわからん。
>>335 まずはタイピングの練習からはじめやう
狙ってるなら構わんけどw
まんま読んだ通りで、エラーじゃないわけだが
とりあえず情報の多い石から慣れることから始めろやぁ。
>>332 CBLOCKでこんなに詳細に指定できるのか
>337
エラーじゃなくてWDTが動作してリセットがかかる状態。
ただそのソースだとCONFIG設定で_WDT_OFFになっているから本来はかからないはずなんだけど…
デバイス選択でも違うのかな
しかしなぜにいまさら16F57?
PIC16F57マイコンデジタル時計キット のソース探してた人?
342 :
332:2012/03/17(土) 00:43:36.55 ID:J2p4VsRU
>340
一応 MPLABでアセンブルもできたしSIMでも問題なかったよ。
16F88はRAM 96+80+96+96=368バイトとけっこう使いでがありそうだけど
1回BANKSEL使うと2命令も使用するのは痛いね。
Enhanced Mid-Range(PIC16F1xxx)はBANKが32個もあるけど、MOVLB
1命令で切り替えられるのは大きいな。FSRで0x2000以降にRAMが
連続配置されたのも良いけど
343 :
337:2012/03/17(土) 05:46:56.64 ID:YT63IrLD
addwf = 76822
andlw = 115062
andwf = 76746
bcf = 0
bsf = 37
btfsc = 4758297
btfss = 4758490
call = 57531
clrf = 16
clrw = 0
clrwdt = 1
comf = 0
decf = 9588
decfsz = 19177
goto = 4830249
halt = 0
incf = 19178
incfsz = 0
iorlw = 0
iorwf = 95885
movf = 4863844
movlw = 57691
movwf = 95886
nop = 0
option = 1
retlw = 57531
rlf = 0
rrf = 0
sleep = 0
subwf = 2
swapf = 67120
tris = 0
tris = 0
tris = 1
tris = 1
tris = 1
xorlw = 38392
xorwf = 9497493
Simulation Execution time on this computer: 4.534 seconds (29495042 instructions, 6.505 MIPS).
こんなのが出たけど、これを前ステップとの変更値のみ色付けするようなやつないの?
毎回ディスプレイプロファイルしてたら疲れるんだけど。。
>343
それって MPLABのDebugger - Profile - Display Profile の表示?
色付けは無いんじゃない、必要性が感じられないし
Debugger - StopWatch はよく使うけど、Debugger - Profile - Display Profile の
どの命令を何回使ったかとかどういう時に必要なの?
何をどうしたいのか?
何をどうして、どうなったのか?
等の情報が少なすぎだよ。 エスパー養成所じゃないのだから
>335
自PCのMicrochipのフォルダ(MPLABをインストールした)を"16F57"で検索すれば
16F57TEMP.ASMと16F57TEPO.ASMがあるよ。
346 :
337:2012/03/17(土) 11:26:41.55 ID:YT63IrLD
347 :
327:2012/03/17(土) 13:08:30.18 ID:694jTYVE
>>332 ありがとう
今まで bank0だけでぎりぎり足りていたので、
実際別バンクに変数領域確保したことは無かったのですが、
cblock命令の前に banksel命令するのかと思ってた
そういう指定方法で bank0以外でも確保できるんですね
1秒ずつ 1分間データーを保存
みたいな使い方するとき、連続して別バンクにするようにします
>347
余計な御世話かもしれないけど、そういう用途ならFSR&INDF(ポインタ)の出番かと
BCF STATUS,IRP ;INDFのアクセスをBANK0,1
MOVLW 0xA0
MOVWF FSR
LOOP
MOVF ○○,w
MOVWF INDF
INCF FSR,f
GOTO LOOP
新型の16F1xxxなら 各BANKの0x20〜0x6Fが0x2000以降に連続配置されてい
てポインタのオートインクリメントもある (0x2050はBANK1の0x20)
MOVLW 0x20 ;0x2050→FSR0
MOVWF FSR0H
MOVLW 0x50
MOWF FSR0L
LOOP
MOVF ○○,w
MOVWI INDF0++
GOTO LOOP
>346
1)STATUS=0x18
PA<1:0>=00,*TO=1,*PD=1,Z=0,DC=0,C=0
Page0,タイムアウトしていない,パワーダウンしていない,Z&DC&Cフラグとも立っていない
2)約2048サイクル過ぎたら
MPLABと7セグ4桁時計表示を連携するようなソフトないの?
>>348 そうなんだよ。俺も言おうとしてたんだよ
>>347←こんなに大量に名前ありの変数が要るはずがないって
>>351 全部宣言して、先頭の名前だけ使ってFSR…というのはおかしくないけど
>350
無い
>335,345
>337,341
>343,344
>346,349
お前の質問は一方的で状況を全く説明できていないから
無意味なやり取りが続くだけだと、そろそろ気づかないか?
半端に答える輩がいるからな…
詐欺師と被害者の関係によく似てるんだなw
355 :
337:2012/03/18(日) 08:07:00.19 ID:vcjNr1pw
多少役にたってるんだけどw
356 :
341:2012/03/18(日) 09:01:31.48 ID:gREn3Kky
>354
そうだな、答えるのはやめておこう。
LinuxのC30ってファイル名はcase-sensitiveだったのね w
Windows環境からLinuxに移ってCan't find xxxxエラーの嵐で焦った。
#include "p24fxxxx.h" <-エラー -> #include "p24Fxxxx.h"
だからWindowsプラットフォーム上でファイルの中に記述するファイル名を大文字にするのは関心しないんだよね
関心は持った方がいいと思います
360 :
327:2012/03/18(日) 18:13:22.63 ID:CKzaezuP
ありがとう
がんばってみる
361 :
327:2012/03/18(日) 18:14:14.72 ID:CKzaezuP
↑ 348さんへ
F1見てたら、PICとか言うヤツが出てた。
質問。
USB内臓のPICでモノをつくってる。
後閑さんの本を買ってだいたい思い通りに
ハードもソフトもつくれたんだけど、
ちょっと調べ物をしていたら今使ってるPICは
少し古い、という情報を小耳に挟んだ。
本(平成18年出版)に紹介されていたのは、
PIC18Fの2455、2550、4455、4550だけだったので、
ピンの数がちょうどよいPIC18F2550を選んだんだけど。
マイクロチップでUSB内臓ということで検索したら
ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=8011&mid=14&lang=en&pageId=75 で118個もヒットした。
一方秋月ではUSB内臓のは
ttp://akizukidenshi.com/catalog/c/cpicusb/ と7種類くらいしかない。
実際、処理速度の面ではもの足りなさを感じてはいるんだよね。
(電光掲示板をつくってるんだけど、ダイナミック点灯にチラツキが出ている)
マイクロチップの一覧では2550はMIPS 12となっているけど、
最高のものではMIPS 80まであるみたいだし。
質問は
・PIC18F2550は今から使うPICとしては古くてもっといい選択肢がある?
(特に処理速度を求める場合はどのあたりラインナップがオススメ?)
・マイクロチップでヒットしても秋月でヒットしないようなPICは何なの?
(マイナー過ぎて取り扱っていないってこと?)
・そういう場合、みんなはどこで買うの?
お願いします。
詳しく知らないけど、2550好き
・目的が果たせさえすれば良し
・気にすんな
・気にすんな
速度が遅いなんて気にしたことないぞ
18F14k50は少ピンでUSB付いててお気に入りだ
スピードは2550と同じ48MIPS
18Fで速度足りなきゃ24Fに行けばいいだけの話
>>367 18F14k50はUSBインターフェース時だと48MIPS出ないんでは?
>>368 48MHz = 12MIPS だねスマソ
370 :
774ワット発電中さん:2012/03/19(月) 00:47:02.11 ID:AsSP7RoY
ただPICのUSB、I/O側を3.3Vに出来ないのが使いづらいんだよね。
ほんとに48MIPSあったらいいのにな〜w
2550だとUARTとSPI同時に使えないから仕方なくソフトでSPI通信したけど
700kbpsぐらいしか出せなかった
>>369 そういう意味じゃなくUSB使うと最高24MHzしか選べないって意味っすよ。
>>371 2550のMSSPとEUSARTって同時に使えるんでは?
RSの3400円ボード欲しい。
>372
MSSP(SPI)のSDO と EUSARTのRX が同じピンみたい
>>372 入力クロック12MHz、PLLx4、Divider00にすればCPUに48MHz入るしUSBも48MHzだけどそれでも24MHzなの?
俺も18F14k50好きだ
14kはいかにも廉価版という感じで、落とし穴にはまりそう
>>374 そそ、18F2550や4550はRC7でSDOとRXが被ってる
最近24FJ64GB0002に乗り換えてそういう悩み無くなったけど
USB付きのGB系は秋月に売ってないのよね
ヘッダ無しでデバッグできるのを選んで使ってる
USBっつってもPCからシリアルポートに見える使い方しかしないんだけどな
18F14k50ならUSBシリアルのチップより安いし、そういう使い方もアリなんだろうな
せっかくフルカスタムのプロトコル使えるんだから、ドライバレスにできるHIDがお気に入り
USBの速度生かしきれないけど…
16Fファミリ使ってきたけど、他のファミリも気になったから30F2020を使ってみた。
最高速度で使ってると、発熱がスゴイね。電源逆に挿したのかと思ったくらい。
383 :
774ワット発電中さん:2012/03/20(火) 06:57:17.30 ID:imdMN1VH
>>382 ん?最高クロックで使っても
そんなに熱くならんぞ
ホワホワ温かいな〜位
なんか間違えて使ってないか?
オーバークロッカーなんだろう
俺のPICはぶっちぎりだぜぇ!ヒャッハー!!
液体窒素で冷却しながらPICをかっ飛ばしてるスレはここですか?
LED点ける為に水冷にするとかもうね
そういえばLED信号の雪が解けなくて困ってるらしいな
熱が必要ならヒーターを使うだけでしょ。
12F1822を8MHzで疑似PWM制御のLチカやった。
Pickit3だとうまくいったのに、ボタン電池だと電圧降下が起きてしまった。
LEDが光らない・・・、それ以前にPICちゃんが機能しないんだけどね。なんでだろう
ボタン電池だと電圧降下が起きるからだろ
31kHzでやれば?
ボタン電池だと電流が流せないからだろ
LEDを光らすことくらいできるだろ
パスコンくらい付けろよ
PLCを使うまでもない装置に
PICで組もうと思ってみたところ
ちょっとは安くなるけどスペース的に全然コンパクトにならんのだな
基板小分けしてコネクタで階層状にしてみたいけど
基板支柱を兼ねたコネクタとかあれば教えて
LEDだと10mAくらいほしいね。
全部無料の開発環境でやってるよ。Cは、MPLAB C Compilerか、HITEC-Cのどちらか。
PIC関連で俺が買った本は、すべて、これら無償のCコンパイラでいけるような物ばかりだったけど。
コピーできたらコピーして使うの?
犯罪幇助はしたくないね。
まあ、純正品の $500 はちょっと高いけど、買えないこともないだろ・・・
ちなみにAVRは無料だよ。
>>398 個人の趣味ならHI-TECHのLiteかSDCCで十分でしょ。有償のものを盗んでまで使いたい理由が分からん。
CCS-Cだって無料版なかったっけ?
無料のコンパイラーは、ゴミがイッパイ付く
最適化すると、ほぼ半分!
単純に考えると速度半減
質問です
dsPIC30F4011をリチウムポリマーで使用しようとしているのですがうまくいきません。
(発振子のコンフィギュレーション以外)プログラムそのままで
外部発振子20Mhzで動かすとPickit2、リチウムポリマーともに電源投入して動くのですが
内部発振子120Mhzで動かすとPickit2だと動いて、リチウムポリマーからだと動くときと動かないときがあります。
まとめると
外部発振子20Mhz、Pickit2でパソコンから電源投入 :動く
外部発振子20Mhz、リチウムポリマー :動く
内部発振子120Mhz、Pickit2でパソコンから電源投入 :動く
内部発振子120Mhz、リチウムポリマー :トグルスイッチを「カチッ」と音がならないぐらいゆっくりONにすると動く。ゆっくりにしないと動かない。
たまにゆっくりにしてもうごかない・・
最終的には内部発振子でリチウムポリマーで動かしたいのですが、
電源系はリチウムポリマー(2S 7.4V)→レギュレーター(5V)→トグルスイッチ→PIC
というかんじになっていて
コンフィギュレーションは
内臓が:#fuses hs,pr,nowdt
外部が:#fuses FRC_PLL16,nowdt,pr
原因がわかりません。
なにかヒントおしえてもらえませんか?
>>404 リチウムポリマーを電源に変えて、
電源→レギュレータ→トグルスイッチ→PIC
の構成で試してみるべき
>>404 PWRT power up timer ONにしてみた?
#FUSES PUT64 //Power On Reset Timer value 64ms
MCLRのPull-Up忘れなら先週やった
411 :
337:2012/03/21(水) 21:17:36.00 ID:m7QqrQlx
時計キットのプログラムを流用して
0721とずっと表示させるだけのPG作ってくれんですか?
>>411 CLRF MIN
CLRF HOUR
↓
MOVLW 0x7 ;ona
MOVWF HOUR
MOVLW 0x21 ;nii
MOVWF MIN
-----
; 1Hz (1SEC)
; INC SEC
GOTO LOOP ;追加
家政婦の?
ループラベルは下記でやってみます
これを元に改造をしていきます。
CLRF MIN
CLRF HOUR
LOOP MOVLW 0x7 ;ona
MOVWF HOUR
MOVLW 0x21 ;nii
MOVWF MIN
; 1Hz (1SEC)
; INC SEC
GOTO LOOP ;追加
>>412 ワラタ
すたチック点灯で目にもやさしいな
全部光らせて余計なところをマジックで塗り潰せばおkだな
スモーク被せれば分からん
:020000040000FA
:0E0000006C006D00070C2D00210C2C00020A74
:021FFE00FA0FD8
:00000001FF
翻訳したら上になったけどOK?
ラダーみたいに
内部リレーやタイマーやカウントを全部配列にして
{入力条件、解除条件、カウント値、設定値、出力}
配列だけ変更すれば汎用で使えるようにしてる人いる?
>>421 時計プログラムを使用してって言わなかったか?
改造箇所だけでは、動かないぞ
PIC24FV32KA302
UARTの受信ができません 送信はできています
U1BRG = 25; // ボーレート 9600fps
_U1TXIE = 1; // 送信割込イネーブル
_U1TXIP = 4; // 割込優先度
_U1RXIE = 1; // 受信割込イネーブル
_U1RXIP = 4; // 割込優先度
_URXISEL = 0; // 受信割込モード
_U1ERIE = 1; // 受信エラー割込イネーブル
_U1ERIP = 4; // 割込優先度
_UARTEN = 1; // UARTイネーブル
_UTXEN = 1; // 送信イネーブル
Runの直後一度だけ受信割込みが入りますがデータレジスタは0です 何も送らずにです
あとエラー割込みも一度だけ入ります フレーミングエラーっぽい?
それ以降は何を送っても反応なし
なにか原因あるでしょうか
427 :
774ワット発電中さん:2012/03/22(木) 11:59:46.35 ID:XnZWIEbK
PIC12F510でsleepからピン状態変化によるwake-upを
するとリセットがかかってしまうのですが、
sleep箇所から復帰することってできるんでしょうか?
510は楽しいのに誰も使ってない
429 :
natu:2012/03/22(木) 14:58:08.12 ID:IQKk/S7A
>>425 >フレーミングエラーっぽい?
特定出来ないかね?オーバーランだと、そのビットをクリア
しないと受信出来なくなったような気がする。
430 :
natu:2012/03/22(木) 15:05:51.60 ID:IQKk/S7A
>>427 12bitコアだと、リセットが掛かって色々ビットを調べないと
いけない。
>>429 最初に受信割込みが入ったときはフレーミングエラービットが立っていて
次にエラー割込みが入ったときはエラービットはどれも立っていない不思議現象
正直PICに不慣れで申し訳ないけど
ICD3で開発していて例えばプログラムメモリ0CF4にブレイクポイントを置いたとすると
0CF8で止まるのでその時点でイミフなんですが
コンパイラにはC30使ってます
>>430 そうでしたか。
ありがとうございます。
なるほど、やっと解りました。
433 :
natu:2012/03/22(木) 15:56:21.08 ID:IQKk/S7A
>>431 IFS4bits.UxERIFは、クリアしてますか。
435 :
natu:2012/03/22(木) 16:40:00.15 ID:IQKk/S7A
>>431 >最初に受信割込みが入ったときはフレーミングエラービットが立っていて
これ、エラー割込みの間違いだよね?
この時、受信データレジスタ空読みしていますか?
プログラム全体を見ないと設定忘れとかバグのFAQしか語れないと思う
>>435 受信割込みで相違ないです
受信割込みとエラー割込みの優先度が同じだったのを、エラー割込みを上位にしてみたところ、
エラー割込みできちんとフレーミングエラーを取得することはできました
volatile int buf;
while(_URXDA) {
buf = U1RXREG;
}
空読みはこれで結構でしょうか?
受信割込みではレジスタ読込はやっておりましたが、エラー割込みにも空読みを入れてみました
データ無い時シリアル入力はHレベルか?
はい、そうです。ハイです
440 :
389:2012/03/22(木) 18:27:40.65 ID:OJakrdN0
なるほど、電池って定格とかないと思ってたわ。ありがとうございますた。
441 :
774ワット発電中さん:2012/03/22(木) 19:34:08.53 ID:p/Ok+Q3R
>>429 yes。 オーバーランのときゃ、UART完全停止なんで、わたしゃ一旦UARTENをOFF/ONしてますです。
PIC特有じゃがな。 avrやARMではそんな事はやらんが w
PICって電池の場合、6Vで動かしたらやっぱりまずいんでしょうかね。
整流用ダイオード入れれば0.5V低下してちょうど5.5Vになるのは知ってるんですが、
貧乏性でなんかもったいない気がして、いつも悩む。
それにちょっと使えば電池が減ってすぐ5.5Vになるから、6Vでもいいんにじゃないかなと
おもったりするんですがどうでしょうかね。
やってみれ
100円だろ?
電池が6Vだと思ってる時点でアウト
>>443 電池3本じゃだめなんですか?
5.5VのPICでも6.5Vまで耐えるんじゃないのかな?
1.8V-5.5V Operation
Voltage on VDD with respect to VSS, ... -0.3V to +6.5V
>>444 自分でやってみた範囲では1年は大丈夫なようですね。でも今度知人用に便利グッズ
を作ってプレゼントしようとしてるんですが、どれぐらい持つのかなと思って。
Absolute Maximum Ratingsの意味を理解しているんだろうか
ぜんぜん理解してませんけど。
>>446 今度連続的に6.5Vかけてどのくらいもつか実験してみます。6.5VでOKならよさそう。
>>447 壊れたら無料修理のアフターサポート付きでプレゼントすれば良いんじゃない?
PIC16F887に数秒8.4Vかけて壊れなかったことならある
なんか、みんな微妙に間違った解釈に行くように導いているような(^^;
Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at those or any other conditions above those
indicated in the operation listings of this specification is not implied. Exposure above maximum rating conditions for
extended periods may affect device reliability.
まぁ、仕事で使うのと趣味で使うのとでは、どの点にどれくらい気をつけないといけないかは
当然違うのだけれど。
じゃあAbsolute Maximum RatingsとRecommended Operating Conditionsの違いを分かってるのかな?
これでいいでしょ
>>452 俺は新品の9v電池w
16f84aだったが動いたわ。爆熱だったけど。
>>454 いい、はず…。でも、駄目みたい。orz
まぁ、Microhipが保証できないところ、あんたらで保証してやりなってとこかな。
めんどうなら、パスコンもLEDに直列の抵抗も、無しで良いよw
使い古しの携帯バッテリーを使えるように
治具つくってみようかな
PIC用リテンションキットが秋月から発売される日も近い
8.6Vでも動いてるよ。
12F629ね。頑丈だなぁ
もう一台同じもの作ったら動かんかもしれん話だ。あえて高くして使う意味はない。
千個くらい試せばいいと思う
463 :
460:2012/03/23(金) 17:17:14.66 ID:TacbFXe4
300個くらい作ったが、高電圧のせいで動かなかったことはない。
質問です。
MPLABXとPICKIT3でデバッグしています。
MPLAB8では、ワンクリックでビルド→書き込み→main関数の先頭まで実行
が設定すればできるんですが、
MPLABXではどこで設定できるんでしょうか?
逆挿しして多少焦げ臭い匂いがしたPICでも平気で動くもんな・・・
どっかのポートだけ死んでたりするけどな
おまえらあんまりいぢめるなよ
>>463 ぜひ名前を明かしてくれ、うちからは絶対に仕事を回さないから。
このスレ見てる奴が発注側であるわけがない
いるとすればお勉強のため
笑える
えっどこがギャグなの?
えっ、ひょっとしてマジなの?
時計キットの人、出来たのかな?
アセンブラが解ってなさそうなのでCで組めばいいのに
なんとなくイメージで適当に作ったけど動くのこれ? TRIS PORTA が1Fになってるのが意味不明(ウォッチ)
MOVLW 0x0F
TRIS PORTA
MOVLW 0x00
TRIS PORTB
TRIS PORTC
CLRF PORTB
CLRF PORTC
LOOP MOVLW B'00010000'
MOVWF PORTB
MOVLW B'01111101'
MOVWF PORTC
MOVLW B'00001000'
MOVWF PORTB
MOVLW B'01110001'
MOVWF PORTC
MOVLW B'00000100'
MOVWF PORTB
MOVLW B'01101110'
MOVWF PORTC
MOVLW B'00000010'
MOVWF PORTB
MOVLW B'01010000'
MOVWF PORTC
GOTO LOOP
END
>>474 ・ダイナミック点灯は光らしてから少し時間待ちして次の桁へ
・点灯をOFFしてから次の桁をONしないと隣の表示が残像のように混ざる
・HW自作? 時計キットの7SEGコモンは、
RB7 *--- 左から1ケタ目
RB6 -*-- 左から2ケタ目
RB5 --*- 左から3ケタ目
RB0 ---* 左から4ケタ目
だと思う。
PICで電池3本の4.5Vで駆動するテレビのリモコンつくりました。
しかし、電池2本で駆動する正規のリモコンより出力が弱いです。
パワーアップする方法ないでしょうか。
赤外線LEDは千石で買った
東芝 TLN105B ED 最大定格(順電流:100mA)
これをトランジスタ2SC1815でドライブしてます。
PICからは1Kオームの抵抗でトランジスタのベースにつないであって、LEDには
抵抗をはさんでません。
もともとLEDがちがうんでしょうかね。
>>476 コレクタ・エミッタ間飽和電圧 VCE (sat)
IC = 100 mA, IB = 10 mA
- 0.1 0.25 V
ベース抵抗を小さくしてみれば?
>>477 ありがとうございます。そうしてみます。
受光素子の受光波長とあってるのかねぇ。
電力がもったいないから2本くらい直列にしろよ
>>476 デジカメとかビデオカメラを使うと赤外線が見えるから確認してみるといいかも。
>>476 LEDのものによって出力が違うからね
あと瞬間的にはかなり電流流しても大丈夫みたい
自分が前に作った時は
ベース抵抗:2Ω(2kじゃなくて2)
電源:5V、でいけた
38kHzでON/OFFするのは大丈夫だけど、
試しに1秒間ONにしてみたら、LEDから魂が抜けた
初代PICのGeneral Instrument社 PIC1650 データシート見つけたのでURL置いておく
ttp://www.rhoent.com/pic16xx.pdf 12bit長インストラクション BaselinePICとほぼ同じ(OPTION.TRIS,SLEEP,CLRWDTが無いだけ、必要ナイカラネ)
RAM32バイト,ROM512ワード,I/O PORT A,B,C,D 32本
メモリアドレス
0 INDF
1 TMR0
2 PCL
3 STATUS
4 FSR
5-8 PORTA-D
9- RAM
1977?
>>487 90sってもしかして'90s(nineties:90年代)から来てる?
dsPICって、秋月電子通商での取り扱い種類少ないねぇ。
PIC16FやPIC18Fに比べれば、あまり使われていないのかな?
>489
dsPICというか16bitのワンチップマイコンの用途って趣味の電子工作じゃそれほど出番ないと思う。
逆に12&16Fあたりだとコスト的にTTL代わりに使ってもおかしくないからね
グルーサーキット
dsPICの進化の8bit版を出せばいいのにな
いろいろ精錬してさ
> 8080や6800 の2年遅れ、Z80と同期
まさかの最古参クラスだったのか・・・
C84が出てトラ木で取り上げて知ったクチには驚天動地だな。
>493
私も昨日 見つけて驚いてたw どうせ元になっただけでほとんど別物だろうと
datasheet見たらBaselineのPIC(16F57とか10F222等)とほとんど同じ。
しょぼい命令体系だとは思っていたけど、まさかZ80と同時代にROM,RAM,PIO
まで内蔵したマイコンだったとは、そりゃ命令体系に回路さけないよね。
8080のトランジスタ数が4500ヶ、6800が5400ヶ、同期のZ80が8200ヶ
こんな時期のマイコンでプログラム領域のROMに 512x12bit ( 6144bit )を
さくって どれだけチップの面積取られたんだろうな。
>>485 thx
こういうシンプルなのは、CPUの中身を理解するのに、役立つな。
EPROMみたいな窓付きパッケージにしないと見えないけどな
500 :
774ワット発電中さん:2012/03/26(月) 17:59:56.13 ID:TY2v7VvH
LED外付けせずにチカチカ出来ます的な
I/Oの状態が分かるのは便利そうだな
LEDチカチカ練習用PICですね。わかりません。
そろそろ透けてるPICが出てもいいはずなんだが・・・・
絆創膏と前貼りのがいいです
なんか大昔に、亀の子でメモリかなんか乗せるやつってなかった?
店員が「高いよ。マイコンだよ」とか言ってた気がする。端子が全部金メッキだった。
>>500 PPIでそんなのあったね。ハイブリッドだったけど。
>>502 Z80ができるんだからCPU自体はできそうだけど、メモリ関連ってどうなんだろう。
>>504 ピギーバックだね。
EPROMを背中に乗っけるという、無駄に高価なパッケージだ。
まあ、EPROMがCPUと同じチップに集積できない時代に、
マスクROM版とほぼ同じ形状にできる。
>>504 バグタイザーのオマケでもらった8255互換ボードはLEDチカチカしたよ。
ICD3でデバッグしています
RunさせてしばらくするとCPUが勝手に停止します
時間にして走らせてからおよそ2分20秒後くらいです
レジスタの設定周りで何か原因に成りうるものはあるでしょうか
CLK=16MHz(MIPS 4MHz)で2MHzのPWMが出来るのかと思ってやってみたら、
出来るんだね。これが最速か。
>>507 ノートパソコンの節電機能でUSBがオフラインにされるとか?
デスクトップなので違いますね
玉砕
>>507なのですが
エミュレータ切り離して単独で走らせてみても、必ず2分12秒程度でリセットがかかりリスタートしてしまいます
以前2分20秒だったはずのものが2分12秒になったのは、プログラムが長くなった影響なのでしょうか
お手上げです 誰か分かる人いませんか
それだけの情報でわかるのはエスパーさん以外にはいないでしょうね。
凡人に聞くのだったらせめて何をさせようとしているのか、ソースぐらいは出さないと。
WDTってのがあったな
>>514の指摘通りでした
メインループの中にWDTのリセットを挟み込むだけで解決しました
時間で自動的にスリープモードに入っているのではないかとそのへんのレジスタはあれこれ調べていたのですが
WDTが完全に視野から外れていました
勉強になりました
2分20秒はただの記憶違いだったのでしょう
Enhanced Mid-Rangeの中で28,30ピンのPIC16F1938や1939等は
内部コアが3.6V動作の為、LDOを内蔵しており動作を安定させる為に
VACP端子にコンデンサをつないだ方がよいとの記述がデータシートにあります。
CONFIG2の設定でVCAP端子をRA0,RA5,RA6または無しに設定できますが
みなさんはどうしていますか? 試しにブレッドボードでちょこっと動かした分には
VCAP無しでも問題ありませんでした。
>Enhanced Mid-Rangeの中で28,30ピンのPIC16F1938や1939等は
(改正) 28,40ピンです
>>515 twelveとtwentieで間違ったんじゃね?w
picをはじめるには
まずなにをすれば。
用途から品番選定
>>519 売ってる本は全部古いから、Google検索だけでおk
ヤフーオークションにPICのすごい安いのがある
とりあえずどんどん手を動かして、やってみると良い
>>519 まず本を一冊買うのがお勧め。PICkit3の話が出ていれば古くないから、
これを目安に買えばいい。開発環境の準備(無料)の方法なども、
書いてあるはず。
ネットも古い情報が満載なので、その点は要注意だね。まず本の内容を
ある程度理解してから、ネットの情報なんかを参考にして、色々やって
みたら?
>>519 あと、
>>520 で言っているICの種類だけれど、慣れてくるまでは一つの品番に
絞ってやった方が良い。20ピンのPICで、本で扱われている物が、初めは良いと思う。
pickitで実機デバッグできるPICをお勧めしたいのと雑誌等で良く使う定番も
お勧めPICは↓
ICD-Debug機能付きでDIPタイプ18-28PIN、秋月電子在庫機種でのお勧め
18PIN PIC16F819 170円 rom3.5KB
18PIN PIC16F87 200円 rom7KB PIC16F88コンパチでAD無し版だがICD-Debug付
18PIN PIC18F1320 220円 rom8KB
20PIN PIC18F14K22 160円 rom16KB
28PIN PIC16F1938 150円 rom28kB
28PIN PIC18F2550 350円 rom32kB USB付きの定番
28PIN PIC18F2620 420円 rom64kB
ICD-Debug無しだが定番
18PIN PIC16F88 200円 rom7KB
525 :
774ワット発電中さん:2012/03/29(木) 18:06:55.08 ID:0VEU9bak
電圧計を作ってみようと思ってるんですが、
16F88とかに内蔵の 10bit A/Dコンバータで安易に済ますのと、
秋月で売ってる 12bitの A/Dコンバータ
http://akizukidenshi.com/catalog/c/cadc/ を SPI接続でがんばって使ってみるのと、10bitと 12bit、どのぐらい違いがあると思いますか?
入力抵抗が大きいテスターを作ろうと思ってます
入力段に OPAMPを使って、OP-AMPの出力を A/Dへ取り込む予定です
OPAMPは電圧フォロア、入力抵抗を上げるためだけに使う
5V以下は OPAMP通すだけ
5V以上は OPAMPの出力を抵抗分圧して A/Dへ入れて
切り替えを RELAYでやったら、アドバンテストとかの本格的なテスターと同じく、
カチカチ音がしてかっこいいかなとか思ってww
OPAMPを通すんだったら、10bitも 12bitも同じだろうとか
5V VDD Refで 12bit使うんだったら Refの 5Vを使って内蔵 10bitの方が良いダロとか
2bitぶん違うわな
解像度だけじゃなくて精度も気にした方が良い。
リファレンスも安定してないとダメだしなー
>>525 dsPIC30F3012 は12BITのA/Dです
18pinDIP
FROM 8Kワード
RAM 2Kバイト
dsPIC30F3012-30I/P 400円
12bitADC PIC18Fにもいくつか付いてる
40pin 18F4553 \430 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,12bitADC,CCP1/1
28pin 18F2553 \420 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,12bitADC,CCP2/0
28pin 18F2523 \390 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0,12bitADC
28pin 18F25K80 \220 16Kw/3648/1024 Max64MHz(31k-64MHz),4xPLL,eUSART2,TMR2/3,CCP4/1,12bitADC.ECAN
値段的には 18F25K80。専用chipに比べてどうなのとかは?
530 :
774ワット発電中さん:2012/03/30(金) 00:13:36.45 ID:yVKFdCPp
>>524 > ICD-Debug無しだが定番
> 18PIN PIC16F88 200円 rom7KB
デバッグできるはずだけど?
質問なのですが
ソースブースト6.0と7.0に違いってありますかね?
>>530 そのようですね
microchipのProducts画面が間違っているようです。
PIC18F14K22はデバッグヘッダーが必要かも。
534 :
525:2012/03/30(金) 20:28:18.43 ID:NP4/snCE
>>528,529
使い慣れてる 16Fばかり見てましたが、18Fとかだと 12bit A/D内蔵があるんですね
秋月ライターが使えなくなってしまいますが、グレードアップ考えてみようかなぁ
>>534 作っているうちに、デジタルフィルターかけたりFFTして特定の周波数帯だけ表示できる電圧計に拡張したくなるかもしれないので、
初めからdsPIC30Fxxにしたほうが良いと思う。
値段も400円位なので
dsPIC30シリーズは消費電力が大きいから、電池動作させたい場合は要注意。
電源電圧が3.3Vで問題なければdsPIC33シリーズの方が消費電力が低く、処理能力も高い。
PICを使って、赤、緑、黄のLEDを1秒ごとに一つずつ光らせる信号装置を作りたいです。
基本的な信号機プログラムです。どうしたら良いでしょうか?
作れば良い
>>539 どうやって作ればいいでしょうか?
PICのゲートとLEDを直接つなげばいいのでしょうか?
PIC
□□
□□--抵抗--led(青)--0v
□□--抵抗--led(黄)--0v
□□--抵抗--led(赤)--0v
□□
こんな感じでよいでしょうか?
541 :
540:2012/04/01(日) 19:58:44.35 ID:FSc6O1tx
信号装置は授業課題です。
使うPICは16F84Aです。アセンブラを使ってPICにプログラムを
書き込みたいです。具体的に回路がわからないのでよろしくお
ねがいします。
>>541 課題をネットで聞くなよw
自分で考えなきゃ意味が無い。
っていうか、もうやめたら?学校を。
そういうスタンスじゃこの先も無理だと思うよ。
>>541 回路はそれでOK。終わったも同然だな。
>>541 ちなみにプログラムはこうだ。
サブルーチンをちょっと加えれば終わり。
楽したなw
call init
loop
movlw 4
movwf portb
call wait
movlw 2
movwf portb
call wait
movlw 1
movwf portb
call waitx
goto loop
【PIC24/dsPICシリーズ】16bitマイコン アーキテクチャの大幅な改良,同MIPS値のPIC18F以前と比べて数倍高性能
40ピン
-○dsPIC30F4013 \480 16Kw/2KB/1KB ADC12bit TMR5 UART2 SPI1 I2C1 PWM2 CAN
-×dsPIC30F3014 \500 8Kw/2KB/1KB ADC12bit TMR3 UART2 SPI1 I2C1 PWM2
28ピン
-◎24FJ64GA002 \330 21Kw/8KB/--- ADC10bit TMR5 UART2 SPI2 I2C2 PWM5
-◎24HJ12GP202 \260 4Kw/1KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
-○dsPIC30F4012 \460 16Kw/2KB/1KB ADC10bit TMR5 UART1 SPI1 I2C1 PWM3x2 CAN
-×dsPIC30F2020 \500 4Kw/512B/-- ADC10bit TMR3 UART1 SPI1 I2C1 PWM4x2
-△dsPIC30F2012 \350 4Kw/1KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
-◎33FJ32GP202 \320 11Kw/2KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
18ピン
-○dsPIC30F3012 \400 8kw/2KB/1KB ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
共通
24Fシリーズ Vdd2.0-3.6V Max16MIPS (一部ピン5V入力可),I/Oリマップ
24Hシリーズ Vdd3.0-3.6V Max40MIPS (一部ピン5V入力可),I/Oリマップ
30Fシリーズ Vdd2.5-5.5V Max30MIPS DSP命令有,(5V動作可)
33Fシリーズ Vdd3.0-3.6V Max40MIPS DSP命令有,(一部ピン5V入力可),I/Oリマップ
16bitのPIC 秋月は全然変化ないけどMicrochip自体は色々出てるんだよね
PIC24FxxKLxxxシリーズはDIP28,20,14まであり、Vcoreピン無くDIP14でI/O12本ある(I/Oリマップと5Vトレラント無?)
PIC24FVxxKAxxxシリーズはDIP28,20でVcore有るけど5V動作可(コチラモI/Oリマッフ無?)
新型のPIC24EやdsPIC33Eの70MIPS品でもDIP28版あるし
そう言えばPIC32もDIP28版あるね
>>544 最初から完璧なソースを見せたら学生の勉強になりませんよ。
そのコード、今動かしたら一発で動くじゃないですか。凄すぎます。
すみません。質問いいでしょうか?
PICを2つ使って、両方のポートを出力と入力として繋いだ場合は、やはり電流抑えるために抵抗は必要でしょうか?
もし必要なら抵抗値はどれくらい必要でしょうか?
よろしくお願いします。
vcc共通で同一基板だったら直結でいい。
心配なら直列に100Ω入れとけ。
品種とかvccとか温度とかプルアップ抵抗で変わるし、自分で決められないなら入れても意味ないけどな。
>548
通常なら必要ないと思うけど、ソフト上の誤動作で両方が出力状態になった場合を考えると
1kΩ位入れておけば良いかと思う(電位差5Vで5mAなのでIOL&IOHが10mA以上あるなら余裕)
あまり大きいと信号の伝達が遅くなるかと。
もしボードが違ってGNDも共通じゃないなら、抵抗じゃ無理なのでフォトカプラの出番
>>549さん
>>550さん
ありがとうございます!
これで安心しました!
心置きなく工作できそうです!
MPLAB v8.76
PCH V4.112
PIC18F4525
10MHzのセラミック発振子を使用
18S-03A-4(12.8MHz)水晶発振器の出力にVCC(5V)とGNDから10kΩの抵抗で分圧してRC0/T1OSO/T13CKIに接続
TIMER1を10msの割込にしてA2をトグル動作させてオシロで波形を測定
計算ではこれで50Hzの波形が測定できるはずだったんだけど、実測155Hzぐらい
それとH4を有効にして40MHz動作させると実測174Hzぐらいになる
やりたい事は動作させるクロックと時間をカウントさせるクロックを分けて正確な時間の時計が作りたい
それとH4の設定をしたときに周波数のズレが出た原因も知りたい
原因わかる方お願いします
12.8MHzの出力をOSC1/CLKI/RA7に繋いで下記部分を変更すると計算通り50Hzの波形が測定できた
#fuses NOWDT,NOPROTECT,NOPUT,BROWNOUT,NOLVP,MCLR,NOIESO,NOFCMEN,NOPBADEN,EC//HS,H4
// setup_timer_1(T1_EXTERNAL | T1_DIV_BY_1);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
/****************************************
* LED時計
***************************************/
#include <18f4525.h>
#fuses NOWDT,NOPROTECT,NOPUT,BROWNOUT,NOLVP,MCLR,NOIESO,NOFCMEN,NOPBADEN,HS//,H4
#use fast_io(B)
#INT_TIMER1
void intval()
{
set_timer1(33535);
output_toggle(pin_a2);
}
///// メイン関数
void main()
{
set_tris_a(0x00);
set_tris_b(0x00);
set_tris_c(0x01);
set_tris_d(0x00);
set_tris_e(0x00);
//クロック設定
setup_oscillator(OSC_NORMAL);
// setup_timer_1(T1_EXTERNAL | T1_CLK_OUT | T1_DIV_BY_8);
setup_timer_1(T1_EXTERNAL | T1_DIV_BY_1);
// setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
SET_TIMER1(16000);
//割り込み設定
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
while(1) //永久ループ
{
output_toggle(pin_a3);
}
}
>>535 ありがとー。
初心者なので、とても勉強になります。
質問します
16F690はRBのピンがが4から7までしかありません。
これを使ってLCDを4bit制御モードで使えるんでしょうか?
また学校の課題か
>>555 LCD4ビットモードというのは何処から出てきた数字なのかね?
>>556 okwebでもそうだが質問してすぐレスするやつは茶化したいだけのが多いな。
ぜんぜん答えてくれないで、文句ばっかり。
>>558 「ググレカス」って言って欲しいのかなぁ?
>>555 4bit制御モードは、データ線が4本ということ。
別に制御線も必要だよ。
>555
SC1602等のHD44780互換チップ載ったLCDモジュールなら4bitモードで
DB7-4の4本とRSとEの6本が制御できれば可能。
ソフト的にはめんどくさくなるけど、DB7-4に割り当てるPIC側のピンは
同じポートである必要も連続するBitである必要も無い。
出力モードにできるI/Oピンが6本あればOK
>>561 どうもありがとうございます。できるんですね。RSとEはPORTAでやりますけど。
>>563 「他人に聞く前にまず自分で調べなさい」とか先生に言われなかった?小学生かなんかの頃に。
565 :
774ワット発電中さん:2012/04/02(月) 20:51:48.06 ID:IX4NzaxJ
>>555 上位と下位の 4bitを swapすれば良いんだよ
たしか
それで、swapしたことをLCDコントローラーにどう伝えるのですか?
東のほうが面白かったんだが
568 :
774ワット発電中さん:2012/04/02(月) 22:53:53.33 ID:IX4NzaxJ
>>567 おもしろいこと聞くね
PORTAに movwfしてどうする?
569 :
774ワット発電中さん:2012/04/02(月) 23:02:35.46 ID:IX4NzaxJ
↑
ごめんおもしろくなかった。誰か頼んだ
>>564 どこで調べればよかったの?おしえてみ?
>>570 >どこで調べればよかったの?おしえてみ?
小学校では先生にそんな口聞いてたの? そりゃ落ちこぼれる筈だわ。
>>570 混じれ酢してあげよう。
まず、近所の図書館(最低でも市立図書館規模)に行く
電子工学のコーナーに何か1冊はPICの本がおいてあるだろう。
そこからスタートだ!さあがんばれ。
そうそう、見た目でなくても、書庫にあるときがあるから、よく探すことだね。
生きる資格がないなんて憧れていた逝き方
ID変えながら一人で楽しそうですねえ
ここにも春厨が
俺は、変えてないぞ
>>571 「おしえてみ?」にきれたの学生さん。
ただで教えてるからって尊大な態度をとってりゃ嫌われる、って先生におそわらなかった?
雑誌 デジモノステーションの5月号に7セグLED時計
が載ってた
と、いつも人に言われてるのね
583 :
552:2012/04/03(火) 23:01:19.24 ID:DaBzHAq3
>>553 ようやく原因わかりました。
水晶発振器を繋いでたT13CKIの入力はデジタルのシュミットトリガになってたのが原因でした。
T13CKIのVILがVSS〜0.3VDD、VIHが1.6〜VDD
多分この辺りで不安定になっていたのかも?
T1OSIは200kHzまでしか受け付けないので使えない
結局はOSC1/CLKI/RA7に入れるしか無いみたいです。
ありがとうございました。
584 :
552:2012/04/04(水) 00:09:18.88 ID:v/dVphMD
追加実験
T13CKIに別なPICから1kHzの信号を入れてやると思った時間の割込になりました。
1kHzはオシロを見ながら調整して出力
set_timer1(65526);
output_toggle(pin_a2);
これで50Hzになりました
>584
余計な御世話かもしれないけど、割込み中にTMR1を固定値に書き換えるのはあまりよろしくない
アセンブラ的な話になるが、割込みのタイミングは割込み発生時に実行中の命令が終わってから発生する
PIC18Fは命令によって1サイクルと2サイクル命令があり、2サイクル命令の前半で割込みが発生すると
割込みに入るタイミングが通常より1サイクル遅くなる。
1サイクル遅くなっているのに次の割込みまでの時間を通常と同じように設定すると、その1サイクルは蓄積
されるズレとなってしまう。2サイクル命令以外にも割込み禁止でも同様というかもっとひどいズレが発生する
上記を防ぐため通常は、CCPの機能で"Compare mode, trigger special event"を使う
TMRが設定値になったら自動で0になり割込みも発生する(TMRの割込みではなくCCPの割込み)。
割込みに入るタイミングが何サイクル遅れても(1周期分65536超えたら無理だけど)TMRもそのプラスされて
いるのでズレが発生しない。
>>580 はよ図書館いって勉強してこい!
時間の無駄だぞ。
図書館をなめるなよ、度肝ぬくぞ!
>>586 命令の実行中とか全然考えてませんでした。
Compare mode, trigger special eventを使ってのタイマーリセットの実験ができました。
指定した時間毎にリセットをしてCCP1の割込で出力をトグル動作させ50Hzの出力が測定できました。
ありがとうございました。
田舎の図書館はなめている。PIC本が皆無。
時間はかかるけど、リクエストができる図書館もあるよ。
新規購入リクエストね。
あるいは図書館同士の連携で他の場所から持ってこれるシステムの場所もある。
592 :
のうし:2012/04/04(水) 14:04:21.43 ID:X8dUDeW0
『PICの本が皆無』ではなく、PICのは股間氏のしかない、かとオモタ。
ちょいちょい質問・・・
複数の回路と複数のボタンがあって
「このボタンを押したらこの回路とこの回路がONになる」
とか自由に設定して使えるようなのって、PICで出来る?
リクエストはできるしほぼ100%通るけどしないよ。
急に注目され始めたジャンルでも無し、今までだれも必要としてない本をリクエストしてもオレ以外借りないからな。
税金は有効に使うべし。
ダイオードマトリクスで出来なくね
マトリクススイッチャーだろ
いつの間にかスルー検定が実施されたか
599 :
774ワット発電中さん:2012/04/04(水) 22:42:52.77 ID:SuK7jN1W
すみません。PICマイコンに興味あるのですが、開発言語は何が良いでしょうか?
いろいろネットで調べるとC言語ばかり出てくるのですが、そんな難しいものは全くのド素人でして・・・
一つ気になるソフトがあって、PICBASICPROというBASIC言語のものです。
これならなんとか行けそうな気がするのですがプロのみなさんはどれがいいでしょうか?
本格的にPICで何かをやりたいのではなく、あくまで日曜工作の範囲内での話しでして
それから、BASIC言語については、高校の頃にポケコンで遊んだレベルです。
つアセンブラ
ポケコンでBASICやったくらいなら、今時の変なBASICを
覚えるのも、C覚えるのも、手間はあんまり変わらないんじゃ?
BASIC C
IF A=1 THEN if (A==1)
FOR A=1 TO 10 for (A=1;A<=10;A++) {
NEXT A }
ON A GOTO 100,200 switch (A) {
100 .... case 1:
200 .... case 2:
300 }
WHILE A<10 while (A<10) {
WEND }
謝れ!
502Pすら買えなかった俺に謝れ!!
502Pはアセンブラっぽい米
シャープの緑色蛍光表示管のプログラム電卓も、忘れないでください。
fx-502より小さくて、よかった。
PB-100の学校向けにした奴が関数電卓代わりですた
>>604 すまない。502Pは先輩が持っていたので自分も欲しかったが、
すでに廃盤になってたから602Pを買った。
俺はPC-G801なので仲間はずれだな。
って、なんかポケコンスレと化してるな
今だとPICの勉強もポケコンで…と思ったが、ポケコン自体が絶滅してましたか?
>>606 >>609 PC-1211なら、友達のを借りて使ったことあるヨ。RPG作ってあげたら、喜んでた。
しかし、
>>599のように、組み込みマイコンからプログラム言語に入るっていうケース、
結構多いのかな。で、そういった場合にBASICは取っつきやすいのかな?ポケコンの
時代なんかだと、高級言語というとBASICしか使えないケースがほとんどだったから
まずBASICだったけど、今なら、初めて学ぶプログラミング言語って、何が良いのだろう?
611 :
593:2012/04/05(木) 14:11:50.07 ID:FvXHBcTp
>>598 ありがとう。
本を買ってやってみるよ。
PIC24EPxxで2$台。 70MIPSだってよ。 Cortex−M0+意識してかな?
ペリフェラルライブラリ等々エラッタ祭りで、今は人柱吊るし上げの最中だが、魅力あるな。
英数字にマルチバイト文字を使う奴は信用ならん
70MIPSともなると旧16Fと比べてMIPS値分だけで14倍
8bitPIC→16bitPICで同MIPSでも性能は数倍あるだろうから
実質50〜100倍位速くなるのかな。
趣味の電子工作だと、旧16Fの5MIPSでも充分な事多いのに
何に使えばいいんだろう…
PICでポケコンって作れるのかなぁ?
年は取りたくないな。 特にID:2KZNpILvみたいなやつ
細かい言語仕様の違いは、その都度調べるしかないよな
Cもperlもrubyもpythonもそれぞれ便利なので、どれか一つではなく全部使う
そして毎回間違う
I/Oや用途的に、PICでやる意義が皆無だな。
>>621 シャープの電子手帳用のキーボードが意外にいい
と思って5個くらい買い集めたが、工作してない。
>>621 >>623 そだね。キーボードの良いのが手に入らないと、何ともならないな。
それが手に入れば、ちょっと作ってみたいかも。
4月1日のグーグルみたいに、モールス信号でいくなら、キーは一個で良いなw
PS2のキーボードってPICからでも余裕で扱えるのな
ただのシリアルだからね。作例はたくさんあるよ。
Wikipedia見ると通信速度が決まってないみたいだけど、
PS/2 connector - Wikipedia
http://en.wikipedia.org/wiki/PS/2_connector > Data signal Serial data at 10 to 16 kHz with 1 stop bit, 1 start bit, 1 parity bit (odd)
CLK信号の幅とか計って柔軟に対応できるようにする必要とかあるのかな?
テストとか考えると結構大変そうね。
何のためのクロックなんだよ
たぶんだけど、同期UARTでやってるんじゃないの?
なるほど。そういう機能があるのがあるのか。
PS/2の資料読んでるとデータは11bit長のようだけどPIC16Fのデータシートみると
USART同期モードは9bit長までしか対応していない様に読めた。
全部ソフトでやらないとだめっぽい
同期ならソフトでも楽勝のような
>>598 どっ、どうやるの?
参考になるHPとかない?
複数の回路と複数のボタンで
「このボタンを押したらこの回路とこの回路がONになる」
とか自由に設定して使えるようなプログラム書けばいいんじゃね?
>>634 お気持ちは分かりますが、漠然としすぎています。
あなたのレスから判断して、それが出来るようになるには
それなりの時間がかかると思われますが
まずは、マイコンの入門書などを購入して、ランプがチカチカ点滅する。
そんな簡単な物からはじめてみてください。
夢をかなえられるように努力を重ねていれば、必ずいつか実現しますよ。
>>634 とりあえず図面うpしてみたら?
PICじゃなくてもロータリースイッチとかリレーでもできるかもしれないし
ちょっと質問です。 WDTって、どういう場面を想定して使う物ですか?
1)自分の組んだプログラムにバグがあって永久ループに入っても、リセットされる。
なのか、あるいは
2)PICのロットによっては、まれに誤作動でフリーズする場合があり、そういう場合にリセットで回避する。
なのか。 WDTを使っている人は実際どういう場面で使っているのでしょうか?
>>638 >ちょっと質問です。 WDTって、どういう場面を想定して使う物ですか?
予定外の処理をジャンジャカされるよりは止まった方がまだマシという判断ダヨ
>>638 もちろんソフト的な問題からの復帰という使い方もあるけど、それ以上にハードトラブル
(サージが乗って誤動作しちまったとか…)に対する自己復帰手段として使ってる。
転ばぬ先の再起動ならぬ。転ばぬ先のWDTなんちゃって
サージとか宇宙線とかの、再現性のないエラーに対する防護だろうね
WDTだけでは、データ破壊が訂正されないで誤動作したままになることは、防げないよ。
破壊されたデータ、というか、WDTがかかった時点で内外にかかわらず全データを破棄すればいい。
プログラムそのものが破壊されたら知らんけど。
趣味の工作レベルで使う分にはWDTは、あまり使い道が無いね。
デフォルトでONなのも初心者がはまる事多いし
>>639-646 どうも、有り難う。具体的にどういった誤動作を想定するのかと思ったのですが、
サージ乗ってとか宇宙線とか含めて、予想できない不具合が沢山有りそうですね。
今まで長時間動かし続ける用途で使っていなかったからWDTは使ってなかったの
だけれど、数時間連続で以上使うケースが出てきたので、オンにしてみます。
WDTオンにしても不具合が出ない設計なら、オンにしとけって感じでしょうか。
>>646 工作レベルなら起動電流が足りなくてCPUが正常起動できなくてもWDTが再リセットして事なきを得ているのを気付かない人も居る
>>645 WDTに引っかからない場合もあるってこと。
>648
それってWDTの悪い例の様な…
異常が高頻度で起きるなら対策すべきで、WDTなんて開発・デバッグがほぼ終わって
最後の最後にONすればいいと思う。
648の例ならPWRT(Power-up Timer)やリセットICの役目だろうし
>>650 >異常が高頻度で起きるなら対策すべきで、WDTなんて開発・デバッグがほぼ終わって
>最後の最後にONすればいいと思う。
説明不足ですみません。まさに、そのケースです。もう出来上がってるんです。
で、実運用に持って行く前に、CLRWDTを入れてWDTオンにした方が良いかなと思って、
聞きました。
>>647 > WDTオンにしても不具合が出ない設計なら、オンにしとけって感じでしょうか。
不具合の出る設計ってどんなんだ?
>>652 リセット直後の動作が、周辺機器との兼ね合いでちょっとした問題を起こす
可能性もあるんですよ。むしろ、PICがフリーズしてくれたままの方が、
リセットされるよりもまだましかもしれないというケース。
>652
メインループ以外で色々と時間待ちや長い処理する場合
後から個別にCLRWDT入れるのが大変な場合とかじゃない
>>654 構造的にダメっぽくない?
>>653 何か起こったときって、必ず「フリーズしてくれたまま」なの?
何もしないで固まってほしいなら、WDTリセットかどうかフラグを見て、
割り込みを禁止して、必要なら安全処理をして、無限ループ。
>>655 >WDTリセットかどうかフラグを見て
なるほど。そんな方法があるんですね。ちょっと、調べてみます。
その手は使えそう。どうも、有り難う。
タイマー割り込みでCLRWDTやって、このままだとメインの無限ループを検出
できないから、割り込み処理内でフラグを立てて、それをメインの処理でクリア
するようにして検出してる。
>655
>構造的にダメっぽくない?
元々WDTを考慮しない作りだと、そんなものじゃないか?
人の入力待ちとかで他にやる事ないなら割込みとかよりそこのループで入力or10秒待つとか
普通にしちゃうよ。
WDTが誤動作を絶対的に無くせるものならともかく、>644が言うようにRAM上のデータが変化
したとかは直接は捕まえられないし、それを気にしたらデータの二重化等までしなきゃだめだし
個人の趣味レベルならWDTの必要性が感じられないんだよね
> 元々WDTを考慮しない作りだと、そんなものじゃないか?
まぁ、何でもアリではあるけれど。
> 人の入力待ちとかで他にやる事ないなら割込みとかよりそこのループで
> 入力or10秒待つとか普通にしちゃうよ。
例外的な場所が判っているなら、そこに入れればいいね。ありすぎて困るような
スパゲティでは、「個人の趣味レベル」として厳格に秘匿しておきたい一品になると思う。
ダメとは言ってない。個人的には恥ずかしくてダメだけど、みんなはどう? と問うただけ。
> RAM上のデータが変化 したとかは直接は捕まえられないし
「ヤバいことが何か起こった」ときに困るなら使うし、そうでなければ使わなくていい。
ただそれだけであって、「データが変化」とWDTをことさらつなげて論じるのは如何なものかね。
> 個人の趣味レベルならWDTの必要性が感じられないんだよね
コントロールするエネルギー量次第かな。
燃えてからでは、物理的経済的以外に精神的ショックも大きい。
>659
私はてっきり>643でデータの変化(破壊)にWDTだと思っていたのだが
プログラムのバグ等をメイン想定しているの?
予期しない誤動作に対する安全装置を組み込むこと自体が趣味の範囲を超えてるから、
そういう使い方ならWDTは不要だけど、
もっと積極的にWDTが動作して当たり前な使い方なら使い道はありそう
> 予期しない誤動作に対する安全装置を組み込むこと自体が趣味の範囲を超えてるから、
「趣味の範囲」ではなく「俺様のLEDチカチカ趣味の範囲」と書き換えた方がいい。
当然、そのレベルの人も排斥はしないので安心してくれ
ライフゲーム、あったよね。
あんな風にざくざく繋げられる基板がトラ技から出たけど、それはともかく。
このスレでも一時期盛り上がったけど、誰か作った人いる?
CPUは暴走するものである。
趣味の範囲を超えるのでお引き取りください。
wdtリセットしながら暴走させる自信あります
そこでWCTですよ
669 :
平井:2012/04/08(日) 14:45:15.21 ID:Xr89hqB0
レバーを食べると妊婦さんは奇形児が産まれやすくなる。レバーがビタミンAを過剰に含んでるのが原因で過剰な摂取は発癌率もUPする
レバーを食べなきゃ普通に生活してる分には問題ありません。 過剰症は頭痛吐き気めまい他多数あるのだけど、個人差があるので全く症状が出ない人も居ます。産婦人科でも教えてくれるますが、全ての産婦人科が教えてくれるとは限らないという事を覚えておいて欲しい。
>>664 新参だけど。トラ技のライフゲームってどんなの?
生物シミュレーションゲーム
>>671 ライフゲーム自体は分かるけど…
例えば1ユニットが8x8セルとかで、
繋げるだけいくらでも拡張出来るように
なっているとかを勝手に想像してみた。
ARMのMARYのこといってるの?
>>670 > トラ技の
ライフゲームじゃなくて、定型にモジュール化した基板を好きなように
ガシガシ繋げて使う、ってやつ。OLEDとかマイコンとか、いろいろあった。
ライフゲームのは
>>672の想像通り。つべかどっかに映像もあったはず。
ライフゲーム、なつかしいな。
あんま関係無いけどCOREWARSも思い出したよ。
アスキーに載ってて、当時まだ学生だったけどコレやりたくて
初めてPC買ってもらったんだわ。
RedCodeやったことがある、あれもある意味アセンブラだな…
とか言ってた奴居たな。
非ノイマン型corewars
純粋関数型言語版CoreWars
ウィキペ見てみたが、よくワカランかった。
もっと面白さを魅力的に解りやすく書いてるページはないのか。
フロッピーのコピープロテクトで自己書き換えする奴があったな
681 :
525:2012/04/10(火) 21:49:52.06 ID:ON0BWRtr
PICKIT3と 18F25K80来ました
秋月ライターは、ブレッドボードと秋月ライター間を行ったり来たりで不便でしたが
PICKIT3は、ブレッドボード上で書き換えられて便利なのは確認しました
デバッグの鬼な方は、すぐにでも PICKIT3に変えた方が幸せになれます
アッセンブラで作ってみることにしたんですが、データーシートと格闘中です
そうですか
俺も最近pickit3買ったんだがスゲー便利。よけいなことだけど、akiライターはこれからどうすんだろ。
どうもしないと思う。
公式のライターが無い・もしくは有っても高価という状況でなら、
安価なライターというニッチでもうけることが出来る。けれど、
この値段で公式ライターが販売されている現状だと、独自のライターを
販売しても、もうけにならない。
在庫処分と、現ユーザ向けサポートだけになるんじゃない?
古いPICに書けないのなかったっけ?
16f84a+PICC LITEで作ってるんだけど、クロックが変だ。。
セラロック10M,20Mで試したけど動かない。。
しかしセラロック外してosc1に100k挟んで5V入れると何故か動くけど、一秒くらいでリセットかかる。。三個くらい試したけど全部そうだったorz
どうやったら普通に動くんだ。。誰か助けて。。
>>687 >三個くらい試したけど全部そうだった
安心しろ。PICは正常動作してるっぽいぞ。
>>687 内蔵クロックで動いて、WDTでリセット?
>687
君を助けられるのは君だけだ。落ち着いて状況を再確認すべし、まず
>セラロック10M,20Mで試したけど動かない。。
と
>しかしセラロック外してosc1に100k挟んで5V入れると何故か動くけど、一秒くらいでリセットかかる。。三個くらい試したけど全部そうだったorz
は全然違う状況のはずだ。
前者はクロックにセラロックをつないでいるが、動作していないとの事だが
・どうやって動作していないと判断したのか?
・なぜクロックだと思ったのか?
後者については、確認のためにしたのだろうが接続方法が正規でないのだから
何の確認にもなら無いよ。それと16F84Aには内蔵クロックは無い
16F86Aのデータシート見ると入力クロックはDC〜になってるけどDC入力したらどうなるんかね?止まるだけだと思うけど
大昔は止められないマイコンが普通だったから
DC〜というのは止められますよという、ある種の性能の表明なのだ
>>692 DRAMのリフレッシュレジスタとかかな?
64kbytesかそこらのRAMが、DRAMでできてるのか。そりゃ、すごいなw
64k じゃなかった。64 だな。うっかりKを入れてしまった。
しかし、何で今時16F84A?
内部のRAMをリフレッシュレジスタでソフト的に管理するアーキテクチャ
いまどきのヤングメンはクロック止めれて当たり前なのか。おぢさんちょっとびっくりした。
止められない奴はダイナミック回路でできてんの。
メモリどころか全体がDRAMみたいなもん。
踊り続けないと死んでしまうのよ。
701 :
687:2012/04/12(木) 19:47:29.13 ID:ILOc23Nl
なんだかんだ皆優しくて泣きそう
>>700さんのRCモードだとおもいます
家で試してみます。ありがとう!!
>>697 CMOSが普通になりだした頃に、DC〜が普通になった気がする。
703 :
774ワット発電中さん:2012/04/12(木) 23:35:05.60 ID:3PWIzt8R
7セグ動かす時ってセグから次のセグの待ち時間はdelayとカウンターどっち使ってますか?
割り込み
表示が漏れるのを防ぐための全桁非表示期間のことを言っているのだろう
Delayもカウンターも気の持ちようとも思うけど。
Delayは-1して0で待ち終了。カウンターは0スタートで+1して任意の値一致で終了。って事を言いたいのかな?
ソフトウェアタイマ
709 :
774ワット発電中さん:2012/04/13(金) 19:48:20.86 ID:ovf27npM
PIC初心者です。C言語をPICのために勉強中ですが、変数について教えて下さい。
変数はいろいろな有効範囲があり関数ごとにいちいち定義するようですがそれが凄く難しく感じます。
使いたい変数は全てグローバル変数として定義しても問題はないのでしょうか?
なぜ変数の有効範囲を設けているのか?それによるメリットなどあるのでしょうか?
よろしくお願いします。
言語のスレで聞くべき話では?
>>709 >変数はいろいろな有効範囲があり関数ごとにいちいち定義するようですがそれが凄く難しく感じます。
>使いたい変数は全てグローバル変数として定義しても問題はないのでしょうか?
>なぜ変数の有効範囲を設けているのか?それによるメリットなどあるのでしょうか?
自分でプログラム組んでりゃ自然と分かるよ。
去年の冬休みからはじめたけど、変数は難しいとか思わないし
意図しないタイミングで変数の中身が変わらないようにするとかじゃない?
こういう事がしたい時にこうするって様な事が書いてある本がなくて
なんかひととおり機能の紹介だけで、使い方の解説があんまりないと思う。
アセンブラのおまけにCのコードがちょっとついてる本ばっかり・・・。
Cの入門書なんて腐るほどあるんだから、そっちで勉強すればいい
マイコン関連本でいまさらそんな基本からいちいち書かないだろう
アセンブラ組むことで見えてくることもある
>709
メモリに余裕があるなら全部グローバルでも問題になる事は少ない。
ローカル変数のメリットは有効範囲がその関数内のみの為、その関数の
処理が終了したらその変数が使っていたメモリを他の事に使い回せる。
変数を10個ずつ使う関数が10個あった場合、全てグルーバルならメモリ100個必要だが
ローカル変数ならメモリ10個ですむ(ただし関数内で関数を呼び出すと+10ずつ増える)
あと>709さんとは感じ方が異なるかもしれないが、私としては変数の名前の管理が楽w
ローカル変数なら使うのが狭い範囲内だけだから、aとかbとかi,jみたいに1文字で
適当でもなんとかなる、グローバル変数はそれなりの名前つけないとわからなくなる。
>>709 例えばある関数の中でforループで使う変数をグローバルにしちゃうと、ループ内から他の関数呼び出しする時にループ用変数が被らないように関数の数だけ用意しなきゃならなくなって、管理が大変。
詳しくは C言語 スコープ でググってみてください。
PIKKIT3についてきたPIC18F45K20を慣れたCCSCで使いたいのですが
初期化関係のレジスタを設定する方法がよくわかりません
めんどくさいので仕様書を読みながら値を突っ込みたいので
0x30000のアドレスからバイトコードで書く方法ありますか?
718 :
709:2012/04/14(土) 00:40:26.14 ID:pyuB0Y0p
>>715>>716 そうですか。メモリ節約と変数の管理の問題があるんですね。
最初はグローバル変数でプログラムを書いて、慣れたらその他の変数を勉強したいと思います。
ありがとうございました。
ここは
>>714みたいなやつばっかりかと思ったが、そうでもないのでちょっと安心した。
まあ何を使おうが目的を達せればいいのよ
721 :
687:2012/04/14(土) 06:08:10.90 ID:Se/K0SL6
アセンブラで書くとかアホだろ。
ハイテックなら瞬殺で入れられるのにな。
もっと早くいれときゃよかった••
ラダーを標準にしようぜ
ああいう原始的なものを抽象化する為に言語を開発しているのに
724 :
774ワット発電中さん:2012/04/14(土) 18:44:41.94 ID:EXz4hpuV
MPLAB X V1.1.0とPICkit3の組み合わせでデバッグプロジェクトをすると
プログラミングを失敗してデバッグできへん。
MPLAB IDEのV8.84でも
The following memory regions failed to program correctly:
Debug Executive
Programming failed
と表示されて書き込めへん。
でも、MPLAB IDEのV8.46なら書き込める。
どういうこと?
>>723 717だけどサンプルプログラムがコンパイルできなくてなぁ・・
#progma?の引数に何入れたらいいのかヘッダ見ても説明不足で分からんのよ・・
全然慣れてないじゃん・・・
サポートに連絡すれば?
CCSも慣れたと言っても2,3週間触ったぐらいだからなー
ハイテックCだともうさっぱりでしかもサンプルはハイテックで書かれてるっぽいし
初期化さえできれば後は何とかなるだろうし、もうちょい解析してみるよ・・
>>723 >>721 場合によってはアセンブラでないと出来ないこともあるし、人によっては
高級言語よりアセンブラの方が得意(とくに組み込みの分野では)だろうから
それはそれでいいのだけれど、Cの話題になっているのにアセンブラとか
もちだすのは、チョットと思う。
PIC16F193Xのブラウンアウト電圧の定義、HI-TECH Cのバージョンが上がるごとに変わってる。
勘弁してくれ。
>>730 その定義関係の説明って何処に乗ってるか教えて下さい・・
ヘルプ見ても型番ごとの詳細は載ってないし
ヘッダファイル見ても説明不足だし、訳ワカメ
>>731 インクルードされるファイルをとどっていくと、デバイス別のファイルに出会えるよ。
PICC-18とかMCC18とかだったらdocディレクトリ以下に定義情報書いたファイルかヘルプが入ってるけどPICCにはないな
>>731 データシートは見ないのか?
データシートとチップごとのヘッダファイル見れば、わかるだろ。
まっ、ワレも84にどっぷり浸かった口だから大きなことは言えんが、そんなミニ規模でいつまでも遊んでおらん方が良いと思うぞ。
ハードは広大だがソフトはもっと広大だ。
CCSや、I2Cのプルアップ云々で悩んでいるんだったら、2chじゃなく、もっと親身なところで解決して、
早く、組込みソフトの真髄世界に取り組んだ方がええ!
もっとも、CCSなんか使っている時点で見込みは無いが w
大事な事は、何を作るかであって、何を使うかでは無い。
I2Cははまったw
思いっきりプルアップ忘れてたよ
しかもファーストI/Oの設定にすると通信不能とか
随分悩んだな・・・
ほぼ立ち上げに近いから誰も教えてくれる人が居ないのが悩みだ
PICの解説本片手にやってるよ
まだ1000行にも達しないプログラムだからなんとかなるけどソフトの比重増えたらきついw
はまる時って、要因が二つある時だよな
これだ、と一つ目を見つけた後が長い
740 :
774ワット発電中さん:2012/04/15(日) 23:29:42.48 ID:HmTXQJWa
>>736 なんでCSSが駄目なんですか?
C言語が駄目ってことですか?
アセンブラじゃなきゃ駄目ってことですか?
C言語と日本語しかできない未熟者です。
741 :
774ワット発電中さん:2012/04/15(日) 23:30:25.85 ID:HmTXQJWa
CCSでしたorz
てす
>>740 沢山ソフトを組むのだ!
すると、Cでは太刀打ち出来ない場面に遭遇する。
あるぇX移行は面倒くさいの?
ハイテックのユニバーサルツールスイートで、メニューのコンフィグ→セレクトでデバイス決めたのちコンフィグの候補いずれかがコンボボックスに表れる仕組みになってたから、主にマクロ使うのやめてたんだけど…
これもセットインコードなのにディスアセンブルではリストに載らん。もっと殊勝なコトするんだ?
訂正、
文中2回目の
×コンフィグ
○コンフィグレーションビット
カタカナで書かれると違和感があるw
picで燃費計をつくりたいです。
2つの信号をカウントしてLCD表示
させるのに適したPICを教えてください
よろしくおねがいします。
>>747 なんでも良い。
8ピンPICだとピン数の問題で厳しいが。
>>748 ありがとうございます。
またよらせていただきます。
プログラム勉強させていただきます。
750 :
774ワット発電中さん:2012/04/16(月) 17:25:24.01 ID:VcpymZXL
秋好きにI2C接続のLCD入ったね。ブレッドボード野郎には朗報かも
ブレッドボードは関係ないけど、ピンをいっぱい取られないのはいいな
別にI2Cじゃなくても、clk, data, stbのふつーのシリアルでも構わないんだけど
個人的には双方向もいらないからUSARTのTx(9600bps)だけでもいいと思う
少ピンマイコンでの開発時の情報表示用とかに使えるのかな
USARTとは違ってシステムクロックの周波数が自由にできるのがI2C接続LCDの利点かな
開発用のモニタはPCに表示させる方が便利
無限にバックログ見れるし
pickitから繋がるし
>>756 そのPICを書き換えればいろいろ出来そうだな
>-未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
>-未16F1825 ---- 08Kw 1024 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
このあたりのピン数すくないにしてはプログラムメモリが多い品種を扱ってこそ
I2Cキャラクタ液晶の使い道ができてくる
秋月さんよろしくお願いしますよ
mikrocでグラフィック液晶制御して遊んでるんだけど、描画がかなり遅いorz
youtubeで18シリーズのPICで凄い速い描画の奴見たんだけど、あれはどうやってるの?
やっぱりアセンブラなのかな?
クロックが違うだけだったりして。
mikrocのライブラリがどんなのか知らんが、
線描画時とかにGLCDからデータの読出しとかやってるなら、
1024バイトのVRAM確保して、VRAM→GLCD の一歩通行にするといい。
常に書込みモードになるから、RW分ののI/Oも減らせる。
しかし、この動画のGLCDいいな。
秋月で売ってるGLCDは画面上部のアイコンが邪魔。
あれのせいでいらん処理が増える。
>>762 それぐらいできるだろ。
お前が遅いって言ってるのはできの悪いライブラリのことじゃねぇの?
0.5MHzのZ80でも余裕
>>759 ゆとりはバス接続がめんどいからSPIですませようとする。
しかもBitBangでなw
>>728 CCSだろうが純正だろうが、なれると関係なくなるな。
CCSにしたって、ゆとり向け組み込み関数は殆ど使っていないし。
データシートからレジスタの番地引っ張った方がわかりやすい
>>763>>764 ごめんなさい。コンフィグが間違ってますた(;´Д`)
例の動画でもmikrocと記述があったので、おかしいと思い見直してみたら低クロックで動いてましたorz
直してみたら劇的に速くなりました
初心者です。始めてまだ1ヶ月くらいですがよろしくお願いします。
LEDの点滅とADコンバータまでは使えるようになりました。
本当にこんな小さな物体にプログラムを書き込んで自分の思い通りに動かせるようになると思うとワクワクします!
最終的にはミサイルの制御基板を作り、北○○に輸出しようと思います!(冗談です)
北海道はそんなの欲しくないと思うよ
北関東だろ
北極星かもしれねぇな。運搬用ロケットにも転用できそうだし。
>>769 回し者じゃあないけど、結構面白いもの扱ってるね。
UART2MMCなんていい感じじゃん。
>>774 UART2MMCって、シリアル通信でMMC(SDにも?)にデータを
書ける又は読めるってことですよね??
今度、工業化学の授業で実験データをSDカードとか
USBメモリにログファイル残したいんだけど、PICとかでシリアル
で接続して使えるのかな?今はパソコンでやっているんですけど
PICで作りたいと思っています。
>>775 PSoCとかしらべてみな。Arduinoならもっと簡単。高いけど。
USBメモリを繋げるようにするには自分がホストになるプログラムを書かないといけないからなあ
人間のくずになってまでUSBメモリ繋げたくないよな〜
>>776 >>777 USBホストを実装するのは大変なので、ここにある
ホストを搭載してUARTで制御できるボード買いました。
FATの仕組みも書かないといけないし作るのは大変すぎると判断しました。
Arduinoは学校では使っていません。実習はすべてPICなので。
ありがとうございました。
>>780 microchipのHPにFATライブラリーソースがあったと思う。
ロングファイルネームを使えないしね。
FAT32+LFNにはMS様のライセンスが必要らしいよ。
>>782 データーロガーなら書くだけなのでLFNが無くても問題無いとは思うけど
>>782 >>783 そうですね。ありがとうございます。
8.3ファイル名ならいいらしいです。日本語でファイル名を
付けたい時、2バイト文字なのでその時はライセンスがいるようです。
難しいですね。SDカードも使うにはライセンスがいるようですね。
linuxのドライバってライセンスどうなってんの?
>>785 勝手に論理構造解析して同等の実装してるだけだから
プログラムそのものはライセンス引っかからないんじゃない?
商用に使ったらよく分からんなー
>>786 >プログラムそのものはライセンス引っかからないんじゃない?
パテントは別
>>787 個人で使うだけならパテントとか無視できるんだがなぁ
LinuxのFATはMSの温情で訴えられて無いだけなのか?と思って
ちょっと調べたらパッチで回避出来る問題らしい
893のみかじめ料みたいな物かね訴えられる可能性を無くしたいなら金払え的なw
>>784 個人的な利用だったらchanさんのfatfs使えばSDHCもLFNも使えるぞ。
ただし、LFNに関しては実装にs-jis⇔unicodeのテーブルがいるからその辺のpicじゃ無理。
しかし、FATでのLFNって、8.3文字を無理やり拡張したような仕様で
結構面白い。後方互換もある。「新しい~1.TXT」みたいな。
こないた買ったばかりのmp3プレイヤーが、
ファイル名がその「MS-DOS形式以外のファイル名に対する短い名前」にしか対応してなくて、
プレイリストを作るとえらいことになる
\Music\2011\01TAST~1.MP3
\Music\2011\02モノ~1.MP3
\Music\2011\03わが~1.MP3
\Music\2011\01TAST~1.MP3 ← 01TASTEは味という意味.MP3
\Music\2011\02モノ~1.MP3 ← 02モノレールでGO!.MP3
\Music\2011\03わが~1.MP3 ← 03わが人生に一片の悔いなし.MP3
(;゚Д゚)
793 :
PIC初心者@1ヵ月:2012/04/20(金) 17:58:19.25 ID:jCok9H5v
すみません教えて下さい!
18F15K22という石を使ってるんですが、外付けクロックにした場合、PORTA.6は空きピンにしかできないのでしょうか?
可能ならIOとして使いたいです。よろしくお願いします。
795 :
PIC初心者@1ヵ月:2012/04/20(金) 18:31:15.08 ID:jCok9H5v
すみません25K22です。
>>795 LATA<6> data output; enabled in INTOSC modes when
CLKO is not enabled.
PORTA<6> data input; enabled in INTOSC modes when
CLKO is not enabled.
諦めろ。
34ページ当たりも読んでおくと良いかも
>>796 やはり駄目ですか。。。
わざわざコピペまでありがとうございました。
データシートくらいちゃんと読みましょうね(^o^)
自己解決できるようになりましょう!(^o^)
英語ができないって!? 甘えないでね(^o^)
799 :
PIC初心者@1ヵ月:2012/04/21(土) 00:26:22.98 ID:qRUY+VWq
(^o^)> テヘヘ
>>793 inputは無理だけれど、outputなら使えるよ。
発振モジュールからのクロックをCLKINに入れる必要があるけど。
EC MODEのあたりを読んでみたらいい。
>>798 >英語ができないって!? 甘えないでね(^o^)
誰に言っているんだ????
PICがデゥイノーよりすぐれているところは?
でも難易度高いの?
>>802 明らかに難易度は上がるが
君のやりたいこと次第では難易度は大したこと無いかもしれない
先ずは触って見ることだ、情報の多い古いPICがおすすめだぞ
>>800 実は4.194304MHzの水晶発振器をつなげて時計を作ろうとしています。
てっきり、HSモードじゃなければ駄目だと思っていましたが、ECモードでも問題は無いと考えて良いのでしょうか?
レベルの低い質問で恥ずかしいですがよろしくお願いします。
>>804 俺も時計を作ってるところだ
手元の本にはHSは発振子、ECは発振器って書いてる
1. RC External Resistor/Capacitor
2. LP Low-Power Crystal
3. XT Crystal/Resonator
4. INTOSC Internal Oscillator
5. HS High-Speed Crystal/Resonator
6. EC External Clock
とあって
2. LP Low-Power Crystal
3. XT Crystal/Resonator
5. HS High-Speed Crystal/Resonator
は
水晶とかセラミックの発振子は単独では発振しないから
発振させるための回路が必要で
その回路がマイコンの中にあって
その回路の最適特性が
接続される水晶とかセラミックの発振子の発振周波数によって異なるから
それをマイコン内部で切り替えるための設定
6. EC External Clock
の場合は外部の(既に発振している)発信器から
直接クロックが入力されるから
LP XT HS のための内部回路の設定は関係なくなる
>>804 RA6を空きピン云々ということは、PICとは独立した発信器からのクロックが、
RA7に入っているんでしょ?それはむしろ、ECモードでないと問題が出るはず。
あとは、configの設定でECモードで、且つRA6をI/Oにするのがあるはずだから、
それでOK。
>>804 データシートを見落としていたな自分orz
ECモードはCLKOUT側を汎用ポートとして使える。(34ページ図2.5)
また、その周波数だと、ECMP ? between 500 kHz and 16 MHzなのではないだろうか?
>>800>>805>>806>>807>>808 どうもです!こんなにレスを頂けるなんて凄く感謝します!
ここは2ちゃんか?と思うほどみなさん優しくて感動しますた!
ECモードにすれば汎用IOとして使用できるということで安心しました。
あとはコンフィグを直して動作確認してみます。
どうもありがとうございました!!!
追伸:
設定は、HSMP = HS oscillator (medium power 4-16 MHz) にしていましたが、何故か5分の計測では1秒も狂わずに動いていました。(たった5分ですが。。。)
とりあえず、RA6をIOとして使いたかったので、FOSC = ECMPIO6 EC oscillator (medium power, 500 kHz-16 MHz) に直してみます。
HSモードは発信器で、ECモードは発振子と思い込んでいたみたいです。
16F88のRB4-7の変化の検出機能についてなのですが、
4ポートまとめての検出は出来るけど、
個別のポートの変化を検出できないようなのですがこれはどういうことですか?
どれが変化しても1つのサブルーチンにしか飛べないということですか?
そのサブルーチンの中で状態を調べて分岐させれば4種類の動作をさせることができますか?
飛ぶとか何とか言う前に、割り込みについてデータシート当たってみたら?
>811
>そのサブルーチンの中で状態を調べて分岐させれば4種類の動作をさせることができますか?
その通りです。
RBIFは最後にそのポートを読みこんだ値から変化したら立つので、前回の値を保存しておき
今回の値とExORすれば該当Bitだけ"1"になるのでわかります。
ただ変化が(マイコン的に)一瞬のパルスだとRBIFは立つけど、読みだす前に戻ってしまうとかは
あるかもしれません
>>813 ありがとうございます!
パルスの動作も了解です(^ー^)
いいなその顔文字、見ててイラッとする。
816 :
813:2012/04/22(日) 01:27:09.52 ID:xr4I+REy
データシートながめてて気づいたけどピンの状態変化割込みって
PICによってBit毎に指定できるのとできないのがあるんだな
16F648A,16F88,18F2550等 Bit毎の指定無し
16F886,18F14K50,24FJ64等 Bit毎のOn,Off指定あり(IOC,CNEN)
Offできないのはピンの割付気をつけないとはまりそう。
Enhanced Mid-Rangeの12F/16F1xxxだと改良されてて
ビット毎に立ち上がりエッジ有効/無効(IOCBP)
ビット毎に立ち下がりエッジ有効/無効(IOCBN)
ビット毎に状態変化発生の有無(IOCBF)
が設定できるようになってる。細かい所も改良しているんだな。
16F886比で16F1xxxだとI2Cスレーブのクロックストレッチ対応性が改善されてたりとか
いろいろ改良されてるよ
寸止め(^-^)
改良された奴はデジタルとアナログの指定がピン毎だけど、
パターンでしか指定できない奴は、何を考えてあんな設計にしたんだ
昔のPICは8bitのプリスケーラをタイマ0とウォッチドグタイマとで共用したりしてまで
回路規模の縮小に勤めていたマイコンなんだぞ
MSSPとかCCPとかもその名残だろうし
デジタルとアナログの指定がパターンでしかできないのもその名残だったのだろうよ
使用PIC PIC16F690
使用ソフト MPLAB IDE,HI-TECC
c言語でプログラミングしているのですが
LEDを点灯する簡単なプログラミングさえできません
ソースファイル(@)を作ってビルドすると以下の様なエラーに関する文(A)がでるのですが
何が間違っているのかが分かりません ご指摘お願いします
@
#include <pic.h>
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLRDIS & UNPROTECT & BORDIS & IESODIS & FCMDIS);
void main(void)
{
TRISC=0;
PORTC=0x01;
}
A
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.81
Copyright (C) 2010 Microchip Technology Inc.
(1273) Omniscient Code Generation not available in Lite mode (warning)
Error [800] test1.as; 45. undefined symbol "FCMDIS"
Error [800] test1.as; 45. undefined symbol "IESODIS"
Error [800] test1.as; 45. undefined symbol "BORDIS"
Error [800] test1.as; 45. undefined symbol"UNPROTECT"
Error [800] test1.as; 45. undefined symbol "MCLRDIS"
Error [800] test1.as; 45. undefined symbol "PWRTDIS"
Error [800] test1.as; 45. undefined symbol "WDTDIS"
Error [800] test1.as; 45. undefined symbol "INTIO"
********** Build failed! **********
プロジェクトウィザードで、ちゃんとPIC16F690を選択した?
物は試し、pic.hをhtc.hに変えてみる。
あとは、前の人と同様だけどデバイス選択。。
826 :
natu:2012/04/22(日) 19:01:25.71 ID:3nbs5I4w
>>823 PICCV9.81は、case文にバグが有るのでV9.83にバージョンアップする。
C:\Program Files\HI-TECH Software\PICC\9.83\include\pic16f690.hを見る。
これで解決しない時は、再度質問する。待ってますよ…
>>828 多分左上に出てくるであろうプロジェクトのツリーがあると思うのだが
そこのインクルードに使用するマイコンのヘッダファイルを指定して突っ込まないと行けないと思うんだ
ある時を境にコンフィグワードの定義名が変わったんじゃなかったっけ?
>828
830さんのいう通りみたい
__CONFIG(FOSC_INTRCCLK & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF);
上記の内容でエラー無くなる
詳細は826さんの言う通り pic16f690.h に書いてある
それと下記を追加しといたほうがいい、アナログ入力なっているのでOFF
ANSEL=0;
ANSELH=0;
MPASMに関する質問です。
byte擬似命令のような物が見つからず、以下のようなマクロを書いて自分でデータ領域を管理?しています。
BYTE macro bank,name
variable tmp=$
org bank
name res 1
variable bank=$
org tmp
endm
bank0 set 0x020 ;data memory bank 0 0x020..0x06f
bank1 set 0x0a0 ;data memory bank 1 0x0a0..0x0ef
bank2 set 0x120 ;data memory bank 2 0x120..0x16f
banks set 0x070 ;data memory bank 0|1|2|3 0x070..0x7f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; グローバル変数
BYTE banks,irh_w
BYTE banks,irh_status
BYTE bank0,led_state
メモリマップは、PIC16F648辺りを想定しています。
で、案の定、テキストというかコードの方が伸びてくると怒られます。
Error[118] C:\NEC_RL55.ASM 234 : Overwriting previous address contents (0070)
適切な方法を教えてください。
>833
回答になっているか判らないけど、CBLOCK〜ENDC でメモリを確保するのが一般的かと
CBLOCK 0x20
AAA1,AAA2,AAA3,AAA4
ENDC
CBLOCK 0xA0
BBB1,BBB2,BBB3,BBB4
ENDC
CBLOCK 0x120
CCC1,CCC2,CCC3,CCC4
ENDC
>>835 ありがとうございます。
833のマクロは、データの宣言があちこちに散らばる事に耐えられるのが長所でした。
昔は833のコードが通るアセンブラを使っていたのですが、最新のMPASMには嫌われてしまったようで。
835の集中管理方式に切り替えてみます。
5V→150Ω→赤LED→光る
PICのBポート→150Ω→赤LED→光る
5V→150Ω→赤外LED→光る
PICのBポート→150Ω→赤外LED→光らない
投了です。
>>837 自己解決しました。
やはりこのテのICはsourceとsinkで全然実力が違いますね。
データシートには両方とも25mAと書かれていますが、間違いとしか思えません。
200mAを絞り出すには8port束ねてsinkで使うか、素直に2SC1815辺りに頼るか、悩みます。
>>838 ポートを重ねるのはお勧めできない。
たしか、何かの仕様で、ポートごとに出力タイミングがあった気がする。
だから、同時ON,OFFにはならない。だったはず、間違ってたらごめん。
私だったら、1ポートでA1015に委ねる。
ポート一つあたり200Ω付けて、LEDの直前で束ねれば良いような気もするが。
>>837 どのPIC使うのかにもよるけどポート毎に最大許容電流が決まってるし、パッケージ自体の最大許容損失もあるから…200mAも流すなら迷わずトランジスタ外付けにしたい。
>>838 >データシートには両方とも25mAと書かれていますが、間違いとしか思えません。
おいおい、それは絶対最大定格だろ。どう見てもあなたがデータシートを
読み間違えてるんだが。
PIC燃やし隊…
>>842 はははっ。こいつはひでーな。
反省してデータシートひっくりかえしてきたよ。
sinkが0.6V落ちで8.5mA、
sourceが0.7V落ちで3.0mAとな。
こりゃ1portで25mAとか7本束ねて200mAとか言ってる俺がキチガイレベルだな。
大人しく2SA1015でも使うわ。Yぐらいならパーツ箱入ってるだろ。
(今見たら、YとGRが何本か転がってた。)
ゲートの電流制限抵抗も忘れねーよ。ちょっと待てゲートじゃねーだろ、馬鹿。ベースだベース。
……
失礼致しました。
いまごろトラ技を読み終えたんだが、次号はPIC特集らしいな。
700品種もあるとか書いてあった。
その時点でのベストなものを提供し続けてるだけで、
過去の遺物は製作記事を丸コピーする時以外には必要ないのでは
ものすごく素朴な疑問なんですけど
PIC kit2 と PIC kit3の違いって何ですか?
ケースの色
差異は128kと512k、シリアルUSBの有無だけ?
あったりめーだのクラッカー
そういやpicって途中で入力と出力切り替えたり出来るんだっけ。
これで足を倍に使える方法とかないかしら
私は文系で、いままでarduinoで馴染んだ。
トラ技をかったら全部PIC関連だったのでこれからはPICを学びたい。
最も基本的なハードやセットもしくはお勧めの本あったら教えてください。
まわりに詳しい人は誰一人いません。
>私は文系で、いままでarduinoで馴染んだ。
文系とは思えない文章力ですな。
これからはPICの時代だからな
異論は認めない
>>852 4ポートでLED12制御出来るサンプルとか見つかるよ
857 :
774ワット発電中さん:2012/04/25(水) 18:04:27.68 ID:2ntiNVBI
久々にPICいぢることになりそうなんだけど
PICの最近のお勧めコンパイラーってなに?
Grich社製のPICCがオススメ
mikroCが楽で気に入ってるけど、使ってる人が少なすぎる
俺も使ってるべ。mikroC
今はどうか知らんけど、ライブラリの充実度がmikroC>HItechだったからな。
861 :
774ワット発電中さん:2012/04/25(水) 19:46:02.26 ID:2ntiNVBI
PICkit 3 Debug Express
とかと組み合わせてデバッグできるの?
>853
Arduino使ってたのなら素直にAVR MEGAやTINY使った方が良いよ
それ以上の性能が必要ならPIC24やdsPICという選択もあるけど
新規に12F,16F,18Fやるのはやめといた方がいい
>>862 PICをやってみようかという理由が「トラ技にたくさん載ってた」なのだから、
それはそれで良いんじゃない?MEGAやTINYで出来ることは殆ど12F, 16F, 18Fで
出来るんだから。Arduinoを扱ってたときにアセンブラを使っていなかったのなら、
AVRもPICも差がないと思う。
>>853 まずは、良い本を見つけることだね。本屋で色々見て、自分にあったのを読んで
始めたら?PICkit3を扱っている本は、新しい情報が入っていると思っていい。
AVRの本の方が面白そうなら、それはそれでよし。
教えてくださった方々ありがとう
>>864 良い本か、セットを教えていただければと思います。。
電子回路もC言語も知ってるけどPICだけ知らない、という人と
Cだけ知ってる人と回路だと知ってる人と、みんな知ってるけど応用が判らん人と、
いろんな立場がいるからなあ
そして、その組み合わせ全てに対して本を出す男
キーエンスのセンスでPICキットがあればなぁ
PLC業界が本気でマイコン領域に殴りこみかけてくれればうれしい
あーなんだよーーーー秋月ライタのファーム更新失敗したー・・・
どーすん、これ。
PICkitに買い替える
>>868 逆にPLCがマイコンに食われちゃうからやらないんじゃね?
まあ、信頼性とかの問題はあるけど、あんなのがウン十万円とかね、もうね。
でも、ラダーで書けたら便利かも。
>>846 その丸コピーを含めて、ある程度再現性のあるものを作りたいよ。
せっかく一から作るなら。
さすがにF84を今から使う気にはならないけど、定番というものは欲しい。
かなりのところまでピンコンパチを保ってるし、
ソフトも設定部分だけの変更で大抵はそのまま動く
だから、理解さえしていれば回路もソフトもほぼ使い回しが効くのに、
一切変えたくないという人が過去製品を使う
875 :
709:2012/04/26(木) 22:11:33.77 ID:8ClLeb9U
同じような質問ですみません。
PICをC言語で勉強中なのですが、ポインタとかワケワカメなので、
プログラムで使う変数は全てグローバル変数にするのですが
例えばdouble型の変数を100個使ったらどのようなPICを選べば良いのでしょうか?
ROMサイズとRAMサイズがいろいろあるので、何が何だかわかりません。
よろしくお願いします。
>>875 > 例えばdouble型の変数を100個使ったらどのようなPICを選べば良いのでしょうか?
double型の変数を100個使えるPICを選べば良い
double型だと64bit必要だから64/8で8バイト
変数だけで8X100で800バイト必要なわけだ
最低でも1kbのRAM容量は見ないとダメじゃない?
しかもPIC16Fシリーズはページ切り替えとかの罠もあったような・・
879 :
709:2012/04/26(木) 22:41:41.26 ID:8ClLeb9U
>>866 ありがとうございます。よくわからないから基盤付きにしてしまいそう。
>>867 両方知りません。
特に定番セットみたいなのはないんですねw
デバッガーとはどのように使うのでしょうか?最初から購入したほうがいいのでしょうか?
>>879 確か16Fシリーズはバンク切り替えを跨いでの配列は使えないから
18F以上を選んだほうがいいかもね
自分はそんな大きな配列使ったことがないから詳しい人求むw
882 :
862:2012/04/26(木) 22:54:30.33 ID:Ex6isyI4
>879
64bit変数を100個も使いたいなら、8bitじゃなくて16bit以上のマイコン使った方がいいよ。
PICならPIC24やdsPICとか >545
883 :
709:2012/04/26(木) 22:57:09.02 ID:8ClLeb9U
何を作ろうとしてるのか知らないけど、マイコンの限界に挑戦するのはもっと経験を積んでからの方がよいかと
ファミコン時代のプログラマーじゃないんだし、低スペックなPIC16Fにこだわる必要はあるのか?SHとかを検討すべき仕事じゃないのか?
>>883 0から始めるならPICや他のマイコンの本買って
それに乗ってる実例集をやって練習するのが早い
いきなり配列100個とか確保してそれを処理するスピードが
どれぐらい必要なのかも分からないだろう・・?
一番高いのが良いよ。
>>883 18Fだと、800バイト長の領域を確保できることは出来るんだけれど、
リンカースクリプトを作成しないといけないんじゃないかな。初心者が
いきなりする事じゃないね。
>>885の言うとおりだと思う。
初心者で本当にdoubleが100個必要なら、
>>882とか
>>886の言うように、
高機能なのがいい。PIC32MX150F128Bとか?
>>880 なるほど。あなたの場合、ブレッドボードが使えるようになった方が
良いかもね。これについても、本屋で一度調べてみたらいいよ。
そこで基板付きに頼ってしまうようなら、Arduinoに戻った方が良い
という結論になると思う。
デバッガーというのは必須でないけれど、プログラマーは必要だよ。
これについても、ここで質問するのでなく、買った本にそって進めたら
いい。たぶん、PICkit3(プログラマー+デバッガー)を使うことになると思う。
PICで一番高いのってちょっと気になるなw
PIC用のCでdoubleの中身が32bitのfloatではなく本当のdouble(64bit)である
ものってそもそもあるのでしょうかね
>>890 MPLAB C compilerだと、16bit以上のPIC対応(C30, C32)で、64bit長のdoubleが有るみたいだね。
18F用のC18では32bit長。調べておいて良かった。thanks
こちらこそどうも
>>875 >例えばdouble型の変数を100個使ったらどのようなPICを選べば良いのでしょうか?
ここの部分だけれど、本当にdoubleの精度の変数が100個も必要なの?
マイコンを使う場合、例えばPICだとそれぞれ、
PIC12, PIC16, PIC18の場合、unsigned char
PIC24, dsPICの場合、unsigned int
PIC32の場合、unsigned long
などの符号無し整数が基本だと考えた方が良い。浮動小数点を使うのは、基本から外れてる。
もう少し考え直してみたら?
単にCを勉強したいのなら、Visual Studio等の方がお勧め。
組み込みで何かやりたいのなら、符号無し整数を考えた方が良い。
>>871 前の会社の時はキーエンスとか高くて、カタログ見てるだけだったなぁ
>>889 時価って書いてあったりして
>889
Microchipのページ見ると現行品で高いのは意外にもPIC18Fで
PIC18F8723 $8.44(@5k個)
案外PIC32とか高くないね、DIP限定でも色々あって面白い。microchip直で買えるけど送料$20位?
PIC32MX250F128B(PIC32のDIP28,40MHz,USB,128KB-FLASH,32KB-RAM) $4.09(@1個)
PIC32MX110F016B(上のメモリ小DIP28,40MHz,USB,16KB-FLASH,4KB-RAM) $2.66(@1個)
dsPIC33EP64GP502(dsPIC33EのDIP28,70MIPS,64KB-FLASH,8KB-RAM) $4.22(@1個)
PIC24EP64GP202(PIC24EのDIP28,70MIPS,64KB-FLASH,8KB-RAM) $3.57(@1個)
PIC24FV32KA301(PIC24FV 5V入出力可のDIP20,16MIPS,32KB-FLASH,2KB-RAM,512B-EEPROM) $3.09(@1個)
dsPIC33FJ12GP201(dsPIC33のDIP18,40MIPS,12KB-FLASH,1KB-RAM) $2.97(@1個)
PIC24F08KL200(PIC24F DIP14,16MIPS,8KB-FLASH,512B-RAM) $1.80(@1個)
そうなんだよね、意外と古いのを無理して使っているのが一番コストが掛かるという
16F876AとかRSで600円ぐらいだったかな新しいPICなら300円以下で同等以上とい事に・・
LTと同じくディスコンしないから古いプロセス残すコストだとは思うが・・w
どんな役に立つもの作りました?
妻の理解が必要です。
電動バイブ
まつのえだもくらいかげありし
>>897 どんな物を作れば役に立つか、奥さんに聞けば良いんじゃない?
携帯と電卓ってこたえられたよ。。。
電卓なら出来る。がんばれ!
目覚まし時計を今作ってる
爽やかな目覚めを追求したい
ICSPで走らせるとうまく動くのに
スタンドアローンだと動かない場合は
どんな原因が考えられますか?
電源がつながってない
>>904 PICKIT3に付いてきたPIC18F45K20だけど
PicKIT3繋いでるとちゃんと4MHzのセラロックが発振するのに
レギュレータ電源だと発振しなくなって悩んだな、
20MHzの水晶に変えたらOKだった、発振出力オシロで見るといいかも
発振電圧が低い時は上手く発振してない可能性がある
マカーだけど、初PICでLEDチカチカ成功したyo
いつの間にかOSX上での開発環境が出来上がっていたなんて知らなかったので、
半信半疑でインスコして、ネット上のコードを参考にやってみました。
新しい奴だとヘッダファイルの記述が変わっているのにハマりましたが、
なんとか無事Lチカまでこぎ着けました。
自分のプログラムでハードが動くと言うのは癖になる楽しさですね♪
俺は超小型で強力なステッピングモータを3軸分使い、256通りのパターンで動く電動こけし作って実用化しようと画策しておる
これは間違いなく売れると確信しているわ
早速特許庁へ足を運んでいる最中だわ
呑んだら寝ろ
3軸なんてケチなこと言わずに多関節にしろ
試験工程にはよんでください。
もちろん温度や周囲の電気抵抗の情報からPICでフィードバック制御するんですよね?
もちろん湿り具合もフィードバックして下さい
PIC間をZigBeeで通信する情報が見つからないお(´;ω;`)
そ、そりゃ大変だ!
亀頭型ロボットを、いやなんでもない。
エクステンダー
モルモット用に温度で自動入切するエアコンのリモコンこさえた
エアコンの自動運転じゃだめなのか
>>919 もるもっとのそばの温度じゃないとダメとか
そんなにいいエアコンじゃないとか
どうだろう?
>>919 寒い、暑い、もちょっと。チョイ戻し。そのへん。音声認識でエアコンをコントロール。
赤外線通信でいけそう。
俺がモルモットに・・・
冷暖房の温度センサを測定されるべき場所に移したいとかはあるかも。
というかそういう構造の製品がそろそろ出ててもいいと思うの…
>>923 昔使っていたシャープのエアコンはリモコンにも温度センサーが付いていて勝手に赤外線送っていた。
PICで温度センサー作ってる情報ない?
Explorer 16 Development Boardに温度センサー付いててデモプログラムで温度表示されるよ
PIC自体が温度センサーになるってこと?
8MHzのHFINTOSCにくらべて31kHzのLFINTOSCの温度特性はかなり悪いみたいだから、そこらへんを利用してどうにかできるんだろうか
ボードにセンサーついてるんじゃね
温度センサーicとかあるし楽勝だろ
Picはエフェクターとかシンセには重宝するよ
>>929 それ言ったら面白くないじゃない、RTC使えば時間精度は出るし、そもそも温度センサ使えば温度は分かるんだからw
最近のは温度計内蔵してるのか、知らなかった
16F886の場合、HFINTOSCは-40〜125℃で±5%の精度が確保されるけど、LFINTOSCは15〜40kHzに変動する
個体差があるだろうから、実測して適当な補正関数をかける必要はありそうだし、もちろん実用性は皆無
そもそも同時に使えるのかよくわからない、timer経由で比較できるかな
>931
実用性無視での話ならw
WDTはLFINTOSCに依存するから、PIC16F886をHFINTOSCの内蔵クロックで
動作させTMR1を動かしておいてWDTのTime-out でRESET後タイマーを読みだせば
通常より長いか短いかで判るかも
(WDT Time-out RESET後でもTMR1の値は変わらないらしい)
>>919 温度によっては止めたいし、あと停電後の運転復帰もさせたかった
934 :
904:2012/04/29(日) 19:51:51.50 ID:LAcl32wo
>>905 >>906 ありがとうございます。
目視できる程度までプリスケーラで周波数を落としたら
その領域では正常に動いてるようなんです。
素人の趣味なんでオシロは無理です。
周波数チェックする安上がりないい方法ないですかね。
>>934 今安いオシロあるし1台買うといいよ
高いデジタルテスターよりも安いのが売ってるという時代だ
自分は張り切りすぎて鯵の新型買ったが・・w
937 :
774ワット発電中さん:2012/04/29(日) 20:55:05.01 ID:jiOwhnak
939 :
904,934:2012/04/30(月) 01:22:48.10 ID:ME440nUs
>>936 >>938 秋月のテスター、買ってきます。
何だか安くて心配ですが、いろいろ話題に上がってるようなので、使えるヤツかも。
ありがとうございました。
オシロもなんもないなら
せめてUARTでprintfデバッグでもできるようにした方がいい
pickit持ってるならロジアナである程度判ると思うけど
俺もオシロ欲しいけど、いまのところPICで作った手製の周波数計測器だけで何とかやってる。
あ、オシロも持ってたのを思い出した。これも、PICで出来てるw
デバッグはprintfデバッグっぽくEEPROMに書き込んで、それをPICkitから読み出して見てる。
ArduinoよりPICの方が良い点ってなに?
安い。
AVRとPICを比較ならわからんでもないがArduinoとPICの比較に意味あるん?
早い。
うまい。
947 :
774ワット発電中さん:2012/04/30(月) 16:15:32.68 ID:MKIPcPIV
>>941 PICで作ったオシロって凄いなぁ
よく言う 100MHz 1GS/Sとかはどのぐらいなの??
948 :
natu:2012/04/30(月) 17:48:28.56 ID:2xD6N4Cm
1Gサンプルで100Mの信号が観測できるって事
>>944 何かを実現するに当たって、PICやArduinoその他の候補からどれを使うか考えるってのは
普通に比較することだと思うが、お前に言わせれば意味がない行為なのか?
>>949 カルシウム補給が必要です。落ち着いてね。
割り込みでスイッチが押されたことを検出して動作させる場合
チャタリングの対策をしていないとONの時に実行すべきプログラムと
OFFの時に実行すべきプログラムが入れ替わって動作してしまうことはありますか?
>>951 入れ替わると言うよりは、ONの処理、OFFの処理、ONの処理って具合に
連続して処理する事になるかと。なお、作りに依る。
判断するタイミングが遅いとONの代わりにOFFの処理をする事もありそう。
スイッチ押す時はチャタはないかもしれんけど
スイッチ離す時にバウンドするかも、入力が
タイマー0を使って1時間に○○をする。というプログラムを作りたいのですが、だれか雛形を戴けないでしょうか?
>>954 ↓自由に使っていいぞ
main()
{
}
>>949 俺はシステムを組む上でPICとArduinoを比較しないし比較する意味があるとも思ってないけど
それらを比較する必然性(?)のある人にとっては確かに意味があるのかもしれないね。
自転車とバイクが比較対象になるか、というような問題
同列には並ばないけど移動手段としての比較にはなる
自転車好きにとって自転車とバイクは同じものを指します。
自動二輪ならモーターバイクかと。どうでもいいことですが。
>942
PICのメリット : 安い、小さい、種類多数、自由度が高い、できた時の満足度が大きい
Arduinoのメリット : 目的をPICより短時間に効率的に達成できる(と思う)
PICのメリットはAVRの単体チップでもほぼ同じ事言えるから、今Arduino使ってるなら
AVRスレに行きなさい。
>954
もっと情報書かないと無理だよ。PIC何使うとかクロックは内蔵/水晶?
割込みで作りたいのか、単に時間待ちなのか(TMR0使う必要もないけど)
>1時間に○○をする
1時間後なのか1時間毎なのか13:00なのか
963 :
947:2012/05/01(火) 02:08:06.56 ID:Un3I0C0S
>>948 100MHz 1GS/Sの意味で無くて
PICで作ったオシロは、そういう言い方すると、どのぐらいの性能なのかな?と思って
AVRとPICの利点欠点って何
>>964 色々使ってるようなので聞きたいけど
PICとAVRあとArduino?何かを作ろうとした時にどういう基準で選択してるの?
みんなPIC以外は何使うことが多い?
ロジックICを沢山繋げたりとか・・・・
>>967 汎用ロジックとか、CPLDとか、PCとか。
>>963 PIC内蔵のA/Dコンバーターで読み取ってPCに送信しているだけなので、
当然ながら遅いです。さっきプログラムを見てみたら、サンプリング
レートが24 Khzでした。
>>967 CPLDやロジックICやAVRやOPアンプやトランジスタなど色々
石と木を材料として比較するなら理解できるし
石造りの家と木造の家を住み心地で比較するのもわかる
だが石と木造の家を比べてどうする
と
>>944は言いたかったんだと思う
なのに
>>949がっ
972 :
961:2012/05/01(火) 15:57:55.68 ID:jg6WbgEh
>965
PICもAVRも両方使った事あるなら、なんで>942,964を聞くの?
触ったことない人が>942,964の質問するならしょうがないけど
使った事あるなら、1行質問じゃなくて
「自分は〜と思うけどみなさんはどうですか?」くらい言えないの?
秋葉の秋月店頭でpickit2の実験基板つきが\3500で売られてるよ。
実験基板なしと値付け間違えてんじゃねーのと思ってわざわざ店員に確認した
けど、その値段で間違いないと言われた。
通販ページだと実験基板つきは今でも\5000なんで、直近でpickit2買おうと思っ
てる人がいたら、秋葉まで出れるなら秋月店頭での購入がお勧めかも。
でもまあ、値札ミスだろうなぁ。確認した店員さんが詳しくなかったんだろう
なぁと思う。
みなさんお使いのコンパイラは下の計算だとどんな値が返ってきますか?
x = 1;
y = 0;
x = x / y;
x?
よろしくお願いします。
データ型は明示しないと駄目。
あっ、0割り算か。
可能性としてあり得る場合は通常はガード入れる。
977 :
974:2012/05/02(水) 00:33:54.87 ID:YSb4DEl+
自己解決しました
>>976さん、ありがとうございます
只今、グラフィック液晶に過去128分の車速を切れ目のない折れ線グラフで表示する自作関数作っていますが、やっと出来上がりました。
まるっきり0からのC言語でしたが、1ヵ月で低レベルなプログラムならなんとかできるようになりました。
このスレではいろいろと質問ばかりでしたが皆さん凄く親切で感謝しています。
>>973 PICkit3が売れて、2の方は売れ残ってるからじゃない?
>>977 mbedつかってみては?
最先端は楽だべ
board orange買って来てprintfやってビビるとこかは始めればよいよ
PWM信号を読み取り、電圧に変換出力するプログラムと回路を下さい。
よろおね
なにその丸投げ
電圧計でよくね
LPFを使う