[新シリーズの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可能
3 :
233 :2012/05/02(水) 21:48:51.25 ID:b4xeqkTp
秋月の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命令有
5 :
774ワット発電中さん :2012/05/02(水) 22:17:18.52 ID:rE16su77
一応 リスト新しいの作ってあるので貼っとく
【Enhanced Mid-Range】[新シリーズのPIC12F/16F1xxx テンプレ用] ('12/03版) 旧シリーズ(Mid-Range)より機能が大幅UPしていて値段も安い、新規に組むならこちらから 秋月に入荷していないラインナップも参考のため表記(未),MIPS値はクロックの1/4 [40pin] 16Kwハ必要ナイカモシレナイケド10円差ナラ -◎16F1939 \170 16Kw 1024 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 LCD24 -○16F1937 \160 08Kw 0512 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 LCD24 -未16F1934 ---- 04Kw 0256 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 LCD24 [28pin] こちらも10円差なら -◎16F1938 \150 16Kw 1024 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 LCD16 -○16F1936 \140 08Kw 0512 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 LCD16 -×16F1933 \140 04Kw 0256 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 LCD16 [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 -◎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/0 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 -◎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],CapS=CapSense,Comp=Comparator 共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計(?) VDD1.8〜5,5V,Max32MHz(Vdd2.5V以上),4xPLL有,内蔵OSCでも32MHz可(8MIPS) プログラム面で新命令追加,bankは32マデ拡張,スタック16レベル,LATが追加,割込時のレジスタ自動保存 16bit幅で2本になったFSRデ別アドレスに連続配置RAM(0x2000〜)やプログラム領域(0x8000〜)アクセス可能 追加命令群 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可能
【Mid-Range】秋月のPIC12/16F(旧)シリーズ 命令セット14bit幅&DIP品限定ピン数別評価 ('12/03版) あくまでも旧シリーズ内での相対評価。新シリーズが使えない場合のみ有効,MIPS値はクロックの1/4 40ピンは決まり -◎16F887 \180 40ピン600mil幅が許せるなら 旧シリーズ最強 28ピンはフラッシュとSRAMの差をどうとるか -◎16F886 \170 887よりピン数減ってスリム(400mil幅) -○16F883 \150 886との違い8Kw→4Kw,SRAM368Byte→256Byte ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31k-8MHとフルサポート 新しめのチップで内蔵モジュールも多,大きささえ許せば20,18ピンよりこちらを 20ピンはF690のバリエーション多,価格差小なのでF690か,OPアンプF785,ポート割りがチョットカオス -◎16F690 \140 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31k-8MHzとバッチリ -○16F689 \130 F690からeCCP機能削られた -△16F687 \120 さらにF689を2Kwと半分に -×16F677 \120 さらにF687からeUSARTも削られた -×16F685 \150 F690からSSP&eUSART機能が削られたのに値段高いとは -◎16F785 \130 ADC有,CCP有,2Kw,内蔵31k-8MHz,OPアンプ搭載が異色(新シリーズにも無) 18ピンは種類は多いけど選択の幅は狭い。値段でF716いっそ20pinにするか -×16F84A \250 機能無,1Kw,新規では不要だけど作例参照用or互換用に -×16F648A \160 CCP有,USART有,4Kw,内蔵4MHz,ADC無同士でF87に軍配 -△16F628A \140 F648Aの2Kw版,売りが値段だけだと厳しいかな -△16F627A \120 F648Aの1Kw版,上に同じ -×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・ -○16F88 \200 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31k-8MHzと旧18ピンの王者ダガ高い -○16F87 \150 F88のADC無Ver,ADC無が問題なければ -○16F819 \170 ADC有,CCP有,SSP有,2Kw,内蔵31k-8MHz,F88とはROM,USARTの差 -○16F818 \150 F819の1Kw版,多機能なだけに1Kwに不安を感じる -◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意 14ピンは10円差ならF688 -◎16F688 \110 ADC有,eUSART有,4Kw,内蔵31k-8MHz,CCP無が残念 -△16F676 \100 ADC有,1Kw,内蔵4MHz -×16F630 \100 F676のADC無し 無機能で影薄い 8ピンは多機能のF683かEEPROM無くても良いなら\60のF615 -◎12F683 \100 ADC有,CCP有,2Kw,内蔵31k-8MHz,8ピンとしては多機能 -△12F675 \80/90 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版 -△12F629 \70 675のADC無(機能無しってこと),EEPROM必要で安いの求めるなら -△12F635 \90/100 機能無し,1Kw,内蔵31k-8MHz,31kHz〜必要なら,環境によってはE/P版 -◎12F615 \60 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無さえ問題なければ -×12F609 \60 F615からADC,eCCP機能省かれてる (参考)【Baseline】機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ -△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら -△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら -×12F510 \60 ADC有(8bit),1kw,内蔵4Mor8MHz,EEPROM無し -△12F509 \50 機能無し,1Kw,内蔵4M,EEPROM無し -△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用 -△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用 マークの意味 ◎お勧め、用途決まっていないならこれ買っとけ ○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ △内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ ×ソースを変更できない等の理由がないなら、選択する必要なし 自分で、プラグラムもハードも作れる人のためのリスト。 そもそも、教科書に載ってるのとか他の方の作品とかを作るだけなら 指名買いするしかないのだから お勧め度は意味がない
【PIC18】秋月のPIC18シリーズ。5V動作可(J除)で比較的高速(10〜MIPS) 新型のKシリーズは多機能で 高速(16MIPS),USB機能ありがラインナップ,命令系は16F(Mid-Range)から+αレベル,MIPS値はクロックの1/4 ('12/03版) 40ピン 旧ラインナップしかないので苦しい、USB&12bitADの4553か不要なら4525もありかな *◎18F4553 \430 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,12bitADC,CCP1/1 -○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 *△18F2553 \420 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,12bitADC,CCP2/0 -×18F2550 \350 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,CCP2/0 -×18F2455 \340 12Kw/2048/256 ●USB,↑2550のメモリ縮小版 -×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 *○18F25K22 \170 16Kw/1536/256 ↑26K22のメモリ縮小版 -△18F23K22 \160 4Kw/512/256 ↑25K22のさらにメモリ縮小版 -◎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 ●USB.↑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 ●USB,↑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
【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(32MHz) (一部ピン5V入力可),I/Oリマップ 24Hシリーズ Vdd3.0-3.6V Max40MIPS(80MHz) (一部ピン5V入力可),I/Oリマップ 30Fシリーズ Vdd2.5-5.5V Max30MIPS(120MHz) DSP命令有,(5V動作可) 33Fシリーズ Vdd3.0-3.6V Max40MIPS(80MHz) DSP命令有,(一部ピン5V入力可),I/Oリマップ
秋月じゃ売ってないけど面白しろそうなDIP品群 32bit性能 → PIC32MX250F128B (DIP28,40MIPS,USB,128KB-FLASH,32KB-RAM) 32bit再安 → PIC32MX110F016B (DIP28,40MIPS,16KB-FLASH,4KB-RAM) 驚70MIPS! → dsPIC33EP64GP502 (DIP28,70MIPS,64KB-FLASH,8KB-RAM) 5V入出力! → PIC24FV32KA301 (DIP20,16MIPS,32KB-FLASH,2KB-RAM,512B-EEPROM) 18p40MIPS → dsPIC33FJ12GP201 (DIP18,40MIPS,12KB-FLASH,1KB-RAM) 14p 16bit → PIC24F08KL200 (DIP14,16MIPS,8KB-FLASH,512B-RAM) アナログ色々 → PIC16F1783 (DIP28,8MIPS,2kW-FLASH,512B-RAM,256B-EEPROM,OpAmp,12bitADC,8bitDAC) 米粒 上位 → PIC10F322 (DIP8,4MIPS,0.5kW-FLASH,64B-RAM,命令Mid-Range,SOT-23デバッグ用)
>>1 -ちょっと前
まとめも乙。
しかし、まとめてもこの数・・・
どっかにWikiでも置かないか? 管理は任せた。
2chの過去ログ以上に保全されるなら
このリストがあるからこそ私はこのスレにくるのだ
8pinのPICで6pin全部出力に出来るのって有りますか? めぼしい機種を調べてみたんですが、 1pinが入力のみになってるのしか見つからないんです。 もしかしてそんなものは存在しないのでしょうか(´・ω・`)
確かに5個までのしか知らないな
>>15 8ピンPICで入出力可能なのは5本までだけど、MCLRを弱プルアップして擬似的に出力として使う裏技があったと思う。
なるほどなるほどI2C的な手法ですな
しかし、出力しかないプロセッサは何を処理するんだ?
6pin全部Outにしちゃったら、どうやってCLRするんだ?
車のCAN通信から信号拾って キャラクタ液晶に速度を表示させたいんですが 今時だとどういう方法がおすすめでしょうか。 保有スキルは、PIC16F84Aでキャラクタ液晶に文字を出せる程度です。
22 :
15 :2012/05/03(木) 01:29:47.78 ID:RfPahMMF
LEDを6個8pinのPICに繋げようとしたら、1ピンだけ入力onlyだったんです、それで picは種類が有るから、もしかしたら6pin全部出力なのが有るのかなぁと思って質問した次第なんです。 おとなしく14pinのPICを使う事にします(´・ω・`) 皆様、どうもありがとうございました。
出力6ピン無くても LED6個なら個別にON/OFFできるぞ
>>21 CAN対応のPICにキャラクタ液晶つないで適切なプログラム書けばいいんじゃね?
>>22 LEDがスタティック表示でなくてもいいなら、出力4本あればシンクとソースの組み合わせで何とかなるんじゃないかな。
I/Oエキスパンダーという選択肢
>11 PIC1650って現行のBaseline(16F57や10F222等)のPICと比較して 命令でCLRWDT,OPTION,SLEEP,TRIS無いだけなんだな (というかPIC1650からこの4命令が追加されただけ) メモリ構成も現行と変わらない 00H - INDF , 01H - TMR0 , 02H - PCL , 03H - STATUS, 04H - FSR 05H - PORTA , 06H - PORTB , 07H - PORTC, 08H - PORTD 09H〜1FH RAM Mid-Range(多くの16F系)も18Fもこの延長だし、古くさい設計だとずっと 思っていたけど36年も前とは、ほんとに古かったんだな(笑)
プルアップするかしないかで出力するんでしょ
>30
ttp://arms22.blog91.fc2.com/blog-entry-153.html 多分この事だと思うけど…
この例の10F222は データシートの図(BLOCK DIAGRAM OF GP3)で
OPTIONレジスタのGPPUでpull-upの有無を制御できそうだけど
例えば12F683だと、データシートの図(BLOCK DIAGRAM OF GP3)から
ConfigurationWordのMCLREでしか制御できない様に見える
CONFIGの動作中書き換えって出来ましたっけ?
MCLR兼用ピンのプルアップはできるのとできないのがある。
>>28 MicrochipのI2C I/Oエキスパンダを通してグラフィック液晶を駆動したんですが、
描画速度が異様に遅かったです。PIC I/Oポート直接接続にすると
使える速度でした。私のI2Cインターフェースプログラムがタコなのか、
I2C(400kHz)で動かすと本質的にトロいのか、どっちなんでしょうか。
>33 ざっとデータシートみた感じだとこんなかな やっぱり新しい12F1822だね ○12F1822 入力モードでPull-up制御可 ×12F683 入力モードでのPull-up不可、MCLR設定で強制pull-up ×12F615 入力モードでのPull-up不可、MCLR設定で強制pull-up ×12F629/675 Pull-up自体無し(MCLRとして使うなら外付けpull-up要) ○12F510 入力モードでPull-up制御可
前スレで200mA出力とか言ってた馬鹿です。 2SC1815一石を使って赤外LED4個を駆動することで落ち着きました。 さて。 エネループ4本で動くリモコン回路を作ったのですが、 内部発振4MHzのsleep状態で回路全体の消費電流が140uAでした。 何か待機電流を減らす工夫はありますか? ;アナログコンパレータは動作させていないつもりです。 movlw 0x07 movwf CMCON ;外付けプルアップ抵抗を省略するために内部プルアップを使っています。 bcf OPTION_REG,NOT_RBPU ; port bをプルアップする 石は8pinで充分のところ無駄に18pinの16F648Aです。 レールで買ってしまったので使い切らねば。 16F84を使い切るのは諦めました。
>>35 > ×12F629/675 Pull-up自体無し(MCLRとして使うなら外付けpull-up要)
こればっか使ってるから、そういうもんだと思ってたよ。
VPPかかるから保護ダイオード省いてるんだし、抵抗もあるわけないだろ、と。
>>36 1815の最大定格は150mA
内部プルアップをやめ外付けプルアップにしてみるとか?
内部だと5Vで50〜400uAの消費電流
外付けで100〜300k程度の抵抗にすれば50〜16uA
あとはsleep中も有効かわかんないけど電源電圧自体を下げる
>>36 sleep直前にプルアップをオフにして、起きたときにまたオンにするとか。
>>39 丁寧にありがとう。
「2直に33Ωの制限抵抗」を2並だから一応最大定格内のはずです。
(4.8-1.2-1.2)/33 * 2 = 0.145[A]
やはり内部プルアップは消費電流が多いですか。外部100kΩで安定ですね。
電源電圧は・・・。エネループ2直で安定して動くPICがあれば乗り換えを考えます。
>>36 今のところ RB0/INT のエッジでsleepから復帰しているので、プルアップは必要な気がします。
コードの構造を変えて、watch dog 等でインターバル化すると反応速度と引き換えに電力が減らせるかも知れませんね。
>>41 データシート見たんだけどPIC16F648Aが4MHzが2Vで動作するのか3Vで動作するのかよくわからない
4MHzの所から2Vから3Vにグラフが垂直に上がってる
>42 それLF仕様の品でしょ。PIC16"LF"648A >41 新型のPIC12F1822や16F1xxxなら1.8Vで16MHzまで、2.5〜5.5Vで32MHz
>>43 見落としてた
代わりにスイッチをPICの入力ではなくVSSに入れるというのを考えてみた
スイッチを押すとPICの電源が入る
電源が入るとPICからNPNトランジスタを起動してVSSを保持
終わったら保持を切って電源を切る
トランジスタはVSSにプルダウン
ちょっと実験してくる
>43 12F1822が良いと思ったけどこいつのSLEEP時の電流20uA(@1.8V)typもある(内蔵のLDOのせい?) 12LF1822が手に入れば20nA(@1.8V)typだけど、入手は困難だろうから ここはPIC12F629or675で SLEEP時 1nA(@2V)typ。動作電圧もADCoffなら2Vまで大丈夫みたい スタンバイ電流は品によってだいぶ違うんだな、12F1822なんてLFと比べると1000倍違うし 数あるPICの中でもPIC12F629or675はとてつもなく小さいようだ。 そう言えば昔12F675でラーメンタイマ作ったのは電池CR2032で常時SLEEPしてるけど 全然電池切れないのはそういう事か 1.8nA(@3V)で220mAhなら1万年以上w
46 :
44 :2012/05/03(木) 15:15:07.47 ID:d3lEOYOo
実験完了 結局VSSじゃなくVDD側を切った 結果 停止中は0.1uAなった 測定は秋月で2100円で売ってるテスター P-16 A4がODなってるのでPNPのベース側に繋ぐ PNPのエミッタに電源、コレクタをPICの電源に繋ぐ タクトスイッチでPNPのベースをLowにする PICの電源が入る A4をLowにする 処理が終わったらA4をHighにする PICの電源が切れる
47 :
774ワット発電中さん :2012/05/03(木) 18:55:43.73 ID:imSL/Oyk
PICとか仕事でやれたら楽しそうだなあ
今はH8だろ
>>47 普通に仕事で使ってますよDIPで配線がやりやすいのが良いですね
大量に作るならフロー用にQFPとかもいいんですが、数がね・・
間違えたリフローでした、なんという間違えを・・
まじで? でも確かに手のひらサイズのもんには良いか。 どんなもの作ってるの?
>>48 そこはぶっちゃけ会社の体質次第でしょう
小規模制御でAVR指定していたところもあるし
>>51 基本的に産業機器なので一般の人は目にしないかなー
センサーの制御に使うのが大半ですね
開発環境が安く構築できるのが大きいですね
54 :
15 :2012/05/03(木) 21:59:03.19 ID:qHhi+7tE
良く考えたら2x3でダイナミック制御すればLED6個可能な事に気付きました、 なんとか8ピンのPICでいけそうです(´・ω・`) MCLRのプルアップはイマイチ良く判らないので、 いずれ機会が有ればやってみたいと思います。
あ、あれ? まさか、"A"の付かない16F84はPICKIT2で使えない??? どんなに頑張っても認識されないんだけど・・・
そろそろPICKIT2でも買うか
PICKIT2じゃないとロジアナ機能が・・・
保存用と観賞用も買わないと
nピンあるとして、n*(n-1)*2 のLEDが個別に光るのか。 hiZの荒業だな。
>>64 nP2 じゃないの?
順列組合せ。
有名になる前からPICアプリケーションノートに載ってた奴ね
67 :
PIC初心者 :2012/05/04(金) 14:17:46.21 ID:35cP6/sg
質問お願いします! 下のような配列のグローバル変数があるのですが、色々C言語について勉強していると グローバル変数の濫用は駄目みたいなことらしいと書いてあります。 そこで、ポインタというものを使用すればいいとの事ですが、 下のようなプログラムの場合、どのようにポインタを使用すればいいのですか? 特に割り込みルーチンで複数の変数を扱いたいときにどうすればいいのかさっぱり分かりません。 今のところ、使う変数は全てグローバル変数でも動作に問題ありません。 過去に何度も同じような質問していますがよろしくお願いします。 int dat[10] = {0}; void main() { 省略 } void interrupt() { for(i = 0;i < 10;i = i + 1) { dat[i] = dat[i] + i * i } }
>>67 >下のような配列のグローバル変数があるのですが、色々C言語について勉強していると
>グローバル変数の濫用は駄目みたいなことらしいと書いてあります。
>そこで、ポインタというものを使用すればいいとの事ですが、
そんな本捨てろ。
>>64 > nピンあるとして、n*(n-1)*2 のLEDが個別に光るのか。
さらに倍! かよ。
> hiZの荒業だな。
荒業使うと、n*(n+1)個になるんだ。
まじめにやれよw
>>67 最適化の適用次第なんだけど、最適化が行われない場合、配列の要素の番地を毎回計算されて処理時間を要する場合がある。
int *Poi;
Poi = dat;
for (i=0;i<10;i++){
*poi = *poi + i*i;
poi++;
}
ってな感じで配列要素の番地演算を少なくするケースは時としてある。
>グローバル変数の濫用は駄目みたいなことらしいと書いてあります。 >そこで、ポインタというものを使用すればいいとの事ですが、 それはちょっとおかしな説明だな。 説明を読み間違ってるんじゃない? int dat[10] = {0}; void main() { 省略 } void interrupt() { int *dPtr; for(dptr=dat,i = 0;i <10; ) { *dptr++ += (i++)^2; } }
72 :
PIC初心者 :2012/05/04(金) 21:20:23.33 ID:aPJiU+go
>>68 >>70 >>71 レスありがとうございます。
自分の考え過ぎなんですかね?
結局は常時値を保存したい変数は、ポインタを使っても使用するメモリサイズは変わらないならば、
無理してポインタは使わなくてもいいということでしょうか?
ポインタを使うメリットは、プログラムの高速化は分かるのですが、
ネットでC言語のポインタを憶えればC言語を使いこなせるだの、グローバル変数は撲滅すべきだのとあり
本当にわけがわかりませんorz
>>72 ネットで済ませず、きっちりしたC言語の教科書を買うべし。
グローバル変数なしで割り込みハンドラは書けないよ。
ありきたりの話になるけど・・・ >無理してポインタは使わなくてもいいということでしょうか? 無理する必要はない、必要があるなら使えばいい >C言語のポインタを憶えればC言語を使いこなせる 逆だ C言語を使いこなすにはポインタぐらい理解して使えるようにしておけ ポインタだけ覚えてもCを使いこなすことにはならん >グローバル変数は撲滅すべきだ ソフトウエア工学的な原則論としては正しい グローバル変数でもローカル変数でも同じように書けるならローカル変数にしとけ
グローバル変数使いまくったら モジュール化なんて出来ないもんな。 ソースの使いまわし出来なくなるし、 オブジェクト指向に沿わない設計は 「やめろ」と言うわな、そりゃ。
プリプロセッサでどうにかなる
2つのFレジスタの指定のビットの比較分岐はどんな感じでやればいいですか? 両方1、両方0、0と1、1と0で4種類の分岐をさせたいです。
switchでいいじゃん? アセンブラはしらね
下手にうまいこと書くより、 普通にビットマスクしてif分の固まりにするのが、 いちばん効率いいバイナリになる気がする
それ余程うまく書かないと、後でわかりにくいし実行にも時間かかる。
elseでかけばそんな変わんなかった気がする
>>77 たった4つに分岐させるだけなのに何が問題なの?
でもアセンブラで書けって言われるとえーっとってなる
84 :
774ワット発電中さん :2012/05/05(土) 06:02:45.00 ID:4YBthLbd
グローバル変数善し悪しの考え方は 上位のライブラリが下位のライブラリ変数を極力使わないようにする といった考えで組んでいけば自然と使用頻度は減る PICの場合、ハードを直接触るコーディングが多いし、チップ性能からしてそんなに多階層コードを意識する必要は無いと思う 16ビットPIC以上でファイルシステムやパケット通信処理するなら、 スコープに対する意識は必要 ポインタはそういったコードを組む時に便利な機能という考え方で使わないと、 逆に解読悪くなる気がする
Fレジスタ TEMP1 TEMP2 各指定ビットX Yとして BTFSC TEMP1.X ;TEMP1のXbitが0ならスキップ GOTO CHECK_BUNKI_1Y ;TEMP1,X=1確定 TEMP2のYbit判定へ BTFSC TEMP2.Y ;TEMP2のYbitが0ならスキップ GOTO BUNKI_01 ;GOTO TEMP1,X=0 TEMP2,Y=1 GOTO BUNKI_00 ;GOTO TEMP1,X=0 TEMP2,Y=0 *1 CHECK_BUNKI_1Y BTFSC TEMP2.Y ;TEMP2のYbitが0ならスキップ GOTO BUNKI_11 ;GOTO TEMP1,X=1 TEMP2,Y=1 GOTO BUNKI_10 ;GOTO TEMP1,X=1 TEMP2,Y=0 *1 *1 分岐後の命令 直に書けば省略可
Fレジスタって何?
ファイルレジスタのことらしい
同じ処理が2回とか3回とか現れた時に、 この部分切り出して関数にしてえ、と思って関数にすると、 見た目はシンプルになるけど、値がみんなグローバル渡しになってえらいことに
>>67 グローバル変数と、ポインタの関連例は何もありません。
私の私見ですが、グローバル変数は、割り込みなど、そうするしか他に表現方法が
思い当たらないような、必要最小限で使うべきです。volatileもお忘れなく。
私は
>>67 の書いたコードのままで十分実用範囲であると認識します。
91 :
67 :2012/05/06(日) 00:14:10.28 ID:qogBmW0Y
レスありがとうございます。 とりあえず、割り込みで使用する変数はグローバル変数でなくては駄目との認識でいいのでしょうか? 今作成しているプログラムの変数が、割り込みルーチンで使用するものが殆どだったので頭抱えてましたorz また、volatileという最適化機能を抑止するものがあったなんて知りませんでした。 まだまだC言語についてはド素人レベルなので質問ばかりですみません。 みなさんありがとうございました。
>>91 割り込み処理でも定義としてはローカル変数使えるよ。volatileは必要に応じて。
>割り込みで使用する変数はグローバル変数でなくては駄目との認識でいいのでしょうか? 割り込み用の関数は戻り値を持たないので、演算結果を他のプロセスに渡す必要があるのなら グローバル変数を利用することが必要だということだよ。 関数内での処理の後、内容を破棄できるようなものなら、普通にローカル変数でOK。
16F877用で一番簡単なタイマ0割込の学習できるソースファイル、どこかありませんか? 後閑本読んでも一度もうまくいかず凹みまくってます。
>>94 ソースを求める前に自分で作ったソースを書いてみたほうがいいかも
94が書いたソースをギリギリまで要点抜き出して(でも動きうる範囲で)貼ってみてよ。 質問厨によくあるけど。 情報を隠しすぎ。 後だし多すぎ。 楽しすぎ。 アセンブラ? C? プリスケーラ使うの? スルー? シグナル源は外部? クロック/4? 初期設定で GIE とかいじってる?
もろに被った。ごめんね。
timer2で良ければ877A用の俺が書いたCのコードが出てきた。 ミッドレンジなら石の種類はあまり関係無いけど。 タイマー設定。 //init timer2 PR2=174;// (0.56ms /2 /2/4 / 200ns)-1 // 200ns : 20MHz Fosc = 5MHz input clock = 200ns // 4 : prescaler 1:1 1:4 1:16 // 2 : postscaler 1:1 .. 1:16 // 2 : IR over sampling ratio // 0.56ms : IR base clock GIE=1; PEIE=1; TMR2IE=1; T2CON=0x0d; 割り込み処理。 static void int_func(void) interrupt 0{ //clear interrupt flag TMR2IF=0; //実際の作業 //実際の作業 } アセンブラだとWとSTATUSの退避は自分で書くもんだと思ってる。Cは少し楽だね。
99 :
774ワット発電中さん :2012/05/06(日) 14:24:27.63 ID:PvhJ6+QZ
アセンブラかもしれないのに汚いソースを コンパイラの種類も書かないで、ドヤ顔で張りつけるバカがココにもいました! 軽○みてぇ〜 きもちわるぅ
軽トラ?
ID:PvhJ6+QZ ↑ 何コイツ?何でファビョってんの? 朝○人みてぇ〜 きしょくわる〜
12F629でLEDをピカピカさせるサンプルを書いたんですが(HI-TECH C 9.83) __delay_us()がどうも期待したディレーになりません #define MHz 000000 #define _XTAL_FREQ 4MHz void Delay_10us(unsigned char time){ while(time--){ __delay_us(10); } } void main() { while(1) { GP0 = 1; GP1 = 0; Delay_10us(20); GP0 = 0; GP1 = 1; Delay_10us(80); } } こんな感じ(一部記述は省略してますが)ですが、実際には1周期が1msじゃな くて2.8msほどかかってしまいます。デューティー比も1:4には程遠い状態です。 asmで書いたわけじゃないので正確に1msになるとは思っていませんが、こんな にも違ってしまうものでしょうか?
アセンブラに直して命令のステート数を数えると納得するんじゃないの C言語じゃどこにどれだけ掛かってるかは正確に見積もれないよ
__delay_us(10);が期待通りに動いていると仮定しても、他の命令の実行が0秒で終わるわけじゃないよ。
1800ステップほど
>>104 の書いたコードを実行して、それ以外に1000ステップほど__delay_us()してるんじゃないかな。
自分の書いたコードのステップ数を数える気も管理する気も無いなら、タイマー割り込みを使うと捗るよ。
107 :
774ワット発電中さん :2012/05/06(日) 20:32:56.91 ID:DGmlPjQX
MPLAB SIM に StopWatchがあるでしょう。 大まかな時間はそれでわかる。 それ以上のタイミングでつめなければいけないようなソフトは FPGAで書くといいよ。
>104 __delay_us(10) → __delay_us(200) Delay_10us(20) → Delay_10us(1) Delay_10us(80) → Delay_10us(4) にすればだいぶ だいぶましになるよ 1.1ms位 4MHzのクロックだと1命令が1usなのに、while(time--) こんな判定毎回してたら そりゃ遅くなるよ。 それと気になるのは、GPへの連続アクセス >GP0 = 1; >GP1 = 0; 逆アセンブラすると下記、やっぱり駄目そう ;GP0 = 1; BCF 0x3, 0x5 BSF 0x5, 0 17 ;GP1 = 0 BCF 0x5, 0x1
最後余計なの入った、こっちね ;GP0 = 1; BCF 0x3, 0x5 BSF 0x5, 0 ;GP1 = 0 BCF 0x5, 0x1
>102様 ありがとうございます。 ”アセンブラで”ぐらい書くべきを忘れていました。 これ、割り込みが発生したらAAをインクリメントするようですが、「AAはポートに出力はしていない」でOKですか? PICライタが壊れたので試せていないのですが、一応予定動作を教えていただけないでしょうか。
MPLAB X IDE で日本語コメント保存すると化けるんだけど 対処法ありませんか?
>110 見ての通り単に INCF AA,f しているだけです。
了解です、ありがとうございます。 これを改造して練習してみます。
>113 余計な御世話かもしれないけどMPLABのSIMを使えばだいたい事はわかるよ
素朴な疑問です Cコンパイラで書いたプログラムで、delay中に割り込みは発生しますか? それとも、delayが終わるまで割り込みルーチンには飛ばないのですか? よろしくおねがいします
>>111 Project Property->General で"Encoding"を日本語が使えるEncodingに変更する。
します。 delay中に割り込みを掛けたくないなら、delay前に禁止しておく必要があります。
118 :
115 :2012/05/07(月) 08:52:17.18 ID:s2VoOid7
>>117 そうですか
今はPICBASICというコンパイラを使ってるんですけど、C言語で言うdelay命令が
PAUSEというもので、この命令中は割り込みされないので疑問に思ってました
ありがとうございました
>>118 それは割り込みではなくてタイマーイベントじゃないの?
SDカードの読み書きに使える一番お手ごろなPICはどれでしょ
SPI付いてる奴
FAT使いたかったらRAMが1K以上欲しいところ
RAMを内部にがっつり作ると、そんなにコスト的に不利なんだろうか
>>124 > We can see what looks like the FLASH and the RAM on the left and right of the chip.
て書いてあるじゃん
本当だ、ちゃんと読んでなかった 84Aでこれだけど、最近のRAMが大きいやつは面積的にはむしろ小さくなってたりするのかな 壊れた88があるから、バラしてみよう 撮影できる気がしないけど
18F2550使ってオリジナルのUSB機器を作りたいんですが、MicrochipのUSB フレームワークを眺めてると、USB処理がボーリングとインテルプトの両方の 定義が定義されていて、インテルプトがコメントアウトになっててボーリング の定義が有効にされているようです。
そうですか。
USB機器作りたいと思って2553買ってきたけどホスト側が面倒で一旦ftdiに逃げた。 16F88やら16F877のマニュアルに書いてあるボーレート例が見たこと無い数値で眩暈がする。 まあ、38400くらいは出せるよね? いつか2553に帰ってくる。
130 :
774ワット発電中さん :2012/05/08(火) 10:12:05.93 ID:PfWC/UPo
秋月のPICプログラマのアップデート自殺トラップの後、結局また買うことになった。
>>130 Ver幾つ入れたの?最近更新していなくてふと気になった。
下のプログラムなんですが、ポートB変化割り込みを複数のポートに分けて 別々の命令をさせる場合、『intcon.b0 = 0;』のフラグクリア命令はどこに置いたらいいのでしょうか? 命令ごとに入れたらいいのか、割り込みの先頭だけ1か所に入れたらいいのか、どれが一番良いのか教えて下さい よろしくお願いします。 void main() { 省略 } void interrupt() { if(PORTB.b7 == 0) { x = x + 1; } if(PORTB.b6 == 0) { y = y + 1; } }
大事な事なので(ry 割り込み冒頭がベター。 このサンプル、b6=0の状態でb7が1から0に変化したときもYがカウントアップされるけど、それでいいの?
137 :
774ワット発電中さん :2012/05/08(火) 17:59:58.48 ID:PfWC/UPo
>>131 AE-PGM877にはVer.6.50が乗ってました。
Vista64bitでも使えました。
で、6.72.17をDLして、アップデート失敗した方に
PPGM672_AEPGM877.HEXを書き込みました。
それを使っています。
>132 だいぶ昔に3.5キットをVer.アップしたから、それ自体忘れてた〜
138 :
133 :2012/05/08(火) 19:11:11.66 ID:DIosQj4Y
>>137 自分のを確認したらVer6.72だったけど、秋月さんのページ見たら豆に改版してたのね。
最近はPICkit2or3を使う事が多くなり、すっかりご無沙汰してます。
140 :
134 :2012/05/08(火) 21:13:33.07 ID:CYmaWW0P
iPadの店頭デモ機から書き込んだんだが、ページ開いたままだった… もう閉店時間だが今日のID:CvaDEXytは別人がたくさんということで
test
どうしてもUSARTの設定で1つだけうまく行かないところがあるのですが、 18F2550(20Mのセラロック使用で内部48MHz)で2400bpsを実現したい場合、 OpenUSARTのボーレート設定はいくつにすればいいんでしょうか? (48*1000*1000)/(2400*26) - 1 で1249を設定しても受信出来ません。
>>142 同じ速度の送信を受信に回り込ませて確認する方法もあるよ。折り返し試験。
その時、オシロがあれば0x55とか0xaaを送信すると1ビット幅を見られる。
データシート見ないでの発現で申し訳ないけど、たしか、ボーレート設定の
レジスタ以外に、1ビットの速度制御情報がなかった?
2550はよく知らないけど、他にも3つくらい速度を決めるビットがあったな 理解しなくてもデータシート通りで問題ないけど
145 :
774ワット発電中さん :2012/05/09(水) 12:26:22.32 ID:mKbwP2NB
>>142 BGRH=0
BGR16=1
してる?
>>147 まちがった
BRGH=0
BRG16=1
でした
>>142 BRG16は1にセットしてるよね?
26のところは16の間違いだろうか
それだと1249になるね
どなたか無償でC言語プログラム作って頂ける方 いらっしゃいませんか?
どんなボランティアだそれ…
ちゃんとしたプログラムを書いて欲しいなら労力に見合う程度の金ぐらい払ったほうが安心できると思うがなあ、 Cのプログラムならなんでもいいってレベルでの話なのかな? ちょっと想像つかん。
じゃ、1行あたり100円位で。コメントは沢山入れるよ。もち、コメント込みの料金w サービスでAAも入れたげる。 プログラム診断ツールでコメントが多すぎると警告が出たんだよな、俺 orz
どうせそんなの投げてくる奴は、 パチスロの体感器を作ってくれとか屑人間しか居ない
無償で絵を描くよとか作曲するよとか翻訳するよとかAA作るよとか、 有り余る時間と才能のはけ口は実際にいろいろあるから、 プログラムとか回路図を作ってくれるサービスもあっても不思議ではない
>>147-149 指摘ありがとうございます。式中の26は16の誤りです。
BRG16を設定する必要があるとの事ですが、openUSART()は使っていましたが、
baudUSART()は設定していませんでした。こちらを見直して見ます。
プログラム書くのはいいとして、回路図ぐらいは用意してるんだろうな?
無償でCコンパイラを開発して欲しいという話では無いのか?
最適化とか気にしないなら Cコンパイラくらいサクッと作れよ
18Fの優先レベル割り込みを使う場合って、HIGHとLOWは両方一緒に割り込みを 許可しないと駄目なんですか? だとしたらなんで個別に割り込みON/OFFのレジスタを持ってるんですか?
駄目じゃないよ。個別に許可することも出来る。
ネット上にあるccs cのクラック使われた人っていますか?
いないよ。
犯罪してますか?っていって挙手するやつもおらんだろ。
クラックしてまで使うコンパイラか? CCS w あんな変態コンパイラ。 ハードウェアテストや小物製品には便利だが、そんな小規模クラスの設計で遊んでいると、 いつまでたっても大規模ファームやアプリの作り方を学べんぞ!
>>167 どの辺が変体なの〜
教えてください。。
169 :
774ワット発電中さん :2012/05/10(木) 18:32:30.59 ID:lvAxPhZW
pickit欲しいんだが、これかっても、pic取り付ける装置いるじゃん... ふざけんなよ。取り付け装置っていくらくらいですか? 500円くらい?
作るんだよ
171 :
774ワット発電中さん :2012/05/10(木) 18:38:48.75 ID:lvAxPhZW
本当腹立つね、面倒くさいとかいうレベルじゃないんだよ。
ターゲットにピンヘッダ生やすだけなら10円とかそんなもん
いつもブレッドボードだな〜 ゼロプレッシャーソケットも持ってるけど 複数デバイス対応とか考えるとめんどい
174 :
774ワット発電中さん :2012/05/10(木) 18:50:08.93 ID:lvAxPhZW
いやpickit3欲しいんだけどね、これ単体じゃケーブルと本体入ってるだけじゃないですか。 僕は、picを取り付ける装置も欲しい。 それは何円くらいするのでしょう?
>>165 インターネットパトロール隊を名乗る人が、PIC用のCコンパイラを扱っているサイトを見つけて けしからんと言っていたなぁ。
インターネットパトロール隊とか PICとかで検索するなよ!絶対するなよ!
ちなみに CCS Cはクラックじゃなくてkeygenだったはず。
178 :
774ワット発電中さん :2012/05/10(木) 19:03:57.67 ID:lvAxPhZW
>>176 picのピンを差し込む装置ですよ。
とにかくpicに書き込みしたいんです。
評価用って何でしょうか?
自分いまさっき調べました。
pickit3本体だけなら4000円くらいなんだけど
セットで8000円くらいするのがある。
そんな高いの買えない....
179 :
774ワット発電中さん :2012/05/10(木) 19:04:51.98 ID:lvAxPhZW
アダプターキットとpickit3があれば、即picに書き込みできるでしょうか?
PICに限らず、たいていのマイコンのデバッガ兼ライターは、接続キット別売だろ… 単純なライターなら秋月の買えばいい。
181 :
774ワット発電中さん :2012/05/10(木) 19:23:30.58 ID:lvAxPhZW
>>176 ありがとう。
明日パーツ屋にパソコン直接持っていって、pickitと取り付け装置買って
使えるようにしてもらいます。
家に持って帰って出来なかったら最悪だしな....
親切なパーツ屋だな でもそんなんで使えるのか?
183 :
774ワット発電中さん :2012/05/10(木) 19:26:56.75 ID:lvAxPhZW
>>181 単純なライターですか?
モット安くありますかね?
自分はとにかく書き込めたらいいのです。
デバッグとかMPLABで編集してるのでアセンブルした時点で
ソフト側で分かりますから。
184 :
774ワット発電中さん :2012/05/10(木) 19:34:18.11 ID:lvAxPhZW
アダプターキット組み立てるのかいwwwww 買うの止めた。 マイクロチップ PICkit3デバッグエクスプレス買うか。 これは板みたいなんにpic差し込んだらいいんですか?
185 :
774ワット発電中さん :2012/05/10(木) 19:42:45.94 ID:lvAxPhZW
というかICSP14 adapter? これの事。これ売ってますか? 調べても出てこないんだけど。
デバッグヘッダーって必要なの? 別に使わなくてもPICkit2で普通にデバッグできるんだが。
すいません、書き込み自重します... スレの流れ変わりますよね。
そんなんじゃPICに何か書き込んだとしても、生かせるハード組めない人だろ。
>>189 ありがとうございます。
最後だけどPickitのソケットアダプタって
既製品で売ってないんですか?
さすがに組み立てるのは不可能なんで。
もうなにもかもやめたほうがいいね
>>191 >>192 呆れないでくださいよww
はんだもってないから仕方ないという。
店員に頼んでやってもらおうか。
今日は色々ありがとう^^
寝ます。
全部外注しろよ
寝るんだからもういいじゃない。 まだ見てるだろうけど。
デバイスに書いておしまい。というプロジェクトなのだろうか? 書き込み済みのデバイスを色々な角度から眺める。あれ、何処かで動画があった。 実際の処、デバイス周辺作る過程で接続できる様に細工すれば済む話だと思うけど。
どこかの学校で課題でも出たんだろうか ・C言語プログラムを作る、内容は問わない ・アセンブラで書いて書き込む、書き込んだPICは回路に組み込まれない
PICはとりあえず無図杉。 命令やメモリ用語多過ぎ、複雑すぎで理解不能! returnがどこに戻るかも解析しないといけないし無理!
割り込み制御って、命令として書いてるんだから割り込みでも何でもなくね? tujou tujou warikomi tujou tujou tujou 割り込みでも何でもなくねw?
>>198 まだPICは命令少ない方だよ。returnで戻るのは(通常)呼び出した次の命令(特別な操作を除く)。
一般的に割り込み制御は「tujou」とは非同期に動作になる。割り込み要因は時間とが外部信号の変化など。
一部例外としてマイコンによってはトラップ命令ってのがあって199の様な使い方、割り込みを強制起動する
場合があるけど、それはそれで特別な用途がある。
と、ざっくり書いてみた。
トランジスタ技術の6月号がPIC特集だった。歴史と最新の事情が簡単にまとめて書いてある感じ。 もはやICDやPICKitが当たり前で、PICライターで書き込むってのは流行らないみたい…
>>201 PICKit3使い始めてPICライターで書き込むのが馬鹿らしくなったよ・・
ソケットから抜き差ししてピン曲げ直して、なんてやってられないわ
18pinもあるみたいね…実物は見たこと無いけど
>>202 bootloader使えるPICだと、Pickitすら馬鹿らしくて使う気にならんけどな。
最初からbootloaderが書かれた状態で売ってくれればいいのに。
>>193 PICKit1にしなさい。
とりあえずすぐ遊べるから。
PIC固有の質問じゃないんですが、 MicrochipのPIC USB Frameworkに収録されてるHID Keyboardサンプルが英語版 キーボードなんで、これを日本語キーボード対応にしたいんです。 んで、ディスクリプタを色々修正してみたのですが、自分のスキルではどう修 正してもWindowsのデバイスアイコンに黄色三角がついてしまいます。 どこかにHIDディスクリプタのチェックをしてくれるようなツールか、あるいは USB FrameworkのHID keyboardサンプルの修正について記載されているような ページはないでしょうか?
すみません、自己解決しました。
209 :
774ワット発電中さん :2012/05/11(金) 07:00:02.31 ID:shlyWnbW
PICKIT3で書き込むのは便利なんだけど、書き込んでいる時、 OUTPUTに設定している PINが ON/OFF繰り返しちゃうよね RELAY繋いでいると 3回ぐらいカチカチ繰り返す これ、出力を HOLDしてから書き込み!とか出来るの?
>>209 変化して欲しくないけど、出力端子のプルアップ(ダウン)していないとか?
main()の msec = measurement(mode); で0.1msec単位で測定値が入るから、煮るなり焼くなりお好きにどうぞ。
>>211 ソースの
msec = measurement(mode);
LongToStr(msec, buf);
の間に演算を入れる
msecに入る値は0.1msec単位(10で1msec)の値になってる。
例えば
msec = measurement(mode);
msec = msec*2;
LongToStr(msec, buf);
だったら2倍になる。
>>211 msec = measurement(mode);
のところを
msec = N * measurement(mode);
変えればいいんでない?
>>212-214 >>211 です。
超素人にお付き合い頂きありがとうございます。
ちなみに係数は0.0035です。
係数をかけて得られた数値を積算してpicの電源を切る前に
EEPROMに保存して次回起動時にEEPROMから呼び出し積算をはじめる。
LCD表示単位は?表示させたいです。どの様にプログラム追加したら宜しいですか?
諸先輩方のご教授宜しくお願いします。
>>215 結局、後出しで丸投げか?
まだハードも作ってないんだろ。
まず、同じ物を作って動作させてること。
参考にしたサイトとソースをよく読んでから、自分でやれるとこまでやれ。
話はそれから。
ごきょうじゅ
てめえ ぶち殺すぞ
>>211 は、車のガソリン使用量でも量るつもりなのかな?
今自作の燃費計テスト中なんだが、数値が似てるなぁ。
殺人予告を見た気がする
怖いヨー
よし、プログラムネットに載せよう。
呪いのプログラムですね
篠沢教授に2000点
const ram const rom とか const rom far とかの概念がよく分かりません。 ていうか、そんなのコンパイラが最適化の際に適切に配置してくれてもよさそ うな気がするんですが。 今作ってるのの中で値固定の変換テーブル(256byte)があるんですが、一般論 として、こういうのは const rom far宣言するのが正しいんでしょうか?
ハーバードアーキテクチャの宿命ってやつよ AVRのgccだともっとめんどくさいわ
msg[]の型は?
>>229 単にdelay_usだけに注目した内容で恐縮。
コンパイラに依るけど、delay_usが定数のみで変数を許さない場合あるから注意。
誤差のない範囲で、例えば1ms待機をn回すような感じで。
待ち自体が小さくて、n回が大きな数字だとループ命令のオーバーヘッドあるから注意ね。
例えば、delau_us(1)で1ms分、要は1000回分、回そうとすると2倍位にふくれあがる。
>>230 一番下にコードが丸ごと書いてますが
BYTE msg[3];
という宣言になってます
ソース載ってたね、失礼 BYTE型ってことはunsigned charだろうね atoi()とか使えば何かいける気がする
>>231 ありがとうございます
うちのコンパイラは変数大丈夫みたいです
MIDIのベロシティって最大でも10進数の整数で127で、
しかも今テストで送信してるのは50なので大きすぎるってことはなさそうです
>>233 ありがとうございます
MPLAB IDE v8.6使ってて
PCM COMPILER 4.106というコンパイラですが、コンパイル通りませんでした…
18F2550で既に動いてるんですけど、これが18F14K50でも動作可能かどうかって どうやって調べればいいでしょうか? HI-TECH CではなくC18を使っていますが、メモリ使用量?を示す円グラフみた いなのが出てきません。
>>237 メニューの
View->Memory Usage Gauge
で表示できない?
>>238 ありがとうございます。表示されるようになりました
プログラムメモリ Total 16k/use 3161
データメモリ Total 2048/use 465
18F2550はFlash32kだと思ったのですが、16kって言うのはwordですかね。
18F14K50が16KB(8KWord)なので余裕で収まりそうです。(秋月のHPのスペック
記述がPG 8KBになってて騙されそうでしたが)
値段半分もさることながら、DIP20pなのがありがたいんで。
DIP28pはちょっと大きすぎ>2550
>>235 MIDIデータだと
msg[2]:が0-127の値そのものだから
delay_us()関数が変数の引数を許せば
delay_us(msg[2]);
で、問題ないと思う。
delay_us(msg[2]);
で、うまくいかない?
>>211 がんばれよ!
まぁ、ここの人達はプログラム
作れないと良い方に解釈して、、、、
>>236 >>240 ありがとうございます!
見直すと一度int型の変数hogeにmsg[2]を代入して
delay_us(hoge);
としていたのでこれがいけなかったのだと思います
普通にdelay_us(msg[2]);だと上手くいきました。失礼しました
ただ入ってきたベロシティ値に乗算と除算を加える必要があるので、
BYTE hoge=150;
BYTE hogeAtom=(hoge*100)/127;//ベロシティの最大値127で割る、小さな数字になり小数点も出るので100倍しておく
MIDI受信割り込み関数{
hoge=(msg[2]*hogeAtom)/100;//上で100倍したものを元に戻す
}
他関数{
delay_us(hoge);
}
みたいに書いてるんですが、途中BYTE型の限界を超えて数値が大きくなる箇所があるせいか、
はたまた、小数点が出るせいか、コンパイルが通りませんでした。
どなたか良い方法ご存知でしたらご教授くださればありがたいです
BYTEデータって0〜255しか持てないよ。
100倍とかすると有効な元データって0〜2だけ。
元データが3以上だとオーバーフローが発生する。
その場合の動作は未定義だったはず。
0*100/127=0
1*100/127=0
2*100/127=1
3*100/127は何が起こるかわかりません。
4以降も同じ。
*(100/127)の近似計算なら色々あるけど。
hogeAtom=hoge-hoge
>>2 +hoge
>>5 ; //*(100/128)の近似計算
BYTE msgs; BYTE hoge; hoge = (BYTE)(((unsigned short)msg[2]) * 100 / 127); じゃだめなの?
ちゃんとしたCなら、計算中はint以上に整数拡張されるわけだが。 そして四則演算程度でコンパイラがこける事もないわけだが。 (* 1.0 100/127) 0.7874016 (+ 1.0 -1/4 +1/32) 0.78125 (+ 1.0 -1/4 +1/32 +1/128) 0.7890625 > hoge=(msg[2]*hogeAtom)/100;//上で100倍したものを元に戻す 結果が0〜2にしかならないけど、その精度で本当に構わないの? 整数演算だと小数点以下は、基本切り捨てだよ。
最初の宣言要らんかった orz
>>242 要はベロシティの 0〜127を0〜150に変換したいの?
BYTE hoge;
unsigned int hoge_ui;
MIDI受信割り込み関数{
hoge_ui=msg[2];
hoge_ui=hoge_ui*150/127;
hoge=hoge_ui;
}
他関数{
delay_us(hoge);
}
まあ、乗除算は時間かかるから、割込み内で演算しないで、メイン処理で演算したほうがいいと思うけど。
248 :
774ワット発電中さん :2012/05/12(土) 13:25:32.86 ID:oIb3/QKi
picのGOTO命令ってソースコード上において上にも下にもジャンプできるの?
>>248 できる。
なぜそういう疑問を持ったのか知りたい。
>>249 そうじゃなくて
place1 meirei1
meirei2
GOTO place2
place2 meirei3
meirei4
↑これと
place1 meirei1
meirei2
GOTO place1
place2 meirei3
meirei4
↑これ
両方可能ですか?
>>250 聞くまでもなく、やってみればすぐに答えが出ると思うのはおかしいのだろうか?
やってみろとか無責任だなあ。 俺ならマニュアルを読ませるけど。 Syntax: [ label ] GOTO k Operands: 0 ? k ? 2047 Operation: k → PC<10:0> PCLATH<4:3> → PC<12:11> 絶対ジャンプなので上とか下とか関係無い。
>>252 無責任?
249で「できる」と答えてるだろ。
アセンブラの言語仕様として宣言なしに前方参照できるのか知りたいんじゃないの? # 聞くまでもなく、やってみればすぐに答えが出る話だけどな。
>>251 おかしくない。それ、学習の基本だと思う。
>>254 そういうことなのか?
そこまでは読めんかった。
>>252 あなたの説明してるpicは、質問者のpicと同じなのか?
数少ない例から間違った演繹をする危険性がある。 実戦第一主義は良くないよ。 仕様書に頼りっきりでデバイスのバグに足元救われる事もあるから実験も大事だね。
>>256 あなた流に返すなら、「マニュアルを読ませる」って書いてあるでしょ。
糞壷に書かれた情報なんて便所の落書きほどにも信用できやしないんだから。
ここで聞くことことには、もっと大きな危険性があると思うけど。
>>243 ,
>>244 ,
>>245 ,
>>247 >要はベロシティの 0〜127を0〜150に変換したいの?
そうそう、それです!
で、
>>247 の方法でやってみたんですが、
ベロシティを100で送信して結果をオシロで測定すると
118.110236us(小数点切捨て)となるところなぜか2usになってしまいます!
測定方法はdelay_us(hoge);の間だけピンをHIGHにして測定しました。
delay_us(msg[2]);
の場合は問題なくベロシティ値が出るので測定方法が間違ってたりベロシティ値を受信出来てないわけではなさそうです。
>>258 の2行目をよく見ずに書いてしまった。スミマセン。
実機でトレースするのが一番理解できんじゃね? もちろん、ドキュメント片手にだが。 さてと、いよいよOOCがステーブルになったな。 dsPIC専用として使ってみるか!
picのシュミレーション、ソフトでできますか? あるなら教えて下さい。 LED8個光らすプログラムです。
というか昨日から何やっても2usになっちゃうんですけどね… delay_us(msg[2]);と直接代入する時以外は
>>260 コンパイラの
PCM COMPILER 4.106
は使ったことがないんで、ちょっとあやしいが、
もしかして int は8bitかも。
unsigned int の宣言をunsigned shortに変更してでやってみて。
>>264 間違えた
16ビット整数ははint16みたいだ。
unsgined short ->unsigned int16
>>264 調べてみると
int16はunsigned のようだ。
int16にするだけか。
PCM変態すぎ。
みんなPICでは最大規模でどんな物作ったことあるの? 俺は7セグ時計しかないけどな・・・ショボ過ぎw
>>263 人に聞いてばかりいないで、自分で調べてみたら?
「pic シミュレーション」あたりで検索すれば、何か出るでしょ?
>>264 1で1.17usecのdelay関数を作ると0-127を0-150に変換する計算が要らない。
訂正 0.85usec
>>268 できました!ありがとうございました!
>>271 mainで処理するにはそっちの方がいいかもしれませんね
ありがとうございます
CLって何?
Common Lisp?
割り込みが全然分からない。 割り込みが起こる確率ってランダムなんですか?
おばはんが割り込んでくるからな
ちょい質問 CCSCでコンパイル後に出てくる部分を見てて首を傾げたくんったんだが、 コンパイル後の Memory usage: ROM=6% RAM=73% - 73% 0 Errors, 0 Warnings. って記述と MPLAB内のMemory Usage Gaugeってどっちを信じたらいい? コンパイルの方を見るとすごく容量を使っている気がするんだけど、(実際static Unsigned intなんて斜め読みでよく分からない変数をいくつも用意している) Memory Usage Gauge見るとData Memoryなんか1しか使ってないし。
281 :
774ワット発電中さん :2012/05/12(土) 22:52:29.34 ID:quFqg01u
割り込みがマジでわからん。 何で たとえば HERE 〜処理1 GOTO HERE のとき 処理1以外の処理が勝手に起こるんだろう? どこにもHERE内に処理1以外のこと書いてないのに。
>>280 MPLABはCCSCのメモリの使い方なんか知らんのだよ
スタートアップで変なことしてるんだろ
CCSCが申告する値も静的に確保した範囲で当てにならない
どっちも信用するな
アセンブラ吐かせて数えるのが確実
>>281 割り込み禁止しとけ
どこでどういう情報を得ると、そういうあまりにも中途半端な理解になるのか 「割り込み マイコン」でググれ
割り込みという仕組みがあるからスムーズに動く機器が作れるのさ
285 :
774ワット発電中さん :2012/05/12(土) 22:58:53.85 ID:quFqg01u
>>282 割り込みプログラム作らないといけない。
>>284 だから割り込みのタイミングっていつなんでしょう?
勝手に割り込みが起こるんだが。
っていっても割り込みの処理事前に書いてるけどね。
>>285 割り込みってのは、割り込みが発生した場合に呼び出される関数を作って
そこに処理を記述する
で、ポート割り込みやタイマ割り込みが発生したら、現在の処理は中断して
割り込み関数内の処理を実行する
終わったら元の場所に戻る
ってのはわかってるのかな?
コンフィギュレーションの設定が不適切で、予期せぬタイマー割り込みではまってるのかな?
>>285 そりゃ割り込みは言葉の通り割り込みたいときに入ってくる。
その割り込み要因は・・・時間、信号の変化、作業の終了等様々。
火のないところには煙は立たない。何かしら事象があって初めて割り込みが発生する。
そもそも
>>281 で何がききたいのかがいまいちわからないなぁ
必要ない割り込みをイネーブルにしてるんじゃない?
292 :
774ワット発電中さん :2012/05/12(土) 23:30:40.66 ID:quFqg01u
>>287 わかります。
割り込みはいつ発生するんですか?
電気信号の具合でたまたま発生するんですか?
293 :
774ワット発電中さん :2012/05/12(土) 23:31:47.95 ID:quFqg01u
私が考えてる割り込みプログラムは ずっとLEDが2つ点滅してる状態をHERE内で繰り返して 割り込みでLEDがもう一つ多く点滅しだすという超簡単なプログラムです。
Cソースここに出してみたら?
>>292 割り込みはポート割り込みとタイマ割り込みがある
ポート割り込みの場合は、割り込み可能なポートに対して割り込みイネーブルを
可にした場合、そのポートのH/L変化したタイミングで割り込み発生
タイマ割り込みの場合は、設定したタイマがカウントアップした場合に発生
ごめん、語弊があるかも ×カウントアップ ○オーバーフロー(カウント値が最後まで行ったとき)
297 :
774ワット発電中さん :2012/05/12(土) 23:45:02.15 ID:quFqg01u
>>295 うん?
ポート割り込みとは何でしょう?
>>297 。。。
>そのポートのH/L変化したタイミングで割り込み発生
これでわからないと何とも言えない。。
要は、あるポートの論理が変わったことを検出して、即時に何かしらの
別処理をしたい時にポート割り込みを使うのだよ。
入力ピンは全てプルダウンorプルアップで論理固定しているかい? 割り込み可能なポートをオープンにして、ノイズにより意図しないタイミング で割り込みかかってはまってるとかないかねぇ。。 それから、割り込みポート如何に関わらず、入力ポートは論理固定しとかないと、 最悪ポート破壊するから気をつけてね
300 :
774ワット発電中さん :2012/05/12(土) 23:51:05.05 ID:quFqg01u
>>298 すごいわかりやすいとおもった...
でも、High Low変化って別にプログラムに書いてないんだけど。
つまり勝手に割り込みが起こるの?
つまり、割り込みの処理だけ書いといてプログラム実行する。
そしたら、1秒後に割り込み処理が起こるかもしれないし、1時間後かもしれない。
てなこと?
必ずループの中でINTCONのビットをチェックしてなくちゃいけないの? それともビットが立ったら勝手にこのルーチンへ飛ぶとかいうことが可能?
302 :
774ワット発電中さん :2012/05/12(土) 23:55:43.33 ID:quFqg01u
論理固定? LEDが点滅するプログラムだから、固定できない。 処理によって1になったり0になったりする。 1(ON),0(OFF)
>>275-277 common lisp か知らないけど、lisp。
xyzzyに付いてた。
304 :
774ワット発電中さん :2012/05/12(土) 23:57:57.35 ID:quFqg01u
割り込みに使うポートって何でもいいの?
>>300 ポート割り込みの場合、使うマイコンにもよるけど、検出タイミングの
設定ができて、例えば
・立ち上がりエッジ検出(L→Hになった瞬間)
・立ち下がりエッジ検出(H→Lになった瞬間)
・変化時検出(L→HまたはH→Lなど、とにかく論理が変わった瞬間)
のようなものから選べる
設定は、PICなら、INTEDG等のOPTIONレジスタで行う
>そしたら、1秒後に割り込み処理が起こるかもしれないし、1時間後かもしれない。
>てなこと?
ポート割り込みの場合は、いつ割り込みポートの論理が変わるかによるから、
定期的にポートの論理が変わることがわかってない場合は、いつ割り込みが
かかるかわからない
もし、定期的に割り込み処理したいなら、内部タイマーによるタイマ割り込み
を使って、確実なタイミングで割り込みをかけるのさ
ソース貼るのが一番早いよ
>>304 割り込みにつかえるポートとそうでないポートがある
/INTとか書いてあるポートがポート割り込み可能なポートね
308 :
774ワット発電中さん :2012/05/13(日) 00:00:16.20 ID:quFqg01u
割り込みポートの論理は勝手に変わるの? 割り込みポートの論理がどうなったら、割り込み処理が起こるの? この事がいまだによくわかりませんね。
>>302 LEDをドライブするポートなら出力ポートだろうから、
そもそも論理固定など必要ないというか、しない
>>308 あのぉ。。
>>299 と
>>305 は読んでいただけたのでしょうか?
それから、勝手に変わってこまるなら、入力ポートは論理固定しなきゃだめですよ。。
論理固定という書き方が語弊を生んだかな?
ここでの論理固定という意味は、何があろうとも固定しなきゃならんという
わけではなくて、要は、何も接続先からマイコンへ入力がなくとも、
HかLかに論理が固定されるようにプルアップなりプルダウンしとかないと
だめだよということね
311 :
774ワット発電中さん :2012/05/13(日) 00:04:14.08 ID:quFqg01u
313 :
774ワット発電中さん :2012/05/13(日) 00:05:30.25 ID:quFqg01u
>>312 分からない。
PICはF16シリーズです。
315 :
774ワット発電中さん :2012/05/13(日) 00:08:41.88 ID:qNsd6mbK
うーん。分からない。 L→Hになるのは偶然? てことは一生割り込みが起こらない事もあるの?
>>313 そうですか。。
もう私にはこれ以上無理なので、他の優しい方頼みます
ちょっとググるなりPIC関係の本を読むなりすれば分かることを、なぜここで聞くのか? ここにいるのはquFqg01uの教師や先輩じゃないんだから、そっちがどういう知識を持っているのか、何をしようとしているのか全く知らない 「分からない」と言われても、まず何が分からないのかこっちは分からない
>>311 最後に。。
もし/の意味についてこだわってきいているのなら。。
マイコンのポートは、一つのポートでもいろんな機能が割り当てられている
場合が多く、その場合、通例、スラッシュで対応している機能を区切って
羅列して記載するのですよ。
319 :
774ワット発電中さん :2012/05/13(日) 00:16:34.42 ID:qNsd6mbK
本当に悪いんだけど全然分からない...... 立ち上がりの時に割り込みが起こる設定と 立下りのときに割り込みが起こる設定じゃ 何が違うんですか?
自分で調べた方が後々頭に残るよ まずは書籍の真似から始めたほうがいいんじゃない
321 :
774ワット発電中さん :2012/05/13(日) 00:20:09.40 ID:qNsd6mbK
>>320 もうしたけどねー、難しいね。
ID:LJny2Fel
の言ってる入力ポートって割り込みポートの事?
ごちゃごちゃしててよくわからん。
>>319 立ち上がり 立ち下り
で正論理・負論理も違うでしょうし。
当然ピンにつながる回路も違ってくるでしょ。
たぶん今のままじゃ解決しないから よく書籍を読み返すんだな。 動かない殆どの原因は人間の間違いだからね。
本当に悪い、NGにするわ 後閑て奴がPICの本腐るほど書いてるから そいつに聞くといい
>>321 最後と言いつつ、何か不憫なので回答
割り込みポート=割り込み機能のついてる入力ポート
つまり、割り込みポートは入力ポートの一種なのだよ
外部から論理変化を取り込むわけだから、入力ポートでしかあり得ない
親切な人が教えてくれてるのに、「分からない」で片付けられるのは寂しい
327 :
774ワット発電中さん :2012/05/13(日) 00:27:48.58 ID:qNsd6mbK
>>326 それは悪いと思ってる。
>>325 なるほど。
外部ってどこ?割り込みポートはグラウンドに抵抗だけ挟んで
直接つないでるが。
割り込みポート=o
o----抵抗----GND
徹底的に2chだけで解決したいなら 図面もソースも明らかにしないとだめだよ。 みんなエスパーじゃないんだからさ。
>>327 えーい、つきあってあげる
外部とは、マイコンにつながる他の回路ね
抵抗介してGNDに繋いでるなら、それはプルダウンしてあるわけだから、
基本的に論理は固定されているね
いまいち状況がわからないけど、意図しない割り込みがかかって困ってる
なら、あとはタイマー割り込みに設定してしまっているとか?
他のみんなが言ってる通り、徹底的にここで解決したいなら、
図面(回路図)やソースを明らかにしてください。
マイコンが何なのかを理解できていないかもしれない
ここらへんを最初からちゃんと読むといいと思う
http://www.picfun.com/cpuframe.html とにかく設定次第で内部の接続が変わる
>>327 ならポートには「0」が入力され続けて割り込まれないはずだけど、それが本当に割り込みポートとして機能している設定になっているのか、ハンダ付けに失敗していないか、そこらへんは全ての情報を持っている本人しか分からない
331 :
774ワット発電中さん :2012/05/13(日) 00:38:47.31 ID:qNsd6mbK
うん? 論理固定されてたら割り込み起こらないと思うんだけど。 何らかの変化で割り込み起こるんじゃないのですか?
332 :
774ワット発電中さん :2012/05/13(日) 00:39:46.72 ID:qNsd6mbK
まだプログラム作ってないので、作った時ロダにうpしたいと思います。 といっても提出用だからそれが出来たら苦労しない.....
>>331 まず情報を出そうよ。
君の目の前のものがどうなってるのかなんて
誰もわからないんだからさ。
そんなんで返答求められても困ると思わない?
ん?
>>331 何か笑えてきたよ
>論理固定されてたら割り込み起こらないと思うんだけど。
>何らかの変化で割り込み起こるんじゃないのですか?
そうだよ。だから、あなたの書き込みから得られる限られた情報から
察すると、ポート割り込みにより意図しない割り込みはひとまずないだろう
と判断したわけです
だから、
>>329 で、タイマー割り込みかな?と書いたのです
あるいは、他にも割り込み可能なポートがあって、そこはプルダウンされてなくて
不要なポート割り込みがかかってるとか
とにかく、情報が少ないので、「想像」に基づく回答しかできないよ
一度、書き込まれたレスをもう一度読み直して、マイコンの勉強も
やり直してみたら?
そしたら、多分、自ずとわかってくることばかりだよ、書いた内容は
割り込みうまくいかなかったんでしょ? じゃ、バグのないソースは当然あるでしょ? ソース書いてないのにどうやってPICに焼いたの? え?
どこぞの工業高校か高専生の宿題(の手抜き)にここまで親切に付き合ってや るとか、このスレの皆さんはホント神様みたいな方ですねw
337 :
774ワット発電中さん :2012/05/13(日) 00:44:44.25 ID:qNsd6mbK
>>329 さっき設計図見たら抵抗の前に電源と繋いでました。
割り込み起こるっぽいですね。すいませんでした...
ネタがない時はそんなもんさ まあいつもネタがないスレって話は置いといてw
ここまで引っ張っておいて さっさと逃げるの? ん? 後始末していってよ。
連投者は内容が薄いから全部あぼーんです
なんかどっと疲れが。。
>>335 サンプルのソースは書いたけど、オリジナルはまだです。
サンプルもオリジナルも設計回路は一緒ですね。
オリジナル設計の図面は学校がばれるのでうpできないです。
すいません。
>>331 さっくり。
割り込み処理は関数のように定義するけど、通常1つの関数。複数の割り込みが1つの割り込み処理を
呼び出すイメージ。関数の中で割り込み要因を確認し、割り込み要求を解除して終了。
仮に処理する必要がない割り込みを許可、その割り込みが発生しても要求を解除する処理が無い場合は、
割り込み処理を抜けても再度割り込み処理に入ってきてしまう。
けど、提出用って、少なくとも考え方を勉強し、その考え方の復習を兼ねて提出要請があるよね。
勉強していないところを提出しろなんてことは無いと思うぞ。ってことは、今まで授業?でやった処を
復習すれば問題は解決すると思うのだが。
>>341 少し分かった気がします。
出力ポートやら入力ポートやら割り込みポートやら、ファイルレジスタやらが
ごっちゃになってました。
宿題は宿題スレでやれよ。
こんなのが将来エンジニアで糞ハード造るんだろうなと想像。 向いてないから技術の仕事諦めたほうがw
割り込み信号に因果関係があれば割り込みがないプログラムはかける。
割り込みの最中に割り込みが起こるようにするにはひとつのポートじゃ無理なの?
>>348 ポート云々は余り関係ない気がする。
PIC18とかは優先度2つの割り込みを持つけど、優先度1つのタイプは割り込み処理中の割り込みは
なにかと無理があると思われ。割り込み発生間隔に最小時間が定義されるなら、反応時間はともかく
擬似的にやれなくもない。
statusとwの退避を工夫すれば多重割り込みは可能。 具体的には割り込み深さ変数を用意して退避先を配列にする。 退避したらbsf GIE。 戻りアドレスのスタック数の管理が面倒だが。油断すると8レベルはあっと言う間だな死ぬ。 お堅い人は「割り込みで長い処理をやるな」と言う。
割り込みでウエイトかけるぜ ワイルドだろう?
スギちゃんPICプログラミングできるのか・・・・
mikrocコンパイラを使ってる方に質問いいでしょうか? EEPROM_WriteとEEPROM_Readを使う場合、どこにDelay_ms(20)を置けばいいのですか? 例えば、 short data[256]; for(i=0;i<256;++i) { EEPROM_Write(i,data[i]); } という書き込みだけのfor文と short data[256]; for(i=0;i<256;++i) { data[i]=EEPROM_Read(i); } の、読み込みだけのfor文があったとして、どちらもdelayはどこに必要でしょうか? よろしくお願いします。
PIC16で多重割り込みってできますか?
割り込み禁止
>>353 コンパイラの種類に関わらずデータシートに参考になる情報が書いてあるよ。電気的特性の項。
コンパイラが提供する各関数(マクロ)の中で作業している場合もあり。
>354 1行だけの質問はきついな。 質問者の背景が全くわからないから、どの程度まで理解出来ていてどの程度まで知りたいのかさっぱり読めない。 せっかく答えても質問者にとっては見当違いだったり、後出し条件付いたりで、無駄になる事が多い。 それなりの回答を期待するなら、どういう状況で、どうしてそれを知りたいのか、自分はどういう推定を しているか位書いてくれ、熱心さが伝われば煽り的なレスは減るし、回答する側もやる気が出るよ まあ質問は>350さんの内容で出来るだろうけど、あなたには無理だと思うよ。
回りくどくて意地が悪い回答だな。
>>354 できます。
359 :
774ワット発電中さん :2012/05/13(日) 16:01:06.65 ID:efmbIUM0
割り込みって、スイッチを押したとき割り込みが起こるようにするのが ふつう?
>>359 自爆ボタン以外に押しボタンスイッチを使わないのが普通
てか、システム設計によってどう使うか変わるんだから普通も何もないw
>>353 Ensure minimum 20ms delay between successive use of routines EEPROM_Write and EEPROM_Read.
Although PIC will write the correct value, EEPROM_Read might return an undefined result.
割り込みの部分と、メインの部分があったとして、割り込みで処理された時の FやWの中身が変わってたらメインで不都合が起きない? メインは割り込みに影響されないようにしたいんですが。
そりゃ当然超起きますよ。 MPASM時代は自前でPUSHとPOPを記述してた。 コンパイラには自動的にそのコードを付加してくれるものもある。 超最新PICはハードウェアがやってくれる。 で良いかな?
>超最新PICはハードウェアがやってくれる どのへんの世代から?
MIPS32だと、例外発生時のレジスタ退避は自前で書かないといけなかったような気が…
ハードで自動退避とかあるのか、なんか不便だな
【Baseline】割込み自体無い [2] 【Mid-Range】割込ベクターは1個、割込みルーチン内で自前で保存(BANK共通エリアが一般的) [8] 【Enhanced Mid-Range】割込ベクターは1個、W,STATUS,BSR,FSR,PCLATHが自動保存(保存内容はBANK31でR/W可) [16] 【PIC18】 割込み優先レベルが2段階あり、割込ベクターは優先レベル別で2個、上位のみW,STATUS,BSRが自動保存 [31] 【PIC24/dsPICシリーズ】割込み優先レベルが7段階あり、割込ベクターは要因別(多数)、SR(STATUS相当)のみ自動保存 Wnレジスタは自動保存は無いが、W0-W3まで裏レジスタがあり1命令で保存or復帰ができるので最優先割込みではこれを使う [スタック方式の為メモリサイズに依存]
>>357 いつも丁寧で誠実な回答をありがとう。質問者に代わって礼を言いたい。
>>367 []内はcallや割り込みの復帰アドレスの退避段数かな。
手元の旧ミッドレンジをすべて捨てたくなるくらい、新しいのと上位は恵まれてる。フウ・・・
>>365 PIC32でも、
>>367 で言っているような裏レジスタが1セットあるから、
最優先割り込みではこれが使えるよ。
PICを使ってちんちんがPICPICするようなオナニーマシンを作りたい
C言語しかできない、しかもド素人レベルの僕には退避だの裏レジスタだの見ても全然わかりません これでいいのでしょうか?
>>371 待避はCコンパイラが自動でやってくれるから、大丈夫。もし気になるなら、Disassembly Listeningで
自分の書いたコードがどんな風にコンパイルされているか、覗いてみたらいい。
久しぶりにPICやろうと思ったらデバイス増えすぎてて訳わからない状態。 手持ちの秋月のPICライターがver3の基盤らしいんだけど、これって ver3.5→ver4のキット使ってver4に出来ますか?
>>373 そんな物に金かけないでPICkit買っとけ。
PIC18使ったUSB周辺機器を小数作って配布したりする際に、ベンダIDとか プロダクトIDはMicrochipのデフォ値をそのまま使っていいのかな? どっかの団体から怒られたりする?
MicrochipのUSB Frameworkに含まれているHID bootloaderを18F14K50に書き込 んだのですが、bootloaderを立ち上げてもRC0に繋がってるLEDがチカチカしま せん。 18F2550も持ってますが、そちらはちゃんとbootloader実行中はLEDがチカチカ します。また、18F14K50にユーザプログラムを送り込んで実行させるとちゃん と意図した様にLEDが点灯するのでH/Wのミスは無いです。 これってこういうものなんでしょうか? 後はアナログ入力」であること
OOC、おもしれぇ。 目からうろこ。 紹介してくれた人ありがとう。
PIC初心者です。 加算機を作りたいのですが、PIC一つでも作れるでしょうか? それとも複数のPICを組み合わせる必要があるでしょうか?
>>379 まずフルアダーかハーフアダーか、動きを逐次再現する必要があるのか、ないのか
そこから考えてください。
後使用する開発環境も書き込み方法も考慮してください。
無論加算がされているという確認方法も考えてください。
それと、書き込み器で書き込んだ後の話ですけど、電源をつないでください。
確認方法は7セグです。 二進数ならPICの命令が使えると思うんですが。 開発環境 Pickit2 PIC16(8ピン) I/O A0〜A4 B0(INT)〜B8
Bポートが9本ある8ピンPICについて知りたい
間違えました。 B0(INT)〜B7ですね。
PICを使わずに基本論理回路やらフリップフロップで簡単足算機作った時は 豪くしんどい思いをしたのでチップデバイスはPICのみを使って足算機作りたいです。
あの…そもそも2進数以外でどうやって命令を実行するつもりだったの? と言うかどうやって書き込むの? そのための開発環境じゃないの? アセンブラなのC言語なの、ラダーとかマイナー言語なの? 妄想したら想定道理のコード吐いて、しかもPICの選定と書き込みまで終わらせてくれるような様な立派な装置はないのよ、モルダー
>>385 アセンブリですね。Cは使いません。
もちろん2進ですよ。
じゃあ後は全部コードで書いてみたら? ダメならダメだし、出来るなら出来るはず。 先生が必要なら教科書になりそうなのを探すか、データシート読めばいいよ。 …アセンブリで開発するなら全部そろえるのはただなんだから、コードを書くくらい出来るよね? 出来なくなってから、ここまでやって○○が上手くいかないんですけどなぜでしょうって聞きに来ればいいよ。 何から何まで全部教えるのは面倒だし、スレの読みやすさが損なわれるからやめてね。 ああ、ネットって書いて聞くだけじゃなくて見て勉強するって事も出来るから、人のコードを探すのもいいよね。
とりあえず一通りのアナログ回路と何らかのプログラミングから入ればいいのにな。 全部いっぺんに、つまりいきなりマイコンから入ろうとすりゃ ある程度の敷居はあるだろうよ。 マイコンってあくまで応用だからね、理解してね。
むしろPICのおかげでソフトウェア的に考えられるから楽じゃないの? 小さい桁の足し算のプログラムならアセンブリで 30行くらいでしょw 皆凄い難しいイメージ植え付けようとしててワロタww
よくわからないけど TTLなんかの代わりに 4bit + 4bit → 5bit の足し算をしたいという事? ピン数さえたりれば、どのPICでもできそうだけど >381 それとBポートが8bit分ある8ピンPICは無い。ピンが足りない
10+23=33みたいな計算がしたいんじゃないの? 簡単すぎるでしょ。 PIC1個でできるんじゃない?8ピンあれば。
宿題スレってないの?
8pin PIC1つでどうやって7セグに繋ぐのかを知りたい 8pin PICを1bitのフルアダーにして好きな数だけ繋いでみるとか
>>61 のようなことをやれば、(6 !) / (2 * ((6 - 2) !)) = 15
つまり6pinで7セグを二桁動かせる
しかし入力が無いし出力も7セグしか無い
7セグだからと言って数字を表示する必要は無い、7+1bitを表示できるLEDアレーだと考えれば
2bit入力が二つとキャリーなし2bit出力、合計6bitの動作を確認できるかな
>397 それって7セグLEDじゃなくて7セグの形に配置されたLEDじゃないのか? 普通はアノード共通かカソード共通だけど、各セグメントのアノードとカソードが 独立しているのって売ってるの?
裏面に配線が見えてたりするし、バラせるんじゃない?
402 :
774ワット発電中さん :2012/05/15(火) 00:50:48.57 ID:kjbL/mH6
失礼します. 18f4525を使おうと思ってデータシート見たりググる先生に聞いたのですが, コンフィグレーション レジスタ の設定がうまくできず,コンパイル時にエラーが出てしまいます.. コンパイラはSDCCです. ググる先生で以下の書き方で出来ると書いてあって,(以下は,僕が実際に書いた設定です) __CONFIG __CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H __CONFIG __CONFIG2L, _PWRT_ON_2L & _BOREN_OFF_2L & _BORV_28_2L __CONFIG __CONFIG2H, _WDT_DISABLED_CONTROLLED_2H & _WDTPS_1_128_2H __CONFIG __CONFIG3H, _CCP2MUX_RC1_3H & _PBADEN_PORTB_4_0__CONFIGURED_AS_DIGITAL_I_O_ON_RESET_3H & _LPT1OSC_OFF_3H & _MCLRE_MCLR_OFF_RE3_ON_3H __CONFIG __CONFIG4L, _STVR_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L __CONFIG __CONFIG5L, _CP_0_OFF_5L & _CP_1_OFF_5L & _CP_2_OFF_5L & _CP_3_OFF_5L __CONFIG __CONFIG5H, _CPD_OFF_5H & _CPB_OFF_5H __CONFIG __CONFIG6L, _WRT_0_OFF_6L & _WRT_1_OFF_6L & WRT_2_OFF_6L & _WRT_3_OFF_6L __CONFIG __CONFIG6H, _WRTD_OFF_6H & _WRTD_OFF_6H & _WRTC_OFF_6H __CONFIG __CONFIG7L, _EBTR_0_OFF_7L & _EBTR_1_OFF_7L & _EBTR_2_OFF_7L & _EBTR_3_OFF_7L __CONFIG __CONFIG7H, _EBTRB_OFF_7H ちなみに,以下はエラーメッセージです. file.h:3: syntax error: token -> '0x300001' ; column 17 何が間違っているのかわからないので,教えていただけませんか.
エラーは引用の一行目で出てるね。 なんか書式が全然違う気がする。 int at __CONFIG1H ___config=_OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ; のような予感がするよ。てきとーだけど。
>>379 情報をもっともっと整理しないと、みんな何も分からないよ。本人もちゃんと
分かっていないのだろうけど。
1)全加算機なのか、半加算機なのか
2)加算機のビット数は? 1? 2? 4?
3)ポートが12個ある、8ピンのPICなど存在しない。
8ピンを使いたいのか、ポートを12個使いたいのか。
4)7セグメント出力用のデコーダーは別に用意してあるのか、
そこの部分もPICを用いたいのか。
4ビットの半加算機なら、7486一個で済んでしまう。
1ビットの全加算機なら、入力3ビット出力2ビットだから8ピンのPICでも可能。
48MHz駆動のPICのnopは83.333nsで合ってますか? しかし、nopを繋ぎ合わせてきっかり1usのdelay作るの難しい。
と思ったけど、12個並べればきっかり1μsなのか
408 :
774ワット発電中さん :2012/05/15(火) 12:42:25.85 ID:kjbL/mH6
>>403 レス遅れてすいません.
そうです.
コンフィグの1行目が,エディタでの3行目です.
早速,コンフィグ書きなおしてみました.
ですが,今度は別のエラーが出てしまいました.
file.h:4: error 0: Duplicate symbol '___config', symbol IGNORED
file.h:3: error 177: previously defined here
上は,一部です.
各行に対してエラーがでていたので,抜粋しました.
409 :
408 :2012/05/15(火) 13:06:05.74 ID:kjbL/mH6
エラー,処理できました. このエラーは同じ変数をすべてのコンフィグレーションレジスタで 使っていたのが原因でした.
410 :
408 :2012/05/15(火) 14:56:16.17 ID:kjbL/mH6
先ほど書いたエラーは消せたのですが,別のエラーが出てしまい困っています. gb.c:30: syntax error: token -> '' ; column 1 30行目の1列に構文エラーがあるのではないかと思っていますが, そこには改行して何もコードはありません.
出力に直接LEDつけても大丈夫かな? ポートB3からね。 抵抗つけたほうがいい?
>>413 いやダイオードって電流が入る方が三角の底辺のほうじゃないの?
出力だと逆じゃ?電流が棒の側から入ることになる。
基本的なアナログ回路を先に身に付けろって昨日言ったばっかりだろうが…
Lowにして吸い込むイメージ
出力で電位差を1か0にしてるわけか。 勘違いでした..すません。 でもポートに電流が流れ込むと思うんだけど 出力ポートに電流が流れこんでもいいの?
CMOSプッシュプルとはそういうことだ
PIC壊れないの? PICの中で電流がアースされるわけ?
>>419 そだよ
もちろんソース(吐き出し)とシンク(吸い込み)の最大電流値は規定されてるから
それ以上流すと壊れるよ
まずLEDの性質について知っておかないと、色々な現象が発生することになる
そもそも
>>415 の言うとおりで、あとは見ず知らずの人間に質問をする態度についてと、ここが2chであって学校の教室じゃないということについて考えて欲しい
424 :
774ワット発電中さん :2012/05/15(火) 23:11:46.92 ID:u9PVgReM
FPGAってpickit使えるの? 書き込みしたいんだけど。
>>422 さっきドリフのケンちゃんの健康牛乳の録画したの見たばかりだ
カトちゃん壊れてた
426 :
408 :2012/05/16(水) 01:29:24.32 ID:+Va7jG1c
>>423 放置ぎみになってしまってすいません.
C言語ファイルでのエラーだったのですが,
一度問題のある部分の周辺を消してコンパイルしたら,ちゃんとコンパイルできたのでもう少し自分で考えてみようと思います.
折角ですが,すいません.
>>424 FPGAはマイコンじゃないよ、電子ブロックみたいに用意されたパーツで回路を構築する感じの物
FPGAも十分に電子ブロックだろ。 デジタルプロックしか無いっていうだけで。
ええー
詭弁の特徴15条 2.ごくまれな反例をとりあげる ここはpicのスレだから脱線はほどほどにヨロ。
434 :
774ワット発電中さん :2012/05/16(水) 16:42:00.90 ID:MR/q5NmT
今月号のトラ技でPIC16F1938のVCAPにコンデンサをつないでいないのだが、 いいのか?
>434
前スレ >516
>Enhanced Mid-Rangeの中で28,40ピンのPIC16F1938や1939等は
>内部コアが3.6V動作の為、LDOを内蔵しており動作を安定させる為に
>VACP端子にコンデンサをつないだ方がよいとの記述がデータシートにあります。
>
>CONFIG2の設定でVCAP端子をRA0,RA5,RA6または無しに設定できますが
>みなさんはどうしていますか? 試しにブレッドボードでちょこっと動かした分には
>VCAP無しでも問題ありませんでした。
ネットだと
ttp://kikyoya.wordpress.com/2011/08/18/pic16f193x%E3%81%AEvcap/ とりあえず動くっぽいけど、ピンも可変だし不安なら入れた方がいいのかも。
datasheetのElectricak Specificationsの所で
LDO Regulatorの消費がVCAP有/無で 30uA/50uA(typ)になってる
容量は、こんな記述がいたるところにあるから0.1uF程度でいいのかな
>0.1uF capacitor on VCAP (RA0).
FPGAはPCのCPU作れるくらいの代物だぞw なにが電子ブロックだよ馬鹿かこいつ
煽りにしては力不足。
>>436 うーん、電子ブロックっちゃ電子ブロックだわ。。
例えると、 PLD:電子ブロック PSoC:自作PC 普通のマイコン:メーカー製PC …結局コンピューターだから例えになってないか
FPGAは、レゴの2x4のばっかり大量にある感じ
お題 : 特定のポートのbitを反転する PIC16F MOVLW 0x01 XORWF PORTA,f PIC18F BTG LATA,0,0 PIC24/dsPIC BTG LATA,#0 PIC32 LUI v0,0xBF88 ;LATAINVのアドレス0xBF88603C の上位16bitをv0に入れる v0=0xBF880000 ADDIU v1,zero,1 ;ロード命令ないので 足し算で代わり v1=zero + 1 SW v1,0x603C(v0) ;v1→[v0+603c]へ MIPSのPIC32が思いのほか使いずらい。各ペリフェラルのbit操作用にxxxxCLR,SET,INVなんてのが メモリに割り当てられていて使いやすくなってるけど、アセンブラでLATAなんかの定義がdefineじゃなくて externで定義されているせいか演算もできず数値入力。 CだとLATAINV = 0x0001;だけで上記と同じコードが生成されるのに。PIC32でアセンブラは無理があるかw
UARTで割り込みを使った連続TXの実験中。 20MHzでも115,200bpsは余裕ありそう。一文字辺り430命令実行できる。 ftdiの限界が460,000bpsって事だけど、とりあえずこれでいいや。
445 :
774ワット発電中さん :2012/05/17(木) 08:51:36.00 ID:3KzI5DXG
>>435 ふむ。おもちゃならいいけど、業務用なら入れるべきですね。ありがとう。
18F14K50のポート状態変化割り込みって、RAとRBの全ポートが対象になってる 様に見えるんですが、RAってXtal繋いでたりUSB繋がってたりで、そんなポー トが状態変化割り込み対象って凄く使いづらい気がするんですが・・・ ぱっと見、監視ポートを選択出来る感じでもないし・・・ まあ、エッジ割り込みがINT0-2で3つ使えるからそっち使えってことなんでしょ うけど。
>>447 IOCAとIOCBの設定で、ポートごとにinterrupt-on-changeの対象にするかどうかを
設定できるみたいだね。
ftdiは 3MHz / (n/8) pic は20MHz / 16 / n 最大公約数は 250,000bps だった。 もう600bpsの倍数なんて使ってられない。
16F88ですが、 スイッチを繋いで、「PIN_A3かPIN_A4がHIGHの時、あるいはそれ以外の時」、 という三パターンの周波数をPIN_A2から出力する、というコードをmainの中で下記のように書きました。 色々端折ってますが。 で、自分が期待した動作はスイッチを切り変えるごとに周波数が変わる、というものなのですが、 実際はスイッチを切り替えるとPIN_A2からの発振が止まってしまうので、 周波数を変える時は一度電源を落としてスイッチを切り替えて再度電源投入、というように手間がかかってしまいます。 コードの方で何か問題あるでしょうか。 スイッチは三接点?で、PIN_A3をHIGHにする、PIN_A4をHIGHにする、ノーコネクト、の三種類です while(TRUE) { if(input(PIN_A3)){ timer1T=30000; enable_interrupts(INT_TIMER1); }else if(input(PIN_A4)){ timer1T=40000; enable_interrupts(INT_TIMER1); }else{ timer1T=50000; enable_interrupts(INT_TIMER1); } }
>>450 はしょりすぎじゃないか?
割り込みでは何をしてるの?
enable_interrupts()は、ifの外に出すべき。 うまく動かないのとは関係ないけど。 PORTB.4〜.7の変化割り込み使えば無意味なpolling無くなる。 うまく動かないのとは関係ないけど。 ソフトも回路も謎だらけすぎ。エスパー頼む。
>>451 mainの頭の方で
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
して
#int_timer1//割り込み関数定義
void timer1Int()
{
set_timer1(timer1T);
pinOutput();
}
void pinOutput()
{
output_high(PIN_A2);
delay_us(500);
output_low(PIN_A2);
}
みたいな。
ようはさっき書いたコードで周波数の値を与えた後
pinOutput関数でPWMを作ってます。
とこの説明でわかるでしょうか…。
> PIN_A2からの発振が止まってしまう ポエムだなあ。Hi、Low、どっちで止まる? Foscは幾つ? 割り込み処理の中でdelay_us()とか勇者過ぎる。 そんなに暇ならtimerなんて使わないで全部メインの中でビジーループの方が簡単だよ。 真面目にやるなら状態変数=フラグを1個用意して、set_timer1()の引数を500方面とtimer1Tで切り替えると捗るかと。
基本に帰って。 イ− スイッチを3通りにセットした状態で電源を入れると本当にそれぞれ望みのPWM出力を得られているか? ロ− #MCLRはI/Oに割り当てているか? どうで無いならプルアップされているか? ハ− 450のwhileの中身をwhile(1){timer1T=40000;}にして望みの動作が得られるか? 辺りからこつこつ調べてみよう。
いいスレだなあ。
picの資料見てるとワクワクするけど、マイクロチップ固有のプログラム作法なんて覚えたくないから手を出さずに眺めてたけど、
>>436 を見て、fpgaでヲレcpu作って適当なオープンソースパクって互換os作りたくなって来たw
>>407 そんなリアルタイム的な処理って期待出来るのかと思っちゃうけどな。
100nsズレルだけで上手く逝かない不幸の始まりじゃない?
>期待出来るのか できるよ。 >作りたくなって来た どうぞ。
458 :
774ワット発電中さん :2012/05/18(金) 18:26:52.91 ID:9yB6sbJl
picってセラロックつけないと壊れるの? どんな回路も一応セラロックが決まった端子二つからつないでるけど。
>>458 >picってセラロックつけないと壊れるの?
そんなことはない。
>どんな回路も一応セラロックが決まった端子二つからつないでるけど。
そんなことはない。
460 :
774ワット発電中さん :2012/05/18(金) 19:05:26.63 ID:NSP1n1m6
CR発振でも使えるけど遅い。でも安い。
中学生しかおらんのかなこのスレ。
>>456 随分昔にやり尽くされた感があるけどね。
おまいら初心者には優しくしてやれ いつか通って来た道だろ
むしろ小学生ぐらいしか興味持たないだろうと。 大きくなったら他に遣る事有るし。
PICははんだ付けじゃないとダメなんですか?
んーいいようなダメなような・・・・
>>466 カマボコ板にPICをボンドで固定してラッピングで配線しても全然構わない
ゲルマラジオ作ってるみたいだね
>>466 ブレッドボードでもいいよ
聞いた話だと、半田のかわりに接着剤を使った人がいてね…
こういう質問をする人ならやりかねんなと…
ダメなのは何で? 接触が悪くなるから?
>>471 半田付け以外で何かを組み上げて、そのあと、ソレはどうするん? という疑問がわいた。
何言ってるか分からない 組み上げる=完成では?
どうやって作るって? 接着剤でも何でも自分で半田んすればいい。
電気流れる材料で線を接続しないと動きようが無い。
>>470 ありがとうございます。
電気接続は当然で、その手法がはんだか基盤使うかどっちが良いか知りたかったんです。
釣りですね、わかります。
×基盤 ○基板
接着剤でもしっかりカラげてからつければきっと導通するだろ。
接着剤使うヤツがカラゲをしっかりやるはずが無い。
>はんだか基盤使うか ってのが意味不明なんだけど。 基板にハンダづけ ブレッドボード のどちらかじゃないの?
>>481 電子回路って繊細なイメージがあって、あれもダメ、これもダメみたいな
イメージがあるんですよ。あの導線じゃこのPICは無理!とか。
そういう事が気になって仕方なくてね..
日本語でおk プリント基板とユニバーサル基板の話?
アナログ回路なんかなら、バラックでいい加減に組むと発信するとかなんとか聞くんで、わからなくもないが PICみたいな安く簡単に目的を果たすための代物に、そんな縛りがあったらイヤだ。
あんまりオシレータやパスコンと距離が離れるとまずいけど 安定した電源があって、常識的な接続がされてればそれなりに動くだろうさ A/Dの精度追求とかUSBとか考えると難易度上がりそうだけど
本人含めて産廃だろ。
ここに質問投げっぱで消えてった人ってどの辺りの海岸に流れ着くんだろう?
16F877A。他、旧ミッドレンジにて。 banksel は STATUS.RP1 と STATUS.RP0 のビットの上げ下げに展開されるマクロ。 じゃあ、STATUS.IRP のビットを上げ下げしてくれるマクロは無いの? 間接アクセスし辛い。
>>492 マクロなんて自分で好きなだけ作ればいいだろ
ブレートボード使ってUSB-PICを組んでマウスカーソルがグルグル回るデモを 動かしてみたけど、なんかカーソルの回り方が凄くぎこちなくて、USBコネク ターを指で触れるだけでマウスカーソルの動きがぎこちなくなったりして、 ブレートボードで組むのはなんか安定しないっていう印象を受けた
ピックで、割り込みの発生しない16ビットカウンタはありませんか? 他の要因で割り込みが発生した際に、前回割り込みからどの位間隔が空いたか を知りたいんです。割り込みは最短で3マイクロ秒、最長で20ミリ秒程度です。
カタカナやめれ。氷を砕く、アレになっちゃう(手の平の上で氷をガッガッするのを見るのは怖い)。 空いてるタイマの割り込み禁止で済むんじゃない?カウンタの値は読めるよね。 A点でクリア、B点でタイマ停止(必要に応じて)してタイマカウンタの値を読み込む。 フリーランのタイマーの場合でも同様。A点でのクリアをしなくても差分を採る方法で何とかなる。 ただ、カウンタ一周すると値は意味を持たなくなるので注意。16bitタイマが必要になる場合有り。 オーバーフローを割り込み要因にできるのであれば、A点でのカウンタクリアを組み合わせれば 2週未満の範囲で時間を判断できる。 ってか、空きポートに状態を出力して、オシロなり、ロジアナで見た方が簡単。
498 :
774ワット発電中さん :2012/05/19(土) 07:42:37.53 ID:oaYpHWas
>>497 開発過程で見たいのではなく、PG内で知りたいのでロジアナライザーとか
は無理です。
確かに、1週してしまうとNカウントなのか1週+Nカウントなのか判別出
来ませんね。タイマ割り込み使って集会数もカウントするしかなさそうです
ね。20ミリ秒以上の間隔については「20ミリ秒以上開いた」という事だ
け分かればいいのでオーバーフローした時点でカウンタが勝手に止まってく
れれば楽だったんですが。
>>499 1周以上しているかどうかは、T1IFとかTMR1IFといったフラグを調べれば判る。
>>498 何となく予想はしてた。期待に応えてくれてありがとw
dsPIC を2個もらったんだけど16Fや24Fしか使ったことのない 俺にはどんな価値があるのかわからない、いやどう使えばいいんだろう
dsの文字は削ってPICのとこだけ使う
504 :
774ワット発電中さん :2012/05/19(土) 17:59:56.45 ID:+VSi6w7o
>>488 細かいことを言うのも何だけど
ビットをピットと誤入力しちゃうってのは、カナ入力だとやっちゃうのかな
参考資料名の誤字もつっこんでやれよ。 それよりもPIC10Fシリーズって、DIPではウマミが少ないと思うんだが・・・
ウットビットは絶対ウッドビットだと思ったのに
pic回路をはんだごてで使うとき、抵抗の足を導線代わりにしてるんだけど問題ないの? 線足りない分補ってる。
それが正統だと思うよ。 コンデンサの足は何故か鉄だったりするから油断ならない。(CP線) 錫メッキ線を使うのはお大尽。 半田メッキ線を使うのがプロ。 絶縁線はポリウレタンエナメルドワイヤがおすすめ。(UEW) 信号を通すなら0.2mm〜0.26mm辺りが使い易いよ。
>>508 なんか変な表現だが… というか、それは回路作成の問題であってPIC関係ないのでは?
さて
錫メッキ線と差はないので無問題。
>>509 > コンデンサの足は何故か鉄だったりするから油断ならない。(CP線)
うちは、抵抗の足も鉄っぽいんだが・・・磁石に着くし。
それ、ニッケルめっきじゃない?
PIC16F84AでWiiのリモコンに繋ぐクラシックコントローラーのコントローラーICを 自作しようと思ってググってみたらプロトコルが複雑すぎて訳わかんなかった。 ジョイパッド如きで暗号化してるんだな〜。
Wiiリモコンをマウス的に使ったら便利かもと思ったけど、 電源を入れる度に認識させないといけないので放置してある
鉄リードを銅だと思い込んでる人って結構多いかもね。 プロでも。
>>509 俺は、基板なし配線の時はワイヤーラッピングを部品の足に直巻して半田付けしない。
>>516 普通にニッパで切った時の硬さで気づくだろう。
導線で充分。 銅線にこだわる理由は?
>>516 プロも?
嘘ダベサ!
刃物の刃が・・・
指紋で特定しました
うん、一瞬でわかったw
100均商品のPearlは色んなところで売ってるが 写真のタイプは東海地方の数店でしか 出回らなかったタイプ。
>>522 実用新案の先願主張する時、証人になってくれるねw
秋月のver4しか手元にないけど、ICPするドキュメントどこかにない? 対象は旧ミッドレンジ。 抜いて刺して焼いて抜いて刺して動かしては疲れたお。
527 :
774ワット発電中さん :2012/05/20(日) 16:10:02.36 ID:1HQL+eu+
>>521 それ良いなぁ
金属片だったら虫もわかないだろうしww
ありがとう。書き込み成功した。 これでデバッグが捗るよ。 MCLRを入出力に使えないデバイスだから100kΩでターゲットの5Vにつないだくらいかな。 PGD, PGCはとりあえずターゲットで使わないようにした。 後は直結で、ターゲットの電源入れたままでHEX焼ける。 助かる!
VDDは繋がない方がいいっていう神の啓示があったので引っこ抜いた。 5V同士が喧嘩する気がした。
531 :
774ワット発電中さん :2012/05/21(月) 08:38:25.89 ID:wPeWLY16
PICを使ったUSB機器を作ろうと思っています。 二つほど質問させてください。 ほんとに入門者なのですがわかりやすいお勧めの本はありますでしょうか? とりあえずスイッチのオンオフをPCで判定出来るような事から始めたいと思います。 「改訂新版 PICで楽しむ USB 機器自作のすすめ」 これを入門者の私が買っても理解できるでしょうか?
でかい本屋行って自分で判断したら?
便乗質問だが、Windows側のドライバーって付録の奴使ってる? プログラムはVC辺りで作ってるの?
> 初心者にその本は、無料。 俺も初心者のフリしたら只で貰えるかな?
むりよ?
うん、「むりよ」(^^;;
538 :
531 :2012/05/21(月) 17:56:56.88 ID:wPeWLY16
>>534 レスありがとうございます!しかも写真付きとは
USBで動かす電子工作を買ってみようと思います
手元のスイッチのオンオフをソフトで監視するのくらい出来るようになりたいです。
USBは、なんだかめんどくさいイメージがある 結局FT232に逃げてしまうけど、PIC単体でできるようになった方が配線楽だし安いのかな
ソフトで苦労するか、ハードで苦労するか・・・
>>539 そりゃ値段で言えば18F14K50が\170しかしませんから。
しかもDIL20で扱いやすいし、FLASHも意外と16kもあるし。
542 :
774ワット発電中さん :2012/05/21(月) 19:28:50.54 ID:jse4W1Yw
10円で買ったLEDが2年立ったいまでも光るんだが、こんなに性能いいの? 今のLEDって。 皆どう?
>>542 LED電球の寿命(明るさが新品の70%まで落ちる)は40000時間(≒4年)らしいぞ
10円ってことは、普通の小さい表示用LED? だったら10年程度の連続点灯は余裕なんじゃないか
ところで割り込みが一回しか起こらない... どうしたらいいですか? スイッチを入れたら割り込みが起こるんですが スイッチ入れっぱなしにしてても、通常ルーチンがずっと続き 割り込みが起こらない。
>>545 が起こすように仕向けて下さい、お願いします。
でないとその子は一生割り込みを知らない子になってしまいます。
一度スイッチ切れば解決しそうじゃん
スイッチを入れっぱなしにして、割り込みが起こるプログラムにしたいです。 通常ルーチン:LEDが1個点滅 割り込みルーチン:LEDが2個点滅 です
>>549 考えられる原因は何でしょうか?
本当に困ってます。
エッジ設定とかでしょうか?
エスパー回答だが、原因は「仕様」。
割り込みは「エッジ」でしか発生しない、そういう仕様なんだから どうしてもメインループや割り込みっぱなしの処理でなく、割り込みの連発で処理したいなら、2個目のLEDあたりから割り込み端子に遅延を入れてフィードバックするか、適当な発進回路を組むか
>>550 単にスイッチで動作を切り替えたいのなら
ループ内でポート読んで分岐したほうが簡単だと思うな。
どうしても割り込みを使いたいのなら割り込みフラグをクリアしないとか?
>>552 レスありがとうございます。
立ち上がりや立下りの信号というのは、スイッチを入れている状態なら
起こると思うのですが違うのでしょうか?
つまり、立ち上がりや立下りを感知して
割り込みルーチンに入る、通常ルーチンに戻るを延々に繰り返すと
思うのですが
>>553 スイッチで動作を切り替えたいのじゃなくて、スイッチを入れている状態で
割り込みが起こって欲しいという事です。というか起こるはずなんですが.....
> 立ち上がりや立下りの信号というのは、スイッチを入れている状態なら > 起こると思うのですが違うのでしょうか? たぶん、あなたには永遠に作れません。
立ち上がり、立下りとはどういう状態のことを想定してますか。 スイッチ押しっぱなしだとどういう波形になりますか。 波形を描いてみてください。
×発進→○発振
>>554 違います
スイッチを入れっぱなしなら何も起こりません
「立ち上がり」や「立下り」について調べるか学校の先生に聞いてください
ポートの入出力をメインループで意図的に切り替えれば、端子入力とのANDになって割り込みが発生する…のかな?不定な動作かもしれない
>>555 >>つまり、立ち上がりや立下りを感知して割り込みルーチンに入る、通常ルーチンに戻るを延々に繰り返すと思うのですが
言葉の意味を確認すべきですね。
立ち上がりは信号がローレベル→ハイレベルに変化した"瞬間"に起こる。
立下りはハイレベル→ローレベルに変化した"瞬間"に起こる。
スイッチを入れっぱなしだと
ずっと同じレベルの信号が入り続けるだけで変化は起こらない。
つまり、スイッチを入れた瞬間は立ち上がりor立下り(プルアップかプルダウンか知らんからどっちか)で割り込みは入るけど、
それ以降は信号に変化がないから割り込みは起こらない。
>>557 >>559 なるほど勘違いしていました。
電源はコンデンサやらが噛んでいたので信号は上がったり下がったりする
波形かと思っていました。
割り込みを起こすには手動じゃないとダメなんですね。
かなりすっきりしました。ありがとうございます。
>>560 やりたいことがいまいちわからないけど、、
スイッチを押している間、定期的に割り込みをかけたいなら、例えば最初、
ポート割り込み設定をrising edgeにしておく
スイッチを押したら、ポート割り込みがかかって、その割り込みルーチン内で、
タイマ割り込みをONにし、同時にポート割り込みの設定をfalling edgeに切り替えておく
スイッチを離してポートがLに戻った時に、falling edgeで再度ポート割り込みがかかって、
タイマ割り込みOFFにする
とか
まあ、割り込みフラグをみて、タイマ割り込みなのかポート割り込みなのか振り分ける
必要があると思うけどね
(上記は、スイッチ押しでH、スイッチ離しでLの論理の場合の説明)
アセンブラでUART使うの意外と面倒。 TXIFの仕様は他の割り込みフラグと全然違うのも罠だな。 完全に連続でどばーってのと、完全に離散的にぽつぽつってのはできた。 両方対応で少し手間取ってる。
そうですか。
>電源はコンデンサやらが噛んでいたので信号は上がったり下がったりする >波形かと思っていました。 if (!日本人) 国へ帰れ else 足洗って別の道に進め
UART意外と手ごわい。 送信終わるのpollingで待つなら簡単なのに。 MPLAB SIM でもう少し頑張る。
>>565 送信終わる? 送信バッファ空じゃなくて。
UARTは、まずデータシート読み込んで、複雑なことしてんなーと理解しても、 コードに書いてみるとびっくりするほど短くなって、 簡単なことしかしてないように見える
>>566 送信終わりなら TXSTA.TRMT に反映されそう。
送信バッファ空は、100%いつも反映されるフラグがあるか未確認で。
PIR1.TXIF がそうなら、まあそうなんだろうけど、所詮はpollingだし。
TXIFとTXIEの使い方がタイマーとかと違ってて辛い。
>>567 ソースくれ。
>>568 ダブルバッファになっているところがミソ。
ポーリング方式でも連続ベタ送信できるよ。
>>569 「できる」「できない」を教えられても役に立たん。
やり方を教えてくれ。間違えた。やり方を教えてください。
ググればサンプルとか基礎の説明とかしてるサイトは相応にあるだろうに…
>>571 そもそもデータシートに使い方が書いてある。としか言いようがない。
誰も皆、出発点はデータシート。あるいは参考サイトを見てって事になる。
TXIF、あるいはTX0IF(ターゲットわからないから名前不明)を検索キーとして
検索するのが近道。データシートに使い方としての「絵」もあるのになぁ。
フラグの変化は非常にシンプルだよ。。
あー、もどかしい。目標とする事がよくわからない。ベタ詰め送信がやりたい? でも変だな? >>完全に連続でどばーってのと、完全に離散的にぽつぽつってのはできた。 連続でどばーができてるならTXIFを使わなければ無理だと思う。 TRMTだけしか見てないなら、微妙に隙間空くと思うよ。 どちらもTXIFが1の時に送信バッファにセットすればいいだけじゃん。 後者の離散的は1バイトの通信時間を考慮し、それ以上の時間間隔で データをセットする。それだけの話じゃないの?
俺的TXの使い方 1.送信したい文字列のポインタ変数をセット。 2.送信割り込みイネーブル(TXEN)をON、以後メインプログラムでは放置。 3.送信バッファが空なら割り込み動作するので、 割り込みプログラム内でポインタ先のデータ読み込み。 A.データが 『0x00』 ならば、TXENをOFF、終了。 B.そうでなければ、データを送信バッファにセット、ポインタを +1、終了。 送信終了条件を『0x00』にしてるのは個人的な趣味なので、それじゃ都合悪いときは 別途文字数カウンタでも使えばいいよ。 あと、連続で文字列送信する時は、割り込みイネーブル(TXEN)OFFまで待機させるか、 リングバッファでも追加する。
リングバッファは1バイト無駄にする方式の方が楽だな
577 :
774ワット発電中さん :2012/05/23(水) 18:36:11.24 ID:m6asrDRL
PICKIT2と3両方使ってるんですが、昨日まで使えてたのに今日起動したら両方とも使用不可になってしまいました。 状況は、どちらもPICKIT2 not found と、PICKIT3 not conectedと出ます。 ファームが死んだのかと思い、ボタンを押しながらUSBコネクタを接続するとLEDが点滅するので生きていると思います。 両方とも使えなくなる原因は何ですか?何か対処方法はありますか?
>両方とも使えなくなる原因は何ですか? PCがあやしい
まっ、とりあえずデバイスマネージャで見て、 USBViewで見て、それから考える
580 :
577 :2012/05/23(水) 19:16:17.24 ID:m6asrDRL
>>579 とりあえず、USBViewで見たら下記IDが出てきました。
idVendor:0x04D8
これってPICKIT2ですよね?
だとすると、やはりPICKIT側は問題ないと考えていいでしょうか?
PC側だとすると、原因がさっぱりわかりません。
普通にいつも通り起動しただけなのに・・・orz
PICは初心者向けのマイコンじゃないからな 最近はアーキテクチャーの知識ゼロな奴がサンプルプログラムとキットで動かして PIC使える気になってる馬鹿ゆとりが多くて笑えるw
>普通にいつも通り起動しただけなのに・・・ はじめはみんなそう言う
CCS−Cコンパイラは何台のパソコンにインストできますか? 中古ないでしょうか?
>>580 idVendorはベンダのIDだから、プロダクトIDとペアにしないと特定できんよ。
>>581 そもそもPICはマイコンじゃないと思う。
585 :
531 :2012/05/23(水) 21:11:32.95 ID:TukLmCIY
USBで動かす電子工作が届きました 勉強にはなるけどやりたいことはこれじゃなかったですね Pickit2使って工作するサイトをぐぐって頑張ってみます
(゚Д゚)ゞども。インターネットパトロール隊です。 >> 583 > CCS−Cコンパイラは何台のパソコンにインストできますか? ライセンスの問題は CCS Cを販売している会社に聞いた方が早いと思います。 ただ、私が取り締まった ワレザーどもに聞いたところ、 keygenで pcb.crg, pcm.crg, pch.crg, pcd.crgというファイルを作り、 それを CCS Cをインストールしたフォルダに入れればいいようですので、 技術的には何台でも可能かと思います。 > 中古ないでしょうか? ちょっと聞いた事がないですね。一般的にソフトウェアの中古というのは聞いた事がありません。 CCS Cは、日本語マニュアルがあるので初心者向きのいいコンパイラだと思います。 ただ、きちんと お金を払わず不正利用するワレザーは許せませんね。 私は そういう不正利用者をバンバン取り締まりたいと思っています。 皆さんもそう思うなら、"PIC インターネットパトロール隊"などの単語でググらないで下さい。約束ですよ?
PICで作ったものを販売したいんですが、pickitとか使って逆解析される可能性 とかありますか?あるいはなんかプロテクトかけるとかですか?
>>587 ある。あるから、プロテクト機能もある。
>>587 どんなシステムでもHex引き抜けなくとも、実機で何1000パターンとテストすれば同じようなフローは書けるから。
安心して、PICの持ってるプロテクト掛けときなさい。
プロテクト掛けられない領域はあきらめろ。
>>573 データシートには大まかな雰囲気しか書いてないよ。
たとえば PIR1.TXIF を問答無用に 0 にするフラグは何と何か、とか。
たとえばボーレートが決まったタイミングで回り続けてるわけじゃない、とか。
正確な仕様は書いてない。
まあ、役に立たない愚痴は置いておこう。
PIR1.TXIF の細かい挙動がわかったからポツポツ書いてみる。
>>575-576 64、80、96バイトのリングバッファは旧ミッドレンジだとコード増えて寒かった。
とりあえず32バイトで書いておく。短コードで64は後のお楽しみ。
;mov read_pointer <- 0xa0
incf read_pointer
bsf read_pointer,5
bcf read_pointer,6
読みと書きのポインタが同じトコ指してたら空っぽって定義すると・・・
32バイト占有で実質31バイトなのか。こりゃ楽だ。
眠い…
>ボーレートが決まったタイミングで回り続けてるわけじゃない、とか。 また意味不明な用語の使い方を・・
>>590 データシートが正確でなければ何を信用しろと。
コメントしてる人はデータシートを見ながらコメント書いてるのに、それも信用できない事になる。
ってことで、これ以上の書き込みは無意味だから直接マイクロチップの中の人に問い合わせて下さいな。
データシートに書いてある以上のことは、たとえ調べてみてそうだったとしても 「たまたまそうなっている」というだけで、他のファミリ、他のロットで 同じだという保証は無いからな。 そのデータシートでさえ、エラッタが出たりするわけで。
データーシート以上の事を「ここ」で求められても困るんだが。 わからない事は素直にメーカーに問い合わせるのが一番の近道。 経験上の事を答えても、たまたま。って事になるんだろうし。
>>586 さん
有意義な情報ありがとうございました。
>>593-594 うまく動かない原因を探し続けてTXIFの妙な挙動を幾つか見つけた。
データシートからはどうしても読み取れない。
で、初めに書いたコードが動かない原因にたどり着いた。
単純なコードで検証してみた。
movlw 'U'
movwf TXREG
↑これをマクロ SayU とする。簡単のため bank0だけ使い PR0,PR1 は触らない。
SayU
SayU
↑TXSTA.TRMTが立ってるところからなら、これは期待した動作をしてくれる。
実際は一文字出力でサブルーチン化するので、間に雑多な命令が挟まる。
SayU
複数の命令
SayU
↑これをSayUUとする。複数の命令はreturn : setlw 'V' : call OUT_CHAR の3命令=5*4/Foscかも知れないし、10000*4/Foscかも知れない。
間の命令数がわからないので、TXIFを調べなくてはならない。ここでは間の命令は適度に少なかったものとする。
本題。
SayUU
btfss PIR1,TXIF
↑は0を検出して欲しいが、実際に検出されるのは1。
SayUU
nop
btfss PIR1,TXIF
↑は期待通りに0を検出する。以下nopの数を適度に増やしても挙動は同じ。
これが読み取れるデータシート、プリーズ。
>>592 電波だね。眠かったんだ。ごめん。
597は16f877a実デバイスで確認した。MPLAB SIMではそういう動きをしないっぽい。
>>597 ソース来た。
妙な挙動の対策にはならないけど、気になった点。
送信データを2回セットしてからTXIFを見ているけど、俺の場合は送信データをセットする
前、1バイト単位で必ずTXIFを見る。作法と言うほど大げさな物じゃなく気分的に。
まぁ、連続して送信する場合は繰り返しになるからどっちが先かってのは関係なくなるかも
しれないけど、必ずTXREGが空いている前提が必要。TXREGが空いていない場合の書き込み
挙動は・・・不明。
本題の部位。nopがない方は何となく想像できるけど、nopがある方はわからない。
予想される要因は…。書かれていないけど、SayUUを2回連続実行してるのかな?と。
これは妄想ね。限られた情報から推測するしかないのは歯がゆい。
>>597 TXIFはTXREGに書き込めるかどうかを示すフラグなのに、このときは立ってないはず
とか考えるのがおかしい。単純にTXIF=1ならTXREGに書き込めばいいだけ。
>>597 16F877aのデータシートには記述はないね。
16F193xのデータシート(日本語)には
> EUSART 送信部が有効で TXREG に送信データがペ
> ンディングされていない場合、PIR1 レジスタの
> TXIF 割り込みフラグ ビットがセットされます。つ
> まり、TSR にデータがあり、TXREG に新しいデー
> タがペンディングされている場合のみ TXIF ビット
> はクリアされます。TXIF は TXREG への書き込み直
> 後にはクリアされません。書き込み実行後、次の命
> 令サイクルまで有効になります。TXREG への書き
> 込み直後に TXIF ビットをポーリングしても無効と
> なります。TXIF ビットは読み出し専用であるため、
> ソフトウェアでセット/ クリアできません。
こんな記述がある。関係あるかな?
後継の16F887にも同じような記述がある。
602 :
774ワット発電中さん :2012/05/24(木) 19:24:56.12 ID:wQf2yPSB
>>584 >そもそもPICはマイコンじゃないと思う。
じゃあ何なの?
コンピュータじゃなくてコントローラだ って話かな?
>>597 Async/Syncどっちでやってる?
Syncならその動作であってるしデータシートにもその通りのタイミングチャートが載ってる
>>601 16F877aは10.2.1項、Figure10-2/10-3で書かれてる感じ(英文側)。
問題のデバイス型番がわからないので、
>>597 が読み取れない対象がわからない。
606 :
774ワット発電中さん :2012/05/24(木) 20:22:00.66 ID:D82bsSgq
もしRS232CでPC側に送信するだけなら アセンブラでプログラムしちゃったほうが楽だよね。
それはどうかな
こんばんは
PICマイコンに興味があります そこでC言語で開発できる参考書ご存じないでしょうか?
マイコンは弄ったことある? もし初めてならmbedから入った方が良いかもね。
PIC16F873のccpでキャプチャしたいのですが 立下りエッジから立ち上がりエッジはキャプチャできますか? 出来るのであればアセンブラではどの様に書くのでしょうか?
最初立下りエッジでキャプチャする設定にしておいて キャプチャ割込処理内で 立上がりエッジでキャプチャする設定に変更すれば いいのではないか
614 :
774ワット発電中さん :2012/05/25(金) 17:18:13.75 ID:ko+B4rgR
picのある出力を別のpicの入力にするとき、間に抵抗とか入れる必要あります?
616 :
774ワット発電中さん :2012/05/25(金) 17:31:27.66 ID:ko+B4rgR
>>615 電流の量減りませんか?
てか入力と出力の電流流って違うんですか?
PICの入力はTTLなので、電流を流し続ける必要はあるけど、ほんのちょっとでいい
PIC内部にも抵抗があるので、直接つないでも1μA以下
ただ、
>>615 の言うように抵抗を入れたほうが安定するし、ラッチアップや誤って両方出力にした時の破壊を防げるかもしれないし、消費電力が減るかもしれない
入力と出力は全く別の回路なので、分けて考えるんだ
619 :
774ワット発電中さん :2012/05/25(金) 18:23:41.36 ID:ko+B4rgR
>>618 コンデンサーもつけたほうがいいですか?
1uAって大分小さいですね。 後TTLとは何でしょうか?
>>620 俺の貼ってるURL読んでるかー?
あと、少しはググってみたかー?
>>618 レベルがTTLコンパチというだけで回路がTTLになってるわけじゃないよ。
>>624 理系でも分野ごとによってTTLの意味が違うようですが...
PICの場合TTLとはどういう意味でしょうか?
かまうだけ無駄 NG推奨 ID:ko+B4rgR
どうせ時計作って終わりだろうから適当にソースコピーしてきて動かして満足してろよ。
位置に着いて ○TTL
629 :
774ワット発電中さん :2012/05/25(金) 20:22:52.12 ID:0x627j0h
TTLは Transisotr Transistor Logic の略で、意味自体に曖昧さはない。 PICのDataSheetを見たら with TTL Buffer と書いているが、本当は嘘だね。 with Schmit Trigger buffer と対比させるために書いているんだろうが。 実際はCMOSバッファのはず。 前述のとおり、厳密にいうと嘘だが、他にTTLと同じくらいの電圧であることを 表す用語も見当たらないので、TTLと同じ用な電圧レベルということで 使われているのだろう。
TTL = TTl Level
632 :
774ワット発電中さん :2012/05/25(金) 21:46:08.33 ID:0x627j0h
>>630 斬新だなー。正直笑わせてもらった。自分にはない発想だ。
ちょっとググってみたけど、見つからなかった。どこに書いてあった?
自分の知る範囲だと、TTLレベルという書き方しか見たことがないが。
TTL自体、見かけることがないので、定義が変わってきても不思議はないが。
TTL=TTl Level とは、自分には絶対思いつかない。面白過ぎる。
>>629 CMOS Bufferと書くと、今度は4000シリーズあたりになりかねない。
634 :
774ワット発電中さん :2012/05/25(金) 22:35:20.10 ID:0x627j0h
>>633 今のICは、ほとんどCMOSプロセスで作られているから、調べてないが、PICも
CMOSプロセスでしょう。CMOSバッファという言い方は、技術的に間違いではない。
CMOSバッファ=4000シリーズという発想をする人が、それほどいるとも思えないし、
そもそも、PICの入力段の回路についての記述で、そんな突飛なことを考える人
が、あなた以外にそれほどいるとも思えないのだが。
それに、4000シリーズを知っている人も今では、あんまりいないだろうし。
>>629 で書いた TTL Bufferについて、ちょっと考えてみたが。
PICのSpecのTTL Bufferという言い方は、シュミットトリガではない、通常の
バッファという意味合いなんだと自分は考える。もし、そうなら、自分だったら、
ノーマル・バッファと書く、用語的に正しいかどうかは不明だが。
84だかの古いのはトランジスタバッファらしい。 最近のはCMOS。
>>634 4000シリーズに限らんよ。CMOSの汎用ロジックファミリを調べてみたら
いいと思うけど、だいたいは、TTLとの互換性は持ってないものさ。
CMOSプロセスで作られているというのが、常識化している中で
TTL Bufferと書かれていれば、スレッショルドレベルをTTLファミリ
に合わせている、TTL compatible Bufferのことだろうと解釈してやるのが
自然かつ妥当だろうさ。
CMOS Bufferと書かれているのだけ見たら、TTL compatibleとは思わない
だろうね。
後閑 哲也の本て、本人があんまり解って無いのか少し難しいことしようとすると 安易な方法で避けるのが多いからあんまりお勧め出来ない。 PICの割と初期の本の「PIC活用ハンドブック」だと アセンブラは単純なプログラムだけで後はCで誤魔化すとか平気でするのが面白くない。 かと言って、「C言語によるPICプログラミング」はこれまたアセンブラで済むような単純で 小さなプログラムばかりで読んでも殆ど意味が無い。
638 :
774ワット発電中さん :2012/05/26(土) 00:03:52.58 ID:w8j9XUkG
639 :
774ワット発電中さん :2012/05/26(土) 00:15:10.39 ID:A3+wPg2R
何が言いたいのかよく分からないんですが、互換性について述べたつもりは
ないですよ。
CMOSバッファという言葉をPICの入力段の説明に使っているのに、4000じゃなく
てもいいけど、CMOSゲートICを連想する人は、いないんじゃないんですか。
と言っているだけですが、何かおかしいですか?
>TTL Bufferと書かれていれば、スレッショルドレベルをTTLファミリ
>に合わせている、TTL compatible Bufferのことだろうと解釈してやるのが
>自然かつ妥当だろうさ。
普通はね、だから
>>629 ではそういう書き方をした。
>>629 のなかに書いてあるが specの中で with Schmit trigger buffer と
with TTL Buffer が並べて書いてあるから、with TTL Buffer は、
shmit trigger のないバッファの意味で使っているんだろうと考えた。
with Schmit trigger buffer だって 電圧レベルが違うわけではないですからね。
単独で、with TTL Buffer なら、私も迷わず、そう考えますよ。
>>634 だけ読んだだけでは、そう思うのは無理ないと思います。
spec を読まないと、私の考える理由が、分かっていただけないかもしれませんね。
ただ、わたしも、この判断が正しいという確信があるわけではないけど。
spec を読んだ上で、それは違うだろうと考える人はいると思いますよ。
/) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ / …いや、良くないか とりあえず、中途半端な知識しかない自分の場合は、データシート内の「TTL」は若干の混乱を招く表現ではあった
>>637 むしろ、初心者向けでなんでCを使わないのか不思議だった
実はCを覚え立てなのでは
極簡単な事を実に複雑に説明することで初心者未満を蹴落とそうとするとは、やるな。
後閑先生はCCS信者。 CCSって個人で使うのには値段高い割にサポート60日でかなり無理有るし、 仕事に使うにはバグだらけでこれまた無理がある。
645 :
774ワット発電中さん :2012/05/26(土) 05:08:49.72 ID:ztfybCWh
こんな場で偉そうな事言う人に限って たいしたことやってない これPICスレの特徴な
647 :
774ワット発電中さん :2012/05/26(土) 08:44:22.28 ID:w8j9XUkG
>>647 全くの初心者にはエディターから始まる。最近は大丈夫だろうけど、10年前とかはファイルとは?から始まる。
>with Schmit trigger buffer だって 電圧レベルが違うわけではないですからね。 ほうほう・・16F88/87あたりでも Input Low Voltage with TTL buffer VSS ― 0.15 VDD V For entire VDD range VSS ― 0.8V V 4.5V ? VDD ? 5.5V with Schmitt Trigger buffer VSS ― 0.2 VDD V Input High Voltageが with TTL buffer 2.0 ― VDD V 4.5V ? VDD ? 5.5V 0.25 VDD + 0.8V ― VDD V For entire VDD range with Schmitt Trigger buffer 0.8 VDD ― VDD V For entire VDD range だとか書いてあるが、同じに見えてしまうのか。困ったものだなあ。
>>635 C84ですらCMOSだったはずだけど。
「おぉ! 74ACTとおんなじじゃん! このマイコンすげー」って感心した記憶がある。
最近はコンデンサ程度追加すれば単体で動くIC増えまくったおかげで、 TTL/CMOS回路をまともに組める自信が無くなったような気がする。
16F887てi2cの外部メモリを使いたいです。簡便なライブラリってありませんか?
後閑さんのHPにあるよ
手ごろな題材なんだから自分でデータシートでも 見ながら考えて作ってみればいいのに。
めんどくさいでござる
最近のmicrochip.comが見づらくなった件 トップで8bit PICクリックしてもジャンプしないのだが
モータのPWM制御をしたい。 あまりデューティー比を絞ると回転しないだろう。どの辺りが敷居になっているのか? キャリア周波数の決め方にもコツがあるようだ。 後は実行あるのみ。二つの設定値を把握しながら実際に試してみたい。 2つのVRをADコンのポートに接続して抵抗値によって可変するプログラムを組む。 で、表示方法を考えてんだがめんどくさw 周波数カウンタと電圧計を出力につなげばいいじゃないってことで。 他にいい方法はありますか?
めんどくさいと思わない サクサク作業を進める
表示なんかシリアルでPCに送ればいい
実際、PICのUSARTはデバグには超便利だよね、実際。
661 :
774ワット発電中さん :2012/05/27(日) 13:25:37.27 ID:Jduvdn6q
モータで回される側の状態も同時に情報収集するなら、それもいいかもね。
>657 ADとか表示のコーディングが面倒だと感じる程度のスキルなら プログラマをターゲットにICSPで繋ぎっぱにして ソースの定数を書き換え→ビルド→プログラム ってやる方が早い。 とにかく手を動かさないと先に進まない。
おとなしく諦めるというのが一番かな?
UART最強 LEDチカチカとスイッチ入力覚えたら何より先にUART習得だぬ
電圧とか気にしなくてもpickit2でできるしね
20年前ならまだしも、いまさらPICやってもねぇ・・・ 凋落産業の日雇い土方になるつもりならいいだろうけど。
メインの武器にしようと思ったら駄目だ プログラムが組めて電子工作もできて英語の読み書きが出来て機械製図もできる そんなことは基礎知識で、その上で何をするかだ
>>664 実際面倒くさいよ。
ただ表示させるなら簡単だが、
デューティー比、キャリア周波数と表示させるにはね。
ROMにレジスタ値からの換算表でも入れとくか?
555で作って、抵抗値から計算しておく程度で充分じゃねぇの?
555で組むのも面白そうだね。 検索するといろいろな回路がある。 できるだけシンプルな回路で同じ結果をだすのが腕の見せどころか。 でも、最終的には外部からの複数の入力によってデューティー比を変えるつもりなんでPICがいいかも。 一回コーディングして動作すれば使いまわしできる。
>>668 道楽用には値段も機能も手軽だし、やっぱり便利だよ。
Z80の開発ツールだって、個人用では安いとはいえなかったし。
>>668 年に数回「凋落産業」「日雇い土方」って見かけるね。
まるで、自分がそれしかできないから他からの参入を阻止するための台詞にしか見えない。
オウム返しが精一杯か(笑)
つうか、仕事のためのツールに関する話をこんなところでしている という時点で、どうかと。
>674みたいに反応するっていうのは、自分自身が
日ごろから気にしているポイントになってるんだろうな。
>>676 仕事でやってる、仮にも「プロ」ともあろうものが、
2ちゃんに頼るようじゃ終わってるよな。
>>677 別に気にしてるとか反応とかではなく、自分にとっての最適を選べばいいじゃん。
コストと環境と目標機能にあわせてプラットフォームを選択。時にはマイコン無しってのも選択肢。
なんでいまごろぷりんてぃん
681 :
774ワット発電中さん :2012/05/28(月) 20:11:26.99 ID:jZkwGLIl
お金に余裕がある場合ドどれがお勧め? PICkit 3 MPLAB ICD 3 MPLAB REAL ICE PROBE KIT あと MPLAB REAL ICE Isolator って何に使うの? となみにPIC12Fの8ピンつかいたいんだけど デバッガとかつないでもIOピン全部使える?
・秋月のライタが対応 ・CCP4以上 ・ADC10以上 ・8kW以上 こんなPICある?
>>682 > ・秋月のライタが対応
これが一番ネックだな。
pickit2か3を買うことを薦めます。
消費電力が8kW以上だと!!! と空目するほど眠いのでもう寝やう
空目アワー
>>681 デバッガとしての機能の差が価格の差だから、金があるなら
> MPLAB REAL ICE
じゃね。
12Fシリーズのデバッグには、デバッグヘッダーが必要なはず。
いくらエアコンを節電しても電気代が下がらんと思ったら、 PCだけで80kWhくらい使ってた
688 :
774ワット発電中さん :2012/05/29(火) 01:01:19.65 ID:cuYy1Ehv
上で言ってる USARTってデバッグに最高!って RS232Cで PCに繋いで、データーとか垂れ流しにして 変数読み出しに使うとか?
バックログが無限に見れるから、液晶とかLEDでモニターするよりよっぽど情報が多い
690 :
774ワット発電中さん :2012/05/29(火) 06:44:22.79 ID:6tRceQrx
デバッグヘッダーって対応チップすくなくね? それとも流用できるの?
>>688 PICじゃあまりやらないけど、UARTを割込み駆動で、コマンドの
処理などを組み込んでおいて、ターミナルからメモリ領域の
ダンプとか書換えとかね。
あと、プログラムの停止/再開、シングルステップとかレジスタダンプ
機能なんかを組み込んだりしたこともあったな。
>>682 自分で探せw
ちゃんと検索サイトを公式で用意しているんだから。
MAPSだか細かい方が適していると思う。
秋月ライタが対応しているかどうかとか、秋月で買えるかどうかはその後で探せばいいと思うよ。
なかなかわけのわからんものを羅列してくれて面白いよ。
絞らないとdsPICからPIC10Fまで全部並べやがるから。
>>691 デバッガ使えよ
無限ログ的な使い方ならわかるけどそれならPIC側で何もしなくても実現できるデバッガのほうがはるかに効率的
>>668 たしかに20年前は電気電子は花形産業で、今は完全に中韓台にやられてるな。
回路設計や半田付け出来ても日雇いのバイトにさえありつけない。
要領いい奴はみんなWEBやスマホ関係に転職した。
>>688 業務でPIC使うなら足をあまらすような使いかたはタブーなんでそんなデバッグはまずしない。
>>695 そんなタブーの業種もあるんだ。
うちは、ピン余りまくってるぞ
足が多いほどコストが上がるならそうだろうけど 価格と入手性の方が普通は優先
余剰在庫ってのもww まあ、PICに関してはデジキーで100個買う時の単価よりも安いし、商社じゃなくて秋月じゃないかなぁ…。 と思うけど、仕事でも。 Makeでもコミケでもいいから一度自分で商品作って売ってみたいなぁ…。 まあ、100個ぐらい作っても3万行かないくらいなら、数年ぐらいかけて売っても良いし。
デバッグ用に2ピンくらい使っても誰も文句は言わないよ
700 :
774ワット発電中さん :2012/05/29(火) 18:49:14.71 ID:EgWfSak6
>>699 いう人がいたんだな。rb6,rb7 は使う。さいごの頼みの綱のUARTも潰す設計者。
どないしてデバッグせいゆーねん。LEDデバッグだけじゃ効率悪いちゅーの。
701 :
774ワット発電中さん :2012/05/29(火) 19:07:40.70 ID:6tRceQrx
8ピンとかどうすればいいの
>>702 リストの中には日本メーカーのもあるけど、これ!ってのが情報として欲しいね。
だから、シナ人に物を作らせるなんて阿呆のすることだって。 アパレル系なんかは脱中国は常識になってるけどな。
705 :
688 :2012/05/29(火) 22:23:54.22 ID:cuYy1Ehv
PICの A/D使って、電圧やら温度やらを PCに取り込めれば良いなぁ けど USBは敷居少し高いぞ と思っていたが、テキスト垂れ流しで良いのか ありがと
敷居!
ハードル!
708 :
774ワット発電中さん :2012/05/30(水) 00:05:30.51 ID:ZznGRFxH
PICへの入力で、AD変換できるポートにボリューム繋いでるものがあります。 10kΩのものが多いですが、何か意味あるのですか?
1kぐらいから100kぐらいならなんでもいいよ。 徹底的に究明したいならデータシートで入力インピーダンスを調べて ノイズマージンとかを考慮しながら定数を追及汁。
ボリュームは錆が気になる。 対策があったら使ってもいいけど、錆びづらい奴を選ぶしかないんかな。
そのへんの設計は本当にざっくりだなあ 小さいと電流が無駄に流れるしでかいと精度悪くなるし、 感覚的に10kだな もともと部品箱に1kと10kと100kしか入ってないし
>>605 すまん。どこに書いてあるかわからん。
少なくともfig.10-2, fig.10-3にはそうは図示されてない。
10.2.1の文章にも明記されてないように見えるわ。
DS39582B
>>601 ありがとうございます。まさにその現象でした。
713 :
魚チョコ :2012/05/30(水) 00:52:46.74 ID:r9lY/m6c
敷居が高いとは、義理を欠いてて後ろめたいから 「しきい(低い)しきい(敷居)が高く見えらア」 というだじゃれだったんだが、なぜこんなことになってしまったんだ……。
>>711 なるほど、抵抗値の違いの影響がよくわかりました。
今月上旬に秋月で買ったPICのリビジョンをチェックしてみた PIC16F1823-I/P 1044KYA → A6 PIC16F1827-I/P 1047MKV → A4 PIC16F1823のリビジョンはA6とA8がある。A6はエラッタが多い。 PIC16F1827のリビジョンはA2〜A5がある。エラッタが多いのはA3マデ。 1823のA6のエラッタの中で個人的に嫌なのは、 2.1 ADC conversion does not complete.→回避策が超ウザいのでADC使えないと思ったほうがいいか。 7.1 Bulk Erase not available with LVP.→Row EraseするようにPICライタに手を入れるのがチョイ面倒くさいな。 とくに理由がなければ1827にしといたほうが無難かも。 たった20円しか高くならないし、ピン4つ増えるし。 ADC使う用途に1823を4個買って、さぁ作ろうと思ったらコレだよ。
716 :
774ワット発電中さん :2012/05/30(水) 06:46:01.64 ID:4T7yPegT
>>715 18F25K80が、どうしても PWM2,3,4を出力しなくて、なんなんだこれ??
って悩んでたけど、もしかしたらエラッタ?って可能性もあるのか
>715 そのADCのエラッタは酷いな。 変換が自動で止まらないから、プログラムで86±2命令後(@32MHz Tad=Fosc/32)に BCF ADCON0, GO/DONEで変換を手動で止めろとは… 実質、変換中は何もできないな PIC12F1822も同じ問題あるようだし、秋月のこっちのバージョンも気になる
719 :
716 :2012/05/30(水) 19:39:21.99 ID:4T7yPegT
>>717 情報ありがと、PDF探しても見つからなくて聞こうと思ってた所だった
ECCPのことが書いてあったけど、チト違う内容だったよ
もうちょいがんばってみよ
> ±2命令後 ±2なのか・・・+∞-2とかなら使えそうだけど。
逐次変換方式はシフトレジスタみたいな動きだから いいタイミングで止めないと意味あるデータとりだせないからか きついエラッタやのう
LSB側1ビットを捨てて9bitDACとして使うならば+∞でもOKかもしれない。
すみません。MikroCのデフォルトであるTFT制御関数を使っているのですが、画面塗り潰しの命令が凄く遅いです。 例えば赤一色に塗り潰すまで4秒くらいかかるのですが、これが普通ですか? マイコンはPIC18F46K22で16Mhzで動作しています。 クロック数を変えても塗りつぶし速度は変わりませんでした。
>>723 クロック数変えての件がよくわからないけど、周波数あげたという事?
それとも制御関数の中を修正して実行命令数を変えたという事?
別種の要因として画面その物が通信上のビジー状態を発生しているが為にマイコン側が
待ちに入っている可能性も。
まさか、1ドット単位で制御しているなんてオチは無いよね。もっとこう、バイトデータでバンバンって
書き込めば単純に実行時間が1/8になりそうな気もするけど。
本当にそのクロックで動いているのか音を出すなりLチカするなりして確かめるんだ
726 :
723 :2012/05/30(水) 21:22:45.00 ID:nLSQQZEc
>>724 クロック数は単純に周波数を上げたということです。
TFT_16bit_Fill_Screen(CL_BLACK_16bit);
↑
塗り潰し命令は上の関数でやりました。
>別種の要因として画面その物が通信上のビジー状態を発生しているが為にマイコン側が
待ちに入っている可能性も。
↑
これはどうすれば解決できますか?
制御関数を弄れるほどのレベルでは到底ありませんのでご教授頂ければ幸いです。
727 :
723 :2012/05/30(水) 21:25:12.55 ID:nLSQQZEc
>>725 他で作ったプログラムのコンフィグ部と基板を流用したのでクロック数は間違いないと思います。
>>725 音を出すってのは初めて見たw いや、昔の雑誌で見たことあった。
赤外線通信の出力を改造したラジオ(受光器を接続、結局スピーカーを流用)で受け取って
音を鳴らすという記事。その記事ではラジオからのノイズ?音で今何を出力しているのかを
聞き分けられるそうな。
その延長戦で行くとFAXを設計している人とかはピーギャラギャラの音で今どんな状態かを
聞き分けられるんだろうな。たぶん。
>>726 連投すまん。
同じ環境を持っていないので具体的な方法は提供できないんだな。推測だけになること、察して欲しい。
もう1うの要因として割り込みがガンガンに入ってるとか。
試すならば塗りつぶしの前で割り込み禁止、塗りつぶしのあとで許可。。
割り込み処理と連携して塗りつぶす場合は使えないけど。。
730 :
723 :2012/05/30(水) 21:40:05.20 ID:nLSQQZEc
>>729 レスありがとうございます。
割り込みは使っておらず、単に塗り潰し命令だけのmain関数です。
とりあえず、もうちょっとがんばってみます。
ありがとうございました。
>>728 サウンド出力なんぞ無かった8ビットマイコンで
AMラジオで音楽再生してたの思い出した。
ポケコンをラジオに近づけると処理内容が分かったな
C言語を使ってPICをアレコレしたいんですけど勉強するのにどこかいいとこ無いですかね
>>734 鮮度が悪いぞ。
いまはMPLAB X等で無料でCで開発できる。
ダウンロードにユーザー登録すら必要ない。
無料(Lite)版が生成するコードに不満を持ってからでも、
有償版や他のコンパイラを検討しても、遅くはないだろう。
とりあえずMPLAB X等一式をインストールして、
インストールされたフォルダ下をエクスプローラで見て、
サンプルとか読んでみよう。
俺は昨日はじめてPICでC言語を使ってみたが、
えらく簡単で拍子抜けしたぞ。
蒸し返すけど
>>605 はテキトーぶっこいたのか正統性があるのか説明欲しい。
現象がわからなかったのか、データシートが読めなかったのか、どっちだ。
あ、俺。今読み返してみると的確じゃないね。すまない。 先週の時点では資料のここではこう書いてあるけどなぜ?という問いに思えなかった。 このデバイスで図と対比させるとTXIFの反応が鈍い。ってな感じで聞かれれば、頑張ったかも。 読まずに質問してるのかと。まずは読んでの感想を聞きたかった。という流れ。 ってか、1週間か。
日本を破壊する地_方_分_権 テレビで韓国ドラマばかり放送されても、見なければ大きな問題はありません。 しかし地方分権で警察組織、権力の一部を国から地方に移管し 採用条件・組織等も地方で自由に決めれるようになったらどうなるでしょう。 今のテレビ局が数10年前に在日枠を受け入れて、今や完全に在日朝鮮人に乗っ取られ 在日の都合の悪い報道は一切しなくなり、民主党が与党になったように 地方分権された警察組織が数年後に、反日感情を持った外国人に支配されないでしょうか。 在日の犯罪は野放しで、日本人の犯罪は過大な刑を与えられたりしないでしょうか。 地方分権は日本全国の地方自治体を、反日国家のコントロール化に置くための工作活動に等しいのです。 維新に近い、みんなの党は道州裁判所を設ける案もだしてます。 橋下氏(維新)の大阪都構想しかり 中京圏の大村氏、河村氏も地域政党を作って国政で候補者をだすみたいです。 まだ時間はあります、検討しておくべきです。
>>741 PICで大統領AI組めばいいんですねわかります。
>>742 大統領ごときでPICはハイスペ杉だろ。サイコロでおk
PICでサイコロ実現するには乱数生成器外付けかなあ。
>>740 そっちか、なるほど合点がいった。変に絡んでごめん。
ぼちぼち趣味の範囲で楽しくpicで遊ぶ程度の力しかないのに、偶然にもpicの仕事が降ってきた。
引き受けたけど泥船の予感。
>>745 直売で最近製造のを仕入れような。秋で買うといらぬ悩みが増えるらしい。
>>744 1-6数えてって押した瞬間の数字でよくね?
上辺で納得できればok
大統領もそんなもんだろ
つか、それが最も上質の乱数なのに
旧ミッドレンジ。 ADを全力で回す。 1ch(10bit)辺り 28.5[us]=35.1[kHz]が最速。 UARTを25,000bpsとして28[us]の間に7bitちょい。 出力が間に合わない。 20MHzだと少しバランス悪い。 16MHzなら50,000bps出せるのだが。 USB接続のA/Dコンバータを買ってきた方がよかった。 USBサウンドブラスターって入力に直列コンデンサ入ってるかな? 入ってるとして、簡単にバイパスできるかな? なんて迷いも出てきたり。
こないだXC8がでて、ふるい8pinPICも捨てたもんじゃないと思ったよおれは
>>748 ヒトのクロックソースは80Hz±30%だもんな。w
>>750 それが正解かな。
秋月の18f2553キットを手元に用意してみた。
16f877aが既に動いてるから、速度が必要だと実感するまではこっち使うー。
25kbpsの上を試してみゆ。31.2k, 41.6k, 62.5k が行けたら幸せ。
あれ。表記が一桁違ってた。ストーリーは合ってる。 ×UARTを25,000bpsとして28[us]の間に7bitちょい。 ○UARTを250,000bpsとして28[us]の間に7bitちょい。 ×16MHzなら50,000bps出せるのだが。 ○16MHzなら500,000bps出せるのだが。 ×25kbpsの上を試してみゆ。31.2k, 41.6k, 62.5k が行けたら幸せ。 ○250kbpsの上を試してみゆ。312k, 416k, 625k, 1250k が行けたら幸せ。 この周波数でブレッドボードとジャンパーだと不安だな。
>>752 ニューロン千数百億個の並列処理だけどな
ニューロン一個一個は1ビットの超RISCだけどな しかもクロックが・・・
>>757 多値の演算が出来るアナログデバイスで伝達速度をクロックに例えるなら低速たが並列動作と超パイプライン処理が備わっている。
ヒトは非同期処理だと思うけど
数万単位の入力を加重平均した値を-1,0,1に正規化して出力するアナログコンピュータかと思われていたが 実際は自発的な信号の出力にレジスタ機能までついてるニューロンマジパネェ。
761 :
魚チョコ :2012/06/02(土) 14:23:14.61 ID:91MkTEhZ
でもぼくのにゅーろん誤動作率 99.9% ミ。ω、°?ミ ヘケー
>>755 そんなに速度が必要ならdsPICいっとこうぜ。
信号処理をけっこうがんばる組み込み開発したくてdsPICにたどり着いたんですが, 資料が少なくて困ってます. A/Dから取得されたサンプルを512点ぐらいバッファリングしてFFTに投げるとかする場合, アセンブラだとどう書けばいいでしょうか
>>764 dspic FFT
でググってみたか?
766 :
764 :2012/06/02(土) 21:09:05.55 ID:KwUp55ah
「資料」じゃなくて、「パクリ元」だろ?
PIC16F1823のADCエラッタなんだが、詳しい発生条件を知りたいな。 とりあえずテストしてみた範囲内では、ちゃんとAD変換終わるんだよね。 必ず終わらないなら、もっと大騒ぎになってると思うんだよね。 ADCとFVRどちらの精度がネックなのかわからないが、 I/Oピンに数mAシンクさせただけで値が低くなってビックリ。 6400回AD変換して、 平均値で2、 最小値で4、 最大値で1、 くらい低くなったよ。
769 :
774ワット発電中さん :2012/06/03(日) 12:14:10.71 ID:I8Nv6xJa
CLCってどんな時使うのん?
>>768 の補足。
AN入力とは別のピンにLEDを繋いで、点灯と消灯で比較。
I/Oピンにシンク ・・・ 誤差大。+1、-4。平均とっても-2。
I/Oピンからソース ・・・ 誤差小。+1、-2。平均とればピッタリ安定。
I/Oピンはオープン ・・・ 誤差小。±1。平均とればピッタリ安定。
シンクさせるとGNDが浮き上がるんだろうな。
ブレッドボードにも原因があるかもしれないし。
個体差もあるのかなーってことで、別の個体で試してみたらADCエラッタ発生したよ。 それも必ず発生するわけではなく、 いちどAD変換中にSLEEPさせると、その後しばらくの間は、発生しないんだ。 どこかの寄生容量が充電あるいは放電されることで動作が変るのかなー。
設計上じゃなく、製造上のバグなのか……
PIC16F1823のリビジョンA6には、 LVPではバルク・イレース不可 というエラッタもあるし、 デジアナ混載LSIならではの 設計ミス・製造問題があるのかなー。 ちなみに PIC16F1827のリビジョンA3以前にも、 同じADCのエラッタがあるんだよね。 しかも データEEPROMの書き換え寿命が1万回 プログラム・フラッシュの書換寿命が1千回 @ 電源3.0V以上の場合 なんていうエラッタもあるという。 秋月で買ったPIC16F1827はA4だったから、 これらのエラッタは大丈夫だけどね。
デバイスの設計能力はそれほど高くないってことなんでしょ。
ルネサスは、CPU製造ラインのテスター不具合とかでそのロットは一年ぐらいたで故障する可能性が高い後付けエラッタがあった。 費用はルネサス負担の全品製品交換対応だった。
致命的なエラッタが多すぎるというのがPICの最大の特徴だとか
笑えないゾ。 PIC16F1823でもリビジョンA8ではADCエラッタは修正されているそうだから、 古いリビジョンA6の在庫を売ってる秋月ではなく、 どこか新鮮なモノを売ってるところで買えば、問題ないのでしょう。 リビジョン明記して売ってるところが、あればね・・・。
AD入力用に8ピンPICに任せるとかどうかな・・・
そこまでしなくても、1823ではなく1827を使えばいいと思う。 4ピン増加で値段20円アップで、ADCエラッタ修正済リビジョンが買える。 ただし、1823と1827はピン互換がないので注意。 MP9806、半導体みたいなIDだな。
バスのイメージもあってか、三菱っぽいな
781 :
774ワット発電中さん :2012/06/04(月) 12:56:57.55 ID:cwJPUQJT
通販でリビジョン指定出来る所を知らない。 箱単位で取引してる相手だと融通が効くんだけどね。
というか、そこまでPICにこだわることもないしな。
宇宙開発には使えないシロモノだな
昔のpicより今のpicのほうがエラってるのかな?
いろいろ詰め込みすぎたかな?
たぶん消費電力を切り詰めるための細工が、エラッタ増加を招いているのだと思うよ。
787 :
774ワット発電中さん :2012/06/05(火) 02:36:45.56 ID:dBKC5eD7
昔のPICでも沢山あったよ。 割り込み禁止命令で割り込みが掛かると禁止に成らない。 Wreg=00Hで引き算するとボローフラグが立つ。 HIGHとLOWの割り込みが同時に掛かるとその場所の命令を無視してスタックは1段追加したままメインルーチンに戻る。 などなど数えると無数…。
ボロボロだなぁ AVRはどうなん?
マクドナルドのスマイル0円ならぬ、 似非モスバーガーのエラッター0円。 笑えん。(w
漠然とした質問で悪いと思いますが、 PIC18F2331,2431で RA2をデジタルIOとして使う方法、ご存知の方いらっしゃいませんか? こちらで試したのは、 adcon1.VCFG0 = 0; adcon1.VCFG1 = 0; ansel0 = 0x00; dfltcon.FLT1EN=0; cap1con=0; cap2con=0; cap3con=0; trisa = 0x00; trisb = 0x00; trisc = 0x00; です。
791 :
790 :2012/06/05(火) 19:23:14.66 ID:sxun97D7
自己解決しました。 きちんと出力モードになってました。 勘違いでした。 すみません。
あれだけ単純なアーキテクチャでそれだけ致命的なミスが出るのは 設計能力に問題があると言わざるをえないだろうな。
793 :
790 :2012/06/05(火) 20:09:13.96 ID:sxun97D7
ついでに原因も分かりました。 まず、初期開発では、PIC16F873を使っていました。 内蔵ペリファラルは、I2Cを使う設定。 そして、16ピンのRC5/SDOをIOとして使っていました。 ところが、デバイス変更後の、18F2431では、 同じ16ピンが、RC5/SCLと なんと、I2Cの制御信号に使われることになっていたようで これが原因で出力が出ませんでした。
トラ技でさらっと流し読みしただけだけど、PIC32って性能はすごいけど、もうPICじゃないらしいな。
ピックリするほどの性能らしいね
こんな感じかな。PIC32の4つの違いはUSB有無とメモリサイズ 28ピン *◎PIC32MX220F032B \220 FLASH32+3KB RAM8KB ●USB *○PIC32MX210F016B \200 FLASH16+3KB RAM4KB ●USB *○PIC32MX120F032B \200 FLASH32+3KB RAM8KB *△PIC32MX110F016B \190 FLASH16+3KB RAM4KB 共通 VDD Max3.6V,Max40MHz,UARTx2,I2Cx2,(SPI/I2S)x2,RTCC,10bitADC,DMA ついでに18Fの追加分 40ピン *○18F45K20 \180 16Kw/1536/256 Max64MHz(31k-64MHz),4xPLL,CCP1/1,▲3.6V 28ピン *◎18F27J53 \300 64Kw/3776/0 ●USB,Max48MHz(31k-48MHz),PLL,eUSART2,TMR4/4,MSSP2,CCP7/3,12bitADC,リマップ,▲3.6V 20ピン *△18F13K22 \150 4Kw/256/256 ↑14K22のメモリ縮小版
dsPICやらPIC32って、なんでEEPROM無いんですか? 16Fと18Fしか触ったことがない自分には、ちょっとしたデータを記憶できないと 何かと不便な気もするのですが・・・
>>798 プログラムメモリを自己書き換えする方法で保存できたりしない?
憶測ですが・・・
800 :
774ワット発電中さん :2012/06/05(火) 23:15:52.53 ID:QaG4YZEM
アホな質問と言わず聞いて下さい アセンブラか、Cで書くのが普通の様ですが、 Visual Basicで書くようなシステムは出てますでしょうか。
>>800 すでに複数あります。
"Basic コンパイラ PIC" でググッてください。
>>798 ルネサスが得意だった「オールフラッシュ」でしょうか
>>794 キタ━━━━━━(゚∀゚)━━━━━━ッ!!!
でも、なぜにPIC32MX1とMX2のメモリ最大の品種が無いんだ。
ふつー、とりあえずメモリ容量最大のもので開発して、必要量がfixしたら安い小容量品に置き換えるんじゃないの?
まぁ、200円だからとりあえず試してみよう。
>>798 どうせ256バイトあっても足りないから外部にシリアルEEPRIM繋ぐだろうということなのかもよ。
ついでに見たら・・・ PIC16F1823と1827が在庫切れになってるな。 リビジョン新しくなるのかしら。 そうだとしたら、通販センターだけでなく店頭の在庫も切れて、入れ替わって欲しいな。
PIC32はMax80MHzと思ってけど PIC32MX1xx/2xxシリーズはMax40MHzなんだな PIC32MX3xx以降はMax80MHzだけどDIP品は無し 32bitMCUでこれくらい出るとMP3のデコードを単体でできるようになるかな?
>>803 > でも、なぜにPIC32MX1とMX2のメモリ最大の品種が無いんだ。
歩留まりが悪くて卸値が3倍ぐらいする、とかじゃね?
>>804 昨日、店頭では1827は在庫切れでした。
1823は多数あり。
バケラッタバケラッタ
810 :
774ワット発電中さん :2012/06/07(木) 20:32:49.64 ID:tkWUcwUX
秋月でPIC32MXのページを見ると1.65DMIPS/MHzになってるんだが マイクロチップのページで見ると1.56DMIPS/MHzと書いてる不思議 まあ、どのマイコンのデータと混同しているかは大体想像がつくな
811 :
774ワット発電中さん :2012/06/07(木) 22:02:11.25 ID:nXC4T/9n
あーPICりした∠(^。^)ノ
PIC16F873で内蔵Flashに書けないと思っていたら config wordで書き込み禁止になっていた。 フラッシュのライトイネーブルの意味が今日はじめて分かった。
言葉のまんま、の様だけど。 余裕がない時こそ落ちつけ。これが一番難しい。
ん、せっかく作ったプロトタイプボードめちゃちゃにしてしまった。 幸い、P板のアートワークが完成したので、来週あたりエッチングして 新しい気持ちで取り組んでみる。
816 :
774ワット発電中さん :2012/06/08(金) 03:46:34.36 ID:+Qsscskk
RCDライタで18F4550に書き込みをしようとして、上手くいかず。 (書き込みができていない) PICkit2を買わずに済ませたいんだが、良い方法はないかな?
817 :
774ワット発電中さん :2012/06/08(金) 03:50:52.19 ID:+Qsscskk
デスクトップのD-sub経由です。
>>816 PICkit3の方を買えば良いかと。値段それほど変わらず。秋月なら3900円(PICkit3単品)。
お小遣い云々の問題はあるかもしれないけど、やり方悩むより確実路線の方が近道で結局低コスト。
メーカーのだと、新チップのプロファイルもアップデートで出るし。 Pickit2だけど、4550、F1xxxや14K50、書ける。
821 :
816 :2012/06/08(金) 23:03:22.11 ID:+Qsscskk
どうにかできるかともう少し調べつつ、最終的にPICKitに妥協するかな。
pickit一択なのは決まってるけど2か3かで迷う
3で
2が3より優れている点って400円安いところだけ?
>>824 MPLABから使う場合…
・うざいFW更新がない(3だとポップアップがでてきて邪魔&たまに失敗する)
・電圧切り替えが簡単(3だと 〃 &勝手に設定が戻ることがある)
・本体のLEDの色が見やすい
自分の使い方の問題かもしれないけど、まあ参考まで
826 :
774ワット発電中さん :2012/06/09(土) 00:39:07.86 ID:gYp7eB60
今後のデバイス対応を考慮するならば、PICkit3で
827 :
774ワット発電中さん :2012/06/09(土) 00:53:57.51 ID:DHczGNDI
>>825 書き込むの、PK3CMD.exe とか言うコマンドラインツール使うと
右クリックの送る、とかで書き込めるから便利だよ
HEXをダブルクリックしたら、このバッチが起動するように設定するともっと便利 <== 俺今ここ
もしかしたら、.asmをコンバイル成功したら
すぐ pk3cmd.exeで書き込まれるようにすれば、もっと便利かも?
もしかしたら、もしかしたら、
秀丸のマクロで、保存、コンパイル、転送が一気に出来るマクロが作れるかも?
>>828 俺も最近知ったんだけど、TeraPadなるテキストエディタを統合環境代わりに使っている人がいるそうな。
最初話を聞いたときはちんぷんかんぷん。知らない自分もアレだけどノートパソコンの一種?と思った。
そういう人にはTeraPadが統合環境以外の何者でもない。って感じなんだろな。
ツールによってはこんな事もできるんだと勉強にはなったけど、MPLABの方がしっくりくる。
mplabで外部エディタ登録すればいいだけなのになんで熱く語りだしちゃったの?
>>830 勘違いしてるだろ。mplab使わないんだってば。
そういう文化が根付いたところもあるんだなと。
こんなところにも禿丸のステマが…
なんでもステマ妄想乙
834 :
774ワット発電中さん :2012/06/09(土) 09:54:50.68 ID:FklwlZ+6
いまどき秀丸ってwwww
>>805 これ初代プレステのCPUより速いんだよな。
>>807 レポありがとう。
ADCエラッタ回避で1823の代わりに1827使おうとすると在庫切れなのね。
>>816 データシートちゃんと読んだ?
そのRCDライタとやらは仕様に合ってるのか?
デバイスによって電圧が違うんだが、
RCDライタとか任意の電圧を生成する回路になってんのか?
838 :
774ワット発電中さん :2012/06/09(土) 10:52:38.11 ID:JICJqmwN
秀丸でなければエディタは何を使っているんですか?
現存のPICを、DIPからQFNまである程度網羅した サンプルボックスを出してくれないかな。
840 :
774ワット発電中さん :2012/06/09(土) 11:31:19.53 ID:FklwlZ+6
>>838 IDEがあればそれ、なければxyzzyかな
841 :
774ワット発電中さん :2012/06/09(土) 13:37:01.59 ID:JICJqmwN
1年ちょっと前ですか、ドコモのギャラクシータブ(SC-01C)を買ったのは。 後閑先生の「PICで楽しむAndroidアクセサリの自作」を買ってワクワクしてたんですが、 読み進めるとあることに気が付きました。 自分のタブ(2.3.3)はアクセサリモード(2.3.4)に対応していない・・・どうしよう
もう一個買うのです
秀丸否定する奴は秀丸の機能の10%位しか解ってないからな。
秀丸マクロとかガラパゴスなものに手間かけて資産()ある人は固執するよね。
ガラパゴスかどうかは知らんが、つかいなれた環境とツール群はなかなか。 emacsでもeclipseでも同じで、それを使いたいってニーズはあるだろ。
eclipseとかで右クリックしたときに無駄に色んな選択肢出てくるのがウザイ カットやペーストといったコード改変する操作が検索より上に出てくるエディタは「わかってないなーと」思う。 あと半角空白とTab非表示のエディタもわかってないなーと思う。 いや、設定し直したりショートカットキー使えばいいんだけどさ
>>847 eclipseの使い方、わかってないんじゃないのー?
道具が変っても、以前の道具と同じように使おうとするのは、頭が固くなってきたんじゃねーの?
人間の方が道具に合わせるなんて古生代の思想だよ。
PICのスレなのに、なぜにEclipse、Eclipseを使う人が多いのか? ルネサス系のCPU、特にR8Cを使っていたが、今PICに移行中。5Vで動くから dsPic30を中心に、USBは、PIC18を使おうと思っていたが、PIC32のDIPが 秋月で手に入るようになったので、PIC32中心にやっていこうと思っている。 USB HOST機能も使えそうだし、PIC16以下は使う気が全く起きないのでね。 MPLAB IDE XをMac OS Xで開始したばかり、PICにしたのは、Macで使えるのも 理由。まだシミュレーションをテンプレートのファイルで動かしただけなので、 これからだが。 でも、CALL GRAPHも見られるし、リファクタリングの機能もあるようだし、結構 使い勝手がよさそう。今のところやる気になっている。Cコンパイラもサイズ制限が ないみたいだし。
ごめんなさいsakura使ってます、普段はソフト屋なので・・・。 Eclipseは使ってるけど糞重いのと、タブ文字をまたいだ移動がキモくて好きになれない。
IDEについてくるエディタなんて殆ど使わないけどな。
VisualStudioのエディタは秀逸。VS2010は一気に使いにくくなったけど。 理由はEclipseと同じ、タブ文字をまたいだ時の挙動が糞。
sakura使いハケーン 本当はQXがいいんだけど、unicodeが
856 :
855 :2012/06/09(土) 19:27:52.71 ID:C5mytHFN
失礼,石はdsPIC30FJ32GPです. (一応33Fシリーズも一応試しましたが同じエラーです)
型番はっきりしろよ dsPIC30FJ32GPなんてないぞ
858 :
855 :2012/06/09(土) 19:41:41.56 ID:C5mytHFN
>>857 試した石は30シリーズでdsPIC30F2012です.
33シリーズでdsPIC33FJ32GP, dsPIC33FJ802GPです.
補足ですが,Vdd-MCLR間に10kΩの抵抗,Vss-Vdd間に100pFのキャパシタを挿入しています.
dsPIC33FJ802もデータシート検索ででてこないからないだろ dsPIC33FJ32GPならVCAPにパスコンが必要 dsPIC20F2012はどうVDD,VSSが2ピン以上あるから全部繋いでる?
860 :
855 :2012/06/09(土) 20:02:49.17 ID:C5mytHFN
なら、後はPickitからVCCとVPPがちゃんと出てるか確認することぐらいしか思いつかない
862 :
855 :2012/06/09(土) 20:15:40.84 ID:C5mytHFN
>>861 そうですか…….
MPLAB Xを使い書き込んでいるんですが,
PICKit2にSN(Serial number): Noneと書かれているんですが関係あるでしょうか.
普通のPICは書き込めていたので別に気にも留めなかったのですが
>>855 落ち着け。
まずターゲットと違う型番のデータシートを参考にするのはヤメレ。
ちゃんと該当する型番のデータシートを見ろ。
sakura使うよ。 統合環境のエディタなんて差し替えれば良いだろ?
>>864 差し替えってどういう意味合いで使っているのか知らないが、MPLAB X は、
NetBeansだから、エディタ機能のみの差し替えは無理そうだが。
IDEのエディタはだめ、このエディタが良いと言っている奴は良くいるが、どこが
良いって話が、具体的じゃないな。言っちゃ悪いけど、TABの時の動きが気に
いらないとか言っている人がいたが、それが理由なら笑ってしまう。
sakuraエディタって、そんなにいいの? Vi互換のエディタを使っている自分から
すれば、その他のエディタは、カーソルキーで移動させるだけだから、どれ使って
も変わらないだろうって感じ。
Viは欠点も多いが、カーソル移動の豊富さになれちゃうと、他のエディタには
戻れない。本当に使いこなすことができれば、プログラムの入力でViに勝る
エディタはない。と、多分vi使いはみんな思っている。
万人向きではないけどね。多分、Vi使いは、他のエディタが良いって言っている
人間を腹の底では笑っている。
>>865 何が笑えるの?
資料なり白板なり同僚の顔なり見ながら打ち込んだりしてエディタから目を離している時、
カーソルを上下移動すると、頭の中のエディタはこう動いてるはずというイメージがあって
現にsakuraや従来のVSではイメージ通りに動いてるのに
Eclipseは直前のカーソルの位置で左右にぶれる。
もっとも、Eclipse見ながらでもこの挙動は十分違和感があってリズム狂うんだけど。
これ結構打ちミスが起きて作業ペース落ちるから致命的なんだよ。
ついでに言うと、職場のキーボードも自分に合った、自前で用意したの使ってる。
あんたに言わせれば、「キーボード選んでる時点で」とかいう話になるんだろうけど。
>>862 > PICKit2にSN(Serial number): Noneと書かれているんですが関係あるでしょうか.
PICKit2のファームを更新してみたら?
>>866 あまいな、Vi使いはキーボードにうるさいんだな。
別にTABの挙動とかは、そうなのってくらいかな。Eclipseは広く使われている。
EclipseのTABの挙動が気に入らないなんて話は初めて聞いた。大多数が駄目と
言っているのなら、さすがに治すんじゃないの。昨日今日のアプリじゃないし。
Editor としての使いやすさというより、PICのプログラムするときに優位な
点があるなら、知りたいと思っているんだな。余計なことを前に書いたが、
Vi使いからみれば、他のエディタに、大して違いは感じられない。
あえて、押すのなら、便利な点があるんでしょう。だったら教えてってこと。
IDEのエディタを使えば、いろんな支援機能が使えるが、Vim じゃ使えない。
であれば、どのエディタを使っても同じなので、じゃーIDEのエディタを使おう
ってことになる。
おれは、IDEのエディタなんか使ってないぞ、偉いだろう。なんて感じに聞こえるが
何が偉いんでしょうかって話。
どうあっても人と話の合わない曲解バカだったか。 みんな単に使い易いエディタを適宜使ってるだけの話だろ。疲れる。 そんなことより俺はPIC16F1454の発売が待ち遠しい。
相手にしないのが吉
エディタ論争は自分の思いを綴るだけでいいから盛り上がるよね。
>>870 なんだつまらない。一生懸命押しているみたいだから、便利な機能があるのかと思ったら
それだけですか。思ったとおりではありますが。
このエディタが良いんだ。ってきけば、どこがいいのって尋ねるのが、どうして曲解バカなのか
理解不能ですね。あなたから、引き出すものが何もないことは分かりましたが。
一生懸命押してた? 俺が?? 何を???
エディタ関係は宗教戦争 異教は絶対に分かり合えないし、無宗教とも話が合わない
876 :
774ワット発電中さん :2012/06/09(土) 22:54:55.83 ID:FklwlZ+6
ここはEmacs最強と言うことで話を収めようではないか
>>874 押していたのは、あなたじゃなかったか、じゃ忘れてください。
みんなエディタの長所、短所を言えるくらいのロジックはないんですかね。
出てきたのは、宗教戦争。それに、TABの動きが気に入らない。それだけですか。
ただ読んでいるだけの人も、いると思うけど、有効な情報はなにもなくて
申し訳ないですね。こんなに、中身のないことだけとは思わなかったんで。
>>877 すみません、今からpicを勉強しようと思ってるんですが、エディタは何がお勧めですか?
vim
PICとエディタは無関係 分からないなら開発環境についてるやつを使う
>>841 ADB機能を使ったmicrobridgeならAndroid1.6以上で使えるよ
今日もまたポートH->L直結してPICを焼く仕事が始まるお
883 :
816 :2012/06/10(日) 01:12:35.04 ID:wCNv3rub
18F4550の書き込みで質問したんだけど、解決したので報告
>>859 ヒントをありがと
違う型番の話だったけど。
Vdd,Vss2ピンづつ両方繋いで書き込んだら手持ちのRCDライタで焼けた
884 :
774ワット発電中さん :2012/06/10(日) 05:15:55.23 ID:Drdrg0UC
PIC32とSTM32って、どっちがつおいの?
PIC32MX1/2だが、データシートみたら電源のパスコンへの要求が厳しいな。 DIPなら直にブレッドボードで気軽に〜なんて思ってたけど、ちょっと無理っぽいな。
>>885 10 uFのセラミックで、ブレッドボードで動いてるよ。
>>880 16Fで簡単な工作しかしないから、MPLABかメモ帖ですわ
>>887 え、そうなの。試してみる。
データシートは何でああも厳しい要求だったんだろ。
基板の同一面にしろとか、ビア経由で裏面にするのはダメとか、6mm以上離すなとか・・・
>>889 メーカがデータシートに書いたような電気的性能を保証できるか
どうかってこと。
守らなかった場合には、一見動いたように見えても、いろいろやっている
うちにおかしな事が起きたとしても文句は言えない。
だよね。 やっぱり足の長いソケットに電源配線用の小基板を付けてからブレッドボードに挿したほうが良さそうね。
PICKit3 + MPLAB IDE v8.84 + MPLAB C18 v3.41 + PIC18F26k22 でデバッグしてます Haltで止めた状況での、関数呼び出しの入れ子を表示するにはどうすればよいでしょうか (バックトレースを見たい)
これに限らず最近のチップは、内部にレギュレーター持ってて外部にキャパシタ要求するのあるよね。 ライターボードの対応がめんどっちいなぁ。
895 :
774ワット発電中さん :2012/06/10(日) 15:56:29.99 ID:cGLyLVyV
>>881 さん、情報ありがとうございます。
でも、自分はそれほど難しいことは出来ないので、
新しいアンドロイドが手に入るまで保留にしておきます。
外部のキャパシタはチップコンデンサ(2012とか)使うと楽よ。
ちっこいので十分なんだけど、シリコン上に作るには巨大なんだよな
ICのフレームに内蔵できないのかねぇ
昔の感覚でPIC使ったら正常に動かなくてパスコン入れたら動いたのはそういうことか もっとちゃんとマニュアル読めってな
パスコンになるような大容量のコンデンサを作り込むのは困難なのよ
DIPなら、ハイブリッドIC化することは可能といえば可能だろうけど、製造は面倒くさそう あと、条件によっては違う特性のパスコンを使いたい場合もあったりする…のかな?
パスコンのためにハイブリッドなんて無駄なことやってられんだろ
>>898 むかし、MAX232系でパッケージ内にコンデンサ内蔵してたのが、あったような記憶が。
VddとVssが隣接していれば、リードに直にチップコンデンサを付けるという手も。
本来はリードの根元付近にハンダ付けするのはダメなんだけど、
ブレッドボードで試すだけで本番に使わないなら構わないでしょう。
いっそDIP品は背中にパスコン用のパッドを出してくれればいいのに。
ブレッドボードの使用は試すのが目的なんだから、普通にキャパシタを挿して テストできてるのなら、それでいいんじゃないの?
そもそも
>>889 は単なる誤訳なんじゃ
同一面の方がいいが、ビアを使って別の面に配置してもいい、が正解じゃね
>>904 > MAX232系でパッケージ内にコンデンサ内蔵してたのが
あったな。
> いっそDIP品は背中にパスコン用のパッドを出してくれればいいのに。
対角ピン間にパスコンが付いている丸ピンソケットならあったな。
ADCを読んでUARTに投げるコードが16f877aと16f88で完成した。 サンプリングレート30kHz。4166667bpsか625000bpsで出力。 877aを使うために書いてたのに、結局88に移植してしまった。 84aと877aは使い道がなくて困る。
416kbps
通信速度が半端だけど、受けるのもPIC?
PICで受けるならUARTなんかじゃなく、I2CとかSPI使ったほうが。 で、SPIを使うならPIC16Fではなく、MCP3002やMCP3204/3208のほうが。 ていうかA/Dだけやるのはアホらしいんで、dsPICとか使ったほうがいいんでは?
I2Cなんて2線式で一見便利そうにみえるけど、実は電気的にいやらしい存在。 I2Cを内蔵した製品に携わった人間なら必ずその意味が分かる。 単純にバスを繋いでプルアップして動くというのは、教科書や実験、趣味レベル。 単純にプルアップだけの設計では超低確率ながらもI2Cのタイミングが 満足できず、I2Cバスのストールが起きる可能性がある。しかも、大抵だんまりだから デバイスリセットでもかけないとならない。デバイスリセットすらできないICもあるから厄介。 ロガーを使って解析したり、アナライザや基板解析を駆使しテブナン線や伝送路のパラメータで最終的に決める。 詳しく書くと長くなるし、ノウハウ的なものなのでこれ以上は避けるが、製品に使うときは 十分な検証が必要ということだけ覚えておいてほしい。特に電源が入りっぱなしの 装置はI2Cに神経を使う。 個人的にはローカル通信ならSPI辺りが流行ってくれればよかったのになと思ったが、 絶対的に多く使われるのはI2C。経済的に有利だしね。
巷にI2Cを使った製品が溢れているのはナゼだろうね
>超低確率ながらも そんなもんも考慮せないかんの? ここまで世の中にi2cがあって、規格も改定されていってるのに、その件だけ対策されてないの? なんでなんだぜ?
>>915 ICメーカーがいくら頑張って良いICを作っても、使用者が注意しないから、
困っているんだ。回路設計屋は何も考えずに回路例の通りにしか使わないし、
基板設計屋は、高周波には興味ないみたいだし。
1度填まってみればわかると思う。
昔は俺も、ちょくちょくI2Cを使ったけど、最近はSPIに変えた。
HとLの非対称インピーダンスは、結構つらいんだ。
>>913 は、そのことを言っているんだと思うよ。
>ここまで世の中にi2cがあって、
近距離ならね。iPodの中ならいいと思うけど、iPadになるとヤバイかもね。
そんなこと考えて使ってないでしょ?→
>>915
>>909 >>912 の話には興味はない。
>>918 の見つけた資料は、いいこと言ってる。でも、対策が今一歩だと思う。
10kなどを使っているときにその値を小さくするのは、間違ってはいないけど、
的確な指示ではなない。集中定数的にやるのではなくて、分布定数的(?)に
I2Cのバスライン全体に「むらなく」行う。
920 :
774ワット発電中さん :2012/06/12(火) 18:43:53.46 ID:KV+G/jGp
MPLAB X IDE のシミュレーターってPORT変化割り込みやタイマー割り込み使えますか? ちっとも割り込みわいってこないんです、、、
使えますん
922 :
774ワット発電中さん :2012/06/12(火) 18:59:59.29 ID:KV+G/jGp
どっちなんだよ!
MPLAB Xの方は使っていないので外している可能性あり。まずはチェックポイント。 タイマ幾つかによるけど、割り込み許可してる? タイマによっては複数の割り込み許可が必要な場合あるよ。GIEだけでなく、PEIEとか。 あと、割り込み関数定義ができているか否か。かな、 CPUも開発言語もプログラムもわからないから、ここまで。
924 :
774ワット発電中さん :2012/06/12(火) 19:27:28.44 ID:LYjKHsoh
>>909 16F877Aって 40PINみたいだけど、
丸ピンの ICソケットに入れるの、足がそろわなくて大変だよね
925 :
774ワット発電中さん :2012/06/12(火) 21:07:53.32 ID:iYmyVaO+
VDOという後付の自動車用の計器があります。 かなりメジャーなメーカーらしく いろいろなセンサーから送り出させる抵抗値がVDO Range(10-180ohm)となってるようです。 これをPICのADCで受けるには抵抗値が低すぎると思うのですが何かいいアイデアはありますか?
>>925 どうして抵抗値が低すぎると思うのか理由を教えて?
心配ならボルテージホロワ通せばいい。
>>926 >心配ならボルテージホロワ通せばいい。
えっ!? ボルテージホロワで解決する問題か?
>>925 どうして抵抗値が低すぎると思うのか理由を教えて?
定電流駆動すればOKだよ。
2V/180Ω=11mAくらいの定電流ね。
LM317Lと115Ωで出来上がりだと思うけど。
PICのADの入力にくらべて、センサーから要求される入力抵抗値が低すぎるってこと? 適当に100Ωぐらいでプルダウンしておけばいいと思う
まぁ、I2Cも速度を上げていくと'H'方向もドライブするけどな。
車用なら5V11mAなんてだだ漏らしで使えよな。うらやましい。
アクセサリかイグニションから取る場合に限るけど。
>>911 20MHz/16系で速度上げてくとそういうボーレートになっちゃう。
受けるのはPCというかftdi。比較的最近の奴ね。linuxで非標準のボーレートは少し手間取った。
試してないけどprolificも同じように使えると思う。
>>924 机とかの堅くて平らな面を使ってギュッギュッって曲げてあげればOK。
かえって600milの方が18pin300milよりも力入れ易い。
> だだ漏らしで使えよな。 使えるよな。 タイプミス多いな。目と頭が悪くて済まん。
「ピンそろった」便利
ピンそろった って結構息の長い商品だよね
机で十分だけどな
セラロックの真ん中の足ってVDDに落としていい? GND遠い。
937 :
のうし :2012/06/13(水) 08:12:29.20 ID:Z6lrJuSj
>真ん中の足‥ アレはそんなに大事なモノだったのか‥
前スレ586
http://uni.2ch.net/test/read.cgi/denki/1329524296/586 >アセンブラ的な話になるが、割込みのタイミングは割込み発生時に実行中の命令が終わってから発生する
>PIC18Fは命令によって1サイクルと2サイクル命令があり、2サイクル命令の前半で割込みが発生すると
>割込みに入るタイミングが通常より1サイクル遅くなる。
そのときは疑問に思わなかったのだが、16F690で内部クロック動作のTMR2のオーバーフローで割り込み
を発生させてタイミングを見ていたら、メインルーチンの割り込み待ちループに1サイクル命令とサイクル
命令をどのように混在させてもタイミングがばらつかない。
そこで改めてデータシートを見てみると、
・非同期割り込みの場合は3サイクルまたは4サイクル遅れる。サンプリングタイミングによるばらつき。
・同期割り込みでは1サイクル命令2サイクル命令に関係なく3サイクル遅れる。
ということのようだ。
PIC18F4525
The exact latency is the same for one or two-cycle instructions.
PIC16F690
The latency is the same for one or two-cycle instructions.
MPLAB、PICKIT3つかってPIC32MX795f512Lの工作してるんだけど、 PK3Err0035: Failed to get Device IDがでちゃう。 powersupllyとか、ターゲット設定はしっかりできてるんだけど。。 同様の症状とかって報告がなくて対処ができない。 PICそのものの話じゃないし、スレチだったらごめんなさい。
>>942 よくわからんが、
・リセット後の書き込みモードへの遷移が出来てない
・pickit3とデバイスの間の通信が失敗している
いずれにしても、
データシートの条件を満たす電圧が出てるかオシロで確認。
944 :
774ワット発電中さん :2012/06/13(水) 18:52:44.39 ID:VFn0gXTU
X IDE のシミュレートで SLEEP命令が効かん そんなもんなの?
すみません,X IDEを用いて「純粋な」アセンブラでPICを開発しているのですが, (X IDE&XC16を用いてassemblyベースの開発を選択するとディフォルトでこうなるようです) よく資料で見かける__CONFIGやaddfwなどのニーモニックが使えません。 別に~~fwなどの命令はmovとaddで展開できるからいいのですが, configurationを発行できないのはさすがに困ります。 X IDEを用いたアセンブラで開発していらっしゃる方は,コンフィギュレーションをどのように設定されてますか?
946 :
945 :2012/06/13(水) 22:18:30.16 ID:vSdEv6FI
すいません自己解決しました
947 :
944 :2012/06/13(水) 22:28:21.40 ID:VFn0gXTU
事故解決できません
948 :
774ワット発電中さん :2012/06/13(水) 23:07:37.85 ID:Y3KJlKcf
PIC32初めて使ったんだが、すげぇ爆速でワロタ 16Fや18Fがゴミのようだw
こんなもん、kHzのクロックでのんびりやる仕事だけ任せとけばいいんだよ 高速なことはソフトじゃなくてハードでやるのが常道
>948 16Fなんかは入出力で5V使えたり、I/Oピンをフルに使えたり 小ピン小型のパッケージがあったり、情報が豊富だから 速度いらない用途なら、いいけど PIC24やdsPICの立場がないよな
PIC32って5V食えないのばっかだっけ?
5Vトレラントのピンは5V食えるからTTL互換にはできるな
5V食うというのは、女を食うのと同義でしょうか?
>951 PIC32のVDDはMax3.6Vで当然出力はVDDまで 入力は5Vトレラント入力ピンあるけど一部のピンのみ 今回秋月で売られたPIC32MX220F32Bだと 5V入力可能なI/OはRB5,7,8,9の4ピンだけ
5Vトレラントではないピンは、5Vに1MΩでプルアップするのもダメ?
>>956 多分トレラントを間違えてる。
出力の機能じゃないよ。
たとえば +5V --->|---vvvv---<pin といった感じでLEDをシンクで点灯させるとき、 ピンの出力のGND側がオンしているときは問題ないけど、 ピンの出力のVdd側がオンしているとき、あるいは両方オフでHi-Z状態のとき、 ピンには5Vが加わるような気がするんだよね。 抵抗もLEDも、流れる電流が微小だと電圧降下もまた微小になるよね。
入力ピンとGNDの間に3.3v定電圧Diをいれておけば保護になるけど、1.7V残るね。デジトラつなげば?。
>>956 無理っぽい。
The open-drain feature allows the generation of outputs
higher than VDD (e.g., 5V) on any desired 5V-tolerant
pins by using external pull-up resistors. The
maximum open-drain voltage allowed is the same as
the maximum VIH specification.
>>855 亀レスだが
>MLR→1, VDD→13,VSS→8,PGD→18,PGC→19,AUX→×
>と配線しています.
PGD→17,PGC→18
じゃねえの?
5V→3.3系には抵抗分圧を使ったよ。
ブレッドボードで動いてた回路を万能基板で組んだら動かない。 って状況でオシロも無くてマジ泣きそう。
電圧を外挿してくれる分圧抵抗は無いものか
負性抵抗でぐぐれ。
PICのVSSをハンダ付けしてなかった。 涙拭いてハンダゴテ当ててくる。
968 :
774ワット発電中さん :2012/06/15(金) 06:52:58.91 ID:2RZbeN6S
おしごとの方は組み込みのdspicと戦ってた。金曜日にファームアップして終了。 開発ボード一枚壊したけど、なあに、かえって免疫力が付く。 だって仕様書と違う実装してるんだもん・・・ あいにくとしゅみの方がトラぶってたんだ。 おしごとならオシロつかえるけど、うちにもってかえるわけにもいかない。 グランドいっこハンダづけしたらちゃんと動いた。 しあわせ。 これからセンサーユニットつくっちゃうよ。
>>969 ボーナスシーズンだしマイロジアナとマイオシロ買いましょう!
_、_
Λ_Λ_ (<_,` )__
/,'≡ヽ::)m)V n _ l
 ゙̄-' ̄`--´ ̄ ̄E_ )._ ノ ̄ ̄
プレボで動かせる回路だと DSO-nano いいぞぉ! 安いし場所取らないしポケットに入るし。
972 :
774ワット発電中さん :2012/06/16(土) 09:07:02.40 ID:JjkJHE8n
余談ですが趣味でやってる皆さんはオシロとかロジアナとか持ってますか? 最近マイコン工作を始めたものですが今はテスタ程度しか持ってないので 安いものの導入を考えてます。)
オーディオ系の物作るんで、アナログオシロの中古を億で買った
ロジアナは持ってないけどオシロは持ってる。 すごい性能は悪いけど、ないよりはマシなので。
まぁここはPICスレだからね。スレチの話は膨らまないよ。
必要性を感じたら買えばいい、LEDチカしてる内は全く不要だ。
980 :
774ワット発電中さん :2012/06/17(日) 20:44:48.71 ID:5VQkUZJZ
まぁ、PICが作り出した信号見るならPICで作ったオシロで充分な気がする。
シミュレーションで基本部分を片付ければテスターでもある程度は確認できる 無い無いづくしの時の方が色々工夫するんじゃないかな
>>980 さすがに同じチップじゃ自分の信号見られるようなオシロは厳しいかと
ロジアナならなんとかできるかな
USBオシロを5000円くらいで作れないもんなんかな
秋月のPIC16F1823、PIC16F1827の品切れ、なかなか解消しないな。
PIC16F1455 14ピン PIC16F1459 20ピン 内部発振16MHzの3倍PLLで48MHz動作、 USB内蔵、外部XTAL不要。 プログラム 8Kワード データ 1Kバイト ADC 5/9 ch
PIC16F1508 20ピン 4x Standalone PWM Modules Complementary Waveform Generator (CWG) Module Numerically Controlled Oscillator (NCO) Module これも面白そうだな。
バグフィクスしてない新製品が続々と 1827で決まりじゃなかったのか?
989 :
774ワット発電中さん :2012/06/18(月) 13:24:00.62 ID:HGC+7Hz0
CLCって面白そう
なんかもう型番が多くて分からんぞ。 もちっと命名規則をちゃんとして欲しい。
部品箱のPICが半分コレクション化してきとる
993 :
774ワット発電中さん :2012/06/19(火) 09:54:32.18 ID:cyJddWTX
俺は、全種類持ってるぜ、って人、いるんだろうな。
そういう人には パッケージ違い持ってるか? 温度範囲違いも揃えてるのか? 型番の末尾に-ICD -ICE付いてるのも揃えてるのか、 なんて煽るといい。
コンプがちゃ
保存用と観賞用も必要だな
布教用を忘れてるぞ
(゚Д゚)梅!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。