1read 100read
2012年5月電気・電子21: PIC専用のスレ Part38 (161)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
鬱でも必死で会社に言ってる人【電電−7】 (801)
1.5Vで電子工作 (779)
ホーザンvs グットvsハッコー No2 (133)
(_■三 真空管 総合スレッド 三■_) 第6グリッド (624)
制御盤 設計(ハード ソフト)・試験・現場工事etc (411)
トランスを使わないAC100V回路設計 (346)
PIC専用のスレ Part38
- 1 :12/05/02 〜 最終レス :12/05/10
- .... /Microchip ./|
/( ゚∀゚) / | アセンブラのアの字もわからない
|~ ̄ ̄ ̄ ̄ ̄| /. 超初心者からHEXが読めてしまう
|/Z./Z./Z./Z_|/ || 鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ
||. ||. ||. ||
大人気のPICマイコンのスレ。
なんといっても情報が豊富だし、開発環境も多いし、パッケージも豊富。
使いやすくて、しかも安い。やっぱりPICだよね。
例の如く基本リンクだ
http://www.microchip.com/ マイクロチップ本社(Microchip Technology Inc. )
http://www.microchip.co.jp/ マイクロチップ テクノロジー ジャパン 株式会社
またーりやっておくんなまし。
教えて君はとりあえずGoogle(http://www.google.co.jp/) くらい使おう
前スレ
PIC専用のスレ Part37
http://uni.2ch.net/test/read.cgi/denki/1329524296/
- 2 :
- [新シリーズのPIC16F1xxx テンプレ用] ('11/09版)
旧シリーズより機能が大幅にアップしていて値段も下がってる。新規に組むならこちらから選択すべき
秋月に入荷していないラインナップも表記(未)。円高のおかげか若干値下げあり(v)
[40pin] 16kwハ必要ナイカモシレナイケド10円差ナラ
v◎16F1939 \170 16Kw 1024 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2
v○16F1937 \160 08Kw 0512 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2
[28pin] こちらも10円差なら
-◎16F1938 \150 16Kw 1024 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
v○16F1936 \140 08Kw 0512 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
v×16F1933 \140 04Kw 0256 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
[20pin] こちらは秋月に無し
-未16F1829 ---- 08Kw 1024 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
-未16F1828 ---- 04Kw 0256 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
[18pin] 18ピンの割にMSSPが2コ,ADC入力ピン多,タイマーx5,CCPx4と多機能
-未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
v◎16F1827 \110 04Kw 0384 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
-未16F1826 ---- 02Kw 0256 I/O16 ADC12 CapS12 Comp2 Timer2/1 MSSP1 ECCP1/- CCP-
[14pin] 下位のチップしかなく機能的に8ピンとあまり変わらないのは残念
-未16F1825 ---- 08Kw 1024 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
-未16F1824 ---- 04Kw 0256 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
v◎16F1823 \090 02Kw 0128 I/O12 ADC-8 CapS-8 Comp2 Timer2/1 MSSP1 ECCP1/0 CCP-
[8pin] 8ピンでUSARTもI2Cも使えるってのは大きいね
-未12F1840 ---- 04Kw 0256 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
-◎12F1822 \080 02Kw 0128 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
表記 Timer[8bit]/[16bit],ECCP[Full]/[Half],CspS=CapSense,Comp=Comparator
共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計(?)
VDD1.8〜5,5V,Max32MHz(Vdd2.5V以上),4xPLL有,内蔵OSCでも32MHz可
プログラム面で新命令追加,bankは32マデ拡張,スタック16レベル,LATが追加,割込時のレジスタ自動保存
16bit幅で2本になったFSRデ連続配置RAMやプログラム領域アクセス可能
追加命令群
ADDWFC,SUBWFB : キャリー,ボローを含んだ加減算
ASRF,LSLF,LSRF : シフト命令
BRA : PCLATHやページ境界に関係なく相対ジャンプ [9bit幅] PC+255〜PC-256へ
BRW : PCLATHやページ境界に関係なく前方へのみ相対ジャンプ PC+W(0〜255) ADDWF PCL,f ヨリ便利
CALLW : 上位はPCLATH,下位はWのアドレスにサブルーチンコール
MOVLB,MOVLP :バンクセレクト,PCLATHに直接定数入れる
TRIS,OPTION :TRIS(A〜C),OPTION_REGにWの値入れる(12bit幅品互換?)
RESET : ソフトウェアリセト
ADDFSR : FSRに定数(-32〜+31)加減算
MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能
- 3 :
- 秋月の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でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書にのってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
- 4 :
- 秋月の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 :
- 一応 リスト新しいの作ってあるので貼っとく
- 6 :
- 【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可能
- 7 :
- 【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でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書に載ってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
- 8 :
- 【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
- 9 :
- 【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リマップ
- 10 :
- 秋月じゃ売ってないけど面白しろそうな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デバッグ用)
- 11 :
- マイクロコントローラ歴史
ttp://www.cqpub.co.jp/hanbai/books/37/37291/37291-intro.pdf
最初のPIC, PIC1650 GeneralInstrument社('89に1事業部門が独立して現在のMicrochip社へ)
ttp://www.rhoent.com/pic16xx.pdf
(命令セットはBaseline Architecture 命令長12bit品とほぼ同じ)
- 12 :
- >>1-ちょっと前
まとめも乙。
しかし、まとめてもこの数・・・
どっかにWikiでも置かないか? 管理は任せた。
- 13 :
- 2chの過去ログ以上に保全されるなら
- 14 :
- このリストがあるからこそ私はこのスレにくるのだ
- 15 :
- 8pinのPICで6pin全部出力に出来るのって有りますか?
めぼしい機種を調べてみたんですが、
1pinが入力のみになってるのしか見つからないんです。
もしかしてそんなものは存在しないのでしょうか(´・ω・`)
- 16 :
- 確かに5個までのしか知らないな
- 17 :
- >>15
8ピンPICで入出力可能なのは5本までだけど、MCLRを弱プルアップして擬似的に出力として使う裏技があったと思う。
- 18 :
- なるほどなるほどI2C的な手法ですな
- 19 :
- しかし、出力しかないプロセッサは何を処理するんだ?
- 20 :
- 6pin全部Outにしちゃったら、どうやってCLRするんだ?
- 21 :
- 車のCAN通信から信号拾って
キャラクタ液晶に速度を表示させたいんですが
今時だとどういう方法がおすすめでしょうか。
保有スキルは、PIC16F84Aでキャラクタ液晶に文字を出せる程度です。
- 22 :
- LEDを6個8pinのPICに繋げようとしたら、1ピンだけ入力onlyだったんです、それで
picは種類が有るから、もしかしたら6pin全部出力なのが有るのかなぁと思って質問した次第なんです。
おとなしく14pinのPICを使う事にします(´・ω・`)
皆様、どうもありがとうございました。
- 23 :
- 出力6ピン無くても
LED6個なら個別にON/OFFできるぞ
- 24 :
- >>21
CAN対応のPICにキャラクタ液晶つないで適切なプログラム書けばいいんじゃね?
- 25 :
- >>21
これ買えばいいお
悩まなくてすむお
http://www5b.biglobe.ne.jp/~tekhanzo/subhtml/pic_CAN.html
- 26 :
- >>22
LEDがスタティック表示でなくてもいいなら、出力4本あればシンクとソースの組み合わせで何とかなるんじゃないかな。
- 27 :
- 8ピンPICで7セグ4桁の時計も作れるみたいだしやり方しだい
ttp://xcrosgs2wy.web.fc2.com/picclock/
- 28 :
-
I/Oエキスパンダーという選択肢
- 29 :
- >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 :
- >>17
その裏技をもそっと詳しくたもれ。
- 31 :
- プルアップするかしないかで出力するんでしょ
- 32 :
- >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の動作中書き換えって出来ましたっけ?
- 33 :
- MCLR兼用ピンのプルアップはできるのとできないのがある。
- 34 :
- >>28
MicrochipのI2C I/Oエキスパンダを通してグラフィック液晶を駆動したんですが、
描画速度が異様に遅かったです。PIC I/Oポート直接接続にすると
使える速度でした。私のI2Cインターフェースプログラムがタコなのか、
I2C(400kHz)で動かすと本質的にトロいのか、どっちなんでしょうか。
- 35 :
- >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制御可
- 36 :
- 前スレで200mA出力とか言ってた馬鹿です。
2SC1815一石を使って赤外LED4個を駆動することで落ち着きました。
さて。
エネループ4本で動くリモコン回路を作ったのですが、
内部発振4MHzのsleep状態で回路全体の消費電流が140uAでした。
何か待機電流を減らす工夫はありますか?
;アナログコンパレータは動作させていないつもりです。
movlw 0x07
movwf CMCON
;外付けプルアップ抵抗を省略するために内部プルアップを使っています。
bcf OPTION_REG,NOT_RBPU ; port bをプルアップする
石は8pinで充分のところ無駄に18pinの16F648Aです。
レールで買ってしまったので使い切らねば。
16F84を使い切るのは諦めました。
- 37 :
- >>35
> ×12F629/675 Pull-up自体無し(MCLRとして使うなら外付けpull-up要)
こればっか使ってるから、そういうもんだと思ってたよ。
VPPかかるから保護ダイオード省いてるんだし、抵抗もあるわけないだろ、と。
- 38 :
- 48kHzに落としてからsleepするのが定石でしょうか。
ttp://www.hi-ho.ne.jp/hida/pic27.htm
- 39 :
- >>36
1815の最大定格は150mA
内部プルアップをやめ外付けプルアップにしてみるとか?
内部だと5Vで50〜400uAの消費電流
外付けで100〜300k程度の抵抗にすれば50〜16uA
あとはsleep中も有効かわかんないけど電源電圧自体を下げる
- 40 :
- >>36
sleep直前にプルアップをオフにして、起きたときにまたオンにするとか。
- 41 :
- >>39
丁寧にありがとう。
「2直に33Ωの制限抵抗」を2並だから一応最大定格内のはずです。
(4.8-1.2-1.2)/33 * 2 = 0.145[A]
やはり内部プルアップは消費電流が多いですか。外部100kΩで安定ですね。
電源電圧は・・・。エネループ2直で安定して動くPICがあれば乗り換えを考えます。
>>36
今のところ RB0/INT のエッジでsleepから復帰しているので、プルアップは必要な気がします。
コードの構造を変えて、watch dog 等でインターバル化すると反応速度と引き換えに電力が減らせるかも知れませんね。
- 42 :
- >>41
データシート見たんだけどPIC16F648Aが4MHzが2Vで動作するのか3Vで動作するのかよくわからない
4MHzの所から2Vから3Vにグラフが垂直に上がってる
- 43 :
- >42
それLF仕様の品でしょ。PIC16"LF"648A
>41
新型のPIC12F1822や16F1xxxなら1.8Vで16MHzまで、2.5〜5.5Vで32MHz
- 44 :
- >>43
見落としてた
代わりにスイッチをPICの入力ではなくVSSに入れるというのを考えてみた
スイッチを押すとPICの電源が入る
電源が入るとPICからNPNトランジスタを起動してVSSを保持
終わったら保持を切って電源を切る
トランジスタはVSSにプルダウン
ちょっと実験してくる
- 45 :
- >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 :
- 実験完了
結局VSSじゃなくVDD側を切った
結果
停止中は0.1uAなった
測定は秋月で2100円で売ってるテスター P-16
A4がODなってるのでPNPのベース側に繋ぐ
PNPのエミッタに電源、コレクタをPICの電源に繋ぐ
タクトスイッチでPNPのベースをLowにする
PICの電源が入る
A4をLowにする
処理が終わったらA4をHighにする
PICの電源が切れる
- 47 :
- PICとか仕事でやれたら楽しそうだなあ
- 48 :
- 今はH8だろ
- 49 :
- >>47
普通に仕事で使ってますよDIPで配線がやりやすいのが良いですね
大量に作るならフロー用にQFPとかもいいんですが、数がね・・
- 50 :
- 間違えたリフローでした、なんという間違えを・・
- 51 :
- まじで?
でも確かに手のひらサイズのもんには良いか。
どんなもの作ってるの?
- 52 :
- >>48
そこはぶっちゃけ会社の体質次第でしょう
小規模制御でAVR指定していたところもあるし
- 53 :
- >>51
基本的に産業機器なので一般の人は目にしないかなー
センサーの制御に使うのが大半ですね
開発環境が安く構築できるのが大きいですね
- 54 :
- 良く考えたら2x3でダイナミック制御すればLED6個可能な事に気付きました、
なんとか8ピンのPICでいけそうです(´・ω・`)
MCLRのプルアップはイマイチ良く判らないので、
いずれ機会が有ればやってみたいと思います。
- 55 :
- >>44-46
実験おつかれさまです。そしてありがとうございました。
1015一発でその低消費電力は魅力ですね。コンデンサと1015の漏れ電流だけとは。
>>54 ,15
4ピンで12個制御してるのを見たことがあります。
ttp://www47.atwiki.jp/makedenshi/pages/29.html
- 56 :
- あ、あれ?
まさか、"A"の付かない16F84はPICKIT2で使えない???
どんなに頑張っても認識されないんだけど・・・
- 57 :
- >>56
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813
確かに対応リストには乗ってないね・・
PICKIT3ならリストに乗ってるねぇPICKIT2はもう切り捨てられるから買い換える口実にいいかもね
- 58 :
- >>56
http://sites.google.com/site/pk2devicefileeditor/
- 59 :
- そろそろPICKIT2でも買うか
- 60 :
- >>59
あえて2な理由はなんぞ
- 61 :
- >>55
なるほど。
ttp://www.asahi-net.or.jp/~rn8t-nkmr/family/pic/flasher/index.html
5ピンなら20個制御できる計算ですね。
- 62 :
- PICKIT2じゃないとロジアナ機能が・・・
- 63 :
- 保存用と観賞用も買わないと
- 64 :
- nピンあるとして、n*(n-1)*2 のLEDが個別に光るのか。
hiZの荒業だな。
- 65 :
- >>63
布教用も買っておいてくれw
- 66 :
- >>64
nP2 じゃないの?
順列組合せ。
有名になる前からPICアプリケーションノートに載ってた奴ね
- 67 :
- 質問お願いします!
下のような配列のグローバル変数があるのですが、色々C言語について勉強していると
グローバル変数の濫用は駄目みたいなことらしいと書いてあります。
そこで、ポインタというものを使用すればいいとの事ですが、
下のようなプログラムの場合、どのようにポインタを使用すればいいのですか?
特に割り込みルーチンで複数の変数を扱いたいときにどうすればいいのかさっぱり分かりません。
今のところ、使う変数は全てグローバル変数でも動作に問題ありません。
過去に何度も同じような質問していますがよろしくお願いします。
int dat[10] = {0};
void main()
{
省略
}
void interrupt()
{
for(i = 0;i < 10;i = i + 1)
{
dat[i] = dat[i] + i * i
}
}
- 68 :
- >>67
>下のような配列のグローバル変数があるのですが、色々C言語について勉強していると
>グローバル変数の濫用は駄目みたいなことらしいと書いてあります。
>そこで、ポインタというものを使用すればいいとの事ですが、
そんな本捨てろ。
- 69 :
- >>64
> nピンあるとして、n*(n-1)*2 のLEDが個別に光るのか。
さらに倍! かよ。
> hiZの荒業だな。
荒業使うと、n*(n+1)個になるんだ。
まじめにやれよw
- 70 :
- >>67
最適化の適用次第なんだけど、最適化が行われない場合、配列の要素の番地を毎回計算されて処理時間を要する場合がある。
int *Poi;
Poi = dat;
for (i=0;i<10;i++){
*poi = *poi + i*i;
poi++;
}
ってな感じで配列要素の番地演算を少なくするケースは時としてある。
- 71 :
- >グローバル変数の濫用は駄目みたいなことらしいと書いてあります。
>そこで、ポインタというものを使用すればいいとの事ですが、
それはちょっとおかしな説明だな。
説明を読み間違ってるんじゃない?
int dat[10] = {0};
void main()
{
省略
}
void interrupt()
{
int *dPtr;
for(dptr=dat,i = 0;i <10; )
{
*dptr++ += (i++)^2;
}
}
- 72 :
- >>68>>70>>71
レスありがとうございます。
自分の考え過ぎなんですかね?
結局は常時値を保存したい変数は、ポインタを使っても使用するメモリサイズは変わらないならば、
無理してポインタは使わなくてもいいということでしょうか?
ポインタを使うメリットは、プログラムの高速化は分かるのですが、
ネットでC言語のポインタを憶えればC言語を使いこなせるだの、グローバル変数は撲滅すべきだのとあり
本当にわけがわかりませんorz
- 73 :
- >>72
ネットで済ませず、きっちりしたC言語の教科書を買うべし。
グローバル変数なしで割り込みハンドラは書けないよ。
- 74 :
- ありきたりの話になるけど・・・
>無理してポインタは使わなくてもいいということでしょうか?
無理する必要はない、必要があるなら使えばいい
>C言語のポインタを憶えればC言語を使いこなせる
逆だ
C言語を使いこなすにはポインタぐらい理解して使えるようにしておけ
ポインタだけ覚えてもCを使いこなすことにはならん
>グローバル変数は撲滅すべきだ
ソフトウエア工学的な原則論としては正しい
グローバル変数でもローカル変数でも同じように書けるならローカル変数にしとけ
- 75 :
- グローバル変数使いまくったら
モジュール化なんて出来ないもんな。
ソースの使いまわし出来なくなるし、
オブジェクト指向に沿わない設計は
「やめろ」と言うわな、そりゃ。
- 76 :
- プリプロセッサでどうにかなる
- 77 :
- 2つのFレジスタの指定のビットの比較分岐はどんな感じでやればいいですか?
両方1、両方0、0と1、1と0で4種類の分岐をさせたいです。
- 78 :
- switchでいいじゃん?
アセンブラはしらね
- 79 :
- 下手にうまいこと書くより、
普通にビットマスクしてif分の固まりにするのが、
いちばん効率いいバイナリになる気がする
- 80 :
- それ余程うまく書かないと、後でわかりにくいし実行にも時間かかる。
- 81 :
- elseでかけばそんな変わんなかった気がする
- 82 :
- >>77
たった4つに分岐させるだけなのに何が問題なの?
- 83 :
- でもアセンブラで書けって言われるとえーっとってなる
- 84 :
- グローバル変数善し悪しの考え方は
上位のライブラリが下位のライブラリ変数を極力使わないようにする
といった考えで組んでいけば自然と使用頻度は減る
PICの場合、ハードを直接触るコーディングが多いし、チップ性能からしてそんなに多階層コードを意識する必要は無いと思う
16ビットPIC以上でファイルシステムやパケット通信処理するなら、
スコープに対する意識は必要
ポインタはそういったコードを組む時に便利な機能という考え方で使わないと、
逆に解読悪くなる気がする
- 85 :
- 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
分岐後の命令 直に書けば省略可
- 86 :
- Fレジスタって何?
- 87 :
- ファイルレジスタのことらしい
- 88 :
- 同じ処理が2回とか3回とか現れた時に、
この部分切り出して関数にしてえ、と思って関数にすると、
見た目はシンプルになるけど、値がみんなグローバル渡しになってえらいことに
- 89 :
- >>87
あ、なる。
>>88
え?
- 90 :
- >>67
グローバル変数と、ポインタの関連例は何もありません。
私の私見ですが、グローバル変数は、割り込みなど、そうするしか他に表現方法が
思い当たらないような、必要最小限で使うべきです。volatileもお忘れなく。
私は>>67の書いたコードのままで十分実用範囲であると認識します。
- 91 :
- レスありがとうございます。
とりあえず、割り込みで使用する変数はグローバル変数でなくては駄目との認識でいいのでしょうか?
今作成しているプログラムの変数が、割り込みルーチンで使用するものが殆どだったので頭抱えてましたorz
また、volatileという最適化機能を抑止するものがあったなんて知りませんでした。
まだまだC言語についてはド素人レベルなので質問ばかりですみません。
みなさんありがとうございました。
- 92 :
- >>91
割り込み処理でも定義としてはローカル変数使えるよ。volatileは必要に応じて。
- 93 :
- >割り込みで使用する変数はグローバル変数でなくては駄目との認識でいいのでしょうか?
割り込み用の関数は戻り値を持たないので、演算結果を他のプロセスに渡す必要があるのなら
グローバル変数を利用することが必要だということだよ。
関数内での処理の後、内容を破棄できるようなものなら、普通にローカル変数でOK。
- 94 :
- 16F877用で一番簡単なタイマ0割込の学習できるソースファイル、どこかありませんか?
後閑本読んでも一度もうまくいかず凹みまくってます。
- 95 :
- >>94
ソースを求める前に自分で作ったソースを書いてみたほうがいいかも
- 96 :
- 94が書いたソースをギリギリまで要点抜き出して(でも動きうる範囲で)貼ってみてよ。
質問厨によくあるけど。
情報を隠しすぎ。
後だし多すぎ。
楽しすぎ。
アセンブラ? C?
プリスケーラ使うの? スルー?
シグナル源は外部? クロック/4?
初期設定で GIE とかいじってる?
- 97 :
- もろに被った。ごめんね。
- 98 :
- 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 :
- アセンブラかもしれないのに汚いソースを
コンパイラの種類も書かないで、ドヤ顔で張りつけるバカがココにもいました!
軽○みてぇ〜
きもちわるぅ
- 100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
雑談所 (774)
【発光】ヒカリもの全般スレ【LED等】 10素子目 (132)
【荒らし】電子工作系人物ヲチスレ9【粘着】 (996)
【電気・電子】総合雑談・質問スレ (145)
ホーザンvs グットvsハッコー No2 (133)
【温調】はんだごてについて語るスレ【ガス】 No4 (598)
--log9.info------------------
【FAIRY TAIL】 フェアリーテイル強さ議論スレ2 (667)
【久米田康治】さよなら絶望先生195話【マガジン】 (1001)
BLEACHって寒い102 (519)
はじめの一歩●Round359● (1001)
ネテロ会長がハンゾーを高く評価した理由とは? (450)
ジャンプ打ち切りサバイバルレースpart1878 (219)
全漫画アンチを偽計業務妨害で逮捕せよ(wcomic) (969)
こち亀が連載終了するわけだが (216)
エア・ギア Trick:119 (245)
さよなら絶望先生 久米田康治 アンチスレ 11 (641)
勇次郎vs刃牙【範馬刃牙R769】頂上決戦ッ! (751)
【中丸洋介】我間乱〜GAMARAN〜六十一の太刀 (217)
【ミイナ】エデンの檻Part66【全裸かっ♪】 (266)
【絶賛】HUNTER×HUNTER アンチスレ 29【休載中】 (631)
ワンピース強さ議論と雑談スレ441 (1001)
BE BLUES!〜青になれ〜 第7節 【田中モトユキ】 (177)
--log55.com------------------
別館★羽生結弦&オタオチスレ13315
出禁厳守 INARI 574
実質なん224
星雑part.52
メドベアンチスレ796
BTSの雑談スレ1599
☆【画像】6273
宇野昌磨が嫌いになった&嫌いになりそう&不満スレpart.331