マイクロコントローラ歴史
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/ テンプレはここまでだよ。
7 :
774ワット発電中さん :2013/08/26(月) 14:12:04.68 ID:XqtLzXCP
たまにはNHK教育で 初めてのPICとかの番組を放送すればいいのに。
>>9 昔NHKでそれっぽい番組があって番組で紹介した制作物の
回路図を欲しい人はNHKにハガキで希望すればもらえたことがあった
そのとき初めてNHKの住所(渋谷区神南)を覚えた
PICのピンがブレッドボーラに挟まって折れたんだがハンダで鉄をくっつけて 代わりににしてもいいかな?ダメ?ピンはあれ鉄だよな?
>>12 抵抗の足を付けたことがあるよ。
もっと折れたらICソケットに半田付け
>>13 もう根元が見えないくらい折れたら、というかひっこ抜けるレベルまでいったら
どうしたらいいすか?
窓から投げ捨てる
>>16 あれ?
上にも金属あるけど
それにはんだ付けしたらダメなの?
ソケットより新しいPIC買うわw
>>18 今の時間買いに行けない
そんな時の応急修理
はじめてdsPIC使いたくてPICkit3を買ったんだけどうまく認識しないんだけどみんなこんな感じから始まるのかな? ちなみにOSは7の64bitでMPLAB IDE 8.6 PICkit 3 detected Connecting to PICkit 3... PK3Err0005: PICkit 3 is currently busy and cannot be unloaded at this time. PK3Err0005: PICkit 3 is currently busy and cannot be unloaded at this time.
>>21 な、なるほど、こっちじゃダメなのか。
早速明日試してみます、ありがとう!
>>22 あとは MPLAB を最新(8.92?)のにしてみるとか、かな?
サフ吹いて塗装までするか……
>>24 製造中止のような品種ならともかく、
手間を考えたら、買い換えたほうが安上がりのような。
趣味だから、何でもあり+何をどうしようとカラスの勝手で、 この人にとっては無い物を作るのが、しかも面倒であればあるほど、 楽しくて夢中になれるのだと思う。 私には理解できないけど。
29 :
774ワット発電中さん :2013/08/27(火) 16:46:36.86 ID:xR5susse
壊れたときに治せないものは造らない方が良い と思う
PICで作れるものって大抵製品化してて虚しくなるよね 30個(1個150円)使って作ったのが製品で100均で売ってたりとか..............
ニッチに走れば宜しい。
PICでスカウターでも作ってくれよ
最近、スカウター作ってっての流行ってるの?
フルプログラマブルなクリスマスイルミはまだ自作の方が安いね。ちょっとの妥協で価格も逆転するけど。
お
microchip directでPIC24EP256GP202買ってみた まだブレッドボードにも挿してないけど楽しみだ
スカウターの作り方教えて 期限はあと4日
PICもちょっと目を離すと新商品がボゴォボゴォ出てくるな 18F25K50は18F2550とハードウェア的には完全置き換え可能で、かつ外付けの OSCが不要に出来るっていう素敵デバイスなんだろうか。
>>7 > 最後のスレになるかもしれないけど乙
あいも変わらず自作自演で、一体なにがしたいの。
本人以外だれもカキコしてないのに。
もうこのスレやめましょ。初心者専用で十分だし。
18F2550も内部クロックで動くでしょ
>>40 内蔵RC発振だとUSBのクロック許容誤差を満たせなかったが、
USB接続時に内臓クロックを補正するActive Clock Tuning 機能搭載で外付け水晶が不要になった。
12F1822でオルゴール作って電圧を1.8から5.0まで変えてみたが 音程がほとんど変わらんのは大したもんだと思う スリープ電力さえマトモならと惜しまれる
単発IDで書き込み連発してる人がいるってのはみんな気がついているだろうけど じつはこのスレたてたのも同一人物なんだよな。
>>34 RGB LEDテープライト5m 300LED
SMD3528
アマゾンで1980円
こんなに安く作れないよ
RGB-DC調光器 テープライト用コントローラー 楽天で800円
自分でコントローラーを作るなら1灯づつ個別にコントロールできる。
通信規格は、プロトコルDMX512 電気的規格EIA-485
45 :
774ワット発電中さん :2013/08/28(水) 23:12:38.09 ID:1VT6dpxz
づつ
同じネタ引っ張って悪いけど。 18F2550と18F25K50の仕様を比較してみたけど、ADCのチャンネル増えてたり 動作電圧範囲が広がってたりと、完全に25K50のほうが2550より性能上なんだ けど、今更2550使う意味ってあんのかな。 近い将来、2550はディスコンになるんだろうか。 とりあえずDirectで注文してみたなう。 送料1000円だた
過去に14Kなんとか、みたいなのが安くてよさそうだと思って いろいろ調べたらかなり地雷だったので、この系列は身構える
>>47 どうでもいいこと書くのやめません?メモ帖じゃないんだから。
IDが変わってないぞ!
>>47 後継が出たからって簡単にディスコンされたら怖くてそのメーカー採用出来ない。
ので、半導体製品の寿命は一般的に長い。十年はザラ。
>>51 PICの事を書いてるんだし、べつに良くねえか?
>>56 それならブログにでも書けば?誰も見ないだろうけど。
469
ぉぃ
470
>>468 ありがとう くらい言ったら?
なんのことだろうね。
PICを上半分、下半分独立して使う事って可能ですか? 分離したいんですが物理的に無理なんで。
>>63 違います。
片側16ピンのPICがあれば上は片側8ピンのpic
下も8pinのピック
なぜ、それができるかもしれないと思ったのかw
配線が楽になるんじゃね?
8picふたつじゃダメなのか?
1個のPICでプログラムを2つ同時に走らせればいいのに
やっぱりいまいちわからないが、とりあえず、 ピン内容は変わらないので、想定している8pinのPICと同じ機能が居合わせないと無理。 電気的には内部は単一電源なので、ピンごとに電源を分離することは無理。 コアが1つなので、プログラムや割り込みなんかを複数平行に走らせることは無理。タスクを2つ走らせるのはアリ。 ってことでいいのかな?
単発IDが気になったり自演を疑う人は、統合失調症気味の人
テンプレで18f2550の評価が×になってるけど 28ピンのUSBといえばこれしかないと思うんだけど
安い上にほぼ上位互換の27J53がある
白いワニと白いPICが来るよ〜
75 :
774ワット発電中さん :2013/08/29(木) 15:06:42.55 ID:nE1z/2XJ
ネタとかじゃなくて3DS並のハードをPICだけで作ろうと思ったら PIC何枚必要なんですか?
10から32まてあるわけだがや
ARMの代わりはともかく、グラフィックはPICじゃどうにもならんだろ
78 :
774ワット発電中さん :2013/08/29(木) 15:12:08.45 ID:nE1z/2XJ
>>77 一旦PICの話は置いといて
実際3DSを電子部品かき集めて作ったら何円くらいで出来るんですか?
あれってCPUはVHDLなんですかね?
グラフィックとかは全然分らない。
>>73 27J53は3Cのライブラリーとライターに一工夫いるよね
電圧も3.3Vだし
>>78 つまりは、CPUやGPU(とりあえずこう呼ぶ)を、論理回路だけで構成するってはなしか?
それとも、先のPICの件も含めて、ふつーに入手可能なマイコンはOKなのか?
とりあえず、てきとーなCPU… Z80互換ぐらいでいいから頭のなかで作ってみ。 なにがどうなのか判るから。
パソコンの仕組みでも調べたらいいんじゃないかな
いま、アドレス・データバス、制御信号全部外部に出ていて全アドレス空間を メモリで埋めれる既成の 8 ビット CPU ( + ペリ ) LSI があるのか? もしかして、流通在庫とジャンクだけ? ミ ´ ω`ミ
> グラフィックとかは全然分らない。 そんな感じだけど、 > あれってCPUはVHDLなんですかね? 適当に覚えた単語を並べるのもやめとけ。
>82 CypressのFX2とかが8051で全メモリ空間が出てる(内部RAMの256バイトくらいはまけとけ)。
>>82 PICしか見てないとわかりにくいがH8系なら余裕であると思うが。
ああ、そうか、PIC(バスの分離したハーバードアーキテクチャ)みたいな変態マイコンから入る人も居る時代なのか・・・(^ω^;)
H8も、もうそろそろ・・・
TIが買ってくれるさ。
89 :
20 :2013/08/30(金) 08:28:04.74 ID:KLAMWEOD
どうやら初めて買ったPickit3いきなり壊れたっぽい MPLAB X IDEだと動かないどころか変なJavaエラーが出て落ちる・・・
>>89 付属のライターツールでも駄目?
ライターツールとIDEで設定変えないとだめだと思ったけど
ドライバがちゃんとインストールされていないんだと思う。
>>90 どっちも認識しない&ソフトがフリーズを起こす。
最初に繋いだとき変な表示が出たからファームのアップデート失敗したのかな・・・。
とりあえずボタン押しながらUSB接続 ダメならもう1個買って、それでファーム焼き直し
コレまでPICなどで自作してきた機器がノイズに極めて弱いことが判明。 市販の電子機器はへっちゃらなのに。
パスコン足んねえんじゃね?
アルミ泊で巻いて地面に埋めちまえ
>>89 > どうやら初めて買ったPickit3いきなり壊れたっぽい
> MPLAB X IDEだと動かないどころか変なJavaエラーが出て落ちる・・・
質問するなら質問とはっきり書け。なんだ、「落ちる、、、」ってだからどうなんだ。
うれしいのかこまってるのかわからんだろ。
それと
ありがとう くらい言ったら?
OSから、認識されてる? デバイスマネージャは見たか?(窓かどうか知らんが。
>>94 どう弱かったのでしょうか?
それによって対策は異なりますよ。
アナログの世界にようこそ( ̄ー ̄)ニヤリ
ほう
>>99 な、こんなこと書いたらキチガイって思われるだろ。
まねしてみただけ。
>>99 いやー、同調者が見つかって今日はうれしいよ。
前から気になってたんだよね。上から目線でえらそうに言うだけで
「説教爺チョン」って言うらしいよ。いなくなってほしいよね。
IDころころ変えるとこが通名使うあっちの人みたいでチョンというらしいね。
見つけたら一緒にやっつけよう。
>>99 こんなキチガイも見つけたよ
yahoo知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1379187403 シリアル通信をしたいのですが,どのような回路を作り,どのようなプログラムを
作ればいいかが詳しくわかりません.
とある事情で,アセンブラでのやり方でお願いします.
使うPICは特に決めてませんが,PIC16F877Aだとありがたいです.
回答
>とある事情で,アセンブラでのやり方でお願いします.
とある事情とは何だ?
こんなプログラムは、高級言語で書けば、送信も受信も1行ですむ。
キーワードはUARTのREADとWRITEだけだから。
事情を聞かない限り、何十行にもわたるプログラムを、わざわざ教えてくれる人もいないだろう。
PICってのは精神を狂わす信号でも出てるのかね。
NG推奨 ID:Lwr2cCh1
単発ID自演乙
スレたて自演乙
>>94 、100
ノイズ対策は長年の経験や知識がものを言う世界なので難しい。
ソフトでのノイズ対策を外から知るのは不可能だけど、
ハードは、たとえばボックスの蓋を開けて配線や基板を見たりすると、
設計者のノイズに対する考え方が分かって面白い。
そうそう、いつかある電気屋さんにボックスの配線を頼んだら、
±15V系のアナログ入出力も24V系デジタル入出力も
全てまとめて結束してあったのでビックリした。
見た目はとてもキレイだったけど。
何度も連投してかわいそうに
理屈ははっきりしてるから金かければノイズは対策できる 金をかけずに対策するのに職人の技が要る
>>111 そうそう、ノイズ対策はどこでも大事だね。いつのまにか勝手にスレたてて
自作自演やっちゃうおかしなノイズもあるから、油断はきんもつ。
単発ID連投ノイズってのもあるよね。
>>113 まったく同感。
へ理屈ははっきりしてるから手間かければノイズは対策できる
手間をかけずに対策するのに職人の技が要る
【訃報】microchip directで買った場合の発送はUPS
なんで?国内の足回りヤマトだし、DHLよりマシだべ。
がっこの課題なんだべ >知恵袋
連投停まった 亞北ネルさんか
PICスレっていつもこんなん?
16bitアーキテクチャのPICで、40pin DIPパッケージがあるのは dsPIC30Fシリーズだけですか?他にもあります?
なぜ検索しないのか? www.microchip.com/maps/microcontroller.aspx
なぜ今更dipなのか?
今でこそ、プリント基板を個人で起こすハードルがかなり下がったけど、 それでもやはり、ユニバーサル基板で使えるという魅力が根強いのだと思う その中間に、最近の変換基板の流通増があるのかなと
ブレッドボード(ブレボ)使って試作回路組むような場合だとDILPはありがたい。 単価が安ければブレボ用にDILP、最終的な使用の為にSOPと両方買うな。
デュアル・イン・ライン・パッケージ?
デュアル・インライン・パッケージ!
両側整列包装なのか ミ´ω ` ミ
SIPでやれ
新製品PIC届いたけど、これはさすがに・・・
だれかまじめに質問する人とかいないの?
134 :
774ワット発電中さん :2013/09/04(水) 08:08:27.46 ID:wzH53UfM
8ピンのpic12f1822だとpickit3でデバックできた
真面目に質問しても、このスレは叩く流れしか見えん
別に質問スレじゃないし
>>134 すっごい便利だよね。でも貴重なI/Oが3つも・・・
いやほんとありがたく使わせてもらってるんだけどさ
リリース版より4ピン多いデバッグ用PICがあると便利
たかだか8ピンのチップに複雑なロジック突っ込むなよ
140 :
774ワット発電中さん :2013/09/04(水) 14:51:45.72 ID:QI6kTZeR
555のことか
昔、初めて555を使った時、 <何て便利なICなんだ、こんなものを設計出来る奴は天才だ> と感動した。 そしたら1、2年前だったと思うけど、トラ技にその設計者が紹介されていた。
143 :
774ワット発電中さん :2013/09/04(水) 19:59:37.07 ID:1c0g0/hY
pickit2オワタ 明日pickit3買いに行こう
555みたいなのがあるといい、と思い付く点が偉いけど、 仕様からあの回路を思い付くのはそんなに難しくないよな
アポ無しで行かないと
>>145 まあそうなんだが、あの頃いくつかあった日本製のタイマー IC は、
ダーリントン + シュミットトリガーの構成だったわけで…… ミ´ω ` ミ
CAD無しで作ったというのが今じゃ考えられない。 マスク用の版下は遮光フィルムを手作業で切り貼りしたとトラ技に書いてあった。
外付け部品は多いし配置は汚いし再トリガはできんデューティ比は50%にできんし大容量コンデンサをつなぐと放電途中で止まるし いい石だなーなんて思ったこと一度も無い
>>148 あー、やったやった
ランドのシールと専用テープを方眼フィルムに貼ったよ
>>151 やったのは基板のアートワークじゃないのか?
プローバーを一度も使ったことがない っていうのはすごい優秀だけど なんでプローバー買ったんだろ
でかい机にXとY座標の目盛りが見える、 XYプロッタみたいな手動のカッターがあって、 フォトマスクの原盤を手で作るんだ
まじめに質問する人はいるけど、まじめな答えを得られる人はめったに見かけないね。
まあまじめに学校の課題を質問されても・・・
>>136 > 別に質問スレじゃないし
それはしらなかった。じゃここは何?
CANのスレは無いだろうか
質問するのはもちろん自由。 ただ雑談のタネにされるだけで終わったとして もふてくされないことだ。
USBやるならAVRよりPICのほうが安くすみそうなので、今さらですがPICの環境を作ろうと思っています。 AVRにはDragon という8千円くらいで買えるICEがあるのですが、PICではこんな格安のICEはあるのでしょうか?
Pickit3
>>163 ありがd
秋月で3900円とは激安です。
デバイスも安いし、PICに根を下ろそうかな…。
まあ、ICEとして使うと
>>137 みたいな気分にはなるけどね。
なんで、アメリカってAVRが多いの?
僕は16c84の頃、AVRがPICに先駆けて gcc が使えるようになったときにAVRに行ってそれっきりでした。 あの頃のMPLABはとても重くて、ASM書くのに疲れたので。 すんません、すんません、ほんますんませんでした。
>>164 マイコンとしてはAVRの方が上だが、周辺機能の便利さではPICに
軍配上がるからな。
周辺含めてマイコンだよ
25K50届いたけど、これいいな。bootloaderだけ対応させれば回路そのまま、 バイナリそのままで置き換えられる。 directで買うと2550と比べてもなぜかアホみたいに安いし、もはや2550を使う 意味が全く無いわ。 この調子で14K50もACT対応版出してくれねえかな。 16F1455じゃやっぱちょっと不満だ。割り込みのpriorityも無いし。
会社に開発機材買わせるならAVRでも良いが自分で買うならPICだな。
スリープしてるってどうやって確かめるの?
AVRと比べて出力ポートの内部抵抗が高いのと スリープ電流の小さい品種にろくなのが無いのが困りもの
昨日の昼に秋月で注文した pickit3 が今届きました。 秋月ってこんなに速かったっけ…すごいわ
地元の部品屋には悪いが、速くて安いよね
速くてたすかるよね。
179 :
774ワット発電中さん :2013/09/07(土) 13:11:28.43 ID:bzm0EdT2
八潮できてはやくなった
MPLAB X 起動してびびりますた。NetBeansをベースにしてるとは。 J.ゴスリング師推奨なのでありがたく使わせてもらいます。 それにしてもVisualStudioをベースにしたAtmelとはものすごく対照的w
AVR(32特に)コロコロ変わりすぎ、独自からeclipseは良いが、なんでそこからvisual studio ?
ぶっかけ、統合開発環境としてはeclipseよりVSの方が全然出来が上だし。
PICkit 3 で 18F14K50 をデバッグするには AC244023 というデバッグヘッダが必要とMPLAB X に言われました。 DIRECT でみると $50もするし、デバイス毎にこんなのを買うとなると…。 デバッグヘッダを自作した人はいないでつか?
ピン1本くらい空いてないのか
君が買って複製
>>183 よりによってデバック機能を内蔵していないPICを選択するとは。
同等でデバック機能の付いたPIC18F2550とかPIC18F25K50等でデバッグしてから18F14K50に書き込む
16F1455なんだけど、PicKit3+IPEの組み合わせで全然書き込めない。 つーかDeviceIDが0しか読めない。 同じ報告が前スレでもあったけど、どうすればええのんこれ? PicKit2は対応してないし、Standalone版のprogrammerなら書き込めるの?
Device IDまで0ってんなら電源とか配線を疑うな。。
193 :
774ワット発電中さん :2013/09/08(日) 16:28:25.31 ID:pUvcSpzE
PICすっかり人気がなくなっちゃったね。 最近はAurdinoばっかりだよな。本ともかも。
人気あるのはarduinoでavrに人気があるわけではない。
公式のデータシートやドキュメント、サンプルソース読めば扱えるくらいに 情報が揃っているから本とか必要なくなってるよな
有料コンパイラを無料にすればいいのに
CCSコンパイラほ、arduino以上に簡単だしライブラリが充実しているが、 値段がちょっと高いよね。
このコンフィギュレーションビッツのカオス加減はどうにかならんでしょうか。 PICによって違うし
データシートを読み込むのをおろそかにしていてはロクなシステムは作れんぞ。
PICってなんで32bit版のアーキテクチャにMIPS選んだのか 経緯を知ってる人いたら教えてください
デバック機能がないPICが存在するなんて知らんかったわ
XC8用のUSBライブラリはリリースされてないんでしょうか。 作るものによってXC8とC18を使い分けるのはちょっと不便ですー
>>201 ライセンス料が安いからだろ?たぶん。
でも、32bit必要になる程の物作るなら、
素直にARM系に行った方が幸せな気がする。
そもそもライセンス料がかかる方向へなぜ行ったのか、という質問かと思った。
ライセンス料がかからない方向なんてあんの?
MIPSもARMもそれで食ってるからね。
今更だけど >170 HEXファイルそのままでいけるのはかなり限定的じゃね? 割り込み使ってないとか。 K50は割り込み周りが拡張されてレジスタ変更になってるぞ。Timer1もGate対応 になってT1COMとT1GCONの2つの設定が必要。(故にC18のOpenTimer関数の引数も2つ)
209 :
natu :2013/09/09(月) 09:48:28.23 ID:ajhFPQlh
>>204 単純な組み込みにはMIPSの方が使いやすかったから、そこら辺じゃないかな。
アーキ的にPPCと同じで綺麗なんで、アセンブラとか理解しやすいし。
ARMはやれることは多いけど、こまごまし過ぎてる。
>>206 Open RISCとかあるみたいだけど。
秋月やアイテンドーで売られてる東京コスモスのZigBeeモジュールのコアに使われてるんで知った
>>206 それまでのPICは、ライセンス料がかかっていたのか?
PIC24以下は自社開発だからライセンスかかる訳ない。 PIC32にはMIPSコアを採用したので1チップにつき何セントか(契約形態はいろいろだが) 払う必要がある。 ARMにした所で同様にARMに払う必要がある。 これが奴らの飯の種。
だから「そもそもライセンス料がかかる方向へなぜ行ったのか」なんだろ。
>>215 32bitCPUのアーキテクチャや命令セットを開発するよりもライセンス料の方が安かったのだろう。
それに独自に作るよりも特許侵害のリスクも少ない
チップだけ作ってハイ終わりじゃないから単なる経営戦略の問題
看板のハーバードなんたらの限界?
似たようなもん作ってもしょうがないし、独自なら良いってもんじゃないだろう
開発ツールの方がはるかに金がかかる。
消費電力5W位で1.8V ヒートシンク付きの 1GHz位で駆動可能な 16Fがあったら数千円でも買う
ハーバード
223 :
natu :2013/09/10(火) 10:05:46.66 ID:/C4taMck
純正ライブラリが純正コンパイラ非対応。カンベンしてほしいわ
>>223 なるほどです。でもそのままではXC8で動きそうにないですね。
ライブラリのドキュメントによると、とりあえずXC8対応のやる気はあるようなので、もうすこし待ってみます。
しかし組込み系はいろんなコンパイラがあるので、いつもこういうコンパイラディペンデントなpragma やら独自書式に悩まされます。
情報ありがd
俺それでハマった。 c18でしかビルドできないUSB ライブラリなのに Mac のc18公開停止なんだもの あわてて仮想マシンセットアップしたさ。
227 :
774ワット発電中さん :2013/09/11(水) 02:13:22.01 ID:pcDUsEjr
PICシリーズみたいな奴は日本が得意そうなのに競合するのをやらないのはなぜなの?
>>227 H8, R8C/Tiny < おいちょっと待て
GJ
>>226 昨日それやりますたww
しかし、あのライブラリ、デモをちょこちょこっと直して動作確認するつもりだったのに、フォルダ階層深すぎて解析するのが手間すぎ。
おまけに最近のはタッチセンサライブラリなんかと統一されたみたいで、さらにややこしい。
ソース見る限り、ライブラリの出来はAVRのほうが上のような希ガス。
#ifdef が並んでて読みづらいったらないわ MPLABXで色分けされて助かってる。CTRL+関数名クリックおいしいです
>>227 震災で車載マイコンが足りなくなるって騒いでたのに知らなかったのか、覚えてないのか・・・
日本のメーカーはゴミを相手にしないからな。 やったとしても情報出し惜しみ、ツールは使いにくい高い、書き込み器 は高いで一般化しない。
その結果、自分がゴミになってしまった日本のメーカー。
日本は良い物を作れば必ず売れるはずだ神話がまだ根強く残っているので、 このくらいでじゅうぶんだ、っていう線がとても高いレベルにあるよね。 あと、妙にこだわる独自規格、レガシーな使いまわせる規格が在るのに使わない。
>>236 NECの3線シリアルがまさにそう。めっさ速いけど、めっさ使いにくい。
>>232 >CTRL+関数名クリックおいしいです
定義元にジャンプ?これいいですね。
#pragma config には慣れた? __CONGIF( は卒業した?
MPLAB Xのシュミレータの件で質問です。 環境:MPLAB X 1.90 +XCコンパイラ 1.20 シュミレータの周波数を8MHzにして、TMR0割り込みのテストをしているのですが、 割り込みのタイミングを10msに設定しても間隔が2.5msと4分の1になってしまいます。 TMR0の設定、プリスケーラはきちんと設定しています。 OSCCONを変更してもシュミレータには影響なし、プリスケーラを変更すると割り込み時間は変わりますが、 間隔はやはり設定した4分の1になります。 シュミレータの周波数を2MHzにすれば期待通りの時間になりますが、腑に落ちません。 同じソースでMPLAB 8.92でシュミレートすると設定通りに割り込みが起きましたので、ソースは問題無いと思います。 MPLAB Xの設定で何か抜けているところはありますか?
シュミレータ
245 :
243 :2013/09/12(木) 12:58:12.73 ID:BzB5fPHd
シミュレータですね。。。お恥ずかしい。
バンド系の人はよく言うシュミレーターw
シュミレータと書いたばっかりにまともな回答がもらえないとは。 英語書けるなら、Microchipのフォーラムに書き込むか、BTSのチケット発行してMicrochipの中の人に聞いたほうがいいと思うです。 ちなみに、シュミレータは syumilator と書かないと通じないと思うでし!
configはシミュレータで参照されたっけ?逓倍設定とか。と、推測。
249 :
774ワット発電中さん :2013/09/12(木) 17:01:44.85 ID:n1ZJV+Ru
釣りだから大丈夫 MPLABでも何かのカウンタが所定の周期でカウントされないってのがあった いちいち気にしてたらハゲるわ
>247 Microchipのフォーラムに書き込むのは難しいです。 >248 configはPLLENをOFFに設定しています。 SPLLENも0です。 シミュレータ内ではPLLENがONになっているのかもしれませんね。
>>250 MPLABXは使ってないけど、MPLAB IDEでタイマ4がシミュレート出来なかったことはある。根本的に動かなかった。
所定の周期でカウントできない件は1カウント分のズレってのが昔有ったね。
何処かで短いサンプル拾ってきてシミュレートしてみる方が早いよ。
16F18xxのSPBRGとか、MPLABだと設定値の1.8倍〜1.9倍ぐらいで動いてたっけ。 #ifdef DEBUG で使い分けてた。
MPLAB Xのシミュレータで設定できるのはInstruction Frequencyだから1/4で正解じゃね?
>251 Instruction Frequency(Fcyc) = FOSC / 4 のことみたいですね。 謎が解けました。ありがとうございましたm(_ _)m
>253 宛先間違えましたm(_ _)m
>254 そしたら2MHzの話が成立しないと思うのだが?
>>256 FOSC=PICの周波数ですよね?
8Mhz /4 = 2Mhzで問題無いと思うのですが。。。
×Mhz ○MHz
>>257 ん?あっ、そういうことね。
8MHz設定で10msのはずが2.5msになってしまった。
2MHz設定は(1/4だから40msの想定で40msが得られ)正しい動作。
(1命令の実行速度は周波数設定に対して正しい。)
と解釈してた。()内が脳内補完
ちと疲れてた様だ。
>>254 よくわからんのですが、
> 同じソースでMPLAB 8.92でシュミレートすると設定通りに割り込みが起きましたので、ソースは問題無いと思います。
これはどういうこと?MPLAB8と同じ動きをさせるには、MPLAB Xではソース変えないとダメってこと?
>>260 ソースは同じって書いてますよ?
設定する周波数がMPLABとMPLAB Xでは違うということです。
263 :
774ワット発電中さん :2013/09/13(金) 18:50:58.95 ID:pvC+4UKY
すみません、教えてください。 pickit2を使ってeepromチップ(24LC256)に書き込みをしたいのですが、 配線図は見つかったものの具体的な操作例がないので、 ご存知の方宜しくお願いします。 一応書き込むファイルとしてbinファイルを用意していますが、 hexファイルでないと書き込みできないですよね、きっと。
264 :
774ワット発電中さん :2013/09/13(金) 19:00:05.63 ID:pvC+4UKY
263です。 分りました。 お手数をお掛けしました。
わかったときは なにがどこにあってこう参考になった〜 みたいなの書いておいてくれると嬉しいですー あとで僕らが参考になったりしますので、ぜひぜひ〜
ちら裏だが、筐体の奥深くでアクセスしにくい場所にPICがあって 書き込みどうしようか、ブートローダー自作するかなーなんて悩んでたけど AN1310のUARTブートローダー使えばこんな簡単ことだったんだな…。
PICKIT2の上位互換と思ってPICKIT3買ったら、24LC/25LCに書き込めなかった 仕方ないのでPICKIT2も買ったよ 書き込みはMicrochipから書き込みソフトウエアをダウンロード、 起動して画面を見れば操作はすぐにわかるよ。 BIN/HEX両方OK
24LCはPickit3で書けるよ、6pin周辺の部品除去しなきゃいけないけど 対応リスト見ると25LCもいけることになってる
あれ、今日はみなさん初心者のスレへ引越しか。
bootloaderで読み込むとverify failedと言われる。。。。
素晴らしい。ブートローダーは動いてるんだね。
>>271 メモリ倍増モデル用に作ったBootloader、HEXファイルをそのままメモリ半減版に
適用したのがまずかったのかな。もちろん、loadさせるバイナリについては、
メモリ半減版でも収まる事を確認済みの上でなんだけど。
同じファミリーでも一度にフラッシュに書き込みできるサイズが違ったりしたような気がする
あれ、こんどはみんなで書き込みはじめた。 自作自演、乙。
アプリケーションノートなどの表の見方が分かりません ※表にコメントがないから解釈に苦労しますわ 例えば ・PIC Familly Supported欄の X印=使用可能、空欄=使用不可で良い? ・Product Family欄のN/A(該当なし)とはいかなるPICも使用不可?
何処かに動画があった様な記憶が
モノクロで、解像度も低くなってるようだな。
クロックとメモリーが足りないから、解像度はしゃーない
不要になったアナログTVでちょうどいい
「IDを変えて 同意見の者が何人も居るように見せ掛ける」「男の振りをして 男を貶める書き込みをする」 こういった卑劣な行為も無論、2ちゃんねるに於ても許されてはいない。
どうやってIDって変わるの?
まず服を脱ぎます。
言いたいことはわかるが、しかし近所のムセンランを窃用している場合、それでは変わらないのでは・・・>285
PICのタッチセンサ(mTouch?)使ったことある人いまつか? PSOCのと比べて、楽かどうかちょっと知りたいです。
近所のムセンランって、PW無いんすか・・・
まあ、いまだにwepだったりする家もあるし、
>>287 とりあえず使うならPSoCの方が楽だったな。 ライブラリが最初からIDEに入っててブロック貼り付けてAPI呼ぶだけだし。
PICはちょっと取っ付きにくかったけど、使いたいPICが3種類ある検出方式 CTMU、CSM、CVD のどれに
対応しているかと、その仕組みを理解すればあとは簡単だったよ。
PICにしてもPSoCにしても、思ったような特性を出すのは結構な試行錯誤が必要と思っておいた方がいいよ。
PIC18F25K22は、静電容量センサに使うならできる子。
自分がしてるからでしょ。
>>277 中身はMIPSな32系だから出来るんじゃないの?
16とか18だったらかなりキツいだろうけど。
2日も経ってるのに、件のページも見ずにレス・・・・
>>293 表示にDMA使ってSPIにパラレルシリアル変換やらせて出力してるから
16C84でブロック崩し作るよりは単純かも
>>290 すんげー参考になりますた。
PSOCでタッチセンサやったとき、「あ、うごいた!」→「どんなときでもだいたい大丈夫」となるまでが結構苦労しました。
やっぱりそこら辺は何を使っても手間がかかるっぽいですね。ありがとうございました。
趣味だとPICとBeagleBone/RaspberryPiとPCがあれば 事足りるようになった感じしない? CortexM4とかRXなんていらんかったんや 環境作ったけど…
さすがにPiはおおげさという用途にGR-SAKURAは便利
>>298 へー、ルネサスこんなの作ってたんや。
うーん、でも値段的に rpi と同じなら Linux資産があるrpi を取るかな。
まあ、GPIOてんこ盛りなとこや、mbed みたいにウェブ開発環境があるのはいいね。
PIC以上RasPi以下のマイコン使うのは 電池が心配な時か更に小さくしたい時かRaspi使ったら負けな気がする時
俺も若松もたまにはやるなあって思ったよ。
秋月はK50のシリーズとか16F1とかは扱ってくれないのかな
16F1普通に買ってたけど、もう取り扱いやめたのか
手元にある18F14K50、16F1827、16F1829、16F1938は秋月で買ったような・・・ 他の店で買ったのは秋月に売ってない24FJ64GB002だけの筈だし
14K50って一応K50の分類に入るのか。 microchipのHP見る限り、"K50 = Crystal-FreeなUSB2.0を実現" が売りっぽい んだけど。24/25K50と14K50を同じカテゴリとしてよいものか。
そもそもネーミングに一貫性ないだろ。 データシートにそう書いてある以外は。
どうせ、勝手にカテゴリ分けしてるんだから、好きなようにすれば良い。
PIC32って流行んないね。 速いけど、、、 利用できる人いないのかな、、、、 、、、 やめとこ 自己解決、矛盾3行フレーズで釣るのは w
爺達が使いこなせるわけ無いだよ
個人でそんなんが必要な用途はあんまり無いだろ ちょっと便利なIC程度で十分
>>308 アセンブラで実用的にいじれないから、とっつきにくいかもw
燃料投下じゃないよ。個人的にそう思う。
>>310 PIC32やその少し上のマイコンだと音楽・画像プレイヤー的なのが守備範囲に入るんだろうけど
そんなん1980円で売ってんじゃん的な・・・
>>308 PIC32ってそれ程は速くないし、
32bit必要な用途なら、手軽になってきたARMも視野に入るし。
音楽プレイヤーは売ってるからなあ わざわざ自作する意味がない 世の中に存在しなくて、かつそんなのを必要としてるのは自分しかいない、 という条件が揃った時に自分で作る意義がある それを見つけるのがそもそも大変なのに、 さらに高機能なマイコンに限定してしまうと、もう何も見つからない
dspicの方が早い
>>308 ワンチップARMと競合しているので特に理由が無ければ32bitはARMに流れる人も多いんじゃないの?
CPUはARMを使ってます。とPICです。とでは一般受けするのはスマホで有名なARMでしょ。
それと、PICのコンパイラは有料主体だし新たに32BIT用を買うぐらいなら他社のCPUも検討しようって事になる
背伸びしたい年頃なんですね
>>316 一昔とも言えない位前に商社に
「この案件は直接貰ってるから出来るだけ来年度の予算も欲しいんで頑張って」
「でも、PICだと石の値段が安い=足元見られるんでメインを1個2000円ぐらいするFPGAにしましょう」
って言われてて、さすがの社長も切れてったww
「機能追加が必要だとか、今の石じゃ足りない高速演算が欲しいだとか言われたら変えますよ?」
って怒鳴ってる社長にまあそうだよなぁ、と思いながらウン十年分の在庫を片付けてた
>>314 存在するけど微妙に自分のニーズと違うとか、特殊用途ゆえに糞高くて買えたもんじゃない
というのまで含めると週一ペースでネタ思い付くけど、どれも完成しないのはお察しください。
>>319 ネタ不足で困っています。
ボツネタでも構わないので是非、思い付いたものを発表して下さい。
>>320 ニーズに合うかどうか分からんけど
MZ80エミュが動いてるので、CP/Mエミュとか。
BASIC MASTER LEVEL * エミュとかそんなやつ
でもSRAMの多いPIC32限定
それはどういう局面で役に立つんだ
某USB製品の発売よりも前に、それを遥かに越える性能を持ったとあるUSB製品なら完成までこぎつけた。 一時Google画像検索で1番目に出てたんだが、その某USB製品発売以降検索しても出てこなくなった。 これは某社の圧力があったに違いないと踏んでいる。 詳細はピンク板で
その性能が、一般に求められる方向性とずれていたがために、 ユーザにそっぽを向かれたのだろう。ニッチで生きるしかない。 その方向でググってみたら出てこないか。
リンクが増えると順位はアップしたと思った。 似た様な製品の場合、某社の圧力というか、それをニュースとして流した周りの環境による。
ぐぐれば見つかるので、わざわざリンクしたりしない よくリンクされるサイトほど良いサイトという法則をgoogleが自ら破壊した
>>321 EEPROMかSPIフラッシュ外付けして、そこにBASICのコード部分入れれば
PIC24とかでも十分いけると思う。変数領域 だけRAMにおいて。
>>320 マジで?
小学校の頃、作文や図工の絵でネタに困って毎回ひとり
居残りしてた俺ですら電子工作ネタは困ってないのに?
ネタがないなら水の電気伝導率を計るもの作ってくれ 液晶に温度と電気伝導度と電気伝導率を表示できる奴 できればUSARTでデータをPCに送れるとなおさらうれしい
>>329 水の伝導率を計るには交流じゃないと電極がすぐに駄目になるのと、直流なら、またたく間に抵抗値が変わっていくよ。
直流なら電流を瞬間onして計測、1秒休みとかの繰り返しがよいかな?
温度で抵抗値が変わるからECメーターとかなら温度が25度の値と決まっているので温度センサーで補正値を計算する事も必要。
マイコンで自作するには適度なボリュームが有りそうで楽しめそうですね。
マイコンの節電機能も駆使して電池長持ちを実現したいよね。
液晶表示
計測部
ログ機能
PCとの通信
温度補正
省エネ設計
キャリブレーション機能
電池残量表示
BTL接続で
PICでDCモータを8個ほど動かしたいのだが、どのpic使えばいいかわからない。 一応以前にdspic30f4012でサーボ2個ほど適当に動かして歩行ロボ作った経験はあるんだが、割り込みとかもしたことないし。 ぐぐったら割り込みの概念はなんとなくわかったんだが、モータ8個動かす具体的な配線やプログラムは出てこなかった。 スレ民の力をお借りしたい。
>>332 具体的な配線やプログラムは自分で作る物。
まずは、回路を勉強からするべき。
× まずは、回路を勉強からするべき。 ○ まずは、回路を設計する為の勉強からするべき。
サーボ2個だけで歩行ってすげえな・・・
ポーリングで一個動かせれば出来たことになる。
歩行にも色々ある
338 :
332 :2013/10/04(金) 15:02:33.28 ID:eabLFJbY
よちよち歩きでしたが、簡単でしたよ。 ほんとはサーボ6個くらい使えばちゃんと歩けるでしょうが、そんな技術ないので。 とりあえず、DCモーター一つ制御するのにHブリッジ回路とPWMのL,Hが必要で、 Hブリッジの代わりにTA7291Pでも使おうかってところまでの知識はあるんです。 ただこれじゃPWMのチャンネルぶんしか動かせないんで、たぶん割り込み使えば行けると思うんですが、やり方が探した範囲ではどこにも書いてない・・・。
74154のイネーブルピンにPWMを入力すればいいんでは?
>>330 もしできたら1個5000で買う
以前自分でやってみたけど数値がなかなか10μS/cmぐらいからぜんぜん安定しなかった
100〜500μS/cm辺りでは結構安定してたんだけど
直流で水が電気分解するのかな?と思って測定する前に測定する方向と逆に電圧かけてみたけどダメだった
センサー部分の工作がへぼだったのかもしれないし
電池になったりコンデンサになったりしそうでやりたくない
>>332 1個のPICでやろうとするから難しくなる。
モーターの数だけPICを用意してそれぞれが制御するようにプログラムする。
全体の制御用にもう1個PICを用意してI2Cで通信管理する。
>>332 普通のDCモーターを動かしたいのか模型用のサーボを動かしたいのかどっち?
サーボモーターは普通のDCモーターだろ
346 :
332 :2013/10/05(土) 10:38:45.31 ID:LgSoZEwi
皆様レス感謝いたします。
>>344 動かしたいのは普通のDCモーターです。
>>332 モータードライバを買ってI2Cですか。
ただググったらDCモーター用は最大で同時制御4個でしたし、やや高いので自作したい。
>>343 そうしますと、今回DCモーターを8個動かしたいので、たとえばdspic30f4012を4個買って3スレイブ、1マスターにする感じでしょうか?
正直に言いますとI2C通信をしたことがないので、ググった知識だけに頼ってますが・・・。
あと自分、dspic30f4012にこだわっていますが、これは依然動かしたことがあるのと、このPICはモーター制御に最適化されていると昔聞いたためでありまして。
もしコスパ、あるいは能力的に上位の物があれば、教えていただきたいです。
>>346 DRV8830 はどうですか?
I2Cのアドレスは9個から選べるので一つのI2Cで9個までのDCモーターを動かせる。
ストロベリーリナックス DRV8830にコネクタを実装したモジュール基板
I2Cモータードライバ・モジュール DRV8830 567円
秋月 DRV8830をピッチ変換基板に実装したものが
DRV8830モータードライバモジュール 170円
348 :
332 :2013/10/05(土) 11:05:37.34 ID:LgSoZEwi
>>347 なるほど。そうするとこのDRV8830を8個かって、picに一個にI2C通信する感じですかね。
たしかにこれなら、Hブリッジ内臓だからTA7291P買わなくて済むのか。
1Aで足りるのなら
>>345 模型用サーボは、
モーターとギアと回転軸に付いた抵抗値でのワンショットマルチバイブレーターと外部信号のPWMとの差が無くなるようにモーターを回す制御回路が入っていて外部からのPWMのdutyで軸の位置決めができる。
中身がDCモーターでも外部からの制御はPWM信号なので電流を流すモータードライバは要らない。
模型用サーボを動かすならI2Cから16chのPWMが出るPCA9685とかを使うと便利。CPUから直接PWMを出すとデバック時に暴走したりブレークをかけてPWMが途絶えるとサーボは、勝手に動いてしまうよ。
直接DCモーターを動かすならDRV8830等のI2C内蔵ドライバーを使うと便利だがリミットSWやら原点SWやら原点復帰動作が必要になる。
へー、模型作りやってないと知らない知識だな。勉強になった
模型用サーボモーターでロードバイクの電動シフト化した奴の記事を見たけど、かっこいいなあれは。
子供の科学の自転車とエレクトロニクスを思い出した
iphoneでコントロールさせるとか
GWSサーボの振動や誤挿抜でGND浮いた時のサーボ制御回路の壊れやすさは異常。 あれ、マイコンとサーボ信号線の間に抵抗入れたりしたら防げるのかな? ネットや本の参考回路はマイコンと信号線直結してるの多いけど
mplab x って乗り換えた方がいいんだろうか? 今の所は特に困っていないけど、便利そうだから迷う
切片管理、バージョン管理いっぱいする人ならいいかも
>>356 GNDだけ抜けたらだめだわ。
USBコネクタ見てみ
USART通信で,レジスタの中身を送りたんだけど,どうやったらできるのかな? 普通に文字を送ることはできるようになったんだけど・・・
PICなの?AVRなの?どっちなの?
マルチ野郎
>>360 送信してない時を見計らって、好きなレジスタを送信データレジスタにコピーすればええがな。
分かるけどUSBに限った事じゃないしな…
そうか? でたときはPCのコネクタとしては活線挿抜ですげーってなってたが。
>>360 8bitのデータをそのまま送るのは可能だが、データの区切りとか、
フロー制御の関係で、使えない[文字]が必ず出来てしまうので、
普通は英数字に変換して送る。
>>360 普通に文字で送ればいいじゃん。
バイナリでやる必要なし。
>>364 359が言いたいことは、
「電源ラインを接続した後で信号線を接続しろ」
でしょ?
(USBコネクタを一つの例として)
>>370 質問者の意図は
「サーボが壊れやすい。何とかならないか」
だろ。日本語の読解が出来るなら。
USBコネクタのGNDが長くなってる一番の目的は「壊れない様に」では無いし
そもそも、GNDのコンタクトが長いからといって、GNDが浮かない理由にはならない。
その上、USBとラジコンサーボでは、信号の性質や対象の性質も、まるっきり違う。
つまり、根本的に対策方法が違う。
日本語が読めても「誤挿抜でGND浮いた時のサーボ制御回路の壊れやすさは異常」は読めないってかww
>>356 ラジコンヘリに付けているが墜落して中のギアが欠けた以外壊れとことないぞ。
調整時はサーボのコネクタは頻繁に抜き差ししている。
サーボ電源と信号のグランドが外で共通になって無かったら壊れるかも
>>371 USBとラジコンサーボの信号が似ているかどうかなんて話題にしてなっかたのですが、
日本語の読解力に優れている方のようなので、2、3教えて下さい。
>GNDが長くなってる一番の目的は「壊れない様に」では無いし
電源ピンが長い目的は何でしょうか?
>GNDコンタクトが長いからといってGNDが浮かない理由はない
コンタクトが長くても浮く場合(接触不良になる場合)があるってことでしょうか?
どんな場合でも接触を保証出来るようなコネクタが存在するなら
それこそノーベル賞が貰えると思いますが?
>根本的に対策方法が違う
私は模型用サーボに詳しくないので参考までに教えて欲しいのですが、
あなたの対策方法は何でしょうか?
>>375 頭が悪そうだね。
少しは自分で考えて見たらどう?
ユトリだから無理なのかな?
>>375 自分のアホな書き込みそこまで必死にかばわなくても良いんだよ
>>371 ,376,377,378
あなたの今後の人生の為に、日本語による表現方法と電気回路について
もう少し勉強されるようお勧め致します。じゃあこれにて失礼。
日本語力ないやつに言われたお…
はいはい どえらいどえらい
思った通り日本語の読めない奴がふぁびょってるわw そりゃ日本語読めないわけだw。
>>379 災難だったね。
ここはアフォによるアフォのための巣窟になってるから、二度と近づかないことだね。
一人の人間が自作自演でやってるからね。
悔しそうだなwww
その気持わかるわぁ
ほら、さっそく自作自演きたでしょ。 キ、チ、ガ、イ。
大変だな 変なのに噛みつかれて
自分で自分をあおり始めたか…
>>389 ごめん
煽られてる人のために言っておくと同一人物じゃないです
とゆーか383寄りの意見だったんだがな
392 :
774ワット発電中さん :2013/10/12(土) 00:57:04.85 ID:gPdYzOGw
PIC1650のアーキテクチャで1ヶ所分からないんだが GOTO命令が101xkkkkkkkkってなってるのどういうことなんだろう 0〜255にしか飛べないのはありえないだろうけど… 欄外に説明がありそうだが切れてて見えない
PCLATHレジスタと組み合わせて使うんでない? アセンブラ何年も使ってないから見当違いかも
>>391 あれま、まともな人が書くなんて。
ちなみにどう思うこのスレ。単発IDばっかで。
IDかわってしまったが。
>>392 1650?
16F505とかは16Fと名乗ってるけど実はPIC12系だから
インストラクションセットが12bitになっててgotoも9bitしか指定できないよ
398 :
10人に一人はカルトか外国人 :2013/10/12(土) 08:56:46.01 ID:WvNWbw7v
★マインドコントロールの手法★ ・沢山の人が偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 ↑マスコミや、カルトのネット工作員がやっていること TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、 カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。 リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。 ..
>>394 何様なのか知らないけど上から目線の発言する人が多くて雰囲気良くないよね。
>>394 連投スマソ。
まあ単発IDはもう他のスレで見慣れちゃってるから特に何とも思わんけどw
>>399 自分を表現できる場所が他にないんだよ。
だから、必死で頑張ってるんだよ。
ここなら誰か相手してくれるから。
そもそもマシンコードが12ビットしかないのだから 小メモリ向けの命令セットだから
16ビットでも命令コード空間小さいなぁ、と思ってしまうのに… 可変長に慣れちゃったのかな。
404 :
392 :2013/10/12(土) 12:24:18.70 ID:gPdYzOGw
PIC1650は
>>2 のpic16xx.pdfに載ってる初代PICね
これのGOTOが9bitですらなく8bitしか無いように見えるんで
どういう仕組みなんだろうと不思議だった
status word register にPC9 bitてあってな いわゆるバンク切り替え。 PIC的にはページ切り替え
>>405 それは9bit目(1から数えれば10bit目)で、
8bit目(1から数えれば9bit目)はやっぱり無いんだよね…
>>392 どの資料をみてるのかわからないけど
GOTO は 101k kkkk kkkk で
インストラクションで 9bitのアドレスを指定できる。
CALL は 1001 kkkk kkkk なので 8bitしか指定できず
bit8が0のアドレスしかcallすることはできない。
( 0x100番地はcallできない)
初心者ほど飛べる番地に目が行きがちだが、 実際にプログラムしてみると、 call用のスタックが2つしかなくてつまずく。
コンパイラはどうしてるんだろう
>>399 >
>>394 上から目線の発言する人が多くて雰囲気良くないよね。
そうなんだよな。せっかく質問しても、データ読め、ググレ、じゃなー。
でもそれやってるのはどうやら一人の人間だよ。
単発ID使いだから多く見えるけどそうじゃない。
コンパイラはがんばるけど、すぐ根を上げる しかたなくアセンブラを使う。
そんな古臭いので苦労しないで新しいの使えばいいさー
きっと購買部のミスで、使い切らないといけない在庫が大量に
>PIC1650は
>>2 のpic16xx.pdfに載ってる初代PICね
なるほどその資料ね
pdf 7ページ目の下のほうに
if x = 0,address in page 0.
if x = 1,address in page 1.
とある。
要するに 9bit指定できるってこと。
>>414 うわー。6ページだけ見てて7ページ完全に見落としてた…
ありがとう長年(ってほどでもないが)の謎が解けた
結局今のベースラインPICと同じで書き方が違っただけか
などと不自然な書き込みが続くのであった。
ふーん、不自然に見えるんだ。 ふーん。
ふーん、これが自然だと思うわけね。その感覚がおかしい。
妄想性パーソナリティ障害の人は厄介だな
>>419 とりあえず単発IDに逃げるのだけはやめろ。
柱の陰に隠れて何を言っても説得力がないぞ。
なにをそんなに恐れているんだ?おまえのほうがよっぽどコミ障だろ。
>>420 何をもって単発と言っているのかわからないが今日の書き込みは初めてだ
極めて自然だよな
まあコミ障であるといことだけはあたったみたいだな。 論理の矛盾とかつかれるのがこわいわけだな。
>>421 もし俺の誤爆なら、もう一度同じIDで書き込みしてくれないか。
>>422 ちゃうわ!
お前が敵と思っているのは一人じゃない
>>410 >でもそれやってるのはどうやら一人の人間だよ。
残念だったね。データシート位、読んで質問するのが常識だから
あまりにも酷い質問は言われて当たり前。
それを上から目線とか言ってるから、いつまで経っても進歩しないんだよ。
PICスレでPICの話題が出て不自然とかへそで茶が沸きそうだよな。
今日もいつも通りのPICスレだねぇ。 さぁて明日は電動ハンダ吸い取り機の掃除とフィルターの交換でもするかな。
なんだ図星か
連投キチガイが単発をけなすとは
だって目クソと鼻クソだもん、そうなっちゃうよ。
月と鼈が目クソと鼻クソに見えるなんて苦労するよね。
月はいわば、地球から排泄された地グソ
USBが付いているやつはロゴなしでもマイクロチップのお許し(ユニークナンバー?)があるのは1万までだっけ? LANが付いてるのは1シリーズ2品種だけどこっちはEEPROMのMACアドレスが被らなきゃおk? まあ、こう頭をひねって考えたって弱小個人がそんな数売れないからどうでもいいような気がするけどね。 秋月のVLSI社のMP3プレイヤーってどこかに分かりやすい資料無い…orz
>>438 うん、使い方が書かれた日本語のサイトが欲しかったけど、本家の方がなんかすごい情報量だね…。
ソースコードか…つ、つかえるかなぁ…。
ちょっと寝かしておくわ、このプロジェクト。
マジ提示してもらっておいてごめん。
440 :
774ワット発電中さん :2013/10/14(月) 19:57:33.98 ID:2jB8dBEF
×ちょっと寝かしておく ○二度とやらない
液晶なんか寝かしておいたりすると型番が書いてなかったりして迷宮入りするよね
>>436 1970年、人々はクソの欠片に熱狂したというのかッw
>>436 いや、地球からはそんなでかいもの出せませんぜ。
>>443 wikipediaの 月 の項目に起源についても言及があります。んで、要は
現時点ではジャイアントインパクト説というのが(組成やら同位体の
古さ等で)有力で、地球に火星規模の天体が衝突して地球から
千切れた質量が二つの月を作り、その二つの月が衝突し合体したのが
今、見える月らしいですお。
>>445 まさかとは思うけど、wikipediaを信用しちゃう人?
語尾が「〜お。」の人ですから。
wiki信用しない俺かっこいい の人? 普通は「出典」元の論文なりを読むでしょ。 出典が怪しげな所でないなら学説として信用するよ
え?
451 :
445 :2013/10/15(火) 19:48:02.84 ID:P6JyGklr
>>446 * * いいえ、私が信奉するのは
* + アンサイクロペディアでつ!
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
どやぁ
質問です。 MPLAB X IDE v1.9 に Hi-Tech C v9.83 で PIC16F1827 をLチカさせています。 動作は思ったとおりなのですが、IDE中に赤い!で「unable to resolve identifier __delay_ms」と出ます。 ビルドではエラーは出ません。 このエラーマークらしきモノを消す事はできるのでしょうか?また何が原因なのでしょうか? pic.h から htc.h がインクルードされていて、中でマクロがあったので解釈出来ないとは思えないのですが ご存じの方が要らしたら、アドバイスお願いします。
>>453 とりあえずそのプログラム全文をupしてくれるとありがたい
>>453 リンク時にdelay_msが見つからないっていうことじゃないのかね?
ビルドでエラーでないってのと矛盾するけど
無料で使うと出るとか出ないとか
>>456 ああ、ビルド時じゃなくてそういうところにでるのか
そういうエラー表示って、ヘッダ中の#ifとかの解釈をちゃんとしてくれないみたいだね
解決方法は私も知りたいや
>>453 XC8つかってるけど、 __delay_ms()で、エラーマーク付くね。
コンパイルは問題なく通るんだが。
>>459 delay.h (だったと思うが出先なので自信ない)はincludeしてますか?
後、クロック周波数はdefineしてますか?(こちらが落とし穴)
delay系の関数はインラインマクロだし、
引数が一つの関数は事前定義されてなくてもコンパイラが通してしまうという仕様がXC8にはあるので…
462 :
453 :2013/10/18(金) 23:11:44.01 ID:nb6y6uWq
>>457-461 皆さん情報ありがとうございます。
461氏のURLに暫定的ながら答えがありました。
IDEの問題なのでIDEのV-up待ちかも?
マークを出したくないだけなら #define で該当関数を定義すると出ません。
% #define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
% #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
% を書いた所、赤丸!は消えました。461氏URLのMcPgD氏の解決方法です。
プリプロセッサ句をIDEが正しく処理するまではこれで対処して置く事にします。
皆さんありがとうございました。
>>463 Hi-tech C V9.83 でも pic.h の149行目を同様の修正でうまくいきました。
この辺が
>>457 氏の言われた部分かもしれませんね。
そう、ささやかな「有料版使いやがれこの野郎!」というメッセージなのです
CCS-Cで、18F67J60などのether内蔵の物を使いたいのですが、 microchipのIPスタックの動作実績はあるのでしょうか? C18では動いてますが、自分の過去プログラムの移植で、CCS-Cを使いたくて。
467 :
774ワット発電中さん :2013/11/03(日) 09:37:08.43 ID:imSDP4TR
君が実績を作ればいい
他のスレにもCCS質問出してるみたいだけどなんでそこまでCCSコンパイラにこだわるんだろうな PICの過去遺産なんて何千本もあるわけないだろうに
今流行りのコンパイラってなんだろうな ccsかhitechかmikroかxc8か まだある?
貧乏な道楽者だからhitechかアセンブラしか使ったことない
ハイテックCでコンパイルした日付を自動的にLCDに表示したいのだが そういう変数ってある?
>>471 マニュアル読んで無いってんなら、post build processでなんとかするしかない
おいらはPICはアセンブラしか使ってないけど ANSI対応なら__DATE__ とか対応してないの?
>473 それは不可能。 >474 Cにはない
>474 すまん。マニュアル見たらあった。やってみる。ありがとう。
>>473 コンパイル前にdate呼び出して文字列変数化してヘッダにする単純なスクリプト書いて、
その結果をmain.cからでもincludeすればOK牧場ですよd(≧▽≦)
ん? そんな特殊なことができるのか? と思ったが良く考えたらそういう手があるな。要するにスクリプト言語使って 自動的にインクルードするソースファイルを作れってことだな。 なるほど。 でもさdateFileMake.exeってアプリを作ったとして コンパイル前に自動的に起動できる?
make知らない人はこの際使えるようにしたらどうよ makeは処理系付属とかでなくそこらで落とせる適当な奴でいい
>>478 Make使っているならmakefileに依存関係を書く。
netbeansなどの大抵のIDEには、プロジェクト設定の中にビルド前や後に起動する処理の項目があるからそこに書けばいいですよ。
exe作らなくてもバッチファイルで十分かと。
リダイレクト機能でコンソール出力のファイル書けますよ(詳細はOSのヘルプなどで)
大規模なプロジェクトでない限り、毎回全コンパイルでもそんなに困らない makeなんて結局はタイムスタンプの比較をして必要最小限だけコンパイルする以外の役には立たないんだから
それはあんたがタイムスタンプの比較をして必要最小限だけコンパイルする以外に使ってないだけ 自分が使い方を知らないからと言って、それだけしか機能がないと思い込むのはバカっぽいぞ
>480 なるほどバッチでもできるんだね。でもどういうスタイルで開発している のか興味ある。MPLABとDOS窓を併用する感じなの? デバッグするのに MPLABを立ち上げておく必要はあるから、MPLABから登録したアプリを起動 できたらいいけど。
>>483 =475 ?
>でもどういうスタイルで開発しているのか興味ある。
やれやれこんな質問するレベルで ↓見たいな頭ごなしの断定ができるのか。
バカの壁って奴だね。
> >473
> それは不可能。
MAKEを使うということはMPLABは使わないで、デバッグはポートを叩くとか 232出力でやってるのかな? 自分のばあいもデバッガは殆ど使わないでテストプログラムを作って232経由 でデバッグするがICD3はいつも繋いでいる。 偶にブレークしたいことがあるからね。
>>483 linux系のOS使っていて、シェルスクリプト(要はバッチ)か、もしくはawkという言語でやっています。
awk(gawk)はwindowsで動くのもあるんじゃないかな…別にperlやpythonなどでもいいですが、
この手の物の基本的な使い方覚えて置くと定型処理を自動化できるので便利ですよ。
>>485 ああ、MPLABにコンパイラ走らせる前やリンカ走らせる後に追加でコマンド走らせる項目があるんで、
そこに(出来ればフルパスで)実行属性つけて生スクリプト書けばおkですよ。
で、MPLABはMakefileベースのビルドファイルを作ってくれるので、
然るべきディレクトリでmakeすれば何の変更もなしにビルドしてくれます。
クリティカルな所はMPLABのデバッガ使っていますが…(例えば期待通りのタイミングで期待通りの行に飛んでいない疑いがある時とか。)
awk使いがいたとはな。確かにあれは便利だ。 jgawkはもちろんWindows版もある。
>487 Mplab version8.89だが ヘルプを見るとExportMakefileってのがあるらしいのだがどこにも見えない。 で条件があって以下のようになってるのは確認してもprojectの中に出てこない。 LocaleHeaderなんてのもないし、ExportMakefileもない。 このバージョンの MPLABのバグか? Export Makefile Under Project>Build Options>Project, Directories tab, you must have selected “Assemble/Compile/Link in the project directory “ under “Build Directory Policy” for this feature to work. Export to a file the instructions to Make the project. Use this file to Make your project outside of MPLAB IDE, i.e., with a make.
>>488 256倍楽しむ本シリーズを思い出しました
MPLAB 8.89のprojectは Project Project Wizard New Open Close Set Active Project Quickbuild (filename) ------------------ Package in .zip Clean Build Rebuild HitechC manual Build configure Build Options ----------------- ってなっていてマニュアルとかなり表示が違うなんでだ。 そのかわりHItechcManualとかあって便利だけど。
16F1825, XC8 1.20, MPLAB X 1.70を使ってます 局所変数用スタックサイズを変更するにはどうすればいいですか リンカースクリプトのファイルが見当たらないです MPLAB Xで設定する場所が見つけられません
493 :
774ワット発電中さん :2013/11/05(火) 22:19:52.73 ID:DS3LL69P
かなり脱線してきた。 面白いぞ。
494 :
492 :2013/11/05(火) 22:44:18.03 ID:DGgC0fAO
linker script見つけました MPASMのほうにありました(XC8のほうばかり探してました) これからlinker sciprtいじります お騒がせしました すみません
495 :
494 :2013/11/05(火) 22:58:24.37 ID:DGgC0fAO
たびたびすみませんね・・・ 16シリーズでは(ソフトウエア)スタックのサイズが変更できないようです リンカのマニュアルに18シリーズしかできないと書いてました ソフトウエアスタックはどこにどれだけ確保しているのか分からないので非常に不安です
リンカのマニュアル読む前にデータシート読め。 これだからCしか出来ない奴は。
XC8って使ったことないがHightechCのソースは無理なくコンパイル できるの?
>>497 htc.hをxc.hに変更して、コンフィグの書き方を変えればいけた
コンフィグが違うのか? コピーしたソースだと時々BORV_25とBORV_HI が混在していてエラーがでることがあるけど、その程度なのかな?
500 :
494 :2013/11/06(水) 21:49:57.45 ID:1tIxMrUn
>>496 読み返しましたが、復帰アドレス専用のハードウエアスタックのことしか書いてないです
C言語の局所変数は言語処理系固有の事項なので、
チップのデータシートに書かないと思います
>Cしか出来ない奴は。
ASM(Z80,6809,6309,MIPS32), Fortran, Pascal, C, Scheme, Lisp, Java, PHPで
プログラム書いてきましたが・・・
>>495 たしかデータスタックは無かったと思う。
データエリアに静的に配置されて最適化で明らかに階層が上と判断された分は下位階層のメモリーをオーバライトして配置する。
なのでリンクMAPでメモリーオーバーしていなければ大丈夫。
但し、8bitPICは再帰関数は使えない。
割り込みと平ルーチンで共通の関数を呼ぶ時は注意
16Fでも【Enhanced Mid-Range】なら >16bit幅で2本になったFSRデ別アドレスに連続配置RAM(0x2000〜)やプログラム領域(0x8000〜)アクセス可能 >MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能 でデータスタック使えそうだけど、やっぱり古い16F主流だと対応しないわな 1本のFSRで細切れRAMじゃ
MPLABはなんでこんなインストールに時間がかかるんだ 全部の種類使うやつなんていないんだから必要になったときに必要なファイルを解凍してキャッシュするようにすればいいじゃねぇか
教えてください。 SWやLEDなどのI/O-----USB付きPIC---USB(B)コネクタ=======USB(A) という接続で、USB(A)をPCに差し込むと、PCが見つけてくれて、 ドライバを入れてくれて・・・みたいなことは、できるのでしょうか? I/Oは、SW8個, LED 8個程度です。
標準デバイス(説明略)になるように作れば勝手に認識してもらうように作ることができる。 まずは、キーボードかゲームパッドのふりをするデバイスとして作ってみるといいよ。 とりあえず、[PIC HID]でググって実験や製作してるページを読んでみたまい。
>>504 前の人が書いてるようにHIDで書いてしまうのが簡単だが、
それで不足の場合、固有ドライバをロードさせる手もある、
頑張って勉強してくれ。
>>503 そうすればそうしたで「なんで最初から全部いれて置かないんだ!」って苦情がくる。
つーか、Windowsインストーラーの仕組みってもともとそんなんじゃなかったっけ
カスタムインストールでいいんじゃね?
510 :
500 :2013/11/07(木) 23:22:22.89 ID:2Mu9WgNn
>>501 ありがとうございます.
割り込みルーチンがどうも怪しいのです. (メモリオーバーはしてません)
(タイマ割り込みで待ち行列にイベント情報をenqすると、
ネットワークパケットバッファの内容が壊れる.)
時間をかけて調べてみます.
511 :
774ワット発電中さん :2013/11/08(金) 01:35:13.00 ID:+a710uvr
>>503 それはなんでもかんでも[Yes]をクリックしたあなたのせい。
>>510 言ってることがゴチャゴチャと変わる奴だな
スタックがどうちゃらだの局所変数が云々言いながら、
最後は割り込みルーチンがとか、イベント情報のenqだのと・・・
>>512 原因が解からないバグは仮説を立てて ひとつずつ潰していくのが普通だろ
基礎を勉強せずに、行き当たりばったりの、サンプルコピペ野郎にはデフォ
>>513 仮説をたてて・・なんて作業かねぇ。
最初がいきなり
>局所変数用スタックサイズを変更するにはどうすればいいですか
>リンカースクリプトのファイルが見当たらないです
で、
>割り込みルーチンがどうも怪しいのです. (メモリオーバーはしてません)
なんて言い出した挙句に
>(タイマ割り込みで待ち行列にイベント情報をenqすると、
>ネットワークパケットバッファの内容が壊れる.)
こんな有様だぜよ。
実際にスタックエリアが足りなくなっていて、広げたいというなら
最初の質問の趣旨も分かるが、原因わかりません、スタック広げます・・
かいな?なんじゃそりゃ?
言っていることは一貫しています
割り込みルーチンでenqしないようにするとちゃんと動く・enqするとおかしくなる
→キューへのアクセスは排他制御している
→スタックが伸びてデータ領域を上書きしているのかもしれない
→もしそれが真ならスタックサイズ変えると挙動が変わるはず
→スタックサイズ変更するしないでふるまいの違いを観察したい
→変われば原因はスタックサイズに関連している、変わらなければ別の可能性を考える
>>515 PIC16Fではソフトウエアスタックエリアが足りているか否かを知るすべがないと思っています
ありますかね?
>>516 スタックを使う部分にスタックの深さをチェックするルーチンを組み込む
とか、工夫すれば何でもできると思うけど。
XC8って、局所変数の管理にスタックって使ってるの?
>>517 やれやれ・・・
>→もしそれが真ならスタックサイズ変えると挙動が変わるはず
そういうのを「いきあたりばったり」って言うんじゃねぇの?
挙動が変わったとしても’本当に’スタックサイズのせいなのかどうか
わからない。
スタックエリアの変更で他の変数領域が移動したせいかもしれないし。
仮に広げてうまくいったように見えたって
>PIC16Fではソフトウエアスタックエリアが足りているか否かを知るすべがない
なんて言ってるようじゃ、本当にスタックが足りているのかどうかも
わからないってことでしょ。
次に何か変な現象が出たらまたスタックを広げるの?
変な現象=>スタック広げる=>まだ出る=>もっと広げる・・・
これを「行き当たりばったり」でなくてなんと表現するのやら。
ところで、>516の脳内ではソフトウェアスタックをどれだけ使っていて
どれだけ余裕があるという計算になっているのかいな?
スタックを疑うなら、そのくらいの見積もりはできてるんだろ?
番兵でも置いとけばすぐ判るだろ ちょっと頭使え
522 :
774ワット発電中さん :2013/11/09(土) 07:56:20.58 ID:RsHiMxwi
高度なロボット兵器禁止条約の検討で PICが規制対象になるかだが。
>>518 しらんがな(´・ω・`)
アセンブラソース吐いたのがhexと同じディレクトリに残されてるだろうから、
読むとデバッグ捗るかもね(´・ω・`)
後、割り込みハンドラから呼び出されてる関数は、普通に呼び出されたのと別のアドレス空間見てる感じだよ。
アセンブラソースは斜めでしか見てないけど(´・ω・`)
PIC16Fだったら、局所変数管理にスタック(関数呼び出す度にアドレスが替わる)は 使ってないと思うけどな。 たぶんリンクした時点で全部アドレス確定してると思う。
C言語の仕様(JIS X3010)では、ブロックに入ると局所変数用のメモリを新たに割り当てることが必須になってる XC8のマニュアルを見ると、対象チップによっては局所変数を固定アドレスに配置したコードを出すと書いてある
526 :
774ワット発電中さん :2013/11/09(土) 13:01:31.48 ID:IJ0IPec8
XC8でPIC16から18にそこそこなプログラムを移植したが レジスタの設定をちょっと変更するだけで簡単にできた 最初からPIC18にしとけばよかったRAMたくさんあるし
XC8の関数は再入不可だよ メインと割り込みから同じ関数呼び出してないか
528 :
774ワット発電中さん :2013/11/09(土) 21:15:10.60 ID:tWWCnbVy
だいぶ前にPIC使った時はすこし大きなプログラムをかくとLINKERがえらーだして 困ったが最近のはそういうことがないのか? PIC24Fで比較的でかいプログラムを書いたがまったく問題なかった。すんなり動きすぎて ビックリ。トラブル前提で3倍くらい納期を取っていたんだがあっという間に動いてしまった。
AndroidとPICをUSBで接続したいのですが、 PICは、PIC24Fでないとダメでしょうか? 制御するのは、入力8 出力8だけです。
Androidが3.1以降 & USBホストモードに対応してるなら USBデバイスモードしかないPIC18Fとかでもおk だったはず
UART 3ch以上ある安価なPICって何か思いつく? コスト抑えたいけどUART結構必要で困ってる
532 :
774ワット発電中さん :2013/11/10(日) 12:04:14.72 ID:jG453JBU
安価ってどのくらい安価になの?
533 :
774ワット発電中さん :2013/11/10(日) 12:08:10.42 ID:RH+FUSMP
H8のほうが良いと思う。
>>532 安ければ安い方がいい。500円は上回りたくない。
>>533 個人的にはそれでもいいんだが仕事で使うものでな
PIC統一でやってるから変えられない
ソフトウェアじゃいかんの?
>>535 ここが厄介なんだが、ハードの設計は俺なんだがソフト開発者は俺ではないんだ。
ソフト実装もそう難しくもないから最終手段としては考えてるけど、開発者に余計な混乱を与えたくないからハードで実装されてると都合がいい。
>>537 おお!
こういう検索あればなぁと思っていたが、やっぱりあるものなんだな。
ありがとう、用途に合うものを検討してみる。
>>537 そのパーツセレクタ、次スレの>1に入れるの推薦だな
10F222TでRGB3色LEDと電源と信号線って感じで64個繋げて、4×4×4で立体的に組んで PIC1個毎にID変えれば信号線1本で64個別々に制御出来るよね?
>>541 信号線1本で何処まで通信速度が出せるかがネック、速度が遅いと「パラパラ」する、
少なくとも1/30秒以内に全てのPICと通信せんとね
ブロードキャストなIDをひとつ決めて、ブロードキャストIDが 検出されたら状態変化させるようにすればいいよ。
用途によっちゃ別に1/30秒でやる必要も無いし、 予め用意されたシーケンスを呼び出すだけならデータ量も多く無いかな? あ、信号線は同期信号と兼用してシンクロさせるつもり。
RBG LEDの中に通信コントローラが内臓されているのを使えば簡単じゃないの?
たとえば、WS2812bはLEDにシリアルINとシリアルOUTが有って
INとOUTを繋いで連結できます。速度は400kbps。
WS2812一個あたりPWMも内蔵されていてRGBで3BYTE
のデータで明るさをコントロールします。
64個繋ぐなら連続して3x64=192Byteを送ると一個目が先頭3Byte
使って点灯制御し連結されている次のWS2812には先頭3Byteを
削って189Byteが伝達される。これが繰り返されて64個が個別制御
できます。
なので、連結の順番で識別するので個別のIDは不要なのと
いくら連結してもマイコン側からの送信は一個目に対してなので
全体の長さは気にしなくてよい。
WS2811はLED無しのコントローラのみのICも有る。
10F222Tで作るなら同じような形式にするとIDが要らないので
個別にIDを割り当てる手間が省けるよね。
IDを付けたいならコントロール側ソフトで送信時にID番号と
連結順序のテーブルで変換すればアプリケーション層のソフトは
論理IDで扱えるから配線順序は気にするほどではないと思う。
http://www.insomnia.org/led/documentation/rgbsmdws2811.html http://www.adafruit.com/products/1379
面白そうなんでちょっと考えてみた データはIDとか入れずに64個分連続で流して 自分宛だけ数えて取ることにすれば無駄がない。 多分最速で2サイクルで1bit読めるから、 RGB1bitづつを64個に同期とか余裕見て500サイクル。 8MHz/4/500=4kHzで256段階のディザリングがギリギリいけそう 同期とかあんまり考えてないから自信ないけど
222はPWMないから調光もソフトでやらないと
すまん何か勘違いしていたようだ
本格的に考えてみた。やっぱりできそう。 ...__----__-- って信号に対して btfss GPIO,3 goto $-1 btfsc GPIO,3 goto $+1 btfss GPIO,3 goto $+1 で1サイクル精度で合わせて、あと movlw 0xF8 からの addwf GPIO,F rrf data でデータ読む
PCのスピーカーとマイク端子使った書き込み器って作れないかな
作れるよ
だよねー
アプリレベルでのソフトシリアル通信は簡単に出来るが仮想ドライバーに仕立てるのが大変だよね。
USARTも載ってないpicでosもどきとか無茶しないほうが。
か、カンサスシティスタンダード…
爺
557 :
774ワット発電中さん :2013/11/19(火) 22:25:19.65 ID:g01biFMj
とりあえず、3色LEDをランダムに点滅させるだけのコード書いて、10F222には電源だけ引き回す事にする。
559 :
774ワット発電中さん :2013/11/20(水) 17:26:53.40 ID:W/zYQ/2u
サッポロシティの回路図や原理が掲載されてる無料サイト知ってたら教えてくだしあ。
16f88でVGA表示の歩け歩けゲームをつくっているにゃん。 アセンブラっこんなにややこしかったっけ?昔X68Kのはもっと簡単だった様な記憶が… もう少しにゃん =^o^=
16bit最強のモトローラのニーモニックと、経緯的にものすごくタイニーなPICのニーモニックを比べてもなあ
562 :
774ワット発電中さん :2013/11/21(木) 11:29:35.58 ID:OTetGMlM
オシロ作りたいのだけどPIC24HのAD変換1.2Mspsが最高速レベルでおK?
作らないで国産買え
564 :
774ワット発電中さん :2013/11/21(木) 12:40:02.43 ID:OTetGMlM
オシロというより高速電圧モニターっていうのが作りたい 秋月オシロキットは5Mspsのようだけど、PIC24H単体で1.2Msps程度が限界か
モニタするにしても、>564のアナログ回路技術がついてこないだろ?
z80と比べればPICのアセンブラは至極簡単。
Z80は、インテルのを無理やり拡張してる感があるからなぁ。 でもそれが、はじめてのアセンブラだったから、逆にPICには面食らったw まぁ、どっちも得手不得手がある感じ。
PICとひとくくりにされてもな…16Fの奴は始めは戸惑うと思う。 18Fは違和感無く扱えると思う。
目的のために必要最小限のチップを選べるPIC この機能をこのチップで実現させたぜ!みたいな自己満足にも浸れる 楽しくてしょうがない
>>568 PICのアセンブラは、初めての時はいちいち命令表から探さすのでめんどいね。
PICのアセンブラで移動命令のMOVELWやTRIS,INCFやらをMOVに統一したり、
DECF f,0 は、mov w,--f
DECF f,1 は、dec f
とかに分けたり、
無い命令はマクロが、定義されている。
xor W,#nnは、XORLW nnと同じで、
xor f,#nn は、
MOVLW nn
XORWF f,1
の2命令のバイナリーに変換
ちゅうフリーのアセンブラ
Tech Tools CVASM
があるよ。
そんなドぎつい方言のアセンブラ使うぐらいならCでいいんじゃね?
しかしPICはなんでこんなに種類が多いんだ?すこし整理したりしないんかな。
シリーズごとに開発者が違うのかな。おかげで多様性には困らないが
私の場合、アセンブラでプログラムを作るときは、 「頭の中に次々と浮かんでくるアルゴリズムを キーボードからニーモニックで流し込む」 というような感じなんだけど、PICのアセンブラだとそれが出来ない。 いちいち思考を中断して、ニーモニックに変換しないといけないので仕事が遅いし面倒で、 とうとう我慢しきれなくなって、量産用に2回使っただけで止めてしまった。 昔の話です。16F84だったけど、その後、PICは使っていないので どれだけ進歩したかは残念ながら体験していません。
576 :
774ワット発電中さん :2013/11/22(金) 07:25:46.28 ID:R3hbhXHQ
>>573 ルネサスや日本のメーカーと比較するとはるかに少ない。
ルネサスだと数える気にもならないが10万品種はくだらないだろう。
PICの品種は全部合わせても100品種を超える程度で、比較的歴史が長く
廃品種が少ないことを考えると驚異的に少ない。多いと行っても200もない
全部覚えることも不可能ではないし、シリーズを限定すればもっと簡単だろう。
AVRは少ないと言いたいのかもしれないが、AVRの最初の開発はWikiに
よると1996年となっているが、PICの最初の開発は1975年で歴史が違う。
>>573 大口ユーザニーズに合わせてI/O構成を変えたりするから、
どうしても品種が増える。
マルチファンクションペリフェラルなPSoCなんかだと1つで
色々対応できたり、A/Dでも複数チャンネルの同時変換が
できたりと便利な面もあるけど、個別の機能性能(A/D変換速度とか)
では不利だから、そのあたりはトレードオフ。
>>575 PICは単なる”プログラマブルインターフェースコントローラ”という
趣旨で作られたのだと思えばそれほど腹も立たないでそ。
品種が多いっても、CPUコアとメモリ量、周辺IOの数のバリエーションなんで1つ覚えてしまえば覚える事は多くない
頻繁に使うニーモニックが少ないから、逆に悩むことが少ないな
581 :
774ワット発電中さん :2013/11/22(金) 10:30:48.73 ID:QtLTYpWi
もっとピン数少ない奴とか種類がたりないpic24とか
機能ブロックの種類は、前出たPIC検索ページのパラメータ程度しかないって事だよね
>575 それ分かる。俺も最近になってまた使い始めたけどづっと使わなかった。 「アセンブラが良くない。Cが駄目。」とかつては思っていたが最近Cは 普通に使える。なにしろDIPがあるのが好い。
まあ、最初に覚えたアキティクチャってか、構造って、あとあとまで効いてくるよね。 Z80から入ったから、計算をしようとうすると、アキュムレータがないと不安になってしまう。
X68Kアセンブラはすごいかんたんにゃ、昔、PC98のアセンブラを見て驚愕したにゃん。 PICだといまだに btfsc とかでどっちがどう飛ぶのか考え込んでしまうにゃん。 X68Kアセンブラはもう忘れてしまったけど、もっと簡単な条件分岐だったと思うにゃ〜。 =^^=
Bit Test iF Skip Clear だから迷う余地ないじゃん・・・
PIC使い始めのころ、Cコンパイラがなく、アセンブラを使っていた プログラムはCで書く。Cの制御構造からPICアセンブリ言語への変換表を用意 しておいて、それ見ながら手作業でアセンブリ言語にしていた。 どのプロセッサでもなれるまでが大変。
>>586 skip not carry
skip not zero
がマニュアル無しで書ける?
PICを、というかマイコンの勉強を始めようと思うんだけど、Cから入っちゃマズイですか?
PIC?16Fとかだとかなり小さいプログラムしか書けないけど、それがわかってればいいんじゃね? PIC32くらいになるとCで書くのが普通かも
skip not carry :「not carry」= 「carry bit is zero」 btfsc STATUS,C skip not zero : zero bit is 0 btfsc STATUS,Z とかじゃね?(^p^;) コーディングするときゃいちいちマニュアルみながら書いてるから、正直うろ覚えだけど
>588 そんなの無理に覚えるよりマクロ作っておけばいいよ 私はこんなの作ってある fはファイルレジスタ=メモリね ;if_fZ f,inst fが0ならinst実行 ;if_fNZ f,inst fが0以外ならinst実行 ;if_C inst Cフラグ=1でinst実行 ;if_NC inst Cフラグ=0でinst実行 ;if_Z inst Zフラグ=1でinst実行 ;if_NZ inst Zフラグ=0でinst実行 ;if_BC f,b,inst fのbit=0でinst実行 ;if_BS f,b,inst fのbit=1でinst実行 ;if_fk△ f,k,inst fと定数kを比較(定数が基準) ex if_fkA TMR0,99,CLRF TMR0 ;if_ff△ f0,f1,inst f0とf1を比較(f1が基準) ex if_ffB TMR0,TEMP,GOTO LOOP △は条件 ;A =above R>基準 ;AE =above&equal R≧基準 ;BE =below&equa R≦基準 ;B =below R<基準 ;E =equal R=基準 ;NE =not equal R≠基準
PIC32MZ 凄すぎワロタ
>>589 マズくはないけど、低レベルI/Oとハードウェア割り込みの知識は最低必要になるから注意です。
ま、どのレジスタがなんて名前の変数として用意されてるか。程度の知識で行けますがね。
>>589 PIC18 (最低限 PIC16F1xxx)から始めるなら、Cで良いと思う。
>>589 picの命令がわかってcでこう書いたらこういう命令に変換されるかな?って考えながらやると効率よくできる気がする
PICで分岐書く時は大抵、アルゴリズム考えてるときは btfsx STATUS,C goto hoge みたいに仮に書いてるな あとでステップ実行しながらbtfssかbtfscか正しい方に直す
>>589 LEDチカチカとか学習用なら全然マズくない
ほんの少し高度なことやろうとするといきなり壁にぶち当たるかもしれないけど
たとえそうなってもいっそPIC以外のコントローラに変えちゃうって手もあるしそういう潰しはCの方が効く
業務用だと許されないかもしれないけど勉強用でしょ?
強くPICを使いたい理由がないならARMの安いやつとかの方がいいと思うな。 メモリが多いから楽だよ。特にCコンパイラでやるなら。
>>599 8pinのARMいいね
pickitみたいなデバッガーあるの?
bz bnz bc bnc skpc skpnc skpz skpnz lgoto lcall などの疑似命令が用意されています
>>589 プログラムの勉強でなくマイコンの勉強というのであれば、
C言語ではなくアセンブラで勉強することを強くおススメします。
>>601 これ思うんだけど、折角なら
bgt / skpgt (greater than)
ble / skple (less than or equal)
って名前でも使えるようにしてくれてれば数値比較が楽になるのに
>>589 16Fで、Cの特徴である再帰と関数ポインタをやってみることを勉強することを強くお勧めするよ。
>>589 最終的に自分が何をしたいかによる。
上っ面だけのED点滅レベルのプログラムで済ますならCでOK
全てを理解してハードとソフトが融合した神レベルを目指すならアセンブラから入ったほうが良い。
Cが先で、あとでアセンブラを覚えた奴は、センスがいまいち。
ま、アセンブラから入って、後から高級言語覚えると、 汎用性や可読性のない癖のある、仕事では使い物にならないプログラムの書き方を覚えてしまう上に、 妙なプライドだけある使い物にならない奴になる可能性が多いから、 情報処理の勉強をある程度覚えた上で、やることをお勧めする。 VBあたりでもよく言われたことだけどね。言語仕様がタコな処理系ではすべて言われること。
611を読んで、昔のある出来事を思い出してしまった。 PC用のCのプログラムを書いている友達に、 私が作ったCのプログラムを提供したら、 (私はふだんはアセンブラで制御用プログラムを書く事が多い)、 リストを眺めて、 「お前のCはCじゃない、こんなルールを守らないCは見た事がない!」 とメチャクチャ怒られてしまった(w) 私はプライドが無いのですぐに「申し訳ない」と謝りました。 で、私が作った部分はチャント動いたのに、 その友達の作った部分は汎用性や可読性があったのかもしれないけど、 次から次へとバグが見つかって後始末が大変だった。
複雑なもの程Cを使ったほうがいいような気がするんだけど?アセンブリのほうがいいの?緻密な設計が出来ないから?
ルールを守らなかったらコンパイラ通らないだけだと思うんだが… ハンガリアン記法とかのマイルールを標準規約だとか思ってたのかなぁ。 (C++にグローバル変数を濫用とかしてたら何のためのクラスだよ、とは思うが) 局所的なauto変数つくるために関数の中でもいきなり{}で囲んだりとか いろいろ癖のある書き方も可能だけどルールの範囲内だしなぁ。 逆にどんなコードか見てみたいわw
ahosugi
>>613 PICのスレだから、PICの話すると、容量的にCだとキツいってことがありそうな気がする
617 :
774ワット発電中さん :2013/11/23(土) 14:48:34.47 ID:xxYQ+CF+
標準の定義とは?
16bitPICとかARMの8ピンは3.3V源がネックになってるな 5V源は多いからついそっちで組む事考えてしまう LCDとかどうしても3.3Vが必要な時は用意するけど腰が重い
>>614 linuxやBSDのソースみたら卒倒するだろうな
>616 そういう場合はフラッシュメモリサイズが大きなのを使ったほうがいいと思いますよ。
>618 PIC24でも5V使えるのがあったはず PIC24FV32KA302/301とか
>>623 dsPIC?5V大丈夫なのあるね
秋月でも売ってるから何回か使った
arduinoから久々に戻ってきたら、色々忘れている自分に唖然 UARTの入力の受け方でもてこずっちまった... 明日も頑張るか〜
626 :
774ワット発電中さん :2013/11/24(日) 03:34:39.28 ID:UpMEGBTG
アルデーノは、スケッチとか、使う言葉が嫌い。
オレもスケッチとかの用語で萎えた。LISPくらいぶっ飛んでればいいけど去勢を張ってる感がプンプンして気持ち悪い
開発者の思い入れが強すぎるのはパスだな。arduinoとかアップルとか。
629 :
774ワット発電中さん :2013/11/24(日) 12:14:01.03 ID:1adX+kFg
pic24hってpic24fとCコンパイラで同じコンフィグ設定が通らない_CONFIG1とか なんでや
エッチスケッチ乾電池
子供の頃、東京乾電池いう銘柄の電池があると思っていた
激おこぷんぷん丸と銀座カンカン娘は類似性が感じられる
633 :
774ワット発電中さん :2013/11/24(日) 20:19:25.74 ID:1adX+kFg
もしかしてPIC24HってPIC24FよりdsPICに近いのか
>>597 うむ。
btfsxの手は使わせてもらう。
意外とアセンブラ使われてるんだな
コンパイラと違って余計なことしてくださらないだけアセンブラの方が信用できるから
アセンブラはクロック数数えてプログラム書くのが楽しいんだこれが
でも、やることきっちりやれるよう書くことが、コンパイラより大変かもしれん。
アルデーノとかお仕着せラッパーライブラリで大富豪プログラミング()して ドヤ顔するためのもんだろ 所詮おままごとレベル PICなら黙ってアセンブラ
8bitPICはアセンブラと思うと腹が立つ マイクロコードだと思ってガマン汁
いやさすがにライブラリは作る派だよ。
PICのデフォルトのライブラリって、使いずらい上にバグが多いから、私もライフは作る派 まあ、大した事はしてないが アセンブリはやりたくないな...
32bitのPIC32MX の 割り込み許可命令の詳細 __asm__ ("ei"); についてどのデータ資料見れば載ってるか教えてーエロい人ーー!(´・ω・`)
644 :
774ワット発電中さん :2013/11/25(月) 13:41:54.26 ID:IZmhUeGP
DS61108Epage15のExample8-2 には ieって書いてあるんやけど データシートの例が間違えてるん?
このスレにMIPSの猛者が常駐してるとも思えないし シコシコ自分で調べるのがいいと思う
>>644 俺の書き込みがバグってたな。
ライフも、ライブラリの誤爆
orz
648 :
774ワット発電中さん :2013/11/25(月) 23:30:28.18 ID:JKsiRMkH
PICkit3でCでソースレベルデバック強力すぎる これで4000円だから 他のはやる気にならん
教えてください。 マイコンの割り込みには何種類もありますが、その中で最も優先度が高いのは、 何と考えるのが正しいでしょうか? 僕が思うには、やはりタイマー割り込みだと思います。 外部割り込みも負けないくらい重要ですが、割り込みの事実を記憶してあれば良く、 タイマーは遅れることが許されないと思うのです。 どう考えるのが一番ベターなのでしょうか?
データシートに「優先度一番高いよ!」と書いてある割り込み
>>650 割り込み優先レジスタで、何のデバイスの割り込みの優先度を上げられるか決められますよ。
レジスタは複数あって、全ての(リセット以外の)割り込み全てについて高優先度か低優先度か決められる。
後、そもそも優先度付けを無効にするフラグもある。
>650 一番優先度が高い割り込みはリセットでは? とはいえ >651 が正しいかと。
みんなはどうやってPICやらに詳しくなったの?仕事で?趣味の延長で?
俺は趣味 どうしても作りたい物があって
仕事でやってるが、依頼が無いorz よって、趣味の延長
PICはCPUのアーキテクチャが嫌いで使わなかったが、仕事でよく依頼が来た。 そのうち慣れた。 アーキテクチャはいまだに気に入らないところもあるが、 ハードウェアが電気的に強いので何かと重宝するようになった。
>>652 設定とかそういう事ではなく
何の割り込みの優先度を高くしたら良いかって事でしょ。
外部割り込みからの応答性が重要なら外部割り込みを最優先。
タイマータイミングで正確なパルスを出すとかPWMしたいのならタイマー割り込みを最優先にする。
>>650 最優先割り込みでも応答時間は必要となるため不確定に遅れる。
割り込み優先度なんて内容と事例によるでしょう。 タスクスイッチにしか使ってないタイマー割り込みよりも、 応答時間が10us遅れたら10mm動きが狂うモーターで制御された アクセルとブレーキの車に乗りたい?
10usで10mmは秒速1000m
662 :
774ワット発電中さん :2013/11/26(火) 13:25:02.67 ID:RMVq50g8
無意味な計算してんなぁ
>>661 さすがですね。応答速度の遅延時間と動作速度を一緒にするとは。
周波数が300MHzを超えると光速を突破すると吹聴してた人には昔あったことがありますけど。
真空中の光速299 792 458 m/s 波長が1m未満になるとミラクルな何かが起こるのでしょうか。 VHF放送帯ですよね。 UHFはだと10cmオーダーでしたから、なるほどミュートマとかがハイカラな雰囲気だったのは未来から放送されてたからなんですねw
(・∀・)
あーそりゃアレだろ 電波の振幅を信号強弱では無くて、 たとえばシンクロスコープ上に表示される波線だと勘違いしてる奴なら 周波数が細かくなればなるほど一定時間内の線長が長くなっていくように見えるから 結果、時間当りに作成される線の長さを速度と勘違いするとそうなると思われる。
(・∀・)
300MHzのクロックスピードはバスが1mで光速を超えるから、 クロック300MHzを超えるCPUは実現できない、 10cmでもマザーボード上の遅延を考えるとむつかしいとか 真顔で言ってましたよ。 クロックとデータのタイミング遅延を素敵に理解しているようで笑った。
基板上でパターンがうねうねしてたりするアレか。 光速が影響はするだろうけど、光速は超えないわなあ…
670 :
774ワット発電中さん :2013/11/27(水) 12:38:04.66 ID:UiPDlTE+
列車が何時間遅延しようが、乗客が乗り降りに要する時間は変わらないからなぁ
671 :
774ワット発電中さん :2013/11/27(水) 15:48:58.48 ID:F4Ou3Z37
PIC24FJ64GA002なのですが pwrsav #0すると即座にリブートしちゃうのですが何か原因とかわかる方おりませんでしょうか? RCONはIDLE=HIです。 古いロットでは起きないのですが最近のロットで起きます。
まぁ、確かに周波数が上がると色々面倒なことが起きるもんよ。 3MHz、30MHz、300MHz、3GHz・・というの、新しい注意が必要になってくる 周波数としては良い目安だとは思うけどね。
>>671 製品のホムペにErrataがあるだろうから、そこにある回避策(workaround)を試してみては?
リビジョン単位のの問題は大体出てるはずだから
PIC歩け歩けゲームショボいレベルだけど遊べる様になったにゃ♪ 後は音を着けるのだけど、調べたらPICでもちゃんと音階持ってならせるんだにゃ〜 =^o^= やってみるにゃ! タイマ2のパルスで出来るはずにゃ。
お前は猫か? にゃ〜、にゃ〜言うなって俺は言いたいにゃッ!
MSDOS時代でもbeepで和音や音声やっている人いたよね。 チープな音かもしれないがワクワクするね。 ガンバだ!
>>677 そう言えば<1ビットの出力で3和音を出す>なんてのもあった。
うねりを再現すればいいだけで、不思議でも高度でも無いけど。
>>679 やり方を知っていてもやってみたら色々問題が出てくるからやってみろよ。
昔はCPUもしょぼいし大変だったろうと思う。
当時MSXでやった上で書いたんだ。ビクターのHC-5だったな。
MSXは音源チップ付いてなかったか?
PSGが入っていたよ。だが今はBEEPの話題だ。
MSXはぽぺーって鳴るよな
MSXってか、AY-3-8910の話だな。 たしかこいつも1bit出力ポートあったと思うが MSXのBEEPはPSGの音声チャンネルで鳴ってて、98とかみたいに1bitポートじゃないはず。 1bitポートといえば、PCMというかなんというか、ぶびぶび言いながらもサンプリング音を鳴らすってのがわりと有名か。
キー入力のプチプチが1bitポート
PC98のbeepの音程はioを叩くと変えられる。 昔はioを変な設定にするだけで色々できたな。 ディスプレイは誤って壊したが、上手く使いこなせば30行bios計画で、下手をすればおじゃん。 当時はHDDやFDDの壊しかたとか言って雑誌にもあったが、そんなもんのせるなよ... カレー臭すまん
88mk2のデモでキエフの大門を演奏してた
MT-32 SC-55 SC-88mk2 05R/W NX5R 10年以上電源を入れたこと無いが、押入れに眠っている
いや、8年かな・・・
現物見て訂正 ×SC-55 ◯SC-55mk2 ×SC-88 ◯SC-88Pro JV1010とM-DC1とSG01kも眠ってた
うちのMS-20にもたまには灯を入れないと
694 :
774ワット発電中さん :2013/11/29(金) 04:03:33.08 ID:oFHXwptK
そもそも、MSXって、日本の規格?でしょ。 どこのメーカーが作ったんだろう。あるいは、何社かで協力して作った?
>>678 人間の耳には十分に早い間隔の時分割で短音3個を切り替えるという、
今思うと涙ぐましいというか、いじましいというか、努力と工夫の3和音だったね。
その発想じゃ実現不能
時分割だとアルペジオだな
696の補足だけど、 よく記憶している理由は、テレビ(NHK)で紹介されて何曲か流したから。 こんなものがNHKで紹介されるんだと驚いた。 3音が同時に鳴っているというよりもブルブルした奇妙な音だった。 理論的には、確かにチョー早弾きの分散和音(アルペジオ)。
> 3音が同時に鳴っているというよりもブルブルした奇妙な音だった。 同時とみなせるほど高速なら、その切り替え周波数自体が音になるからな。
分散和音は分散和音として鳴らして、メロディを別に持続音で鳴らせるならそれでいい 和音もメロディも一つの音で済まそうとするから、時分割の速度を上げる必要がある
Z80でやれればな クロック4MHzで、テーブルから読んでポート出力するだけのコードが、 1周期何クロックで書けるか
今のCPUをタイムマシンで30年前の技術者に見せたらたまげるだろうな。 と言う事は、うーん、30年後のCPUを見てみたい。 非ノイマン、ニューロになっているかも。
CPUコア数をゲート数の様に言うだろう。
その頃のCPUは、消費するのは電力じゃなくブドウ糖になってるだろうね。
30年前にタイムスリップしたようなことをやってるな。
MC6800が載ってた BASIC MASTER はカセットインターフェースをコンパレータと抵抗で作ったDACをポートから操作して 全部ソフトでやってたぜ。1200ボーな。
そろそろスレタイ読もうか
じゃあ、PICでポストの蓋の開閉を検出する方法でも語るか。
語る前に、作品画像のUPが先だな。
赤ちゃんポストは手紙を取らないと蓋が開かないようになってるんだな。 あれは純メカなのか電気的に制御してるのだろうか。
715 :
774ワット発電中さん :2013/11/30(土) 13:43:56.02 ID:e0qzP2jz
PIC24Hでオシロ作ってみたが結構簡単にできた 想定どうり1Mspsの速度はでる これ以上の速度のを作りたいが、むずかしい
717 :
774ワット発電中さん :2013/11/30(土) 15:14:32.83 ID:e0qzP2jz
>>716 PIC24Hは1Msps高速ADC内臓、秋月で売ってる
>>715 複数個で500nsとかずらしてマージするとか
でもこの方法はどっかでダメ出しされてた気がした
>>715 pic24って命令パイプラインを深くして命令サイクル改善されてたっけ?
オシロスコープかっこいいにゃん。 工作机の上にどどーんと有ると電子工作への本気度が格上な様な感じがするにゃん。 おいらは未だに持ってないにゃん…。 =^o^= PICで何とか音は鳴らせるようににゃん、しかしタイマ2のプリスケが16までしかないので高い目の音しか出せないにゃん。 でもまぁビープ音としてみればそれなりに音階持つのでまぁコレでいいにゃんなぁ〜♪
オシロはUSBのと筐体ありのとどっちがいいんだろ そんなに値段変わらないんだよな 会社のオシロはエンコーダが壊れてて、カーソルが思うように動かないけど、 マウスでやるのとどっちが楽だろ
Windowsの奴っていざって時に計測アプリ落ちて役立たずだよな。
725 :
774ワット発電中さん :2013/12/01(日) 08:31:03.17 ID:gz5RuwEN
パソコンにデータ取り込んでなんかやらんならスタンドアロンの方がええ
300日位計測し続けるならPCと連携できなきゃまったく役立たずだよね
PCのグランドとアイソレートされてないのがほとんどなので、 独立電源系とか商用いじる回路だと、基板かオシロかプローブかPCが燃える。
オシロのテレビのチャンネルみたいなスイッチってすぐ接触不良になる
>>727 そんなの見たことない。
一機種だけでも具体的にそのオシロ名教えて下さい
>>729 自分のはTDS2014だけど、PCのUSBにつないで波形取りながら、picket2もPCにつないで、
基板上のフローティングDCDCのマイナス-15V5Aくらいの電源のいじくっていたら、
PCのUSBのポリスイッチが動作したよ。
客先で、同じ基板を、中国製のUSBオシロにつないで同じようなことをしていたら、そのノートPCの
USBポートが死んで以降復活しなかった。
そのUSBオシロの型式までは覚えてないけど、USBのFGから、プローブまで導通はあったね。
デジタル回路見るくらいならいいと思うけど、電源とかアナログは以降使わないことにした。
ロジアナだと思って扱えばいいかもね。
731 :
774ワット発電中さん :2013/12/01(日) 13:09:09.32 ID:gz5RuwEN
PMWと抵抗コンデンサで簡単にサイン波形できた もしやこれとFETとかにつなげばDC・ACインバーターになるのか
なるんじゃね? 負荷がオシロなら。
オシロ筐体(プローブのGND)とUSB端子とかGPIBのグランドは
アイソレートされない方が普通だよね
テクトロのTPS2000シリーズみたいに
アイソレートされてることを売りにしてるものあるくらいだし
>>730 そういうときは(高価だけど)高耐圧差動プローブ使うとか
同特性のパッシブプローブ2本でGND接続無しで
オシロの演算機能で引き算するとか
オシロ筐体とプローブのクリップが 絶縁されてないのか・・・知らんかったわ、 こりゃやばいな、今後気をつけマス><;
オシロに付いたLANでPCと接続するなら絶縁トランスが入っているから問題ないよね?
ノートやデスクトップPCの電源にも当然トランスは入ってるし 何を問題にしてるのか判らないんだけど
>>736 わからないなら恥ずかしいから黙っていなさい
>>737 いや
判らないのを判らないままにする方が恥ずかしいし
どうせならここですべてを明らかにしないか?
一体どんな場合でUSBオシロと専用機が違ってくるのか
はたして専用機オススメする奴の脳内が短絡してるだけではないのか
たとえばUSBリンクケーブルなんてものがある あれはPC同士をUSBで直結してるが、 リンクケーブル自体は絶縁されてるわけじゃない それで特に問題はおきていない なぜなら各PCの電源の1次と2次は絶縁されているからだとちょっと調べれば判る セルフパワーのUSBハブにしたってそうだろう しかしUSBオシロに限って危険だと言う奴がこの板には現れる それはなぜなのか
恥ずかしながらおれにはその理由が判らない では判る人どうぞ
>>740 危険の度合いの認識がズラてるんじゃない?
PCがブッコわれることなんて危険でもなんでもなくて、電源が火を噴いて
火事になって人が死ぬレベルではじめて危険。
そういう意味ではUSBオシロスコは危険でもなんでもない。
PIC専用スレだったよな?ここ
>>742 危険の度合いって書かれてもピンとこないな
専用機にしたって中身はPCのようなもんだし
USBオシロ+PCと比べて何か特別な仕掛けがしてあるとも思えないんだけど
火事になるような使い方をすれば専用機でも火事になるよね
ふりだしに戻る
>>743 ちょうどPICでオシロ作った人が現れたからね
おれもPICでUSBと繋がるオシロっぽいものは作ったことあるから
ここで何が問題なのかはっきりさせときたい
>>746 俺へのレスなのかな?
動画のリンクだけ貼られても意図が判らんのだが
自分の文章で説明してくれんかな
あらら
>>737 辺りが俺の疑問なんて即効で片してくれると思ったんだけどな
ここで何の反応も無くなる方が俺は恥ずかしいと思うんだよ
2chスレの典型的なパターンだけど
キミの勝ちってことで終了です。 おしまい。
まじかよ
勝ち負け無しに本当にUSBオシロに問題が無いのであれば
専用機なんかよりはどう比較しても便利だから
検討に上がったからには
>>723 にはUSBオシロを
気持ち良く選んで貰いたいんだけどなあ
こんな話題を振ったそもそもの話だけど
この板だと
>>723 みたいな質問に対しては毎回のように
USBオシロは絶縁云々だからだめです
みたいな迷信みたいな返答しかされないのが気持ち悪いよ
そいつの頭の中ではどんだけPCは柔いんだよ
>>730 の事例もよくよく見れば
オシロでそのオシロ自身を測定するような行為だから
想定外の使い方に見えるし
結局使う奴がアホな事してるだけと見るべきなのかな?
でもそういうアホ防止用に専用機って薦めても
今時の専用機にもUSBを始めとして
測定対象と直結したら危険そうなコネクタはぶら下がってるし
かといってそっちは一向に問題視されないしで
やっぱり納得がいかないんだけどなあ
せっかくだから、PICを使ってUSB給電のお城キットだれか販売してよ
第一弾は1/72スケール国宝松本城。
白ledでライトアップ、
テクトロがUSBオシロ出せばいいんや。
趣味でテクトロ製品が買えるほど給料もらってません!!!(^p^)
テクトロ高い
二〜三年前までは、八巻が主流だったけど、今は16巻が全盛。 中には32巻というのもある。 オプションでUSBとかもある。
>746 の動画で何がいけないのか良くわかった。 日本の場合、3ピンのACコンセントを使うことが少ないし、3ピン−2ピン変換した場合も アース線を未接続する場合が多いので、経験する機会が少ないんだね。
オシロのプローブには電流を流さないように気をつけないと。 動画の例は単純な誤操作だけど、 たとえばフォトカプラで絶縁されている2台の装置があって 出力側の装置と入力側の装置の波形をオシロ2チャンネルで観測する時は、 装置のGND間で電圧差があったりするので要注意。
763 :
774ワット発電中さん :2013/12/03(火) 14:11:56.46 ID:ps5dbCkM
PickitもUSBでグラウンドがPCに接続されとる picで電源制御ミスって大電圧流したらPCぶっ壊れるかな
PCBEでユニバーサル基板の配線考えているにゃ♪ 楽しいにゃ。 何故か被服線でジャンパさせると負けな感じがするのでメッキ線で縫う様に配線してるにゃ〜 =^o^=
>>764 メッキ線だけで…気持ちわかります。
けど、7セグを直づけの場合、メッキ線でもできるけど面積ばかり要するので、負けにしておきます。
部品の下にジャンパを通して配線がうまく決まった時の達成感たるや
部品面に足を短く切った0Ωジャンパで空中配線捗るで
すまん ×部品面 ○配線面
メッキ線でジャンパすればいいんじゃね?w
俺はカットしたパーツのリード線を種類別(太さ別)に、 秋月のパーツが入れてあったチャック付きビニール袋に入れておいて、 スズメッキ線の代わりに使っている。 スマンな、正真正銘の、自他共に認める、小さな事からコツコツと、 の貧乏性なもんで。でも、まだ金は貯まっていない。
僕も、リードの切れ端は保管してる。だいたい次の分類。 1. ダイオードの足 ちょっと太めで、堅い 2. スモール抵抗の足 細くて柔らかい 3. LEDの足 細いのに固め 4. 電解コンデンサの足 太めでも柔らかい。スズメッキ線と同じっぽい
1. ちょっと太めで、堅い 2. 細くて柔らかい 3. 細いのに固め 4. 太めでも柔らかい [Q] 上記はナニについて語ったものでしょう?
>>772 1. 無理に入れるとスルーホールを傷める
2. 慎重に入れないと曲がる
3. 入れやすいがしっくりしない
4. 入らないのでイラッとする
初めてのSEXだな、まるで
LEDの足は鉄線だっけ?
鉄に半田とかどんな無理ゲーだよ・・・
メッキしてるんだよきっと、試してごらん磁石付くから・・・全部かは知らないけど
お金持ちは純銀線+銀入り半田で
最近Cを覚え始めたんだがプログラムが分かりやすいのはやっぱりアセンブリの方が分かりやすいな。具体的に何をしているのかというのがすぐに分かる。ただアセンブリの欠点は命令が多くなると分かりづらくなるのと、計算するプログラムが面倒な事なんだよなぁ
僕はCのほうが好き。 マイコン内部の細かいレジスタ間のデータ移動や、フラグ判定とか、 あまり知る必要はないと思う。
ラダーの演算処理が一番簡素でわかりやすい
>>779 Cとアセンブラのどちらが分かりやすいか、は人それぞれだと思うけど、
アセンブラの演算プログラムは1度作ってアルゴリズムを理解すれば慣れる。
要求される精度(ビット長)で演算すれば早いし、
裏技を使える場合(10倍、0.75倍など)もある。
>>780 >>マイコン内部の細かいレジスタ間のデータ移動や、フラグ判定とか、 あまり知る必要はないと思う。
うーん、それじゃMCUの違いを100%楽しめないじゃぁあ〜りませんか。
アセンブラで書くと、生で接している感じ、間に薄い膜が無い感じ、これが良いんだよね。
大規模になったり、移植が多くなると、 アセンブラなんて捨てたくなるよ。 今が一番楽しい時期ってこと。
>>779 数値演算ならコピペで行けるので問題ないが、条件分岐が複雑になるとアセンブラは厳しい。
ベースラインPIC使うような用途なら、アセンブラで十分と思う。
よほどカリカリにチューンするんでなければCの方が効率的だとは思いつつ、 アセンブラでカリカリにチューンするのがめっちゃ楽しいんだよなー… 最近のお気に入りは10F200
にゃは♪ 何とかPIC16F88のVGA 歩け歩けゲームできたにゃ。 専用基板も作ったにゃ。 二人用プレイしかないのと、VGAタイミングが完璧に合わせられなかったのが残念にゃ、ちょっとちらつくにゃ〜。 =^_^= もちょっとだけ突き詰めるにゃん…
>>786 そのお気に入りでCを使おうとすれば、別の方向で楽しみ(人によっては苦悩)が増えるだろうな。
Cで真っ向勝負せい!
Cで全体設計と動作はサクッと作って、ボトルネックになってるところだけアセンブラでチューン。 フルアセンブラよりも工数と品質は数倍、全部Cよりも速度数倍。 アセンブラだけで作るとCPU変更か割り込みと速度が変わるたびに論理品質の評価が嫌。
パスカルはないの?
コボルとかフォートランとか、名前だけは聞いたことがある。
FORTHなんか結構ちっちゃくできるから良いと思うけどね。
スタックがないミッドレンジでCを使う気にならない
>>794 スタック溢れそうになっても、インライン展開してくれるから問題は無いが、
安心してCで組めるのは、エンハンスドミッドレンジ以上だな。
正直24系以上の石じゃないとcは使いたくない
スタックもフレームポインタも無いのに引数やローカル変数どうやって処理してるのか気になるけど 考えないことにしてる
>>793 FORTHはユニークで面白い言語だよね。
あまり普及していないけど何がいけないのかな。
どこかのサイトでAVRのAT90S2313でFORTHを実現していた。
>>791 昔のunixのP2Cのようなトランスレータじゃダメなのかな?(´・ω・`)
Windowsでも、mingwとかでコンパイルすれば動く筈だよ。
800 :
774ワット発電中さん :2013/12/09(月) 20:31:51.65 ID:LffkUyqC
CPUごとにアセンブラ覚えるのめんどい Cならちょっと変更するだけでほとんどのPICで動く アセンブラ覚える価値のあるPICってあるの
PIC33のアセンブラ 割り算以外1コマンドクロックで完了するし、 オペランドが3つ取れたりするのが、強力で好き。 たとえば符号付16ビット掛け算は、 Mul.ss W0,W1,W2 で W2:W3=W0xW1 が1コマンドクロックで完了 結果は32ビットだからW2に下位、W3に上位が入ってる。 高速化したいところはアセンブラ、面倒なUIはCで書くのがお気楽。
近頃のCPUはよほどテクニックのある奴でないと コンパイラの方が良いコード吐いたりするからなぁ。
高度なパイプラインを持って命令同時実行するCPUに至っては人間が効率よいコードを書くのは難しいよ。 詰将棋を解くのををコンピュータと勝負するようなもん。 一見効率悪そうなコードが速いケースなんてのもいくらでもあるし。 PICはまだなんとかなるか。
>>804 分岐予測とかライトキャッシュ使った64個もレジスタあるCPUでアセンブラってなぁ。
806 :
774ワット発電中さん :2013/12/10(火) 09:08:28.90 ID:3L0u+j8Y
スタートアップとかスイッチング書くときくらい しかも単なるこだわりレベル
そんなこと言ってたら アセンブラ狂のお爺さんがやってきますよ このド素人が! ってな具合で
808 :
774ワット発電中さん :2013/12/10(火) 13:43:08.68 ID:Bd0SzrtP
68000みたいな洗練された命令体系のアセンブラが好き C言語のせいでそういうのがなくなって残念
Cは型変換がおバカだし固定小数点も効率悪いし
810 :
774ワット発電中さん :2013/12/10(火) 16:31:00.27 ID:uMKidZFo
>>Cは型変換がおバカだし こんなコト言うようじゃマダマダだな 正しくは Cは型変換の自由度が高い だよ
>>809 型変換が賢くて、固定小数点の効率が良い、PICで動く高級言語な処理系って何?
812 :
774ワット発電中さん :2013/12/10(火) 23:20:12.30 ID:aZ+Oy+Le
この場合アセンブラと比較してると思う
813 :
774ワット発電中さん :2013/12/11(水) 04:01:49.07 ID:iIOTsmNP
そうなら、アセンブラって賢い型変換してくれるのか?
賢い人が賢こいアルゴリズムでプグラミングすれば賢く変換してくれる。 (もしも型変換とやらが必要ならば)
>>814 それって言語がやってくれるんじゃないじゃんw。
817 :
774ワット発電中さん :2013/12/11(水) 09:14:24.65 ID:mMTdygDV
そりゃ高級言語使うよりアセンブラでいろいろやれば効率よくなるだろ読みにくくても
コアに精通してないとできなくないか、と思ったけど、PICならあんまり問題ないか。
PICのRS232Cってまともなの? なんかいつ使ってもいつも誤動作で 苦労する。前回はPIC16F886だったが2400ボーに落として誤魔化した。 今回はチップを変えた(PIC24Fxx)。19200でやってるのだが100回に1回 くらいは確実に受信エラーする。 共通点はCPU内蔵クロックを使ってること。 他のCPUでこんなに誤動作することは一度もないから驚く。
データシート読め
>>819 内蔵クロックならまず周波数くらい確認しないと
フラグ操作間違ってるかOSCTUNEレジスタ破壊してんじゃないのか
64倍モードに設定してるとかじゃね
全然動かないなら解るんだが、微妙に誤動作するからかなわない。 /* Received data is stored in array Buf */ volatile char Buf[128];//格納されるのは、用意したバイトより1バイト少ない(wcntBufとrcntBufが同じときはデータ無しを意味するため) volatile int wcntBuf=0;//ライトカウント volatile int rcntBuf=0;//リードカウント void __attribute__((__interrupt__)) _U1RXInterrupt(void) { int len; IFS0bits.U1RXIF = 0; len = wcntBuf - rcntBuf; if(len<0) len = len + sizeof(Buf); if(len<sizeof(Buf)-1){ Buf[wcntBuf] = ReadUART1(); if(wcntBuf<sizeof(Buf)-1) wcntBuf++; else wcntBuf=0; } else ReadUART1();//読み捨て } // BRGH = 1の時 バグ報告あり、しかしBRGH=0だ。なぜか誤動作する。 //UART1初期化 void rsinit(void) { unsigned int baudvalue; unsigned int U1MODEvalue; unsigned int U1STAvalue; wcntBuf=0; rcntBuf=0; CloseUART1(); ConfigIntUART1(UART_RX_INT_EN | UART_RX_INT_PR4);//Enable RX割り込み, RXプライオリティー4 #define BAUD_RATE 38400 //19200 になってしまう。? baudvalue = F_CPU/16/BAUD_RATE-1;//bps U1MODEvalue = UART_EN;//Enable Uart, Data 8bit, No Parity, //1 stop bit, Flow制御なし,LOOP BACKなし,WAKEUPなし,ABAUDなし //RX IDLE=1, 低速ボーレート U1STAvalue = UART_TX_ENABLE;//Enable TX, 1char毎に受信割り込み, OpenUART1(U1MODEvalue, U1STAvalue, baudvalue); }
//リングバッファから読み込む int rsgetc() { int c; c = Buf[rcntBuf]; if(rcntBuf != wcntBuf){ if(rcntBuf < (sizeof(Buf) - 1) ){ rcntBuf++; }else{ rcntBuf = 0; } }else{ c = 0;//未読み込みのデータは無い } return (c); }
>823 64倍モードってなに? そんなのあったか? x16だと思うがもし64なら精度が上がるのでいいんでない。 >821 メインは物凄く単純なのでソフト的に壊したりしないと思う。
>>824 内蔵クロックの誤差は2%。
RS232Cで問題なく通信できるクロック精度は1.5%以下。
そうなの? じゃあ内蔵クロックだと使い物にならないってことだね。
7bit通信や2ストップビットにすとかマーク期間を少し設けると改善すると思う。
>>828 最初に相手から通信が始まる場合はクロック幅を読んで自動ボーレートにすると定量的な誤差は無くなるよ。
アプリケーションノートとかに自動ボーレートのサンプルが在る。
そういう方法があるのか? でも不思議だね。 WEBを探しても内蔵クロックでの誤動作のこととか出てこない。むしろ内蔵クロック を使ったハードで232cを動かすサンプルが殆どだよ。まさが誤動作するとは 思わないもの。 827には好いことを教えてもらって助かったよ。
UARTで速度を上げたらエラーが少しずつ出てくるってのはクロックの誤差が一番に疑われる。 当たり前過ぎて話題にならないかも。
そこまで厳しいかなぁ? 要するにストップビットまでの間に隣のビットを読まなければ良いんでそ?
PICとしては送信できるけどPCがそれ以上速度出ない、というあたりまで 余裕で通信できた記憶しかないけどな CRCとか見てた訳でもないから、実はエラー出てたのかも
発信機が水晶で9600bpsくらいまでの時代はそうでもなかったけれど、オンチップオシレータで115.2kbpsとか怖いよ。
相手が極端にずれていなくて波形もしっかりしていれば4.6%程度までは通信できるから 内蔵クロックの精度で問題ないんだが
ライターで内蔵クロックの補正係数を潰してしまってない?
>>824 なんかすげえコードだな
バッファ中の文字数を記憶する変数用意しておけばもっとすっきりするよ
バッファ中の文字数を記憶する変数用意するとバッファへの書き込みと読み出しの際に バッファ中の文字数を記憶する変数を増減させるとこで排他処理しなきゃいかんくなるので もっとうるさくなると思うよ。
速度が速いほどエラーが出るっていったらまずは処理速度足りてないのを疑うなあ あと波形がなまってるか クロックの誤差だったら速度に関係なくエラー出るはずじゃね?
>>826 64倍モードは16倍モードに対してボーレートジェネレータの設定値が半分
になるから高速のとき不利になる。
さらに4倍モード16倍モードに対してボーレートジェネレータの設定値
が4倍になるから高速のとき有利になる。ただし、クロック8MHzで19.2kbps
の場合は差はない。
>>832 速度と要求されるクロックの誤差は関係ない。
ボーレートジェネレータがうまく割り切れるかだけ。
>>819 PICで460.8Kbps折り返しやったことあるけど内蔵クロックでもがんばれるよ。
今回の場合、フレーミングエラーしているような気がする。
通信速度の演算で切り捨ては駄目ね。
異常判断時に空ポートの信号を変化させて、オシロで受信信号と同時表示すると何かがわかるかも。
100回に1回の異常というのがデータの並びに依存している気がする。
それよか、送信してみることでビット幅が正しいか否か、これは真っ先に確認しておくのが吉。
追記、対象デバイスは別種。460.8Kは16F1823。通信相手はPC。
16F886とかの内蔵クロックで115k普通にやってるけど、問題ないよ。 割り込みでもポーリングでも大丈夫。 送信でログ吐き出すだけなら、かなり大量に連続したデータを48時間とかでも、全然大丈夫だ。 しいて化けるときは受信で、他処理が重くて追いつかない場合かな。 >メインは物凄く単純なのでソフト的に壊したりしないと思う。 ってなこと言ってるうちはだめな気がする。 前いたな、割り込み使ってるから通常タスクの重さは関係ありませんとか平気でいうやつが。
>最初に相手から通信が始まる場合はクロック幅を読んで自動ボーレートにすると定量的な誤差は無くなるよ。 >アプリケーションノートとかに自動ボーレートのサンプルが在る。 ボーレイトを探すことはできても周波数の設定が1/Nでしか設定できないのであれば 内蔵クロックが原因の場合は意味がないと思うけど。 >PICで460.8Kbps折り返しやったことあるけど内蔵クロックでもがんばれるよ。 偶々だとおもうよ。自分もいままでデバッグ用としていつも通信は使ってる けど偶に文字化けして「ん?」って思う程度で実害はなかった。でもデータの やり取りをやるとその程度でも話にならない。 >今回の場合、フレーミングエラーしているような気がする。 >通信速度の演算で切り捨ては駄目ね。 ダメっていっても、どうしようもないでしょ。切り捨て多分をせっていなんてできない。
>845 ほんとかね? 自分も出力は余り気になったことないが、、、 受信独特の問題なのか? >前いたな、割り込み使ってるから通常タスクの重さは関係ありませんとか平気でいうやつが。 割り込みは受信割り込みのみなら関係ないと思うよ。そうでないと割り込みの意味がない。 リングバッファがオーバーフローするとかなら話はべつだけどね。そんな量じゃない。
>しいて化けるときは受信で、他処理が重くて追いつかない場合かな。 それは受信割り込みだけでしょ。それならメインが無茶苦茶重くても化けてはいけない。 化けるのは絶対おかしい。 やっぱチップのバグかな。
とりあえず水晶を使ってエラーが減るかどうか確認してみる。 それでも変わらなければ内蔵OSCの問題ではない。 いずれにせよ、 >やり取りをやるとその程度でも話にならない。 なら、再送機能も付けたほうがいいと思う。
リングバッファの読み込みで、割り込み禁止にしてなくて不整合起きてましたとか、 他の割り込み起きてましたとかはチェックしたんだよな?
>>824 24Fは使ったことないけどFIFO付きならフラグ確認してからデータ読んで
読んでから割込みフラグのクリアでないとチップの仕様を確認しないと不安だ
それからlenは要らない
>>825 割り込み内で使用する変数いじるときは、割り込み禁止しておかないと、
意図しない動作をする可能性がある。
>リングバッファの読み込みで、割り込み禁止にしてなくて不整合起きてましたとか、 >他の割り込み起きてましたとかはチェックしたんだよな? ? メインから読みだす時には割り込み禁止する必要はあるかなー。 リードバイトなので問題ないと思う。 割り込みはリードポインターを触らない。 リードバイト中には割り込みは入れない。 その後でリードポインターをインクリメントするのも関係ない。 だから問題ないよ。
これじゃない?
>>837 フラッシュ消去で工場出荷時に書かれているキャリブレーションデータも消してしまったとか無いかな?
消してしまったら周波数カウンタとかオシロで補正値を求め直さないと復活できない
>24Fは使ったことないけどFIFO付きならフラグ確認してからデータ読んで >読んでから割込みフラグのクリアでないとチップの仕様を確認しないと不安だ >それからlenは要らない IFS0bits.U1RXIF = 0; こいつの位置がもんだいか? チョット調べてみる。 >それからlenは要らない ほんとだね。
856 :
774ワット発電中さん :2013/12/12(木) 12:44:11.39 ID:JnANqiFg
WEBからのコピペなので修正した。 void __attribute__((__interrupt__)) _U1RXInterrupt(void) { Buf[wcntBuf] = ReadUART1(); if(wcntBuf < sizeof(Buf)-1){ wcntBuf++; }else{ wcntBuf=0; } IFS0bits.U1RXIF = 0; } >@@a@aaaaaa@a@aa@aa@aa@aaa@aaa@aaaaaa@@aaaaa@a@aaaa@@aaa@a@ aaa@aa@aaaa@aaaaa@aaaaaaaaaaaaaaa@aaa@aaa@@aaaaaaaa@aaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 最初に@@@@@@@@@@@@@と入れておいてaaaaaaaaってやると こんな感じに化ける。 症状が変わったというかソフトのバグ?
あっ、でもリードポインタを追い越したらだめだよな。
>>846 四捨五入という意味で切り捨ては駄目と書いたんだけど。
1.8なら2にせい。という感じで。
>c = Buf[rcntBuf]; >if(rcntBuf != wcntBuf){ この2行の間に受信割り込みが起きた場合 更新される前のBuf[]からデータを引きとることになる。
こうすればおkかな? int rsgetc() { int c; if(rcntBuf != wcntBuf){ c = Buf[rcntBuf];
void __attribute__((__interrupt__)) _U1RXInterrupt(void) { RxBuf[wcntBuf] = ReadUART1(); if(wcntBuf < sizeof(RxBuf)-1){ wcntBuf++; }else{ wcntBuf=0; } IFS0bits.U1RXIF = 0; } int rsgetc() { int c; c = RxBuf[rcntBuf]; IEC0bits.U1RXIE = 0; if(rcntBuf != wcntBuf){ if(rcntBuf < (sizeof(RxBuf) - 1) ){ rcntBuf++; }else{ rcntBuf = 0; } }else{ c = 0;//未読み込みのデータは無い } IEC0bits.U1RXIE = 1; return (c); } void main() int key; while(1){ key = rsgetc(); if( key) { sprintf(buf,"%2x:",key); rsputs(buf); } } } 最初リターンキー(0xd)を連続押ししてaを連続押しすると時々dが入る d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d: d:61: d:61:61:61:61:61:61:61:61: d:61: d: d: d:61:61: d:61: d: d: d: d: d:61:61:61:61:61:61:61:61:61:61:61: d:61:61:61:61:61: d:61:61:61:61:61:61:61:61: d:61:61:61:61:61:61: d:61: d:61: d:61: なんでかわからん。
>859 ありーーーー なおった。 int rsgetc() { int c; IEC0bits.U1RXIE = 0; c = RxBuf[rcntBuf]; if(rcntBuf != wcntBuf){ if(rcntBuf < (sizeof(RxBuf) - 1) ){ rcntBuf++; }else{ rcntBuf = 0; } }else{ c = 0;//未読み込みのデータは無い } IEC0bits.U1RXIE = 1; return (c); }
859は天才。スゴイ。
割り込み禁止にすれば間違いないけど
>>860 のif でバッファにデータがあるか判定後に
バッファのデータCに代入すれば
割り込み禁止の必要はなくなり、コードとしても自然
でも if(rcntBuf != wcntBuf){ このコンペア中に割り込みが入るとwcntBufをインクリメントするからコンペアを 誤るのではないか? volatile int wcntBuf=0;//ライトカウント volatile int rcntBuf=0;//リードカウント こいつらはintなので
>>865 16bitの PIC24Fじゃなかったっけ
16F、18Fだとまずいけど・・
>864 やってみたらそれでもOKだった。 結論からするとソフトのバグだったのか? ああスッキリした。
>>865 rcntBuf と wcntBuf が等しい(バッファが空)状態で、
if(rcntBuf != wcntBuf){
を実行中に割り込みが発生したとして、タイミングによってはバッファが空だったと
判定されるだけで実害はない。バッファが空でないと判定されても、割り込み処理
終了後には確実にバッファにデータは格納されているので問題はない。
rcntBuf と wcntBuf が異なる(バッファに1バイト以上格納している)状態で、どの
タイミングで割り込みが発生しても、rsgetc() が行ってる rcntBuf の参照/更新には
影響はない。
バグありソフトがwebに公開されてたということ?
web上に公開されているサンプルを鵜呑みにしてはいけないってことよ。
PIC 16Fに5桁シリーズが出るようですね。( PIC16F18323 etc) 位置づけとしては、16F18xx の後続なのかな。 機能pinの割り振りが 18FxxKxx みたいに自由自在になる感じ。
自由に割り振りって、そんな機能あったの? あんまり使ってないから知らなかった
シリアルの許容誤差って人によって言うことが違うし 理由も書いてないから何を信じたらいいのか分からないんだよなあ… いろいろ考えた結果、 スタートビットの端からストップビットの中央まで9.5ビット分で半ビットのずれを許容と考えて 50/9.5≒5.26%が理論限界だと思ってるんだけどどうだろう
クロックの誤差約5%で送信側と受信側の相対誤差は100%になる。 (5%を超えたら常にエラーが起きるという訳ではないけど) AVRのマニュアルを見ると、クロック誤差0.5%以下を推奨(太字で記載)している。 ただし、クロックに関係なく通信エラーは発生する可能性があるので、 用途によってはエラーチェック(水平・垂直パリティ、サム、CRCなど)と 再送機能が必須になる。
まあ、チェックは必要だよな
>>873 その「半ビット」の開始点が正確にビットの中央ではないのだよね。
>872 自分も今回24F使って初めてしった。24Fってすごく便利だ。 でも24Fってもう古いの? 28Pinのディップを中心に使うとするなら、 これからならどのチップを使ったらいいのだろ。
パソコン相手だと5%以内でいいんだけど たまにマイコン同士で通信させてうまくいかないときがあるな誤差のズレの方向が互いに逆で
>>863 >>850 ,852も誉めてやってください。
まぁよくありがちなことだ。
ソフトは問題ないと言い切って、クロック誤差やハードのせいにしまくってる阿呆なやつはよくいる。
>>880 結果論で阿呆と言い切るのはアホ。
色々な方向からのトラブルシューティングの過程が重要なんだよ。
トラブルシュートからソフトを最後まで完全に除外してる奴がアホって話じゃね?
>>881 普通はある程度、自分のコーディングを最初に疑うものだが、ハード原因と思い込み
掲示板に堂々とアップ、ソフト原因でないか?と複数人に言われても滔々と反論するところが阿呆。
割り込み処理のタスク側共通変数の書き換えなんて、一番良くある最初に疑うべきバグだろ。
しかも割込みだから、タスク側の処理に影響はしないとか言い切るところがかわいい。
まぁ、大人でもよくいるこういう中学生みたいなソフト屋。
こっちがやんわりとソフトおかしくないですかといってるのに、解析+バグ対処まで教えてやらないと、
自分で見つけられない奴。
884 :
774ワット発電中さん :2013/12/13(金) 12:23:40.66 ID:QlupgtfY
>>850 ,852も誉めてやってください。
経験は偉大だよ。850、852は同じ類の経験者だと思う。
883とかも偉大な経験をしたわけだが、あまりにもしつこく同じ経験を何度も繰り返したために
「何度言ったらわかるんだ。アフォかおまえは。小学生か?」
としつこく先輩に言われて心に深く傷を負ってそれがトラウマになった人だろうな。
トラウマを抱えている人は苦しい経験を沢山しているわけだが、その分トラウマだけを
上手く開放すれば経験が生きてくると同時に人生が楽しくなる。
>>873 スタートビットの検出を16倍のクロックでやってるから
(0.5-1/16)/9.5で遅い方へは4..6%
送受信があるから遅い方が最大許容値
やんわり指摘だと!? 適当な事しか言えない人が後講釈で偉そうにする典型だなウザイだけ
>>886 昨日から同じこと言ってるわけだが。俺のほかにも数人いたでしょう?。
そのものずばりのソースコートの修正を期待してたのかな?
そういう親切な方もいらっしゃて、それはそれで偉いと思うし、掲示板を利用するのもありだとは思うけど、
今回のミスは、割り込み触るのなら良くやるミスで、自分でロジックを最初にチェックするべきところ。
抽象的なヒントやグローバルケースから自分で解析する考え方や方法論を学んだほうが良いと思うよ。
>>885 ちゃんとしたUARTならスタートビットの立ち下がりから16倍クロックの7.5
クロック目をスタートビットの中心とするから、誤差は±0.5クロック。
これはストップビットまで平行移動だから累積しない。
スタートビットの中心から16クロックごとにサンプリングしてストップビット
まで9回サンプリングするから
(8-0.5)/16/9=5.2%
ちなみに、EUARTの4倍クロックモードは中心の誤差を犠牲にして(累積しな
いから)ボーレートジェネレータの倍率を高くしてスピード誤差を減らすと
いう考えだと思う。
あと、スピードだけではなくドライバ/レシーバの波形歪みも考慮する必要
がある。
>>888 たまに5V単一の変換ICを3.3Vで使ってて、速度が出ないと悩んでる人もいますね。
低速ではそこそこ動くんだけどね。
890 :
774ワット発電中さん :2013/12/13(金) 23:53:49.12 ID:j5VA2YhY
初心者です PICのコンパイラの xc8とxc16の違いは何ですか? また16F84Aではどちらに当たるのでしょうか
892 :
774ワット発電中さん :2013/12/14(土) 00:10:27.64 ID:sFaJIqVK
>>891 これを理解できないから聞いたんですが・・・
まぁいいでしょう。
そちらがそう来るなら読んでやろうじゃねえか!
thx!
893 :
774ワット発電中さん :2013/12/14(土) 00:17:09.72 ID:sFaJIqVK
>>891 PIC16F84AはXC8に対応していると判断しますた
間違ってたら嘲笑ってください
御名答
895 :
774ワット発電中さん :2013/12/14(土) 00:30:46.17 ID:sFaJIqVK
>>894 おお!ありがとう!
これで安心してインストールが始められます。
ではおやすみなさい。本当にありがとう。
嵐のような人だった
二宮くん?
蒸し返すようで悪いんだけどさ >819の >他のCPUでこんなに誤動作することは一度もないから驚く。 今回のってPIC特有の問題なのか?
単に他の石は既存の通信ドライバ(割り込みルーチン)使ってたんじゃね?
ロジアナとかで確認はした?
>>898 同じアルゴリズム使ってたら、どんなCPUでも化ける。
CPUの速度や通信タイミングや量で、偶然化けないこともある、っていう程度の単純バグ。
普通はドライバなんか既にあるからな それでも敢えて再発明するのが趣味なんだけど
<動かない時は他人のせい>というのは有りがちだけどさ、 でもねぇ、PICのUARTを疑うのはちょっと驚いた。 俺が新人だった頃、上司から<他人の仕事を信用するな>と言われたことがある。 その時はハードの問題だったけど、トラブッた時に自分の責任になるなら、 ソフトのコピペでもキチンと確認しておかないとね。
あれそういえば特定の場所で割込みが入ると化けるなら、速度を落とせばエラー率は減るけど、 その分同じ量を通信するのに時間がかかるから、結局通信量に対するエラー率は変わらないんじゃ?
いま来て状況つかめてないけど割り込み用に退避レジスタ用意して割り込み終了後にデータを復帰とかできんじゃね? あと通信シーケンスで問題がある場合I/Oのラッチレジスタがなくてbit処理 命令で誤動作するとかじゃね? それならバイト処理命令に変えるかラッチレジスタ使うかでなおるんじゃね? ただソフトで組むより内蔵の通信ピン使ったほうがいいのかな? 今来たばっかで状況つかめてないから適当に言ってみたw
そんなことせんでも、クリティカルな部分は割り込み中で済ますのが普通だと思う
>905 もう解決してるでし。 ちなみに最近のPICは割り込み中のレジスタ退避は自動で行ってくれるから 昔みたいな割り込みルーチンの頭と末尾で退避や復帰を組む必要ないらしいでし。
>>905 今回の問題は、
割り込み内で更新している変数を、メインで読み書きする時の配慮が欠けていた事。
>>908 >割り込み内で更新している変数を、メインで読み書きする時の配慮が欠けていた事。
書いてない
誰の仕事が一番信用出来ないかというと自分自身の仕事だ、ということを他人のプログラムを馬鹿にしていた新人時代に学んだ。
この処理要らないよなー、とか思って勝手に削ると後で痛い目に遭う
駄目な技術屋ほど他のせいにする 駄目な技術屋ほど他を悪く言う 駄目な技術屋ほど自分で調べず人に聞く でもね、 そんな駄目駄目人間でも、 立場が変わって 同じ仕事で営業マンとしての立場で横に居てくれると 精神的に助かる
>>911 コメントに「消しても大丈夫」と書かれたまま残された処理。
他の人が作ったプログラムで見つけたけど、局所的な処理はともかく、消すには裏付け確認等々時間がかかる。
結局そのまま放置。本人は後で大丈夫と言ってたけど、裏付けしないと痛い目に遭うのは自分だし。
>>913 あるある。
昔の自分のソース見ると、
//たぶん大丈夫だけど念のためウェイト
とか書いてある。お前なぁ。
>>914 確かにあるね。
僕は、極力その場で試して、境界を探して記入してる。
// 念のため待つ
// 45 ダメ
// 50 ダメ
// 52 たまにゴミが出る
// 55 OK
// 60 OK
とかね。
回路の容量とかある場合、余裕持たせてることもあるんじゃね?
>>915 ウン、それは俺もやる。
ソースプログラムに許容範囲の最小値、最大値や、
他には計測したプログラム実行時間などを書いておく。
>>915 あるあるあ
PICの場合シミュレータのSTOPWATCHで(ブレーク時にタイマリセットしとけば)、
前回のブレークポイントからの経過時間を数えてくれるから助かる。
そんでそういうコメントが上司にみつかると
「最適値くらい不精せずに算出して求めろよw」と呆れられる。
すんません、自分のコードなのにどこを何回通るのかよくわかってないんです・・・><;
LZW辞書式圧縮のデータ構造がやっと理解できたw 可変bit長とかw 開始コードと終了コードとか書いてないやんw 理解できたときすっきりした!(^◇^)
ほとんどに空の状態のリングバッファに排他制御なんかイランだろと思っていたけど やらかすヤツはやらかすってことです
I2Cでコリジョンとかポーリングとか勉強できたw
923 :
919 :2013/12/16(月) 14:40:56.13 ID:xc2w0yvS
訂正 LZW辞書式圧縮のデータ構造がやっと理解できたw 可変bit長とかw 開始コードと終了コードあったけど 開始コードと終了コードとかいろんなホームページの説明でそのこと書いてないやんw 理解できたときすっきりした!(^◇^)
日記に書いとけ
英語でな
老婆心ながら・・・ 米語じゃないからな
>>919 昔は雑誌の初心者向けの定番テーマだったんだけどね。
アイコンのフォーマット見てみたらサイズによってデータ部のヘッダが違うから なんなんだこれは、とか思ったらpng推奨とかw
チャンクとかいうデータがすごいいっぱいしゃべってたw
>>4 -◎16F1827 \110 04Kw 0384 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
これ値段とメモリ量のバランスがめちゃくちゃいいじゃないか ピン数は関係ない
これならhitech c pro liteのコード水増し攻撃にも対応できる 気に入った
>>930 手元に10個位まだ残ってるな。
前は18ピンは16F648Aを良く使ってた。
でも1827出てからはこればっかりだ。
うちは1938がデフォルト 小さくないと困る時に他のを考える
AVRマイコン方面では秋月でattiny2313が150円に値上がりしatmega644p1284pのDIP品の扱いが停止されるという大激震があったから PIC16F1827 1938 1939 のクリーンナップトリオの存在感が高まったといえる
高かったら2313の存在意義無いがな
>>933 それ全部今年の出来事なんだよね
ついでにAVRISPmkIIとSTK500も値上げで
2013年は秋月AVR衰退が激しい…
40ピンが欲しくなって16F1939三個ほど使ったよ
AVRが高くなってるのか…。 アクエストークのAVR版ってあったけど、あれも高くなっちゃうのかねぇ…。
PICの空きピンってどこにも繋がずに開放しておく場合、入力と出力の どっちに設定しておくべきですか?
>>937 安全性では入力で内部か外でプルアップだけど電池駆動で省エネにしたいならプルアップ分の電流が勿体ないので出力にしてhi
そこでプルダウンですよ
AVRとはなんだったのか
Arduino じゃね?
>>941 アセンブラではAVRの方が書きやすいが、Cで書く分には余り関係ないし、
低価格格帯では、コアの性能より価格と周辺機能の豊富さだしな。
PICの12Fと16F使っててAVRに引っ越したけどdsPICが出たおかげでまた引っ越したからあまり戻る気が起きないや
25K22可愛いよ25K22
たまには秋月詣でしたいな
25K22とかいいと思うんだけど18Fにまで手を伸ばすぐらいならatmega328pでいいやと思ってしまう不思議 16F1xとatmega328pで憂いなし
16F1だと割り込みのプリオリティとか使えないし。
949 :
774ワット発電中さん :2013/12/22(日) 17:25:03.37 ID:yUl71NSM
むしろ16じゃなくて最初から18
なんでもかんでも24FJ
>>939 あれ、プルアップって何もつながなくても電流流れるの?
16F57、70円ってどうなの。でかいしピンが多いし。
>952 テンプレの>5のとおりじゃないか >【Baseline】8bitマイコン 初代PIC1650(1978年)からホボそのまま,あまりに古い設計の為 制限多 >新シリーズへの移行推奨 >-△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら 300&600mil幅 内蔵クロック無いのと、I/O多といっても20本。 プログラム的には割込すらないけど用途決まっていて問題なくて、数使うならありじゃないか
クリスマスイルミネーションには最適ですね
機能が無い分癖が無いから意外なほど使いやすかったな。 うっかりピンがアナログになってたりTMR0入力になってたりがない。 あと20本のI/Oが綺麗に順番に並んでるのも地味に嬉しい。
秋月とかで取り扱ってない品種をDIRECTで買いたいけど送料高いね。 かなりの数をまとめ買いしないと微妙な感じ。
16F57は他のマイコンにぶら下げて低速GPIO通信する 簡易IOエキスパンダーみたいな使い方が便利 細い300milのほうはたくさんストックしてある
1の位の小数点を気にしなければ3桁の7セグをドライブするのにぴったり?
ダメだ。 入力が足りない・・・orz
57は上位機種のほうが2ピン入出力が多いのがなぁ…。 5xシリーズは安いだけの事はあるんだがマジで安いだけだし。 もうセラロックすら省いてRC発振にしたいけど、最大で400kHzだっけ? ソフトウェアUARTですら受け取れるのかと不安になるわw
>>960 最近のはたしか16MHzまで通常の発振でRC発振できるんじゃね?
そんでPLL利用すればその数倍まで許容できたと思ったけど?
PIC18F24K20で150円 でちょっとプラスすればPIC32MX買えんじゃね? こっちはパイプラインが深くなってるからクロックが同じでも 命令処理は数倍になってさらにAD変換なんかも連続で出来たり バッファもあるから使い方のはばがひろがるんじゃね?
しかし何も作らないだろ?
>962 使い方次第なんじゃないか。誰もが速度を求めてるわけじゃないだろうし 28ピンのPIC32MX VDD2.3〜3.6V maxI/O21本 15mA 28ピンのPIC18F VDD1.8〜5.5V maxI/O25本 25mA
てか、PIC32とその他PICと同列に論じられるの?
>965 違いと用途を認識していれば語っていいとおもうけど。 用途やコストを考えずに語れば、無駄に高性能になるだけで 最終的に安いPCでいいんじゃないになってしまう。
967 :
774ワット発電中さん :2013/12/23(月) 20:18:19.77 ID:JcpEcvlP
PIC32はバグリーで嫌い
dsPICの33Fでいまのところ満足かな
PICの品番で、 PIC24FJ32GA001 PIC24FJ32GB001 PIC24FJ256GA106 などの、 GA001 = GA0はシリーズ 01は20pin GB001 = GB0はシリーズ(USB I/F内蔵) 01は20pin GB106 = GB1はシリーズ 06は100pin のようですが、 GB0 と GB1とでは、何が違うのでしょうか?
PIC32って、秋月だと200円くらいで売ってて使ってみたいけど、 いまいちどう使ったらいいのかわからん。 誰かいい製作例みたいなのない知りませんか。
手段の目的化w
外に出るとLチカだらけだな。マイコンユーザーがこんなにいるとは。
当てにしてたクリスマスイルミネーションがもらえなくなったので急遽12F683で 分解したダイソーのイルミネーションの赤青黄の24個のLED制御する奴総額500円ででっち上げた I間に合ってよかったw
LED業界はクリスマスだけで年間の80%を売り上げるという
975 :
774ワット発電中さん :2013/12/24(火) 00:31:35.53 ID:AHCdy4t7
PIC32試したがバグリーですぐやめた
>>959 16F57の話なら、タイマ入力を入力として使うという奥の手が。
でも7セグ3桁って10ピンで足りるような…。
ちょっち タイマー割り込み調べたくてググったら、PICとMikroC ってサイトにあたりまくるんで読んでたんだが INTCON.T0IE = 1; //タイマ割込み許可 って書いてあった。 INTCON.TMR0IE …だよね?
どの石か知らんしそういうビット名定義の石もあるのかもしれんけど、 ビット名がT0IEで定義してある石もあるよ。
え?普通T0IEだろ?と思ってPDF見なおしてしまったよ T0IEしか使ったこと無い12F629/683、16F648A/886・・・と思ったら1827はTMR0IEなのか 今後はこっちを使う事になるのか、なんか今更だな
Mikroとやらは知らんが、MPASMならヘッダでどちらも定義されている なのでプログラムはT0IE, T0IFで書いてる
d。 そうかー… 石ごとに違うのか… orz ややこしいなあ。 とりあえず今は16F88。 両方書いてあるってのは便利だなあ。 たしかにいささか使いにくい部分が多いけど、細かいところが便利なんですわ。> MikroC
石毎のヘッダーみればおけ
984 :
774ワット発電中さん :2013/12/24(火) 21:06:05.37 ID:c9/E4qJA
初心者がおじゃましてすみません PIC16F84Aでディジタル入力ができません MPLAB XC8を使用しています 多分根本的な部分で間違っていると思います... ご指摘よろしくお願いします int main(int argc, char** argv) { TRISAbits.TRISA0 = 0; TRISAbits.TRISA1 = 1; int i; while(1){ while(!PORTAbits.RA1){ //入力がないときの処理 } //入力があった時の処理 } return (EXIT_SUCCESS); }
きっとデフォルトがアナログだから
>>984 while(1){
while(!PORTAbits.RA1){ //入力がないときの処理
}
//入力があった時の処理
}
return (EXIT_SUCCESS);
}
なんで else がないの?
あと、
while(PORTAbits.RA1 != 0){
と書いた方が、間違えなくて済むよ。
987 :
774ワット発電中さん :2013/12/24(火) 21:43:36.98 ID:c9/E4qJA
>>986 while文にelseなんてありましたっけ?
if文使えってことですか?
988 :
774ワット発電中さん :2013/12/24(火) 21:55:04.73 ID:c9/E4qJA
>>985 ヘッダーファイル見てもアナログ・デジタルの切り替えに関するものが見つからないんです…
>PIC16F84Aでディジタル入力ができません エスパーするとこっちの確認方法が間違っていて原因は別にある
990 :
774ワット発電中さん :2013/12/24(火) 22:12:22.83 ID:c9/E4qJA
>>989 Configとかかな?
#pragma config FOSC = HS // Oscillator Selection bits (RC oscillator)
#pragma config WDTE = OFF // Watchdog Timer (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is enabled)
#pragma config CP = OFF // Code Protection bit (Code protection disabled)
まぁ書いたところで返事してくれるかわからんが
石のデータシートみなよ。 PORTAのところ見れば、設定に必要なレジスタの一覧表があるよ
どうやって”デジタル入力できていない”ことを確認したかだよ プログラムが意図した通りに動いていない=デジタル入力できていない、ではない場合があるよ
プルアップしないでスイッチだけ付けてる 書いた通り動いているが期待した動きじゃない かな、、、ワケワカラン
994 :
774ワット発電中さん :2013/12/24(火) 22:45:56.27 ID:c9/E4qJA
>>985-992 本当にどうもありがとう!出来ました!
>>991 データシートをみて幾つかヒントを得ることが出来ました。
>>992 なんどもお答えしていただきありがとうございました。
最終的に自分のプログラムにミスが有りました
どうもお騒がせしました。ありがとうございました。
995 :
774ワット発電中さん :2013/12/24(火) 23:20:17.71 ID:lbXGbdJM
埋めて
断る
埋めちまえ ∧_∧ ここでお別れだ ( ・ω・) lヽ,,lヽ (っ つ|__,>;* ザッザッ ( ) / ) ・;*;'∴ と.、 i ( / ̄∪ しーJ ~~~~´゙`゙゙´´ ~~゙`゙´\ ハ,,ハ/`~~~~´゙`゙゙´´ ~~゙`゙´ ('(゚∀゚∩
P
う
1000なら皆PIC大好き
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。