マイクロコントローラ歴史
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
過去ログとか:外部キャッシュサイトで当スレの過去ログ検索もできます。例えば
・ ログ速
ttp://logsoku.com/ ・ デスクトップ2ch
ttp://desktop2ch.org/ ・ 2ちゃんぬる
ttp://2chnull.info/ テンプレはここまでだよ。
よく読まなきゃね
PICの品種が増え杉だ
なんのこれしきTTL/HCロジックICに比べればまだまだ。 マイクロチップにはなお一層の奮励努力を期待する。
> なんのこれしきTTL/HCロジックICに比べればまだまだ。 本当にまだまだだろうか。 700種とかどっかで見たぞ。
14 :
774ワット発電中さん :2013/01/14(月) 21:43:18.77 ID:WndnOEA6
初歩的な質問ですみません。 PIC16F84Aに書き込むことができません。 環境はwindows7 mplab X IDE PICkit3です。 どのようにすればよいでしょうか? 自分なりに外部電源5vにしてるつもりです。
>>14 >自分なりに外部電源5vにしてるつもりです。
それが正しくできてるかなんて他人には分からんよ。
>>14 頭を冷やして自分の文章をよく読み返してみてごらんなさい
ほかの人がその文章を読んで、原因がわかると思いますか?
>>14 エラーメッセージはどうなってますか?
デバイスID見つからないとかだと、PicKitのファームが
新しすぎるとか、かもしれません。
windowsでmplab X IDEから16F84Aに書き込みって、 とりあえずmplab X IDEを使ってみたかったって事かな。 mplab IDEとか他のソフトでは書き込めるの?
今からPIC始めるとか、16F84Aを初めて使うとかなら PICkitのピン配線間違えてるかも
あと、オレは原因を掴んでないので対処療法だけど、一度書き込みに失敗したら、 再起動しようが何しようが二度と書き込めなくなることがある。 そういう時は新規プロジェクトからもう一度設定して、 作ったプログラムをコピペして同じにすると、そっちでは書けるので、古いほうは削除する。 これもう10回くらい経験した。何か設定で直るのかもしれないけど・・・
22 :
774ワット発電中さん :2013/01/14(月) 23:15:04.90 ID:WndnOEA6
みなさまこんな時間に書き込みいただきありがとうございます。 まさかこんなバカみたいな質問に回答がつくなんて思ってもおらず、手が震えております。 >それが正しくできてるかなんて他人には分からんよ。 ごもっともでございます。早急に画像の貼り方を調べ、自分で組んだ回路の画像を投稿させていただきます。 >エラーメッセージはどうなってますか? >デバイスID見つからないとかだと、PicKitのファームが >新しすぎるとか、かもしれません。 PICkit 3 detected Connecting to PICkit 3... PK3Err0033: 4 bytes expected, 0 bytes received とでました。Failed to properly connect to PICkit 3 (これはMPLAB IDEv8.88ででました。) Connection Failed. (これはMPLAB X IDE v1.41でRead Device Memory Main Project を押すとでました。)
USBケーブルを疑ってみるとか
PICはつながずPICKit単体をPCに接続したとき、 ちゃんと接続できている?
25 :
774ワット発電中さん :2013/01/14(月) 23:40:56.03 ID:WndnOEA6
>USBケーブルを疑ってみるとか 純性の赤のやつを使用しております。 >PICはつながずPICKit単体をPCに接続したとき、 >ちゃんと接続できている? MPLAB X IDEの書き込みたいファイルのProjectPropertiesを開き、 Hardoware Tool:のPICkit3のところに SN:BUR以下数字の羅列 がでてきております。これはつながっているということでしょうか? ご教授おねがいします。 まだ確認できてないみさなまからのご指摘も順次回答しますので、もうしばらく おまちいただけないでしょうか。
26 :
774ワット発電中さん :2013/01/14(月) 23:44:59.92 ID:WndnOEA6
>windowsでmplab X IDEから16F84Aに書き込みって、 >とりあえずmplab X IDEを使ってみたかったって事かな。 >mplab IDEとか他のソフトでは書き込めるの? その通りです。mplab X IDE v1.41でPIC16F84Aに書き込もうとしましたが失敗。 マイクロチップアーカイブからMPLAB IDE v8.88をダウンロードしPICkit3と接続 してみましたが、さきほどの投稿のようなエラーがでました。
たぶんPICKIT単体ではつながっていると思います PICKIT3とPICマイコンとの結線を調べてみては えと、PICマイコンに電源供給していますよね??? (ウインドウで確認を求めてくるやつではなくて、物理的な電源供給)
何が悪いかの原因切り分けとしては、PICkit 3 Programmer で読み書きができるか 試してみるのも手だと思う。
29 :
774ワット発電中さん :2013/01/15(火) 00:02:16.54 ID:64Jxc0kM
>たぶんPICKIT単体ではつながっていると思います >PICKIT3とPICマイコンとの結線を調べてみては >えと、PICマイコンに電源供給していますよね??? >(ウインドウで確認を求めてくるやつではなくて、物理的な電源供給) 物理的に供給しているとおもいます。(画像をもうすぐあげれると思います。) 実をいいますと、自分ははんだ付けが非常にへたくそで 秋月電子で購入した 超小型スイッチングアダプター5V2A(入力100V〜240V) 内径2.1o GF12−US0520 をコンセントに差し込み、 2.1mm標準DCジャック 内径2.1mm外径5.5mm にジャンパ線をはんだ付けし、ブレッドボード上にながしています。 このはんだ付けが原因かもしれません。
>>29 >物理的に供給しているとおもいます。
テスターで5V来てるかぐらい確認しろよ。
31 :
774ワット発電中さん :2013/01/15(火) 00:13:53.03 ID:64Jxc0kM
心意気は伝わるけど、さすがにピンぼけ具合が厳しい(>_<)
33 :
774ワット発電中さん :2013/01/15(火) 00:16:26.94 ID:64Jxc0kM
>テスターで5V来てるかぐらい確認しろよ。 すみません。まったくそのことを気が付きませんでした。今手元にテスターがないので 明日調べてきます。
書き込みだけのテスト? ならACアダプターなんか外して単体でやればいいのに
35 :
774ワット発電中さん :2013/01/15(火) 00:34:29.04 ID:64Jxc0kM
36 :
774ワット発電中さん :2013/01/15(火) 00:41:37.53 ID:64Jxc0kM
37 :
774ワット発電中さん :2013/01/15(火) 00:51:26.09 ID:64Jxc0kM
38 :
774ワット発電中さん :2013/01/15(火) 01:05:13.98 ID:64Jxc0kM
>書き込みだけのテスト? >ならACアダプターなんか外して単体でやればいいのに 単体というと外部電源をとってやれということですね。
>>38 そう。外部電源は無くても書ける。
>>37 の画像で、PC − PICkit は、正常だということが判った。
あとは、配線に接触不良が無いか、PICkitはちゃんとVddを出しているか、
そこまでOKを確認できたら16F84Aが死んでないか替えてみるって順番かな。
>>38 PICkitからターゲットに電源を供給する場合は、
対象Projectを右クリックしてProject Propertiesを開き
↓
Categories:PICkit 3
↓
Option categories: Power
↓
Power target circuit from PICkit3にチェック
を忘れずに
41 :
774ワット発電中さん :2013/01/15(火) 01:54:24.96 ID:64Jxc0kM
ありがとうございます。試してみます。 報告は明日になると思います。 夜分までお付き合いいただき感謝の気持ちでいっぱいです。
PICkitから電源供給されないなんて、俺のPICkit3だけじゃ無かったのかぁ
43 :
774ワット発電中さん :2013/01/15(火) 16:58:05.55 ID:YSdrUHSG
44 :
774ワット発電中さん :2013/01/15(火) 17:15:16.62 ID:YSdrUHSG
>PICkitからターゲットに電源を供給する場合は、 > >対象Projectを右クリックしてProject Propertiesを開き >↓ >Categories:PICkit 3 >↓ >Option categories: Power >↓ >Power target circuit from PICkit3にチェック >を忘れずに この状態でやると Connection Failed.でました。
ブレッドボードで、12F683を使って、PWMでLED光らせてたら煙がでて、ブレッドボードが溶けました。 回路的には電源とPWM出力に抵抗経由でLEDだけで簡単なもので直前まで動作していたので 問題も無いと思います。 ソフト的にもPWMを可変させてLEDの明るさを増減させる簡単なもので動作も普通でした。 こんな経験された方って居られるでしょうか? また、原因として考えられる事はあるでしょうか?
>>45 >原因として考えられる事はあるでしょうか?
あるよ。
>>44 Connection Failed と出るのは、PICkit3Programmerを使ったあとMPLAB modeに戻してないから。
画像の電圧は測定ミスでは?
何かに共振したとか?
50 :
774ワット発電中さん :2013/01/15(火) 19:26:11.17 ID:9K+dYWCE
>>45 自分もブレッドボードで経験あるよ、足の長い剥き出しの端子がショートして
ブレッドボードがちょっと焦げて安定化電源が熱くなっただけで済んだけど
電流制限の出来る安定化電源があれば安全だけどね。
51 :
774ワット発電中さん :2013/01/15(火) 21:55:08.37 ID:64Jxc0kM
>Connection Failed と出るのは、PICkit3Programmerを使ったあとMPLAB modeに戻してないから。 すみません。戻すやり方がわかりません。お教えください。
>>51 PICkit3Programmer → Tools → Revert to MPLAB Mode
16F88で20MHzの水晶で時計を作ったら単三アルカリ乾電池直列2本で何日くらい動きますか? (表示部はないものとして)
54 :
774ワット発電中さん :2013/01/15(火) 22:49:46.29 ID:64Jxc0kM
いつもとは違うのがでたのでご報告します。 ***************************************************** Connecting to MPLAB PICkit 3... Firmware Suite Version.....01.28.07 Firmware type..............Midrange Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect. Target detected Target Device ID (0x0) does not match expected Device ID (0x560). The following memory area(s) will be read: program memory: start address = 0x0, end address = 0x3ff configuration memory EEData memory User Id Memory Reading... Read complete ***************************************************** Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect. Connecting to MPLAB PICkit 3... Firmware Suite Version.....01.28.07 Firmware type..............Midrange Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect. Target detected Target Device ID (0x0) does not match expected Device ID (0x560). The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0x3ff configuration memory Programming... Failed to program device Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect. なにが問題でしょうか?自分でも現在グーグルを使って調べてみます。
>>54 Too much current has been drawn on VDD.
VDDのラインで電流が引かれすぎています。
Please disconnect your circuit,
回路から接続を外し、
check the CLK and DATA lines for shorts and then reconnect.
CLKラインとDATAラインがショートしていないかチェックし、再度接続して下さい。
56 :
774ワット発電中さん :2013/01/15(火) 23:10:47.63 ID:64Jxc0kM
どうして無意味でおかしな結線してるのか不思議に思ってたんだけど、そういうことか。 テスターでちゃんと電圧を測れるようになって、配線の意味を理解できるようになるまで、 電子工作入門用の簡単なキット作りから始めたほうがいいよ。
>53 調べようとデータシート見たらそもそも16F88はクロックに関わらず VDD 4.0〜5.5Vまでしか許容していない。 VDD 5Vで2.5mA , VDD 4Vで1.6mA(@25℃,Typ) 直列3本なら、2mA程度で1本当たり1.3V降下まで(実際はもっといける?) 2週間位は動きそうだけど
>>29 PICに電源が行っていない時は、「デバイスがみつからない」エラーが
でるので、パソコンとPicKit3との間の接続がうまく行っていないと
思います。
STATUS LEDの赤が点きっぱなしだったりしますか?
この時は PicKit3が不良品の可能性大きいです。
60 :
774ワット発電中さん :2013/01/16(水) 00:11:01.29 ID:dfU8EAWX
>どうして無意味でおかしな結線してるのか不思議に思ってたんだけど、そういうことか。 >テスターでちゃんと電圧を測れるようになって、配線の意味を理解できるようになるまで、 >電子工作入門用の簡単なキット作りから始めたほうがいいよ。 入門書どおりにいくだろうし、特別、知識はなくてもよいと思っていたのが誤りでした。 これははじめてから四ヶ月以上たっても書き込むことすらできないことで、十分にわかりました。 回路の勉強を始めようと思います。 しかし、 前々から思っていた作品をつくりあげて、けりをつけてからにしたいのです。 順番が全く逆なことは本当にわかっています。けりがつけたいのです。どうかよろしくお願いします。
61 :
774ワット発電中さん :2013/01/16(水) 00:14:18.27 ID:dfU8EAWX
>STATUS LEDの赤が点きっぱなしだったりしますか? >この時は PicKit3が不良品の可能性大きいです。 つきました。不良品じゃなさそうです。ありがとうございます。
>>60 今の自分には無理とわかっていても、
どうしてもやってみたいってこと、あるよね。
これこそ成長の源。試行錯誤しているうちにいろいろ身に付く。
恥は気にせずに、がんばれ。
63 :
774ワット発電中さん :2013/01/16(水) 00:25:40.24 ID:dfU8EAWX
>今の自分には無理とわかっていても、 >どうしてもやってみたいってこと、あるよね。 >これこそ成長の源。試行錯誤しているうちにいろいろ身に付く。 >恥は気にせずに、がんばれ。 ちょっと、自分でやってみようと思います。
>>60 あのサイトの配線は、16F84Aの書き込みをあのボードで常用するのに楽なように
PICkitの配線を一箇所にまとめている。
ああいう硬い単線を使わないなら、そのまんま真似する必要など全くない。
まず配線を全部外して、5本の配線だけに変える。
PICkit 16F84A
1 4
2 14
3 5
4 13
5 12
次に抵抗を84Aの4と15に接続
配線はそれだけ
65 :
技術奴隷 :2013/01/16(水) 07:19:45.94 ID:gae/R9U2
前スレの
>>936 バカも休み々言えw
いつまで経ってもチャタの止まらないリレーなんて壊れてるか使い方間違えてるだけだ。交換しろよw
チャタ時間をパスするからじゃ無くて、ソフトがバグってまともに出来てないのにいい加減な言い訳するから大目玉喰らうんだろ。マイコンのエラッタとか持ち出す前にちゃんとデバッグしろよwww
お前みたいなゴミを使う顧客ってどこのボンクラだ?今後の参考の為に聞かせてくれよ。
前スレの
>>937 外部もしくは内蔵抵抗によるプルアップだけで十分。ポートの保護が必要なら抵抗を追加する。
ド素人はデータシートを読まないが、抵抗値はデータシートの最大電流値以下になるようにする。
>>60 入門書とかHPはド素人が書いてる事が多いので、その情報が正しいとは思わない方がいい。
とにかく沢山読んで、其々からエッセンスだけを参考にするべし。一番重要なのはデータシートだからこれを熟読しろ。
外部電源のほうが良いとか書いてる所が多いけど、それもド素人がド素人の受け売りで書いてるだけだから無視すること。LED一個位の動作確認に「動作を安定させる為」に外部電源なんて付ける必要は微塵も無い。
programmer>settings>powerのpower taget circuit from pickit3 にチェックを入れてやれば良い。
但し、多分pickit3ファームのバグで電圧検出がうまく行かずに信号が出ない事があるので
voltageスクロールを一段か二段(場合によってはもう少し下げる必要があるかもしれん)さげる事。
66 :
技術奴隷 :2013/01/16(水) 07:25:52.87 ID:gae/R9U2
前スレの
>>927 ド素人のID:f+DHDod4が言っても全然説得力が無いw
前スレの
>>931 闇雲にCR入れるのはド素人。対症療法に過ぎない。
三行でまとめると↓
68 :
774ワット発電中さん :2013/01/16(水) 08:53:59.48 ID:gae/R9U2
1)ド素人はデータシート等、長文を読めない 2)子供の頃から新聞や本などを読む習慣を付けとけばもう少しマシだったかもしれないのに 3)実に哀れである。
>>67 俺は、偉いんだ、偉いんだ。
俺の理解できないことは間違い。
設定なら俺でも分かるから書くね。
小さいことからコツコツとだよ ジジイどもが何十年もかけて手に入れたものが最初から目の前にあるんだから慌てんな
>>62 試行錯誤は時間の無駄。
順序立てて勉強したほうが早いし、後で応用が効く。
72 :
774ワット発電中さん :2013/01/16(水) 12:17:46.99 ID:i9kE/wdN
>>70 その通り。自分でやった分しか身につかないんだから、コツコツやるしかない。
残念なのは、真面目にアルゴリズムを書いてる本が最近は皆無に近いってことだな。
ド素人が書いた本をパクった横並びの本しか出てない。
>>71 一回こっきりの仕事に時間をかけて基礎から学ぶ時間なんて無駄だけどな。
必要な所だけをさっくりと試行錯誤で仕上げちゃえば終わりだし。
なんか動いた → 完成 というレベルを仕事と呼ぶならそうかもね。
一回こっきりの仕事を未経験者に任せる会社があるのか
>>75 単価によるし、顧客との付き合いレベルによってはありうるだろw
>>76 ナイナイw
付き合い薄けりゃ安い単価なんてあり得ない。
得意先なら中途半端な仕事は出来ない。
慣れた人間がやる何十倍も時間(=人件費)かけて、まともなものができる可能性も低い。 経営者失格と言いたい。
おまいらの脳内企業の話なんかどうでもいいわ。 実際会社ん中で経験者いなけりゃ外に出すか未経験でも試行錯誤でやるかの二択しかねえだろ。
アマチュアの俺様には関係なし
「外に出す」の一択
じゃあ、僕は中に出す
MikroCのポートの指定って、8ピンだとGP0やGP1等を指定するときGPIO.F1とする場合と GPIO.B1と書いてる場合が、あるのはなぜ?
>>72 "Introduction to Algorithms", MIT Press, 3rd Ed. を読むといいよ
86 :
774ワット発電中さん :2013/01/17(木) 00:46:01.40 ID:2cfDRoj1
64さんのおっしゃる通りにやってみましたが、だめでした。 check that the deviced selected in MPLAB IDE(PIC16F84A) is the same one that is physically attached to the debug tool.Selecting a 5V device when a 3.3V device is connected can result in damage to the device when the debugger checks the device ID. とでて、続けますか?にOKをおすと Target Device ID (0×0) does not match expected Device ID (0×560) とでて、またOKを押すと、Too much current has been〜 と結局同じになってしまいます。 プロパティを開いても、PIC16F84Aを選択してありました。 PIC自体を変えてみてもだめでした。
ちゃんと5V出てるなら、残るはPICkit3の故障かな
どっかでGNDに落ちてるんじゃないの?
よし大穴予想。 ピンアサインを間違っていて電源を逆に繋いでいる、だったりして。
つうか、素直に外部電源使って書き込めばいいじゃない。
病的な粘着質がいるのは分かった
己を知るのは良いことだ
パスコンでC入れるのも対処療法だからド素人だとw
パスコンなんて最初から入れるだろ、普通。 対症療法で入れるのは明らかにド素人w
いろんなpic紹介本が出てるけど、中・上級者向けでいい本ない?
自称中・上級者がどういう本求めてるのか気になるなw
>>93 パスコンのコンはコンデンサのコン。
「パスコンでC入れる」なんてド素人バレバレwww
コンビーフのコンは何のコンだろう 重いコンダラのコンは何のコンだろう 合コンのコンは何のコンだろう
コーンドビーフ ただのネタ言葉 コンパ で?
>>97 パスコンでC入れない特別な技があるのかもしれないよ
まぁ普通は パスコンを入れる って言うよね???
バッコンバッコンC入れるなんてド素人と
>>97 >「パスコンでC入れる」なんてド素人バレバレwww
「パスコン(目的|用途)でC入れる」だろ。この手の省略は日本語じゃ普通だぞ。
日本語としては合っていても、プロが言わない言い方だから、ド素人臭いって話なんでしょう。
はじめてのC
>>104 「パスコンを入れる」
と
「パスコン(目的|用途)でC入れる」
では、同一の意味ではないが?
だが データシートで推奨されているパスコンを入れたら対処療法なんだろうか
頭痛が痛い話題っすね。
アセンブラやCの前に日本語を学ばないと
ここはど素人がよく釣れるいんたーねっつでつね
そう書かざるをえない状況だよね
>>103 バイパス用のコンデンサを入れる=パスコン入れるなのに
なんで「パスコン」が目的用途なんだよ。
お前、電気のド素人な上に日本のド素人だろwww
こうかはばつぐんだ
パスコンは0.1uのセラミックコンデンサ
ということにしたいんですね
ということにしておいていいかな
>>93 をあえてそう書いたのであれば
ということでいいんだどうけど
という感じのことだね?
お、挟まられた。 安価つけておけばよかったかな。
>>95 後閑とかはどうなん?おれは今鈴木のを読んでる。PICとC言語の・・・
とかいうやつだっけ。悪いけど買ってないんだけど。買おうか迷い中。
しょせんアマチュアでしょ。 本当のプロは本なんて書かない。 入ってくる印税の金額に比べて執筆にかかる時間が長すぎる。 人間関係で頼まれてボランティアだと思って書く例はあるが。
漏れはデカップリング派
120 :
774ワット発電中さん :2013/01/18(金) 01:59:12.15 ID:ix/tk8BW
ありがとうございます。配線ミスでした。ばかでした。が、また失敗しました。 Programming... program memory Address: 0 Expected Value: 2bcb Received Value: 0 Failed to program device おねがいします。書き込めたらいなくなるので本当におねがいします。
PICピン間でショートしていないか、テスタで測る 新しいPICで試してみる
で、パスコンつけるのはど素人ってことでおk?
「パスコンでC入れるのも対処療法だからド素人だとw」 とかドヤ顔で言っちゃう奴がド素人だろwww
>>120 馬鹿なのはわかってるから、まずは配線のどの部分がどのように間違っていたか
過去に自分がUPした写真で説明するべき。
次の質問をする前に、それ位の手間を惜しむなよ。
最初くらいカネ惜しまんで組み立て済み基板使えよ 悪いところは何箇所もあるのが普通なんだからムチャすんな
たった5本の配線さえまともに出来ないなら、組み立て済使った所で、その先ですぐに行き詰まる。 人間には向き不向きがあるのだから、潔く諦めた方が世のため人のため。
出来合いのライタを使うから原因が分からないのかも。 PICライタを自作した場合は、こういうことにはならない。 あっ自作といっても人様が作ったのを理解せず丸写しするのは無しね。
自分なら、とりあえず、 ・PICのIDやリビジョンをPICライタが読めているか確認 ・VPP電圧が仕様の範囲内になっているか確認 この2つをチェックする。 こういう時にオシロがあれば楽だよ。
たった5本の配線が出来ない奴がオシロを持っていようとも、自分でプローブを繋げた所さえあやしい。
このスレは、上から目線の説教ロートルが多いな。 最初は皆んな不器用なアマチュア。
あんまり甘やかすのもどうかと。 基礎を勉強せずに試行錯誤するタイプは成長が期待できないし。
>>130 馬鹿(自称)で不器用なアマチュアがトリガも掛けられないオシロの画面を見たところで何がわかるんだw
まずはたった5本の配線を確実にこなし、言われたとおりに実行すること。それ以外の動作は全て無駄。
それが出来るまでは息もしなくて良いぞ。それほど簡単で小学生にさえ出来る事なのに
馬鹿な頭で余計な事を考えるから出来ない。
>たった5本 だよなww 本人頑張ってるつもりだから俺は何も書かないつもりだけど、流石にちょっと酷すぎるわ。 笑いが堪えきれないレヴェル。
最大の問題は16F84のところ 参考資料と同じモノを買ったのならいいけど生きてんのかそれ 不確定要素多すぎてアドバイスしても徒労に終わる恐れ大
プログラムを書き込む程度のハードでつまづくようじゃ工作センスはゼロだな。 テスターすらちゃんと使えないしアドバイスも理解出来てない、おまけに状況の説明も出来ない。 相手した時間はムダになった。
中学か高校生にそんなに厳しくして大人気ない
つうか、はよ新しいPIC買って来て試せよ。 あんなん安いんだからそんなんでつまづいててどうすんだ?
>>136 中学生ならもっと飲み込みが早い。甥っ子にPICを手ほどきしたがこんなにトロく無かったぞ。
どうみてもボケの始まった団塊爺の書込みだろ。
> 相手した時間はムダになった。 はなっからROMってろw
ホントに教える人も教わる人もさまざまだねぇ。
16系だと16F84の検索結果数が未だに一番多いね。
どこで・どういう理由でつまずいていて、 どういう教え方をすれば理解に導けるのか興味ある
143 :
774ワット発電中さん :2013/01/19(土) 19:48:18.70 ID:J3n12xuj
>>143 それなら、秋月のPICKIT2互換のが良いんじゃない?
ZIFでも使えるしICSPでも使える。
145 :
774ワット発電中さん :2013/01/20(日) 03:52:44.69 ID:ivReVTpK
何年か前は、picのアセンブラ使いでした。 先日、pickit2をもらったので、初めてxc8を使ってます。 セラロックなしというか、16f628aの内蔵クロックを使うには、 どうやってconfigを設定すればいいですか? この行の記述方法。 #pragma config CP = 0x03ff, PWRTE = 0, WDTE = 0, FOSC = IRC てか、どこを見るのがオススメ?
>>145 c:/Program Files/Microchip/xc8/v1.12/dat/cfgdata/16f628a.cfgdata
147 :
774ワット発電中さん :2013/01/20(日) 09:40:28.77 ID:LLDOO1hP
昔、「初歩のラジオ」の製作記事を利用してZ80-CPU、8255AC-5などを使ったマイコンを作った。 最近、久しぶりに電子工作を思い立ち雑誌を買い、PICを最近知った。 初心者には、PICはわかりにくい印象。
>>147 その印象は、「初心者でない、Z80に汚染された思考回路」が醸し出すものですよ。
#defineを使って、 PORTA.F0とPORTB.F2を一つの名前(OUT2)で定義したいのですが、 どのように書けば良いでしょうか?
>>150 #define てのが単なる文字列の置き換えだと分かれば、どうやるかなんて自然と分かる気がするがな。
当然、構文上二つの名前に置き換えるなんて無理だから、引数が必要。
PIC16F1000番台が安いからさ、AVR使う気にならない。
>>146 ありがとうございます。
おかげで名前がわかりました。
154 :
774ワット発電中さん :2013/01/20(日) 14:28:03.36 ID:ivReVTpK
石は16f628a, xc8で開発しています。 LEDを点滅させるつもりで、 #pragma config CP = OFF, PWRTE = OFF, WDTE = OFF, FOSC =INTOSCCLK int main(int argc, char** argv) { int i; TRISB0 = 0x00; while(1) { RB0 = 1; for( i=0; i<1000; i++ ); RB0 = 0; for( i=0; i<1000; i++ ); } return 0; } と書いたのですが、LEDが一度点滅してから、その後、点灯したままになります。 どこが間違っているかエスパー希望です。
155 :
774ワット発電中さん :2013/01/20(日) 14:38:55.75 ID:ivReVTpK
補足です。 動作中に配線をいじって、RB1にLEDを接続すると点灯しません。 PICkit2を接続したままテストしています。 RB6,7は、PICkit2の4,3と接続されたままです。 Power=黄緑、Target=橙 のLEDが点灯しています。
>>155 とりあえず int i ; にvolatileを付けてみるとか。
空ループでウェイトするよりも__delay_ms()組込関数を使うとか。
あと、こういう場合、
ポートに出力ハイで点灯するLEDと出力ローで点灯するLEDの両方を付けるといい。
点滅してないと思ったら、目に見えない速度で点滅してるってこともある。
両方のLEDが点灯したら、高速で点滅してるってことが一目で分かるよ。
>>154 ちゃんと点滅しているような気が・・・
ただし点滅の周期が非常に高速なため、連続点灯しているように見えている
ディレイループの代わりに__delay_ms()を使ってみれば?
ほか、出力ピンがじつはアナログ入力モードのままってことはない?
ちなみに内部リセットの設定によっては、内部オシレーターの発振周波数が低いうちにプログラムが走りはじめる。 ゆえに、電源投入直後だけ動作が遅くて点滅が見える、なんてこともある。
159 :
774ワット発電中さん :2013/01/20(日) 15:55:51.84 ID:ivReVTpK
アドバイスありがとうございます。
さっそく、__delay_ms()を試してみたのですが
動作は変わったものの、点灯したままになりました。
何度か高速点滅になったこともあるのですが、どうも理由がわかりません。
その時は、
for(i=0; i<100; i++) RB0 = 0;
for(i=0; i<100; i++) RB0 = 1;
このi<100の値次第ですね。
もしかしてintが8bitなのかとも思ったのですが、違うみたいで。
>>157 さんの、アナログ入力ですが、
PB0にはアナログ入力がないので、たぶん大丈夫です。
volatileは、これからやってみます。
それから、PICを新しいものに交換してみます。
__delay_msは、 内部オシレータの周波数と#defineする周波数が一致していないと、意図した時間にならないよ。
>>150 共通のソースで異品種に対応するとか変更に柔軟に対応したい場合に
よく使うコンディショナルマクロ。やりたいことはこれかも?
#if condition_1
#define OUT2 PORTA.F0
#elif condition_2
#define OUT2 PORTB.F2
#else
#define OUT2
#endif
162 :
774ワット発電中さん :2013/01/20(日) 16:10:22.08 ID:ivReVTpK
ありがとうございます。 不安定ながら、このコードで動きました。 #pragma config CP = OFF, PWRTE = OFF, WDTE = OFF, FOSC =INTOSCCLK #define _XTAL_FREQ 4000000 int main(int argc, char** argv) { int i, j; PORTB = 0x00; TRISB = 0x00; while(1) { RB0 = 1; __delay_ms(50); RB0 = 0; __delay_ms(50); } return 0; }
どう不安定かといいますと、 私がデスクにさわっていると消灯すること多く、 そして、キーボードも触らず、デスクから少し離れると点滅を始めます。 どうしてこんなことに…。 ちょっと写真を撮ってみます。
電源が接触不良で、机の傾きで接触が変わるとか?
165 :
163 :2013/01/20(日) 16:33:06.66 ID:ivReVTpK
166 :
163 :2013/01/20(日) 16:38:37.66 ID:ivReVTpK
五七五でいうと パスコンは 遠くに置くと 意味が無い
>>163 とりあえずパスコンを入れる。PICの電源ピンのすぐ隣に。
とりあえずPickitのヘッダピンの隣のジャンパ線が変なストレス受けてそうなので、ヘッダピンを穴1つ分、上に。
169 :
163 :2013/01/20(日) 16:50:16.56 ID:ivReVTpK
傾きではないようです。 ブレッドボードに手をかざすだけで、動作が変わります。 動作が変わるといっても、点灯 or 点滅のどちらかなんですが。
MCLRをVDDにプルアップ(10kΩ〜100kΩ程度で) RB4をGNDに
171 :
求人 :2013/01/20(日) 16:56:09.50 ID:QjCkIsMe
話を割って申し訳ありません。
アセンブラのアの字も知らない初心者です。
作ってみたいものがあり、独学でpicのC言語のプログラミングを始めたのですが、
本を読み進めていくうちにわからない用語が多数、またどうアルゴリズムを
考えてよいのか、作りたいものに必要なコードは何か等、わからないことが多すぎて
心が折れてしまいそうです。
もしよろしければ、私をマンツーマンで教えていただけないでしょうか?
必要なものはこちらで準備しますし、もちろん授業料もお支払いします。
交通費はお支払いできませんが、5時間で8000円位でお願いしたいです。
ちゃんと知識をお持ちの方で、pic18や24でプログラムや回路が組める方、
冷やかしはナシでお願いします。
日にちは明日か次の金土日で、場所は実際にプログラムや回路を組みながら
教えていただきたいので、秋葉原の電子工作カフェがいいかなと思っています。
もし興味をお持ちの方がおりましたら
[email protected] までメールお願い致します。
172 :
163 :2013/01/20(日) 17:07:05.22 ID:ivReVTpK
PICkitはヒモでくくってあるだけでなく、 下に高さ合わせの小さなブレッドボードがあって、 それが粘着テープで固定してあります。容易に取れないです。 ただしヘッダピン付近は、負荷がかからないように、 ヘッダ付きの太い線とワイヤを交互に配線しています。 パスコンは左(5-10)付近にあるけど、電源ピン付近(20-25)に追加してみます。
173 :
163 :2013/01/20(日) 17:11:33.86 ID:ivReVTpK
ずいぶん安定しました。
手でブレッドボードに触れない限りは安定して動作します。
次は
>>170 をやってみます。
たくさんの助言、ありがとうございました。
これから子供を迎えに出るので、続きは深夜か週末になりそうです。
まあパスコンが遠い罠w
175 :
163 :2013/01/20(日) 17:35:42.53 ID:ivReVTpK
>>170 MCLRは、PICkit2のPIN1と配線されています。
プルアップするということは、それを外すということですか?
それでは行ってきます。
ccpが1ピンしかないpicで、pwmAとBを入力して Aと同じ値C、Bと同じ値Dを出力するためには AとBの入力の変化に対して、GOTO文で飛びあって擬似並列処理で可能ですか?
今の時代って、いちいち、「子供を迎えに行きます」みたいに 具体的に報告するのが義務というかそういう教育受けてるの? 普通に、「所用があるのでしばらく書き込めません」みたいなのじゃダメなの? 子供にかかわるから何でも許されるという免罪符なんかね。 スレチ失礼。
子供は免罪符だよ どんなに仕事が多忙でも、子供が熱出したって言えば問答無用で休めるし それに文句言う人は人間扱いされないよ
「こどもが乗っています」の車は暴走族でもあおれないしな
>>151 ありがとうございます。
#define と言うのは名前を付ける事だけなのですね。
LEDキューブを作ろうと思って今は小規模にLED6個で色々試しているのですが、
制御する個数が増えると、ある1列全部とか何個かまとめて制御したくて
#define なら出来るのかと思いました。
幾つかのポートに繋がったLEDの任意の物を制御するために、纏めて名前を付けたりする方法なんてC言語では無いでしょうか?
>>171 説教爺さんが来らうだうだ理想論や修行の心構えで終るな。
料理番組の様に解説されながら手伝いつつ作るのを見て手順や段取りやハードデバッグ、ソフトデバッグの
方法を見るのを主にしたら一日で全工程が済むと思う。
>>182 さん
171の者です。
すいません。頭が悪いのでよくわからないのですが、
1日で済んじゃうようなことだから独学で頑張れ。
ということでしょうか?
>>179 図々しいよなwww
良い世の中になったもんだ。
>>147 z80の時に、自分で設計出来、アセンブラでプログラム作ってれば、なんの問題も無く理解出来る。
作ると言うより組み立てたと言ったほうが適切なレベルだから理解出来ないんだと思う。
特に、PICは何らかの外部回路が組めてこそ威力を発揮するので、雑誌やブログ通りに組み立てるだけなら「昔」と同じだけど
その先は勉強が必要。
>>183 爺さんは手が遅いクセに講釈垂れるので気を付けてねってアドバイス
>181 多分希望しているものはないと思います。 別ポートにつながっていても、連続してデータを書き出せば 同時に変化してるようにみえるでしょう。
>>187 たぶん
>>181 のやりたいのは「完全に同時にポートを操作する」という事
ではなくて「1個の記述で複数のLEDを操作する」という事では?
だとすれば、複数のLEDを点灯する処理を関数として独立させれば
目的を実現できるはず。
>>187 やはり連続して書くしかないですか。
幾つかの命令を纏めれば行数が減らせると思ったのですが・・・
ありがとうございました。
>>188 関数ですか。
Cは始めたばかりで、失念していました。
その方法で試してみます。
ありがとうございました。
C言語の習得 と PICの習得 は 分けて行ったほうがいいと思う。 マジで。
>>186 なるほどそういうことですか!
ありがとうございます。
未だにメールが来ないんで思ったんですが、
みんなせっかくの休みを得体のしれない誰かと過ごすなんて
やっぱり嫌ですよね。
実際に電子工作カフェに行けば指導員みたいな方に会えますかね?
甘やかせば、つけあがる。 それだけ。
>192 何かの記事に載っているもののデッドコピーから 始めたほうがいいと思いますけど。
>192 どんな物を作りたいか書いてみれば、ここでもそこそこ話は進むと思うけど 何も情報もなく18F,24Fでと言われると教える方にも教わる方にもハードルが 高そうで怖いな
196 :
163 :2013/01/20(日) 23:33:26.84 ID:ivReVTpK
>>178 そんなこと誰も気にしないし、それは君の自由だと思うよ。
うちの会社だと、所用なんて言葉は通用しないけどね。
>>170 プルアップはしていないのですが、RB4-GNDで劇的に安定しました。
ありがとうございます。
RB4/PGMが不安定っていうのが良くなかったんですかね。
>>196 マジレスthx!
こういう専門的な話題扱う所で、
子供が〜とか、いちいち買い物行くのに報告するなよwとか
詳細な要素が邪魔に思えて仕方がなかったから聞いてみたんだ。
、
会社だとしても、直接の上司には用事の詳細言うけど、
たいして親しくない人には所用・私用で通すよ。
そういう所が昔と比べてオープンになってるんだなあ、と感じてる。
スレチ失礼。
>193
>194
>195
今まで2ちゃんねるとかあまり使ったことなくて
求人とか質問したら叩かれるんじゃないかって不安だったんですけど、
今こうしてアドバイスいただけてすごく嬉しいです。ありがとうございます。
後閑哲也さんの24Fの本を持っていて
最小構成でLEDを点滅させる回路
を見本通りに組んで動作させたのですが(プログラムは出来合い)、
自分自身そのプログラムが理解できず解説を読んでもちんぷんかんぷんなので
少しわかりやすい言葉で解説してくれる人がいないと理解できないと思って、
マンツーマンでお力をお借りしたかったんです。
最終的には
ttp://robot.tamagawa.ac.jp:8080/cyber/mbed/colorcopy.html のようなものを作りたいのですが
プログラムが読めないので、
理解して24FJ64GA002に書き直したいんです(このページ開発環境はわかりませんが)
>198 そのページのプログラム、C++ でクラスを使って書いてあるなと思ったら LPC1768 = ARM Cortex-M3 ですね。 私は C レベルでしか書いたことがないので…
mbedだね
>>198 もしかして基礎ができてないんじゃない?
専門学校とかで教えてるところあるんじゃない???
>>192 学生さんの単発のアルバイトとしてはいいと思うんだけど、
そういう人はこのスレを見ていないと思う。
家庭教師と比較しても、ちょっと微妙な金額設定なので、
Yahoo!の知恵袋なんかで、電子回路を教えてくれる家庭教師を探していると、
投稿するのはどうかな。
募集だと知恵袋向きではないので、 あくまでも家庭教師を探すにはどうすればいいですか? みたいな感じで。 一言、回答者自らが教えてくれるのも大歓迎と書いておけばw
>>198 でプログラムが読めないと言ってるけど、それはC言語が分からない、ってことなのかな。
ソースコードの各行について、どういう意味なのか丁寧に説明してもらって、
それで理解したつもりになっても、たぶん、まったく使いこなせないと思うよ。
読むのと書くのは違うもの。
もしC言語が分からないのなら、C言語をちゃんと勉強したほうが早道だよ。
206 :
171です :2013/01/21(月) 02:10:24.14 ID:3FsdPmUp
皆さんありがとうございます。 これはまた違った言語なのですね。 そうですね、全く基礎ができていない状態です。 ちなみに私は今学生です。 その状態で質問を先生に質問してもデータシートと本に全部書いてある とだけ言われ(ちなみにカリキュラムにプログラミングの授業はありません) 自分でやりなさいといった感じなので。(だから独学と書きました) 何とか他で教えていただきたかったのですが、 基礎ができていないのではダメなのかもしれませんね。 金額は相場がわからないので適当につけました。 12000円位なら大丈夫ですかね? ちょっと知恵袋の方もあたってみます。 ありがとうございます。
まともなプログラムが書ける様になるのは真面目に勉強して数年後。
>>206 悪いことは言わない。
この業界は一握りの天国と、あとは死屍累々の地獄だぞ。
入社三日で辞めそうな奴だなw あと会社の業務をにちゃんで教えてもらうのは守秘義務違反とkにナルから同じ手は使えないぞ 人生の選択からやり直した法がいい機はする つーか普通におなじ講義取ってる友達に教えてもらえばいいんじゃと思う 友達居ないの?
>206 時給を上げても…短時間で習得することが難しいと思う。C と C++ の関係は… C を拡張したのが C++ です。標準化のせいで最近は C 独自の定義もあるらしい けど。 以下のことを聞いたことはありますか? 1.C のプログラムは複数の関数が並んだ形でできている 2.半角スペースやタブ、改行は式の区切りとして使う 3.関数の形式は 返り値のサイズ 関数名(引数) { 変数の定義; 式や関数の呼び出し; return 返り値として使う変数や式;} である 4.main() {} という関数だけが特別で、実行ファイルを作って実行した時に 最初に実行される
>>150 結局の処、こういうこと?
#define Out(x) Pa = x; Pb = x /* PaとPbの制御をいつでも一緒というマクロ宣言 */
使うときは、Out(0); とか。関数化するよりは十区速度早いけど、マクロ展開されるが故に容量面で気持ち不利。
そういうのはdo{ 中身 }while(0)にするのが定石
193やけど、まあこんな時代やろなぁ、しゃーないわ。 ただ、本気で業界でやってこ思とったら、アナログの基礎だけはきっちりやっとけよ。 一時期そういう人材がおらんなっとったらしいからな、知識があったらそら武器や。 毛嫌いせんと、バイポーラの1815ばっかり弄っとれ、それが一番最初の勉強や。 微細化、高集積化とデジタルアナログ混在で、パターンがアンテナ化してノイズがやばい言うんが最近のトレンドや。 教科書どおりに形だけつくっとっても、仕事じゃエラー吐くだけのゴミ屑しか作れんよ。 マイコン知識だけでどうにかなる業界やないことだけは確かやで。 まあ、アマのおっさんのたわごとやけどなあ、スレ汚してもうてすまんかったなあ。
215 :
171です :2013/01/21(月) 12:41:22.47 ID:3FsdPmUp
>207,208 この業界に進むつもりはないんですがこなさないとだめなんです。 >209 そうですね、詳しくは書けないんですがやってることはみんなバラバラです。 >210 習得まではいかずとも何とか本に書いてあることや、 データシートの内容を理解できるようになりたいんです。 なんというか独学できるレベルになりたいです。 ネットのCのページで見たような見ていないような 3に関しては理解できません。 4はmainの内容以外はどのポートを使うかだけではないんですか? >213 いえ、気にかけて下さるだけでも嬉しいです。 ありがとうございます。
初心者のパートナーを探した方が良いと思う。 そうすればCはすぐにできるようになる。 C++は、やり方の癖が強いから意見が合わないと統一感がなくなる。
求人とか業界とか言うから、てっきりかと思ったら違うとったんか、ならええわ。 まだ学生なら、まあそんなもんやろ、アンチに噛み付くようなキチガイじゃなかったらこのスレおってもええんとちゃうか、別に。 それだけや、こんなエセの目障りなおっさんで済まんのう、心配せんでもこれ最後に消えるから許してや。
あ、忘れとった、この前のノイズの話に、1つだけツッコミ入れとかんといかんかったんや。 ノイズ全般の話しとるときに、いきなり電源ノイズの話持ち出した間抜け、お前や。 ノイズ言うたら電源ノイズしかないと思うとるんか、違うで。 ログ残るような所で、ホンマの事や言う顔して明っきらかな嘘書き込んだら、後続全員間違えるからな。 あれだけはお前さんの知識不足やから気ぃつけてくれんと困る。 荒らし認定食らうレベルのツッコミやな、ほんま堪忍してや。 後で変な議論始まっても、もうこのおっさん出てこんからな、それは勝手にやってくれ。
>>214 昔のコンパイラは条件なしで単にスコープを記述することを許さなかったのさ。
ちなみに関数と紛らわしい形でマクロを定義するのは、行儀が悪い。 関数ではないのだから、マクロだと分かるように定義しよう。たとえば全部大文字とか。 関数コールのオーバーヘッドを嫌うなら副作用を伴うマクロにするよりも関数にinline指定すべき。 PICのCコンパイラは・・・inline指定してもインライン展開してくれなかったような・・・そういうときは諦める。 どうしてもコードサイズを圧縮しなければならない状況でない限り、あまりトリックを使うべきじゃない。
>214はただの未熟者だが >219 てめーはダメだ。 #define xxxx do{ ... }while(0) は if(nantara) xxxx; else sonohoka(); が正しく扱われるようにするためのもんだ。 #define yyy {...} とやると、 if(nantara) yyy; else sonohoka(); では else のとこでエラーになる。
>>221 そういやそうだったな。。。
そういう危険な記述をしなくなって久しいから、すっかり忘れてたわ。
ま、コンパイラがエラー出してくれるなら、いいじゃないか。
コンパイラがエラー検出できない類の問題からdo whileで囲むんだけどなあ まあPICのC事情は知らないけど
>>224 だからさー、そういう事故が起きるから
>>221 のような危険な書き方は規約で禁止するし、
インライン展開を目的とした関数もどきのマクロ定義も禁止するのさ。
do whileハックなんかで喜んでちゃいかんのさ。
はいはい
>216 志を同じくした仲間が欲しいです(涙) >227 そういうことなんですか。 いえ、参考はそちらのプログラムのサンプルではありません。 それも載っていますがまだ手を付けていません。
. . このスレってディープな話の時は面白いが、一度糞スレ化するとボロボロだな。 . .
>>211 #define を使ってそういう書き方も出来るのですね。
セミコロンで区切ると良いのですか。
セミコロン以後が次の行と言うか独立した文になるのかと思っていました。
この場合、(x)がPa,Pbに与えられますが、PaとPbに違う値を入れる(任意の定数)事は無理でしょうか?
#define Out Pa = 0b0001; Pb = 0b1000とかは文法的には駄目でしょうか?
8ビットPIC用のロータリーエンコーダー読み取りソース公開してる中で、 低速動作で一番確実に動くのはどれなんだろう? 前に試したやつは1ステップずつ細かく動かすとどんどんずれていった。
>>230 それはPICの話ではなく単にC言語の基本の話なんで・・・。
単にみんな同じ穴に嵌ったってだけのネタだろ 仕様書だけ見てるからそういう罠に嵌る 実機の動作が全て
実機の動作で動けば良しって人は、 特定条件下でたまたま動いているだけで「完成」とか言い出しそう。
>>189 union 駆使すれば、少しは楽になるかも。
>>230 #define とかのプリプロセッサは、コンパイルする時に、
文字の置き換えがされる、というものなので、
C言語とは直接関係無い。
#define Out Pa = 0b0001; Pb = 0b1000 としたら、
Out と書いている所が、 Pa = 0b0001; Pb = 0b1000 に
置き換わった後で、コンパイルされる。
エラーになるかもしれないし、ならないかもしれない。
もうだめだと思った時から開発が始まると先輩は教えてくれた。
>>231 公開されてるなら片っ端から試してみればよい。
ちゃんと設計されてれば低速だろうと高速だろうとプルアップ抵抗のみで問題なく動くが
前スレの
>>936 みたいなド素人の組み方ではまともに動かないので、自分でじっくり考えて作るべき。
>>239 おっさん!、
>>218 でもう出てこないと言ったじゃないか!
それとも同じようなおっさんがもう一人居るのかいな?
242 :
231 :2013/01/22(火) 04:04:43.46 ID:K9boqBXp
>>239 移植に時間と労力が必要なので、片っ端に試すというわけにも・・・
高速と低速でやりかたを変えているのを見かけたんで、全部一つのアルゴリズムでやるのは無理じゃないでしょうか。
クリックレスの回転が重いエンコーダ(コンポから外したやつ)でボリュームに似た使い方を想定してます。(一周しか回さない)。
行ったり戻ったりを繰り返してもずれないのがいいんだけど、どういうアルゴリズムで作られたのがいいんでしょう?
ずれるのが当たり前の世界なら諦めて、復帰ボタンを追加してずれたら修正という方向で考えます。
あ、それ違うおっさんやで^^; まあ信じるかどうかはどうでもいいことやけどなあ、俺らおっさんにとってはなあ。 おっさん毛嫌いしとってもまあ、ええんやけど、他のおっさん等の書き込みも全部ヒントちゃんと詰め込まれとるからな。 ま、そこで足止めときたい言うんやったら、当然個人の自由やけどな。 クドいわほんま、時間とか無茶苦茶怪しいやないか。 自営やっとるからこんな無茶も効くんやで、代わりに休みはないけどな。
244 :
774ワット発電中さん :2013/01/22(火) 06:04:16.48 ID:pGbYAc0r
おっさん きもちわるい
>>242 >移植に時間と労力が必要なので、片っ端に試すというわけにも・・・
他人も同じ状況じゃ無いのか?
>高速と低速でやりかたを変えているのを見かけたんで、全部一つのアルゴリズムでやるのは無理じゃないでしょうか。
片っ端から全部試した訳じゃなく、たまたま一つがそうだったとは考えられないのか?
どういうアルゴリズムでその結論に至ったのか、考える様に。
それから、やってみて駄目だったら、なんで駄目なのかを考えて改善していけ。
闇雲に思いつきで作っても進歩は無い。
>行ったり戻ったりを繰り返してもずれないのがいいんだけど、どういうアルゴリズムで作られたのがいいんでしょう?
オーソドックスなチャッタ防止のアルゴリズムで行ける。前スレの
>>936 みたいなド素人丸出しの方法ではまともに動かない。。
>>237 PaとかPbは単なる例で、ビットシンボルを記述すれば良い事に気がつくといいのだけど。
コンパイラのビット定義手法によるけど、 #define mOut(x) Pa.Bit.0 = x; Pb.Bit.4 = x /* ビットに対して同じ値を反映 */
なんてことも有り。たんなる置き換えにすぎない。
ただ、入力に対して何らかの加工が必要ならば、マクロにとらわれずに関数化した方がいいよ。
抵抗とコンデンサーつけたったらええねん
>>242 普通に作ってあればカウントがずれる訳ない。
カウントがずれるってことは、ハードなりソフトなり、どこかしらに問題があるということ。
PICの勉強なら止めないが、入門用の題材としてはソフト的にレベルがちょっと高いと思う。
エンコーダ読むのが目的なら、エンコーダカウンタ付きのマイコン使った方が世話がないよ。
マイコン内蔵でI2CでI/Fできるエンコーダで安いのがあればいいんだ。
そういや昔、秋月でロータリエンコーダのキットがあったような・・・。
UARTで吐くやつは6ピンので作れるよね I2Cはハードウェアが載ってないと半端なのしかできない
8ピンのPIC12F1822あたりを使えば。 秋月価格で言うと10円足せば14ピンのPIC12F1823が、 さらに20円足せば18ピンのPIC12F1827が買えるわけだが・・・まぁ。
2bit分の入力ポートと10行ぐらいのプログラムで処理できることなのに 大げさだな
お手本をお願いします
秋月で昔、DDSをロータリーエンコーダーでコントロールするキットが 売られてたが、チャタリング吸収がうまくできてなくて使い物にならず 作り直した。 そのときは安直にサトー電気で売ってた2625円の光学式のやつを使ったな。
ま、ソフトの能力が無いなら高い部品を使うしか無いな。
そんな時のためのコンデンサ…
コンデンサは抵抗をつけないとエンコーダーの寿命が縮む。 コンデンサをつけたのと同じ効果をソフトで組めば良いだけ。
>>260 むやみやたらにコンデンサを入れるのは・・・。
ループかよ、きついなこれは。
機械式はチャタだけじゃないからな
ところでI2Cでエンコ値をマスターが空読みしに行くのって辛くない? UARTのがよくない?
PIC32MX初心者です。質問があります。詳しい方教えていただけるとありがたいです。 ちょっと興味がでて、先日秋月で通販でPIC32MX220F032B(@220円)を購入して、 ブートローダに挑戦しているのですが、ファーム書き換えモードに入るスイッチ入力に RA4(pin12)を入力設定、プルアップ設定を行ったのですが、読込んでみると常に0が 返ってきます。端子電圧を測ると1V弱位で、何か中途半端です。そこで質問なのですが、 PORTAのビット4を入力として使うには何か特別なおまじない(設定)が要るのでしょうか? ちなみにスイッチ入力をRB7に変更して同じような設定を行うと、端子電圧は2V強で、 スイッチをグランドに落とすと"0"、3.3Vに繋ぐ(またはオープン)と"1"と読めます。 以上、宜しくお願い致します。
>>265 1:1接続ならUARTのほうが楽かもね。
スレーブになるPICが複数になったら単方向リングにすればいいのかな。それならUARTが1chでも足りるし。
>>266 自分はPIC32MXは使ってないのであれだが・・・
PICのプルアップ設定は2箇所あるよ。
チップ全体のプルアップを一括でオフ固定にする設定と、個別のピンのプルアップの設定との2箇所。
後者だけ設定して前者を忘れてると、プルアップの設定してるのにプルアップされてないってことになる。
すまん、PIC32MXには一括でdisableのビットはないようだ。
>>267 同時に起きるイベントもせいぜい2個だろうし
UART数珠繋ぎのがいいよね
PIC1---PIC2---PIC3---PICM
|| || ||
◎ ◎ ◎
>>266 以下を試してみたら?
1)RA4を出力に設定して0 or 1が出力できるか
2)1)ができないならI/Oとして機能していないので12pinで共有してる機能を切る
ぱっと見、SOSCOあたりが怪しそう
>>270 PICMからPIC1への線も付けよう。
でないと、PIC1〜3がPICMからコマンドを受けられない。
>>271 マルチマスターってシングルと比較するともの凄く面倒だけど
やってみたら?
>>273 SPIを数珠繋ぎするメリットって何?
3線+セレクト線だな
279 :
774ワット発電中さん :2013/01/22(火) 21:20:58.08 ID:+BwlWFGg
>>276 速度が高速だし、一度自分のデータをセットしたら、マスタが全部読むまでノータッチでOK
>>272 大変貴重なヒント有難うございました。ご指摘の出力ポートを試すのは質問あげる前に
やってみたのですが、やはりうまく動きませんでした。
ご指摘のSCSOCをマニュアルで調べて、事態が理解できました。クロックアンプ出力なので、
アンプを動作させるために帰還抵抗でゲートを開け水晶発振子を付けると発振する設定だった
ようです。電圧が中途半端な理由がわかりました。
でコンフィグで禁止してやると、見事にRA4プルアップで2V強になり、
ポート読み込みも正常動作するようになりました。
以上、簡単な事後報告です。有難う御座いました。
>>279 汎用ロジックのパラシリみたいな感じ?
数珠繋ぎのイメージがよく判らないんだけど
マスターが受け取るときは台数分のクロック与えるの?
>>281 シフトレジスタの入出力を隣同士接続する感じ。
マスタ(のSPIロジック)が台数分のクロックを発生する
>>282 えーとそれって、スレーブのどっちかの方向は
ソフトで処理する事になると思うんだけど、
マスターのクロックと同期しながら速くできるの?
>>246 PaやPbがシンボルと言うのは気がつきました。
まだC自体が始めたばかりで関数化するとドンドン行数が増えそうなので
まずは、名前の置き換えで対処してやってみます。
ありがとうございました。
>>283 意味不明。一度データーシートのSPIの章読んでみ
>>285 こっちもさっぱりなんだけど
3本線で数珠繋ぎしてくならSPIは2系統要るでしょ
>>256 ちょこっと考えてみたんだが、とても10行に収まらないよ
どうやったら10行でできるの?
>>288 やっと意味判った
クロックは数珠繋ぎしないのね
付き合せてしまってごめんよ
数珠繋ぎでどうせ全部から読み出すんだったらI2Cでいいじゃん
元々の話
>>265 がI2Cだと全スレーブを空読みしに行くの面倒だよねって話しでしょ
プロトコルが変ってるだけでやってる事は一緒
だったらスレーブ側はハード任せにできるI2Cの方がいい
もしかしたらPIC16F84Aとか古いのに固執しているのかもしれん。
ド素人ならI2Cだな。cしか出来ないからオーバーヘッドの見積もりなんて頭の片隅にも無いんだろ。 そもそも通信速度からして一桁〜2桁違うから、ピンが余ってるのにわざわざ低速且つオーバーヘッドの大きいI2Cなんて選ぶのは データーシートを読めない上にCしか出来ないド素人w
おすすめNGワード三種類 ド素人 べき。 読め
>>284 その考えは間違っている。
プリプロセッサは使いこなせば強力な武器になるのはたしかだけど、
cで記述しようと思うなら、まずは関数と制御構造を理解するべき。
I2C−シリアルの変換なんて使い物にならなそうだな。 ステマ乙って感じw だいたいI2Cって、基板上で使うのが前提の低速プロトコルだから パネルにつける事が多いエンコーダー用に使うのはセンスが疑われる。 やっぱりド素人だな。
使うことなく封印されてしまったというのは悪評だと思うのに、ステマ扱いされてしまうリンク。 パネルにつけることが多いってだけで、基板にくっつけて使うことが否定されてしまうロータリーエンコーダー。
別にそんなごみリンク張らなくても良いだろ。張らないと説明する能力が無いのかw 宣伝以外に有り得ない。 ポートを2つ使えば余裕でメインPICに収まるのに、わざわざエンコーダー専用にPICを奢って単一基板上で通信するのも センスが無さ杉。まあ、ド素人だから仕方が無いかwww
とかいう事を最初からほのめかせばいいのに、何度も文句が言いたいのかまとめる術をもたないのかよくわからないひと。
エンコーダやボタン、インジケータLEDなどが複数ある操作パネルになってくるとだな。
ステマURLみると、かなり技術力が低いみたいだ。口先だけで対応してきたんだろうな。 見落としが多すぎて、常識で対応してなきゃいけない部分が出来てない感じ。
PICスレって玉石混淆すぎるなw
ほとんど石ばっかり。 しかも表現力や説得力、思いやりも無い。
PIC32MXの入力ポートって、シュミットトリガなんだな。 速度が速いから、かしら。
シュミットトリガって人名だったんだな
エンコーダを追加するときにモジュールになってると楽 →そもそも追加する機会なんてあるのか I2Cは追加するスレーブとマスターでそれぞれアドレス設定作業が発生するが これは本当に楽なのか→主観による ピン数の多い品種に換えるのではだめなのか →解像度が必要なら専用化した方がいい
他に考えられることといえば・・・ エンコーダを変更するときにモジュールになってると楽 →変更する機会なんてあるのか
インクリメンタルなエンコーダなら何でもOKなモジュールがあればいいのか
>>307 以前、8個のエンコーダーをPICで読んだことがある。入力2ピンと出力3ピン。ダイオードとHC138でマルチプレクス。
HC138を使いたく無いなら出力ポート8ピンでOKだから、わざわざ別CPUを使うメリットは無い。
100パルス/rも使った事あるけどまったく問題無かったな。
?
「PICによるロータリエンコーダーの信号処理」でググったら出てくるページのは、 チャタリングに脆弱なアルゴリズムだなと思って部品表みたら、 使うのは岩通の光学式エンコーダかw
岩通って使ったことない所やらか、わからんけど、 そしたらそこのパーツは品質はソコソコ、いうとこか。 まあ光学式に関しては値段の世界だけかも知れんけど。
16C84とか16C61とかあるんだけど、pickit3で書けないものだろうか・・・ なんか「ライターに咬ませるもの」とか作らないとダメかな。
>>296 アドバイスありがとうございます。
スミマセンが質問させて下さい。
MPLAB IDE やmikroC PRO for PICなどのC言語もJIS準拠で書かれたCの参考書で
文法に関しては通用するのでしょうか?
>>315 ANSI Cとの相違点についてはマニュアルに書いてあるでしょう。
できた! アセンブラで独自アルゴリズムで42行に収まった。動作テストOK。
>>316 今、ANSI Cをまず調べてからmikroCのマニュアルを確認しました。
ANSI Cって?と言うレベルです。すみません。
マニュアル読んでるとCその物はこれから勉強ですが、見方は解りました。
地道にがんばります。
ありがとうございました。
>>319 うんにゃ 7セグ2桁出力
しかし秋月200円の24クリックエンコーダでは問題ないけど、
80円ノンクリックタイプだと、止めた位置によって数字がパカつく。
まだダメだな。
>>320 シュミットトリガ使ってもピクつく?
ていうか80円のロータリーエンコーダなんてあったのか。
今度使ってみよう。
>>321 たぶん接点エッジ部分で止めると接触の具合で信号が変化するんだろう。
RCのLPFとシュミットは入れてる。
余計な物を入れるのはド素人
ド素人と他人を表現する人間は、 自分を玄人と表現している事と同意義である事は 論理的に正しい つまり、言い換えれば 君、○○なんてしてるの? ふーん、、俺はプロだけどね! 君がそんな事するのは 俺がプロな証拠なのだ! と、いった言動と同じであり症状から推測すると アスペである可能性が高い
前からの疑問だが、素人とド素人って何が違うんだ?
>>326 なんかえらいえらそうな…と、メインページとやらに飛んだら、いろんな意味で吹いた
>>326 この人は結局何がしたいのだろな?態々webページ作って「オレ様」熱弁かね?
この世界に居そうなタイプではあるが
>>322 エッジなら±1を繰り返すだけだから両方ONの時の処理がまずい
>>320 私も秋月200円のエンコーダを使った事があるけど、
クリック(ストッパ)有りで両相オフで停止するので、
読み取りソフトは簡単だった。
でも力を上手に加減して回すと中間位置でも止められるw
>>325 ド素人は自分で考えるつもりなど全く無いのでデータシートや本を読む事をしない奴。
素人はちょっとエロい
まあわからんでもない。パスコンがあんなところになんて回路もよく見る。
>>326 勝手にリバースエンジニアリング結果を公表するとか、えぐいな。
>>333 まじ? どこ?
ちょっと開くと
「当方の HP の内容を流用して雑誌やインターネットに発表しようとするときは、
当方の許可を得るとともに出所を明らかにしなければなりません。」
とか書いてあるけど…鏡が要る人なのか?
いい流れなので便乗
http://ww6.tiki.ne.jp/~funabashi/ad-test.html PIC A/D Converter,Vref Accuracy
ここでPIC16F874AのA/D変換機能をdisってるんだけど
PIC16F874Aの基準電圧のデータシード上の下限は2.5Vなんだよ
この人規格外の2.048Vに基準電圧設定して変なことしてるの
PICマイコンのA/D機能ってこんなへんな特性示さないだろ
PIC16F874Aファミリー持ってる人はPICマイコンの名誉のために反論してほしい
オレはPIC16F877 PIC16F887のファミリーしかもってないんだ
>>335 > PIC16F874Aの基準電圧のデータシード上の下限は2.5Vなんだよ
わーお。
Vref+ と Vref- の電圧差は 2.0 〜 Vdd + 0.3V
Vref+ は AVdd - 2.5V 〜 AVdd + 0.3V
Vref- はAVss - 0.3V 〜 Vref+ - 2.0V
となってるから、Vref+に2.048Vを入れてるわけではないのかも。
>>335 そいつド素人だから、AD変換の原理を知らないし、使い方も理解出来てない。
年寄り過ぎてマイコンなんて使いこなせないだけだよ。
>解決方法として入力・アース間に336KΩを付けたのが青カーブです
>(Rs は 2.4kΩ = Maximum recomended impedance for analog sources is 2.5kΩ)。ほぼベストな特性となっていますが、
> 抵抗値は前段の出力インピーダンスや PIC、基板の作り方により異なってきますので単純に真似は できません。(^^♪
とか書いてるのが理解の浅いド素人を暴露してるwww
俺も素人だけど・・・。 内部リーク電流が想定よりも実際には少ないという推測をしたならば、 その次に自然に思い浮かぶのは温度かな。
データシートみたら VREF+がVddから離れるほど誤差が大きくなる 温度が低いほど誤差が大きくなる ってグラフがあったわ。
>重要な注意点があるのですが発表しません。(^^♪ 吹いた
そもそもADCに0.5LSB未満の誤差を求めるのがナンセンスなような・・・。
まあ一体何のために公開しているのか理解に苦しむHPなのは分かる
>>339 内部リークが想定よりも少ないのに誤差が増える様な使い方が間違ってると気が付かないのがド素人
>>336 わぁお。
ということは、このひとは当然ながら、それの「許可を得るとともに出所を明らかにしなければなりません」な…。
大物が登場したということはわかった。
>>345 これ見てるといろいろ勘違いしてるというか、思い込みが激しいというか
突っ込み所は満載だよねw
>>324 > ド素人と他人を表現する人間は、
> 自分を玄人と表現している事と同意義である事は
> 論理的に正しい
そんなことないだろ。
アメリカの黒人が仲間を「おい、ニガー」って呼んでるような状況かもしれんよ。
「ド素人」をキーワードに検索してみると、有益情報が含まれるレスは1つも無かった NG登録して相手にしないのが正しい対応方法だと思う
確かにあるで、自分も無駄に色々付けそうになる癖あるからな。 想定する環境内で十分動作して、その上無駄がないのが一番綺麗な設計やろな。 無駄なもんつけとる内は、確かにド素人や。そんなド素人はまあ多分将来の伸び代なんやとは思うとるけど。
ド素人が悔しそうだなw NGとか書いてる奴に限ってNG登録なんて出来ないチキンwww
>>326 こいつ何様なの?
自分の情報出さずに世の中の事を批判ばっかりで挙句の果てに3.11が解ってたって。
馬鹿なの?
感じ的に 現品.COMを思い出したわww
>>326 この人の言いたいこと何となく判るよ。
フリーライダーにやられて境界線超えちゃったっぽい感じ。
回路図やソース込で公表されない物は簡単に模倣されないのもまた事実だし。
嫌なら見るなってサイトを多数で嬲る風潮も、この人の捻じれた根性も
同レベルの争いでしかない。
ド素人という言葉が好きみたいだからちょくちょく初心者スレを荒らしているやつだろう。
そうまでしてというか、それでも公開したい理由がわからない。 目立ちたがりなのだろうか。
よくみるとWinnyまで勧めちゃってるな パクる気満々wwwww
漫画『玄人(プロ)のひとりごと』は作者が亡くなって久しいな...
レベルの低い "お友達" 同士で盛り上がりましょう。
大量に芝生えてたからもしかしてと思って開いたら案の定 何度見ても気持ち悪いサイトだわ
俺の辞書を見たら ド素人 素人が自分より技術レベルが低い人間を見つけた時に あまりの嬉しさにシッポ振りながら発する言葉 と書いてあった。
いまどき腐った辞書持ち出すよりネットを検索したほうが現実的。 ま、ド素人爺には無理かもしれんがw
もしかして電子工作初心者スレにも居る?
俺の辞書が冊子だと思ってる化石が
レベルの低い "お友達" 同士 このスレのことだよなwwwwwwwwwwwwwwwwwwwwwwwwww
ド素人のドはドレッドノートのドだと思うんだ
まさになあ。 あのおっさんも、まあ、アレやからな… 書かれとる技術的な情報だけは、有り難く頂戴だせて貰ったけどな。
その技術的な情報が低品質だから・・・
せやな… 結局書いとる事、部品の選定しろ、言うだけやったからな… まあ、自分はそこが抜けとったから、丁度よかったんやけどな…
リバースエンジニアリングしたという回路図のグランド記号が __ ノノノノ てのが気になった。 ど素人と言われれば返す言葉も無いが、何故斜線4本なのとか、普通フレームグランドだよなとか・・・
普通は4本だよ。 FGは、上から順に短くなる水平の3本棒じゃん。 横棒の下に斜線のGNDは、通常のGNDまたは、デジタルGNDで、 逆三角形は、アナログGND
>>374 逆三角形はGNDではなく負電源じゃないの???
_|_
////
これ、イメぐぐると、3本がイチバン多くて、4本、いっぱい、となるな…
JISだか何だか知らぬが、決まってるんだろうけど、
>>375 の3本でいいのかな?
件の人は、回路図用CADなんか必要ないって豪語してるけどさ、 まっとうな回路図用CADには間違いを防ぐ地味な工夫がされてたり。
そんなに皆で注目すべきサイトでも無い気がする無関心なオレ
>376 逆三角形はGNDではなく負電源じゃないの??? どっちでもないというか。 「等電位面」を表す記号なので、電圧の仮定はない。 cf. JIS C0617-2 02-15-5
ここでプロ気取りしている誰かかもしれない
PICをブレッドボードに直接挿したくないので、手持ちのICソケットを使ってます。 どうも刺さりが甘いというか、しっくり来ないんです。 ブレッドボードに向いたICソケットはないのでしょうか。 PICは16F1827、秋月電子で売っているICソケットだと助かります。
秋月の丸ピンICソケットにPICを載せて、ブレッドボードに抜き差ししている 当方のブレッドボードではしっかり差し込めているよ ブレッドボードごとに差し込み感がちがうのかな?
ピンの足が長いの選べばいいんだよ コスト削減のために短くしてるのは具合がよくない
>>383 ラッピング配線用(足が長い)を使えばいい。
普通のは基板に挿す前提で出来ているので。(長いと邪魔だから)
>>386 あんなに太い物使ったらブレッドボード壊しちゃうだろうに。
ド素人は自分で壊しちゃった事に気が付かず、「ブレッドボードは接触不良が多い」とかのたまうから始末に悪い
そもそも ブレッドボードを使う時点で ド素人なわけだが
PICの電子ブロックがあればなぁ
ブレッドボードはヤバいよねー。 蛇の目基板に半田付けして組むしかなかった頃は、よくよく机上で検討した。 ブレッドボードを使うようになってからは、あまりよく考えずに試すようになってしまった。
頭がいいヤツは机上で完成するんだろうが、オレのレベルだと試行錯誤するから、 ブレッドボードはとてもありがたい。
頭がいい奴は・・・なんてのは甘え。 面倒くさいから計算しませんっていうのと同じ。 だってさブレッドボードが無かった頃は、 半田付けで試行錯誤するのは面倒くさいから机上計算で楽をしたんだぜ。
俺はド素人だから、 一応、計算はするけどさ、 ついついブレッドボードで確認してしまう。
甘えかぁ そうかもしれないね。 出処不明データ無しの圧電ブザーを最大音量で鳴らすのも、計算で周波数とインピーダンスを求めちゃうんだろうな。 オレも甘えずに工作できるレベルになりたいよ。
なあに俺も今ではブレッドボードで気軽に試してるさ。
ブレッドボード、甘えてばかりでごめんね
遅くなってごめんね ならわかるんだが…
なんせ50年前だぜ
402 :
774ワット発電中さん :2013/01/27(日) 04:11:02.08 ID:tD9KZJ6b
半世紀ですな
みんなよく知ってるなぁ 何のことかわからんわ
PICkit3を使っています。 xc8でプログラムを記述したところ、コンパイルはできるのですが、 MPLAB X IDEで、プログラムを書き込むみとができません。 今は出来上がったhexファイルを、 PICkit3 Programmerで書き込んで実行しています。 何が怪しいか教えてください。 MPLAB X IDEで転送とようとすると、 > Connection Failed.です。 というエラーが標示されます。 Windows7-32bit、16F628A、MPLAB X IDE v1.60です。
>>400 愛と死をみつめて / 青木和子
♪まこ、甘えてばかりでごめんネ
花はおそかった / 美樹克彦
♪かおるちゃん おそくなってごめんね
後者は氷川きよしもカバーしている。
書き込み失敗する人は、MPLAB X IDEの使用禁止。
>>407 バカは黙ってろ!って言われたこと無い?
>>408 そんなこと言われたことあるのか。お前に言った人に同情するわ。
>>404 MPLAB X は悪くねぇよー
pickit3とは別にpicに電源いれるか、MPLAB Xの設定でpickit3から電源供給出来るようにしないとダメ。
わからないことあったらネットで調べる以外に使う物のデータシートも見な。MLPABXもpickit3も日本語マニュアルあるよ
? 電源供給しない場合に Connection Failed. って出るんだっけ???
ずいぶん前になりますがPIC16F84(A)、PIC12F508で遊んでいました。 久しぶりにPICを楽しみたいと思いましたが流石にディスコン、MPLABも様変わり。 勘を取り戻すまでは出来れば日本語データシートのあるチップにしようと思ったのですが マイクロチップのサイトでPIC16F1827、PIC12F1822が見つかりません。 PICって昔から日本語データシートは少なかったのですが セミナーに出たりすると、あれっ、これもあったのと思うことがありました。 お勧めのチップ、またこれなら日本語データシートがあるなど教えていただけませんか。 また昔は全チップの仕様比較リスト(A4数ページ)があったのですが 数が増えすぎたからでしょうかそのような資料が見当たりません。 せめて主要チップ、主要シリーズの比較リストがあればと思うのですが。 日本語データシートや比較リストがあれば確実に販促になると思うのに マイクロチップ社は勝手に売れるから平気なんでしょうかね。
pic24fjでpwmの使い方がわからぬ、、 本買った方がいいのかな?
>>412 楽しむ人のためにデータシート作ってる訳じゃないからねえ。
まして、素人相手に販促しても、たいしたリターンはないし。
経験者なら、一つ日本語版あれば、つきあわせて他のチップも読めるし。
平気と言うより、めんどくせ、だろうな。
ちなみに、84/84Aはディスコンじゃないぞ(流通在庫レベルかもしれないが)。
メーカー直販サイトでラインナップあるから、ディスコンじゃねえな。
417 :
774ワット発電中さん :2013/01/27(日) 14:35:17.86 ID:zLwBdvPe
>>413 データシート頑張って読んだほうがいいよ
PIC本は単なる日本語訳書
>>412 日本語データシートよりも英語のデータシートのほうが早く読めて楽だと思うのだが・・・
>>417 レスありがとう
英語得意じゃないけど頑張って読んでみる
422 :
774ワット発電中さん :2013/01/27(日) 17:21:17.84 ID:Ez2z8X3E
早く読める の意味を取り違えてるw
すまん、誤変換だ。 ×早く ○速く 日本語のデータシートは妙な文章で読みにくい。 元の英文を想像しながら読むとか鬱陶しいし、 何を言ってるのか分からなくて英語のほうみたりとか 無駄に時間がかかる。
どっちにせよ日本語データシートが欲しいと言ってる人に英語版を薦める意味は無いわな。
英語のデータシートを食わず嫌いせずに読んだほうがいいと思うのだが・・・。
>>424 え?
ドキュメントのリリース時期の話じゃなかったのかw
>>424 その英語版では、
さらに「てにをは」が分かりにくいよね。
430 :
774ワット発電中さん :2013/01/27(日) 20:31:11.35 ID:zx/l97JN
日本製品を使わない国賊のくせに、日本語データシートとか言ってるのか。
>>418 見落としていたようです。手がかりになり助かります。ありがとうございます。
>>416 やはり16F1938ぐらいですか。昔も日本語データシートは誤植があって信用できなかったり
わかりにくい訳文で、実際にはいつも英文データシートも参照していました。
ネイティブではないので全体の見通しに良いかと思ったのですが仕方ないですね。
>>430 昔は国内の半導体メーカーも各社独自のワンチップCPUをやっていました。
NECなどの研修も受けましたが開発環境等々面倒で止めました。
国産ワンチップCPUをお使いのようで尊敬します(笑)
16F1938クラスの質問です ポートの状態変化を読んで、立上りの時と立下りの時で別々の処理をしたいのだけれど、 どっちも同じフラグが立つだけなので区別できないように思います。 2つのピンに同じ信号を入れて立上り専用と立下り専用にするしかないのでしょうか? 上位の機種だと立上りと立下りで違うフラグた立つものもあるのでしょうか?
>>433 ポート変化の割り込みが入ったら即座にポートを読む・・・というのだと精度的にだめ?
つうか、素直に変化があったら割り込み発生させて、そのポートの今の状態読んで、下がってりゃ下がったんだし、上がってりゃ上がったんだと思うけど、違うの?
状態変化時の一瞬の情報だけで判断したいのです
じゃあ前持って状態見ておいて、 前に下がってたから上がったはず。 前に下がってたから上がったはず。 でいいじゃん。
あ、同じ事2回書いちゃったw
あれなら前の状態も保存しておいたら?
あ〜〜〜〜〜〜〜〜! 確かに変化前を覚えておけばいいだけですね。全くそんな発想は無かったです。 実は、変化があるまでsleepするよう変更したら、起きてすぐ読んでも間に合わない時があったんです。 で、フラグだけで判断したいけど、どうしたもんかなという流れでした。 これで壁を超えられます。ありがとうございました。
>>430 だってルネサスは小口顧客に対してあからさまに鬱陶しそうに扱うじゃん。
ちゃんと人間扱いしてくれる所を贔屓にしますよ。俺は蝿じゃねーよ。
まぁ日本メーカーはプロダクトアウトではなく、客注で開発するからなー。 小口を相手に商売できないのさ。
箱買いしてもらわないとね
ここでPIC以外の話をする必要もないし
データシートか。 当然全くの白紙状態から読むのなら日本語データシートとその品番の実物用意して覚えるのが無難。 その時点で原文と翻訳の単語の突合せをしておき、次からは原文の方をセレクト。 追加機能が出てきた場合は、原文翻訳お好みで。
あのあと自分なりに勉強して
ttp://www8.plala.or.jp/InHisTime/index.html の方のプログラムを参考にしてPIC24FJ64GA002を使い、カラーセンサで読み取った色をLEDで光らすものを作りました(8色限定)
今の段階は『1色読み取る→1色発光』(動作済み)の繰り返しなのですが、今後 『10色読み取る→10色発光ループ』
をやりたいと思っています。まずは『10色読み取る→10色発光』をやろうと思い。
自分でトライしたことは3つあって、
@GETCOLOR関数の読み取り回数をRGBそれぞれ10回に増やしたこと(※1)
Afor文を使ってGETCOLORを10回呼び出したこと(※2)
Bif文の識別のセット数を増やしたこと(※3)
ですが、いずれもコンパイルは成功しましたが、動作しませんでした。
根本的な考え方が間違っているのかと思い、動作させるためにみなさんにアドバイスを
いただきたいと思っています。よろしくお願いします。
できればどこにどのような文を入れたらいいか具体的に仰っていただければ幸いです。
以下ソース(改行が多いと言われたのでつめてます)
voidGetColor(short sensitivity, int addTime, int* ptr) { staticunsignedintRED, GREEN, BLUE, tmp; staticunsignedshortcnt; GATE = 0; CK = 0; RANGE = sensitivity; delay_ms(2); GATE = 1; for (; addTime > 0; addTime--) { delay_ms(1)} GATE = 0; delay_us(4); //赤色データの取り込み RED = 0; for (cnt = 0; cnt < 12; cnt++) { CK = 1; CK = 0; tmp = DOUT << cnt; RED |= tmp; } *ptr = RED; ptr++; delay_us(3); //緑色データの取り込み (赤の取り込みとほぼ同じ) //青色データの取り込み (赤の取り込みとほぼ同じ) ※1『ここを増やした』 //********************************************************************** int main() { //変数の設定 static intcolor[30]; //ポート関連の設定 CLKDIV = 0;AD1PCFG = 0xFFFF;TRISA = 0b00010; TRISB = 0b0000000000000000; } ※2『int i を定義してfor(i=1,i<10,i++){GetColor(RANGE_SW, 100,)}をいれてみました。』 while(1){ GetColor(RANGE_SW, 100,) //カラーデータの取得 if ((color[0]> 65) && ((color[1]< 150) && (color[2]<200))){ LED_R = 0; LED_G = 1; LED_B = 1;//赤 } else if((color[0]< 65) && ((color[1]> 150) && (color[2]<200))){ LED_R = 1; LED_G = 0; LED_B = 1;//緑 ・ ・ ・ delay_ms(???) (青、黄、紫、水色、白、黒の8色を識別して光らす1セット) ※3 『color[3],[4],[5]と変えてif文のセット数を増やした』
>>446 「10色読み取る」って、どういうことなのかな。
>>447 半角スペースの連続とTABは使えないので全角スペースを使ってインデント
して書き込みすると読みやすくなるよ。
青黄紫水白黒をデジタルに10色判別したい、かな。 まず、そのカラーセンサの詳しいデータシートを用意。 更にそれなりのデジカメにはRGBカラー情報を表示させられるものがあるので、それを基準参考に 実際にどのような値が取得されるかを実測しておく。 また、目に見える色が、その色だとは限らない (蛍光白色LEDは白に見えても赤が抜けてる場合が多く、データ上白色とは認識されない) 使いたいパーツのデータシートを見せてもらえば、もっと突っ込めるけど、多分。
記事見つけた、同じS9706を使うのであれば、その10色ループ自体が間違い。
RGBを12bitでそれぞれデジタル値で1度に読むのが目的のICであるため。データシートのチャート部分を要熟読。
ttp://jp.hamamatsu.com/products/sensor-ssd/pd146/S9706/index_ja.html 取得した12bitRGB値をソフト処理でそれぞれの色を識別するコードを自力で書くしかない。
〜必要な物〜
機器の自発的な光源、スペクトル全帯域(RGBのグラフ)で含まれる波長が出来るだけ平坦なもの
(ディスクリートであれば、蛍光白色LEDと +空いた波長を埋める為の赤LED複数を、全波長が平らに近くなるように実測調整が恐らく無難)
(5m砲弾でデータ上もRGBが平坦なものが存在するのならそれが一番早い)
(ソフトで補正できるなら、平坦さはあまりこだわらなくてもおk)
でなければ太陽光を利用する、特定の蛍光灯下(不便)での使用となる。
└ある時は動いた、ある時は動かない等、測定器としては致命的な不都合が予想される。
└自分で使うだけが前提なら、測定条件を限定する、アマならばギリギリ許される。
〜前提ここまで〜
識別したい色を聞くに、仮にリード抵抗器の識別器を作ろうとしていたなら、
S9706等カラーセンサを使うとしたら1帯ごとにレンズで集光しなければならない、
その用途であれば、カラーセンサではなくデジカメ途用のイメージセンサを使うのが明らかに無難。
(どうしてもカラーセンサを使う場合は、カラーコードの取得だけで1秒弱はかかる上に精度コスト共に劣る)
単なる実験であれば別に気にしない。
また、アナログ→デジタルへのファジーな変換のため、全体の設計と、
ソフトでの処理もそこそこにレベルが要求されている。
ちなみに自分なら、このような物は作らずテスター当てて直読するレベル。
遊びで作ってみたい、以上の価値は恐らく無い。努力、時間への対価は恐ろしく低い。
つ、疲れた…
>>451 あなたは見当はずれのアドバイスしてる可能性たかし。
回答待ち、流石にこれは自分も自信は無い。
たぶん彼は、
何らかの方法で10色分を記憶させて人間の眼にわかる速度で繰り返し表示したい
のだと思うよ。
それを予想して先回りで答えを提示するのは、良くないと思うんで
>>448 と書いた。
どのような機能を実現したいのか、明確に記述することで、自分で気が付くからね。
飛ばしすぎたな、スマン。 青黄紫水白黒という選択、カラー受→カラー送の記事のすぐ上にカラーコードの表示機(デジタルテスタもどき) があってもしや、とした所。
>449 記述に関するアドバイスありがとうございます。 読みづらくて申し訳ありません。 >448,450 曖昧な表現ですいません。 『10色読み取る→10色発光』という表現についてですが、 LEDが表現できる、赤、青、緑、黄、紫、水色、白、黒の データを読み取り、一時ファイルに溜めておく作業を10回行い、 その後、一時ファイルを呼び出し、IF文で色を判断し、 順番通りに10連続で光らせるということです。 使っている部品は浜松ホトニクスのs9706です。 ちなみに読み取った光のRGBの数値データをLCDに映して赤、青、緑、黄、紫、水色、白、黒の8色 のを表現するのにカラーセンサで読み取ったRGBの値に閾値を設けてそれをIF文で判断させています。 表現する色については8色で十分なのですが、データを貯めて連続で出力することができなくて 困っています。
全然関係なかったな。ごめんなさい。
>>451 さん
たくさんが回答いただいているのに返事が遅くて申し訳ありません。
私には少しむつかしい内容ですが、もし使うことになったら参考にさせていただきます。
ありがとうございます。
>>454 さん
まさにそれです!
日本語でうまく伝えられずに申し訳ありません。
>>456 >ちなみに読み取った光のRGBの数値データをLCDに映して赤、青、緑、黄、紫、水色、白、黒の8色
のを表現するのにカラーセンサで読み取ったRGBの値に閾値を設けてそれをIF文で判断させています。
読み返したら意味が分からなかったので修正します。
ちなみに読み取った光のRGBの数値データをLCDに映して
それぞれの色に関してのサンプルデータはとりました。
それを元に閾値を設けてIF文で判断させています。
表現する色については8色で十分なのですが、
データを貯めて連続で出力することができなくて
困っています。
メモリが足らない、わけないよね、8KByteあったら多分。 10色の取得に結局、成功したのか?判断付きません。 単に8色貯めて、後で8色表示させるアルゴリズムが判らない、というだけ、か?
>>460 さん
多分メモリは大丈夫だと思います。
10色の取得に成功したか否かはLCDに出力させていないので
まだわかりません。ちょっとプログラムの出力をLCDに直して
試してみたいと思います。
アルゴリズムは自分なりに考えて(図は作っていません)プログラム組んだのですが
動かなくて困っています。何か他のアルゴリズムがあればぜひ参考にさせてください。
10色取得し出来ているかをまず確認してください。 申し訳ないけど、これではどうにも判りません。フォローここまで。
知りたいことに答えもせずソースも見ないでフォローとか言っちゃって・・・ オレみたいにわからない人は傍観してればいいのに、なぜしゃしゃり出るのだろう?
PICのAD変換を使って、100KΩのVR(Bカーブ)をプルアップして接続して、 読み取り値を液晶に0から100%で表示するには、読取値をどの様に計算させれば良いでしょうか? Cで書いており変数はintで定義しています。
>>456 > データを読み取り、一時ファイルに溜めておく作業を10回
これについて詳しく。とくにタイミングに関して。
>>464 ADが10ビットなら、AD結果を64倍してから655で割る。
すまん、intだと桁が溢れるね。unsigned intにしてくれ。
>>466 ありがとうございます。
変数宣言は unsigned intでするのですね。
10ビットだと、0から1023ですので
最大値で1023*655= 65472となりそれを64で割ると99.9572・・・ですが
Intだと、少数以下は自動的に四捨五入されると考えれば良いのでしょうか?
>>468 すまん小数点以下は切り捨てされるので654で割ってくれ。
>>646 100kΩはあかんのじゃないか。
ADCの注意事項を確認してくれ
>>646 に期待
という冗談はさておいて
>>464 ADが10ビットなら、1024で割って100を掛ければ、%表示になるかと。
ただし、最大でも1023/1024*100で、100%にはなり得ないわけだが・・・
ちなみに、VRの真ん中のピンの電圧をただ読むだけなら、
プルアップは要らないんじゃないかと。
>>470 信号源インピーダンス10kΩ以下推奨ってのは、
サンプル&ホールド用のキャパシタに充電させる時間の計算例が10kΩだから。
100kΩにするなら、それで計算して適切な時間、充電させればOK。
>>471 1024で割った時点で常にゼロっすよ。整数演算だから。
プルアップするなってのは言い忘れた。プルアップするとBカーブからズレる。
>>467 レスありがとうございます。わかりましたまずunsigned intに直してみます。
ちなみに上のソースは『1色読み込み→1色発光』のもので
『color[3]』にすれば正常に動作します。それに@とBかAとBを加えて
『10色読み込み→10色発光』にしようとしました。
まず@の
『GETCOLOR関数の読み取り回数をRGBそれぞれ10回に増やしたこと(※1)』について。
あっているかどうかはわかりませんが、私の中でソースの一番上の
「voidGetColorの関数をmain関数while(1)内のGetColor(RANGE_SW, 100,color)で読み込み実行している」
という認識があります。(ソースではcolorが抜けていました。すいません。)
データを*ptrに一時的に格納してそれをcolor[0],color[1]color[2]というふうに
picが自動で判断してくれていると思っています(1色読み込み→1色発光では動作したので)
なのでvoidGetColorのRGBの積算命令を増やしてしまえばいいと考えました。
A『for文を使ってGETCOLORを10回呼び出したこと(※2)』についてですが
これも@と同じ理由からfor(i=1,i<10,i++){GetColor(RANGE_SW, 100,color)}で
積算回数、*ptrの格納数を増やすために10回ループさせました。
ちなみに、AだけLCDに出力させてちゃんと読めているのか確認しましたが、
LCDモニタの表示は■■■■■■■■■■となって、正常に動きませんでした。
…タイミングについて答えられているかどうか心配ですが大丈夫でしょうか?
皆さまレスありがとうございます。
>>469 intに入るときに切捨てなのですね。
>>470 データシート見直してみます。
>>471 プルアップと言う表現が間違ってました。すみません。
>>473 逆に言えば実数の変数型使えば
>>471 さんの言われる1024で割る方法もOKと言う事でしょうか?
>>476 > intに入るときに切捨てなのですね。
ちがう。
計算途中も整数なんだよ。
このあたりはC言語とかの基本なんで、PIC固有じゃない。
> 逆に言えば実数の変数型使えば
>>471 さんの言われる1024で割る方法もOKと言う事でしょうか?
そうだけど、リソース食うよ。
プログラムもデータもメモリ消費が増えるし計算にも時間がかかるし。
>>474 厳しいことを言うようだが、まずはPIC以外でC言語をちゃんと習得してほしい。
至れり尽くせりのGUIデバッガがある環境のほうがいいだろう。
「10色読み込み」ってのは具体的に、どういうことなのかな。
カラーセンサーに読ませる色は、どのように与えてるの?
それを10回の読み込みの間に、どのように変化させてるの?
>>477 そもそもが整数と言うことは 3割る2は1と言う考えですね。
あと実数型使う場合のメモリ消費と時間ですが、一度自分なりに整数、実数で比較実験してみます。
ありがとうございました。
>>480 10回読み取らせる間、色紙と筒は固定した状態なのかな?
そもそも、どのような機能を作ろうとしているのか、それを明確にしようよ。 そうでないと、どういう結果を期待しているのか、わからないからさ。
>>476 AD変換で読み込んだ数値を100倍して1023で割るor10bit右シフト
小数点部分まで欲しかったら1000倍にすると最後の桁が小数点部分になり0〜1000の数字が得られる
どうせ16bit幅に納まらず32bitの計算するなら1640002倍して24ビット右シフトしたほうがいいかも。
いえ、固定はしません。 赤→青のように色をかえて読み取らせたいです。 カラーセンサを使ってフルカラーバーサライタを作りたいんです。
>>486 それなら10回読み取る時の間隔が短いと、同じ場所の色を10回読むことになるよね。
あとC言語の勉強もちっと、ちゃんとやろう。適当にいじって偶然うまくいった、、、なんてのを求めるのは時間かかりすぎるから。
>>486 がんばれ〜 くじけないでね
(オレならもっと手の届く範囲から始めるけど・・・)
今ならC言語をどう学習するのがいいのかねぇ
>>486 用意した原稿の上をなぞるとPICが一定周期で読み取るということなのかな。
秋月200円のロータリーエンコーダーだとうまく動くのに、安い70円のやつだと余分に動いたり逆転したりする。 なぜなんだろう・・・200円のもちゃんと動くのは最初だけで、いずれこうなるんだろうか・・・
493 :
404 :2013/01/29(火) 04:55:04.76 ID:dgods010
>>410 PICkit3で動いたってことは、電源は合っているということでは?
>>416 それビンゴです。
MPLAB用のファームと、PICkit3用のファームがあるんですね。
無事に動かすことができました。ありがとうございます。
>>487 一回あたりの積算時間は今のところ約0.1秒です。
確かに勉強不足です。すいません。
もしよろしければ、
自分ならこんなアルゴリズムでやるかもという考えをお持ちでしたら、
ぜひ参考にさせていただきたいのですかダメでしょうか?
>>489 温かいお言葉ありがとうございます。
>>491 上のソースはそうです。
用意した原稿の一点の色を読み取り、
if文で判断させて発光させます。
今は点しか読み取れないので、
これを線で読み取れるようにしたいです。
495 :
774ワット発電中さん :2013/01/29(火) 08:18:42.91 ID:QVo8//Sk
>>431 >>432 >>441 効いてる効いてるw
お前らみたいな国賊が国産品を敬遠したから、日本企業の苦境があるんだろ。
外国のマイコンは輸入を制限して、高額な関税を掛けるべき。
そんな中、シャープのような大企業様もあったわけで…
>>490 まっとうな教科書で基礎から積み上げていくのが早道だと思う。
>>494 積算って何? 用語は正しく使おうぜ。
>497 勉強してから出直してこいという言葉と受け取っておきます。 熱心に問題を聞いていただきありがとうございました。 ------------------------------------------------------- int iを定義して GetColor(RANGE_SW, 100, color[(i-1)*3])と入力したら passing argument 3 of 'GetColor' makes pointer from integer without a cast というエラーメッセージが出ました。 ぐぐっても答えらしき答えが見つかりませんでした。 『*3』を掛け算として使いたいのですが、 どうやら『*3』をポインタとして認識してしまっているようです。 何か改善案はないでしょうか。
>>498 > int iを定義して
日本ではC言語で「定義」と言ったら普通は#defineのことを指しますよ。
> どうやら『*3』をポインタとして認識してしまっているようです。
違う。
C言語ちゃんと勉強してよ。
>>498 >『*3』を掛け算として使いたいのですが、
>どうやら『*3』をポインタとして認識してしまっているようです。
違うよ。
>何か改善案はないでしょうか。
まともなC言語の本でも読んで勉強。あと英語も。
>>492 データシート見た?
70円(アルプス電気製)と200円(中華製)とではA相、B相のクリック安定点が異なる。
読み取りソフトによっては「200円はOKだけど70円はNG」も考えられる。
はい、勉強します。 int は宣言ですかね。 本読んでcolorの前に&をつけたら解決したんで もう大丈夫です。 結局エラーメッセージの意味はよくわかりませんが、 ちょっとずつ進んでいきます。 くれくればかりですいませんでした。
だめだこいつ 適当にソースコードを弄くってはコンパイルして、 エラーが出なくなったらヨシヨシとかいう試行錯誤するタイプは、 まったく成長しない。教えるだけ無駄。
根本的に、コーディングの経験が足りなさすぎの予感。 例の10色の物は、勉強方法としてはやや不向きで、完全な初心者が取り掛かるものではない。 出来るだけソフトウェアで完結するもの、また、PWM等の追加機能を勉強したい場合は、 一旦目的を捨てて、その機能だけを走らせる事に注力する。 自分が問題にぶち当たった時に用いる方法でもある。
>503,504 最後までお付き合い頂きありがとうございました。 ダメなことはわかっていますが、わからなくても成長が無くても期限までに これを仕上げなければいけないんです。 私が善意に甘えて、皆さんの気分を害されてしまったことは本当に申し訳なく思っています。 もう本当に自力で仕上げるので、これ以降書き込みは致しません。 最後に504さん、勉強法のアドバイスありがとうございます。 503さんは最後までどうしようもない私にお付き合いさせてしまい申し訳ありませんでした。
>>503 君は、文句を言いたいだけの役立たずだね。
>>505 これで、エラーがなくなったり動作したいrするのが、
「期限までに仕上げる」
とは言わないよな。
根本的に手段と目的が間違ってるな。
>>505 >ダメなことはわかっていますが、わからなくても成長が無くても期限までに
>これを仕上げなければいけないんです。
学生が何言ってんだ。
もういいよ、お開きにしようや…
上司からの指示で仕上げなければならないってことなら、 1.実はちゃんとできる人にも依頼している(←これがメインルーチン) 2.できなくても困らない、できたらラッキーの優先度の低い仕事 3.わざとできない人に指示し、本人の評価を下げるのが目的 4.教育実習なので頑張ってさえくれれば結果はどうでもいい 1の予感 学生なら4か
color[(i-1)*3] って、iに0を入れたとか、配列の数が足らないとか、 そんなんじゃないのかな?
実はただの宿題で、できなかったら、先生に往復ビンタ。
作ってみたいものがあり、独学でpicのC言語のプログラミングを始めたのですが、 が 期限までにこれを仕上げなければいけないんです。 になっとる
>>511 仮引数がポインタ型
そもそもcは配列のオーバーフロウのチェックはしないよ。
お前ら、俺が会社でA(Cする為にもっと教えろよ、使えねーなー
A(C ってなんだ?
>>506 いちおうアドバイスした上で匙を投げてるんだが。。。。
>>518 やめとけ、流れを見れば君の言い分は理解できる
それを承知で煽ってるんだろう
ひねくれてる人が常駐してるっぽいもんな
>>501 クリック位置の違いは問題じゃなさそうだった。
オシロを借りて、70円エンコーダーを5Vラインに10kΩプルアップして波形観測してみた。
すると、ON中に激しくバウンスが出る場所が何箇所かあった。
うんとゆっくり回しても起きるので接触不良っぽい(新品なのに)。200円のほうは綺麗。
チャタ避けに状態変化から2ms経って判断するので単発のバウンスは大丈夫なんだが、
読んだ場所が接触不良だったら誤認してもしょうがない。3回読んで多数決しなきゃダメかも。
それか、Cを大きくしてうんと丸めてやるか。
そこでコンデンサーですよ
ド素人が
>>521 状態変化から何msで読むってやり方は限界があるよ。1msくらいで読み続け
てステートマシンで処理すれば、ましになると思う。
>>524 今回はもう面倒なので、現状のソフトと200円エンコーダーで、70円のは諦めます(軽く回るので良かったんだけど)。
念のためCは毎秒3回転でも読める範囲で大きいのに変えときます。
次回、70円エンコーダー使う時は、エンコーダーだけ10F200あたりで専任にします。
ホビーユースだから妥協でいいんだけど、なんか敗北感が大きい・・・
ONのところがOFFになることがあっても逆はないんだから 超高速回転をあきらめれば簡単にならんか
馬鹿には無理
高速回転と言えばジョグダイヤルツマミが欲しいんだけど見つからない。 昔、千石で扱ってたらしいんだけど、これだけロータリーエンコーダー が売られてるのに何でないんだろ。 岩通アイセック φ33ジョグダイヤルツマミ [R3310-6-SWA]
>>525 敗北感があるという事は進歩の余地があるって事だから良いことだよ。ド素人には欠けてる物だ。
ちなみに、まともにソフトを組めば10Kの抵抗もしくはプルアップ抵抗のみで問題無く両方のエンコーダー差し替えsれば動く
interrupt関数内で割り込み禁止にしてなかったら、次の割り込みがあるとinterrupt関数の先頭に飛ばされるのでしょうか?
Cだとそのへんは勝手にうまくやってくれるけど、 アセンブラだと自由自在に意図と違った動作がさせられる
つうか、それ何度も割り込みに入ってるだけで、抜けるのも同じ回数かかるだけだけどな。 下手すっとすぐにスタック食い潰すからきいつけぇ
>>529 あるところにはあるんだね。ダイヤルノブっていうのが安いので買って
みようかな。
データをダウンロードして3Dプリンタで自作という時代になればいいな。
>>533 抜けるのにもおなじ回数なんですか・・・
何度でも割り込み処理中に割り込み処理の先頭に割り込めると便利だなーと思って
フローチャート段階で考えたのですが、まっとうなフローに書き換えます。
ありがとうございました。
>>534 それ、昔の無線機によく使われた形で、
回転軸が水平なら指入れるタイプと同じくらい回しやすいけど、
回転軸を垂直にした時は回しにくいよ。
>>529 穴形状違っても欲しいツマミがそこに有るならプラリペア使えば穴なんて合わせられるよ。
>>536 指で思い出したけど、古いHPのロジアナ。つまみに「えくぼ」があるタイプで
もちろん、つまみの外周にぎざぎざ付いてたけど、急いで回すときは内側の
「えくぼ」に指突っ込んでクルクル回したけど、これって邪道だったのかな?
>>535 割り込みは最小の処理で済む様にする。
時間がかかる処理は割り込みの外で。
割り込み内でループなんてもってのほか。
というのが私の持論
全部割り込みで処理して、普段は寝ている。 というのが電池駆動を多用するオレの持論。
電池駆動モノつくるけど、割り込みルーチン内では割り込みがあったことを記録するだけだよー。
メインルーチンは「割り込みから戻ったら寝る」だけで2行の時もある sleep goto $-1
普通は逆じゃね。 割り込みルーチンは、割り込み要因のフラグをクリアしたら即座にリターンするだけ。 やるとしても、何らかのソフトウェアなカウンタを+1するとか、それくらい。
持論を言ってるときに「普通は」とか言われても困る。 そして割り込みルーチンでフラグクリアするだけなら、 メインルーチンで時々フラグ見るようにして、割り込みは使わない。 オレはこういう人間。
>>544 割り込みオフでもSLEEPから復帰するか、そういや。
うん GIEクリアでsleepしても、起きて次を実行する。 機種によるんかな。一部機種しか使ったこと無いけど。
SLEEPしてれば割り込みルーチンどころか割り込みの記録すらいらないな
548 :
774ワット発電中さん :2013/01/30(水) 16:52:18.80 ID:lN5421eu
久しぶりにF1シリーズでアセンブラのテストコードを書き始めたら、 CONFIGあたりがエラーだらけ。 いろいろ調べたら、CとアセンブラでCONFIGの書き方が違うのね。 こんなもん一緒にしておけよ。
549 :
774ワット発電中さん :2013/01/30(水) 18:22:12.45 ID:VMp6konO
やすいので PIC 10F200 で簡単な物つくりたいんですが 今でもCコンパイラって有料しか無いんですか? アセンブラなら無料ってのはわかるけど。
>>549 Warezの "CCS 4.138"(pcwhd 4.138)とかあるみたいだけどねぇ。
おっと、Googleしちゃダメですぜ。
256ワードはアセンブラは避けて通れないような
ベースラインはなぁ
やる気があるみたいだから、あと10円出して10F322にしなさいとか言わないでおこう。
最初からアセンブラでこつこつ作っていれば簡単にモジュールの再利用出来るのに。 俺なんかz80の頃作った算術ライブラリが使ってあったりするし。
しかしググると10F200+Cのお手本が結構あるね。
>>549 すでに
>>551 さんが言っているように、マイクロチップ社のCコンパイラに無償版がある。
ただし、無償版はコンパイル結果がデカい。嫌がらせのようなサイズ増量されてるので、
コードメモリの容量が少なめの場合は、やりたい処理が入りきらないかも。
>>555 コンパイラにくっ付いて来るランタイムで十分でしょそれくらいの雑魚処理
>>558 一度でもコンパイラで計算処理書かせたら分かるはず。
分からないで知ったかしてるお前はド素人w
以前、10F200で「 (4.5秒 ON → 1秒 OFF)×3回 」というプログラムを書いたが やっぱりアセンブラよりCの方が断然楽だった。 下記のプログラムで、 ROM used: 71 (28%) RAM used: 5 (31%) at main() level RAM used: 6 (38%) worst case だった。 #include<10F200.h> #FUSES NOMCLR, NOPROTECT, NOWDT #use delay( CLOCK = 4MHz ) void main() { int i; for(i=0;i<3;i++){ OUTPUT_HIGH( PIN_B0 ); OUTPUT_HIGH( PIN_B1 ); OUTPUT_HIGH( PIN_B2 ); delay_ms(4500); OUTPUT_LOW( PIN_B0 ); OUTPUT_LOW( PIN_B1 ); OUTPUT_LOW( PIN_B2 ); delay_ms(1000); } }
16bit変数じゃPICがかわいそう
>>560 のループならintではなくcharで十分だな。
回数が固定なら、forループ内を関数にして、それを3回呼ぶのがコード最小かも。
int i; のこと? 中間コード(?)見たら、1Byteしか使ってないみたい。 その辺はコンパイラがうまくやってくれるんじゃないかな?
あとdeley_msはインライン展開されるけど、そこそこデカい。 このケースならdelay_ms(500)をchar型の引数の回数やる関数にしたほうがいい。
>>531 割り込み開始時に、自動的に全割り込み禁止(GIE)されるから、
意図的に許可しない限りは大丈夫。
PICは多重割り込み対応してないから、許可してしまうと
どうなるか分からない。(Wレジスタ等の内容が....)
普通?のマイコンだと、スタックにレジスタも退避するから
多重割り込み可能だけど。
>>560 内部オシレーターのキャリブレーション値の設定、
Cだとどうなるんだろ? 自動的にやってくれるのかな?
>>566 コンフィグまわりは1ワードごとに消去・書き込み。
だからキャリブレーションワードをhexファイルに含めなければ、消去も上書きもされない・・・はず。
まっとうなライターならね。
>>567 ベースラインのアセンブラだと、先頭に
movwf OSCCAL
って、書かないとだめだよね?
*リセットベクターが 0x00ff になってて、
0x00ff MOVLW XX
が入ってる
ディスアセンブルリスト見ても、入ってなさそうなんだよね。
そっか・・すまん・・
>>543 割り込み内でカウンタを+1ってグローバル変数使うの?
昔、グローバル変数は出来るだけ使うなって習ったんだけど。
>>571 もちろん。
ただし処理がアトミックになるように気をつけて、ね。
>>571 > 昔、グローバル変数は出来るだけ使うなって習ったんだけど。
そのときに理由は教えてもらわなかったの?
>>571 習った人に師事すればいいじゃん、こんなところに来る必要ないよ。
グローバル変数以外に割り込みルーチンから外部へ状態を伝える方法ってあるのか
ダイナミック点灯について質問何ですが、一つの画を表示させるのにトランジスタを224回切り替える計算になりました。実際にダイナミック点灯させた時にちらつきが出そうな気がするのですが、大丈夫だと思いますか?
>>577 何をどう表示してるのか分からないが、毎秒数十回以上更新すれば見られる
ようになるんじゃないの。
チラキキを感じるしくみを勉強すれば自分で判断できるからがんばれ
>>576 そのポインタはもちろんグローバルだよな?
>>545 タイマ割り込みだと、現在のタイマの値を読み出すとか。
>>543 出来るだけ使うなってことだろ。
絶対に使うなってわけじゃないし。
>>577 とりあえずやってみて、ちらつくと思ったら、
32ライン×7組とかにするといい。
15回毎秒でなんとか見られる。
LEDだったら、ラインに合わせてパターンの更新が必要になるから、
インターレースが効果的だったりする。
>>577 って言うか、ここはPIC専用のスレな訳だが、それ(ダイナミック点灯)って
PICに関係あるの?PICを使って制御するってことなのかな?
PICで制御するのでここにしたのですがヒカリモノ全般の方が内容に合っていますね。スレチでした
>>571 グローバル変数を使うと、関数がリエントラントじゃなくなるからだよ。
スタックに変数を積めないPICにはあまり関係無いと思うけど。
あと、変数設計をしっかりしないとコードが破綻する可能性があるから。
だけど、グローバル変数やgotoを頭から否定する人はプログラマとして信用ならない。
というのが私の持論w
>>586 HW層のBIOSを作ったことの無い人に
gotoやグローバル変数嫌いな人が多いと思う。
はっきり言って、その辺の取り決めは職業プログラマ限定なんだけどな。 プログラムの規模、コンパイラの最適化とCPUの構造、可読性や変数管理の煩雑さの回避等。 個人でPIC程度の規模であれば、書いたコードを全て頭の中に納められる人にとってはどうでもいい話。 下手にポインタにこだわるよりも、グローバル化したほうが可読性、変数管理は楽になる可能性すら。
すみません、力を貸してください。 秋月の互換ライターをmicrochipのデバイスアップデートするとでpic18f26k22が対応できるそうなのですけど 出来た方はいらっしゃいますか? 一向にできなくて泣きそうです。。
PICkitの方が安いのにね。
互換ライターのほうが手を加えやすいのかも・・・ というか秋月のライター系のキットは昔から値段が高いよね。
>>588 スタックが充分なら、グローバルなんて使わなくてもいいけど、
俺はミッドレンジ以下のPICではガシガシ使う。
理由がわかっててきちんと管理すれば問題ない。
昔、会社勤めのころ、会社が契約してた派手な大学教授が、4Bitマイコンで作った製品見て、
OOP使えばもっとよくなりますね、とか社長の前でのたまわって、技術部員全員下向いて笑いを
こらえるのに必死だった。
>>586 変数をスタック領域に確保できるレベルのマイコンでないと、
リエントラントな関数作れないと思う。(PIC24以上?)
>>594 RISC的にスタックをソフトウェアで実装すればいい。
それならベースラインでもOKだろう。
INDF FSR ほ〜らスタックだよ〜 使ってどうぞ
598 :
774ワット発電中さん :2013/02/01(金) 08:48:40.00 ID:e4K5psl/
>>586-587 ドシロウトにgotoやグローバル変数使わすと、取れないバグの宝庫で、ろくなことにならない。
高級言語ではgotoはほぼ消えてるし、グローバル変数は使いにくくされてる。
グローバルであってもネームスペースを分けさせられることが多い。
ま、アセンブラじゃ使わざるを得ないことは多いし、小規模プログラムではめんどくさいだけかもしれない。
>>598 すでに上のほうで触れられているが、
グローバル変数はスコープの問題よりも複数のコンテキストからアクセスされることのほうが問題だよ。
タイマーリレーを使う感覚で使える命令ってないの? やっぱタイマーカウント用のフラグとカウンターのセットのデータ領域確保して 割り込み使っていちいちカウントアップさせてやって メインループでカウント比較してやって って感じ?
>>598 Goto消してTry-Catch追加してれば世話無いな。
>>562-563 baseline midrange 用 CCS-C のintは8bitだよ。
589です。
>>590 さん、ありがとうございます。
1.62.14のデバイスファイルも適応したのですが、秋月の互換ライターはpic18f26k22を認識してくれず、no deviceと出るのです。
秋月さんに聞いてみたのですが、同じ手順で書き込みできるという返事をもらったものの、うちでは出来ないというのです。
>>591 さん、
>>592 さん、そうですよね。
新規で買う場合はそうするのですけど、いまある物が使えるらしいということで使おうとしています。
軽い改造でなんとかできるのならいいのですけど、できれば無改造でできればと思ってます。
あまり時間を費やすことも出来ないので、出来ないようならpic18f26k22は諦めようと思います。
ありがとうございます。
なんでネガティブな方向へ行くのよ
\4000〜\5000で純正品が手に入るなら安いと思うけどな。トラブルも調べやすいし。 まあ、学生は出費削るのも手段の1つではあるけれど。 よほどカット&トライに長けてるのなら、むしろ社外を選ぶべきかもしれんw
>>600 LEDをつけたり消したり程度なら、タイマ割り込み内でグローバル変数(wの
カウント値の特定のビットをポートに反映させるだけで良いと思う。
cなら1行だ。
LATA0 = count & 0x80 ? 1 : 0;
PICKIT3で4kしないで買えるけど、秋月PICKIT2互換機はZIFソケットで焼けるメリットはある
でもそれがメリットなのは、量産する時だけじゃないだろうか・・・
PICkit対応のアダプターキットってのも秋月で扱ってる。 デバイス専用のを作った方が安くて確実かもしれんが。
いまどきのは基板に表面実装サイズのが乗っかってるからゼロプレッシャーソケットはあんまし意味無いと思う。
>>607 ラダーみたいにフンダンにタイマー使いまくる場合は
やはりハナからタイマー100個くらいまで対応するようなデータシートと関数作ったほうがよさそうだね
教育機関では秋月のがよく使われているし、 自宅学習するために、同じようなライタを買うらしいよ。
そんな腐ったような教育機関なんてあるの?
大学ならそんな事もないけど、 高校の電気科とかなら、化石みたいな機器で平気で実習するからな。
つうか、日本の教育機関の癖に外国製の石とか使うなよな。
と言ったって国産のデバイスだけで出来ている電化製品なんてないけどね
そのうち国産の
そのうち国産のシリコン使えとか言い出す奴が出てくる。
俺のシリコン使え
>>615 むしろ大学なら教育なので、歴史を追うように基礎を積み上げていくので、古いものほど大切だと思う。
昔の74シリーズ等の標準ロジックで作られたCPU基板にLED沢山つけて動作が見えるようにしたものとか、
かなり貴重なお宝ですよ。PC上のシミュレータでやったら、味気がないでしょ。
>>619 普通には無いと思うよ
あるなら例を挙げてくれ
最近の専門校ってPIC使ってんだな。 昔はZ80だったのに。
原発ロボで有名になった某大学も基本PICだね アルデュイーノもボチボチ試してるみたいだけど。
アルデーノでは、得られるマイコン知識は少ないよね。
>>624 Z80系の小型マイコンボードの入手性が悪くなったからだと思う。
PICとAVRの両刀の身としては その値段ならatmega328pのほうがずっと良いと思っちゃうな
PIC32MXと比べるとどう?
身の丈にあったマイコンを好むので32bitはちょっと… 私はまだその域に達してないです
633 :
774ワット発電中さん :2013/02/02(土) 14:40:15.14 ID:DlKnG18E
32bitマイコンのコンパイラーって、intで宣言すると32bitで取るんでしょうか。 int=32bit long int =64bit とか
>632 AVRのどういうところがPICより良いのだろう。 よく言われる弱点はPIC24でほぼ解消してるし。 値段まで含めるとルネサスのR8Cに軍配が上がると思うけど、どう? 16bitでDIP20ピンで1個100円だよ。コードのフラッシュ2KBしかないけど。
>>633 > 32bitマイコンのコンパイラーって、intで宣言すると32bitで取るんでしょうか。
ものによるけど大抵そう。long intは大抵32bit。64bit使いたければlong long int。
intってのは、そのCPUのレジスタのビット幅だからな。
アキュムレータのビット幅だったわw
>>638 それいったらZ80なんて4ビットだぜ。
>>640 アキュムレータとALUは違う。このスレ馬鹿ばっかだな。
お利口さんはこんな所には来ない。 って事はこれを書いている僕もお馬鹿さん、 読んでいる君もお馬鹿さん。
さて、踊るか
C派にも派閥があるんだな、気をつけておこうか。
昔は 「その CPU で自然に取り扱える大きさを int とする」 といってたような。 「じゃぁ Z80 の C の場合 int を 8bit にすべきだろ」と 突っ込まれそうだけど。
CPUではなく処理系、だと思う。
BC, DE, HL「いやZ80は俺達あってこそだし」 IX, IY「僕達も居るよ...」
int型がアキュムレータのビット幅で決まるって合理的じゃん。 何か不都合あるの?
何ビットでもいいからコンパイラのマニュアルに従えよ。
アセンブラがちょっと高級化してVar変数使えりゃいいのに PUSH POPも自動
で、違うとかの否定文はさておいて、 何が正解なんだ?誰か肯定文で書いてくれ。
だからコンパイラによるって。
intで変数定義するのはバカ
そこで裏レジスタですよ
まあたしかに普通 INT16とかにtypedefするよな
お前の目の前のコンパイラが正解
開いた口が塞がらないんだろ、基礎中の基礎すら理解したくないとか…
>>25 自分の声でか?コンパイラで決まるってのは、妄想だろw
ターゲットで決まると言うべきだw
何だ? 余計な文章が入ってるな?
>>636 昔、そんなことを聞いたことがある。
今はそうでもない。
>>646 BDS-Cはintが8bitだったな。
LifeBoatが販売していたα-Cも中身はBDS-Cだったっけ。
ちなみにBDの意味は、Brain Damaged = 脳障害。
>>661 >BDS-Cはintが8bitだったな。
16bitだったよ。
どうせPICは変態なんだから、Wレジスタを8bit幅ではなく10bit幅にすればよかったのに。 そしたらADCの結果を分割せずに扱えたし・・・。
それWレジスタ だけじゃすまんだろ・・・
ぶれいんだむど!
>>664 よし、じゃあ全レジスタ10bit幅だ。
などと意味不明な供述をしており
誰が1バイト=8ビットと決めたのだ。
8ピンのPIC向けにCで書くときGPIO B0かGPIO F0かどちらが正解なの? データシート見ても解からなくて、MilroCの説見ても載ってないし、どこに書いてるの?
>>662 私の勘違いのようだ。
floatとかdoubleがない整数型のC compilerだった。
> 4. The variable types short int, long int, float and double are not supported.
昔、モトローラが1ビットのCPUを販売しておった。 ニブルもバイトもワードも関係なかった。 1ビットなのに何ビットでも処理できた。
>>663 10ビットは中途半端だから12にしとけ。これなら昔からあるし。
>>674 1ビットマイコンだぞ。
モトローラ1ダースで12ビットコンピュータか。
24Bitがいいな
>>675 お前、1ビット使ったこと無いだろ。脳内乙w
10ビットで作っておけばいざと成ったら人の指で実行出来るなw 紙とペンで追いかけ回して実行出来る
10進数…
もう1本のフラグを上げ下げ
PICスレにいると、変態が感染るぞw
10ビットが贅沢だというのなら9ビットでもいい。 UARTでデータ8ビットにパリティ1ビット付けたときに、 パリティだけ別の場所に分かれて格納されるのが嫌なんだ。
>>685 クソったれな周辺にマイコンが合わせるとかw
まともなUARTのIP組み込めばいいはなし。
もう面倒くさいから秋月でR8C M120AN買ってくるよ。 16bitでDIP20ピンなのに1個100円と安いしね。メモリ2KBは少ないが。 あと10円足すとLPCのDIPのが買えて、そっちは32bitで32KBだが・・・。
馬鹿にはそれがいい。
今時パリティw
高信頼性のマシンなら、普通に9bitメモリーで常にパリティー処理してるんだが、 昨今の機器はその辺をコスト削減で削っちゃってるからなぁ。
なんか、20年前にトリップしたみたいだw
もうPICはあったね
あったかなぁ 最初は紫外線で消すので面倒だった
>>671 レスありがとうございます。
MikroCではヘッダーファイルって基本的に使わないと思うのですが、
ソフトの中のどこかにあるのでしょうか?
>>649 ヘッダファイルはないよ。
GPIO.B0 とかでOK。っていうか1回記述してビルドして
書き込んで動作するかどうか確かめてみればいいんでないかい?
動作すればOK、動作しなければ当然ダメ。まずは手を動かしてみよう。
defsってフォルダがあるはず
>>695 ありがとうございます。
仰る通り実際やってみれば良いんですよね。
実験してみます。
ググってたら、GPIO.B0の様に”B”で書いてるサイトと”F”のところが有り
あるサイトでは,バージョンアップ(MikroC)で変わった様な記述を見たので混乱していました。
それにしてもMikloCって日本語情報少ないですね。
MikroCはヘルプとサンプルコード読めば大体の事は書いてあるから億劫がらずに英語を読めば良い
589です、先日はいろいろありがとうございました。 picが壊れていたのか、別のに変えたところ認識しました。 お騒がせしてすみませんでした。 あと本当に初歩的なことで申し訳ないのですけど、MPLAB X IDE v1.60についてですけど こちらで聞いても大丈夫でしょうか。
新しいことにチャレンジする人間が少ないから、Xを知らない人が多いみたいだよ。 でもどうぞ。
XとXC組み合わせて使ってるよ
>>700 ド素人にはお勧めしないけどなんでxを使おうと思った?
MACしか持ってないとかいうふざけた理由なら中古でもいいからWINDOWSマシンを買うべし。
Xのほうが便利なとこもいっぱいあるぞ
わざわざマシン用意する程の差はない。 Windows->Macの移行組だが。
>>704 今のところ、ド素人にお勧め出来る状態じゃない。
やりたいならやれば良いが、そんな下らん事に時間を費やすよりも時間を有意義に使えと言ってる。
こんな所で手取り足取り聞かなきゃまともに動かせない奴が使える程の完成度には程遠い。
船橋さんこんばんは
正常に動く環境であるならば無理して最新のものを用意しないのが無難、トラブルの元。 とかなんとか。
声のでかい人に限って0.xxを10分使っただけとかだったりするけどな。
初心者ほど無意味に新しいもの使うけど結局ものにならない。
412です。PICkit3を手に入れ、先週末ソケット・アダプタを作ったところです。 昔はアセンブラでしたが今度はCかなと思いつつ MPLAB Xを使おうと思っていたのですが不都合があるのでしょうか。
新参者に先を越されると不愉快だから叩いておこうというわけですね
MPLAB Xは、シミュレーションがまともにできなかったから、通常のMPLABに戻した。
MPLAB X使ってるけど、シミュレータ機能があることすら知らなかったwww
>>711 無意味に古いものを使うのも、よくないぞー。
たとえばさ今時PIC16F84Aとか言われてもなー。
>>715 だれが84の話してんだよ。統失かw
MPLAB Xを初心者に勧める意味は何なんだ?言ってみろ。
「たとえばさ」という文字が見えているオレには違和感ないけど。 初心者が使う基本的な部分はXで不都合無いよ。 オレも16F1827とXで半年前に始めたクチだから。
>>716 あえて古いものを使う理由はないでしょう。
爺さん達は放っておこうぜ。
Windows8使って同じこと言えんの
無意味な派閥争いだからな、本当に意味は無い。 どちらも使えてる以上どちらも何の問題も無い、それだけ。
Windows8はmicrochip社の製品でもないし、さすがにスレチ
爺さんは使い慣れてるから、古いものが良いっていてるだけ 初心者が最新のもの使って慣れてきたら、古いもの使えないってなるw
700です。
>>703 さん、フリーの環境でpic18f26k22のプログラムが作れるもので
なるたけ新しい物のほうがよいと思ったからです。
他に良いものがありますでしょうか。
んなチラ裏の書き込み1件で使えないなんて決め付けんなよ 大した手間じゃないんだし、両方インストールして試せばいい話だ そもそも本を参考にするなら記事と同じ環境を使うだろう
別に使ってもいいよ、このスレで一々使い方を聞かないと言うのならね。
あたらしもん好きは人柱や無給デバッガと言ってだな 乙
MPLABも適当な時期にサポ切られて 終わるの目に見えてるだろ、 その時泣いても知らん
IDEなんてただの道具。固執するのは馬鹿。 今はどっちも使ってみて使いやすい方使えばいいだけの話。
>>699 こちらのサイトを見ますと、例えば電子サイコロの12F683のソースでGPIO.F0と言うように定義されてるのですが、
自分のMikroCのdefsフォルダのP12F683.cを見るとGPIO.B0と定義されていて、ますます、”B”と”F”がどちらが正しいのか解らなくなってしまいました。
これはMikroCのヴァージョンの違いでしょうか?
MPLAB X の話題ばかりになると、 古い人達が寂しくなるから阻止したいという気持ちも判らなくはない。
ここまでMPLAB Xの話題だけで、ド素人以外がまともに使ってる話無しw
mikroCと言っても無印とproでもう大分違うからハッキリした方がいいと思う
>>735 すみませんでした。
MikroC ProのVer5.61です。
>>735 やはり、ヴァージョンによって、定義の書き方(”F”と”B”)が違うのでしょうか?
それと、正しくはmikroCですね。最初が大文字じゃなかったです。
mikroCは、バージョンによって色々変わるみたいだよ。
>>699 のサイトのソースコードは参考程度にして、Helpとか見た方がいいのかもしれない。
>>738 そうなのですか。
ヘルプやマニュアルには特に記載がなく、ヘルプ、マニュアルのサンプルコード通りに作ってはいるのですが、
正解が見つからず、モヤモヤしていました。
こちらのスレでdefsフォルダを教えてもらったのですが、そこに書かれてることと、参考に教えていただいた
サイトでの記述がまた違って、結局正解がわからないままでした。
バージョンの都合だったのならば、今期バージョンから使い始めた私とネットで調べたものが違っても不思議ではないですね。
ありがとうございました。
ド玄人のパソコンは古くてMPLAB Xは、重くて使えないのだろうな。 玄人気取りのわりにしよぼい
mikroC使ってる人って変なところで時間食われてるような気がする。
>>714 v1.60 になってからは、とりあえずまともに動いてそう。(遅いけど)
話の流れをざっと見たが、MPLABで良かったのか。 久しぶりにPIC再開して、PICkit3でC言語とかいう流れで、 何も考えずにMPLAB X選んでしまった。 よく考えてみれば、付属CD-ROMはMPLABだったし。
シミュレータごときで大騒ぎしちゃって… みなさんシミュレータでデバッグ出来ちゃうようなかんたんなお仕事なんですね?
みなさん? お仕事? シミュレーターで大騒ぎ? 理解力が低いですね
肩身狭いですけど助けてください。 MPLAB XとXC8を使っているのですけど、ビルド失敗します。 (908) exit status = 1 make[2]: *** [build/default/production/main.p1] Error 1 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2 このようなエラーが出ます。 XC8だからでしょうか、main.p1というファイルはありませんし、.build-confや.build-implはLinuxファイルでしょうか。 Makefile-default.mkに記述があるものの、自動で作成されたままです。 修正方法とか、どうしたらいいのかヒントなどありましたら教えてください。 忙しいところすみませんが、よろしくお願いします。
ESPさーん?
や、こんな説明不十分な質問しか出来ない奴はMPLABでだって つまづくよ
「や、」なんて書く奴があれこれ言う資格無いわ
プロジェクトファイルまるごとうpしてくれ
>>748 さん
背伸びに見えてしまってごめんなさい。
フリーで使えるものがこれ以外に見つからなかったのです。
>>749 さん、751さん
まとめてしまって申し訳ありません。
どこからどこまでを載せればいいのかわからないので、一部分しか載せませんでした。
ごめんなさい。
>>746 main.p1がないってコトはmain.cのコンパイルに失敗してる。
今一度cleanしてからbuildしてみて、main.cのコンパイル時に
なんかエラーしてないか確認してみそ。
mkとかconfとかはたぶん気にしなくておk。
>>752 フリーどうのこうのいう以前の問題だから、背伸びといわれてるのにも気がついてないんだろ?
死ぬほどソース見直せ。
>>753 ファイルエンコーディングが違うんじゃマイカ?
プロジェクトプロパティのGeneralで指定し直してみろ。
みんながこれまで使ってた環境を用意すれば何ともなく動くと思うよ ちゃんと戦陣が地雷原突破して歩ける道作り上げて来たんだから ろくに訓練もせずに地雷原に落ちたってもあちこちの地雷踏むだけ 馬鹿にはpicは無理
老兵は消え差れ
かなり敷居は低いんですけどね… それでも無理なら、素直に身を引け言うことや。
>>756 古いもの・・・すでに発見された多数の地雷が放置されているが、古参兵は地雷の位置を知っているので問題ない。
しかし新参兵は知らないので、地雷を踏む確率が高い。
新しいもの・・・すでに発見された地雷の大半は除去されているので、新参兵でも地雷を踏む確率が低い。
そして、古参兵が得意げに新参兵に安全なルートを教えて威張ることができない。
12Fなんだけど。 movwf PCLとかって、goto ○○等と同じクロック数がかかるのかね?
罵倒ばかりしてるヤツは
>>760 に答えられるのだろうかね
○○のかね? などという聞き方をする時点で釣りだろ。
本気で知りたかったら、gotoと比較してみれば、すぐにわかる。 それをしないで人に聞くってことは、知りたくないのだろう。
>>760 データシートに動作の違いが書いてある。
そもそもgotoと比べること自体がナンセンス。
クロック数なんぞ気にしてるやつがどのくらいいるのか気にはなる
様々な周辺機能が内蔵されるようになって、 クロック数えてタイミング合うようにコードを書くことなくなったな。
おれはPLLの分周と位相比較にPIC使ってるから、クロック数と割り込みの レイテンシにはいつも気を使ってる。
昔から数えない奴は数えないし、数える奴は数える。それだけ。
タスクディスパッチャとか高速の(高頻度の)割り込みとかのように 数えなければいけない時は数えるし、 ちゃんと計算通りになっているか実行時間の実測もする。
>>759 新しいもの・・・すでに発見された地雷の大半は除去されているが、
別の場所に新たな地雷が埋設されている。
>>753 さん、ありがとうございます。
mkとかconfとかは気にしなくてもいいのなら、ちょっと的を絞って見れそうです。
ありがとうございます。
>>764 どのへんにある?
PCL/PCLATHのあたりには見当たらなかった。
命令セットの表
アナログな電子工作で色々と作ってきたのですが、初めてPICを始めようと思います。 プログラムは初めての経験ですがCでやろうと思います。 PICは何から入門するのがとっつき易いでしょうか? 最初はとにかくプログラムの方の勉強重視で入出力を中心に学ぼうと思います。 秋月で見ていると10F200と言うものが何も余計な機能のない基本形でしょうか? これから始めるのが吉でしょうか?
PICでプログラム入門はやめとけ
>>773 12F322の日本語データシートp160に書いてあるね
<引用>
3: プログラム カウンタ(PC) が変更された場合、あるいは条件付きテストの結果が真の場合、命令実行には2 サイクル
が必要です。2 サイクル目は、NOP として実行されます。
>>775 PIC使うなら、16F1xxx (12F1xxx)以上のを使って、Cで書くのが良いと思う。
(アセンブラは初心者だと、条件分岐がややこしい)
10F200とかBaselineのは、アセンブラでガシガシ書けて、コスト重視の人向け。
>>775 出直し組の412です。もしPICのことをあまりご存知なくプログラミング経験もないと
PICの知識習得とC言語プログラミングの両方を同時進行でマスターしないといけないので
確かに大変かもしれません。一方でわかりにくい点が出てくると全体がストップします。
ハードを伴わない環境でプログラミング演習されてからの方が良いように思います。
>>779 何かのハードが無いと つまらん
LチカやPWMでDCモーター動かすところから始めれば
最初で16Fはないわ 18Fから行けや
最初からdspicでアセンブラがマジお勧め。
ガキっぽいスレだよねここ
爺は頭弱いからイラネ。餓鬼の頃からやってりゃ少しは進歩する。
c覚えるなら、unix系OS上で、K&Rの宿題を全部やるのが基本。
ポケコンで覚えたわ、あれはまさに基礎しかできない。
いまどきのCコンパイラANSIだからさ、K&Rで書いたらコンパイル通らなかったりして。
そこで「はじめてのC」ですよ。
K&Rは第2版でANSI準拠済みだ 表紙にはっきり書いてあるぞ
さあ始まります、C信者の派閥間での仁義なき戦いの火蓋が今、今まさに切って落とされようとしています!
所詮CはC。アセンブラにはかなわない
俺はしろうとクマくんが役に立った
>>790 評論家気取りで批判すれば偉いと思っている輩が多いのは閉口するな。
批判はバカでも出来て簡単だが、良いところを評価するのは知識や教養が必要。
この酷評でもC言語の要のポインターという概念を簡素な例で示しているのに分かりにくいとほざいている。
>評論家気取りで批判すれば偉いと思っている輩が多いのは閉口するな。 そういうあなたは同じ事してませんかね?
ほんとに始まっちゃった… 古い記述法が害悪なのは、高級言語の特徴の一つだというのにね…
PICスレでやるのはスレ違いだろ。
>>792 Cでアセンブラに処理速度で勝ったことがある。
アセンブラでターゲットCPUのパイプラインに合わせてチマチマと並べ替えやってる間に、
Cで総当たり的に様々なバリエーションを書いてベンチマークして最速のを選び出したら、
勝っちゃった。
>>794 今時strcpyは使用禁止ですよ。
まぁマイコンだとリソースが限られているから、危険を承知でstrcpyを使うかもしれんが。
>>795 自分も馬鹿です。
Cは、ポインターに始まりポインター終わる。
ポインターちゃんをバカにしないでね。
>>790 プログラムって自分で書くだけじゃなくて他人の書いたのを目にすることも普通にあるもんなので、
> Cプログラムでよく見かけるという理由から、こうした慣用法はマスターすべきである。
という主張は間違いではないと思う。
>Cでアセンブラに処理速度で勝ったことがある。 > >アセンブラでターゲットCPUのパイプラインに合わせてチマチマと並べ替えやってる間に、 >Cで総当たり的に様々なバリエーションを書いてベンチマークして最速のを選び出したら、 >勝っちゃった。 全く意味の無い話を持ち込んでしまったな。 理論上同じ以上の速度を出せるのがアセンブラ、そしてそれは理論上の話。 また、16PIC程度の極々単純なロジックであれば、この辺の話は全く無意味であるということも同時に記述しておく。 24や32辺りからは、Cで書くのが当然とも。
>>790 >while (*s++ = *t++)
こういう記述って綺麗だなー、とは思う。使いこなせる自信ないけど。
仕事で良いコード書く人達って、この手の感覚持ちなのかな?
理論以上の速度が出せるのがアセンブラ。そしてそれはアセンブラ爺の脳内思い出話。
>>802 それって、簡単にメモリー破壊するから危険な記述なんだけどな。
趣味でやる分にはいいけど、工業製品でそんなコード書いたら袋叩きにされる。
>>801 同じ工数でCのほうが速いコードを書ける、っていう話なんだが。
>>802 とにかく仕事が早いが、後工程で死屍累々だが知ったこっちゃない、そういうタイプの人は
会社の上からの評価は高いが、周囲からは恨まれまくる。
>>804 ポインターが無ければメモリーマッブドIOをストラクチャアで等でダイレクトにアクセス出来ない。
USBのエンドポイントからデータを取り出すのはポインターを使わずに出来るのか?DMAも間違えば暴走するから危険ですか?
ついでなんでこっちも手を入れておこうか。 >Cは、ポインターに始まりポインター終わる。 C言語は高級言語としてはかなり早期に作られた言語で、メモリアドレスを直接触れるような記述も出来るように配慮されていた。それがポインタ。 その点が現代のオブジェクト指向と相反する形になりつつあるため、特に直接ポインタを投げ込む<string.h>などは既に使用を差し控える方向に向かっている。 また、Windowプログラミングの話にするしかないが、コンパイラにしても、そこを配慮した最適化を行う方向にコンパイラの設計を行っているのが、吐かれるコードから見て取れる。 スタンダードで言えば既にポインタを使うことは非推奨、アマチュアであれば良くも悪くもないが、古い記述はコンパイラを無視しているだけという点は理解しておかなければならない。 更についで >同じ工数でCのほうが速いコードを書ける、っていう話なんだが。 当然やろな、アセンブラで最適化を行うのは時間の無駄遣い。お互いの言葉の齟齬。 上の話に繋げるけど、コンパイラが想定している記述を行っている限りはCの方が圧倒的に優秀。 そのかわり、考慮されてない記述であった場合、そこに拘ってしまったならば害悪でしかない、としておこうか。 それがコンパイラであり、高級言語の仕様。
そろそろテスターが爆発するとか言い出しそうな気がする
>>807 PIC等のワンチップマイコンで使うC言語の話だよ。
アセンブラの代用になる言語と設計されたのがC言語で、
k&Rの本もunixのカーネルをPDPに構築したときの最下層のコーディングが基本になっている。
パソコンやOS上で動かすアプリケーションとは流儀が違うことを理解して欲しい。
あー、あれか、そういうことか。自分の知らない部分やな。 ベターを目指すのではなくベストを目指す記述法ということか、これは失敬。 有用かもしれないね、16でどうなるかまでは想像はつかないけど。
>>791 >さあ始まります、C信者の派閥間での仁義なき戦いの火蓋が今、今まさに切って落とされようとしています!
大ハッスルですね。やりたくてしょうがなかったんでしょ?
出来るだけ早くに終わらせたかったんや、下手したら次スレの半ばまでやられそうやからな。 まあ、これで大体終わったと思われるので、自分はここで終わっとこ。
>>806 わかってないだろ。
件の記述は下手すると無限ループでハングアップだぜ。
WDTで止っても、データ破壊されてるわけで。
>>798 Cしか出来ない奴が書けばそういう事もあるだろう。
そもそも、
「総当たり的に様々なバリエーションを書いてベンチマークして最速のを選び出したら」
とかやってる時点でド素人バレバレw
アセンブラも出来る奴は頭の中でアルゴリズムを選択し、コーディングする時にはひたすらコーディングに勤しむ。
Cしか出来ない奴とは出来が違うのだよw
>>814 こじれるだけやから、お前はもう帰ってええぞ。
Cしか出来ないヤツとしておきながら、アセンブラソースを「書けば」という前置きが出てくるのが物凄いパラドクス。
>>813 下手しないようにデバッグしろよな。
因みに
*a++ = *b++;
や a+= n;
とかは、当時のミニコンのアセンブラで一行のニーモニックだったから手動最適化になったらしいです。
レジスター変数も正直にレジスターに格納していた。
屑コード書いて、じっくり時間かけてデバッグする、そんな効率の悪いことやりたくない。
ファームプログラム アプリケーションプログラム webプログラム は、やり方が違う
マイコンの性能やメモリが大きくなってきたので、やり方も変ってきてる。 基本的には後追いなので、先人が築いてきたものを素直に勉強するのがいい。
>>813 >件の記述は下手すると無限ループでハングアップだぜ。
不適切な呼び出し方しても途中で止まれば良い、とも限らんだろ。
strcpy()より「安全」なstrlcpy()には↓みたいな見解もあるぞ。
http://ja.wikipedia.org/wiki/Strlcpy > 一方で、GNU Cライブラリ (glibc) の開発者たちは、GNU Coding Standardsで禁じられている
> 「長い行を黙って切り詰める」関数である、このような仕様の関数はバグである、いい加減な
> プログラムを助長してしまう、新たなセキュリティ問題を生む、など否定的な見解を示しており、
> 標準規格に含まれない限りはglibcには実装しない意向である。
>>822 strcpyとstrlcpyは返り値が違う。
返り値をチェックすれば切り詰めが行われたかどうか分かる。
が、しかし、
人間はミスをするものだから、strlcpyの第三引数に間違ったものを渡すミスはありうる。
古参に受けが悪いのは、C言語の古典的な使い方を否定してるからかもね。
返り値がchar*ではなくsize_tだと、C言語を否定されてると思われるのかも。
>>816 Cしか出来ない奴のコードに勝てないレベルじゃアセンブラが出来るとは言わない。
「アセンブラが出来る」の定義がどんどん微妙に… そうなると、「Cだけしかできない」の中にある「できる」もかなりシビアそうだな。
>>790 俺はそれ正しい評価だと思うw
Cを使えるようになった人が確認の為に使う用途には最適。
むしろK&Rが想定してるC言語入門者はアセンブラプログラマだと思う。
どう置き換えて考えればいいか?を念頭に置けば詳細な説明も意味が出てくる。
ガチでプログラミングが出来ない人は、最初に読んでも細かすぎてあまり意味が無い。
もぅと簡易な入門書から入るか、NETの入門記事書いてる所を参考にした方が良いと思う。
ポインタが面倒に思われるのは、配列と混ぜて教えられるからだと思う。
それは後で出来ればいい話で、そういうトリッキーな使い方をあたりまえとするから判らなくなる。
最初はポインタ演算子とアドレス演算子の使い方を覚えれば、あとは何とかなる。
双方のチャンピオン対決以外は技量の影響が大きくて比較にならず。 あるいは両方に精通した1人が両方書いて比べる。 今までの戯論には意味無し。
基礎からちゃんと積み上げてくればC言語のポインタなんて何の苦もない。 C言語の難しいところは、いかに品質とくに保守性の良いコードを書くかだ。 文法で躓く人には、向いてないから転職したほうがいいよとアドバイスしてる。
>>804 ,805
なるほど。記述自体は簡潔で無駄が無く、一人で全部を把握している趣味なら有り。
危険ではあるから、誰がいつ触るか分からない、仕事や集団開発では慎まれるべき。という感じなのか。
>>826 初めてアセンブラ触ったとき、Cで感じた疑問が概ね解決した。
ポインタとか、文字列は配列とかの、なぜそうなのか。って辺りが。
低い所を知ってる人は見え方が違うんだろうなぁ。
く〜盛り上がってるところに参戦できなかったわw
C言語なんて高級言語じゃなくて簡易アセンブラなんだから 言語に任せずにプログラマがいちいちエラーが出ないようにチェックしてやる もんなんだよww
連休前の平日昼間から、なんでこんな宗教戦争してるのか 在宅プログラマ?
何を湧いてるのかと思ったら、MPLAB VS MPLAB X以上につまらん。
最初の質問者の助けになっていない
>>777 いい番号だ。
ありがとね。
初めの認識でよかったようだ。
>>764 が動作が違いそうな記述をするもんだから、ちょっとドキドキした。
>>833 そりゃMPLAB X陣営がド素人だからな。VSにならんだろw
日本語も通じないとは・・・
日本語が理解出来ないとはw
ポインタとポインタ変数の違いでつまずいたよね?
まず違いがあるのかどうかでつまずく
キャリーフラグやローテート命令を使えば簡単にできる処理ならCの負け
要は使い分けだな。
K&Rは、プロセッサアーキテクチャとアセンブリ言語プログラミングを理解している人 向けの本。コンピュータ専門家のための、C言語入門書。コンピュータ入門書じゃない。 Unixシステムインターフェースの章は最高に楽しいよね。
プロセッサアーキテクチャとアセンブリ言語プログラミングを知らない人が C言語プログラムを書くことが根本的な間違いだな
なぜ一度に言えない
>>842 はたしてそうでしょうか?
試しにCRC16の計算をアセンブラで作ってくれ。
Cのは作るから比べませんか?
意味のないこと
そういうのはあんまり高級言語であることが活きてこない 8QUEENとかハノイの塔とかを解くプログラムをアセンブラで作ってみれ
>>849 ローテートなら負けないらしいので
シフト演算だらけのCRCをアセンブラで
作って欲しかっただけ。
めんどくさいぞ。綺麗に組むとCと速度差がなくなるのでお手並みを拝見したい。
>>850 >ローテートなら負けないらしいので
>シフト演算だらけのCRCをアセンブラで
ローテートについては負けが分かってるからシフトで勝負ってこと?
C言語にはローテートの演算子がないからなー。 一部のコンパイラは組込み関数で持ってたりするが。
自慢の高速ソースまだ〜?
中濃なソースキボン
中濃て それは調味料のソースやがなー ユーモアのセンスあるお人やなー
>>849 ハノイは簡単だぞ
情報処理試験のアセンブラで出題されてた
本当はPICなんか使ったこと無いヤツが騒いでいるの?
Cがアセンブラに負けると聞いて飛んできましたって感じ PIC上で動いてるならどっちでもいいじゃんw
まあcで遊びたいならunixとかのほうが遊びがいがあるな 変態picの流儀はpicでしか通用しないし
PICスレなんだから変態PICの流儀を無視した一般論はスレチでしょ
なんでアセンブラに固執するんだろう。 Cの方がラクチンなのに。
一生懸命書いたCよりも普通に書いたアセンブラの方が10倍速い ドン臭いプログラムで良ければCで十分。
ボトルシップならピンセットで組み立てればいいが、 クルーザーをピンセットで組み立てる奴ば馬鹿だ。
制御向けに小さなMCU使っていると「コンパクトで早い」プログラムが欲しい場合がある。 するってーと、じゃアセンブラで書こうかとなっちまう。 どうでもいい時は、ちゃっちゃっとCで済ませる。
ここPICのスレだろ?なんで言語スレになってんだ? 大体こんな話はTPOをわきまえれば済むだけ事
>>862 Aもしたこと無い奴がCよりも自分でかくほうが10倍良いとは此れ如何に。
有料のC買ってこい
USBターゲットすら書きたがらない奴がアセンブラ持ち上げるとか笑わせるな。 お前らはライブラリを組み合わせるだけのお手軽プログラミングで十分なんだろ
遠吠えするヤツがやたら多いのはナゼ? 同じ人?
>>863 ソフトは頭のいい奴が書いてれば、幾ら大きなモジュールでさえインクルードの一文で操作出来る。
原子の位置を操作するツールと宇宙を動かすツールが一つのテキストエディタで済んでしまうのがソフトの世界。
能力の無い奴はプログラムがスパゲッティで再利用不可能だから毎回一から書かなければいけなくなる
それはアセンブラだろうとCだろうと同じだが、
>>863 は単に能力が未熟で既成のCライブラリを使う能力しか無いから
Cしか使えないってだけの話だ。哀れw
>>869 アセンブラで書くと気軽にチップを変えられないじゃん。
一長一短だろ使いたいやつを使えばいいだろう
「どっちがつおい?」みたいなのはもういいと思う。
オプティマイズ機能付いたコンパイラが最強。 手汗では絶対勝てない。
>>870 そうでも無い。チップの定義ファイルはマイクロチップが書いた物をインクルードするだけだから
同じシリーズ間ならほぼ問題ないし、違うシリーズならそれ用に修正したライブラリを用意すれば良いだけ。
Cだとそれを自分でしなくて済むけど、万人向けだから無駄が多すぎて速度は遅いしとサイズがでかい。
その上Cだとバージョンが変わっただけで出来上がったHEXの挙動が変わったりCのメーカーが違っても動かない。
xxのCでコンパイルしないと動かない様な方言使うより、標準語のアセンブラが便利。
> 違うシリーズならそれ用に修正したライブラリを用意すれば良いだけ 簡単に言ってくれるね。 PIC16から24や32に変えるのは、そんなに素早くできないわ。 > Cだとバージョンが変わっただけで出来上がったHEXの挙動が変わったりCのメーカーが違っても動かない。 それは書き方が悪いんじゃね?
アセンブラで書ける程度のプログラムならアセンブラで書けばいいでしょ。 ケントンプソンやデニスリッチーたちですら、最初アセンブラで書いていたUnixをわざわざ Cで書き直して、機能アップをした。 逆に言えば、アセンブラだけでかくプログラムでは、機能や品質、移植性に限界があるって ことでしょうに。 そうじゃないと言う彼らよりも賢いアセンブラ厨は、とりあえずlinuxやBSDに貢献して来い、ってこった。
知らなくても出来るのと、知った上で〜 という話をしても右から左だろうから仕方ないだろう。
昔はアセンブラで書いてたよ。 クロック数えてPWMとUARTをソフトウェアで実装してた。 今はCで書いてるよ。 PWMもUARTもPICがハードウェアで持ってるからね。 アセンブラとCの両方を使った上で言うけれども、 大量生産品でなければ、 Cで済むならCで済ませたほうがいい。 ROMやRAMのサイズが大きくなる点は、 大容量の型番のPICを使えばいいんだし。
そんなことは判ってるんだよ 単に、アセンブラが使えるという特殊技能を誉めて欲しいだけなんだから、 ふーん凄いねって言ってあげれば丸く収まるんだ
アセンブラなんてCより簡単だよ。単に時間と手間がかかるだけで。
>>876 http://www.os2ezine.com/20030516/page_4.html > Only in the number of games is where Windows still wins, but OS/2 is a good second.
> The reason for all these nice things is that most OS/2 parts are written in assembler,
> like the kernel and drivers, even major chunks of the PM are written in assembler.
> Most other OS'es are written in C/C++ and it shows, as they need far faster CPU's
> and way more memory.
OS/2はカーネルからシェルまでアセンブラで書いてたみたいね。
> 逆に言えば、アセンブラだけでかくプログラムでは、機能や品質、移植性に限界があるって
> ことでしょうに。
Unixの例だけを挙げて結論付けるのは聊か早計じゃないの?
OS/2を引き合いに出すからには、OS/2をしっかり使い込んでいるんだろうな???
>>875 >PIC16から24や32に変えるのは、そんなに素早くできないわ。
それは自分で作ったライブラリじゃ無いからだろ。必要な部分から修正していけば良いのでそれほど手間じゃない。
てか、その程度を書く能力が無い奴が多い=Cしか出来ない奴が多い
って事なんだけどな。
> Cだとバージョンが変わっただけで出来上がったHEXの挙動が変わったりCのメーカーが違っても動かない。
それは書き方が悪いんじゃね?
書き方が悪かろうがなんだろうが、コンパイラのバージョン変えただけで動作が変わる様じゃ、納めた装置の修正が5年後に
あった時、同じコードさえ満足に動かない可能性があるって事だ。
>>882 OS/2は速くて良いぞ。ま、DOSには適わないけどな。いまだにDOS5が現役。
PIC関係ないけど、 アセンブラで書く理由はそれまでCが無かったからw ただアセンブラ出来ます、と言うだけじゃなく、 高速化、小容量、バランス、という選択をしながら書ける そのCPUで習熟したアセンブラプログラマは もうほとんど需要も無いから育ちにくいし、 C言語の方がハードルは低いのがその理由。 今のインテルコンパイラ並みの最適化してくれるのが前提なら、 タイミング計るためにアセンブラで記述したり、 ライブラリ化されてない処理をアセンブラで作り高速化を図ったり 割り込みハンドラの処理クロックをアセンブラで記述して確定させたいとか そういう用途でしかアセンブラは必要無いんじゃね。
>>883 > それは自分で作ったライブラリじゃ無いからだろ。
自分で作ったライブラリだと移植も自分でやらなきゃいけないね。
で、あんたPIC32でアセンブラで書いたことあるのかな。
>>883 > 書き方が悪かろうがなんだろうが、コンパイラのバージョン変えただけで動作が変わる
書き方が悪いまま客先に納品するのは屑だぜ。
雑談をあぼーんしたら、ほとんど残らないことに気づいた
>>886 pic32はチップは買ってあるけど暇が無くて弄ってない。スピード遅いしあまり需要が無いからな。
今は官公庁からの発注が山場の時期だから、5月位になればぼちぼち始めるつもり。
普段はスピード必要ならdspicだし必要なければ最近は16f1X系で事足りる。
昔、R4000をチップで買ってきて手配線で組んだ事はあるよ。勿論、アセンブラで動かした。
>>887 >書き方が悪いまま客先に納品するのは屑だぜ。
自分がしてるからといって他人もしてると思うなよw
>>890 つまらん返しだな。
>>889 > 暇が無くて弄ってない。
おいおい、
> 必要な部分から修正していけば良いのでそれほど手間じゃない。
じゃないのかよ。
Cなら昼休みに遊びで差し替えてみるくらいできるぜ。
>>891 PIC32は遅くて使う必要性が無いのだから、必要な部分なんてある訳無いじゃないかw
馬鹿ですかw
言い訳が苦しいな
cには方言あるけどアセンブラには無いからなあ 組んだ奴のクセは出るけど なんでこのレジスタしか使ってないんだってwww pic32はせっかくのmipsが台無しだからなあ
マ板かとオモタ
>>894 アセンブラにも方言あるだろう。
dspicとpic32の速度比較はケースバイケース。
何をやるかによって優劣が異なる。
で、これ一番大切なことなんだけど、
特定のチップと心中してはいけない
ってこと。
途中でマイコンが変っても困らないようにしておかないと。
>>896 >途中でマイコンが変っても困らないようにしておかないと。
馬鹿じゃねーの?マイコンが変わるって事は基板も変わるって事だよ。
そんな大幅な設計変更しなきゃいけないようじゃ最初の検討段階でまちがってるんだよ。
Cしか出来ない奴がよく犯すミスだな。見積もりが出来ない。手当たりしだいにプログラム書いてみて
どれが速いかテストして決めるとか真面目にやってるそうだからなw レベルが低すぎるのだよw
PICを使うようなレベルの組み込みで、どのチップでも動くようにとか無駄なことしてるから、Cしか書けない奴は
エラー処理もまともに書いてないのにもっさりしか動かないプログラムしか書けないんだよwww
>>898 いきなり最終版の基板を作るわけじゃないし。
最初は巨大な評価用基板みたいなのでやる。
もうお前ら他所でやれよ
H8で製品を作ってたのに次からARMでって言われたらどうするんだよ・・・
それがお前の仕事ならやった方が良いんじゃないか?
>>901 H8→ARMなら移行も楽チンじゃん。アセンブリソースも簡単なコンバータでいけそうだし。
仕事は選べ
質問 XC8を使い始めてネットでお手本を探していると、 コンフィグ設定が __CONFIG で始まるものがあります。 エラーになるので#pragma CONFIG( に自分で書き替えて動かしましたが、 どこかの設定を変えると__CONFIGのままで動くのでしょうか?
>>906 よくわからないけど、下のincludeのどちらかじゃないかな。
#include <xc.h>
#include <pic16f1827.h>
__CONFIG(CLKOUTEN_OFF);
__CONFIG(BOREN_ON);
__CONFIG( WRT_OFF & MCLRE_OFF & PWRTE_ON & WDTE_OFF & FOSC_INTOSC & CP_OFF & CPD_OFF) ;
__CONFIG(PLLEN_OFF & STVREN_ON & LVP_OFF);
FPGAにDA/ADが付いてれば完璧なのにな。
913 :
906 :2013/02/10(日) 14:19:26.79 ID:D5tMhS//
>>907 ごめんなさい。勘違いです。
行番号に「!」が付いてると動かないのかと思っていました。
>>912 ADCはともかく、DACは1bitでいけるのでは?
>>912 激しく同意。
差動入出力、16bit 100MHz以上、2ch以上内蔵とか。欲張りかな。
そんなの外付けすりゃいいじゃん。
TRかましとけ、という話はあるのですが、 流し込み電流の大きいPICはあるでしょうか。 今使ってる18f2550が全部ポート合計200mAなのでそれ以上で
>>908 OPMだけ売ってる所は無いんじゃないかな?
DX21/DX27 のOPPはOPMとピン互換でレジスタも上位互換(OPMはOPPの機能限定版)だから、ジャンクのDXを買ったら? ヤフオクで送料込み3,000円くらいで買えるよ。
片面基板で外しやすいし。
X68kエミュのソースをぱくるとかな
>>919 そんなモッタイナイ。
OPM積んだ基板なんて、けっこうゴロゴロしてるもんですよ。
アーケード基板でもいいし、FM音源ボードでもいいし。
>>920 件の人は、本物のOPMを動かしたいのだと思うよ。
静電気でpic壊れるなんてあるんだろうか。16f88でつくった床カーペット用の電気タイマーが二回壊れた。 今年の冬はガススーブからエアコンに変えたら湿度が毎日30%程度。これが原因なのかな。 去年の冬はなんともなかったが。
静電気で壊れた経験は無いが、他のICより特別に強い構造になってるなんて思わないほうがいいのでは? うっかり電源逆に繋いだ時は、気づくと変なニオイがして触れないくらい熱くなってたけど壊れてなかった。 それは運が良かっただけだと思っている。
ポリスイッチ入れてるからpicには過大な電流は流れないはずなんだが、AC100Vが漏れてるのかな?
認識がおかしいな、半導体は熱には案外強いが寿命は確実に縮む、焦げ臭はパッケージ。 静電気はJすらどうでもよく、破壊電圧さえかかればFETの絶縁膜に致命傷を与えることが可能、壊れないように見えるのは保護ダイオードのおかげ。 ダイオードが入ってるからと言って気を抜いてると、いつの間にか破壊とかもなくもない。 どちらとも、条件次第で誤動作や急死の原因になるので、やはり確実なものを用意してないと無意味に時間を費やすことになる。 …ポリスイッチはサージ対策品ですら無し!
ちなみに壊れたpicはプログラムの読み込み・書き出しができますが、動作はしません。
回路に組み込んだ電子部品は静電気で簡単には壊れないよ。 余程変な作り方をしたとか火花が直接飛ぶような状況なら別だけど。
俺がpic壊したのは定格の倍の電圧を掛けたときだけだな。 作りかけだったのを姉貴にやられた。 逆電で一発で壊れないのは助かる。
>>922 は床カーペットのタイマとか書いてるから、
サージの回り込みかなんかじゃねーの?
逆質問する奴は能力の無い講師や教師に多い手口
932 :
774ワット発電中さん :2013/02/11(月) 11:44:32.83 ID:da9Ig/wC
ポリスイッチは作動するまで時間かかる。ヒューズとは違う。
まあ危ないよね、家が燃えてしまっても知らないよ。
地方の部品屋だとファーストブローやスローブローですら手に入らないわ、はは
まず回路図を晒せ。 話はそれからだ!
ドライブってなんですか?
問題はポリスイッチの入ったマイコン電源だろうけど秘密ですかそうですか
>をpicでドライブしてるだけなので回路図は省略です。 そのやり方が悪いかもしれないねって話をしてるのに晒さないとか 問題解決する気が無いと思う。 はい次。
で、放熱は何℃/Wで計算してるのよ? 古い人間なのかもしれないが、 自宅の電熱機器をPICとSSRで制御、しかもどっちも秋月なんて、恐くてできん。 せめてリレーで、ヒューズ入れまくり。
入れまくるなんて、全く意味無いけど。適所にひとつで充分。
>>938 きましたな。PIC専用スレ名物、初心者いじめ。初心者とばれないように最初はタメ口で書いてたけどついにばれた。
甘かったな俺も。ばれたらまーレスどんどんくるな。おまえら初心者大好物な。
次はうまくやるよ。
がんばれー
間違えた。いじめじゃないんだよね。厳しい指導でした。みなさんサンクス。
ふんばれー
自分はpickit2 3000円くらい? を使ってるんだが、 秋月電子のAKI-PIC2(PICkit2互換)が5300円。 後者の方が高いけど何か優れてる所あるんですか。
>>948 pickit2に差額で十分釣り銭が出るゼロプレッシャー付ければpickit2に出来ない事で秋月キットに出来る事は無い。
>>948 それなんか不具合あって、書き込めない奴とかあるらしいよw
>>944 初心者じゃなくっても、ちょっと隙でも見せようもんなら吊るし上げられるのがこのスレ
柳に風と受け流してかんばれよー
>>948 キットを組み立てて上手にケースに収めるという楽しさがあるのだろう。
あとは改造しやすいとか???
自分で作るよりも買ってきたほうが安いと言い出したら、きりがないし。
普通はPICライターって目的のための手段なんだけど、そうじゃない人もいるんだぁ。
>>953 そりゃそうだろ。
でなきゃ、買ったほうが安いもののキットが山ほど売られてる秋月を否定することになる。
俺なら秋月のPICライターなんて買わないけどな。
電子工作が目的ならぴったり
>>951 そうか、初心者だからいびられるのかと思ってたけど、そうではないんだ。
基本的に2chは人の悪口を書くのがポリシーだからしょうがないとは思う。
ただ、なんかねちっこいのが気になる。理系の特徴なのかね。
嘗める嘗められないでしか物事を考えられない人は、 こういう趣味や仕事は向いてない。
ちょっと教えてくれ。 秋月で昔買った12F675なんだけど、普通に5Vで動作してる。 ところが今日使い始めたPICkit3で書き込むと、1回2回ぐらいしか書けない。 繫いでも failed to get Device ID(PK3Err0035)と出て、 読みも書きもイレースもできない。 ためしにPICkit3からの供給電圧を、3.3V近辺に変更してみたら、正常につながった。 データシート見ても、普通に5Vでよさそうなんだけど、これはどういうことなんだろう。
> 繫いでも 「つないでも」です。
>>959 PCとPICKITの間にUSBのHUBとか挟んでない?
そういうの取り払ってつないでみても変わらない?
>>959 前にも書いたが、PICKITのバグだ。3Vまで下げなくても一つか二つ下げればOK
>>959 少し電圧を下げて書けばOK
そういうもんらしいよ。違うチップだけど同じようになるから下げて書いている。
srand関数の使い方がわからない、、、
>>952 AKI−PIC2プログラマボード(PICkit2互換)は完成品だろww
>>943 亀レスになっちゃうけど、この手の機器だと、
普通の電流ヒューズと温度ヒューズの両方をそれぞれ適度な場所に入れたほうが良い。
>>967 SSRがショートモードで故障しても電熱器が普通にオンするだけだから
電流ヒューズは入れても意味ないと思う。
いや、負荷がおかしくなることもあるから電流ヒューズはあったほうがいい。 むしろ温度ヒューズのほうが「はぁ?」でしょ。
根本がずれてる、そもそも設計がおざなり。 件のオッサンではないけど、命が惜しいのなら電気に手を染めるのはやめたまえ。 回路図上げろと言われたにもかかわらず、上げない所を見るとその必要性、重大性を全く理解できてないんだろう。
このスレに回路図晒した所で安全が担保されるとも思えんw
まあPICスレだし、詳しいヤツが答えるとも限らん。話半分だな。
PICの電源にACが回り込んでるんじゃないかってのに秋月のキットだけさらされても・・・
回路図だけでなく実物の写真も必要じゃないか。 配線ミスしているとか、距離が短くて絶縁が足りないとか、ありがちだ。
電子カーペットなんて負荷の高いものの亜制御はやりたくないな 異常発熱で火災の可能性も十分高いし
だから低い方向に制御するだけだろ。SSRがショートしてもコンセントに直接 差し込んだのと同じ状態だ。 俺は質問者ではないけどな。
俺も誰の家が燃えようが知ったこっちゃないからさいならー
だがPICが燃えるとなれば話は別だ!
単相→3相インバータ作ってみたいなぁ
どうぞ
>>977 自作機器でカーペットの電源を切れた、と思って放置してました、
でもSSRとPICが壊れてて、電源切れてなくて寝てる間に出火しました。
発熱や火事がおきるのは、カーペットの設計が悪かったり、ブレーカーが落ちなかったせいです、
で片付けるやつは、こういうことは向いてないって話だろ。
妄想じゃあ説得力も何も無いな。まあPICすれだし、パワエレについて薄学なのはしょうがない。
みんなありがとう。
>>961 直接続です。
>>963-964 そうなのか。
電圧は高めの方が安心だろうから、ひとつふたつあたりで試してみる。
接続するとき、ダメージがどうこういう英文ダイアログが出るし、
この日だけで新品3つ目だったから、ちょっとガックリ来てた。
>>982 それをヒューズで防げるのか?定格内の電流しか流れないぞ。
>>985 適切に設計してれば、ヒューズも温度ヒューズも入れてませんよりはだいぶマシだと思うよ。
PIC,SSR、回路全体のフェイルセイフの考え方、設計考慮の問題だろ。
微笑ましいなぁ
テンプレまとめの人は見てるかな? 何かアップデートはありましたか
SSR使ってるなら何も問題ないんじゃないのか? 俺も、SSRで扇風機制御考えたけど問題なかった。 むしろ、静電気や妙なノイズ、サージの方が可能性が高くないか?
>>984 試してみた。
5.00Vから1段階下げではダメ、2段階下げでは成功した。
テスターで見た感じでは、電圧は出てるようだけど、それ以上は解らない。
死んだと思った3個とも生きてたよ。 (`・ω・´)
>>985 SSRが短絡するのではなく、自作機器内でホットとコールドが短絡する可能性は、考えなくていいのかな?
俺は怖いからヒューズ入れるよ。
俺もウェハから作ってみてぇー
10台並べて順に書くなら作業員1名で暇無くいけそうな気がする
梅
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。