マイクロコントローラ歴史
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品とほぼ同じ)
マークの意味
◎お勧め、用途決まっていないならこれ買っとけ
○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ
△内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書に載ってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
以下秋月DIP品
;-------------------------------------------------------------------------------
【PIC32】32bitMIPSアーキテクチャ 最適化されたアーキテクチャで1.65DMIPS/MHzを叩きだす高性能
ただ完全なRISCで単純命令しか持たない為16bit以下の演算では命令効率,速度とも
同MIPS値のPIC24/dsPICに劣る。32bitマイコンのDIP版は貴重,MIPS値はクロックと同じ('12/08版)
28ピン
-◎PIC32MX220F032B \220 FLASH32+3KB RAM8KB ●USB
-○PIC32MX210F016B \200 FLASH16+3KB RAM4KB ●USB
-○PIC32MX120F032B \200 FLASH32+3KB RAM8KB
-△PIC32MX110F016B \190 FLASH16+3KB RAM4KB
共通
Vdd2.3-3.6V,Max40MIPS(40MHz),UARTx2,I2Cx2,(SPI/I2S)x2,RTCC,10bitADC,DMA,I/Oリマップ
;-------------------------------------------------------------------------------
【PIC24/dsPIC】16bitマイコン 16/18F等の8bitマイコンとは全く別物な洗練されたアーキテクチャ
同MIPS値のPIC18F以前と比べて数倍高性能。高めの価格とPIC32の安価での登場で厳しい
70MIPS版PIC24E/dsPIC33Eも存在するが秋月未。MIPS値とクロック関係は下記参照('12/08版)
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リマップ
【PIC18】8bitマイコン。5V動作可(J除)で比較的高速(10〜MIPS) 新型のKシリーズは多機能で 高速(16MIPS),USB機能付きもラインナップ,命令系は16F(Mid-Range)から+αレベル MIPS値はクロックの1/4('12/08版) 40ピン 新ラインナップ45K20(注3.6V)か旧だけどUSB&12bitADの4553。不要なら4525もありかな -◎18F45K20 \180 16Kw/1536/256 Max64MHz(31k-64MHz),4xPLL,CCP1/1,▲3.6V -◎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ピン 新ラインナップが強力。3.6V可ナラ大容量・多機能27J53,高速ナラ多機能の26K22か12bitADCの25K80 -×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のメモリ縮小版 -◎18F27J53 \300 64Kw/3776/0 ●USB,Max48MHz(31k-48MHz),PLL,eUSART2,TMR4/4,MSSP2,CCP7/3,12bitADC,リマップ,▲3.6V -○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 -△18F13K22 \150 4Kw/256/256 ↑14K22のメモリ縮小版 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
【Enhanced Mid-Range】8bitマイコン 新シリーズのPIC12F/16F1xxx,旧シリーズ(Mid-Range)より 機能が大幅UPしていて値段も安い、新規に組むならこちらから 秋月に入荷未品も参考のため表記(未),MIPS値はクロックの1/4,エラッタ注意('12/06版) [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】8bitマイコン PIC16F84から連なる旧シリーズ,性能&コスト的に新シリーズへの移行推奨 評価は旧シリーズ内の相対比較 新シリーズが使えない場合のみ有効,MIPS値はクロックの1/4('12/08版) 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無くても良いならF615,本来はデバッグ用ダガF322も -◎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機能省かれてる -◎10F322 \45 8bitADC,PWM,0.5Kw,内蔵31k-16MHz,I/O4コダガFVR,温度計,CLC,NCO,CWG ;---------------------------------------------------------------------------------- 【Baseline】8bitマイコン 初代PIC1650(1978年)からホボそのまま,あまりに古い設計の為 制限多 新シリーズへの移行推奨 -△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら -△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら -×12F510 \60 8ピン,ADC有(8bit),1kw,内蔵4Mor8MHz -△12F509 \50 8ピン,機能無し,1Kw,内蔵4M -△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用 -△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用 共通 機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
秋月じゃ売ってないけど面白しろそうなDIP品群 MicrochipDirect単価 32bitメモリ多→ PIC32MX250F128B (DIP28,40MIPS,USB,128KB-FLASH,32KB-RAM) $4.09 驚70MIPS! → dsPIC33EP128GP502 (DIP28,70MIPS,128KB-FLASH,16KB-RAM) $4.14 5V入出力! → PIC24FV32KA301 (DIP20,16MIPS,32KB-FLASH,2KB-RAM,512B-EEPROM) $3.09 18p40MIPS → dsPIC33FJ12GP201 (DIP18,40MIPS,12KB-FLASH,1KB-RAM) $2.97 14p 16bit → PIC24F08KL200 (DIP14,16MIPS,8KB-FLASH,512B-RAM) $1.80 アナログ色々 → PIC16F1783 (DIP28,8MIPS,2kW-FLASH,512B-RAM,256B-EEPROM,OpAmp,12bitADC,8bitDAC) $2.02 テンプレはここまでだよ。 前回と一緒にしたけど、変更の場合は900番台当たりで指摘して下さい。
スレ立て乙です プログラム・PIC初心者です プロポからの無線信号を2ch分読み取り、2つのNchFETHブリッジに出力したいと考えております 信号幅によって正転・逆転、速度の高低を変化させたいです 今、18f2515を使用してプログラムを書いたのですが訂正と動作テストを繰り返しても思ったように動いてくれません 割りこみはTMR0を使用し、タイマーカウンタは8ビットの設定です この設定で2ch分のパルスを計測し出力を変化させます 何度も考え直しプログラムに変更を加えたりもしているのですが、動作が不安定だったり、動かなかったりします おそらく、割り込みの処理とメインループの兼ね合いに問題が生じていると私は考えております 割りこみ処理のあるプログラムを記述する際、気を付けておくべき点などありましたら教えてください また、プログラムを考え直すよりCCP機能の数のもっと多いPICを使用したほうが得策でしょうか?
>>7 不安定とは具体的にどんな状況で発生するんだい?
試験条件を明確にしてほしい
@目的
A結論
B試験条件
C詳細(プログラム、動作波形)
これだけ揃えばアドバイスしやすい
>>7 入力と出力、メイン処理。どれも少しずつ誤っていると泥沼になるよ。ってか、デバッグは済んでいる?
与える信号に対して入力処理は動作しているか?まずはそのあたりを確実に動作させる。
出力処理は入力ありきだけど、入力を無視して1秒ごとに正転、逆転、速度の高低を切り替える様な制御
が通か否かの自己診断を入れるのも手。
シリアルポートで状態をはき出すのも有り。処理全体に罠をかけるのではなく、機能単位で。
割り込み処理もある様だからprintfは避けた方が吉。1文字垂れ流しでも用は足りる。
ソース無しで想像だけになるけど、メイン処理と呼ばれる処理で操作する変数が割り込み処理でも操作し
ているとアウト。大丈夫な場合もあるけど2バイト書き込みとか注意しないと駄目。適度に割り込み禁止
を利用する。また、最適化の影響もありそうなので共有する変数はvolatile付けとく。位かな。今のところ。
>>7 ほとんど同じものを16C84で作ったな
レジスタの退避にSWAPFを使うことを知らなかったからなんだこのクソ欠陥マイコンは!と怒り狂ったもんだ
今作るなら2CHの立ち上がりと立下りをキャプチャできてPWMを4CH出せるマイコンをまず探す
教えてください 8bit PICで、16bit変数を処理している真最中に、タイマー割り込みが掛かることがあります。 タイマー割り込みの中でもその16bit変数を使うのですが、上記の條件にはまった場合、 答えがおかしくなります。 16bit変数を処理している真最中は、タイマー割り込みを掛けないようにする方法は、 あるでしょうか?
>>13 cなら変数をvolatileにする
変数を変更する直前で割り込み禁止
変更の変更が終わったら割り込み許可
ところでみんなCコンパイラって何使ってる?ちなみに俺はCCS
脳内コンパイラ
オレはおっさんなのでアセンブラ
C言語使わなくても アセンブラで色々難しい事出来るから 逆になんでワザワザコンパイラ噛ませるの? とか思うんだけど、バカにされそうだからC32使っています
アセンブラ使わないとPICオリジナルアーキテクチャのアホさ加減を楽しめないぞ。
無料のcコンパイラが吐き出すソース見てみろ。 ゲロはきたくなるから。 picはアセンブラ、cはアールでーの。
ネットで公開されている回路やプログラムを参考に 自作JDMプログラマーとIC-ProgでLチカを始めた初心者ですが windows7 64bit版でUSB変換してるからなのか、IC-Progが対応していないのか プログラムを書き込む度に「照合に失敗しました!」で終わります。 だからなのか、何回かプログラムの消去と書き込みを繰り返してみると 何回かに一度は書き込みが不良で正常に動作しないこともあります。 いや、「照合に失敗しました!」が毎回出るのに正常に動作したりするほうがおかしいのか。 うまくいかないときは、前のプログラムが残ってしまっているような気がして 消去を2〜3回してからプログラムすると、うまくいくような?気が?します? 2個あるPICのうち1個はどうやら使い方に慣れていない最初の段階で壊れてしまったらしく、何度書き込んでもダメです。 こんな調子じゃプログラムを覚えるどころではありません。 @プログラムを書き込む度に「照合に失敗しました!」で終わることや 何回かに一度は書き込みが不良になってしまうことについて、思い当たる原因や対処法があったら教えてください。 A市販品を買うとしたら「AKI−PICプログラマー Ver.4(完成ボード)」と「PICkit2」ではどちらがお勧めですか? windows7 64bit版で問題なく動作しますでしょうか?
仕様を満たしちゃんと動作するプログラムができるんならソース見る必要無いでしょ? 美しいソースを求めるのはただの趣味だと思う。
ソースは自分が書いたものじゃないの?
私は美しくて小さくて早いプログラムを書きたい。
無料コンパイラが展開するアセンブラソースを見て、裏をかこうとポインタ変換多用したら アセンブラが落ちた経験。わかってしまえばたいしたことなかったけど、当時、目茶悩んだ
PIC初心者なんだが質問させてくれ 電池とDC/DCコンバーターを使ってPICを5Vで駆動させているんだが A/D変換機能使ってPIC自身にかかってる電圧測定したいんだが、なんか方法ない?
逆に、なぜ自力でできないか不思議。
あの・・・ 照合に失敗する件については・・・ いかがなものでしょうか・・・
思い当たることは無いし、どちらもオススメするつもりないのでコメントできないっす。 オレならPICkit3を使うけど。
>>31 手作り書き込み器は使ったことないので分からない。
秋月のプログラマーとPICkitなら0:100でPICkit。
>>29 PIC16F887を例にいえば
内蔵コンパレーターとかに使うCVREFという0.6V位の
基準電圧を内蔵していて
そのCVREFをA/D入力chの1つとして選べるようになっている
ただCVREFは温度や電源電圧の変動に対して安定しているというだけで
マイコンの個体ごとにばらつきがあり正確な電圧は不明だ
そこで電源電圧をVREF+としてCVREFをA/D変換してみて
その値が122だったとする
そしてそのときの電源電圧をテスタで測定してみたら5.00Vだったとする
その場合CVREFは5.00V*122/1024=0.596V
だとわかる
そして運用時の電源電圧を知りたい場合
電源電圧をVREF+としてCVREFをA/D変換してみて
その値が115だったとする
その場合
電源電圧*115/1024=0.596V
となるから
電源電圧=0.596V*1024/115=5.31V
と計算できる
>>34 CVREFじゃなくてFixedRefだった
>>34 たびたびすまない
FixedRefって何なのか教えていただきたい
/j // ヽ ', 、 /イ ', l ’ …わかった この話はやめよう | l_| | | ゝ ̄`ヽ | |〈 ̄ノ ゝソノノ `ー‐' l ! ¨/ |! |///7/:::ゝ r===オ | ! | |/~7 i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/
データシートを眺めて見ようとさえ思わないってことだしね。
1+1から教えたい、わりと切実に。
>>24 PICKit2は普通に7 64bitで使えるよ。
AKI-PICプログラマーはどうかわからん
今後のことを考えてPICkit2を買うとまで言うなら止めはしないよ。
ちなみに2も3も持ってるがもう3しか使っていないオレ(
>>32 )は特殊な存在なんだろう。
Pickit2だとPIC32の新しい品種PIC32MX1,2シリーズ等へ書き込めません。 pic32prog等の非純正のソフトを使えばPickit2でも焼けるようですが これが意味する所は、MicrochipはPickit2のサポートをやめたと考えるべきかと
3と2なら当然3だろ 乗ってるチップも出力容量も安定性もアップしてる 2使っててファーム飛んだ事あるし フォーラムでもそんな話題出てたよ。黒ボタン2の時の話しだけど 使いたいチップが対応していないなら別だけど そうじゃなかったらどう考えても3を薦める
両方買えばいいじゃん
他人のHEX焼いて喜んでるだけで、どうせすぐ飽きるから2で充分という考え方もある。
単純に、使う予定のPICが16Fなので、3だと ・サポート対象が18F以上 ・日本語マニュアルが無い ・ちょっとだけ高い というデメリットがあるだけで 使う予定のない高性能な?デバイスに対応していることは 上記のデメリットを埋めるほどの魅力ではないかな・・・ と、思いながらもまだ悩んでます。 3でも16Fが使えない訳じゃなさそうだし ネットがあればマニュアルなんていらなさそうだし。 念のため確認ですが 3でもPIC16F84Aとか普通に使えますよね?
現在その情報で正しいのかググり直すといいよ
ネットがあれば
結局、3を買っちゃいました。 後悔しそうで怖いです・・・
2chで他人の意見に流され、その情報の裏も取らず決断したわけですな。
>>52 念のための確認で質問しても何も情報が得られなかったので
流されるもくそもないし、裏を取るべき情報もないし
パソコンは家に置いてきたので携帯でググるにも限界があって
結局、勘で決めてしまいました。
使えなかったらどうしよう・・・
>>54 念のため?
PICkit3という選択肢は頭になかったにもかかわらず3に決定したのが「念のため」?
流されるもくそもない?
結局、ろくに調べもせず外出先で決断したってのが結末でしょ。思いっきり流されてるじゃない。
PICkitを使えるならPCを使えないはずは無いだろうに、なぜ急ぐのか
57 :
774ワット発電中さん :2012/11/21(水) 20:09:31.04 ID:Ry/+18iA
質問です。 pic32mxでc言語でプログラムを作成しています。 マイクロチップ社製のCコンパイラを使用していますが、C言語からアセンブルされた ファイルを見たくても、アセンブルされたファイルがみつかりません。 製品版を購入すると、アセンブルされたファイル見れますか? 宜しくお願いします。
59 :
774ワット発電中さん :2012/11/21(水) 22:19:15.78 ID:Ry/+18iA
>>58 ありがとうございます。さっそく試してみます。
>>55 >>PICkit3という選択肢は頭になかったにもかかわらず3に決定したのが「念のため」?
いえいえ、違います。
3に決定したのが「念のため」ということではありませんよ(笑
PICkit3という選択肢が頭にあったので、自分で2と3のデメリットを比較したうえで
PIC16F84Aが使えるなら3でもいいかなと判断したわけです。
ただ、「サポート対象が18F以上」ということだったので、
現在その情報で正しいのか、もとい、実際にPIC16F84Aはサポート外でも使えるのかを
念のため、使ったことのある人に確認の意味で質問したんですよ。
誰かが、もしくはあなたが質問に何か答えてくれていれば、
その情報に流されるか流されないかという話にもなるでしょうけど
もう2ちゃんはアテにしないで自分で自己責任で買おうと決めたわけです。
なので、答えられなかったあなたに「他人の意見に流された」とか「情報の裏も取らず」とか言われてもね(笑
それとも、私が3を買ったことが何か悔しいんですか??
わざわざ長文で反応してるあたりそれなりに悔しかったと推測される(笑
>>7 で質問した者です
皆さんのアドバイスの通り、順番に調べていこうと思います
>与える信号に対して入力処理は動作しているか?まずはそのあたりを確実に動作させる。
まずはここを突き詰めて調べることにします
次来るときには完成報告になるよう頑張ります
初心者に優しくとかぬかした結果がこれだよ
63 :
55 :2012/11/22(木) 00:48:51.46 ID:xQ52N04X
>>60 >A市販品を買うとしたら「AKI−PICプログラマー Ver.4(完成ボード)」と「PICkit2」ではどちらがお勧めですか?
という2択の質問をして、
>今後の事も考えてPICKit2を買おうと思います。
とまで言ったのに、それを覆してPICkit3を買ったのは2chでススメられたからに他ならない。
しかも
>現在その情報で正しいのか、もとい、実際にPIC16F84Aはサポート外でも使えるのか
を確認もせずにね。そりゃ後悔しそうで怖いだろうさ。決断のプロセスがおかしい。
キミがどんなソフトでソースを書いてHEXを吐くのか示してない以上、キミの環境でPICkit3が使えるかは知らないから答えられない。
オレはMPLAB-X+PICkit3で12F,16Fを快適に使ってることは教えとく。うまくいかないならオレの真似をすればいい。
↑これ大事な情報だから覚えておくように。ま、がんばってちょ。
どうせ今時16F84A使うのも HEXファイル書き込むだけだろ 自作ライタすら満足に作れねえのに 情報が無いと他人のせい こんなんでマイコン使っても大した物作れねえ ボクが上手くPICを使えないのは情報が無いからだー ゆとり教育のせいなのか ただのバカなのか 行く末が楽しみ
65 :
774ワット発電中さん :2012/11/22(木) 00:51:50.47 ID:3WZ+DGH8
AKI−PIC2プログラマボードを使っているのですが、 PICが認識できなくなってしまいました。 書き込みソフトPICkit 2 v2.61では認識できておりファームの更新も異常なくできました。 MPLAB IDE から操作するとVPPの異常とのエラーが出てやはりPICが認識できない状態です。 この状態はもうお亡くなりになってるでしょうか? それとも、諦める前に、これだけはチェックしたほうが良い!と言うところなどあるでしょうか? お詳しい方のアドバイスをお願いいたします。
>>64 とても他人のせいにしてるようには見えないけどね。
情報は提供出来る人がすればいい。
提供出来ない人が文句だけ言ってても意味がないでしょ。
>>51 大丈夫だよ。
16Fシリーズでも使えるから。
【PICkit-2】
・PICkit-2はMPLAB V8.20から、PICkit-2アダプタ経由した定番のPIC16F84Aマイコンへの書き込みはサポートされなくなりました。
・MPLAB V8.20ではPIC16F84Aを選ぶと、書き込み器としてPICkit-2を選択できません。
・PIC16F84Aはドキュメントでもサポート・リストからはずれています。
・しかし、単独で動作するPICkit-2書込専用プログラムではPIC16F84Aの書き込みをサポートしています。
【PICkit-3】
・後継のPICkit-3アダプタではPIC16F84Aの書き込みがサポートされています。
>>66 IC-Prog + PICkit3(ハードのみ) で使うつもりかなとも思う
>>67 そんな心配いらないと思うけど
君がそう思なら合うソフトを教えてやればいいだけでしょ。
「付属のソフトが使えますよ。」って。
>>68 それは、IC-Prog + PICkit3 では動かないことが前提でしょ
調べても見つけられなかったが、動かないの?
84用にRCDでも作っとけばいいじゃん
MPLABがfor文の時いつも止まる
今時 PIC16F84A を使う理由が分からない
オレには分かる
使う奴の姿がだんだん見えてきた
>>69 使えないじゃん。
スレ見てるといかにお前が無知かが分かるよ。
何も知らないで他人に喰ってかかってるだけってね。
PICkit2はOKでPICkit3はNGなのか 使えないものをオススメしちゃう人って・・・
普通に使えるじゃん なんで変な使い方するの? アホなの?
さるかに合戦
データシートの間違いって、どこかにまとめて訂正案内とか出てるのだろうか? 遭遇するたびに悩むので、事前に知っておきたい。
>>80 ありがとう。
でも16F1827の41391D.pdf p205
TABLE 24-2: SUMMARY OF REGISTERS ASSOCIATED WITH CAPTURE
に関係無いレジスタが含まれていることの訂正は無いみたい。
流石に84しか使えないのはホームレス寸前の軽度知的障害者だろ 職業訓練校のレベル? いくら16Fオンリーでもこれはないわw
>>77 IC-Progはハードウェアの設定でプログラマーを選択する際に
PICkit2やPICkit3は対応していないから一覧に出てこなくて選択出来ない。無いものはクリック出来ない。
選択できないから設定すら出来ず、使えるわけもない。
そもそもPICkit2やPICkit3はPICkit2(or3) ProgrammerかMPLAB IDEで使うもの。
わざわざIC-Progなんかで使おうとか考えること自体おかしいし、間違いなんだよ。
何も知らないままおかしなことを言い張っても恥の上塗りで笑われるだけだよお馬鹿さん(笑
エスパーに失敗すると結構恥ずかしいよね
>>80 エラッタに全部載ってれば苦労しないけどね
為になった 書籍やサイト教えて下さい
後閑以外ならなんでも。
後閑の本を片手にPICいじっているとか笑いが止まらないやw こんな信用出来ない開発者に頼みたくない
>>89 他に良さそうなテキストあったら教えてくれー
スルー出来ないあたりがゆとり世代。 平成元年生まれが困っているぞ
>>86 データシートなど。PIC本って読んだことがない。
95 :
774ワット発電中さん :2012/11/24(土) 21:43:35.66 ID:2N1+Rdj8
>>89 「使い方がわかる本」て奴を今読んでます
インストールは終わりましたが
あとは工作しろって作品いくつかあり
作り方書いてますが
やって行けば、いづれ作りたいものが
作れるようになるのでしょうか?
プラモデル作ってる作業的なものは
求めてないのですが
部品も一気に買わないと送料無駄になるし
みなさんどうやって学んでいったのでしょうか?
プラモデル作ってる作業的なものというのは ハンダ付けをしたくないってこと?ケースを作りたくないってこと?
キット組むだけじゃなくて 自分で設計したいってことでしょ。
98 :
774ワット発電中さん :2012/11/24(土) 22:13:54.93 ID:wZ3iThze
>>95 パーツショップ〜ジャンク屋に常習的に出入りし大量のがらくたを買い込む
わかりやすく言えばホムセンの延長で、そこで創作意欲がわいてこなければ終了
たとえば Wii に触発されたクチなら加速度センサのデータシートを取り寄せたり本を買いあさって読みふける
クラス4レーザーもちょっと調べれば意外と簡単に手に入るから、個人輸入くらいできろ
単年度会計で絶望するやつにおすすめはしない
それじゃ大学にさえ行けない
>>95 最初は真似をすることから始めるというのは、できるようになることの第一歩。
これはPICに限らずいえることだよ。
作ってみたら色んなことが分かってくる人もいれば、作ってみたけど何も悟れない人もいる。
また、作ってから、自分で理解しようとするかしないかは人それぞれだから
いずれ作りたいものが作れるようになるかどうかは、人によるね。
要は姿勢だよ。
例えば、PIC16F84を馬鹿にする人としない人でも差が出てくる。
馬鹿にはしないが、遺産相続として16F1827に置き換えちゃう。
>>99 84を馬鹿にはしないけど、今となっては、低機能で高い。
応用の利く人なら、88とか1827に置き換えられる。
1827は結構真剣にデータシート目を通さないと使えない。 慣れで84や877しか使えないなら甘く見ない方がよい
甘くはないが難しくもないよ。面倒ではある。
16F1827のタッチセンサは18uAまでしか流せないからかカウント遅くて いまいちだったのでさっき100uAまで流せるらしい1829買ってきた
しかし変更箇所は決まってるわけだから、84→1827コンバータソフトとか誰か作ってくれると嬉しい。 オレは無理。
>105 新規にソフト作るんじゃないなら、無理に16F1827使うより 素直に16F84A使えばいい。普通に売ってるわけだし
同じもの作っても面白くないでしょ。コピーじゃなくてホビーしたい。
新規で?量産品の話し?
>107 何を想定しているのか理解できないけど ボビーしたいならイチから作れば? ソース流用するにしても初期化とバンク切り替えを 気をつければ動きそうな気もするが
>イチから作れば? 流れ読んでね >初期化とバンク切り替えを気をつければ動きそうな気もするが オレも最初はその程度だと思っていた
メイン関数内 OpenTimer0(TIMER_INT_ON & T0_8BIT & T0_SOURCE_INT & T0_PS_1_1); RCONbits.IPEN = 1; INTCONbits.GIEH = 1; INTCONbits.GIEL = 1; INTCON2bits.TMR0IP = 1; INTCONbits.TMR0IE = 1; OpenTimer1(TIMER_INT_ON & T1_8BIT_RW & T1_SOURCE_INT & T1_PS_1_1 & T1_OSC1EN_OFF & T1_SYNC_EXT_OFF); PIE1bits.TMR1IE = 1; IPR1bits.TMR1IP = 0; ---------ここからメイン関数外----------- #pragma interrupt timer0_isr #pragma code highisr = 0x08 void highisr_direct(void) {_asm goto timer0_isr _endasm} -------------------- #pragma interruptlow timer1_isr #pragma code lowisr = 0x18 void lowisr_direct(void) {_asm goto timer1_isr _endasm} -------------------- タイマー0割りこみを高位割りこみ タイマー1割り込みを低位割りこみとして、上記の記述をしました タイマー1割り込みをタイマー0割り込みと同じ頻度で発生させようと思ったのですが、割り込みの回数にそれ以上の大きな差があります タイマー1のカウント基準時間はタイマー0のカウント基準時間と同じもの・・・ですよね? 何が割りこみの遅さの原因か特定することが出来ず、お力を借りたく思います よろしくお願いします
最終的にはタイマー0の割りこみ回数とタイマー1の割りこみ回数の頻度を8:1にするつもりで、T1_PS_1_8と書く予定であります が、いずれにしてもかなりの差が出てしまうので今回のような記述にしております もうタイマー0割り込みの中で変数をカウントさせて低位割りこみの内容を実行させてしまったほうが手っ取り早いですかね?
割り込みで何が起きると思ってるのか ちょっとタイムラインを書いてみw
114 :
natu :2012/11/26(月) 09:54:19.32 ID:G8rYC9TQ
ご無沙汰
>>111 TMR0は、8ビット。TMR1は、16ビットなので、
そのプログラムだとTMR0割込み回数がTMR1の256倍になるよん
皆シミュレータ使わないの?
シミュレータ使ってからターゲットに持って行く。ただ全部は無理で関数単位でシミュレーション したのを実機投入して全体の流れをデバッグ。 シミュレーションは命令単位は良いのだけど、一部のレジスタがシミュレーションで正しく動作し ないのあるから癖に気をつけてれば大丈夫。
お爺ちゃん! よだれ!よだれ!
PIC16F527 Enhanced Baseline core って何かよさそう。 これの、6pin版出れば良いのにな。
6pin米粒シリーズにもPIC10F322というMid-range coreが既に存在するので Baselineを拡張したものより、良いと思うけど
PIC16F527のデータシート見たが ここから6ピンまで機能削ったらCLC,PWMが入っている10F322にやっぱり負けるね。 SLEEP電流だけは勝てるかも。
122 :
774ワット発電中さん :2012/11/28(水) 00:42:42.18 ID:rZxw/DvS
秋月のPICkit2互換のライターって、内部発振で書き込むとPICが壊れるって言うのは特定のPICだけ?
>>122 現在その情報で正しいのかググり直すといいよ
>>121 価格が10F200並になれば、結構いいかな。
機能的には baseline で十分だけど、タイマー割り込み
使いたい時は結構ある。
*タイマーのオーバーフローフラグだけでも有ればいいんだが。
baselineといえば(個人的には)16F5xシリーズだけど、 何か考えるたびに2ピン足らず、内部発振にしてクロックの足をI/Oにして欲しいと常々思う…
>>125 そこまで裏切られ続けているのに、あくまで16F5x・・・
なんて深い愛なんだ。月9で2クールはいける。
>>122 内部発振だけじゃなくNOMCLRもじゃね?
>>123 今も店の商品ページに書いてるじゃん。
せやな
的確なアドバイスのおかげで想定の動作が得られました 感謝が文字でしか伝えることが出来ないのが残念です ありがとうございます まだまだ若輩者ですが、皆さんと同じレベルに立てるようこれからも精進していきます
酒と肉は禁止な
ゆとり乙
>>123 自分の言ったことを決して取り消さない人は、真理よりおのれを愛する人間である。(ジュベール)
PICスレだと思ったら真理を探求する場所だったとは…
16LF1xxxシリーズ売ってる店って無いのかな
>>134 Digi-Key
microchip DIRECT
PIC16LF877なんかはPIC16F877とは別の低電圧向きのプロセスで作っているわけではなくて PIC16F877と同じプロセスで作ったものを低電圧で動作するか明示的に試験して合格したものなんだよね だからPIC16F877もPIC16LF877としてのポテンシャルを秘めている 16LF1xxxはどうなのかな
そういや、16C84でやっつけチカチカ回路組んで確認して、「よし、おk」と 飯食いに部屋の電気消したら、ほんのりゆっくりチカってたな。 ICSPケーブルか何か経由で電気もらって、超低電力で動いていたっぽい。
>>136 データシート見ればすぐ判ることなんだが、
パワーダウン時に電流が200倍も違うわけで、同じわけがない。
139 :
774ワット発電中さん :2012/12/03(月) 19:42:06.73 ID:EuRCqIVM
データシートの読み方知らないんだなw 電流が200倍違うだけでなんで別物なんだよwww 頭わるwww
"nanoWatt XLP テクノロジ" ってのは選定だけで可能なことなのか。 へー、凄いな。
16(L)F1xxxxシリーズは内部コアが3.3V以下で動作しているようで VDDからLDOレギュレータ経由して内部コアの電源としている。 16LF1xxxシリーズは低電圧専用でLDOレギュレータが省略されている 16F193xのデータシートだとLDO自体がVcapピン有効で30uA,Vcapピン無効で50uA Sleep時でも5uA消費するので、低速やSleepを多用する用途ならLF欲しくなるね。
L付きこそ本道で無印は5Vを捨てられない可哀想な人達用ということか
なんか秋月スレで定電流ダイオードをバカにしてるやつみたいだな
145 :
774ワット発電中さん :2012/12/04(火) 03:59:14.02 ID:CPnvBUBG
>>24 @の個人的な推測だけど…
JDMプログラマーでは電源を確保するのにコンデンサを電源としてみなしているのでは?
つまり、PICの消去→書き込みの時間分は該当コンデンサがそれなりの電荷をキープしておく必要がある
ので、コンデンサの劣化や容量不足によって「消去→書き込み→コンペア」の処理中に電源が落とされる
現象と同じ状況となり「照合に失敗しました」となり得る可能性がある。
症状確認の手としては、現在の症状が発生しているPICのプログラム容量より少ない容量のPICでライター
が正常に動作しているかを確認してみるのも一手で、これで正常動作するようであればコンデンサの容量
抜けの可能性が大となります。
もし、オシロスコープとかを持っているなら、「書き込み→コンペア」中に該当コンデンサの容量(電源部位)
がキープされているかを確認されることをおすすめします。(或いはコンデンサをもう少し大容量にするか)
半導体製造で、同じレシピ過程で 性能優劣の製品が出来上がる事はある だからと言って最低動作電圧や消費電力が劇的にかわる というのは、大昔の話 よく考えてみろ 絶対定格とか、全品判定するのか? 稀に高性能なデバイスが生産出来るならば レシピを徹底解析して、全品高性能デバイスにする 当たり前の事 稀に超高性能デバイスが製造出来るのは、生産過程が安定してないと同じ 大昔の話を真に受けてドヤ顔で披露する
>>146 そうでもない、製造措置作ってたけど最低電圧なんかは結構ロットで変わる。
ディープサブミクロンって言われ出してからのプロセスはハイK絶縁材とかシリコンとかサプライヤのロットによる差も大きいし。
歩留まり良くするために一定の線引きはするけど。あるていどのバラツキは出るもの。
あなたの書き方だとトランジスタのhfeなんかバラツかないことになっちゃうよ。
148 :
774ワット発電中さん :2012/12/04(火) 11:27:33.93 ID:OnJU+57h
絶対定格とは反対方向の話だしな
PICKIT2に着いてた16F690から乗り換えたいのだけれど、 18Fと16F1とどちらがいいんだろ 16F1はPICKIT3を買わないと書き込めなさそうなんだけど、簡易DACとか少し魅力的で使ってみたい
>>149 MPLABでHEX吐いて、PICKITプログラマで焼けば2でOKだよ
それが面倒なら3で
>>150 PICKITプログラマの設定ちゃんと見てなかった。サンクス
16F1買ってくる!
マイザーにもデジキーにも無いからマイクロチップでサンプル頼んだんだけど、105日掛かりますとか出てワロタ。 (というか、105日の間に30日おきに頼んだり出来るんだろうか…) そして、Fを注文するつもりがLF注文しちゃって修正お願いしますメール飛ばしたんだけど、数日経ってもまだまだ修正されなくてワロエナイ。 ところで、送料って代引き?
RS出トロイダルトランス頼もうとしたら納期半年先なんで止めたっけ
>>152 頼むことは出来るだろうが
チップはロットでドサッと出来るから3回分ドサッと届くかと・・w
>>154 1オーダ分の1種3個ぐらいは欲しいけどそんなに要らないww
同じのだけそんなに欲しくないよw
趣味でPICを始め、ほとんど16Fシリーズを使ってるんですが、この16Fシリーズは市販の製品の部品として 使われたりするんでしょうか? それとも私みたいに趣味で遊ぶ人のためのものなんでしょうか?
>>157 今は1種5個だよ。
一回で5種なので、25個頼める。
さらに、30日以内に10回なので、一ヶ月に250個もらおうと思えばもらえる。
老人用だけれどな
PICって何であんな馬鹿みたいに種類多いの?
コア変わっても全部「PIC」だから、ルネサスのH8〜SH4まで全部同じ名前みたいなもんなんじゃあ…
品種の整理をしないから。 テンプレの秋月にある品種だけ見ても、パッとみ上位互換品が 安く入手できるので下位品は不要に見える。 実際は細かい特性等は異なるので、完全に置き換えできる 訳ではないので、どこかのメーカーみたいにバンバン廃品種に されるより古いのも ずっと売ってくれた方がユーザーに取っては メリットが大きいと思うけどね。
テンプレしか見ていなかったオレは12F1501の存在に今日気づいた。 10F322より遥かに強力だな。
多機能すぎるとピンの動作が安定しないやらなんやら。 まあ数世代前の話しだし今どうなってるかは知らないけど。
>165 >多機能すぎるとピンの動作が安定しないやらなんやら。 具体的にどんな不具合があったの? エラッタに載ってる? チップ名と不具合内容書いておけば、あとに続く人の役に立つことも あるし
>>165 機能設定手抜きと初期化手抜きで偶然動いた物を不安定とか言われてもな??
16F88でアナログ出力をOFFにしたいのですが、 bsf STATUS, RP0 ; これでバンク1に切り替えて clrf ANSELH ; アナログ出力をOFFにして bcf STATUS, RP0 ; バンク0に戻す。 これじゃダメですか? symbol not previously defined (ANSELH) になってしまいます・・・
>>168 ぐーぐるさんの翻訳機能だとこんな感じ
「シンボル事前に定義されていない」
参考にしてる情報と使ってるコンパイラ・アセンブラ (≒レジスタのシンボル定義)が異なってないかい
>>168 何も定義していないのなら、16F88のデータシート見てバンク1にANSELHレジスタがあるかどうか確認したほうがいいんじゃない?
そしてそのレジスタは出力に対して有効なのかも調べてみよう。
>>171 16F88のデータシートにて、バンク1にANSELHレジスタがあるのは確認していますが
このレジスタは出力に対して有効なのかというのは
どうやって調べればいいのでしょうか?
アセンブラで16F84から16F88へ移行するにはどう書けばいいのでしょうか?
ググってもC言語でのやり方ばっかりでなかなか分かりません・・・
ADRESH、ADRESL、ANSEL はあるけどANSELHは見当たらんな そこまで分かってるならアドレス値を直接書くかインクルードファイルの中確認汁
>>173 >>ANSEL はあるけどANSELHは見当たらんな
わー!ほんとだ!;
ない!;
だから定義しても関係ないしダメなのか;
どどど、どうやってアナログをOFFにすれば・・・・;
>>174 気づけてよかったね。
何をやりたいのか知らないけど、そもそも16F88にアナログ出力の機能があるのかも調べた方がいい。
データシートの最初のほうだ。
84→88移行はアセンブラならデータシート比較して違うところを直していけばいい。
オレは16F1xxxから使い始めたので古いのは知らない。
PIC16F887とかはA/Dの入力チャンネルが9ch以上あるから ANSEL だけでは足りなくて ANSELHがある PIC16F88はA/Dの入力チャンネルが7chしかないからANSELだけで足りるのでANSELしかない ANSELの各A/Dchに対応するビットはリセット直後には「1」になっている 「1」はそのA/Dchに対応する1bitポートのデジタル入力がその1bitポートから 切り離されていることを意味している 「0」にするのは切り離されていたデジタル入力を対応する1bitポートに 接続してデジタル入力として使えるようにすることを意味している アナログ出力をOFFするという意味ではない
アナログ出力
PICってI/Oピンをオープンドレインに設定できないのが残念だ。 なぜだ?
>>178 いやいや出来る。
LATをL固定でTRISを上げ下げすれば所望の動作になる。
PWM出力とかでやりたいなら無理だが。
>>180 新チップが安い今どき16F88で何かやろうとしてるのは過去の資産をいじくっているんだと思うけど、
一体何がやりたいのかさっぱり判らないのでエラー出なくて動かないと言われてもハイそうですかとしか言えない。
ネットにあるソースを改造してるのならURL晒せば誰かがアドバイスしてくれるかもしれないよ。
>>181 200円ぐらいの物に何をイキッテんだよ。
初心者は、I/Oの初期化が一番むつかしいから、
見本の沢山ある16F88は、ペストチョイスだと思う。
>>182 そのベストチョイスで動かないのはナゼのか的確なアドバイスしてあげてね。
キミならできるハズ。
BASICから入れないのは仕方ない問題。
唐突なその問題提議の真意は?
>>181 やりたいことは16F84Aでできてるのですが
生産中止の16F84Aで動作していたものを16F88にするのが目的なんです。
タイプが似てて移行し易いかなと。
これで出来たら一応他のチップも試してみると思いますが、
チップの性能を上げる意味は実験以外には得にないですね。
プログラムは16F84Aで足りてるので。
で、ネットにあるソースじゃないしあまり見られたくないものなので気軽には揚げられません。
抽象的な質問とご指導でも役に立ってますので感謝です。
基本的には自分で考えてますが、分からない時は質問してしまいます。
ハイそうですかとしか言えないようでしたらそれで仕方ないと思います。
なんかすいません。
628とかでいいんじゃね
>>188 >>普通に売ってるようだけど、生産中止ってのはどこの情報?
普通に売ってるというか、プレミア価格で売ってるという気がしますけど・・・
ここ↓とかです・・・
「PIC16F84Aは既に生産終了となってしまっているため,実はPIC16F88の方が安価で入手可能です.」
http://genine.web.fc2.com/contents/pic/002.html 例えばもし実際にはまだ生産中止じゃないとしても、
「生産中止になっても他のチップへの移行が出来るようになりたい。」とか
「何で今どき16F84Aなんか使ってんの?とか言われないように」という感じの
単なる見栄で、今どきのチップへ移行することも出来るようになっておきたいということです。
その手始めに、まずは16F88からやってみているという次第ですので
まだ生産中止ではないとしても「じゃぁ移行できなくてもいいや」という気にはならないのです・・・
で、16F84Aから16F88へ移行するのにALL BILDもエラーがなくなって
hexファイルが出来てPICへの書き込みも出来てるのに
動作しない(チップを回路に装着していないのと同じ状態)ということは
初心者が見落としがちな設定するところとかがあるのでしょうか?
>>189 なら一気に16F1827に移植すればいいのにというのがオレの意見
ピンコンパチだしね
>187 16F628も16F628AもデフォルトでコンパレーターONのはず ADC無くてもコンパレータではまる
MPLAB X のシミュレータ。 定数の配列(ポインタ含む)を使うと固まるんだが、 設定悪いのかな?それとも仕様? Enhanced mid-range に旨く対応できてないとか? MPLAB X v1.51 XC8 v1.12 PIC16F1827 ex) const char a[]={1,2,3,4,5}; char i=0; char b=a[i]; ← ここで固まる。 printf とか putchr でも固まる アセンブラコードを見ると、FSR0,1 を使って、直接Flashを 読んでるっぽいんだが。
>>172 レジスタの名前通りに定義されてるとは限らないので、
ヘッダーファイル、見て見ては?
>>194 ありがとうございます。
エラーはなくなったのですが、
4ヶ所ほどwarnning!になってまして
全て「E_DATA」という記述が原因のようです。
そんな位置は存在しないとか・・・
あと一歩のようですが、やっぱ初心者には敷居が高いですね・・・
元ソースの意味を解って書き換えをやっているのか?
>>198 今回このチップの移行を試みることによって
少しずつ元ソースの意味が解るようになってきているというのが現状ですが
まだまだ修行中なのでこのザマです。
で、16F84のデータシートに「EEDATA」というレジスタのファイル名があるのに
「E_DATA」と書かれているのが怪しいと思いましたが
16F84Aのデータシートも同じ「EEDATA」なのに「E_DATA」の記述で正常に動作しているので
「E_DATA」という記述自体が原因ではないだろうということと、よく見たらBankとFile Addressが違うので
そのへんの切り替え方を本やネットで調べているのですがイマイチ苦労してます。
どうやら16F84Aで
E_DATA equ 0x1B
と定義しているものを16F88では変更しなければいけないということが解りました。
(このへんが解ってないということが解りました・・・)
「0x1B」というオペランドによる、レジスタファイルの番地が違うから
movwf E_DATA
という命令に対して「Invalid RAM location specified.」というWarnningが付いているのかと・・・
これは、16F88では「0x1B」の部分をどう変更すればいいのでしょうか?
具体的には、16F84Aの「08h」というアドレスが「0x1B」ということであれば、
16F88の「10Ch」というアドレスを指定する為に、オペランドをどう記述すればいいのでしょうか?
それとも、これは、こういう質問の仕方では答えようがないようなことなのでしょうか?
もしくはどこかで何か大きな勘違いをしてると思われますか?
>>199 16F88のメモリマップ見れ
16F88の0x1Bは汎用レジスタじゃない
データシートすら読めないんじゃ配線ミスで石壊しそうだ……
思いきり勘違いしてたので半年ROMってくる……
>>201 PowerUpして戻ってくるのを待ってる
>>199 定義の先頭 16F84A→0x0C 16F88→0x20
とりあえず
>>175 のアドバイスをもう一回読むべきかもしれない
あとは、いきなり既存のソースを流用しようとすると修正箇所が多すぎるから、入力もEEPROMも無しの、最小構成のLEDチカチカに一旦戻って、機能を一つづつ確認していくのも手かと
>>199 > 今回このチップの移行を試みることによって
> 少しずつ元ソースの意味が解るようになってきているというのが現状ですが
おいおいおい。
なんちゅーアプローチだ。
>>203 ありがとうございます。
0x20にしたら「Invalid RAM location specified.」というWarnningが全て消えました。
これでErrorもWarnningも皆無になり、完全なBUILD SUCCEEDEDになりました。
でもウンともスンとも言わず、動作しません・・・
Readして書き込み内容を見れるのでデバイスが壊れてるわけでもなさそうですが。
>>204 そうですね。
私自身も、Lチカに戻って基本からやり直す必要があると思いました。
>>205 まずは理屈よりも実際に動作させることから始めようというアプローチでした。
細かい内容を理解するのは動かしながら確認していきたかったというか。
ある意味、移行はプログラムを全て理解していなくても出来るのではないかと、
本やネットの説明を鵜呑みにして甘くみてました。
素人にも簡単に移行出来るのはLチカ程度の簡単なものだけなんでしょうね。
一から修業して出直します。
みなさんありがとうございました。
データシートが全然読めてないでしょ? プログラムの動きを理解せず移植するにはデータシート読めなきゃ無理。
>>206 PIC上で走るソフトの規模なんて高が知れてるのに・・・。
なんていうか、わかってないけど動けばいいやというのは、
日本の底辺のソフトウェア技術者のレベルの低さの元凶だなー。
おーい、なんか返り値の符号が逆なんだけど、バグってるよー
はーい、直しましたー
おー、やけに速いなー、何が原因だったー
えー、わかりませんよー。
げー、じゃぁどうやって直したんだよー
えー、最後に符号を反転してreturnするようにしましたー
あー、こいつはダメだ
ってなことが本当にあるんだからー。
>>208 その例だと、ダメなのはソフトウェア技術者のレベルじゃなくずさんな指示とチェック体制。
つまり管理者がダメ。
>>207 ありがとうございます。それだと「ハイそうですね。」としか言えません。
一応皆様のご協力のおかげでエラーに対して順番に対処してきて
BUILDでErrorやWarnningが出ないようにはなったのですが、
もしよろしければ、例えば
「移行するのに必要な変更で他に確認すべきところはこれとこれで」とか
「それはデータシートのここを見れば載ってるよ」とかありますでしょうか?
>>209 つまり俺の教育が悪いんだな・・・orz
>>210 横レスだが、
PIC16F84A
と
PIC16F88
の
データシートを端から端まで比較して、
違いをすべてチェックしてみよう。
>>208 まずは動かしてみて、あとは自分で変更出来るところを増やしていったり
何故ここにこういう記述が必要なのかを理解していくのは、アリだと思っています。
それは単に「わかってないけど動けばいいや」というのとは違うと思っています。
動けばいいだけならわざわざ苦労しなくても既に16F84Aで動いていますし
一から修業して出直そうと思ったのも、「わかってないけど動けばいいや」にならない為にという意味です。
>>211 >>データシートを端から端まで比較して、
>>違いをすべてチェックしてみよう。
そういうアドバイスって確かにおっしゃる通りだとは思いますが、
抽象的過ぎて、逆に軽々しく「ハイ、分かりました。」って言えないですよね・・・
見比べてみてはいるのですが。
>>213 "MEMORY ORGANIZATION"
16F84A->16F88への移植で変えるのは コンフィグ、RAM位置、ANSEL、 EEPROMも使うならEECON1 EEDATA等のバンクも変わってるから注意 ぐらいか
>>215 ありがとうございます。助かります。
やはりそのへんの見直しですね。
そういえば
>>199 でも書いたように、確かにEEDATAのバンクが違ってましたが
データシートを見ると16F84AではBank0で、16F88ではBank2になってます。
しかしこれは定義のオペランドを0x20に変更したことで
「Invalid RAM location specified.」というWarnningが消えて直ったように思えるのですが、
これとは別にバンクを指定しないといけなくて、
それはもしバンクが違っていてもエラーは出ないものなのでしょうか?
>それはもしバンクが違っていてもエラーは出ないものなのでしょうか? 小さなプログラムを書いて試してみればいい。 Lチカをやるってのはどこへ行ったのやら・・・
>>212 トップダウン型の学習をするのは構わないし効率も良いんだけど、それはボトムアップ型の学習は必要ないという事ではない
サンプルをいじること(トップダウン)と、データシートを読んだりLEDチカチカすること(ボトムアップ)、両方とも必要
それから、トップダウン型の学習では、容易に動かせるサンプルの存在が前提なので、それを理解する前に移植に挑戦するのは急ぎすぎている
確実に動かせる16F84のサンプルをきちんと理解するか、16F88のサンプルを探すか、16F88の勉強を基礎から始めるか、どれかにしないと
>まずは動かしてみて、あとは自分で変更出来るところを増やしていったり >何故ここにこういう記述が必要なのかを理解していくのは、アリだと思っています。 チェンジニアですなぁ。 それをやっていると、「わけわかんないけど、こうやったら上手くいった」 だらけになるんだよね。 >216みたいに。
Mikro Cって現在の物と4,5年前のバージョンで記述方法に違いなどあるのでしょうか? 数少ない参考図書などのサンプルで現在のバージョンでビルドしようとすると エラーになる物とならない物があるので、部分的に記述方法など違うのかなと思いました。
bankの切り換えが面倒くさいなら、全てのレジスタアクセスの前にbankselを書くといいよ。
PIC18F2550使おうと思うんだが、データシートの DC AND AC CHARACTERISTICS GRAPHS AND TABLES が なんか利用不可っぽいんだが、これどうすればいいの 教えてエロい人
>>221 それオレだw 小さくしたい時だけ動作確認後に削っている。
最初の頃はこんなのまで書いていた。
banksel INTCON
>>221 SDCCだっけ?オブジェクトがそんな感じ
>>223 アセンブラで最適化とかしてくれないのかな?
全部書いておけば、必要な時だけ展開してくれるとか。
>>225 それだったら全部書かなくても済むようにしたほうが…
いっそのことアセンブラではなくCで書いたほうがいいかもしれん。
メモリ消費量が跳ね上がるのは、メモリ容量の大きな型番を使うことで、
動作が遅くなるのは、高速な型番を使うことで、
タイミングをシビアに詰めにくいのは、あきらめるってことで。
PIC16C84からPICを初めた自分だが、いまさらアセンブラで書く気はしない。
>>222 ドキュメントの版数が上がると突如として中身が現われる。
とりあえずmicrochip社のサイトで英語の最新版の版数をチェックしてみて。
>225 無理じゃない。今どこのBANKか記憶できたとしても 他から別BANK状態でGOTOで飛んできた時、対処できない。 そこまで気にするより、アクセスBANK使えてあまり意識せず使えるPIC18か BANKなんか無いPIC24,dsPIC使うとか。16bitPICのアセンブラ使いやすいよ。
>>219 >>「わけわかんないけど、こうやったら上手くいった」
>>だらけになるんだよね。
でもこれから覚えるような人にとって、
最初はそれってものすごく大事なんことだよね。
書籍でも教育現場でもそうやって教えることは多いんだよ。
もしここが職場で、育てる部下を選べるとしたら君より>216氏を選ぶと思う。
だから日本の若い技術者はダメなんだな。
まぁ若いのが基礎できてないからこそ、俺ら老兵がやってけるのであるが。 PICとAVRどっち覚えたほうがいいですかとか言ってるから、俺ら安泰だよ。
8ピン使う場合ってCでの記述は PORT の代わりに TRISIO RAやRB の代わりに GPIO 他に注意点ありますか?
他の注意点は 「そうとは限らない」 です
>>232 TRISA,TRISBの代わりにTRISIO
PORTA,PORTBの代わりにGPIO
RAx,RBxの代わりにGPIOx
でしょ
8ピンでも新しいのはPORTAだったりします
>>230 初心者に質問されて「データシートを全て見ろ」って誤魔化すのは
「ダメな日本の若い技術者」と「知ったかぶりの素人」だけだもんな。
>>236 ちなみにオレもデータシート見ろとよく言うが、書いてあることを確認してから言ってるよ。
調べるプロセスをすっ飛ばして答えだけ与えるのはゆとり教育と同じ。
>236 ココは教育の場じゃないのだから、「一から全部教えて下さい」 なんて質問じゃ「データシート見ろ」や「本読め」と返されてもしょうがない わからないから とりあえず聞いてみようって姿勢だと、傍から見たら 理解する気は無いけど回答教えて と変わらない。それじゃ教える方も 虚しいだけ。
それに、こういう掲示板では、手取り足取り指示するのには向いてないからなー。
>>234 ヘッダーファイル次第でどうにでもなるな。
そうね、コンパチ保つためにエイリアスを宣言とか。 とりあえず、メモリマップ(BANK)の内容(レジスタの意味)をざっと読んでみて、 疑問に思ったところをみてみる。あるいは、アセンブラの例も書いてあったりするから、 使いたいモジュールの項目を熟読してみるのがいいのでは。
>>238 ネット弁慶じいさん
ずっとROMってろ
正論だと思う
244 :
774ワット発電中さん :2012/12/09(日) 01:47:26.36 ID:Q5xZYgMO
やってみせ、言って聞かせて、させてみせ、 ほめてやらねば、人は動かじ。
>>229 > 書籍でも教育現場でもそうやって教えることは多いんだよ。
> もしここが職場で、育てる部下を選べるとしたら君より>216氏を選ぶと思う。
そうかここは俺みたいに文系出身で趣味でやってる人は来ちゃいけないんだな。
毎回、「自分でやってみたのか」、「データをよく見ろ」、と怒られる。自分ではやってるつもりなんだが。
俺が思うには、初心者のくだらない質問にもどんどん答えてやったらいいと思うんだな。 そして、そうゆう質問には脱初心者が答えればいいんだよ。 上級者は答えが出せないような難しそうなtこだけ答えればいいんだよな。 俺みたいな暇を見つけて趣味でやってる人はここは敷居が高すぎる。 2chで一番こわいとこ。 ひょっとして、初心者と上級者をわけるとかもいいと思う。
ipsの山中さんの話を聞くと、理系のエッセンスはどうやら「自分でこつこつ実験する」ってとこにあるみたいだな。 文系は基本的に実験できないから、なんか有効な理論、理屈を知りたがる。そうすると、ここではかまってちゃん とバカにされるんだな。
理系とか文系とか関係なく、質問の内容が漠然として伝わらないからだよ。 ココに書いてある内容しか、他の人には伝わらないんだから 質問者の背景が全くわからず、どの程度理解出来て、どの程度まで知りたいのかさっぱり読めない。 せっかく答えても質問者にとっては見当違いだったり、後出し条件付いたりで、無駄になる事が多い。 それなりの回答を期待するなら、どういう状況か詳しく、何を試したのか、自分はどういう推定を しているか位書いてくれ、熱心さが伝われば煽り的なレスは減るし回答する側もやる気が出るよ。 何書けばいいいかわからない? そんなの関係有りそうな事は全部書け、余分な所は読み飛ばすから 書くのめんどくさい? 自分は最低限の情報と手間で、最高の回答を得ようなんて虫がよすぎるだろ
>>245 何かエラーが出る
何か警告が出る
なぜ出るのか調べるよりも
とりあえず書き換えてみて
出なくなったからヨシヨシ
なんていうタイプの人は根本的に向いてないと思うぞ。
こういうことを言われて初心者に厳しいとか敷居が高いと思うなら絶対的に向いてない。
向いてないのに手を出すのは人生の時間の無駄だ。他の仕事や趣味を見つけたほうがいい。
ちなみに、こういうのは本人の学歴における文系・理系は全く関係ないから。
自分は文系だからとか、初心者だからとか、そういう甘えをする人間には反吐が出る。
出なくなったらヨシヨシ それで問題ないと思う。目的は達成してるし。
> 向いてないのに手を出すのは人生の時間の無駄だ。 う〜ん。。。
>>248 無理して君が答える必要ないよ。
エスパー出来る人やら自分の経験から想像出来るからね。
「AではNGだったけどBに変えたらOK」という場合に なぜAではダメだったのか、その原因を追求した方がよいと思う。 同じようなトラブルにあう可能性が低くなるだろうし、 もしかしたら「そうなのか、知らなかった!」という事があるかもしれない。
説教荒らし発生中
どうしてもAを使わなきゃダメって時に原因追求すればいい。 そうじゃなきゃBを使ってとっとと完成させて、次のことをやるべし。 時は金なり。
わけのわからぬまま、やたらめったら変更しては動作を見る、そんなやり方のほうが時間がかかる。
>252 私が答えられる範囲なんて極一部だけど、今回のはそういう問題じゃないだろ。 内容が足りない質問で答えが出ずに、罵倒やら「データシート読め」になるのが問題なんだろ? 回答者にエスパーや想像を要求するって、質問者は何様のつもりって思われてるのが今の現状。 仮に「PICが動かないのですが、どうしたらいいでしょうか?」なんて質問来たら、あなたはどうするの? スルー?詳細を聞く? 詳細な内容を最初から書いておけば、わかる人がいきなり答えてくれたかもしれないのに、状況確認に 何レスも費やしていたら、ちゃんと読む人も減っていき直前のレスにのみ反応するようになってしまう。 こうなったら質問者も回答者も不幸でしょ。そういう意味で>248を書いたのだけど気に食わなかった?
MikroCで12F683用の簡単なプログラムを書いているのですが、 Line. 16 MessageNO. 365 Message Text. Reentrancy is not allowed: function 'EEPROM_Write' called from two threads Unit. __Lib_EEPROM.c と言うエラーが出てビルド出来なく困っています。 エラーの16行ですが空欄で何も書いていません。 その上の行はPWM関係の記述ですが”;”で終えています。 また16行より上の行でEEPROM_Writeは書いていません。 16行より下では、 unsigned int mode, mode1; と定義した変数を使い mode = EEPROM_Read(0x02); mode1 = mode + 1; EEPROM_Write(0x02,mode1); を使っています。 少ない情報ですがアドバイスなどありましたら御教授願います。 よろしくお願いいたします。
>>258 まずエラーメッセージを読もうよ。
> Message Text. Reentrancy is not allowed: function 'EEPROM_Write' called from two threads
この1文の意味を理解する努力をしようよ。
原因と全然関係ないエラーメッセージだったことあるな
それはレアケースだろう。
>>259 タイマー0で割り込みしていますがinterrupt関数内でも
EEPROM_Write(0x02,mode1); を使っていました。
見直ししてビルドしてみます。
ありがとう御座いました。
>>257 エスパーして当たったときは答える方も少し達成感があって楽しいよ。
細かい問題点が分かっていればここに書くよりも、ググれば解決するしね。
漠然とした問題を想像であれこれ言うのが2ちゃんねるの良い所だと思う。
>264 >漠然とした問題を想像であれこれ言うのが2ちゃんねるの良い所だと思う。 これだと、色々な回答が乱立してどれが正しいのかも確認できないまま レスが増え、正解が埋もれていく結果にならないか? まあそれでもいいんだけどね。回答者は遊び半分だろうし、詳細な情報を出さない 質問者に問題があるんだから。 いい加減な質問には、いい加減な回答しかつかないってことだろうね
質問なんて答えられる人が答えればいいだけの話。 質問が曖昧で答えられないと思ったら無理に答える必要はない。 無理に答えようとすると、逆に完璧な質問だけを求め始めたり 的外れな答え方をしたりしてしまう。
>>266 質問内容を見て答えられると思って答えるとする
で、後から条件出してその答えじゃダメなんだという状況になったら、
そこまでエスパーできなかった回答者が悪いのかね?
そうならないようにするには全ての条件が出た質問のみ答えるってことだよな。
とりあえず議論の内容がいつの間にか罵倒や屁理屈に変わらなければ良いんじゃないかな? 俺としてはのんびりまったり和気あいあいとやりたいなーと思うんだけどね 何度かここの住人さんには助けてもらってるし、殺伐としているのを見てるといたたまれない 故意に間違えた回答さえしなければあとは回答者から得たヒントで質問者が試行錯誤すれば良いだけじゃない? あくまでもアドバイスとして捉えるべきで完璧な答えが欲しいというのはお門違い 長くてごめんね
ま、今後は滅多に回答しないようにするよ。それでいいんだ。
うん。最初から知ったかぶりしなきゃよかったってだけでしょ。
論点がズレたヤツが紛れ込んでいるね
PICってWindows 8は動きますか
Windows8どころか3.1すら動きません
ごしゅじんさま・・・
>>269 まあそんなにすねないで。感謝してるんだから。
ページ跨ぐ配列めんどくせえええ
>>272 それは流石に無理だけど、腕時計Windows(SPOT : Smart Personal Object Technology)の後継になるNET Micro FrameworkならPIC32で動いているみたいよ。
PICって何MIPSくらいなのかな? 昔持ってた9801RAは386DXの20MHzで4MIPSくらいだったな。
おぅ、PICってどのPICやw あと、同じMIPS値でも8bit/16bit/32bitで処理能力は違う。
>アセンブラのアの字もわからない超初心者から これウソだよね。本当に超初心者が質問していいの?おしえて鬼プロフェッショナルさま。
283 :
技術奴隷 :2012/12/11(火) 11:39:59.52 ID:3RBYVgnt
>>272 当然動く。まずはチューリングマシンから勉強するべし。
このスレは基礎がおろそかな奴が多いからレベルが低い。
>>280 CPUコアの処理能力は高いが、いかんせんメモリ少ないしMMU無いし。
I/Oがデータシートにない挙動示すわ なんじゃこりゃ
なんじゃこりゃ、といわれても、どういう挙動なのか判らんので、解らん。
PICだけに
>>277 FSR使えばいいのか。
やりたいことからしたらオーバースペックだけど、この際16F1使ってみるかなあ……
>>284 初代Macは68000 CISC 16bit 8MHz MMU無し, 128kB RAM, 64kB ROM, 800kB FDD。
その点PIC32はRISC 80MHz, 128kB RAM, 512kB ROM + 安価でFDDより高速なSDカード。
25年前のパソコンを再発明するなら十分さw
>>290 組み込み用の、MMU無くても動く Linuxあるしな。
やめたほうがいい。
>>291 uCLinuxは128kB RAMでは動かないよ。
Cortex-M3なら外部メモリ増設で動くけど、PIC32では64Kだけだし。
そこでNET Micro Framework!!
>>290 初代Macを実際に使った上で言ってるのかな・・・。
今度はI/Oがデータシートにない挙動示さないよ なんじゃこりゃ 型番によるなんて・・・
>298 とりあえず、落ち着け。 データシートにない挙動ってなんだよ。人に伝わるように書かなきゃ伝わらないんだよ
>>297 8 bit : 0.25MIPS/MHz
16bit : 0.5MIPS/MHz
32bit : 1.5MIPS/MHz
って事か。
同じハーバードアーキテクチャの8051のセカンドソースには1MIPS/MHzの物があると聞いたが、Microchipは改良する気がない?
俺が知らないだけ?
MIPSといってもさ、ドライストーンMIPSなのか、単に1クロックで何命令を実行するのか、ってのとで話は少し違うのだが。 で、PIC16とバイナリ互換で1クロック1命令のコンパチが他社から出ていて、 秋月で以前にSCENIXのSX18とか売ってたが、今はもう扱いが無いね。
MIPSの話とクロックは関係ないだろ
>300 テンプレの>2-5にだいたい書いてあるけど 10F,12F,16F,18F,dsPIC30F →0.25MIPS/MHz 24F,24H,24E,dsPIC33F,dsPIC33E →0.5MIPS/MHz PIC32 →1MIPS/MHz DMIPS(ドライストーンMIPS)とMIPSは別物です。 改良というけど、MIPS/MHzを向上することに、さほど意味があるとは思えないけど? 処理能力なら周波数を上げればいい。現に新型の16Fや18F,24E,dsPIC33Eは上限周波数向上してる それに異なるCPU間でMIPSを議論しても、あまり意味が無い。 PICで言えばCISCなPIC24,dsPICは1命令で複雑な命令もこなせるけど RISCなPIC32は単純な命令しかなく、さらにPIC10,16,18は基礎的な命令しかもたない。
>>300 回路規模縮小の為、4相clockを使ってるからと思う。
>>301 ドライストーンがPIC32以外で動くと思うの?
誰でも知っている話の解説乙w
10年遅れてる?
>>303 > MIPS/MHzを向上することに、さほど意味があるとは思えないけど?
今はuW/MHzで省電力が競われている時代なんだけどな
>300 MIPS/MHz から uW/MHz って全然別だよね? MIPS/MHzを比較するってことは、皆1MHzで単純命令をどれくらい実行できるかを競う訳だろ そこで、どうして消費電力が出てくるんだ? それとも、どのMCUでも同じ周波数なら消費電力は同じなの?
高性能なCPU使いたいならインテルつかえ MIPS値に走るならそれが一番手っ取り早い
MIPS/MHzは、アーキテクチャで決まってしまって、値なんか1/n(整数)しか取らない。 uW/MHzも結局 上記の値も含まなきゃ処理能力を比較する意味を成さないんだから だったら MIPS/uW とかで比較すればいいんじゃないか
>>300 8bit PICは進化から取り残された生きた化石。
それは諦めるしかない
>>306 あ〜、このスレでそれ言ったらダメ。
PICヲタが騒ぐから。
>>307 キミもちゃんと読めば?
> MIPS/MHzを向上することに、さほど意味があるとは思えない
この
>>303 の偏屈発言が、時代に逆らっているんだよね。
x86はクロックアップが行き詰まってマルチコアに転じた。
GPUは1000個以上のコアを搭載した。
全てはMIPS/MHz向上のため。
周波数アップで誤魔化しは正しいのかな?
文の最初に あーとかんーとかえーとか言ってるやつの 言う事は信用出来ない
313 :
技術奴隷 :2012/12/13(木) 10:05:07.37 ID:Rp9Xqmxv
1000コアの8ピンPIC@消費電力300Wとかあっても全然うれしくない。 何にどのように使うか、使えるかが問題なのであって、他人のソースやHEXを 焼くしか脳が無い奴は時代にもみくちゃにされて引きこもるのがせいぜいなんだろうな。
>>313 タスクに一個ずつにCPUコアを割り当てるなら8個ぐらいがうれしい。
そんなワンチップマイコンもあるよ。P8X32A 。
これは、ビデオ信号のスーパーインポーズ用だけど汎用マイコンとしても使える。
今の使い勝手・性能ぐらいでいいわ
学習リモコンがエアコンを学習しないので、赤外線のパターンを解析して、 PICで再現しようと思ったけど、リモコンをコピーしても意味がないことに気付く
317 :
技術奴隷 :2012/12/13(木) 12:22:20.38 ID:Rp9Xqmxv
>>314 プロペラも使った事あるけど、数コアで十分な時にも8個分のダイ面積食ってるし、9個欲しい時に
1コアだけ処理の仕方を変えなきゃいけないのは美しくない。
それならコアの部分を1個にして、その分メモリを増やすなり速度を8倍早くするなりしてくれた方が遥にいい。
タスクスイッチをもう少し工夫して欲しいとこだが、PICのシンプルさをもってすれば、今のプロセスでも数GHz行けるだろう。
Wレジスタの8bitPICがGHzになっても実質0.1GHzだからうれしくない
>>317 GHz級ならプロセスルールが小さくなって耐ノイズ、耐放射線のメリットが無くなる。
8bitPICは、回路規模を小さくするアーキテクチャなので放射線に影響されにくい0.4um程度の太線で作られている。
コーディングが面倒でもノイズに強い。
320 :
技術奴隷 :2012/12/13(木) 13:19:42.88 ID:Rp9Xqmxv
>>318 GHzなら、今のクロックのざっと100倍だから色々べんりだと思うけどな。
まあ、他人のコードを焼くだけの奴にはなんのメリットも無いかも試練が。
>>319 ノイズで誤動作する事が問題でCPUが作れないなら、今のパソコンなんて存在しない。
最先端の工場を使うのは金が掛かるから、コストの厳しいマイコンは古いプロセスで作られてるだけ。
>>316 既製品のリモコンには出来ないことを、やってみようぜ。
たとえばLAN経由で操作できるとか、さ。
>>319 パソコンの電源回路と、PICの電源回路では要求されるスペックが違うぞ。
帰宅する30分前に携帯からエアコンの電源を入れる、とかはやりたいな
>>320 何でもnmの最新プロセスが良いとは限らないと思う。
ワンチップマイコンは、モーターの傍で動かしたりするのでパソコンと
比べれないと思うけどなー。
それに、動力の傍でサージや電磁波を完璧に無くすのは大変だし、
PICの制御用途でそんな速度要らないと思う。
「筑波大学ネットワーク衛星「結」プロジェクト」
これまで、放射線に対して強いことが実験や実績を通して知られていることから、
PICマイコンが小型人工衛星には多く使われてきましたが、この数年の間に、放射
線に対して強いと考えられている、FRAM(Ferroelectric RAM 強誘電RAM) を使った
マイコンが開発・販売されるようになりました。
こうした新しいデバイスが宇宙空間で安定に使用できることを実証することを目指
します。超小型人工衛星においてFRAMマイコンを使用するのは初めての試みですので、
万が一の動作不良が起きても他のミッションに影響が出ないよう、PICマイコンと切り
替えて使う工夫をしています。
H8/3048も放射線とノイズの永久破壊に強い
>>325 PICでもイーサネットのMAC内蔵したのあるじゃないか。
>>326 そりゃ知ってるけど、LANに繋いでも無理といか大変。
毎日メール出してたら金かかって仕方ないので廃案
GHzで動いても、やることはLEDの点滅程度だろ?
うっUART通信とかあるやろ
>>329 最近の初心者はキャラクタ型液晶まではすぐに行く。
8ピンPICのhexファイルからアセンブラに戻すのは簡単? 1.3KBくらいなんだけど、どういうプログラムなのか知りたくて
それは簡単 でも読めるかどうかは別
脳みそのクロックあげないと
>>332 Cとかの高級言語で書かれていたら逆アセンブルしてもライブラリcallだらけで、わけ分からなくて読みにくいんじゃなかな
理解できる頭では無さそうなのでやめときます。 ありがとう。
>>329 Lチカはやるけどさ。
GHzでPWM調光したら、なんか変なことができるかもしれない。
PICが1GHzになったら、多くの周辺機能がソフトウェア実装で済みそうだが、意味あるのか・・・
1GHzならもうMS-DOS程度のOS乗っけて画面つけてキーボードあれば色々と捗るのだろうな。書き込み器要らなくなるし。
さあ、ここで書き込み器が登場
書き込み機もマイクロ波でワイヤレス書き込みできるようになる!?
>>340 MS-DOSといえば、PIC16Fでも1GHzあればバスプロトコルを含めて8086のエミュレーションくらい余裕か???
>>340 >>343 メモリが無いから逆立ちしても無理。
メモリがあっても、10MHz相当だろうなw
たまげた
347 :
技術奴隷 :2012/12/14(金) 12:54:28.43 ID:IeMNoiFB
エアコンの電源を外から制御できるような製品はPSEに引っかかるんだよな そんな時に自作のメリットがある
残念ながらPSEに全く関係ないです。 むしろマイコン(というか外部機器)でしか制御できなくするとエアコン本体まで適応外になるかも。
>>346 同じく、たまげた。
8bitAVRでARMv5TEのエムュレーターを作ってその中でLinuxが動いているそうな。
ARMの速度は6.4kHZ
>>349 パナソニックが外出先からスマホでコントロールできるエアコンを発売間際にon機能削除。
監督官庁との協議により、PSE適応しない事を、確認。
とちろん専用リモコン付属。
typoは、脳内修正してくださいませ。
「要するに、家電の遠隔制御は家電の一部機能だと規制対象になるが、別売りのシステムだと規制対象ではない、という説明だ。」 ってことらしいですよ 規制緩和で一部機能でもOKになる日は近いんでしょう
ダッチワイフの局部だけ別売りするのと似た話やな
静電気がパチパチしてヤバイ季節
>>345 >>350 > ARMの速度は6.4kHZ
8bit AVRは1MIPS/MHz、20MHzで動いているのかな。
もし1GHz 8bit PICがあったとして、俺の計算だと同じ事をすると80kHzって答えになったw
そういう馬鹿らしいようなことを必死にやってみるという奴がなかなか いないよなぁ。 Z80で68000エミュレータ作って遊んでいた時のことをふと思い出した。
電子ブロック工房さんがPIC32(PIC32MX150F128B) 1chipで NTSC出力のMZ-80K互換機を作成中だね。 そこで動くBASICインタプリタまで作成し、VectorにもMZ-80K用 として登録されてる。VectorにMZ-80K用のソフトが登録されている なんて、驚きだよ。
3分計るだけのラーメンタイマーを安く作るには、どのへんのPICでできますか?
PIC10F200-I/P
pic12f610が好きだったのにもう秋月で扱ってないんだな きっと今はpic12f615あたりがお勧めなんだろう 使ったことないけど pic10f322が気になる なんだこれ。安い上に面白そうだ
10F200はクロックが4MHz固定ですか。うーん・・・
10F322って安いのにやたら多機能ですね。これにしようかな。
安く作るというのに10円の差は関係無いですか、そうですか
>>363 贅沢な奴ぅ〜w
ラーメンタイマーならなんでも良くて、「安く作る」なら値段だけ。
Digi-Key価格だけど、好きな奴をどんぞ
53円 PIC10F200-I/P
58円 PIC10F202-I/P
62円 PIC10F206-I/P
69円 PIC10F222-I/P
69円 PIC10LF320-I/P
69円 PIC10F320-I/P
74円 PIC10LF322-I/P
76円 PIC12F508-I/P
82円 PIC12F509-I/P
89円 PIC12F510-I/P
89円 PIC12F1501-I/P
92円 PIC16F505-I/P
94円 PIC12F609-I/P
98円 PIC12F615-I/P
103円 PIC16F526-I/P
秋月よりだいぶ高いねデジキー
>>364 12F1822 は、秋月で80円だけどタッチセンサーが4ch入っているからsw代が節約できる。
いったい何万個作る気でいるんだよ 液晶ディスプレイと電池とケースとマグネットまで付いて百均で売ってるのものだぞ タップリ時間かけてすごいもの作れ
10F322ならチャルメラ鳴るソースを公開してる人がいるね
>>370 安くと、いわないとarduinoとかを勧める輩が出てくるからじゃないの?
普通、Lチカの次に作るのはキッチンタイマーだろうからキッチンタイマーが欲しい訳ではないと思う!?
圧電スピーカーを鳴らす、タイマー割込み、Swチャタ取り、とかでハードルが、だいぶ上がるね
PICのタッチセンサー機能って、使うの簡単?
ADCとタイマーとでは、どちらが低コストに実装できるかと言えば、タイマーだろう。
タイマーっていうか、カウンターだもんな クロック込みだと判らないけど、ADCもクロックを使うから同じことか
PSoCのタッチセンサより苦労した…、ま、最初の着眼点が悪かっただけなんだけど。
PICの場合、使いたい方式(CVD、CSM、CTMU)の動作原理をちゃんと理解するのが大事だね。
mTouch云々の資料やライブラリより
>>374 のアプリケーションノートとかデータシートで原理を理解して
自分で実装するのが結局近道。
>>377 mTouchのdevelopersキットでパラメーターを決めて、
ライブラーをほぼそのまま使って簡単に実装できたよ。
タッチセンサーはMΩクラスの高抵抗1個追加するだけで実現できる
どうやって・・・
IO - R - GND と繋いでおいて、一旦Hに出力する それを入力で読むとしばらくHが持続するので、その時間を計る 触ると時間が短くなる
それPICでは無理っぽい気がする
ポートに、C成分と、H/Lの境界レベルの保証がある必要が? それより、静電気でポート壊しそう。
>>379 出来るのと安定して運用できるのとは次元が違うだろう。
素直にmTouch使っとけよな、何か不満あるの?
平均化とかもハードウェアなのでCPUのsleepを長くできて節電になるよ。
385 :
774ワット発電中さん :2012/12/15(土) 18:12:56.08 ID:3LytgJtc
>>384 mTouchってハードでやってるの?
高入力抵抗にしたADポートを時間計ってるだけだと思ってた。
>>385 高入力抵抗にしたADポートを時間計ってるんじゃないってことは
オレレベルの人間がデータシート眺めただけですぐ解ったよ
387 :
774ワット発電中さん :2012/12/15(土) 18:32:48.69 ID:3LytgJtc
>>386 こないだの展示会でmicroChipの人間にそう聞いたんだけど、あなたがそういうのならそうなのかもね。
高抵抗入力にした入力で、CRの積分回路を形成しておいて、 弛張発振回路を作って、出力周波数を計測している。 でも、結局A/D方式と同じことで、センシング用の端子の インピーダンスが高くなるから、周囲の影響も受けやすいし、 ノイズやら、経年変化にも弱いんだよね。 PSoCのCapSenseが楽だったのはそのあたりにも配慮した方式 になってるからということもあるだろうな。
CVDはADのSample and Holdコンデンサに溜めた電荷をセンサPadに転送して、ADで電圧測る CSMは発振回路を形成して定時間の発振回数をカウンタで数える CTMUは定電流源でセンサPadを定時間充電しADで電圧測る と理解してます
>>387 展示会の人が言ったことを正しく理解できてないだけだと思うよ
392 :
774ワット発電中さん :2012/12/15(土) 19:35:04.23 ID:3LytgJtc
>>391 結局、Adで読むことは同じで、CPUがやってるんだろ。
ハードウェアがやってるとどこに書いてある?。
>>389 ノイズや経年変化はソフトウェアで対処するってことなのかな。
ソフトでやると遅いし誤差大きいしと思うんだがな。 しかも容量式ではなく抵抗式だとノイズの影響受けまくり。 やっぱ可能なのと使い物になるかは別に考えないと。 あと、AD電圧計るって書いてあるのは普通に考えて コンパレータだと思うぞ。 シュレッシュホールド設定できるようにすれば 初期値設定するだけでソフトは最小限の負荷で済む。
>>393 ソフトも関与しないといけないけど、こういうCR積分回路方式で
抵抗値固定だと対応できる範囲が狭いから、ソフトウェアチューニング
できる範囲も限られてくるのよね。。
使ったこと無いのでイマイチ動作のイメージが沸かない・・・ 12F1822何個かあるから試してみようかな
実際にやってみるのが一番だわね
あまり理解できてない状態でデータシート読みながら記載のあるレジスタを設定していたら、 あれ・・・ CPSCON0 と CPSCON1 の二つだけ? 要するに、静電容量の変化に合わせて出力周波数を変化させてあげるから、 あとはテキトーなタイマーとかで測って好きに判断してよ ということのようだ。 電極に触ったらどこかのフラグが立ってくれるのかと思っていたら、アセンブラじゃかなり面倒っぽい。 ブレボ組みで閾値とか決めてもケースに組んだら変わるんだろうね。 こりゃ必要に迫られるまで使う気になれないので終了。
>要するに、静電容量の変化に合わせて出力周波数を変化させてあげるから、 >あとはテキトーなタイマーとかで測って好きに判断してよ 正解です。ハードは大したことしてくれませんw あとはソフトで頑張るのです >ブレボ組みで閾値とか決めてもケースに組んだら変わるんだろうね。 ええ、もちろんです センサ面積や間隔、配線長、絶縁体の種類や厚み、手の乾燥具合、などなど様々な要因で変わります
パラメータはEEPROMに保存するようにして、 押した時と離した時をティーチングできるモードを作るのがいいと思う
1つ重要な機能、特許ライセンスがチップに付随してる、ってことを忘れちゃいかん。
でもADCも高抵抗も使ってないことははっきりした。 コンパレーター2個とSRラッチというハードを使ってることも。
冬にエレベータの行き先階ボタンを押そうとしたときにパチッとくる静電気。 こういうような電気ストレスにも耐える設計なのかねぇ
閾値自体を変動させる必要があるのかな? 電源入れてしばらく予めOFFのときの平均値を計って、 ・何倍以上ならON、 ・何倍以下ならOFF、平均値更新 ・間なら前回のを保持 たしかにアセンブラじゃ面倒かも
>>359 高評価、どうも有り難う。
>>367 今のところ、1 MHzぐらい。もうちょっとがんばって、何とか2 Mまで上げたい。
>>409 オリジナル? それともfMSXとかがベース?
>>410 ROMはもらってきたけど、コードはすべてオリジナル。
>>412 お〜、すごい。
気が向いたらfMSXとか、QUASI88とかのZ80エミュと差し替えて遊んでくれ。
開発魂に火がつくか、な〜んだで済むか…
>>414 情報thanks。ちょっと見てみた。分岐にswitch使っているらしいんだが、あれは
PIC-C32に向かない。もしかしたら速度が上がるかもと少し期待したが、ちょっと駄目っぽい。
70 MIPSのPIC24EP256GP202なら何とかなるかも知れないと思っているところ。
以前、MPLABを入れてPCを再起動させたところ、 ブルースクリーンで立ち上がらなくなった経験があります。 最近のは問題ないのかな? 久々にPICで遊んでみようと思いまして。
>>416 MPLAB X はJAVAベースで動いているっぽいので、
ブルースクリーンはなさそう。重いけど。
>>417 ありがとうございます。
重いのは我慢して、とりあえずMPLAB Xをインストールしてみます。
419 :
774ワット発電中さん :2012/12/16(日) 18:16:59.14 ID:HzVrTpUR
Javaベースだからブルースクリーンにならない保証はないと思うけど Windowsだけでなく、Macなど他のプラットフォームにも対応したという MPLAB Xの方向性は評価できると思う
>>419 確か10年くらい前だったかと思います。
>>420 ダウンロードページを見たら、MacやLinuxにも対応していて驚きました、、、
>415 やっぱり32bit以上の演算無いとPIC32は同MIPS値のPIC24&dsPICに劣りますか? MIPSの命令セット見てもピンとこない、なんか16bit以下の演算のみだと PIC24の倍ぐらいのMIPS値ないと性能出ないような気がする。
>>421 そうなんでございます。
若干スレチだけど、Javaである必要はないけど、Atmel Studioも
マルチプラットフォームに対応してくれるといいのになぁと個人的に思っております。。
出来るだけたくさんのエンドユーザーを取り込むということは、何かを広めようと
するときに重要なポイントの一つ
同じAVRマイコンを使ってるArduinoもIDEはマルチプラットフォーム対応だし、
今後のAtmelさんにも期待したいっすね
そんなことで動くのかね
>>422 フラッシュメモリ節約のためにTHUMBにしたら、さらに実行速度が低下するぜー
pickit3なんですがMPLAB Xでいじってたら program to go pickit3っての実行してから PC側で反応しなくなり、インジケータで 十秒位全点灯、 その後アクティブが点滅する様になりました。 PC側でデバッガーが無いと表示されて 一切の書き込みが出来なくなりました。 ここから復帰させるにはどうしたらいいでしょうか?
>>415 Bochsは1/10位の速度みたいだから、PIC32では5MHz位を勝手に期待してる。
俺のPCもPICの環境入れるとブルースクリーン出るようになる。 MPLAB IDE v8.84 mikroC PRO ver5.56 PICkit 2 Programmer 2.6.1.00 書き込み器は秋月のPICkit2互換のもの。 ブルースクリーンの原因はWinows7の管理のイベントビューアで確認するとKernel-Power 41と言うエラーとのこと。 VAIOノートだけどPIC使い始めて初めてKernel-Power 41がでて、 PICは他のPCでやって、VAIOは工場出荷状態へリカバリーして使ってれば 2ヶ月ほど毎日使ってもエラー出ない。 PC2台も不便だなと思って、上記のソフトやハードを使用し始めるとまたKernel-Power 41がでる。 3回ほどリカバリーしながら、1個ずつインストールして試したけど上のどれかが原因か解らなかった。
430 :
774ワット発電中さん :2012/12/16(日) 21:07:41.99 ID:HzVrTpUR
>>429 うちも同じような環境だけど、レッツノート2台とデスクトップ1台で大丈夫だな。
XPの32bitだからかな。
PIC16F1xxx で高速&16bit PWM対応とか、USB対応とか出てきたな。 18Fの存在感が薄くなってきたような。 メモリ容量は18Fが上だけど、その位の規模になってきたら 24Fが視野に入るし。
KP41病か どっかのスレでいろいろ書いてあったな
>>405 静電気は電圧は高いけどエネルギーは小さいからきちんと
保護回路入れておけば良いけど、そもそも放電しないように
上に保護カバーをかけてしまうのがいい。
でも、mTouchの方式だと保護カバーかけると検出しにくくなりそう。
空気って誘電率が低いから保護カバーとタッチセンサパッドの間の
隙間も問題になってくるのよね。
電池とPICとピエゾスピーカだけでラーメンタイマーできないかな スイッチ無しでピエゾで衝撃検出とか 検出と発音が同じポートでできるか分からないけど
ピエゾの状態監視にタイマ駆動というかスリープからの復帰を繰り返すことになるか。 スリープを長くしてピエゾの監視を疎かにすると起動レスポンスが悪化して、 スリープを短くすると電池がもたないはず。 百均で売ってる万歩計の振動センサ部分を使ってスリープ解除とかどう? 既存のSOCはパターンカットで殺して、振動センサと、ケースとバッテリホルダとして使用。 LCD外してやればピエゾサウンダも収納できるはず。
PICに内蔵されてる温度センサーを使うのはどうだろう。 蓋を押える器具を兼ねてさ、PICチップに熱が伝わるようにして。
設定温度を超えたらフラグが立ってWakeUpできたら素敵だな
>>422 私は18F→32MXと来たので、16bitはまだ使ったことがないけれど、そんな印象です。
関数内でちょっと複雑な処理を行うと、前後にlwとかmfc0とか、2クロック使う
命令がたくさん入るので、そこがネック。特に、割り込みでこれをされると厳しい感じ。
割り込み入ると自動的に32bitに戻るから、 ふつうISRは32bitで書くんじゃね? 関数あるいはソースファイル単位で16bitと32bitを指定して混在できるはず
>>434 cdc位なら余裕じゃない?と1454のTSSOPを待てなくて、正月用に1455SSOP注文しちゃった。
>>437 pinの変化割り込み(or sleep復帰)がうまく使えれば、
いけそうだな・
>>442 16Fに対応した USB Frameworkって出てないよね
全部自力でUSBのコード書くの?
AVRでやった人はいるけどPICではいないな
>>437 百均で万歩計を買う、ついでにキッチンタイマーも買ってくるといいよね。
12f683で、LED点滅させながらビープ音的な音を発する方法って、割り込み使うしかないのでしょうか?
>>447 圧電ブザーつないどけ。
それが嫌ならPWM。
>>447 タイマー使えば勝手にビープ音出しておける。
でも、LED点滅させるなら、割り込み使う方がスマート。
音階を鳴らすならまだしも、単音ならONするだけで音がする何かを使う方が 楽だし安いし合理的
>>443 PIC ラーメンタイマーで普通にググったら出てきた。
10F322だったからピン変化で起こすんだろう。
WDTで時々スリープから起きてチェックしてはスリープに戻る・・・で、どれくらい電気を食うんだろうな。
WDTで時々起きなくても、状態変化で起きるようだ。 PIC10(L)F320/322日本語データシートから抜粋 7.1 スリープからの復帰 以下のイベントのいずれかによってスリープから復帰できます。 1. MCLR ピンへの外部リセット入力( 有効な場合) 2. BOR リセット( 有効な場合) 3. POR リセット 4. ウォッチドッグ タイマ( 有効な場合) 5. 全ての外部割り込み 6. スリープ中も動作可能な周辺機能による割り込み レジスタ6-1: INTCON: 割り込み制御レジスタ bit 3 IOCIE: 状態変化割り込みイネーブルビット
デジタル入力ならエッジでwake-upできるんだけど、アナログ入力をコンパレータで云々でwake-upは無理だったような
コンパレータのついた12F683で見ると REGISTER 2-4: PIE1: PERIPHERAL INTERRUPT ENABLE REGISTER 1 bit 3 CMIE: Comparator Interrupt Enable bit 1 = Enables the Comparator 1 interrupt 0 = Disables the Comparator 1 interrupt ってのがあるからコンパレータで起きるんじゃないかな。やったことないけど。
うぉ、まじで。 俺も試してみる。
なんで出来ないと思い込んでたんだーー。すげー損した。 わざわざsleepするときにデジタル入力にして閾値しっかり通過するように変な工夫してたのが馬鹿みたいだ。
だが型番によってコンパレータ自体が電流食うので注意 12F683だと3V駆動で60uAも食う(英語データシートp169参照)
圧電サウンダだけでラーメンタイマーの入出力やっちゃったのって、これ以上簡単にはならないだろうね。
>>460 それは、普通のコンパレータじゃないの?
12F683もULPWU(Ultra Low-Power Wake-Up)モジュールの
専用コンパレーターが入っているので
200nA
See Application Note AN879,
“Using the Microchip Ultra
Low-Power Wake-up Module”
(DS00879)
>>461 カップ麺の上に置いたらタイマー自動スタート。
12F1822等には内部に温度センサーが入っているのでソフトだけで実現出来るよ
お湯こぼして壊れたりして
>>463 カップの上に置いたときの温度差で発電し、その電力で動いたらいいな
時間のばらつきはありそうだけど
>>462 ほんとだ、コンパレータは専用か。気づかなかった。
>>463 完成したら教えて!
スタートのタイムラグと待機時の消費電流が気になる。
>>467 高級な測定器を使わずにnAまで測る方法ない?
>>463 3分経過したことを、どうやって伝えるんだよ。
471 :
sage :2012/12/18(火) 19:26:48.43 ID:HDrmH031
>>471 途中飛ばし(最後は地味)たけど動くんだね。
473 :
774ワット発電中さん :2012/12/18(火) 20:27:01.40 ID:RTasebfk
>>469 適当な導線をピンに接続しておけ。
ポートに矩形波を出せばラジオにノイズが乗る。
リレーを駆動して、ブレーカーを落とせば気付く筈
475 :
技術奴隷 :2012/12/18(火) 20:55:22.46 ID:RTasebfk
もしラジヲを準備出来ないなら銅線を口に含んでおけ。時間がくれば感電する。
>>473 1ピン使うならLEDでもいいじゃないか。
ビープ音で簡単な曲を鳴らすのに 12Fシリーズ2個の出力使って左右で違う音(微妙に音階ずらして擬似ステレオ)出す場合 人が聞き分けれないμ秒単位で左右交互に出力するしかないのかな?
音階ずらすとステレオになるの?
3分用4分用5分用と3個作るのか
>>478 それっぽくするだけです。
同時2出力の方法が解決できないんです。
>>468 1MΩに200nA流れれば電圧降下は200mV
100kΩに200nA流れれば電圧降下は20mV
マイコンの電源ラインにこの程度の抵抗を直列に挿入して
電圧降下を測定すれば電流値がわかる
テスタを直接当てても測定できるかもだけど
入力バイアス電流がnAレベルよりも十分に小さいpAレベル以下である、
FET入力オペアンプかLMC662とかのCMOSのオペアンプでバッファリング
すればより確実だろう
>>482 通常動作中は電流測定用抵抗を導線でバイパスしておいて
スリープ状態になったらバイパスを外して測定する工夫も必要か
>>482 > 電圧降下を測定すれば電流値がわかる
信号源のインビーダンスが低ければ測れないよ。
> FET入力オペアンプかLMC662
入力オフセットが1mVもあるオペアンプ持ってきて何する気?
おまえ、素人だな?
何いってるんだこの人は
いつもの引っ掻き回す人じゃない?
>>481 12FのPICが2個あってそれぞれから違う音を出し、一個のスピーカーを鳴らすと仮定すると、
PICの出力をスピーカーの+と-にそれぞれつなぎ、PICのGNDを共通にすればおk。
ごめん意味わかんない
493 :
468 :2012/12/19(水) 01:26:01.64 ID:Ylb9l3oC
電流測定ありがとうございます。 高速でsleepを繰り返すソフトならコンデンサーを入れると平均電流として測定できる?
そのとおり人がわからないμ秒単位で交互というか同時に制御するしかないんじゃないか? 最小公倍数で割り込みかけるのもややこしいし、ループをぶんまわして、 その時のクロック%λ が、1/2λ以上であればHIGH,未満であればLOW、 鳴らしたい音の長さを超えたらbreakみたいな。
>>489 スミマセン。言葉足らずでした。
PIC1個でスピーカー2個で、2つの音を同時出力したいと言う事です。
PWMが1個しかないので2つの周波数を同時に出せないっていう悩みなのか。 片方はPWMで、もう片方はソフトウェアでタイマー監視してやる、っていうのはどうよ。
PICに似合った解決方法は、もう1個PICチップを使う、かもしれない。 とはいえPIC12Fで1個増やすと8ピン×2になるから、 PWM2を2系統持つ18ピンのPIC16F1827あたりにしても同じか。
>>497 usecと、いっているのでI/O出力を順にすると数命令ズレるから数マイクロ分の波形(位相)がズレる懸念じゃないの?
それは、左右の状態をまとめてから1命令で出力すれば良いと思う。
それよか、音程を変えるときに非同期に変化させて切り替わり目の波形を切ってしまうとパルス状のノイズが出るから気を付けないと!
まー、どちらもオシロで観察すれば見える程度
あっ・・・PWMだとメロディーに必要な周波数の精度が得られないような。 ってことは、NCOモジュールを使うのか・・・NCO持ってるのはPIC10F322しか知らないわ。
>>496 まず周期的にオーバーフローするように一定数をループで足してやる
これを2組でも4組でも用意して最上位ビットを足して出力すれば和音で聞こえる
>>496 1つはTMR2で直。
もうひとつはTMR0を割り込み使って、インターバルタイマー作る。
503 :
774ワット発電中さん :2012/12/19(水) 07:57:51.66 ID:YPxqYo2Z
504 :
sage :2012/12/20(木) 14:29:40.78 ID:tvpmyq6m
神様、アイディアをお願いします。 PIC12F1822を使って2ビットの入力信号から2ビットの出力信号を高速に処理したいと考えています。 クロックは内蔵の32MHz。 まず、PORTAから2ビットの入力信号を読む。 その内容と過去のDATAで、ある演算をして、結果をWレジスタに入れる。 BRWで分岐する。 分岐先ではBSF,BCFなどでLATAを変化させる。 最初に戻る。 以上を最短で処理したいのですが、普通に考えると入力はPORTAで出力はLATAのため、 どうしてもバンク切り替えが二か所入ってしまいます。 この2か所の時間(250nsec)を削りたいのですが、なにか名案ないでしょうか?
505 :
504 :2012/12/20(木) 14:39:02.99 ID:tvpmyq6m
#まちがえてageてしまった。 要するにBANK2固定のまま、PORTAの入力を読めないかなぁー というお願いです。
他で使って無いならINDF、FSRを使えばまるっと解決 FSR0Hを0,FSR0Lを0x0CにしてINDF0を読めばバンクに関係なくPORTAが読める
データシートによるとPORTAに書き込むことはLATAに書き込むことと同じだと書いてある バンク切り替え為しにPORTAに書き込めば済む話しでは?
PORTAへの書き込みは、ビット操作でやると副作用があったような。
>BANK2固定のまま、PORTAの入力を読めないかなぁー 読めない。なぜならPORTAはBANK0だから。
>>507 データシートのポート回路図だとWrite LATxとWrite PORTxのクロックは同じ線だね
昔のPICは出力ポートを出力端子経由でしか読めなかったから副作用もあったけどこんな苦労も無かった
511 :
504 :2012/12/20(木) 16:52:51.80 ID:tvpmyq6m
>>506 おぉぉ!神様ありがとうございました。
>>507 出力に容量負荷が接続される可能性があり、32MHzで駆動しているのに
そんなことしたらまともに動きません。
512 :
504 :2012/12/20(木) 16:58:19.00 ID:tvpmyq6m
また説明不足になっちゃった。 まともに動かないのはBSF,BCFを使うからね。 クロック4MHzあたりならNOPを挟むか他命令を挟めば何とかなるけど。 ところで506さん。何か御馳走させていただきたい気分です。 これで他社製品と圧倒的な差別化ができます。
既に正解が出ていたのにその意味すら判らかったオレ。 データシート見てなるほどなと思った。
read-modify-writeによる動作の違いだね
WDTの使い方がいまいち解らないのですが、 どういった時にどの様な目的で使うのでしょうか? 実際の回路ではどういう場面で使うものでしょうか?
ある程度の信頼性が求められる処理内でWDTをクリアする処理を 入れておけば、万が一その処理が行われない状態になったら、 マイコンがリセットされて、難を逃れられる 的な感じっすw
うわ! 10F200って割り込みついてないのか タイマー0はただ回ってるだけでフラグも無いのか なんてこった!
>>517 せめて、オーバーフローフラグは欲しいよね。
---
Enchanced Baseline 版のが出ないかな。
ボタン電池で駆動するのに10F322だとsleep電流けっこうあるから10F200に移植しようと買ったのに。 オレには無理だ。 35円損した。
>>519 12Fならいいかと思ってデータシート眺めたら、12F5XXまではオーバーフローフラグ無いんだね。
最低でも12F6xxまで上げないとオレには使いこなせないみたいだ。
LFタイプも扱って欲しいな秋月で。
>>521 16F でも Baseline のは、割り込み無し。(16F5x とか)
-----
ただ、最近 Enhanced Baseline と言うのができた。
・割り込み対応でレジスタ退避も自動
・スタックが4レベルに増加
・レジスタのバンク切り替えが楽になった
16Fで2kw以上のプログラムって、2kwまでとそれ以降で処理を分断させる感じにすればいいのかな? タイマーとかメインループを前半にして、そこから取りに行く関数を後半に、って
>>523 Mid-range 以上なら、特に考える必要ない。
気にする必要あるのは、定数テーブル作る時位だけど、
256単位で配置するようにすれば良いだけだし。
Baseline は CALL と PCL 書き換えジャンプが、各ページの
前半にしか飛べないので、やりくり必要。
>>524 や、もっと基本的な話で。
PCLATHを使ってCALLしなきゃならない位置に処理の一部を置かなきゃならないとしたら、
どんなものを優先して2kwの壁の向こう側に置くのかな、と
速度的なことや手間などを考えると、 ・初期化コードの本体 ・処理時間が長い関数(たとえば乗算や剰余算など) ・使用頻度の低い関数 ・コードが長ったらしい関数 とかだなー。
割り込み使うならエントリアドレスも決まってるからその辺も考慮して
>>526 >>527 サンクス。初期化は全部割り込みの直後に置いてたけど移してみようかな。
初電子工作で、PCLATHのこと考えずに作り始めたから不安だったけど
なんとか予定通りのものが作れそうで満足してる
>>525 どこに置いたとしても、PCLATHは設定しなきゃいけないから
同じだと思う。いつも0である保証はないし。
---
Enhanced Mid-range なら 1命令で Wレジスタ壊さずに
PCLATH 設定出来るから、だいぶ楽になる。
530 :
774ワット発電中さん :2012/12/22(土) 05:15:32.56 ID:4At56Wij
チカチカ程度で そんな難しい事考えなくてもいいよ 今日もチカチカ 明日もチカチカ 毎日チカチカ チカチカ、チカチカ プリプリ、プリプリ ブーブ、ブーブ
PICのデータシート膨大すぎるので必要なとこだけ切り取って整理したいんだけど ロックがかかってるみたいでてバラバラにできなかった。なんかいい方法ないかね。 とりあえずはフリーのPDFソフトかたっぱしからトライしてみたけどだめだったな。 有料版ならできるんだろうか?
ページ数をひかえる
>>532 それもやったけど、結構めんどうで手間がかかる。メモを忘れるし。
なるほど、ちなみにPDFはPDF Creatorがはかどるぞ。
ぷりもPDFに渡すとエラー出てダメだった
印刷禁止ロックとか、パスワードロックなんてものは、所詮PDFビューワがやってるだけだからなぁ。 そこまで機能を作り込んでないフリーのPDFビューワで、何事もなく印刷できたりする。
>538 その手の奴は目次などの作り込みも適当でな…
PICで解除汁!
英語のデーターシートは、コピペ出来るのに日本語版はロックされている。 ちょっとメモを取るのに不便だよなー
>>541 Gmailに送ってWebから閲覧、表示をHTML表示に切り替えてコピペ
PDFならEPSに変換出来る、 pdftopsつう名前だったかな? 逆も行けるし、ロックがかかっててもこれでばらせるはず。 おれはこれでPDFからドローデータを取り出せた。 ただコマンドラインだから面倒だけど
htmlで十分なのにな なんでわざわざadobeに囲い込まれたがるんだ
html よりは TeX の方が..
546 :
774ワット発電中さん :2012/12/23(日) 15:58:21.66 ID:HBA3qIHL
で、何だかんだ言って 仕事で使われる文章ファイルNO.1は エクセル最強伝説 ジジイからバカ女までエクセル使い セルロックしましたから、、、
Excelで作ったデータソシートとか悪夢だろw
たまにはエクセルも表計算とかしたいと思うだろうに
549 :
774ワット発電中さん :2012/12/23(日) 19:04:39.86 ID:bCeNxCLg
たまにexcelで計算した生のやつを渡すと、 !とかバッテンとかばっかりですとか言われるからな
excelのVBAでPICと通信するだろうに
エクセルのワークシートにマイコンとかのデータシートPDFをページ単位で画像コピペして 図形機能で注釈つけたりして整理する
PDFにすでに注釈や図形をコメントとして入れる機能があるんだが
エクセルでやってはだめという法律でもあるの?
そんな法律あるわけないだろ、あほなの?
セルの書式で文字列と指定してるのに、数字を文字として入れると!が いちいち付いてうざいんだよ。
PIC版エクセルキボン
>>556 Multiplan レベルのは動きそうな気がする。
ちょっと聞きたいんだけど・・・ 古い回路のリストアしてるんだけど、そいつに16F57が使われてました。 別に入手困難じゃないし、価格も安価だから問題ないんですが、如何せんでかいんで問題がでてます。 このタイプの表面実装はでてないと思うんで、違う石に変える必要があると思いますが、プログラム自体設計が古い故作った人も分からないので、hexファイルしかのこってません。 この場合、1からプログラムし直さなきゃ不可能でしょうか?
>>559 その後ググってみたら、RSでもSPDIPも一個118円だった。
実装タイプも買えるようだから、microchipの海外通販を利用しなくてもいけそうです。
情報あんがと。
他にも、安価に入手出来るところあったら、教えていただけると助かります。
PICの2桁型番の古いのは長期にわたって供給されてきたが、 いまの3桁や4桁も同じくらい長期にわたって供給されるのかなー。 品種が急激に増えてるから無理っぽいような・・・。
>>563 別の675に替えてみればいいじゃない
1個しかないなんてことないよね?
IC内の回路が壊れることもあるが、正常かどうか確認するのは面倒だから、捨てて新品に交換するのが安上がり。 まぁでも壊れた可能性よりも、あなたのコーディングが間違っている可能性のほうが、高いんじゃないかなー。 とりあえずさ、自分の目の前で動いた実績のあるコードを走らせてみて、動くか確かめてみたらどうよ。
同じhpのLチカサンプルを試せばいい
ポートが1個だけ死ぬのはまれによくある
>>563 典型的なエスパー募集のお知らせですね。
「PICが駄目になってしまった」以外にいろいろな可能性がありえます。
・ハードウエアのミス
・配線ミス(電源つないでないなど)
・極性ミス(LEDが逆接続など)
・抵抗などの定数ミス(電流制限抵抗が2桁大きいなど)
・ソフトウエアのミス
・コピペ失敗
・そもそもウエブページのコードが間違ってる
・コンパイラが壊れてる
・ライタが壊れてる
・PCが壊れてる
ほかにもありえると思います。
デバックっていうのは面倒くさいですが「ここまでは絶対大丈夫」という
のを地道に積み重ねていく作業だと思います。
電源スイッチ入れ忘れてたりして コンセント抜けてるとか
SWのチャタリングで多重割り込みが起こり暴走しているんじゃないのかな? 電源OFFONから何回か試しての運が良ければ動く
根本的な問題としてmikroC使ってないと予想
PIC勉強中ですが、正確な1秒を作ろうとしています PICのクロックとTMR0のクロックソース(T0CKI(GP2))は、同じ水晶発信器から取り出しても問題ありませんか? 回答して頂けると有難いです><
574 :
573 :2012/12/24(月) 14:37:08.19 ID:RoKXV71X
忘れました。 PICは12F683です><
_
576 :
573 :2012/12/24(月) 14:47:24.88 ID:RoKXV71X
え?まじですかー! ぢゃあ、12F683のTMR0のクロックソースはPICの外部クロックと同期させられないんですかー? 回答して頂けると有難いです><
>573 問題は無いだろうけど。 外部クロックでPICを動作させるなら、TMR0のクロックソースを同じ外部クロック に設定してI/O消費するより、内部クロック(この場合外部クロックの1/4)でも よいのでは? 精度は同じだし。1/4になるのがダメなら仕方がないけど。
578 :
573 :2012/12/24(月) 14:54:33.75 ID:RoKXV71X
>>577 さん!
レス有難うです><
>TMR0のクロックソースを・・・内部クロック(この場合外部クロックの1/4)
↑
これはどこのレジスタで設定すればいいのでしょうか?
何度もすみません><
>>576 正確な1秒作ろうとすると、32.768kHzの時計用の水晶使うのが一般的と思う。
発振回路(OSC1,OSC2)はTimer1用のclockに使って、動作用のは内蔵の8MHz
オシレータ使うのが無難。
Timer1で時計作るのは、サンプルコードが色々ある。
580 :
577 :2012/12/24(月) 15:12:27.06 ID:64iVSj3u
>578 TMR0なら OPTION_REGにT0CS(Timer0 Clock Source Select bit)がある。 詳しくはデータシートのTimer0 Moduleの欄を見てみて それとさっき適当なこと書いた、ごめん。外部クロックと同じクロックをT0CKに 入れるのはプレスケーラを使わないとダメだった。 TT0H,TT0L,TT0Pに規定があって、クロック値によるけどプレスケーラを1:8以上 に設定しないと使えない
581 :
573 :2012/12/24(月) 15:16:31.05 ID:RoKXV71X
>>579 さん!
>>580 さん!
最高でイカすレスさんきゅーです!
ちょっとやってみます!
またよろしくです!><
12F675と12F629はA/D変換が有るか無いかだけで、 A/D変換を使わない場合はC言語でのプログラム上は、 ANSELの記述に気を付けるだけでよいのでしょうか? その他に、プログラム上で気をつける差違はあるでしょうか?
回答してもまたスルーなのかな?
>>582 ANSELはそのポートをデジタルで使うかアナログで使うかの切り替え。
ビットが立ってるとGPxを読んでも0になる。
端子によっては、GPxに書き込んでも、出力が出なくなる。
AD使わないなら、レジスタ設定でOFFにしておくほう安全かな?
設定しなければOFF状態のはずだけど。
なんでデフォルトはアナログなんだろうな
>>584 > 設定しなければOFF状態のはずだけど。
設定しなければONのはずです。
端子の入出力設定のリセット時の優先順位は
1) アナログ入力
2) デジタル入力
3) デジタル出力
が基本。
もし、入力として使うはずの端子がリセット時に出力に設定されていると
バスの衝突が起こってしまうので、優先順位は入力>出力。
また、デジタル入力に(しきい値前後をすばやく変動する可能性のある)
アナログ信号を印加するのも好ましくないのでアナログ入力>デジタル入力。
似たような理由で、内蔵プルアップもデフォルトでONが基本だった気がします。
ANSELってANALOGSELECTORの略なんだろう。 UNIXのコマンドでもそうだけど 英単語を変に短縮されると日本人には意味が把握しづらくなるから 止めて欲しいよな。
AVRの場合はデフォで「デジタル(入力が切り離されていない)」だから 入力がデジタルの場合は問題ないけど 入力がアナログの場合は 中途半端な入力電圧でデジタル入力回路による消費電流が増加していても a/dとかコンパレーターとかのアナログ入力回路の動作には支障ないから その問題にユーザーが気づかないままになるおそれがある その点PICの方式は安全
>>589 AVRはシュミット入力だからコンパレータが電力消費するだけで別に害は無いよ
>>587 OPTIONレジスタのビット7がリセットで1だからPUはOFFが基本だと思う。
そういや昔のPICは1ポートだけシュミットトリガ入力になってたりしたなー。
>>590 害があるからAVRの場合はDIDR(Digital Input Disable Register)が用意されているわけでしょ
でもスレ違いだからあなたの勝ちでいいよ
>>591 本当だ、勘違いしてたみたい。
ありがとう。
PIC32とdsPICのEPって、どっちがつおいの?
597 :
774ワット発電中さん :2012/12/25(火) 11:21:37.58 ID:h3JpWmX8
仕事でdsPICと18KのUSB使いたいけど、開発環境にかけられる予算が5万円くらい。 納期は2週間くらいでなんとかなると思うけど、たぶんメンテ考えると2ヶ月から3ヶ月の フリー版試用期間では終わらない。 cコンパイラは何を買えばいいかご意見いただけませんか? 今は16Fではccs-cのPCW使っています。
仮想環境にインスコするとか
599 :
774ワット発電中さん :2012/12/25(火) 12:33:04.32 ID:h3JpWmX8
>>598 それも考えたんですが、評価ならともかく、という感じでした。
デバッガとかが不安定でちょっと厳しいかな。
そうそうPCWでなくてPCMでした。ごめんなさい。
600 :
774ワット発電中さん :2012/12/25(火) 12:48:50.91 ID:lWYOpKEx
アセンブラで書けば何の問題も無い。 どうしてもCで書きたい所だけフリーのCで書けば良い。
アセンブラも使ってますが、cコンパイラの相談してるのにアセンブラ使えというのは、 さすがに厨な回答ですね。 よくみるパターンではありますが、ありがとうございました。
>>600 おっと、言葉足らずでした。
あなたのいうところのフリーのCで、お勧めを教えてください。理由もね。
>>602 今後のためにぜひ会社名を教えてください。
仕事で使うものを2ちゃんで聞くような奴はさっさと 別世界に転職してくれたほうが、皆が幸せになれるだろうな。
>>597 あれっ今はフリー版は試用期間とか期間制限ないんじゃないの?
インストールする時に、pro版あるいはstandard版の試用か、free版か聞かれる。
まぁfree版だと最適化が利かないちゅーか嫌がらせ的にコード肥大化されるんで、
USBを実装しようにもフラッシュの容量が足りないってことになったりするかもだが。
いまmicrochipのサイトで確認したが > Free version includes a 60-day PRO evaluation that can be started at any time in the software. > No time or memory restrictions > Unrestricted use?ideal for a low-cost academic or commercial solution って書いてあるよ。
607 :
774ワット発電中さん :2012/12/25(火) 14:46:39.90 ID:lWYOpKEx
>>601 お勧めのC:好きなの使え
理由:お前の実力なら何を使っても大差ないし、問題が起こっても自分で解決出来そうに無いから此処にまたゴミレスが増えるだけだろう。その時に「此処で聞いたんだけど‥・」とか、理由を与えないため。
そもそもコンパイラの代金もペイ出来ないような仕事ならしなくて良いだろ。
実力も無いのに無理してUSBに手を出す様な背伸びすると周りが迷惑を被る。
ま、おかげで俺みたいな自営に仕事が回ってくる訳で、どんどんいい加減な事をして
自滅してくれるのは、それはそれで嬉しいがw
ちなみにアセンブラで書けと言ったのは、俺がやってるから。
USBの部分をアセンブラで書くと、かなりのCPUリソースを削れるから、Cの余裕が出来るし
USB部分のバグにも気がつくだろうから、仕事でやるなら十分メリットがある。
ちょうど、不適切な書き込みが上司に見つかって、メンバーから外されて泣いている頃かと。
>>607 まともにcの評価もしてないしアドバイスもできないのもみえみえなのに、偉そうに。
お前は一生PICでアセンブラ使って威張ってろ。
2chのPIC使いに聞いた自分が馬鹿だった、というのは皆さんおっしゃるとおりでした。
参考になったレス頂いた皆さんありがとうございました。
>>609 亀レスだけどMikro Cでどう?
理由:安い上に使い安い。ライブラリ豊富。
自営なんて、最後は尻尾を巻いて逃げるだけと思うのは俺だけだろうか?
>>609 XC はフリーモードでも、それ程は酷くない感じだけど。
見た感じ、大量生産するわけでは無さそうだから、
Flashのデカイの使えば良いのでは。
みんなCやめてアセンブラにしない?むかしはほとんどアセンブラだったよね。最近Cばっかりでイヤ。
Cなんてものがあるからみんな喧嘩してしまうんや
アセンブラの方がフットワークがいいとか、限界性能がとか言うならわかるが、 ついてこれないから叩くってどうよ。
インラインなら判るけど、全部アセンブラで書くのは時間の無駄遣いでしかない
ん千個作るわけじゃないから今時PIC使う理由もない。
618 :
774ワット発電中さん :2012/12/25(火) 21:36:07.54 ID:lWYOpKEx
>>615 USBの機能ブロックなんて定形で済む事が多いのだから、1/10のコードサイズで処理速度10倍のアセンブラで書いておいて、メインの処理(Cでもアセンブラでも)にリンクするだけの方が圧倒的に良い。
ま、LEDの点滅位しかしないならUSB以外のプログラム領域が少なくても気にならないんだろうけど。
>>616 数行しかないならまだしも、ある程度複雑なUSBの部分をインラインで書くなんて、ド素人の戯言w
>>617 他のマイコンより入手しやすい上に安価だから、必要性能を満たしてるなら他を選ぶ理由は無い。
>>613 いまのPICに使えるアセンブラって、かなり強力なマクロ機能があったりするの?
>>618 > 1/10のコードサイズで処理速度10倍のアセンブラ
マジカヨ
そこまで差はないだろう。
>>618 さすがですね。今後ともDsPICとか32Fで、FFTとかの処理をアセンブラで書いてくださいね。
キャッシュや分岐予測のあるマルチコアなCPUもぜひゴリゴリゴリっとよろしくです。
622 :
774ワット発電中さん :2012/12/25(火) 22:02:25.78 ID:lWYOpKEx
>>620 やってみれば分かる。
>>621 DSPICでFFTならアセンブラ必須だろうに。流石にCしか使えない奴は違うなw
そもそもFFTなんて簡単なプログラム、なんでCにしなきゃいかんの?バカなのw
386+コプロをアセンブラで叩いてFFT動かしてましたが何か?
初心者なんですが、皆さんは一体どのような物を作っているのですか? 作りたいという意欲はあるのですが、作る物の事を何も考えていませんでした。何か初心者が作るのに最適な物を教えていただけるとありがたいです。
ラーメンタイマーかな
PIC16C84の頃はアセンブラで書いてたし、クリティカルな部分はクロック数えたりもしてた。 でも今はPIC16F1827でCで書いて特に不満はない。むしろ、簡単になって楽だと思う。
>>623 初心者なら、
PICを使って何か作りたい
というのではなく
これを作るのに適切なものを選んだらPICだった
というアプローチで考えたほうがいいよ。
そうでないと、PICしか使えない人になってしまう。
>>622 高級言語のほうが簡単で設計品質もコードも一定の水準に見込みやすいし、
工数予測も立てやすいからだよ。
アセンブラでやれなんて、外注にも出せやしないし、ドキュメント管理も面倒くさくていやだ。
泥臭いバグだらけのコードがばれなくていいかもしれないし、一人自営の囲い込みには
いいかもしれないけどね。
秋月の4ケタ7SEGにタクトスイッチでマルチ機能タイマーとか?
>>624 >>626 >>628 皆さんありがとうございます。タイマー関係を作るのが良いみたいですね。アセンブリでやっているので1命令の時間などを計算したりする事が勉強になると思うので頑張ってみます。
アセンブラで書く理由が単なる速度アップなら、速いプロセッサを使えばいいだけ そうじゃなくて、クリティカルな処理が必要な部分が出てきた時に、 そこだけアセンブラで書けばいい アセンブラは特殊技能でも裏技でもない
アセンブラにこだわる奴って馬鹿だろ。 自己満足で要求仕様ギリギリのCPUでアセンブラ使ってバグと仕様変更で泣けば良い
>>631 こだわっちゃってすいません。
取り敢えずPICを使ってみたいと思って買った本がアセンブリ言語で記述をしていたので…
C言語はこれから覚えていこうと思っております。
別にどーでもいいわ。使いたいものを使え。
C言語を習得するならPICではなく、普通にWindowsやLinuxのほうがいいよ。 ある程度つかえるようになってからでないと、ワンチップマイコンのデバッグ環境では辛いだろうから。
>>632 Cですら使えないくせに、アセンブラで真っ当なの作れる?w
ID:lWYOpKEx たかがアセンブラでドヤ顔するローテク/老害ヲタ
どう考えても見当違いの回答してるのに、それ指摘されて切れてる流れは笑えるな
>>636 速度計測器やトランジスタを使っての簡単な回路切り替え位ならアセンブリで作りましたよ?
c言語ってアセンブリ言語よりも簡単なんですか?
ちなみにさ、Cを使うにしてもアセンブラは必須スキルだと思うよ。 といってもアセンブラで書く必要はなく、コンパライの出力を読めれば十分なことが多い。
ここの住人子供っぽい人が多い。ちょっと気に入らないとすぐヘソをまげてからんでくる。 理系の人の特徴なのかな。
文系はいないと思うw
>>639 簡単w
むしろ何が難しいかと。
まさかのポインタとか?
むしろソフト屋は最近では文系のテリトリーだけどな。 あくまでハード屋という事か。
まだ続ける気なのかな
>>643 c言語には何も手を付けて無いのでポインタが何なのかも分かりません。
何故か頭の中でc言語は難しいと思っていたみたいです。
アセンブリ言語が理解できているとc言語も理解しやすいですか?
いつも思うんだけど。 仕事で納期やコスト重視な人と趣味で自分の満足行くように作る人とでは 方向性が全く違う。話も全く噛み合わない ただ私は趣味でやってる人の話の方がとても参考になるし面白いと思う。 仕事の人の話は最終的に、コストや工数、"外注に出す"や”俺の部下だったら" と当人以外にはどうでもいいことで話を終わらせてしまい参考になるところが ほとんど無いんだよね。まあそれ以前に仕事の話を2chでするってどうなの って問題があるけど。
>>644 鳩山さん自衛隊の指揮権は総理大臣にあるってことを知らなかった。東大の理系って教育どうなってんだろう。
理系の人ってそうゆう関係の本とか全然読まないで一生過ごすわけなの?
>>646 例えば、A/Dを入力して8個の移動平均をシリアルで出力し続けるプログラムをアセンプラで何分でコーディングとデバッグできる?
完成後に仕様変更! ADのバッファを10個にしてその中の最小値と最大値は捨てて8個で平均に!
何分で修正出来る?
専用C言語なら全部で10分
>648 極端な例を上げて、さも皆がそうであるように書き込むのはおかしいよ。
>>649 そこは嫌がらせで7個とか9個にしとこうぜw
>>648 理系の人間も普通にニュースも見ますが何か?
画面といえば家でもオシロやスペアナしか無いとでもお思いか?
すみません。PICでLチカ程度しかできない素人です・・・ PICを仕事で使う人は、どういった分野で使うんでしょうか? あくまでも趣味とか電子工作くらいのレベルのマイコンだと思っていました(汗
なんかカオス
655 :
774ワット発電中さん :2012/12/26(水) 00:13:17.08 ID:49G9A/LO
C言語とアセンブラ話題はスレが活発化するけど アセンブラ擁護派は自慢話で終わるのがパターン化してる 使いたい方使えば良いだけだろ それよりツッコム所は 仕事で使い金を客から取る場合は USB機器の場合ベンダーIDが必要になるはずだけど 開発環境予算5万円でどうすんの?
>>650 たしかにそう。でも政治家をめざしてる人なんだよな。でなくても大卒の常識なんじゃないのかね。
管さんという東工大の人もいたし。受験に社会のない私立理系ってもっとひどいかも。
麻生さんは漢字が読めなくてつっこまれたけど、常識はあった。
>>648 そんなの文系・理系、関係ない話だろう。
>>646 ですが、アセンブリ言語を理解しているとc言語を勉強する時に理解しやすいでしょうか?
>>649 仕事だとコーディングよりもテストやドキュメントに要する時間のほうが長いかもしれんぞ。
>>655 ベンダーIDは客が用意するに一票。
>649 こういうのが面白く無い典型。仕事なら最優先されるべきだろうけど 2chでそんな事書いても虚しくないか? 最速や最短のコードなら面白そうだけど、10分で作ったコードじゃ 他人が見ても面白くもなんとも無い。
>>658 アセンブリ言語っちゅーか、CPUの仕組みや命令セットを知らないと、C言語も分からないと思う。
>>657 大統領を数多く輩出しているフランスの東大、エコール・ド・ポリテクは理系らしい。
だから鳩山さんにちょっと期待したわけなんだけど、贈与税も知らなかったというおばかさんだった。
理系のみならず文系においても、そういうのは学校で習うことじゃないだろ。 一般常識を学校で教わるってのは、よほどの底辺だぜ。
>>658 しやすい
ポインタの概念については、アセンブラを使ってるなら既に分かっているはずなので、用語と文法の問題でしかない
PICの使い方に関して違いは無いけど、ライブラリが用意されてる場合は中身を知らなくてもそれなりに動かせてしまう
多少覚えることはあるけど、ずっと楽に目的を達成できる
自分で運転しなきゃいけないけど技術と道路の知識次第で速さを極められる乗用車と、路線をある程度把握してればあとは楽なバスの違いみたいなものか? ちょっと言い過ぎかも
どっちでもいいけど、目的が無いと面白くないし続かないと思う
書いた通りに動かない、コンパイラのバグだ って言わないためにもアセンブラの知識はあったほうがいい コンパイラの出力を読めば、すぐに自分のC言語の仕様の理解不足に気が付く。 とくに組込系はvolatileに注意だ。
>>663 そうか鳩山さんは底辺だったかもね。金はあったけど。
学習が目的なら、もっと素性のいいアーキテクチャーの方がいいような CASLだと情報処理も取れてお得
>>655 1万代以下の生産ならmicrochipに申請すれば無料でVIDを分けてくれる。
>>653 > PICを仕事で使う人は、どういった分野で使うんでしょうか?
字のまんま、PICとして使う。
・ACとDCの切り替え制御
・LCDのバワーシーケンス生成
・ビーブ音生成
・メインMPUからの指示で7segをLチカ
・モーター制御
・データ送受信のバッファ
・検査治具
ちょっと簡単な制御を基板の片隅に入れたいときに、重宝するチップさ、PICは。
>>661 >>664 ありがとうございます。c言語でプログラム出来るように頑張って行きたいです。
目的はまたタイマーを作り終えた時に考えます。ありがとうございました。
>>667 CASL知らないけど情報処理の1種と2種は取れたぞ。
それは単に別の石のアセンブラを知っていただけなのでは
そうだよ。
つまんない
ミッドレンジのアセンブラだとポインタの理解の助けになるかどうか。 INDFすら積極的に使われていない気がするからなぁ。
>>646 ポインターの概念は、むしろアセンブラやってた方が理解しやすいと思う。
高級言語になる程、変数のアドレスが何処とか低レベルな事は隠蔽される。
C言語はどちらかというと、アセンブラを便利にした物というのが近い。
ハードも直接叩けるし。
>>669 PICを仕事で使う?
一点物の治具とか?
毎度エラッタは多いし、マイクロチップ自体がアレで量産品には使いたくないw
どれだけ底辺なんだw
PICが趣味だけの需要で成り立ってるとでも思ってるのか。
>>661 命令セット知らないとCで書けない?
どれだけ役に立たないコンパイラなんだw
まさかハードに関連する組み込み関数が、全くないオモチャのコンパイラ?
笑った。
>>678 わざわざPICを選ぶ必要がないだけ。
中小零細だと開発費が無くて、趣味に毛が生えた程度のツールしか買えないとか?
>>677 > 毎度エラッタは多いし、マイクロチップ自体がアレ
.アハハハ
それでも量産品に使いたがる輩が多いんだな、何故かw
少ビンで安いチップは限られるから仕方ない。
>>681 安くて小さくて機能限定、これほど需要にマッチするものはなかなか… ねぇ。
論理回路ですむようなことでも、PIC1個のほうが安いし。
GALやPALより楽だし。
世界で60億個売れたPICを小馬鹿にする奴って、、、キモイ
あとコスト面の話でいえば NEC(いまはルネサス)の78k0とか、サポート無しなら開発環境タダだったし、デバッガも推奨サード品どころか純正すらクソ安かったな。 新マイコンは「使ってもらえることが前提」だからだろうけど、あれは驚いた。 そういう意味では逆にPICのほうが辛いんかな? もう使われまくってるから…
ATMELに少し食われつつはあるものの、8bit市場ではこれ以上大幅な 成長は望めそうにないから、dsPICとかPIC24とかPIC32とか出して きてるのだと思う
687 :
774ワット発電中さん :2012/12/26(水) 10:11:38.07 ID:j8wt+7Gq
>>627 コンパイラも買えずにフリーソフトを2chで聞くような仕事しか出来ない会社の社員が
なんの工数予測するんだよwww
だいたいコンパイラも買えない会社がコンプライアンステストなんてクリア出来るのかよ。バカも休み々言えw
設計品質の心配するより会社の品質と自分の品質を上げる努力をしろ。
>>629 自分で何が欲しいか、何が作りたいかを探すのが先決。本当に欲しい物なら努力もするだろうし。
それが無いならwebを徘徊すれば、PICなら幾らでも作例はあるから、どれでも好きなのを選んで作れば良い。
webにあまり作例が無い物として、単3電池1本の懐中電灯を作ったけど実用的で便利。
ニッケル水素で3WのLEDを点灯出来た。
>>647 納期やコスト重視だから話がかみ合わないのでは無くて、仕事とか言いつつレベルが低すぎて
話がかみ合ってない事が多い様に思う。初心者相手ならみんな話を合わせられるけど
知ったかなのにレベル低かったらバカにされてあたりまえ。
>>649 Cしか知らない奴は全体を見渡す能力が欠片も無いから、AD結果にノイズが乗っててもそれが
自分のレベルが低い為だという事に気がつかず、少ない知識をフル動員して移動平均をかけて
1/10の速度でしか動かないような鈍臭いプログラムしか書けない。
しかもCでしか組めないので、せっかくDSPIC使っておきながら全然意味が無いwww
>>651 流石、Cしか出来ない奴の鏡だなwww
アセンブラで書こうがCで書こうが、結果よければ全てよし 過程に意味はないんだ 結果が全て
アセンブラとアセンブリ言語の区別が付いていない人が見受けられる。
>>680 軍需品にも使ったよ
まだやってるのか おまえら仕事しろw
>>689 おれのこと言ってんだろうね。ごめんね、間違ったよ
692 :
774ワット発電中さん :2012/12/26(水) 11:14:27.18 ID:j8wt+7Gq
>>688 結果よければ云々なんて言ってるCしか使えない奴のプログラムは滅茶苦茶な事が多い。
確かに限定された条件では動く事もあるかもしれないが、ちょっとした環境の変化や時間の経過で
壊れたり動かなかったり暴走したりする。
シンドラーみたいにw
環境の変化はまあさておいて、 長時間ぶんまわしてスタックがどんどん積まれていくとかいう暴走ならまあもっとマトモなコーディングしろって話だが 具体的に「壊れたり動かなかったり」する要因って何?
何もできない奴ほど文句と理想は一人前
なんか決めつけが激しいようだけど、まあ、CだとMCU内部のことを わかってなくても出来たりするという意味では、アセンブリ言語を 使える人の方が、中身までよく知っている人は多いというのは 言えるだろうね
やりたいことができれば それでいい
まだアセンブラしかやってないんだけど、Cだとどれくらい楽になるんだろ アセンブラで十分翻訳できるレベルのことしかしてないから試してないんだよね 配列のページ跨ぎとか気にしなくていいのはよさそうだな 32bit変数の整理もやってくれそうだし
698 :
技術奴隷 :2012/12/26(水) 12:42:14.29 ID:j8wt+7Gq
>>693 初期設定とか異常処理の出来てないHブリッジなんかありそうだ。
あと、昔、ナナオのディスプレイでもあったが、EEPROMをRAMと勘違いしてるCしか出来ないプログラマとかw
>>698 前者は、商売なら耐久試験とか状態試験はするだろうから落とせるし、まあ趣味ならそれでいいな。
後者は、勘違いしてりゃアセンブラできようがCしか出来なかろうが、EEP書き潰すんじゃなかろか?
まあ「動けばいい」で組んだらそうなるだろうけど、Cしか出来ないと、の関連がやっぱり見えない。
EEPROMについての知識があるかどうかは、Cしか出来ないかどうかには関係ないね 仮にアセンブラしか出来なくても、EEPROMつぶすことは出来ちゃうしね ROM/RAMの限られた低スペックマイコンの実力を最大限引き出すという意味においては アセンブラでのプログラミングが特に威力を発揮するね 時々、こんなマイコンでここまでやってしまうのはアセンブラならではだなと関心したりする 作例を目にするし 一方、Cでのプログラミングは、より機能面にリソースを集中できたり、PCプログラミング 経験者にも開発の入口を広げているという意味の貢献はあると思う ライブラリを活用しやすい点も有利 最近のマイコンはROM/RAM、スピードともに向上してきているし どっちがどうというのはない 変なプログラムを書いちゃうのは、個人の技量があるかないかだけだと思うな ※何か邪魔くさいので、アセンブリ言語のことをアセンブラと表記してますw
10F200とかはCで書きたくないな
>>702 そうだね。適材適所というか、向き不向きがあるよね、それぞれ。
普通の書き方されたCを効率よく実行できるチップじゃないことを理解してるなら問題ない
>>704 そうね、そこは注意が必要だね
さっきちょっとかいたPCプログラマも参入しやすいという点が、ある意味
弊害を生んでいるのかもしれない
PCプログラミングをするように組み込み系プログラミングすると、いろいろと
悩ましいソースが出来上がったりするからね。
Cを使うことがどうこうというよりは、組み込み系のプログラミングに求められる
案件の理解が重要な気がする
>>687 逆にある程度の大きさの企業になると、
開発ツールを買う予算はあっても、必要な時にすぐ手に入らず、開発が終わってからツールが届く
なんてことも多々あるんだぜー。
ちっこいところだと、ちょっと行ってくるわーって車で本人が買いに行って、その日に使える
PICを散りばめた基板とか、ファームのアップデートとか困らないか? ブートローダー仕込んでシリアルバス経由でアップデートするにしても、 ブートローダーの分だけフラッシュ食うし・・・。
いやさすがに、散りばめてどうするん…
10Fがちりばめられた基板・・・ すてきやん
∧_∧ PIC撒いてやんよ ( ・ω・)ノ>゚+。:.゚ C□ / ゚。:.゚.:。+゚ / . | (ノ ̄∪
>706 PIC24,dsPICは命令もレジスタも増えてC言語に不向きということは無い。 インストラクションの直交性(レジスタ間、命令間とも)が高いのでアセンブラも スムーズに書ける。PIC16やPIC18よりずっと使いやすい。 PIC32はC言語等のコンパイラに特化した命令体型(MIPS32)なので C言語を使うべき。アセンブラで書くと癖があるのでつらそう 以前のスレの抜粋 >定数ロード命令はなく、ゼロレジスタとの足し算って・・・なんか違う。 >サブルーチン呼び出したらリターンアドレスはレジスタR31(ra)に保管される。 >更に呼び出す場合どうするんだろう? と調べたらサブルーチン先頭で >自前でスタックに積む必要がある、さらにPUSHなんて便利な命令は無く >spレジスタをマイナスした後,そこにR31(ra)をストア >リターンするときもR31を取り出して、sp動かして R31のアドレスにジャンプ >普通ならCALL〜RETですむのに。 >分岐命令の後ろの遅延スロットとか、load命令直後のレジスタ参照ペナルティ ※分岐命令の次命令は分岐しても、しなくても実行される >MIPSであと驚いたのが、フラグが無いこと。 >桁上り(キャリー)どうするのとおもったら >addu v0 , a0, a2 ; v0=a0+a2 >sltu t0 , v0 , a0 ; if v0<a0 then t0=1 else t0=0 >1命令と32bitレジスタ1個潰してキャリーフラグ相当作るのかよ・・・
MIPSは、もろにRISCだし。 当時は32bitで十分で、キャリーが必要なケースは少ないから実装するメリットがコストを上回ったのだろう。
>>679 コンパイラの吐くコードの評価もしないで使ってんの? 効率が要求されるとことかどうすんの? 想像できん。
他にも色んな落とし穴があるから、コンパイラの出力を見ておいたほうがいい。 意図せず割り込み許可を変更されてることもあるからね。
>>716 オジサン何を言ってんだw
それって、「僕ちゃんの書くコードの方が、効率良いもんw」みたいな感じ?
お仕事で使うPICのコンパイラは、何を使ってるのですか?
>>717 意図せず割り込みをかけてくれる、素晴らしいコンパイラはどこの製品でしょうか。
>>719 >それって、「僕ちゃんの書くコードの方が、効率良いもんw」みたいな感じ?
何言ってんの?? マジ意味分からん。
コンパイラの挙動理解してなかったら、最適なコード吐かせる為にはどういうソース
書くべきかも分からんと思うんだが。
最適化有効にしたらコンパイラが自動的に最適なコード吐いてくれるとでも思ってるん
だろうか?
MPLAB X v1.60 でてる。(リンクの表示は 1.51のままだが..) 入れて見たが、シミュレーターの動作が安定して来た感じ。 前は 16F1827のコードをシミュレーションしたら固まってた。
>>701 しょぼいCPUで頑張る必要あるのかな?
工夫してもオナニーはオナニー
最適化がオフにされてるフリー版で・・・となると、いろいろと書き方に工夫を凝らす必要があったなぁ。 プロ版だと工夫しなくても結構コンパクトなコードになったよー。だから、まったくもって無駄なノウハウだ。 まぁ、趣味としてやったから面白かった〜ってことで、いいんだが。 プロ版を買う金をケチるなら、コードサイズにして2倍程度なんで、フラッシュ容量が倍の型番を使えばいいだけのこと。 速度を求めるなら、もっと速い型番を使えばいいだけだし、PIC以外にも選択肢はあるし。
>>719 >それって、「僕ちゃんの書くコードの方が、効率良いもんw」みたいな感じ?
ようやく理解した。
勿論コンパイラの挙動理解した上でソース書いたほうが効率いいコード吐かせられるよ。誰に限らず。
>>724 >最適化がオフにされてるフリー版で・・・となると、
コードの効率ってのは、コンパイラの最適化機能にだけ任せらるもんではない。
>プロ版を買う金をケチるなら、コードサイズにして2倍程度なんで、フラッシュ容量が倍の型番を使えばいいだけのこと。
>速度を求めるなら、もっと速い型番を使えばいいだけだし、PIC以外にも選択肢はあるし。
ハードウェアってのは、そうホイホイ替えられるもんでもない。
>>726 上段
同じものをCとアセンブラで書いたら・・・っていうレベルだと、最適化機能の範疇だよー
Cで書く時はgdgdに書いて、アセンブラで書く時は器用に書くなんて、そんなの意味ない比較だし。
下段
なんでそんなにフットワークが重いのさ。
もしかしてハードとソフトをまとめて開発してないのか・・・
>>721 職人芸みたいなコードを書いて、悦に入ってるとかw
趣味なら職人芸でも良いけど、引き継ぐかもの仕事ではイヤだ。
あと常識的な作法とコードを書けば、真っ当なコンパイラなら真っ当な最適化ができるけど。
もしや10数万程度のコンパイラを買えないとか?
ウケる、かわいそうw
>>727 >同じものをCとアセンブラで書いたら・・・っていうレベルだと、最適化機能の範疇だよー
Cでもソースの書き様でコードの効率に差は出る。最適化機能は万能ではない。
>もしかしてハードとソフトをまとめて開発してないのか・・・
場合による。
ソフトウェアの更新で機能や規模が増大したからといってプラットホーム変更はまずあり得ん。
XC8の Standard版ってどんなもんなんだろ。 個人で買うとしたら、Pro版は高すぎるし。
>>728 >職人芸みたいなコードを書いて、悦に入ってるとかw
時として必要な場合にはせざるを得ない場合もある。
そういった状況に対応できるのとできないのとではできる方が良いに決まっている。
>>729 > Cでもソースの書き様でコードの効率に差は出る。最適化機能は万能ではない。
だーかーらー、
コンパイラの最適化では吸収されないようなgdgdっぷりのコーディングしたものと、
精巧なパズルを組み立てるかのようにアセンブラでコーディングしたものを比べるのは、
ナンセンスだと言ってるんだけど、これ分からない?
>>732 >コンパイラの最適化では吸収されないようなgdgdっぷりのコーディングしたものと、
>精巧なパズルを組み立てるかのようにアセンブラでコーディングしたものを比べるのは、
俺はそんな話してない。
>>729 > 場合による。
例外的なケースを挙げるのはナンセンスだろ。
> ソフトウェアの更新で機能や規模が増大したからといってプラットホーム変更はまずあり得ん。
なんか俺の考えるPICの用途とは世界が違うようだな。
>>734 >> 場合による。
>
>例外的なケースを挙げるのはナンセンスだろ。
どちらもあり得るのだから例外的とは言えない。
>>731 一般的な話しをしているのに、例外的な話しを持ち出すとか、アタマ大丈夫?
あとアルゴリズムによって、吐くコードが違うに決まってるw
C云々より、プログラマの能力の問題だろw
そろそろ結論を
>>736 >一般的な話しをしているのに、例外的な話しを持ち出すとか、アタマ大丈夫?
ルーチンワークしかできない奴にできる仕事なんて限られてる。
流れ作業の工員でも務まらんだろ。
>>736 >あとアルゴリズムによって、吐くコードが違うに決まってるw
アルゴリズムの話はしていない。コーディングレベルでコンパイラが吐くコードは変わる。
>>730 適当なPCあるいは仮想環境に評価版を入れて、
pro、std、freeそれぞれ生成されるコードを、自分で見比べたほうがいいよ。
コンパイラオプションにアセンブラ出力ってのがあるから。マニュアルさがしてみて。
俺の個人的な印象ではstdは有償なのに酷いことするなーと思った。
stdは廃止してproをstdの価格で売ってほしいよ。そういう感じのコードだったよ。
趣味でやるなら、free版にチョイと工夫すると、ほぼstd版と同じコードが得られる。
以前にスレに書いたネタだが、
| *.cから*.objに一気にコンパイルするのではなく、
| *.cを-S付けてコンパイルして*.asを出力させると、
| 普通のLITEモードのコードが出力されるんだけど、
| その*.asを-O付けてアセンブルすると、
| standardモードに似たコードに最適化されるのよ。
この-Oは公開オプションでコンパイラのマニュアルにも書かれてるから、
ライセンス機能をハックしたことにはならないだろう。
ちょっと見ればすぐ分かるような無駄なコードが生成されるので、
*.asに対して特定のパターンを置換するフィルタをかけてやるとコードが短くなる。
さらに非公開オプションを付けるとpro並みのコードになるんだが・・・
お年寄りはガンコだからなー。 過去の実績や経験を否定されると、口角に泡を出しながら怒るw
もうつまらないよ そろそろ終わろうよ
>OvLD767h >1uSMFffh もうこの辺でやめておこうよ。 ・例外的な話を持ち出す ・意見に反論じゃなく、相手を馬鹿にしたり見下す もうこうなったら、議論でも何でもない。 ちゃんと読んでる人なんかいないだろうから、引いても どっちが勝ちとか負けとかなんて誰も思わないよ
こういう流れは狂ったふりして荒らしているのだと前から思ってたんだが もしかしたら正気でレスしてるのかもと思うようになった
ちなみにXC8が出力する無駄なコードの例 フリー版だけでなくstd版でも、こんな無駄なコードだった。 その1) movwfすればいいのに、わざわざclrfしてからaddwfする。 その2) incfすればいいのに、わざわざbsf status,0してからrlfする その3) 意味もなくmovwfして即座にmovf ,wする この3つは機械的に置換できるし、しても副作用はなさそうだった。 std版とpro版の出力したコードを並べて比較すると上の3つだけの違いしかない関数も多々あったよ。
>>744 意外と、盛り上げてあげている、みたいな意識だったり
>>746 水ぶっかけてやりたいとオレは思っています
>>723 > しょぼいCPUで頑張る必要あるのかな?
そうそう、ワンコイン一個なら人件費が高い。
メンテナンス性も悪い。最悪。
>>726 > ハードウェアってのは、そうホイホイ替えられるもんでもない。
おまえの様なソフト屋が居るから、石を変えられなくて困るんだ。
>>732 > 精巧なパズルを組み立てるかのようにアセンブラでコーディングしたもの
それはただの自己満足。
JAVAを初めとして、世の中ハードを隠蔽する方向。
生きている化石は消えてくれw
ここに居る皆さんは今までどのような物を作った事があるのですか?
カバンにLEDを点滅させて夜道で危なくないように改造した まさにLチカ
ひったくり犯もひるむわw
ここにはC言語とアセンブラのミックスで作る人は居ないの? C言語だけで作ると目標よりも遅いという場合、 ボトルネックになっている一部の関数だけを アセンブラで書き直せば十分な場合が多い。 XC8やXC16のユーザーズ・ガイドにも 「MIXING C AND ASSEMBLY CODE」 という解説が載っている。 一般に「コード量の20%で実行時間の80%を費やしている」と言われる。 その20%を見極めて改善すれば、大幅な効果が見込める。
>>746 ここしばらく停滞気味のスレが、勢いだけはあがったよねw
「言語は手段、目的は要件を満たすこと」
入社直後に上司が朝礼で言ってたな。
PICの場合、どちらの開発スケールもあるから、一概に決められない。
USARTをソフトウェアで使いたいけど ライブラリが無いから(microCは嫌い) 諦めて他のPIC買おうとしてる俺には関係のない流れですけどね
ハードウェアを変更するとまた認定作業をやり直しとかになったりするしで それぞれの事情もあるだろうよ。 高水準言語でハードウェアを隠蔽しようとしても結局はハードウェアが 絡んでいることには変わりないし、何か問題があればそのレベルまで降 りて調べられるだけの実力がないと達磨さんになってしまうからなぁ。 趣味レベルなら見て見ぬ振りしていてもいいけど、仕事じゃそういう わけにもいかんし。 仕事に限れば、低レベル部分まで全部分かってる奴が楽をするための 道具であって、低レベル部分がよく分からん奴に仕事をさせるための 道具じゃないんだよな。
すげー伸びてると思ったら。。
PICで4BIT CPUを作った。 使い道ないけど後悔してない。
Cが高級言語などと呼ばていたことを揶揄して、 Cは移植可能な高級アセンブラだろ なんて言われたりもしてたなー。 C言語ってのは、もともと、 OSをアセンブラで書くと異なるCPUへの移植が面倒くさいから っていう理由で作られたものだそうじゃないか。 本来ハードウェアやプロセッサの機能に密着した低レベル部分のための言語なのよ。
Cとアセンブラの戦いなんて、PICスレでやることじゃないし
PICのニーモニックは、ハードウェア直球過ぎて使いにくいなー CASM使いやすいよ。
typo 正しくは、CVASM
ローカル変数や引数禁止にしてしまえばいいのに
>>760 うん、言語障害者どうしの争いはいい加減飽きたよ
765 :
774ワット発電中さん :2012/12/27(木) 02:34:56.08 ID:ZzTq3PNa
ウキッー!ウッキッキー VS ワン!ワンッ!
コンパイラを自分で実装すると、まぁstdでも結構頑張ってるんじゃないの? と思ってしまうがな。 なんでもできたほうがいい。適材適所だし。
>>760 >Cとアセンブラの戦いなんて、PICスレでやることじゃないし
話の流れが読めてないようでw
>>767 おまえは板タイを100回嫁
ここは電気・電子板でソフト板ではない
>>745 char型の i++,i-- でも、inc,dec 使ってくれないのも、ちと残念。
あとPIC18 で、近くへのジャンプでも2ワードのジャンプ命令
使われたりとか。(一見 NOP命令ばかりに見える)
linuxはうごきますか?
>>770 linuxが必要な程の処理させるなら ARMとか使った方が幸せ。
ーー
パラレルI/O使って外部に大量のメモリくっつけて、色んな物を
エミュレートするソフト組めば、超低速でなら動くかも。
神様、もう一度助けてください。 現在RLFを2回使って2BIT左シフトしています。 何とか1命令(1サイクル)で2BIT左シフトできないでしょうか? これができればループサイクルが125nsec短くなります。
ループを展開
>>775 賛成。
自分もよくやる。
バレルシフタ付きのCPU使うと1命令で済むのだけどな
>>768 >ここは電気・電子板でソフト板ではない
>>1 に
>アセンブラのアの字もわからない
>超初心者からHEXが読めてしまう
>鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ
とあるし、このスレはソフトの話もおkでないの?
>>772 >迷惑文章わざわざ読まないわな
読まなきゃ迷惑文章かどうか判断できないんでは?
>>777 PICはハードとソフト表裏一体、ソフトの話題に及ぶのは許容される。
だからと言って、「Cとアセンブラ、どちらがいいか」なんて行き過ぎ。
むかし、アセンブラならハードの限界越えられるぜ的なすっとこどっこいが1人いたような…
>>778 >「Cとアセンブラ、どちらがいいか」なんて行き過ぎ。
どちらで開発しても大概のことこなせるような環境についてはそうかもしれないけど、
ことPICに限ってはそうでもないと思うよ。
つーか、Cかアセンブラかなんて話題、おとといくらいのタイミングで収束してんのに
今更蒸し返してどうすんの?
仕事無くて暇なんだよ 察してやれ
収束して寂しいからまた掻き回したい奴がいるようなので、相手せずあぼ〜んしましょう
>774 RLFx2命令を1命令に置き換えるのは、無理だから その前後を含んだ部分で考えないと削減は厳しいと思う。 そのループ部分のソースを出して他に詰めれるところないか 相談したほうがいいかと。 最終手段はオーバークロックか、このスレ的にはあれだけど 8ピンのAVR使うのもありかと
>>774 展開するにも限度があるから、2bitシフト+他を1単位で回すなら2単位
で回せば巡回判定の処理時間を減らせる。
もしくは容量を圧迫しない程度に切りのいい単位で回す。ってどう?
785 :
774 :2012/12/28(金) 09:03:11.82 ID:W9IP58HQ
いろいろとアドバイスありがとうございます。 前後のソースも出して、というのはもっともな話ですが、チト現状ではネタバレさせたくないもので・・・ 自分でいろいろ調べて1ビットシフトで処理可能なこともわかりましたが、別の作業が増えて結局遅くなることがわかりました。 この辺りが限度かと考えて諦めます。 #おもえばニフティのFDEVICEの頃からアイデアをもらって始めたもので、 そろそろフリーで公開してもいいかな?と想いつつもあります。
>>786 30年前に作られたPICにしがみついて(ry
X86系より新しいんじゃない?
ニーモニックは引き継いでいるが、今のx86はPentium Proが始祖
昔の技術でも自分で考えてあれやこれやと するのは楽しいが その自己満を出し惜しみするのは滑稽に見えるなw
アセンブラで技を駆使する技術よりも適したCPUを選択できるのが正しい技術だと思う。 クリチィカルなタイミングが必要な演算ならdsPICでもpSoCでも使っとけ
>>791 アンカ打たないと天に向かって吠えてるだけに見えるよ
>神様、もう一度助けてください。 こんなこと言って助言を求めながら、ソースはネタバレになるから嫌とかスゲェなw
前回も回答の後 >これで他社製品と圧倒的な差別化ができます。 とか言っちゃてるからねぇ。 タダでは教えんよ
全開?
全壊
フルカラーLEDとPICを使って、Xmasイルミネーションを作りました。
使ったPICは12F509。1個のフルカラーLEDに1個のPIC1個を組み合わせたものを192個製作。
PCからUSB-IO経由でこれら192個のフルカラーLED+PICに制御データを送り個別に点灯制御可能にしました。
フルカラーLEDはRGB個別に8段階の輝度制御可能で、理論的には512色出せます。(実用になるのは30色ぐらい)
動画をアップしました。中間色を多用しているので、動画では少々雰囲気が伝わり難いですが、結構綺麗です。
↓ここです。
http://www.youtube.com/watch?v=Uf93tyNLnOA
PICどんだけ使ってんだww
だかクリスマスは終わってしまったっ…!
労力的にはすごいと思うが色々残念
1個のLEDに1個のPIC使うメリットってどのようなことがあるのでしょうか?
>>797 すごい。
昔の8ビットパソコンの画面の更新みたいな感じで懐かしい。
更新が遅いのは通信のスピードが足りないのかな。
あとはPICのプログラムの改良で色々と楽しめそうだね。
クリスマスに間に合ってない件
ちょっと言い訳だけど、クリスマスに間に合わせるために、動画撮影するヒマがなかった。 クリスマス後、片付ける前に動画にした。 USB-IOに秋月のキットを使っているが、2msでしかポートをON/OFFできないのがネック。 来年は、マイコンボード+SDメモリ方式にして、転送速度をもっと早くするつもり。
500bpsか・・・それは大変だ。 USB-IOではなく、 USB→RS232C→適当なPIC ってすれば38400bpsくらいは出たと思うと、残念だ。
転送速度も課題だけど、LEDの個体差が大きいのも課題。 白く点灯させていても、桃色やオレンジ、黄緑っぽい色になってしまい、残念な感じになる。 定電流ダイオードにすれば、解消方向かもしれないが、 電流制限に使っている1円抵抗を50円定電流ダイオードにするのは、コスト的に無理。 良い方法は無いか?
>>808 抵抗とPICのADCで電流制御するとか?
抵抗値はちゃんと3つ揃えた?
>>807 RS232C経由の提案、ありがと。実はPC制御は外に出し難くなるので、マイコンボードで検討します。
>>809 12F509はADCが無いんだ。1個50円が魅力だけど、秋月で200個買っても安くしてくれなかった。。。。orz
半固定抵抗で色のキャリブレーションも頭によぎったが、めんどくさすぎて断念。
いずれにしても、秋月のφ5mmのフルカラーLEDの輝度バラつきがあるから、大量に使う場合、注意が必要だよ。
>>810 1円抵抗の抵抗値を揃えても、フルカラーLED自身のバラつきが大きいから、あまり意味がないよ。
A/Dで抵抗の電圧を測る
PWMのデューティでバランスを取るのがが手っ取り早い
LED+PICの1組合せのコストは、130円ぐらい。 フルカラーLED:50円、PIC(12F509):50円、抵抗3本:3円、バイパスコン(104):10円、8Pソケット:10円、基板:10円未満(蛇の目基板を切断)、 1組合せのコスト目標を150円ぐらいとして、LEDの輝度バラつきを修正できる方法がないかが課題なんだ。 定電流ダイオードが1個5円ぐらいなら良いのだが、秋月では50円もするんだ。いい方法ないかなぁー
PICの出力ポートのオン抵抗は、けっこう大きい。 そしてオン抵抗の値には精度がないと思うんで、 抵抗の精度を高めるのは意味がないと思う。 ちなみにPICの出力ポートは、 最大25mAながせるとかいうけど、 電源電圧が低いと、 短絡しても25mAも流れなかったりする。 なので、抵抗値を決めるときには、 オン抵抗の大きさを考慮しないといけない。
>>814 ソフトウエアで微調整する方法は良い考えだと思う。コストの観点で。
今回は、PWMで8段階の輝度制御が可能だが、32段階ぐらいにすれば出来るかもね。
あとは、一個一個微調整するめんどくささをどう解決するかだな。
バラつきを数グループに分類して、多少のバラつきは目をつぶって、輝度補正もパターン化する方法もあるかもね。
検討してみるよ。
>>815 フルーかラーLEDの調光はソフトウェアでPWMでやって8段階にしてるんだよね。
それを256段階くらいまで細かくできないかな。
で、制御するマイコンボード側に、それぞれのLEDの補正データもたせて、
補正後の値をPICに指示するとか。
電流を安定化してもLEDのばらつきは対応できない。 1個ずつキャリブレーションデータを持たせてPWMが一番コスト低そう。
>>819 そうだね。ひとつの方向性だね。提案ありがと。
細かい仕様について、別に動画にしてアップしてみるよ。
俺のレスで回路図はもう想像できていると思うけど、
通信プロトコルとか通信ラインとかが分かると話も早いからね。
USB-IOと1組合せのLED+PICは、+5V、GND、通信線の3本で出来ていて、
プロトコルは非同期片方向通信。
輝度の制御を細かくするとデータ長が長くなって、そのまま転送速度に影響するから、
その辺も落としどころを考えなくてはならない。
やり始めると、どんどん嵌っていくよ。
1PIC1LEDをやめてLEDをダイナミック点灯させる事も考えたほうがいいと思う
微調整は手動でやると192個もやってられないだろうから、光センサで測定したほうがいいね。 LED1個ずつにセンサを常備させる必要はなくてさ、人が光センサをLEDに当てて回るだけで済むようにしてさ。 たとえば192個のLEDを順番に1つだけ点灯させる・・・10msecずつなら全体で約2秒・・・これを繰り返す。 光センサのタイミングから、どのLEDに光センサが向いてるか割り出せると思う。 光センサを安定的にLEDに当てていることを、ボタン押下か何かで通知すると、 光の強度を測定して記憶して、ブザー鳴らすって感じで。 1個あたり10秒としても、30分以上かかるか・・・
>>818 個別にIDを持っていると思うのでメンテモードを作って完成後にパソコンの指令で個別に微調整してPICがEEPROMに記憶すれば?
その為にはEEPROM付のPICに変更しないと!
それとシリアルポートも割込みも欲しいので12F1822をお勧めしたい。秋月で80円。
>>823 、
>>824 参考になるレス、ありがと。
そうか、完成後に微調整を全体を見ながらやって、調整データとする方法かぁ。
それなら出来そうな気がしてきたよ。
>>824 そうなんだよね、12F509はポート割り込みもタイマー割り込みもない。安いけど、機能限定しすぎ。
さすがに使い難いので、タイマー割り込みもどきをソフトでやったよ。
192個のLEDは動画で分かると思うけど、
12本のラインでできていて、1ライン16個のLED+PICがついている。それぞれにIDを持っているんだ。
>>822 設計時にフルカラーLEDのRGBの輝度制御をダイナミック点灯というのが、あまりイメージできなかった。
俺の方式では、3本のラインで16個のLED+PICを個別点灯制御しているが、それをダイナミック方式でどうやる?
オレなら金に余裕があるなら12F1822でUARTとPWM使うか、 ケチって10F322でIOとPWMかな。 12F509を使う発想は無い。
>>826 ハードPWMは、1Chしかないので3色個別に制御出来ないと思う.
>>828 PIC10F322はPWMを2個もってるし、NCOもある。
それぞれ別のピンから出力されるので同時に使えると思う。
で、NCOは使ったことないけどさ、設定次第ではPWMのように動くかもよ。
>>827 今、キューブのでかいの考えてるんだけど、フルカラー版はこれでいけそうだな。
あと、単色で150cm×150cmの10cm間隔程度で、ざっと見積もって3400個程度欲しいんだけど
5mm高輝度(出来れば超高輝度)白で100個500円以下とか中華でないかな?
知ってたら教えて。
周期はもっと短い方が良くないかい。 2分もじっと眺めてくれる他人は少なかろう。
PICでなくて良ければ、aitendoで怪しげな定電流LEDドライバ
ttp://www.aitendo.com/product/4306 を使うという手もあるが・・・
まっとうなメーカーだと、TIのTLC5940あたりか。
定電流ドライバ + PWM調光 + LEDの個体差の補正データを記憶して補正する機能が16ch分入って
digikeyで1個3.78ドル、100個182ドル
>>832 > PICでなくて良ければ、aitendoで怪しげな定電流LEDドライバ
台湾製?
> まっとうなメーカーだと、TIのTLC5940あたりか。
STP24DP05はどうよ?
24ch分入っているから196個分なら25個、digikeyで251個290.88円。
40個必要なTLC5940より安上がり、DIPが無いけど
皆さんレスありがと。 7AXXcqfJ です。 来年は、今回の反省点・アドバイスをもとに改良していきます。 良いお年を!
>835 WS2811凄いな、フルカラーLEDに特化した専用ICか 信号に0と1とRESETしか定義されていないから、データ転送中の LEDがどうなるか疑問だけど、400kbpsで24bitx50ケなら転送にかかる 時間は3msだし問題ないか。 コストと手間どっちもこれに勝てるのはなさそうだなw
ディジーチェインなのか チップごとにID設定して線を切らずに増やせる並列接続の方が便利そうだが
>837 バス方式も、分岐出来たりするのは便利だけど50個とか並列で配線長も数mとか ドライブするのが大変そうだ。それにID振るのって凄くめんどくさそう バス方式も、シフトレジスト使うのもどっちも一長一短だと思ってたけど WS2811(シフトレジスタ+PWM制御)+フルカラーLEDがこの値段じゃ 数を使う用途じゃこっちを使うしかないでしょ。
>>838 並列接続だと距離が長くなると反射やらで速度がきびしくなる。
デイジーチェーンだと次の接続ポイントトまでの距離だけ気にすれば良いので都合が良いのかも?
それとDMX512は、舞台照明とかにも使われているので汎用性はあるよ。
音楽のMIDIみたいな存在
MIDIは未だに規格1.0なんだよな 完成されすぎ
秋月で買ったPIC12F1822、1045って書いてあるが、2010年の45週めのロットってことだよね 古すぎ!
>>840 そうでもないぜ。
ビットレートが低くて発声タイミングがズレるから、
タイミングのズレにシビアではないものを前後にズラしてデータを作るとか、
変な作法が。
>>841 ん、そのロットは・・・リビジョンを読み取ってエラッタ見たほうがいいぞ。
>>843 半年前にも数個買ったけど、同じロットだった。要注意だね。
PIC16F1823と同様にPIC12F1822も古いリビジョンはADC完了しないエラッタがあるんだよねー。
エラッタ出せばいいとかひでえな。無償交換レベルだろ。
秋月とかやっすい小売りは、会社が潰れてまとめ買いしたり 問題がある石を安く買い取って売ってるんだろ? だったら売切れるまでロット変わらないよ。
>>847 あ、ちなみに、同時に買った10F322は1206だから今年のロットみたい。
誰かが12F1822を大量購入してくれれば新しいロットが回ってくるんだろうな。
>848 フルカラーLED用に>824を作って公開すれば大量に買ってくれる人が現れるかも
>>849 いや182xの最新リビジョンは、エラッタあらかた修正されてるでしょ。
>>851 ちゃうがなw
「誰かが12F1822を大量購入してくれ」ても、別のバグ付き「ロットが」何処からか出てきて「回ってくるんだろうな」って話。
あー、それは・・・あははは
1個80円なら、MicrochipDirectから買うより安いもんな。
まいったまいった 隣の神社
857 :
774ワット発電中さん :2013/01/05(土) 01:45:42.09 ID:ctaZdbgE
クラシックのところ
>>857 Lチカが高尚なわけないだろ。
鉄道と同等か左だと思う。
各自で思った位置に決めつければそれでいい。公には意味の無いこと。
>Lチカが高尚なわけないだろ。 かわいそうに、本当のLチカを見たことがないんだな。
「PICでの電子工作」で括ると、玉石混交、それこそ全面に当てはまるな。
どんなに玉石混合でも、右に来る事は無いけどな。
一般芸術的に評価されるようなLチカなら高尚と称してもいいかもな。 そうなるとLチカとは言えなくなるかもしれないけど。
低俗に入るLチカはナイトライダーかな
LEDディスプレイなら高尚だろう
>>870 パチンコ屋風点滅を自慢する外人って、、、
872 :
技術奴隷 :2013/01/05(土) 15:36:00.99 ID:4dXwqiBZ
パチンコみたいな基地外の集まる建物は無いから そういう意識が無いんだろ。
遊技台として遊技者の興奮状態をいかに作り、維持させるかの仕掛けに過ぎません。 技術云々と言うより、その業界自体がなんだかなぁと思うわけで。
>>873 凄いな。1:08辺りのウエーブはどうやっているんだろうな。
もちろん個別IDとグループIDはあるんだろうが、指定席なのかな。
しかし客がやけにおとなしいのはデモ用の撮影?
質問 PIC10F322の内蔵クロックのみでNCOを使った場合、最高出力周波数は500kHzなの? 実験したら、インクリメントレジスタをFFFFhにした時が500kHzだったけど、 記載の計算式では1000kHzが上限になる。 どこかを頑張ったらもっと上がるのだろうか。
>>875 電波の発振機が客席に多数配置されていて送信電波ゲインを徐々に上げていくと放射状に色替え指令が伝わる。
これを縦に並んだ送信機を同時にゲインコントロールをするとウェーブになる。
赤外線でするなら赤外線レーザーかスポットライトを高速スキャンしてピンポイントで指令を出す。
多分送信側も受信側も安いのは赤外線スポットライト。
と、思う。
技術的なことよりも商売としてエゲつないな。 みんな、あの帽子を買わないと非国民って感じのプレッシャーが。
紅白歌合戦まで進出してますから。
>>879 紅白歌合戦のは、ナムコのベンライトで使い捨てできないような高級品で、
macアドレスのふられた双方向通信モジュールが入っている。
たぶん、3Dメガネみたいな返却タイプ。
ミッキーのも多分同じだよ。高級ってほどでもないさ。 802.15.4あたりの石が各社から沢山出回っているからそのへんでしょう。 値段も安いし。
電気通信認定はされているのか?
受信onlyじゃないの? 送信する必要性はないと思うのだが。
脳波を読み取って客の興奮度が測定できる
PICでも読み取れるかな?
ナムコのルミネコは確かに双方向だね アンケート(押したボタンの数を集計)なんかもできるようだし 紅白で使ってたのはたぶんソニーのフリフラ
ロータリーエンコーダもチャタリング起きるのか。 全く考えてなかったんでむちゃくちゃな動きをする。
数ミリ秒の間を置かないとな
両方がLoになった時を基準に、次にどっちがHiになるかで向きを判定し、あとはパルス数を単純にカウントしてたよ。 数msec不感にするとぶん回した時に対応できない気がする。思った以上に難しそうだね。
>>889 μsec台のチャタはハードで取る。msec台はソフトで対処する。
>>890 これ、 シュミットトリガー無しでCPU直結?
安物ならアリなんだろうけど…
URLの波形を見ると1usも無いバルス状のonのチャタだけなので数回連続読みのandで消えないかな
マウスのホイールをエンコーダーで作ってある奴は寿命あるんだよな 歯車と光学センサになってると、無限に使える
>>890 簡単でいいね。最後の手段としてその方法に逃げるかも。
>>892 可能な限りソフトオンリーでやってみる。
5msec後に再チェックしてチャタ判定するとして、
それまでにもう一つの相が変化したら早回しと判断してチャタ判定せずカウントすれば両立するだろうか。
>>894 秋月のロータリーエンコーダー(接点式)を買ったんだが、マウスの光学センサもよさそうだね。
光学ならたぶんチャタらないんだろうし。
フォトトラってポート直結でも動くのかな。
PIC18F8722 とか面白そうだな。 外部にメモリ繋げて、2Mbyteまで、プログラムメモリー増やせるみたい。
12F675ですが、PICKit2で書き込もうとするとINVAILD OSCCALと出て ToolsのOSCCALにあるAuto Regenerateしても消えない場合はPICが 駄目になってしまったのでしょうか?
Auto Regenerateは成功して3FFhにデータは書かれてる? もう一個チップがあれば交換すれば故障かどうかはっきりわかるけど。
>>898 Auto Regenerateはサクセスと出ますが、3FFhのところに変化が無いです。
マニュアルでセットしてもサクセスと出るも変化無しです。
>>896 面白い、2MBも接続出来るんだ。
プログラムも置ける様に読めるが、ハーバードアーキテクチャは何処に行った?
たまたま675持ってるので今やってみたけど Set Manuallyで、でたらめな数字入れたらそのとおり書き変わって、 Auto Regenerateするときちんとした値になった。 別のチップで試せば、原因がチップなのかPCなのか判ると思う。
8981です。 今日、もう一度、Auto Regenerateしたところ成功しました。 昨日からの違いはPC終了したくらいですが、 PC側(USB?)の問題だったようです。 レス下さった皆さまありがとうございました。
PICkit3で何度書き込んでもベリファイエラーが出て困ってたけどターゲット基板への電源供給をPICkit3から外部電源に切り替えたら異常無くなった 今まで横着してたのが原因だったのね・・・ 次から手間は惜しまないでおこうと思いました
俺もベリファイが合わなくなったことがある。 それもコンフィギュレーションが。 自作ライタが未完成のときに、 うっかりプロテクトかかったっぽい。 全体イレースかければ解除されるが、 LVPでは全体イレースできないバグありリビジョンで、 そのためだけにHVP対応させるのも何なので、 その部分のビットはベリファイで違ってもスルーするようにした・・・
何度も概念から考え直して、 なんとか8ピンPICにロータリースイッチ直結で実用レベルになった。 外付け抵抗・コンデンサ不使用(内蔵プルアップのみ使用)、 チャタ取りにはヒステリシス(隣同士の変化は一回目のみ有効)を持たせて、 時間待ち無しだから小径ツマミの高速回転でもついてくる。 多少のカウント漏れはご愛嬌。 状態変化割り込みなので、回してない時は他の処理が余裕でできる。 悩みすぎて頭禿げそうだったが、いい勉強になった。 で、何に使おうか・・・
スイッチは経年変化があるからちょっと動いたぐらいでできたできたと喜ばないほうが良い。
一応それも想定して作ったつもり。 2chとも同時、又はとても近い位置で接触不良起こすと無理だけど。
いきなり反対回りになんてならないんだからタイマーでもいいんじゃないか
> 470 名前:774ワット発電中さん[sage] 投稿日:2013/01/11(金) 14:34:27.39 ID:CN75nX6Q > 18FはAVRと同じ16bit命令コードになったんだから > 効率がよくなるようにWレジスタを使わなくていい仕掛けを入れて欲しかったな >? > 471 名前:774ワット発電中さん[sage] 投稿日:2013/01/11(金) 20:29:43.83 ID:JitwI2gF > PIC18FはFSRを3本に拡張したりアクセスBANKでBANK切り替えを多少なりとも軽減したり > 後期に実装された拡張命令でFSR2を使ったリンクフレーム形成や定数PUSH、他に > FSR2限定とはいえディスプレイスメント付きレジスタ間接の演算ができる(PIC24、AVR MEGAは不可) >? > 等と、いろいろと改良はされたようだけど元がしょぼいアーキテクチャなため効果がなかったのかと > AVRは90S1200から綺麗なアーキテクチャだったから18Fで勝負するには無理がありすぎる
>>908 まさにそれがオレのスタート地点。光学式エンコーダならそれでいけると思う。
接点式はチャタリングやら摺動ノイズ(っていうのかな)があるんで全然ダメだった。
>472 :774ワット発電中さん:2013/01/11(金) 21:03:17.92 ID:8whenKiQ
>つか、そもそもがPICつーのは「ちょっとインテリジェンスを持たせたI/O」
>に過ぎないんだし、あんなのをマイコンだと言い張る方がどうかしてる。
>473 :774ワット発電中さん:2013/01/11(金) 23:48:40.74 ID:uxnfq/kw
>>472 >それイイね。
>PIC32が1.65DMIPS/MHzで80MHz動作だから
>Drystone MIPSが130以下は全部マイクロコントローラと呼ぼうぜ
このレベルのを相手しちゃだめ!
光学式のロータリーエンコーダでも油断してはいけない。 ホコリとか犬の毛などでの誤動作の経験がある。 ていうか犬の毛って、なんであんなに細くてドコにでも入り込むんだ・・・
>>911 今に始まったことではないが、
PIC厨は他のスレを荒らすな!!
914 :
774ワット発電中さん :2013/01/12(土) 11:12:34.24 ID:0h715HW5
PCで作成したデータファイル(txtファイル)をSDメモリに格納し、それをPICで読みたい。 ファイルの大きさは、数100Kb。 PIC側でSDメモリ内の複数のファイル名を選択して読む必要はなく、 例えば、SDメモリ内にはdata.txtファイルのみしかなく、それを読み込むだけでOK。 どんな事例を参考にすればよいか教えてください。 できえれば、アセンブラコードあると嬉しいです。(参考レベルでOKです) よろしくお願いします。m(_ _)m
「PIC SPI SD」とかでぐぐれ
> あんなのをマイコンだと言い張る方がどうかしてる。 ちょっと、ツラ貸せやゴラァ
917 :
774ワット発電中さん :2013/01/12(土) 13:33:08.89 ID:nxhrEY+W
>>890 全然悩む必要無い。
ド素人ならコンデンサ入れればいいし、少しでも頭があるか、やる気があるならコンデンサ無に
するだけ。
>>890 のURLはド素人のHPなので参考にならない。○のついた回路はデメリットが大きすぎてド素人にしか用は無い回路。
>>917 久々に℃来たな!
文句だけ一人前の爺さん
ド素人に酷い目にでもあわされたのか
小さい会社で組み込み系やってて、営業兼技術屋やってると、わりとありそうだ。
921 :
774ワット発電中さん :2013/01/12(土) 14:26:21.56 ID:Yh6G14x/
>>876 CLCでリングオシレーターを構成すれば、外付けなしで源クロック70〜80MHzが得られるよ。
これにNCOを接続すれば最高で5MHz近くまでの信号が出力できる。
ただし、周波数の把握が実測になる。
参考ページ
www3.hp-ez.com/hp/bequest333/page12
秋月のロータリーエンコーダーでそんなに悩むか? LED付き使ってるが・・・ PHAにPCN割り込みで1msタイマー起動かけて、チック周期で処理すればノイズなんかほとんど関係ねぇと思うが? 加速用タイマーで回転速度測定を行う加速処理の方が難しかった。
おっと、ついでだが、1us以下のチャタリングノイズがあると、PCN割込みが吹っ飛ぶ現象があるね。 PIC24でだが、エラッタにはまだ上がってなかった。
PICって妙なところでコストをケチってないか。 全入力ポートにシュミットトリガを付けたって、大したコストアップにならないと思うが、付いてない。 アナログで読んでソフトでヒステリシス持たせればいいって話もあるけれども、なんだかなー。
ID:VpipxaRP氏 … ID:nxhrEY+W氏の面目を丸潰れにした人物として、人々に記憶されるだろう。
内蔵ハードで処理できればそりゃあ
>>924 素人さんにはそう見られちゃうんだろうなぁとは思う
PCのマウスのチャタリング対策にチャタリングキャンセラ入れてるんだけどね。 当初17msから30msでもチャタリングが起こり始めて今は70msで設定してるんだけどね。 必要な知識も入れず、物理的な性質も無視して、ハードな対策を何もせず、 詳しいデータも不明不明な秋月のスイッチ類使ってソフトウェアだけでどうにかできるもんかね。
オシロがあればチャッタはソフトウェアだけで解決できると思う。
>>927 74シリーズのICで、シュミットトリガか否かで、そう値段は違わなかったがな〜。
スイッチなんてどんなメーカー品使ってもチャタはあるだろ。 回路にCR入れないってのは単なるケチだけどなw 反応遅くなるじゃんとか馬鹿な事言う奴は流石にいないだろうが…。
>>930 値段はたしかに違うんだけど素人さんにはそれが原因だと思われちゃうんだね
ジョグダイアルくらいの大きさなら、そんなに速く回せないので3msecでいいかもしれない。 ハンディ無線機の選局ツマミみたいに小さなサイズだと、 グリッ!と勢い良く回した時に間に合わないだろうから、パルスを数えるだけじゃダメだと思う。
>>932 チャタリングとバウンスってどういう定義なんだろう
>>925 わりい わりい。 ハンセイ〜 ん? 手をかける肩がねぇ。
秋月のロータリエンコーダーでそんなひどい物に当たった事ねぇけどな。
通常は、でん即納でアルプス製品を使ってるが・・・
Digi-Keyでは、確かにある。 メーカー言わんけど。
チャタリングの極みは、シーケンサー世界のリレーだよ。 いつまで経っても止まらねぇ。
チャタ時間をパスして判断する方式だと、無視した場合に、顧客から偉いお目玉食らう。
>>917 >○のついた回路はデメリットが大きすぎて
オレも2,3,4の方法はダメだと思う。
Cの電荷を一気に接点で放出するから、使ってるうちに接点不良が増殖してゆく気がする。
かと言って5じゃLoが浮くし、やるなら6がいいのかな?
あ、 6の方法で、3.3kΩ → 100Ωとか
>>924 TTLレベル入力なら3.3V系からの信号をそのまま入力できるのに、シュミット
になっているとレベル変換が必要になったりして、むしろ邪魔になる場合も
多い。
GPIOだとTTLレベルの端子でも、ペリフェラルに指定すると強制的にシュミッ
トになるのに迷惑している。設定で切り替えられるならいいけど。
私が自分用の測定器で秋月の低価格ロータリエンコーダ(\200)を使用した時は プルアップ抵抗4.7Kだけを接続し(CR積分回路もシュミットトリガも無し) 早く、遅く、右へ、左へ回した時の出力波形をオシロで観測して、 チャター除去時間を10mSに決定。 ソフトは A相のオフ→オンの変化で割り込みをかける。その割り込み処理内容は、 1 B相のオフ、オン状態(レベル)を読み取って保存する 2 割り込みを禁止する メイン側では 1 A相のオフ→オン変化による割り込みを許可する 2 A相のオンへの変化を検出したかどうか(割り込みが禁止になったかどうか)をポーリングする 3 割り込み禁止に変わっていれば10mS待ってから、 A相がオフに戻ったかどうかを10mS経過するごとにポーリングする 4 A相がオフに戻ったら、保存したB相のオンかオフかによって対応する処理を行う 5 1へ戻る CW/CCWの処理内容、ポーリング中に実行しなければいけない処理内容や 装置に要求される信頼度、ノイズレベルでもやり方は変わると思う。 まぁ何れにせよ、こんなに長々と書くような事ではないかな?気に障ったらゴメンよ。
>>940 真剣に見ちゃったよw
A相の変化だけで割り込むなら、エッジでB相がOFFの向きに回るには問題なさそうだけど、
接触ノイズが増えてくると逆回しをミスりそう。
クリックの間で止めたり、クリックレスのエンコーダーでAのエッジで止めると、
振動が加わるとカウントしちゃうかな。
>>890 ○2と、×5を比較すると、×5におけるヒゲ発生は、機械的な接点劣化によるものであり、回路の問題ではないでしょう。
(チャタリングによる回転時の瞬間的な断続接触ではない)
ですから試験を繰り返しているうちにエンコーダが不具合を起こすようになったんじゃないでしょうか。
最初から5のみを試験するなら、良好な結果が続くでしょう。
なお、5の3.3kΩを10kΩにするとなおよい。電流値が0.5mAに抑えられるから。
(反応速度は落ちますが)
1でも出てるじゃん
SR-FFとかでチャタリングの影響を除去できないの?
っていうか、「チャタリング」っていうのは和製英語だから、 海外では通じないって聞いたことがあるけど、本当? 教えて、エロい人!
和製英語がグローバルスタンダードになっちまうことも、まれにある。 なんせ部品メーカーがデータシートで気づかずに和製英語を使い、 それがそのまま定着しちゃうことも。 数学では、微分のdx/dtの読み方"the derivative of x with respect to t"なんだが、 国際的な場所で日本人が日本ローカルのディーエックスディーティーを連呼した結果、 それが普及しちまったという例も。
おまえらロータリーエンコーダのチャタリングの話するのに、接点電流(プルアップ抵抗)の話しないでどうする? チャタが、接点電流でどれくらい変わるのか知らんわけじゃないだろ?
ポートの変化割り込みで処理してる人が多いのかな。1ms程度の周期割り込み でキースキャンした方が処理が簡単だと思うけど。
24クリックタイプだと、AB合わせて1クリック内で4回状態変化する。 つまり1周で96回の変化。 10msごとに読んでたら、毎秒1回転くらいまでしか対応できないよ。 チャタで誤認しても訂正できないし。
>>949 ロータリーエンコーダーを含む場合は1ms、スイッチのみの場合は10msでOK。
「アイドル状態のCPU負荷がもったいない」ので、PCN割込みをポート状態保存とスライスタイマー割込み許可に使う。
スライスタイマー割込みで、エンコーダーかスイッチかを判断し、ステートマシンとして処理する。
ステートは、INIT,IDLE,VALIDの3ステートと、スイッチのSWVALID,SWRELEASEのプラス5ステートでOK。
確定時に、スライスタイマー停止。
あ、PICなんて入力デバイスからの信号変換に使う外付け周辺回路の位置付けだから、 メインのホストCPUに変化量送るだけでいいんだよな。 だったら常時ポーリングでもいいような気がしてきた。
>>951 1クリックで4回状態変化するってどんなロータリエンコーダ?
>>954 1234
↓↓↓↓
_| ̄|_| ̄|_
_| ̄|_| ̄|_
回転方向を判定するための、どっちが先に変化起こしたか解ればいいだけだろ? …CPLDで回路組んだ方が実用的だったりしてw
>>937 ヨシっ!いい回路を考えたぞ!これでどうだ?
ON・OFF時の電位は最大に振れるし、SWに突入電流が過大に流れることもない。
VCC
|
R 10kΩ
|
○―┼―R―┐ 10kΩ
| |
SW ニ c 0.01uF
| │
フフフ フフフ
958 :
957 :2013/01/13(日) 14:22:20.50 ID:M9u9NHoi
自己レスですが、肝心なチャタリングが解消されてなかった。 スマソ
6の改善バージョンで決定か VCC | R 10kΩ 10kΩ | ○―┼――R―┼ | | ニ c 0.01uF SW | │ フフフ フフフ
来週もまた見てくださいね じゃんけんぽん う フフフ
1行も書いてねぇぞ
964 :
952 :2013/01/13(日) 16:05:18.39 ID:OOxeUEz7
失礼。 ステートのINITとIDLEは、スライスタイマー割込み常時ON方式の場合に使うステートでした。 PCN割込み方式を使う場合は、INITはパワーON初期化で行い、PCN割込み=IDLEの関係となります。 回転速度対応も含めたロータリーエンコーダー例は、国内・海外ググっても、これというウェブはないですねぇ。 ChaNさんのところが詳しいが、そこまではなかなか。
MikroCの参考書か解説載ってるHPで良い所ないですか? 本屋見てもググッてもほとんど無いので・・・
日立は昔からエンコーダーの計測用ペリフェラル作ってたからねぇ。 メカトロ向けのエンコーダーを想定してるんだろうけど。
テンプレの人、見てるかな? 何か更新事項はある?
スリッパの裏に貼り付けて、バスドラみたいに踏んだらMIDI信号が出て、 MIDI音源から実際に音を出すには何のセンサーがいいと思う?
>>970 それはシンセドラムのパッドと同じ仕組みでピエゾが最適かと。
CH10でNote onを出すだけなら8ピンPICですぐできそうな気がする。
シンドラのキットは圧電ブザーをケースに貼り付けるように指定してあったな
集合住宅でそんなもの使うなよ。
>968 多少更新したので、書きます
マイクロコントローラ歴史
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品とほぼ同じ)
マークの意味
◎お勧め、用途決まっていないならこれ買っとけ
○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ
△内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書に載ってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
以下秋月DIP品
;-------------------------------------------------------------------------------
【PIC32】32bitMIPSアーキテクチャ 最適化されたアーキテクチャで1.65DMIPS/MHzを叩きだす高性能
ただ完全なRISCで単純命令しか持たない為16bit以下の演算では命令効率,速度とも
同MIPS値のPIC24/dsPICに劣る。32bitマイコンのDIP版は貴重,MIPS値はクロックと同じ('13/01版)
28ピン
-◎PIC32MX220F032B \220 FLASH32+3KB RAM8KB ●USB
-○PIC32MX210F016B \200 FLASH16+3KB RAM4KB ●USB
-○PIC32MX120F032B \200 FLASH32+3KB RAM8KB
-△PIC32MX110F016B \190 FLASH16+3KB RAM4KB
共通
Vdd2.3-3.6V,Max50MIPS(50MHz,〜85℃),85〜105℃ならMax40MIPS(40MHz)
UARTx2,I2Cx2,(SPI/I2S)x2,RTCC,10bitADC,DMA,I/Oリマップ
;-------------------------------------------------------------------------------
【PIC24/dsPIC】16bitマイコン 16/18F等の8bitマイコンとは全く別物な洗練されたアーキテクチャ
同MIPS値のPIC18F以前と比べて数倍高性能。高めの価格とPIC32の安価での登場で厳しい
70MIPS版PIC24E/dsPIC33Eも存在するが秋月未。MIPS値とクロック関係は下記参照('12/08版)
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リマップ
【PIC18】8bitマイコン。5V動作可(J除)で比較的高速(10〜MIPS) 新型のKシリーズは多機能で 高速(16MIPS),USB機能付きもラインナップ,命令系は16F(Mid-Range)から+αレベル MIPS値はクロックの1/4('13/01版) 40ピン 新ラインナップ45K20(注3.3V)か旧だけどUSB&12bitADの4553。不要なら4525もありかな -◎18F45K20 \180 16Kw/1536/256 Max64MHz(31k-64MHz),4xPLL,CCP1/1,▲3.3V -◎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ピン 新ラインナップが強力。3.3V可ナラ大容量・多機能27J53,高速ナラ多機能の26K22か12bitADCの25K80 -×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のメモリ縮小版 v△18F23K22 \150 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 *△18F24K20 \150 8Kw/768/256 ↑26K20のメモリ縮小版 -×18F23K20 \150 4Kw/512/256 ↑24K20のさらにメモリ縮小版 v◎18F27J53 \270 64Kw/3776/0 ●USB,Max48MHz(31k-48MHz),PLL,eUSART2,TMR4/4,MSSP2,CCP7/3,12bitADC,リマップ,▲3.3V -△18F26J50 \260 32Kw/3776/0 ●USB,Max48MHz(31k-48MHz),PLL,eUSART2,TMR2/3,MSSP2,CCP0/2,リマップ,▲3.3V -△18F25J50 \230 16Kw/3776/0 ●USB.↑25J50のメモリ縮小版,▲3.3V -△18F26J11 \240 32Kw/3776/0 Max48MHz(31k-32MHz),4xPLL,eUSART2,TMR2/3,MSSP2,CCP0/2,リマップ,▲3.3V -△18F25J11 \210 16Kw/3776/0 ↑26J11のメモリ縮小版,▲3.3V 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 -△18F13K22 \150 4Kw/256/256 ↑14K22のメモリ縮小版 18ピン 20ピンから選択すべき、14bitPWMx6に魅力あれば1230を v×18F1320 \210 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1,MSSP無 v×18F1220 \190 2Kw/256/256 ↑1320のメモリ縮小版 v△18F1230 \200 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
【Enhanced Mid-Range】8bitマイコン 新シリーズのPIC12F/16F1xxx,旧シリーズ(Mid-Range)より 機能が大幅UPしていて値段も安い、新規に組むならこちらから 秋月に入荷未品も参考のため表記(未),MIPS値はクロックの1/4,エラッタ注意('13/01版) [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] 新規入荷、値段的に28ピンと変わらないのは残念 *◎16F1829 \150 08Kw 1024 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 *△16F1828 \130 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】8bitマイコン PIC16F84から連なる旧シリーズ,性能&コスト的に新シリーズへの移行推奨 評価は旧シリーズ内の相対比較 新シリーズが使えない場合のみ有効,MIPS値はクロックの1/4('13/01版) 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の差 v○16F818 \140 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無くても良いならF615,本来はデバッグ用ダガF322も -◎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機能省かれてる -◎10F322 \45 8bitADC,PWM,0.5Kw,内蔵31k-16MHz,I/O4コダガFVR,温度計,CLC,NCO,CWG ;---------------------------------------------------------------------------------- 【Baseline】8bitマイコン 初代PIC1650(1978年)からホボそのまま,あまりに古い設計の為 制限多 新シリーズへの移行推奨 -△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら 300&600mil幅 v△16F54 \50 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら -×12F510 \60 8ピン,ADC有(8bit),1kw,内蔵4Mor8MHz -△12F509 \50 8ピン,機能無し,1Kw,内蔵4M -△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用 -△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用 共通 機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
秋月じゃ売ってないけど面白しろそうなDIP品群 MicrochipDirect単価 32bitメモリ多→ PIC32MX250F128B (DIP28,40MIPS,USB,128KB-FLASH,32KB-RAM) $4.09 驚70MIPS! → dsPIC33EP256GP502 (DIP28,70MIPS,256KB-FLASH,32KB-RAM) $4.80 18p40MIPS → dsPIC33FJ12GP201 (DIP18,40MIPS,12KB-FLASH,1KB-RAM) $2.97 14p 16bit → PIC24F08KL200 (DIP14,16MIPS,8KB-FLASH,512B-RAM) $1.80 アナログ色々 → PIC16F1783 (DIP28,8MIPS,2kW-FLASH,512B-RAM,256B-EEPROM,OpAmp,12bitADC,8bitDAC) $2.02
シンセドラムのパッドは衝撃ではなくて振動を拾ってるのかな
>>978 Enhanced Baseline もよさそう。
タイマー割り込み使えるから、Lチカにはぴったりな感じ。
12F1501 16F1503 なんかも、リストにあったほうがいいかな
983 :
979 :2013/01/14(月) 01:01:05.69 ID:MIHThMuM
>981,982 975-978は秋月で売ってるの限定なので(全部を網羅は無理) 出来れば>979みたいな形式で特徴を書いてほしい。
初歩的質問ですみませんが、アドバイスをお願いします。 12F683でADCとPWMを使って、 ADCの入力には電源とグランド間に入れた10kΩ(Bカーブ)から入力させて、 PWM出力にはマブチの130モーターを繋いでいます。 ADCは0から1023の値になるようなので、値を1023で割って100を掛けて単位を%にして PWMのデューティーにその値を使っています。周波数は1kHzです。 ところが、実際に電源を入れると、VRの2/3程度の領域がモーター全開で 残りの1/3では回転数が増減できます。 LEDに変えて光で見ても同じ感じです。 リニアに回転を制御できると思ったのですが、何か間違ってるでしょうか?
>>985 ADCとPWMのどっちでうまく行ってないのか切り分けぐらいできるだろ?
>>985 1kHzならGNDとPWM出力の間の電圧をデジタルテスタで測定すれば
テスタ入力のCRフィルタのおかげで平均電圧が測定できるはずだから
VR回してPWM出力が0V〜5Vの範囲で変化するか確認すれば
切り分けになる
>>985 先に割り算やったら1か0にしかならんような
16bit符号付き整数演算だと1023に100かけてもオーバーフローするな 32767/100=327で 1023の約三分の1になる計算だな いい推理かもw
>>989 1023 * 100 = 0x18f9c だけどどういう計算?
>>990 私の住む世界では16bit符号付き整数の最大値は0x07fffで 0x18f9c > 0x07fff だからオーバーフローと判断しました
>>991 オーバーフローして0x18f9cの下16bit、0x8f9cが答になると思うけど、32767/100=327て
どこの世界の話ですか? 100で割るのも意味分からんのだけど。
わかったわかった スレ違いになるし貴方の勝ちでいいですよ
>>985 発生するトルクがある程度以上になると、ほぼ一定回転になる。
モーターに負荷かければ、回転数が変化する範囲も変わる。
回転数を制御しようとすると、センサーの追加必要。
今の問題とは関係ないが、 3極で5000rpmほどのモーターで1khzは、周波数高すぎる。 100Hz位
>>997 へぇ〜PICってバイボーラで作られているんだw
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。