マイクロコントローラ歴史
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値はクロックと同じ('14/07版)
28ピン
-◎PIC32MX250F128B \360 FLASH128+3KB RAM32KB ●USB
-○PIC32MX230F064B \320 FLASH64+3KB RAM16KB ●USB
-○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値とクロック関係は下記参照('14/07版)
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 \380 11Kw/2KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
*◎24FJ64GB002 \340 21Kw/8KB/--- ADC10bit TMR5 UART2 SPI2 I2C2 PWM5 ●USB
20ピン
v◎24FV32KA301 \290 11Kw/2KB/512B ADC12bit TMR5 UART2 SPI2 I2C2 PWM4 VDD2.0-5.5V
18ピン
^○dsPIC30F3012 \420 8kw/2KB/1KB ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
14ピン
-◎24F08KL200 \160 3Kw/512B/--- ADC10bit TMR2+1(8bit) UART1 MSSP1 PWM2
*◎24F04KA200 \140 1Kw/512B/--- ADC10bit TMR3 UART1 MSSP1 PWM1
共通
24Fシリーズ Vdd2.0-3.6V Max16MIPS(32MHz) (一部ピン5V入力可),I/Oリマップ(PPS)
24FVシリーズ Vdd2.0-5.5V Max16MIPS(32MHz) (5V動作可),I/Oリマップ無(PPS無)
24Hシリーズ Vdd3.0-3.6V Max40MIPS(80MHz) (一部ピン5V入力可),I/Oリマップ(PPS)
30Fシリーズ Vdd2.5-5.5V Max30MIPS(120MHz) DSP命令有,(5V動作可)
33Fシリーズ Vdd3.0-3.6V Max40MIPS(80MHz) DSP命令有,(一部ピン5V入力可),I/Oリマップ(PPS)
【PIC18】8bitマイコン。5V動作可(J除)で比較的高速(10〜MIPS) 新型のKシリーズは多機能で
高速(16MIPS),USB機能付きもラインナップ,命令系は16F(Mid-Range)から+αレベル
MIPS値はクロックの1/4('14/07版)
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 \400 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,CCP1/1,SPP
^×18F4520 \430 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 \540 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 \500 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 \340 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 \240 32Kw/3896/1024 Max64MHz(31k-64MHz),4xPLL,eUSART2.TMR3/4,MSSP2,CCP2/3,SRLatch
-○18F25K22 \170 16Kw/1536/256 ↑26K22のメモリ縮小版
^△18F23K22 \190 4Kw/512/256 ↑25K22のさらにメモリ縮小版
^◎18F25K80 \250 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のさらにメモリ縮小版
-◎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を
-×18F1320 \270 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1,MSSP無
x×18F1220 \190 2Kw/256/256 ↑1320のメモリ縮小版
^△18F1230 \270 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,エラッタ注意('14/07版 上位チップで値上げ有り^)
[40pin] F1939の値上がりで、F1937も選択肢に
^◎16F1939 \210 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] こちらもF1938の値上がりでF1936も選択肢に,1783はアナログてんこ盛り
^◎16F1938 \190 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
-◎16F1783 \180 04kw 0256 I/O25 12bitADC11 Comp3 Timer2/1 MSSP1 CCP2 OpAmp2 8bitDAC1 PSMC 注2
[20pin] 同じくF1829の値上がりで、F1828が。F1508はPWMx4とCWG,CLC,NCOに魅力がアレば
^◎16F1829 \170 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
*○12F1508 \130 04Kw 0256 I/O18 ADC12 Comp2 Timer2/1 PWM4 MSSP1 CWG,CLCx4,NCO 注1
[18pin] 18ピンの割にMSSPが2コ,ADC入力ピン多,タイマーx5,CCPx4と多機能
-未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
^◎16F1827 \130 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ピンと変わらないのは残念。F1503はPWMとCWG,CLCx2,NCOが売り
-未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-
x◎16F1503 \080 02Kw 0128 I/O12 ADC-8 Comp2 Timer2/1 PWM4 EUSART無 MSSP1 CWG,CLCx2,NCO 注1
[8pin] 8ピンでUSARTもI2Cも使えるってのは大きいね
未12F1840 ---- 04Kw 0256 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
^◎12F1822 \090 02Kw 0128 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
-◎12F1501 \070 01Kw 0064 I/O-6 ADC-4 Comp1 Timer2/1 PWM4 EUSART無 MSSP無 CWG,CLCx2,NCO 注1
表記 Timer[8bit]/[16bit],ECCP[Full]/[Half],CapS=CapSense,Comp=Comparator
共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計
(注1)F150xはEEPROM無,SRLatch無
(注2)1783は12bitADC,8bitDACにグレードアップ
VDD1.8V(max16MHz)〜2.5V(max32MHz)〜5,5V,4xPLL有,内蔵OSCでも32MHz可(8MIPS)
(注)F150xはVDD2.3V(max16MHz)〜2.5V(max20MHz)〜5.5V,4xPLL無,内蔵OSCはmax16MHz
プログラム面で新命令追加,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の値入れる(非推奨だったが以前から有り)
RESET : ソフトウェアリセト
ADDFSR : FSRに定数(-32〜+31)加減算
MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能
【Mid-Range】8bitマイコン PIC16F84から連なる旧シリーズ,性能&コスト的に新シリーズへの移行推奨
評価は旧シリーズ内の相対比較 新シリーズが使えない場合のみ有効,MIPS値はクロックの1/4('14/07版)
値上がり品が目立ちます(行頭が ^ の品種)
Enhanced Mid-Rangeと18Fの上位チップまた旧Mid-Rangeも値上がってるようです
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 \160 F690からeCCP機能削られた
^△16F687 \150 さらに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 \150 F648Aの1Kw版,上に同じ
-×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・
^○16F88 \250 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31k-8MHzと旧18ピンの王者ダガ高い
-○16F87 \150 F88のADC無Ver,ADC無が問題なければ
^○16F819 \210 ADC有,CCP有,SSP有,2Kw,内蔵31k-8MHz,F88とはROM,USARTの差
^○16F818 \190 F819の1Kw版,多機能なだけに1Kwに不安を感じる
◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意
14ピンは10円差ならF688
^◎16F688 \120 ADC有,eUSART有,4Kw,内蔵31k-8MHz,CCP無が残念
^△16F676 \130 ADC有,1Kw,内蔵4MHz
-×16F630 \100 F676のADC無し 無機能で影薄い
8ピンは多機能のF683かEEPROM無くても良いならF615,本来はデバッグ用ダガF322も
-◎12F683 \100 ADC有,CCP有,2Kw,内蔵31k-8MHz,8ピンとしては多機能
^△12F675 \80/120 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版
^△12F629 \90 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幅
^△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら
-×12F510 \60 8ピン,ADC有(8bit),1kw,内蔵4Mor8MHz
-△12F509 \50 8ピン,機能無し,1Kw,内蔵4M
-△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用
-△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用
共通 機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
【Mid-Range】8bitマイコン PIC16F84から連なる旧シリーズ,性能&コスト的に新シリーズへの移行推奨
評価は旧シリーズ内の相対比較 新シリーズが使えない場合のみ有効,MIPS値はクロックの1/4('14/07版)
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 \160 F690からeCCP機能削られた
^×16F687 \150 さらにF689を2Kwと半分に
-△16F677 \120 さらにF687からeUSARTも削られた
-廃16F685 \150 F690からSSP&eUSART機能が削られたのに値段高いとは
-◎16F785 \130 ADC有,CCP有,2Kw,内蔵31k-8MHz,OPアンプ搭載が異色(新シリーズだとF1783)
18ピンは種類は多いけど選択の幅は狭い。F88の値上げで苦しい、F716いっそ20pinにするか
-×16F84A \250 機能無,1Kw,新規では不要だけど作例参照用or互換用に
-×16F648A \160 CCP有,USART有,4Kw,内蔵4MHz,ADC無同士でF87に軍配
-△16F628A \140 F648Aの2Kw版,売りが値段だけだと厳しいかな
^×16F627A \150 F648Aの1Kw版,上に同じ
-×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・
^○16F88 \250 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31k-8MHzと旧18ピンの王者ダガ高い
-○16F87 \150 F88のADC無Ver,ADC無が問題なければ
^○16F819 \210 ADC有,CCP有,SSP有,2Kw,内蔵31k-8MHz,F88とはROM,USARTの差
^△16F818 \190 F819の1Kw版,多機能なだけに1Kwに不安を感じる
-◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意
14ピンは10円差ならF688
^◎16F688 \120 ADC有,eUSART有,4Kw,内蔵31k-8MHz,CCP無が残念
^△16F676 \130 ADC有,1Kw,内蔵4MHz
-×16F630 \100 F676のADC無し 無機能で影薄い
8ピンは多機能のF683かEEPROM無くても良いならF615,本来はデバッグ用ダガF322も
-◎12F683 \100 ADC有,CCP有,2Kw,内蔵31k-8MHz,8ピンとしては多機能
^△12F675 \80/120 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版
^×12F629 \90 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幅
^△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら
-×12F510 \60 8ピン,ADC有(8bit),1kw,内蔵4Mor8MHz
-△12F509 \50 8ピン,機能無し,1Kw,内蔵4M
-△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用
-△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用
共通 機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
|
| 彡⌒ミ
\ (´・ω・`) それじゃお手柔らかにおながい・・・
(| |)::::
(γ /:::::::
し \:::
\
前スレ(内の1000レスのみ)過去ログざっと検索してみたけど
キーワードが悪かったのか、961の言っていたレスがどの発言なのかわからなかった・・・
>>8 一般的な話としてじゃないの?
インターフェース辺りの雑誌でも似たような話は見たような気がするし。
10 :
前スレ961:2014/07/27(日) 14:01:55.24 ID:d9hhcZX6
ダンケ☆
546 :774ワット発電中さん [sage] :2014/03/04(火) 23:53:52.86 ID:yOAJ3XW6 欠陥ではなくて仕様です
どうしてもすぐに応答しなきゃならない割り込みがあるときはフラグだけ立ててすぐに戻るようにしてください
200 :774ワット発電中さん [sage] :2014/07/22(火) 09:05:38.80 ID:TH3YP6I+
>>199 0.5ms位までなら問題ないが、そのステップ数の計算は間違ってると思う。
タイマー割り込みの中でたくさんステップ書かないで、フラグ立ててタスクに落とせ。
あと長い割り込み周期で使うほうが普通は面倒くさい。
この表現なら確かにポーリングにしとけって話になるなwww
割り込みを使う場合は
多少の遅延の認められる部分のみをフラグ起動のポーリング処理に
まわして、遅延しちゃまずい処理だけは割り込み処理内で済ませておくものですが・・・いやはや(^ω^;
まあサイコパスだと言ってる意味がわからんのよ
あげく割り込みの重要性を語り出すしまつお粗末・・・
いつもの事ながら、悔しそうですなw
悔しいです!何が悔しいって、昔は割り込み開始時のレジスタ退避の
方法や範囲に悩んでそこが習得の難関でもあったのに
Cだと自動退避で悔しいです!しかもいつの間にかアセンブラででも
石の機能で自動退避になってて悔しいです!ギギギギギ
>・測定条件をパネルに並んだスィッチやロータリエンコーダでいつでも変えられる
>シリアルで接続したPCからもいつでも変えられる
>・測定条件や測定結果をパネルのLEDや液晶画面に表示する
>・測定結果を内蔵EEPROMに蓄積する
>シリアルで接続したPC側にも送信する
Propellerを使ってみれば?とか一瞬思ってしまった。
17 :
前スレ961:2014/07/27(日) 17:27:50.76 ID:d9hhcZX6
>14
悔しいです、自分の文才の無さと話運びの下手さに。
人に伝えるのは本当に難しいですね。
直後にレスくださった方たちに伝わったのは幸いでした。
>>17 直後にレスくださった方たちは℃素人w
だから
>
>>971 >>それってポーリングと何が違うの?って思っていたもので
>
>つまり、同じって結論になったのかw
>ま、℃素人だから仕方が無い。悔しければ自分で考える能力を身につける事だな。
>悔しくないなら今のまま、万年℃素人www
と、書いたけど、悔しさのベクトルが間違ってるwww
ま、所詮、万年℃素人。
ポーリングとの違いを敢えて挙げるならば、
余計な処理が介在する分(
>>11のでは)
ポーリングよりもレスポンスが 遅 く な る ぞなもし・・・(^ω^;
℃素人乙
懲りないねぇ、じっくり考えて見たほうがいい。
まあボットですので気にしないでください
前スレ961は限定した条件の話だったのに、割り込みを全否定された
かのように勘違いして過剰に反応しちゃって引っ込みがつかなくな
っちゃったんだね。
>>11 すまん、546を書いたのは俺のような気がする
端折らずに最小限のことだけやって後は時間のあるときにゆっくりやれと書くべきだったな
音出しアプリとかならタイマー割り込み以外の割り込みは許されないが
大抵は余裕があるものだし余程のことをしない限り割り込みで簡単に書ける
しかしその余程のことを必ずやるのが初心者なんだよな
>>22 ℃素人乙
ほんとに考える能力が無いんだな。ユトリかwww
>>15 > アセンブラででも石の機能で自動退避になってて悔しいです!ギギギギギ
昔から 6800 とか自動退避な石はあるけど?
つーか、レジスタ多い石でいちいち全部退避されても困るし。
>℃素人乙
>懲りないねぇ、じっくり考えて見たほうがいい。
つまり
「おいらも良くは分からんが、とりあえず煽っとくか。」
ということですね。
「℃素人」連呼さんのレスの
核心には決して触れない言い回しが素敵です。
>23 どうもっす。
>簡単に書ける
そして割り込み便利〜!って調子に乗ってなんでも割り込みないで処理さして
規定間隔を超過して誤動作に悩んでから546を読めば意図を汲めますよね^^;
>25 そうなんすか。そういえばz80みたいな裏レジ(に割り込み時に切り替わったような気がします)のシステムもスマートだと思いまする・・・
まぁ、表レジを除く必要も思いつきませんので今のPICで
十分洗練されていると思いますががが!
>>26 核心とかwww
ほんとに頭が固い爺なんだな。考える能力も無いし、考えようとする頭も無い。
そんな腐った頭はPICと交換してしまえw
お前みたいなノータリンに定石を教えるのは馬鹿馬鹿しいのでここでは書くつもりは無いが
若いまともな世代や、まともな取引先は多分ちゃんと考えて、お前が言ってる方法はまずいと気が付くはずだ。
ま、せいぜい馬鹿にされるが良いよ。考える能力の無い口だけの奴が出来る仕事じゃ無いから
便所掃除にでも転職をお勧めしておくよ。
安定のド玄人
この雰囲気の中書きづらいですが
前スレで多重割り込み等の質問をさせて頂いた初心者ですが、なんとかモノが
出来上がりました。TMR0、TMR1、IOC、INT0と割り込み4つも使ったのでソースが
どうにもグチェグチェな感じですが
回答して頂いた方に感謝します
しかし12F1822はいいですね。内部OSCで32MHzで動かせるしメモリも十分あるし
USARTも使えるので、8pinで事足りる場合はこれ以外無い感じです
相手するほうがどうかしてる
まぁまぁ、PICスレの弩玄人サンは電電板ではまだまだマイルドな部類だよ。
オシロスレの怒玄人さんなんて初学者に自殺させかねない勢いで追い込んで
つるし上げておられるお(^ω^;)
>>28 裏レジは便利でいいんだけど、多重割り込みだと一気に面倒になるし
割り込み周りは CPU の設計者の考え方がかいまみえて面白いところ
>>28 たしかPICのいわるゆF1シリーズは割り込みに裏レジスタのようなものに自動退避だよ
あとz80の裏レジスタは自動ではなかったはず
そうでしたっけ、すまんです、長いことZ80使ってないから忘れちゃった><;
最近もっぱらPICですわ、PIC便利だよワショーイ
EXX
EX AF,AF'
PUSH IX
PUSH IY
見下せる奴を求めて流れ着いたのがPICスレか・・・?
>>29 あら、また、核心は避けるのね、お上手
技術的な内容が皆無な遠吠えで
おいらはお前らとは違うんぞと言われてましても…
ま、必ずレスしてくれるから暇つぶしにはもってこいだけどw
>>39 遠吠えなのに反応良すぎるなw
よっぽど悔しかったんだな、よく判るよwww
>>38 見下してるつもりでひとり悦に入ってるが
まわりはみんなすぐに気づいて放置
暇なヤツが面白がってからかってるだけ
俯瞰で眺めるとそういう状況ね
ロータリーエンコーダ読みコード書いてみたんだが、
肝心のエンコーダが新品なもんでノイズ除去試せない…。
XC8を使っていますが、CONFIGの設定が具体的に何を行っているかはどのファイル
に記述されていますでしょうか?
WDTE = ON とした場合に、実際にCONFIGレジスタに何の値が書かれるのかを
調べたいです
>>43 データシートのCONFIGURATION WORDのとこに書いてある
>>44 そういう質問じゃないんですがw
XC8がCONFIGの記述をどう解釈しているか?という質問です
46 :
774ワット発電中さん:2014/07/28(月) 09:40:53.51 ID:2Q6JY+Jh
そーゆー質問じゃないのか
XC8が仕様通りに動いていればデータシートのビット列になる筈だけれど、
ちゃんと仕様に則ったビットパターン生成ができているか、目視確認するには
どこを見ればいい?っていう話じゃね?
48 :
774ワット発電中さん:2014/07/28(月) 09:50:51.82 ID:6YK1jry7
俺のブログラムにミスがあるはず無い。
ちゃんと動かないのはXC8のせいだ。
こう解釈すればいい
デバッグ中にwatchで見られなかったっけ?
>45
何を求めているのか、わかりづらいけど
MPLAB Xだとしたら
@ 〜Microchip\xc8\v1.xx\docs\chips\ のフォルダにあるチップ毎のhtml
AMPLAB X IDEのメニュから Window → PIC Memory Views → Configration Bits
どっちかかな?
>>50 質問意図としては@です。例えば "BOREN = NSLEEP" と書いた時に、CONFIG1
のどこに実際には何の値がセットされるのか知りたかったのです。
ただこのHTMLでセット出来る値の種類が分かったのでありがとうござじます
>>45 最近は自分の質問へのレスに
礼の一言もなく全否定して
しかも草まで生やして返すのが流行ってんのか
>>51 仮に16F18XXだとして、
>BOREN =
はCONFIGURATION WORD 1の9、10ビット目だということも
セットする値の説明もデータシートのCONFIGURATION WORD 1のページに書いてある。
なぜデータシートを読まない?
お遊戯レベルの英語力の小坊にデータシートの英語は無理
夏休みだってことを忘れるなよ
ネットで探しても、それなりには情報あると思うが……結構間違ってて困ることもあるけど。
そもそもデータシートをキチンと読む人はこんなところで質問なんかしない。
>>43 データシートのCONFIGURATION WORDのとこに書いてある
>>44 そういう質問じゃないんですがw
データシート読む読まない以前に
こいつに親切に教えてやろうという人間は現実の世界ではいないだろう
そもそもそれを知ってどうするのかも疑問だしな
「デ、データシートは、読むな・・・よ(ガク」
という祖父の遺言をまもるけなげな質問者さんを、みんなで支えましょう!
データシートが読めないならICEで読み出して見れば良いじゃない。
by マリー
すみません、昨日割り込みの質問をさせて頂いた初心者です
割り込みとは全然無関係なんですが別の質問をさせて下さい
12F1822のデータシートを見ていると、MCLRピンは with internal pull-up と
書かれています。MCLRとして使う場合は常時内部でpull-upされていると解釈
しましたが、世の中の使用例を見ると10kohm程度で外部でpull-upしているもの
が殆どです
内部pull-upと外部pull-upは同時に行ってはならない(合成抵抗値になるから?)
ような話もきいた気がするのですが、MCLRピンをMCLRとして使う場合は外に抵抗を
つける/つけないのどちらが正しいのでしょうか?
おまえらカテキョやったことある?
典型的なデキン坊が>>ID:yFmeM12Hのパターンだよな。
青い経験/誘惑の家庭教師 @1975
>>60 MCLR供用のpinは普通は内部でプルアップされない
なので4.7〜10KΩ程度の抵抗でプルアップする必要がある
>>63 12F1822のデータシートには、
>The MCLR pin is connected to VDD through an internal weak pull-up.
って書いてあるんですが。
>>60 どうもこのweakってのがポイントらしく、
ノイズの多い環境だったら外付けした方がいいというのを見かけた気がします。
>>64 それはMCLR pinを汎用入出力pinとして使うならプルアップ可能ですよ、と言ってる
のであってMCLR機能を使う場合はプルアップされない
あと、データシートに書いてあるから絶対に正しいと言う考えはレベルアップのため
には止めたほうがいいし、データシートは出来るだけメーカから直接出てる英語版を
読むべき
>>65 もともと本家からもらってきた英語版から引用してるんですが。
たった今本家からDLした英語版でも同じです。
7.3.1 MCLR ENABLED
When MCLR is enabled and the pin is held low, the
device is held in Reset. The MCLR pin is connected to
VDD through an internal weak pull-up.
The device has a noise filter in the MCLR Reset path.
The filter will detect and ignore small pulses.
×から引用してる
○を見てる
連投すみません。
>>65 >それはMCLR pinを汎用入出力pinとして使うならプルアップ可能ですよ、と言ってる
はデータシートのどのへんに書かれていますか?
汎用入出力ピンとして使うなら、っていう部分は何処にそうとうするん?
>The MCLR pin is connected to VDD through an internal weak pull-up.
The MCLRピンは内部弱プルアップを経てVDDに接続されています。
>>ID:SAa0CGJb
>MCLR供用のpinは普通は内部でプルアップされない
>MCLR pinを汎用入出力pinとして使うならプルアップ可能ですよ、と言ってる
の2点はどこに書かれていますか?
>データシートに書いてあるから絶対に正しいと言う考えはレベルアップのためには止めたほうがいい
では、レベルアップのためには何を参考にしたらいいですか?
>データシートは出来るだけメーカから直接出てる英語版を読むべき
>>64が
>12F1822のデータシートには、
>>The MCLR pin is connected to VDD through an internal weak pull-up.
>って書いてあるんですが。
と書いてるのに英語版でないと判断した根拠を教えてください。
PICに限らんがエラッタも確認しよう
データシート:プルアップされています
エラッタ:実はプルアップされてませんでした
回避策:外部プルアップ付けること
こういうのがまれによくある
12f1822のデータシート読んだかぎりだと
CONFIGでMCLRと設定すると強制的にweakpullup
IOとする場合はレジスタでプルアップONNOFF設定可っぽいな。
MCLRのときにはenbaleとはかいてあるがプルアップをdisableにできるとは書いてない。
WPUENでWPU全体をdisableにしてもMCLRの時は除くみたいだし
>64
MCLRの内部pull-upが通常I/Oのpull-upと同じものだとすると
D070 IPURという項目で VDD=5V , 該当PIN 0Vで
min 25uA max 300uA となっています。
pull-up抵抗が16.7k〜200kΩ相当になるので
200kは大きすぎるので、安全を考えたら外付けした方が
良いということではないでしょうか
リセット兼プログラム用高電圧端子だからオープンのまま使えるだけでも儲けもの
プルアップ抵抗必須とかスリープ中は内部プルアップOFFとか特殊なプログラマを使わないと入力にならないとかの
ダメマイコンは反省しる
古い型番だと、MCLRに内蔵プルアップないよね。
出力ピンとしても使えないし。
>>ID:SAa0CGJbの間違いが問題なんじゃないだろ
>データシートに書いてあるから絶対に正しいと言う考えはレベルアップのためには止めたほうがいい
>データシートは出来るだけメーカから直接出てる英語版を読むべき
あなたどのお面をおさげになっておっしゃるのって感じ
60です。回答ありがとうございます
MCLR端子にリセットの為のスイッチを付けないような回路なら、乾電池でLチや
LCD表示等の小さい規模の使用ならあえて抵抗を外付けする必要はなさそうですね
あえて8pinPICを使ってるのは出来るだけ回路規模を小さくしたいが為なので
抵抗1本と言えど省略できるのはありがたいです
>>78 確かに
間違えの言い訳を偉そうに上から目線でたれてるのが最悪だよな
実社会なら2度と誰からも相手にされなくなるレベル
18F25K50なんか12MHzのクリスタルすら端折れるのに、MCLRの抵抗が必要ってのはないわな
ちょっとしたアイデアを盛り込んだ新製品を出すのもいいけど、どの製品にどんな機能が搭載されてるか
把握し難いよ
メモリ容量の少ない品種はシリコンの面積も実際に少ないのか単に無効にしてるだけなのか?
× そーゆー
○ そういう
84 :
774ワット発電中さん:2014/07/29(火) 10:35:07.61 ID:4zMkIGf/
こんにちは、開発環境の事なのですが
現状IDE X でMLAのTCPIPStackは使えないですか?
どうすれば使えるか、ヒントを下さい。
85 :
774ワット発電中さん:2014/07/29(火) 10:51:16.69 ID:4zMkIGf/
84です、XC8で使おうとしています。
87 :
774ワット発電中さん:2014/07/29(火) 11:19:01.61 ID:4zMkIGf/
ありがとうございます。
レガシーMLAのTCPIP stackのサンプルプロジェクトを開いてみました。
MCC18.exeでコンパイルできたのでこれでやることにします。
あれ?そのプロトコルスタックは、18シリーズには対応していないのでは…
89 :
774ワット発電中さん:2014/07/29(火) 12:11:38.01 ID:4zMkIGf/
>>89 XC8のバージョン落とせば使える(v1.2?)と思う。
1.3からincludeの仕様がかなり変わってる。
XC16で教えてください。
MPLAB IDE + XC16 + PIC24Fでプログラムを作っています。
そこで、何気なくコンソール表示を見たら、以下のようになっていました。
Program Memory [Origin = 0x200, Length = 0x55fe]
section address length (PC units) length (bytes) (dec)
------- ------- ----------------- --------------------
.text 0x200 0x976 0xe31 (3633)
.const 0xb76 0xd0 0x138 (312)
.text 0xc46 0x17f4 0x23ee (9198)
.dinit 0x243a 0xd2 0x13b (315)
Total program memory used (bytes): 0x3492 (13458) 40%
32kもあるROMがすでに40%も使っていると言われました。
その中で一番多いのは、上と下にある「.text」という物のようです。
この .text とは、具体的には何を示しているのでしょうか?
Cソースにはコメントがたくさん書いてありますが、
.text=コメントのことではないですよね。
なんとか、ROM使用量を減らせるものなら減らしたいのです。
よろしくお願いします。
text = code
そういうのって、コンパイラに生成させたアセンブラのソースコードを
チラ見してみるだけでも分かることじゃないの?
コードを圧縮するには
・同じことをしている部分を見つけて関数化する
・無駄な処理をしてる部分を見つけて省略する
・順次処理を書き並べてるところがあればループ化する
などの最適化することになるんだけど、
作ろうとしてるプログラムがROMに入りきらないとか差し迫った状況じゃなければ、
予定している機能を一通り書いてから最適化したほうがいいよ。
最適化を先にやってから新しい機能作ると、その最適化が無駄になったりするんで
時間かかった割りに先に進まなくなって嫌になるという特典がついてきます。
チップ変えれるなら、ROMのでかいチップに変えるとお手軽(・A・)
まずコンパイラの最適化を効かせてみよう
Cの場合、ライブラリとかリンクされると無駄にデカくなる場合がある。
特にprintfとか使うと浮動小数点系のライブラリまでくっついて来たりする場合もある。
そういうので肥大化したヤツは、コード量に比例して増える訳じゃないから、メモリに収まってるなら気にしない。
あと、コンパイラによっては無料のヤツは無駄なコード吐いたりするヤツもある(XC16がそうかは知らん)
逆に、速度優先で無駄っぽく見えるコードを吐くヤツもいる。
あらかじめ回数のわかってるループを展開するとか、switch〜caseをテーブル展開するとか(XC16が(ry
>>91 >すでに40%も使っている
40%だろうが90%だろが収まってりゃかまわないんでは?
Lチカで90%使ってたらやだなぁ・・・
SDカード書き込み機能付きのLチカなら作ったことある、メモリいっぱいまで「Lチカ」って書き込み続ける。
>>99 てか、いろんな点滅パターンとか詰め込んできゃいずれいっぱいになるし
それが「やだ」かどうかは知らんが
絡む必要あるのかなぁ
スレを動かすためのフリとしては成功。
2cなssr の制御をしたいのだけど、低消費電力でお薦めの基板
を教えて下させぇ
>>105 >2cなssr
コレってどういう意味? 表現がよくわからない。
接点構成が2cのSSRという意味かなぁ? (そんなのあるのか?)
>低消費電力でお薦めの基板
コレも意味が不明。
SSRを駆動する「基板」の定義が曖昧で、わけがわからない。
LちかってもちろんLED1つをソフトループの固定ウェイトで点滅させるだけだよ
>>100 それはLEDホイールでは?
>>107 > LちかってもちろんLED1つをソフトループの固定ウェイトで点滅させるだけだよ
なに、その後だしのおれおれ定義
ソフトループの固定ウェイトまで限定するのはやり過ぎだと思うが
さすがにPOVはLチカに含まないだろ
俺のLチカの定義は「LED1つが人間に見える速度で点滅する」だな
PWMでじわっと点滅するのを含むかは議論の余地があるがもし含むなら
10F200でやった時は90%くらい行った気がする
Lチカの定義っていうのは、さげすみ、嘲笑、へりくだりの対象になるか
どうかだ。当然高度なものは含まない。
>>108 100で紹介されているLED照明を「Lチカ」というのはさすがに無理があるだろ。
107が言う内容が近いというか、暗黙の了解=前だし、だと思う。
「後だし」という言葉を水戸黄門の印籠のように使うのはやめてくれ。
Lチカはさげすみ、嘲笑、へりくだりの対象にはならないと思う。
どんなベテランだってスタート時は何も知らない素人で、
ドキドキしながら挑戦し、点滅してヤッタと喜び、
興味が湧いてきて、もっとやってみようと思えるならそれで十分。
その話、おもしろいの?
>>111 > 暗黙の了解
だから、それがおれおれ定義だろ
固定ウェイトとかおかしくね? って言う意見もあるのになにを言ってるんだよ。
あと、俺は
>>100 についてはなにも言ってない。
それと、アンカーぐらいまともにつけてくれ。
114 :
774ワット発電中さん:2014/08/10(日) 13:55:48.67 ID:nZGjAvj0
おれおれ定義と言う言葉を脳内で定義して使ってる人を見つけました!
そもそも90%使ってたらやだなぁという前提条件もある
LEDホイールやらバーサライターやら完成させておいて
やだなぁという感想は出てくるのかね?
まともにアンカーもつけられないレスは以後無視でいいかな
よけい面倒なんだよね相手するのが
それは個人のさじ加減
個別にあぼーんすればいいだけなのに
>>118 ID変えて、論点変えて挑発したのに無視されちゃったね。
まともにアンカーつけろよ
ってのは論点の変更になるんだ?
マウスオーバーするだけで流れが読めるのに
アンカーがないと面倒でしょ
というただの指摘なんだがw
初めてのPICスレに質問がみんな逃げちゃったね。
初めてにしては高度な質問ばっかりで、おそらく、ここの上から目線の回答がイヤだったんだろうね。
たしかに、「初めて」がつけば厳しいこと言えないよな。うまいこと考えたもんだ。
このままでいいのかね、このスレ。
良い
PIC32(XC32)で下記のコンフィギュレーションの設定について
解説のあるサイトや資料が見つからないので
もし知っている方がいたら教えてください。
FUSBIDIO
FVBUSONIO
初めてのスレと初心者のスレという2つのスレになってることの方が大問題だぞ
このスレの最初のPIC情報は時々参考にさせてもらって助かってるが、あとはなー。
なんかいろいろここは難しいよ。
>126 マニュアル嫁
USB モジュールのID, VBUS ピンアサインに使う
USB無効なら実質関係ない(USBEN有効のとき効く)
PIC32MX250F128B の場合
FUSBIDIO が 1 なら 14pin を USB の ID 端子に。0 なら port として使用
FVBUSONIO が 1 なら 25pin を USB の VBUS 端子に割当。0 なら port。
16F887でタイマー2の割り込みを使うプログラムを作ってるんですけど、
デバッガで見ると割り込み発生してから割り込み処理に飛ぶまで63サイクル掛かっちゃってるんですが、
こんなに時間掛かるものなんでしょうか?
>>133 Cで書いたらそんなもん。レジスタ待避で結構かかる。
割り込み部分アセンブラで書いて、待避するレジスタ最小限にするか、F1xxxに乗り換え。
135 :
774ワット発電中さん:2014/08/20(水) 07:11:33.80 ID:6CBjF2Mn
16f877aって万能だと思う。
>>133 Cはアセンブラの10〜100倍ドン臭いので、そんなもん。
>>135 CANが使えないし、クロックにPLLが無いとか、その他色々不便なので、40ピンならdspic4013の方がいい。
>135
16F877Aは内蔵クロックが無いのがなぁ。I/Oも最大で33本しかない。
後継の16F887やEnhanced Mid-Rangeの16F1939なら内蔵クロックも
あるし、I/Oも36本まで使える。
139 :
774ワット発電中さん:2014/08/20(水) 13:14:48.45 ID:ln6kKsJk
この「PIC専用のスレ」のガンはID変えながら続けて書き込む人だよね。
140 :
774ワット発電中さん:2014/08/20(水) 15:23:08.84 ID:6CBjF2Mn
141 :
137:2014/08/20(水) 17:18:05.46 ID:u7Uil1tp
>138
何を根拠にそう思うの?
自分の意に反した書き込みはID変えて自演してるとか妄想するのは病気
たいした行数でもないし、言わせてあげればいいと思う。
2chの℃玄人w
ド素人は平然と自演なんて出来んわ
ド素人めw 俺くらいのえきすぱあとになると
わざわざIDなんて変えないで、そのまま自演するんだよぜ?
判断の区分が、異なる・同じの2種類しか無いんだよ。
似ている・偶然・特異点等の条件が考慮できないんだね。
解析や分析とかトラブルシュートが下手な思い込みの激しい人のようだ。
きっと、W思ったとおりに動くWとW作ったとおりに動くWの違いが判らないだろう。
時々やってる昔語りで40超えてそうな奴が
嬉々として下ネタで自演なんてしてる様を想像したら
溜息しか出ないけどな
確かに自作自演はわかるよなー。時間の流れ、話の流れから不自然だからなー。
問題はそれを指摘したほうがいかどうか。
人間なんか知らんけど一生懸命な人って応援したくなる。
自作自演もがんばれーって思う。
それでいいんじゃないかな。
ただのサイコパスっしょ。
症状を考えれば納得できる。
自作自演する意図がわからないいんだよなー。
それが分れば、それなりに応援できるんだけど。
2ちゃんをやりすぎると全て自演に見えてくる。
自演を見破れる俺ってスゲー。
>>155 自作自演やってるひとがいるってしってる?
158 :
774ワット発電中さん:2014/08/21(木) 06:59:58.40 ID:dQT5OKsJ
書き込み間隔や文章のクセと内容で、何となく同一人物かどうかは分る。
後はあえて付け加えるなら、「長年の経験と鋭いカン」、
「眼光モニタ背に徹する」も大事だw
逆に、全く区別できない文章を書けるような人なら、
ちょっと精神的にコワい。
私は説明を補足するためなら何回書いても構わないと思うけど、
自分の賛同者がいないために、自分でサクラをやるというのが
横から見ていて惨めで情けなくて恥ずかしい。
160 :
774ワット発電中さん:2014/08/21(木) 09:16:56.97 ID:ZtMY9yNI
>「長年の経験と鋭いカン」、
要するに妄想だな
自演は2ちゃんだけじゃねー
教育からマスコミ、電車駅の宣伝ポスター
すべてのすべてが自作自演だと
現代国家による人民搾取弾圧システム
それが自作自演
40歳にしてやっと気づいた
ここってメンタルヘルス板だっけ?
そうですよ☆
164 :
774ワット発電中さん:2014/08/21(木) 12:43:22.82 ID:YZ95SIc7
自作自演とはシンガーソングライターのことなんですけどね。
まあ、歌に限らず踊りや芝居でもよいが、文章は演じられないので、
文筆家の自作自演は不可能 ミ'ω ; ` ; ミ
自演の道は、長くけわしい。 IDのある板であえてIDを無視し、
半ばネタの様な教えてくんを投稿し、態度を叱られ逆切れ、
口調だけは他人のふりで、さんざん暴れた挙句、
IDというものを指摘され、赤面しながら「すみません、弟が(荒らしを)やってました
私からキツク言っておきます!」のフィニッシュを華麗に決めて初めて一人前というもの。
IDを姑息に使い分けるような小僧にはまねできない、もはや笑いの神を祀る芸術の境地。
>>158 その能力を数学的にモデリング出来れば、自然言語処理が進化するな
ついにキレたか。
>>167 お前のイボ痔にはPICが内蔵されているのか?
> IDを姑息に使い分けるような小僧にはまねできない、もはや笑いの神を祀る芸術の境地。
期待してるよ!
しかしどうして自演なんかをライフワークに選ぶかね
この先数十年同じことして生きてく気なのか?
何事も経験だよ、実践してみようよ!
とりあえず、
>>168に対して、「んなわけねえよ! ・・・切れ痔だよ」と返すボールを投げ、
それに対してだからPICを尻穴に出し入れする遊びはやめろとあれほど言ったのに・・・という類の打球を、同一IDで打ってみるところからはじめようか。
↑誰も乗ってこなかったら自分で話膨らませるつもりなの?
ID:Fwlg99eF
構って欲しかったのか…
基地外かと思ってたよ
夏だねぇ
PICが寂しそうだよ。
ワンマンショーがはじまったね。
見てると一本調子で、学校で先生が一方的に退屈な講義をしてるみたい。違うよなー。
少しは自分で調べて見ろよ、とか突っ放したりとかもほしいな。
181 :
774ワット発電中さん:2014/08/25(月) 22:06:29.72 ID:P2da6+rt
初心者ですが質問させてください。
MPLAB X IDE v2.15+XC8+PIC16F1503でプログラムを書いているのですが、PORTCからの出力が一切出ません。
ポートの設定等は間違っていないと思うのですが、どこか間違っているのでしょうか?
よろしくお願いいたします。
下記にソースを表示させます。
182 :
774ワット発電中さん:2014/08/25(月) 22:10:51.41 ID:P2da6+rt
設定
// CONFIG1
#pragma config FOSC = INTOSC // Oscillator Selection Bits (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = ON // Clock Out Enable (CLKOUT function is enabled on the CLKOUT pin)
// CONFIG2
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off)
#pragma config STVREN = OFF // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LPBOR = OFF // Low-Power Brown Out Reset (Low-Power BOR is disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)
#define _XTAL_FREQ 1000000
void p0();
void p1();
183 :
774ワット発電中さん:2014/08/25(月) 22:18:30.86 ID:P2da6+rt
メイン
int main(int argc, char** argv)
{
int a;
TRISA = 0x00;
TRISC = 0x00;
TRISCbits.TRISC3 = 1;
TRISCbits.TRISC4 = 1;
TRISCbits.TRISC5 = 1;
while(1)
{
a = 10;
switch(a)
{
case 10:
if(RC5=0)
{
p1();
p0();p1();
p0();p1();
p1();p0();p1();p0();p1();
__delay_ms(20);
a=20;
break;
}
case 20:
if(RC4=0)
{
p1();
p0();p1();
p0();p1();
p1();p0();p1();p0();p1();
__delay_ms(20);
a=30;
break;
}
case 30:
if(RC3=0)
{
p1();
p0();p1();
p1();p1();
p1();p0();p1();p0();p1();
__delay_ms(20);
a=10;
break;
}
default:
break;
}
}
}
ANSELC = 0;
185 :
774ワット発電中さん:2014/08/25(月) 22:22:23.71 ID:P2da6+rt
void p1()
{
int c;
c=23;
while(1)
{
PORTA=0;
__delay_us(12);
PORTA=0x0f;
__delay_us(11);
c=c-1;
if(c==0)
break;
}
}
void p0()
{
PORTA=0x0f;
__delay_us(600);
}
186 :
natu:2014/08/25(月) 22:29:25.03 ID:3zmHhBa3
>>184 速!
PORTA、Cをデジタルにしておかないと0としか読めない。
初めてのPICスレのほうが、話の質が高いのはなぜ?
向こうが本スレなんじゃね
いろんな意味でここは終わってる。
住人は同じだと思うけどなw
192 :
774ワット発電中さん:2014/08/29(金) 13:08:20.87 ID:lix/i+rs
自作自演の貧乏神が張り付いたスレが終わる。
このスレ以外で元気に活動中だけどな
そろそろ10F222でロータリーエンコーダー読めたヤツが出てくるかな?
10F200だったっけ
196 :
774ワット発電中さん:2014/08/30(土) 13:05:36.34 ID:gAsikmUf
>>192 似たり寄ったりだが言葉としてより適切なのは
貧乏神→疫病神
みなさ〜ん! 疫病神の自覚のない貧乏神軍団が他人に疫病神のレッテルを貼ってdisるスレにようこそ☆
ぶっちゃけ10F200なんかでロータリーエンコーダー読めたところで
CPUパワー使い切って他に何もできなくね?
読んでUP/DWNパルスを出力させるだけでいいだろ。それで全ピン使い切るよ。
PICは、
Peripheral Interface Controllerだからね
へー
>>200 だね。>199みたいな単機能に徹するのがベスト。
複雑な事をさせるのには向かない。
プログラムを作る奴の能力が足らない場合は特にそう。
単細胞自慢
205 :
774ワット発電中さん:2014/09/07(日) 13:19:02.77 ID:AzvFDGhd
10F200なんだろ?
>>203 そう。
PICだとちょっとした事でも小細工しないと駄目だからね。
初心者にはオススメできないね。
初心者にオススメできないと自ら発言しといてそれはないだろ
>>209 具体的に聞かれたらごまかすしかないんだろ
触らなくていいよ
>>ID:gA68KGdU
適当なことをほざく
つっこみ入れられる
それでも黙らずに遠吠えする
一番惨めなパターンだなw
゚ , , 。 . + ゚ 。 。゚ . ゚。, ☆ * 。゚. o.゚ 。
。 . .。 o .. 。 ゚ ゚ , 。. o 。* 。 . o. 。 .
。 . 。 . .゚o 。 *. 。 .. ☆ . + .。
。 . . . . . 。 ゚。, ☆ ゚. + 。 ゚ ,。 . 。 。
゚。゚+゚`, o。。.゚*。゚ 。.゚ 。 ☆+。。゚. ° 。 . , ゚
。, .゚。 + ☆。,゚. o。 。+ 。゚., . ゚ , 。 。 .
゚. o * 。゚。゚.。゚。+゚ 。 。 ゚。 ゚ 。 ゚。 。 ゚。 ゚ 。
゚` .゚ .゚. ゚. . ゚ . ゚
∧,,_∧ 次から気をつければいいさ、ドンマイw
( ´・ω・)∧∧
/⌒ ,つ⌒ヽ) ← ID:gA68KGdU
( ̄(`;______o(___ ( __)___________
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ
ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄ノ ̄
@==@==@==@==@==@==@==@==@==@==@==@==@==@==@==@
ID:gA68KGdU
小細工も出来ない奴が初心者がーとかいうのか
この場合の「おすすめ」ってPIC以外のマイコンのはなしなのか、PICのどれかなのか、どっちだろう?
H8とかだとロータリーエンコーダーを読む機能そのものが付いてたりするが…
PIC24に直交エンコーダ載ってるのがあるからこれのことだな
>>214 そんなもん、スピードが不要なら無駄な機能。
接点式のロータリーエンコーダなんかに使ったら、℃素人が組んだソフト並みに誤動作する。
ま、PICにも付いてるのがあって、光学式のリニアエorロータリエンコーダには重宝するけどな。
趣味のレベルならいつでもいくらでも
乗り換えることできるから好きなの使えば良いよ
使いたいメーカーが10円単位で切り詰めたりサイズを気にするから
こんだけPICも種類あるんだろうし
ここ最近どうしちゃったんだろ。何があったの?
仕事がいっぱい入っててな
>>220 GP8キタ━━━━(゚∀゚)━━━━!!!!
ラダーでDAC作るとフィルタへたくそでノイズ入ってたのよ。
FM音源ふふふf
>220
テンプレに追加だとこんなところでしょうか
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 \380 11Kw/2KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
*◎24FJ64GB002 \340 21Kw/8KB/--- ADC10bit TMR5 UART2 SPI2 I2C2 PWM5 ●USB
*◎33FJ64GP802 \480 21Kw/16KB/-- ADC12bit TMR5 UART1 SPI2 I2C1 PWM4 16bitDACx2 DMA CAN
16bitDACを2ch(100ksps)持ち、DMAまで実装されている。SRAMも多めでオーディオ用って感じですね。
p.s 16bitPICは1命令24bitなので 64KB≒21.3Kw
>>223 そもそも >以下秋月DIP品 というくくりでの話しなんだが
QFPパッケージの使えよ
225 :
223:2014/09/25(木) 18:27:46.34 ID:V2bp3wk1
>>224 このスレの前だったかな
dsPICで補聴器のようなもの作りたいって言った者です
それ作るんだったらピン数少ないほうがいいなぁ
お助け下させぇ
PICKIT3が届きました。早速繋いでMPLAB Xをインストールして
コンパイルが通っていざ書き込みをしたら反応がなく。
仕方ないのでIPEでどうなっているのか見たら
2014-09-29T15:56:44+0900- Completed loading IPE.
*****************************************************
Connecting to MPLAB PICkit 3...
Firmware Suite Version.....01.22.08 *
Firmware type..............Enhanced Midrange
Your PICkit 3 firmware version 01.22.08 is too old. You must have firmware version 01.26.10 or higher to use MPLAB X.
Connection Failed.
と言われてしまい、Advanced Mode にして手動アップデードも試みましたが同じ結果でした。
(そもそもPK3FW_013320,jamで良いのだろうか?)
ファームウェアが古いと言われているようですが、更新出来ません。(´・ω・`)
いかがすれば最新ファームになるのか手ほどきをお願いします。
227 :
226:2014/09/29(月) 16:00:40.80 ID:TzT8A69A
書き忘れましたが、PICは8ピンの12F1822です。
>>228 早速ありがとう。でもここもみたのです。
で、誰も彼もMPLAB IDE XはダメでMPLAB IDE v8.xxを使ってとなるのですが、
環境がUbuntuなのです。(´・ω・`)
まさかWindowsマシンを用意する所から始まるのか…。
なぜかアーカイブスにLinux版のv8.xxが無いのは何か意図があるのだろうか?
>>230 おお、Xからも行けるのか。
結局古いノート出してきた。今セキュリティソフトとかアップデート中w
これが終ってMPLAB入れてアップデートしてUbuntuマシンでもテストして
秋の夜長は楽しそうだ。
>>229 MPLAB Xは、javaで出来た Eclipseベースなのでlinuxでも対応し易いからlinux版がある
MPLAB IDEは、ネイティブのなwindowsアプリなのでlinux版は新たに作らないといけないが需要が少なすぎるからかもね
pickit3でこんなエラーがでています。
助けてください。
PICkit 3 is trying to supply 5.000000 volts from the USB port, but the target VDD is measured to be 4.750000 volts.
This could be due to the USB port power capabilities or the target circuitry affecting the measured VDD.
ちなみに16F1824です
書いてある通りだ
使っているパソコンを窓から投げ捨てるか安物USBハブを窓から投げ捨てろ
もしくは4Vくらいの供給電圧でガマン汁
>>233 その問題は、良く出ます。書いてある通りです。英語を読んでください。
試しに、PICKit3に付属のど派手な赤いUSBケーブルを使って、
直接PCとPICKit3を繋いでみてください。改善すると思います。
PC裏のマザボ直と赤線でためしましたがダメでした・・・
PICKit3から電源供給は、普通しないでしょうから、
チェックボックスをoffにすれば良いと思います。
これから仕事なので、これで。
がんばってください。
ということはPIC16F1824の載ってるその回路に問題があるってことじゃね?
それ以上はエスパーに聞くか回路図出すかで
MPLABXならプロジェクトのプロパティダイアログ出して
カテゴリからPicKit3選んでカテゴリオプションのPower選んで電圧を4.3Vにでもすればいいんだが
マニュアル読むとか検索するとかまず頭と手を使ってくれ
240 :
226:2014/09/30(火) 10:28:25.71 ID:pfy8mDUp
結局WINマシンでMPLAB V8.93でアップデートしたら一発ファームアップデート
その後Ubuntuマシンでも順調に動いています。
ファームアップデートだけのソフトを用意しても良いような?>MicroChip
>>232 \成る程、そういう事情だったのですか。
ここでもイクリプスなのか?、凄い汎用性ですね
今までアセンブラで動かしてた16F84Aを
Cで動かそうとcで作り直したんだけど
同じ基盤なのにcで動かしてる方だけ
異常に発熱してしばらくするとまともに動かなくなる
発熱の原因としては何が考えられるんでしょうか?
プログラムをアセンブラからCに変えたからといって発熱量が劇的に変わるハズはない。
とすれば真っ先に疑うべきは、Cに作り替えた時のミスか、実験基板が複数なら
C側の基板に問題がある。
・基板とプログラムの組み合わせを入れ替えてみて結果を見る
・プログラムリストを何度も見直して本当に同じ処理になっているか確認する
出力設定失敗してるうえに出力が短絡してるのでは?
モジュールやヒューズの設定もありそうだ
>>241 ハードに問題がないなら、I/Oアサイン指定が間違ってて例えば入力にすべきポートを出力にして過大な電流が流れてるとか…
初期化部分だけでもいいのでコンパイラの吐いたasmと元のasmを比べてみたらどうでしょう
PICと基盤の組み合わせを変えても
発熱するのはcで動かしている方だけなので
プログラムの見直しから始めてみます。
皆ありがとう
基盤
基板
気になる。
そうけ?
基盤:infrastructure
基板:printed circuit board, bare board
異常な発熱の原因が解り、解決したのでお礼がてら報告します。
原因は入出力の設定を間違えていました。
動作じたいは発熱はともかく意図した通りに動いてたので
入出力の設定が間違えている事に気が付けませんでした。
ホントに助かりました
入出力間違えて、意図通りの動きをするというのも、何か変だね。
空きピンを全部GNDにつなぐ人かも
間違って出力に設定していたポートBに
ロータリースイッチを繋げていて
カウントダウンを繰り返すプログラムだったんですが
ちゃんと正しい数値を読み込みカウントダウンしてました
ホントなぜ動いてたんだろ
Loを出していたとすれば、Hiを入れられれば熱くなるほど流し込まれるかもしれないが、そこを読めばHiが見えるかもしれない
Hiを出していたとすれば、Loに落とされれば熱くなるほど流れ出すかもしれないが、そこを読めばLoが見えるかもしれない
16F84は常に出力ピンの状態を取り込むから出力バッファが有効でも外部から強制的にHにもLにもできる
出力バッファも死なない程度にがんばる強さにできている
生でVDD,GNDに落ちていたら、電源電圧が落ちると思うけど。
電源にわざと10Ωくらいの抵抗を直列に入れて、オシロで電源電圧を監視すれば、
PICが発熱するような「生落ち」は見つけられると思う。
256 :
natu:2014/10/03(金) 21:46:45.62 ID:NBi4SXZq
定電流
257 :
natu:2014/10/03(金) 21:48:22.26 ID:NBi4SXZq
ボタン押してもた
定電流回路があるので電源落ちる程にはならないかも。電源ギリだと駄目だけど
>>257 その定電流回路って、PICの中にあるっていうこと?
出力インピーダンスのことを言いたいのだろうとエスパー
定電流入ってるの?
261 :
natu:2014/10/04(土) 09:31:11.18 ID:pS2kdC7l
OutputピンをHiにしといて電流計でGNDとショートさせると
40mA弱で止まってたんです。制限されてると考えたが…
CMOSの特性かな?
262 :
natu:2014/10/04(土) 10:00:45.80 ID:pS2kdC7l
勘違いかと手元のF675でやってみた。
HiをGNDと電流計でショートすると37mAだったけれど
Loを+5Vとショートすると72mAになってる。
以前の発言を撤回します。ごめん
>>262 Nch,PchのWは非対称に作ってある。なぜかは宿題です。
>>262 いい実験してるね。ありがとう。
もう一歩踏み込んで、
37mA, 72mA一定(?)と思われるときに、電源電圧を変化させてどうかを見ると満点でした。
電源電圧変化させても一定電流なら、(意図しているかどうかは別として)定電流特性がある。
>>264 宿題を出す人は、あとで解答を提示する必要がありますが、
そこは大丈夫ですか?
ああ、あれは偉そうな「教えて下さい」だな
270 :
natu:2014/10/05(日) 10:37:04.99 ID:tzMVniGd
>>265 4VだとHi→GNDで17mAになったので定電流特性は無いみたい。
ゲート電圧とドレイン電流との関係だけみたいだね。
ずーーと、過電流保護が入っていると思ってましたわ。
>>270 わざわざ、ありがとう。感謝するよ。
やっぱり定電流じゃないのね。覚えて起きます。
それにしても、ありがとうね。
出力に定電流を付ける意味は、少ないと思う。
巨大コンデンサを直接接続されたときに、電源電圧が生落ちしないように、、、か
基本的にFETは定電流だよ。
ただ、スイッチング用途では飽和する手前で使うから見えないだけで。
1.8Vくらいで使えば定電流になってる部分が見える
5Vくらいで使うとほとんど抵抗器
>>273 そういう見方をするなら、トランジスタだって定電流だと思うけどね。
IbのhFE倍で一定になる定電流ね。
>>273 は接続が違うっしょ
DG直結オンリーしか頭にないんじゃ?
ジャンクションFETならGSショート
なんせ、定電流ダイオード自体がJFETのGSショートだからな
定電流安定度や定電流性が確保できる電圧の低さはJFETの方が一般的に上だけどね
Digi-KeyでデプレッションタイプのMOS-FET見つけようとしたら
デプリーションなんだな。
結構品種があったけどRSとか秋月とかでは見つからなかった。
>>280 Digi-Keyが品数豊富なことは認めるけど、
FETの分類に、デプレッションは無い。デプリーションね。
デプレッションは、「がっかりする」という意味。
よそで恥をかかないように注意。
>>281 日本でデプレッションでは恥はかかないね。それが一般的だから。
まあ、MOSFETの原理を知ってればそれが空乏(層)を意味していることから
depletionと素直に覚えられるんだと思う
普通に鬱病だろ
デプレッション
でぷれっしょん
depression
うつ病, 低下, 抑圧, 抑欝, 抑制, うつ, うつ状態, 鬱, 鬱病, 落ち込み, 抑うつ, 抑うつ状態
>>282 知っていて「デプレッション」と言うのと、
知らずに「デプレッション」と言うのとでは全然違うので、知っていることが重要。
ネタ追加ですねぇ。超既出のは
誤:イマジナル・ショート
正:バーチャル・ショート
イラネ
depression なら凹むとかの意味もあるよ。
depletion デプレション
depletionの発音はカタカナで無理矢理書くとディプリーションが近いかな
そうそう。
デプレッションだと、de press ion だよね。全然違う。
>>282
多くのマイコンでBCD演算用にDCフラグ、ハーフキャリー等のフラグを持っていますが
C言語等がメインになった現状ではもう使われ無いのでしょうか?
PICの割込関連を調べていた時に気づいたのですが、PIC24,dsPICは割込発生時に
PCとSRL(ステータスレジスタL)を自動で保存しますが、DCフラグはSRHにあるため
保存されません。
Cで割込ルーチンを書いてアセンブラソースを見ましたが、SRHを保存するような処理は
追加されませんでした。
>>294 割り込み時にハード的に待避されるレジスタの他に、追加で待避するレジスタを指定出来る。
多くの割り込み処理では、BCD演算はしないからだろ。
>296
レスありがとうございます、save(レジスタ名)で追加保存出来るのですね。
void __attribute__((interrupt, auto_psv,save( SR ))) _T4Interrupt(void)
上記でPUSH SR と POP SRがつかされました。
>多くの割り込み処理では、BCD演算はしないからだろ。
割込処理内でBCD演算をするわけではなく、割込で中断された
元の処理がBCD演算補正(DAA)の直前だった場合、割込処理内で
DCフラグが不明になってしまうためです。
DCフラグは通常の加減算やINC,DECで変化するので、よほど単純な
割込処理でなければ保持するのは困難かと思います。
16F1823、10円値上がったな。円安のせいだろうな、
デプレッションだろうが、デプリーションだろうが
FETの特性として何なのかわかってれば関係ないだろ
デプレッションといえば、NYSEがそろそろかもね
未だにMOSの記号がよく判らん
円安で物価は上がったけど給料は変わらないのでアベノミクスなんて虚構だと思った…。
>>299 >デプレッションだろうが、デプリーションだろうが
>FETの特性として何なのかわかってれば関係ないだろ
違う違う。
デプリーションだということを知った上で、みんなに合わせてデプレッションと言うのはいいけど、
デプレッションと信じ切って、使うのが問題だと言っている。
ま、デプリーションと正しいことを知っていれば、デプレッションなんて言わないと思うけどね。
英語とカタカナが一対一で対応するとでも思ってるの?
言葉遊びはもういいよ
SCSIの読み方祭りをしていると聞いて来た
ASUSの読み方よりは簡単だ
PICスレらしくCLKRCONやADDULNKの読み方を議論しようぜ
どうぞやってください
309 :
774ワット発電中さん:2014/10/13(月) 16:35:55.31 ID:/5SNmkrR
そういうことで、
>>282は、考えを改めたほうがよろしいかと。
310 :
774ワット発電中さん:2014/10/13(月) 16:43:23.06 ID:nMejOsku
哀れ
どうやったらそういう結論になるんだ
313 :
774ワット発電中さん:2014/10/13(月) 19:49:41.10 ID:YiunqPjg
カタカナ表記ごときがどちらかに統一されたら幸せになれるとでも思ってるのだろうか
語尾おはイヤだけど、デプリーションは許せる
発音記号上はディプりーシぁンだぬ
>>316 d??pl????????n だろ、ゴルァ
化けるかもしれんが。
,,ll' ,,,,, ,,,,, ,,,,,,,,,,, ,ll'
,,ll' llllll lllll ,lllll'' 'lllllll' ,llll''' 'llll, lll'
,ll'' llllll lllll ''''' ''ll' ,llll' ,,ll'
,,ll' ,,,lllllllllllllllllll ,lllllllll lllllllllllllllll,,, lllll llll ,llll ,,,llllllllllllll,, lllll,,,lllllllllll,,, ,ll'
,ll' ,llll' 'llllll lllll lllll' ''lllll llllll llll ,llll ''''' 'lllll, llllll'' llll ,ll''
,ll' lllll llllll lllll llll llll llllll llll ,l, lllll ,,,,,,,,,,,,,,,,,llllll llllll lllll ,,l''
,,ll' 'llll,, ,,llllll lllll lllll, lllll' llllll llll ,,llllll,, lllll 'llll,, ,,llll' llllll lllll ,ll'
l' '''lllllllllll'llllll lllllllll lllllllllllllllll''' llll' llll llll' '''llllllllllll'''' 'lllll lllll ,ll''
lllll 'lllll,,,,,,llll' '
''''' ''''''''''
>>312 検索ヒット数
関連検索キーワード
カメラじゃねえ!
キャメラだ!
と同じに思えるんだけど
そうか?deskをディスクと読むのと同じ違和感だな
>>318 どちらが英語の発音に近いかではなくて、どちらが一般的に通用
してるかが問題だろ
そういう問題ではない
デプレッション だと depression(不況、沈下、低気圧) でそ。
depletion(枯渇,消耗) は撥音にはならんでそ。
大手半導体メーカーでさえ、デプレッションとかディプレッションと言ってるから、
日本ではそれでいいのかも
ただ、面白いのは英語併記してるところはほぼ例外なくdepletionと正しく併記している
つまり、depletionをデプレッションと発音すると思ってる人が多いのかも
アッテネーター(attenuator)と同じ類いの話だねきっと
もういいから今週一杯はこの話題で盛り上がってくれや
carburetorをキャブレターと書いた奴も連れて来たい
日本語がなまじ柔軟性に富んでいるゆえの問題か。
デプレッションは日本語、ディプレッションはJapanglish、って事でFA。
>>322 そういう問題だよ
今更、ミシンを(ソーイング)マシーンと言えと言われても困るし
でも、JISのヂスクグラインダは
ディスクグラインダに改まったよ
オシロスコープの表示を、日本語にしてる人って、見ててイライラしないか?
on オン
off オフ
Normal ノーマル
position 位置 頼むよ、オイ って感じ。
せっかくならかっこいい熟語でお願いしたい
ONとかOFFって、文字を読んでないでしょう?
文字を象形的に見ていると思う。それをオンとかオフって言われても、
一旦読んで音にしてONに変換して、やっとonだとわかる。
本当に日本語にするなら、
Power ON-OFF 電源 接=断
connector 接栓
コイル 線輪
オシロ 陰極管掃引波形表示器
>>330 それって日本語に訳したんじゃなくて、単なるカタカナによる英語の「音の写し」だよな。
PC関連もそんなのばっかり。代表的なのが日本語BIOSでの表記。
もっとも略語以外の全てを丁寧に翻訳されたらチンプンカンプンかも知れんがなw
IDE Primary/Master → IDE プライマリー/マスター → IDE 一次/主
それなんて日電説明書(for日本電電)?
>>328 それは単なるカタカナ表記の問題
今問題としているのは、
depletionをdepressionと勘違いしてること
それはお前だけだよ
>>335 depletion と depression を使い分けてる俺スゲーって言うのはわかったから、そろそろどっかに行ってくれないかなぁ
イマジナリ・ショートが正当化されましたwww
メニューバーをカタカナ表示にしただけで、日本語版と言い切るWinソフトがいっぱい
なるほど、ここの主は英語が得意なんだね。それで何時もdataを読めというわけか。
今度英語の質問してみようっと、どのくらいできるのか。
>>341 ファイルメニューのツールオプションからプロジェクトのユーティリティを選んで・・・
ってか、それ以前に、エディタで文字化けとかやめてくれ。
344 :
774ワット発電中さん:2014/10/14(火) 13:40:58.95 ID:ylKU/eNC
俺の知っている会社の社長(日本人、英会話が出来るのが自慢)はcopyをカピィと発音する。
「オーイ、誰かこの書類のカピィをとってくれ」
カピィだけなら笑って済ませられるけど、社長の主義主張が原因で社員から顰蹙をかっている。
「コピィなんて発音するから日本人の英語はダメなんだよ」
シャチョのカピィ
シャッチョのパンツ、カピィカピィ〜
シャチョサン
コピチュセヨ〜
カピィなんていってるからダメなんだよ
× カピィ
○ ゼロックス
350 :
natu:2014/10/14(火) 20:59:17.74 ID:vsOz0Mu/
私の時代だとカピィは、『白焼き』と『青焼き』の二つ
糞ったれ安倍のおかげで、PICも値上がったなー
この手の発音って
英語だけじゃなくて、ドイツ語とかが元になっている場合あるんじゃないの?
医学用語がドイツ語発音だらけみたいにさ
depletion ってドイツ語発音だと
デプレッションって聞こえる
研究開発論文がドイツ人記述だと、学術的にはドイツ語発音になるんじゃないの?
どうなんだろ
マジか!
>重要なメッセージ
>PCのパフォーマンスが低下しています
>今すぐ修復
googleに通報しようとしたら報告もドイツ語だったので諦めた
ディプレッション、デプリーション、デプレッション、デプレション・・・
どれが正解なのか気になって寝れないじゃないかw
だからディプリーシァンだってばよ
個人的にはフランス語の発音が
エロチックに聞こえる
ムフ〜ン。カピィ
ドイツがデプレッションならデプレッションでいいや
やっぱドイツだよね
depletionだと知ってて、それを平然とデプレッションと読むような奴は
中学からやり直すべきだな
今朝と同じ事しか言えない無能
あれだよ、'正しい'発音とやらでdepletionを発音したら同級生あたりにバカにされた腹いせだよ
WBSによると、Microchip の業績が下方修正
デプレッションがだめという人はチャンネル、ラジオ、テレビ
も許せないんだろうな
「にちゃんねる」なんて有り得ないだろ「トゥ チャネル」なw
ドゥシィブゥ
メクダナルズ = Macdnald ね
じゃあ2ちゃんねるから出て行け!
depressionという単語もあることを知ってたら、
depletionをデプレッションなんて読めないのが普通なんだが
それで混乱は生じないから問題にならないだけで、
恥ずかしいことには変わりない
そんなに悔しかったのかよ...
引っ張るねぇ〜(苦笑)
日本人が日本国内で日本語を使っている限り何の問題も無い事柄に拘りたがるのは何故?
PIG専用のスレ?
374 :
774ワット発電中さん:2014/10/15(水) 12:29:01.94 ID:BPdWnOjn
>>日本人が日本国内で日本語を使っている限り何の問題も無い
日本国内でアメリカ人と組んで仕事をしたことがあるのだが(彼=SE、私=プログラマ)、
いくつか通じないカタカナ英語の専門用語があって困った。
たとえばフェップ。言われて理解するまで3秒ほどかかった。
>>372 MOSFETは金属酸化膜半導体電界効果トランジスタだから
「Tのトランジスタ」を漢字で書けない><;
ていうか、depletion型は漢字で書くとすると、どうなるん?
FETスレでやれ
鉱石ラジオでも作っていろ
自作はゲルマニウムラジオからかなぁ
379 :
774ワット発電中さん:2014/10/15(水) 23:23:50.01 ID:oCqQ0kGv
PICを鉱石の代わりに使ってもラジオ聞こえるんじゃないか
dsPICのADCに、アンテナとコイルとバリコン直接つなげばOK。
>>380 同調回路さえ dsPICでやってもらうのはダメなの?
下げ!
>>381 サンプリング周波数の1/2以上の成分入ってきたら、どうしようもない。
戸越公園の近所で315Mhzの電波出してるかた、強すぎますよ。
何故にこのスレ?
387 :
774ワット発電中さん:2014/10/19(日) 23:52:37.63 ID:9C1opAtJ
だれかUSB内蔵のPICをUSBシリアル変換モジュールとして使って
Raspbery Pi上で/dev/ttyACM0として認識されて使用している人いますか?
こちらではRaspberry Pi側からecho hogehoge > /dev/ttyACM0ってやってるんですが、
最初の一発だけはPIC側に反応があるんだけどあとは反応なしという状態
>>387 まぁ、あれだ。エンドポイント弄りで失敗していてNAKの連続なのだろうさ。
>>387 ストップビットがあってないのでは?
的外れならごめん
とりあえず、USBのプロトコルアナライザーを繋げ
>>387 Windows とか CentOS なら繋げたことある。
普通に通信できたよ。
製品にするにはUSB IDをとらなきゃいけないので
コスト的に見合わなくてUSB-Serial変換IC入れたけど。
>>393 なにぃいいいい?マイクロチップも遂にPSoC的な路線に行き始めたか。胸熱
8bit DACも入ってるのか
これはヤバいな
速攻で買う
>393
16F1705目立たないけど、色々な新機能入ってるよな。
ちょっと前から入りだしたCLC(Configurable Logic Cell)
CWGから改良されたCOG(Complementary Output Generator)
16bitPICにあったPPS(Peripheral Pin Select)
最近のMicrochipは16F系に気合入ってる。
逆に18F系は終わってしまった感が流れてる。
DACから直接スピーカー鳴る?
常識的に考えればアンプが必要
GPIOをPWM駆動すれば、小型スピーカーくらいなら直接鳴らせるかもしれんが
>>398 内蔵オペアンプをバッファにできるから小さい音くらいなら出せるかもしれない
>>396 18の利点
・フラッシュ最大容量
・乗算器
・優先度付き割り込み
位か。
18F特有の機能も16F1でかなりカバーされちゃったからなあ
間接レジスタ3組 → 2組だけだけど導入
一続きのメモリ空間 → 間接アドレッシングでのみ導入
間接アドレッシング++/-- → moveでだけ可能
テーブルリード → 下位バイトのみ間接アドレッシングで可能
このギリギリまで機能切り詰めてどうにかミッドレンジに収めた感がすごくPICらしくて好き
土地さえあれば大きい家に何でも置けるのは判ってるけど、
敢えてワンルームに全部入れてみる
>>393 PPSがとてもうれしい。余ったピンを全部サーボ用PWMにできる
>>404 定数テーブル作った時に効率が良いと言うのもあるな。
あと、EMB付きなら2MBのプログラムエリアに対応というのもあるが、用途が思い付かない。
409 :
774ワット発電中さん:2014/10/30(木) 14:17:56.28 ID:EdzZ+9Gh
俺PIC厨だが色々やってきて、8bitを卒業して、
16bitへ進学することになりました。
みんな、達者でな。
卒業する必要ないだろ
411 :
774ワット発電中さん:2014/10/30(木) 14:29:43.20 ID:h2lEfNc5
学校でもないのに「卒業」って言葉を使うのは甘え
MC14500Bを16個とか
卒業だけが理由でしょうか?会えなくなるねと右手を出して〜
さみしくなるねー それだけですか?遠くで友達呼んでますね
流れる季節たちを微笑みで送りたいけれどぉおおおおおおお(熱唱)
ごめん、一足先に32bit・200MHzのPICに進学しちゃった
> 学校でもないのに「卒業」って言葉を使うのは甘え
脱退とか、クビとか、謹慎とか・・・
>>412 外付けプログラムカウンタがとんでもないことに・・・
卒業証書抱いた傘の群れに紛れながら、
卒業っていいつつ中退だよな
童貞中退だ と・・・?!
自主退学じゃねぇの
秋月に10F322のちっこいやつ入荷したな。
これは何かちっこいもの作りたくなる。
新商品にも再入荷にも載ってないのによく見つけてくるな
222がまだ残ってるけどきっとポチるわ
中の人だもの
広告料取られないの?いいねえ
あき○きのURL貼ったら請求きたよ
そういう検索はしたこと無かったな。「新商品」を見て、何かPICが1個載ってる時は
大抵同時に数種類入ってるからそこでPICを発売日ソートしてる。
>>431 ほう、そういうこと?
知られずに買われないリスクと天秤にかけてどうなんだろうね…
もし、そういう目的なら、全部表示して、おすすめマークでもつけて
びかびか光らせるか、おすすめ商品リンクでも作った方がいいような
気もするけど
>>431 そういう感じではないねえ
担当者の手抜き仕事って感じw
いずれにしても「新商品」がすべてを網羅してないことに気づけて良かったよ
10F322ってMid-rangeのだけど、EnhancedMidrange(16F1シリーズ)の
機能をだいぶ取り入れて使いやすくなってるんんだな。
1.024V固定電圧(FVR)や温度計。状態変化割り込みはbit毎に立上り/立下り/両方を
選択できるし、書き込み時のコマンド Reset Addressにも対応している
CLC,NCO,CWS等の新機能もついてる。
小さい割に豪華
435 :
774ワット発電中さん:2014/11/01(土) 19:47:37.56 ID:Z4Ax2ZNf
>>409 32bitのほうがいいんじゃね?
各種レジスタ超便利だよ?(´・ω・`)
クロックDCってどういうこと?
AC特性でオシレーターの周波数のMinimumがDCって事なら0でもOKって事
逆に例えばMinが0.1MHzとかになってるとそれより遅くすると動作保証外
PIC絡みでクロックDCって事ならそういう話だと思うけど違ってたらスマソ
10F322、DIP版のほうが安いじゃないか
意味無いな〜(オレには)
価格差10円に意味を見出そうとされても困るw
>>437 無知ですいません。データシートに
When an external clock input is used, the “max” cycle time limit is “DC” (no clock) for all devices.
って書いてあるんだけど、クロック無しの状態では動作を停止するって事ですか?
停止といっても動作状態にはあって
そのままクロック再開すればプログラムの続きから動き出す
DRAMみたいな揮発デバイスがないからクロックが
途方もなく遅くても動くよってことでしょ
>>440 >一個欲しい時は大きな差
はあ?
100個欲しい時は大きな差っていうならわかるが?
悪いがおれもそれ思ったw
4個入りでしょ
45円と220円の違い
んじゃ、DIP買っとけ
>>442 なるほど。スリープじゃなくてサスペンドみたいなイメージですかね。
ってことは、クロックをダイナミックに制御するような使い方も想定してるって事なんでしょうか?
クロックを停止させる目的の多くは消費電力を下げることで、電源の電池
の交換周期を伸ばすこと。
その目的の実現方法の一つに動作周波集を変えるテクニックはあるが、
どちらかというと発振器からの入力クロックを分周することで、動作周波数を
最大動作周波数の1/nに落とす使い方をする。
ダイナミックといえばダイナミックだが、外部の発振器の発振周波数を
アナログ的に変化させる訳ではない。
>>447 >クロックをダイナミックに制御するような使い方も想定してるって事なんでしょうか?
そうじゃなくて、内部がスタテイックにできてるからクロックの下限はない
という意味。
>>448-449 なるほど!ありがとうございます。
省エネスリープの代わりにクロックぶつ切りみたいなことしても平気だし、
極端な話数Hzオーダーのクロックで数年スパンで動作させるなんてこともできるよ、という事ですね。
ありがとうございます。
そういえば、クロック遅くするより間欠動作の方がいいかと思ったけど
以前 PIC12F683とかに実装されていたULPW(Ultra Low Power Wake-up)に
相当するものはPIC16F1シリーズには搭載されていないのね。
スリープするとTMR0,2,4,6は止まっちゃうし、TMR1は外部クロックカウント時のみ有効
PIC16F1シリーズで内部クロック動作時、間欠動作(10ms稼働後990msスリーフを゚繰り返しとか)を
行うとしたらどうすればいいのだろう? WDTでリセット後 初期化しないとかかな
ULPWって外付けコンデンサに充電するやつだっけ。
XLPのLFならWDT電流がかなり減ったから要らないって判断じゃないかな。
>>451 スリープ中のWDTはリセットというよりsleepの次の命令から実行する
だけだからね
スリープを入れないPICなんて
サーボやモーターぶん回す為にPIC使い始めた頃は
スリープなんて考えもしなかったな・・・。
まじレスすると
「クリープを入れないコーヒーなんて」
なんだよ、元ネタは
おじさんしか知らないと思うが
457 :
774ワット発電中さん:2014/11/02(日) 18:40:04.95 ID:S3+bWATf
あーっ!
「それはブラックで飲むコーヒーみたいだ」とツッコもうと思ったのに
バラしちゃうんだもの、も〜。
(作者注:これがホンマモンの<後出し>です)
>453
そうかsleep中のWDTはリセットじゃないのね。
>WDT Reset PC←0
>WDT Wake-up from Sleep PC←PC+1
WDT消費電力も確かに減ってますね
>12F683 Watchdog Timer Current: 1μA @ 2.0V, typical
>12F1840 Watchdog Timer: 500 nA @ 1.8V, typical
ULPWだと200nA位らしいけどI/O1本潰して外部にリークの少ないコンデンサが
必要で時間制御がほとんど出来ないってのは使い勝手が悪すぎるか。
MPLAB XでICD3がどんなにあがいてもコネクトできない。usbdriverの設定
が異常だとおもうのだが
ディレクトリのswitcher/32bit/winusb/の下にあるx86 とx86_unsignedの
違いってなんですかね?
窓8ファミリだったという落ちじゃね
窓8ファミリーってなに?
つかMPLABでは書き込みできるのを確認してる。同じターゲットだよ。
それがなぜかMPLAB Xでは書き込みできない。
コネクトでエラーが出る。ファミリーでUSBドライバーが違うってことは
ないだろ。
PCをXPからwin7に新調したんだ。XP側にはMPLABが入っているがこちらでは
なんの問題もない。WIN7にMPLAB XをいれてコンパイルはOK、シミュレーションも
OK。唯一ICD3へのコネクトができない。
>>461 それうちでもなったことあるよ、ドライバの切り替えがソフトでできないせいでなってる。
MPLABのあとにX版を入れた時になった。
対処としてはドライバを手動で削除してからX版のドライバを手動で入れるといい。
MPLAB xをアンインストールしてPCをリセットする。
再度インストールする。
ICD3をターゲット(16F1938 )にセットして、電源を入れる。
ICD3のUSBケーブルをPCに接続する。
自動的にドライバーが設定される。
次にIPE V2.25を立ち上げて、16F1938を選択する。
ICD3を自動認識しているのでconnectを行う。
以下のメッセージがでてコネクトエラーになる。
*****************************************************
Transmission on endpoint 2 failed
Connection Failed.
If the problem persists, please disconnect and reconnect
the ICD 3 to the USB cable. If this does not fix the problem
verify that the proper MPLAB X USB drivers have been installed.
ターゲットはMPLABでは同じICD3で書き込みできることを確認している。
次にデバイスマネージャーでMicrchipToolsのMicrochip WinUSB Device
を選択してドライバーの更新を行う。以下を参照して更新する。
C:\Program Files\Microchip\MPLABX\Switcher\32Bit\winusb
「最新のドライバーがすでに設定されています」のメッセージが出る。
再度コネクトしてみるが同じようにエラーが出る。
464 :
natu:2014/11/05(水) 18:42:55.38 ID:S7UqSejg
>>463 MPLAB driver switcherでドライバー切替えてもダメ?
>464
うん。だめ。switcherはMPLABとMPLABXの両方がある場合だけの切り替え
が目的だから、MPLABをインストールしてないPCではエラーが出る。
あーもうダメ。全然書き込みできない。もうあきらめてARMにする。
どうぞどうぞ
切り換えなきゃ
ユニバーサルプログラマの1台くらい持っておくもんだ。
>>461 とりあえず、Win7ProならXPモードで動かすといいかもな。
うちは開発環境は全部仮想マシン下だ。
これだけ話聞かないんじゃなー
471 :
774ワット発電中さん:2014/11/09(日) 17:36:21.71 ID:xel7Ktjx
linuxに組み替えてMPLABXつかおうとおもったら、インストール方法がウインドウズと全然違って
とまどったw
端末上からコマンドで入力しないとインストールでけないとか・・・・
あせったw(´・ω・`)
472 :
774ワット発電中さん:2014/11/09(日) 17:38:05.93 ID:xel7Ktjx
linuxでprtScボタン押すとシャッター音鳴って、なんかカメラみたいなんやけどwww
おもろいで!(´・ω・`)
まずどのLinuxかを書こうか。
474 :
774ワット発電中さん:2014/11/10(月) 22:59:31.56 ID:7LTjtD+L
ubuntuで
テスト書き込み完了!
ファームウエア書き換えがなんか何回もやんないとうまく行かなかったのはなぜなんだぜ?(´・ω・`)
ケーブルが劣化してんのかな?
475 :
icd3つながらない:2014/11/12(水) 16:40:41.69 ID:/9lS+V+y
462>
MPLAB 8をインストールしていて、XをインストールしてICD3にプログラムを
書き込もうとしたら、
If this does not fix the problem verify that the proper MPLAB X USB drivers have been installed.
がでます。
手動でとかって、どうやるんですか?
1行目は安価なのか…
476>
>一行目は安価なのか…
あれは、引用するときの書式だぬ。
478 :
icd3つながらない:2014/11/12(水) 16:58:23.85 ID:/9lS+V+y
>>477 失礼
久々にPICでプログラムしようと思ったら、MPLAB Xに環境変わってたので
Xをインストール。XC8もインストールしてビルドまでOK
が、書き込もうとしたらエラ
Win7で、デバイスマネジャには、Microchip tools->Microchip WinUSB Device
となってます。
何かヒントを
>>478 丁度先日あたりにマルチポスト君が同じ質問しまくってたYO
興味が無いので飛ばし読んでいたため解決されたのか知りませんが
類似のPICスレを読まれてみてはいかがでしょうか。
480 :
icd3つながらない:2014/11/12(水) 17:06:56.64 ID:/9lS+V+y
∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
484 :
774ワット発電中さん:2014/11/16(日) 00:41:03.85 ID:CdB84Ufd
Z80でバリバリゲームが作れてたんだから当たり前
>>485 Z80Aで1MIPS位か。
とはいえ、ゲーム機はハードでグラフィックスやサウンド処理のかなりの部分やってるからな。
背景のセラミックパッケージLSに目が行ってしまう
8bit じゃないのか、つまらん。
489 :
774ワット発電中さん:2014/11/16(日) 11:11:15.25 ID:ftxACFIE
ビデオコントローラ的なの使ってないみたいだけど、どうなってんの??
>>489 抵抗の分圧とポートをソフトでパタパタさせてるだけと思う
100DMIPSのPIC32MXを25個買ってきた、何を作ろうかなっと
初代プレステがMIPSのR3000コアの33MHzだった事を思い出すと感慨深いものが。
>>489 DMAを駆使すれば、グラフィックス表示はそれほど苦労はしない。
NTSCはそんなに単純じゃないと思うが
帰線期間に計算して表示期間は表示するだけになりそう
>>494 規格上受像器側のマージンが大きいからかなりいい加減なNTSCもどきでもちゃんと表示されるよ。
pc-88xxとかは、ビデオ用IC積んでたのけ?
あれって、Z80だよね?
キャラジェネね
501 :
774ワット発電中さん:2014/11/16(日) 18:04:23.05 ID:CdB84Ufd
動画見てないかもしれないけど、画面回ってるよ。pc88ではありゃ無理だよ。
5Mピクセル/sくらいの能力要るから100MHzのCPUでもやっとの世界
8801の時代ならHC74xxxのロジックIC並べて挑むことになるけど不毛だ
>>502 27MHz位でデータ吐き出せれば、カラーのNTSCは可能。
DMA設定すれば1ライン毎に割り込み処理すれば良い。
バスの速度はもっと速いし、キャッシュもあるから、DMA中でも、そこそこの速度は出るだろう。帰線帰還中はフルで動ける。
でもDMAするには、メモリに信号データを入れとかんといかんけど、
それを生成する時間もいるよね。静止画ならともかく。
あー、DACにDMAで吐き出すとかできるのか。
27MHzの根拠が分からんのだが、3.58*8=28.64あたりの間違い?
元の画像データからNTSCへの変換をPICでやって間に合うのか?
DSPICでDMAを使う場合は、予め専用の領域にデータを置いておく必要があって、仮想VRAMからのメモリコピーに結構時間が掛かると思う
32シリーズは、そういう制限無いの?
DMA使ってないんでは?
ソースがあったから見てみた。どっちかというと、職人技っぽいな。
>>508 PIC32は普通のマイコンと同じバスだからな。
>>508 制限はないが、チューニングが必要な場合はあるようだ。
BMXWSDRM: CPU Instruction or Data Access from Data RAM Wait State bit
1 =Data RAM accesses from CPU have one wait state for address setup
0 =Data RAM accesses from CPU have zero wait states for address setup
bit 2-0 BMXARB<2:0>: Bus Matrix Arbitration Mode bits
>>512 CRC: 16-bit with DMA
>>512 データシート見ても16bitの掛算3回と加算が何サイクルで計算できるのかまったく分からん
それより「High Current Source/Sink: 2 x 100mA I/O」ってのが画期的だ
PWMでスピーカー鳴らすとAVRやARMとくらべて貧相だったPICの弱点がやっと解消された
>>515 パワーLEDでLチカ出来るのがメリット
>>515 Vdd-0.7V @ -54mA
0.7V @ +54mA
2本まとめて、+/-100mA @0.7Vですね。
なに、そこいらのだって4本まとめてふんばれば、100mAぐらいなんとか・・・・
>>518 別に、今のでも100mAぐらい出せると思うよ。
問題は、電圧が取れくらい低下するか、じゃないのかな。
それを使わずにできることに、意味があるのに。
それはレアケース
質問です。
6.553675MHzのクリスタル振動子の使い方について教えてください。
256×256分周の場合、もし「6.5536MHz」であれば100Hzが出力されるので
いいはずなのですが、なぜ中途半端な周波数で販売されているんでしょうか??
分周すると、100.001144...Hzになってしまいます。
スレチ
>>523 それは、16*16のために作られたわけではない、ということです。
6.5536MHzとして作られて、それ以降の桁はただの誤差
527 :
523:2014/12/03(水) 23:52:06.10 ID:RD2w4Voe
わかりました。目的が違うんでしょうね。ありがとうございました!
>>526 PLL発振器って切りのいい数字の整数分の整数倍になると思ってるんだけど、
探しても6553675ができる値が見つからないんだよなあ。
10M*116/177=6553672が近いんだけど。
何に使うんだろう
気になる
>>529 これ1以上のどんな値を入れても「対応可能」って言って
小数点以下6桁そのままの値で帰って来るんだけど信用できるのかな…。
よってたかって質問者をいじめる体質。怖くてだれも質問しないよなー。
質問おねがいします。
C言語でPICを勉強中です。
例えば、PORTB(全8ビット)はbit0から7まで全てONにした場合、unsignedshort型(0-255)のValueという変数に
Value = PORTB; とすると、
Valueの中身は255になるのですが、bit0からbit3まで入力使用し、bit4からbit7までは出力で使いたい場合はどのようにコードを書けばよいのでしょうか?
実はValueの最大値は15までで十分なので残りのbit4からbit7は不要なんです。
よろしくお願い致します。
535 :
534:2014/12/08(月) 19:40:59.33 ID:jgxzA4FR
すみません訂正します。
>Valueの中身は255になるのですが、bit0からbit3まで入力使用し、bit4からbit7までは出力で使いたい場合はどのようにコードを書けばよいのでしょうか?
>実はValueの最大値は15までで十分なので残りのbit4からbit7は不要なんです。
正しくは以下の通りです。
Valueの中身は255になるのですが、bit0からbit3まで出力で使用し、bit4からbit7までは入力で使いたい場合はどのようにコードを書けばよいのでしょうか?
実はValueの最大値は15までで十分なので残りのbit4からbit7は不要なんです。
何をしたいのか全然わかんないよ。
入力を知りたいの?
bit4 は Value の bit4 に入ってるでしょ?
下4bit入らなければシフトして捨てるとか。
unsigned short じゃなくて unsigned char だよね?
>>535 その port の仕様見ないとなんとも言えないが、入出力が混在しているポートの場合、たいてい入力にあたるビットはなに書いても捨てられる
まれに例外あるけどね
538 :
534:2014/12/08(月) 20:42:03.87 ID:jgxzA4FR
>>536-537 すみません。
自分でも読み返したら意味不明な書き込みだと思いました(汗
ビット演算の&を使ってマスクすれば解決できそうです。
しばらくCは触っていなかったので何をどうやればいいのかパニくってました・・
スレ汚しすみませんでした。
unsigned upper4;
unsigned Lower4;
upper4 = PORTB >> 4;
lower4 = PORTB & 0b00001111;
おいらPICではアセンブラ星人だからよくしらんのだけど
PICのCはビット・フィールドに対応してないのん? (・ω・`)
struct {
unsigned char b4input : 4;
unsigned char b4output : 4;
} BiDirectIO;
みたいなヤシ
対応しているよ
dクス。
ぢゃぁフィールドを(実装に合うように定義して)使えば
マスクとかはコンパイラがやってくれんじゃね(^ω^ )
実際そうなってるよ
MPLABについてくるCCS-Cのベースラインコンパイラ(PCB)で使える一番性能のいいやつってどれ?
多ピンは外部クロックが必要だけど、16F716が秋月でも買えていいと思うんだけど、もっとA/Dが付いてたり、16F5xシリーズみたいにピン数が多かったりするのってある?
いっそ33Fを使うとできる幅が広がるよ
>>544 >CCS-Cのベースラインコンパイラ(PCB)で使える一番性能のいいやつってどれ?
CCS-Cのフォルダーにあるdeviceリストに載っているものが使える。
あるいは、CCS-Cのページに書いてあると思うけど。
dsPIC33EVの発表で、
16bit70MIPSのDIP28PINのPICも5V対応だからなー
CCS-Cは某氏の書籍に世話になったけれど、
これから新しく組むならXC系のフリー版で組んだほうが、
先のこと考えたら良いと思う
CPU間の乗り換えも楽チンだし、新しいチップにも対応してるし
という自分も
先月XCに乗り換えたクチだけどな
質問です。教えてください。
下記のような割り込みについてです。
タイマーTMR1の割り込みが入ったあと、TMR1は2000に設定されるようにになっています。
疑問は、割り込みと同時にTMR1が2000に即刻なればいいのですが、それまでに
if文がありますから、若干の遅延が生じるはずです。
つまり、TMR1は2000ステップ毎の繰り返しではなく、もう少し長い間隔で繰り返されるのではないでしょうか??
よろしくお願いします。
------------------
#define TIMER_INTERVAL (0xffff - 20000) // TMRモジュールのカウント初期値
(途中略)
static void interrupt intr( void )
{
volatile static int intr_counter;
//------------------------------------
// Timer1割り込みが発生したときの処理
//------------------------------------
if ( PIR1bits.TMR1IF == 1 ) {
TMR1 = TIMER_INTERVAL; // タイマーをリセット
(後略)
出典
http://nanoappli.com/blog/archives/4831
フリーランにするといい
>>548 その通りです。
TIMER1のクロックが十分に遅ければ割り込みから次のカウントアップまでに値を再設定できますが、
8MHzでプリスケーラが1:1だと当然無理ですね。
>>549 なるほど!!フリーランの利点はそこですね。
>>550 なるほど!!カウントアップまでに設定できればいいのか・・・
プリスケーラの倍率を大きくすれば、うまく動作する可能性はあるんですね。
的確な2つの回答をありがとうございました!!
プリスケーラは書き込み時にクリアされるから意味が無い。
TMR1への入力が外部入力でそれなりに遅ければカウントアップまでに設定できるってだけ。
あとはTMR0ならタイマーレジスタから直接減算する方法があるけど、2バイトだと多分無理。
以前考えたことがあるんだけど、繰り上がりに対処する方法がどうしても思いつかなかった。
ところでC言語だとTMR1H/Lレジスタをひとまとめに扱えるのか。
値を読む時繰り上がりがあるとどうなるんだろう…。
>>552 18FだとLow側読んだ時点で、High側もバッファに入るが、16Fは読む時に工夫が要る。
CCPを利用するのが良いと思う。
554 :
550:2014/12/13(土) 16:41:15.18 ID:wFlaBQJU
ああそうか、PICはプリスケーラ値の読み出しやリセットが任意にはできないんだっけ…
間違い失礼いたしました。
>551
きっちりの割り込み周期にしたいなら>553のCCPで可能。
CCPの機能でspecial event triggerのモードだと
TMR1H/LがカウントアップしてCCPR1H/Lと同値になった際に
TMR1のクリアとCCP1IF割込フラグをセットする(TMR1割込じゃないので注意)
>>548 #define TIMER_INTERVAL (0xffff - 20000 + N)
でNの値を調整する方法もある。
mainの処理で割り込み禁止にしない、プリスケーラは1:1という条件で。
>>556 なるほど。NOPで調整するような感じですね。
ありがとうございます!!
NOPって、非営利組織のことですか?
559 :
590:2014/12/15(月) 07:00:14.43 ID:y/9+pA9R
560 :
asm解説より:2014/12/15(月) 09:01:57.77 ID:8tTCZOtC
NOP No Operation
-------------------------------
Syntax: [label] NOP
Operands: None
Operation: No operation
Status Affected: None
Encoding: 00 0000 0xx0 0000
Description: No operation.
Words: 1
Cycles: 1
Q Cycle Activity:
Q1 Decode
Q2 No operation
Q3 No operation
Q4 No operation
Example HERE NOP
: Before Instruction
PC = address HERE
After Instruction
PC = address HERE + 1
561 :
774ワット発電中さん:2014/12/15(月) 11:01:39.93 ID:Ee0GKxuW
>>558 なんもしない命令、なんもしないけど時間だけは経過する。
:::::::::::.: .:. . ∧_∧ . . . .: ::::::::
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : :: つまり、ここに居る俺らのこと
か
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄ ̄
無から有が生まれた
これが全ての真理
手術しないのに完治
作戦行動なしに勝利
ノー・オペレーション
おまえらいいヤツらだな!
No Operation People
お前らたまには反省するんだな。
HALT
ワンタイムのPICを使うのに、プログラムをゼロで上書きしてNOPにして、
複数回使うという技があるらしい。
命令を書きつぶすってのはUV-EPROMとかワンタイムとかでもあるな
後ろのほうが余ってるなら、最初のほうをジャンプ用にいくつかあけておいて、書きつぶしてはジャンプつけて
新たに書き込んだ余ってたエリアに飛ぶようにして… みたいなことがあったと聞く
素人設計の回路で動かしていますが寒いと落ちてリセットされる場合があります
なにかよい寒さ対策は?
そういや結局HALT命令ってなんなんだ?
割込待ち
コンピュータ学園HALT
留年不可避
ちなみに、haltの読みはハルトでもホルトでもなく、ホールトだ
ハイルツ!
ホールト 柔軟剤か!
ハイルツ ケチャップか!
質問お願いします。
dsPICの割り込みで、INT1とINT2とTIMER1の3種類使用する場合、各項の割り込み優先度を設定するのですが、
全ての優先度を「1」にした場合に、何か不具合が起こるってありうるのでしょうか?
よろしくお願いしますm(__)m
>>581 順位同じ場合は、早い者勝ちになるだけ。
>>578 ホルトっていってたわw
ASUSはアサス
ASUSは本家が正しい読み方をころころ変えてるからな
エーサスかアスースと読んでおけばとりあえず怒られない
この前のNHKテレビでは「エイスース」だった。
読み乱立状態→アスースです→エイスースです
の流れじゃなかったっけ
ASUSTeKはアサステック
maxtorはマクスター
日本は?
ニホンとかジャパンとかリーベンとかイルボンとかハポンとかヤーバンとかチャポンとかターポーネーとかかな
ニッポン!ちゃちゃちゃ
あいこくせんたいだいにっぽん
びっくり!君のErattaもまっかっか!
新しく PIC16LF18313 が発表され、The Peripheral Pin Select (PPS) functionality enables pin mapping when using the digital peripherals (CLC, CWG, CCP and PWM) to add flexibility to the application design. 等々の機能が追加されたが、PIC12LF1822に比べて、
Sleep mode: 20 nA @ 1.8V, typical ⇒50 nA
Watchdog Timer: 300 nA @ 1.8V, typical ⇒500 nA
Timer1 Oscillator: 650 nA @ 32 kHz, typical ⇒500 nA
Operating Current:
5μA @ 32 kHz, 1.8V, typical ⇒8μA
30μA/MHz @ 1.8V, typical ⇒32μA
のように増加してるww
5桁
>>593 ゴメン おいら最新アイテム詳しくないんだけど 1.8V
USBキーボードやUSBマウスを扱えるPICが欲しいんだが、
「扱える」となるとホスト機能が要るから、24F以降必須になるんだろうか。
USB周りのドライバは出来合いにお任せで、14ピンDIPぐらいで、5V動作(もしくは
5Vトレラント)で、ついでに安いデバイス(またはモジュール)があったら嬉しいんだけど。
開発環境に金がかからなければ、PIC以外も選択肢として考えます。
>>593 まあ使い分けてくれってことじゃね? F系なんてF1になってスリープ電流激増したし。
っていうかLF1系が秋月に入らないから未だに低消費電力を求めるとF1系が選択肢に入らないんだよなー。
>>597 秋月で買えるF1でも新しいチップはLow-Power Sleep modeで0.5uAまで落とせるからさすがに反省したんだろうな
この辺の対応の早さがPICの良いところ
PICって趣味用マイコン感があるけど、普通に量産製品でも
使われてんのかね?
>>599 携帯電話の中に使われてるの見たことあるよ
>>599 あなたの知ってる量産用マイコンって何よ?
ルネサス
ルネサスはなんで儲からないんだろう
H8やSH程度には使われてるよ。
LEDフラッシュライトの基板に使われてるのは知ってる、
PWMで調光したり、モードを記憶するのに使っている見たい。
趣味用にチップを設計製造してたら1ついくらする事やら
意味を取り違えちゃったね
逆に、趣味用チップにはどんな機能が搭載されるんだろう
ダイをよ〜く見ると絵が浮かび上がる
>>607 FPGA 使って、8bit クラスならそんなにハードル高くないでしょ
チップのことが話題なのに
だれでも出来るプリント基板裏の絵とか…
誰でもは無理
>>615 > だれでも出来るプリント基板裏の絵とか…
そこしか見てないアホ乙
アブノーマルに、ですか・・・ 江戸の粋な人は、(華美な装飾が
禁止されていた都合だろうが)人目に触れない裏地に装飾を行っていたという。
それを踏まえここは敢えて、内層基板のパターンでギャルゲ絵をだな・・・(誰得だw)
>>619 昔 IC の X 線写真撮ったときに、ダイの端にスペースシャトルが描かれてたのを思い出したわ
作った奴しか見れないだろ w
なんだか電子工作はアニオタ、ロリコンの趣味になってしまったな
まあ秋葉原があんな状態だからしょうがないか
電話やさん向けのICを作った時に回路パターンを電話の形にして遊んでたら、
そこで不良が発生して怒られた今はもう偉くなってる人の話
>>614 このページは見たことあったけど、名前があったとは知らなかった
>>621 パソコンがマイコンだった頃からロリコンの仲間
パンピー(一般people)からは蔑み対象のナーズ(NERDs)同士なんだから仲良くしようじぇ(^д^)
コイン電池駆動で極限まで低消費を追及するなら、PICのLF一択だな。
最近秋月に入ったルネのRL78/G10が46uA/MHzを謳い文句にしてたから
使ってみたけど、1.25MHz内蔵CLK選択で700uAも喰いやがるぜ・・・Sleepも500nAと桁が違うし
628 :
774ワット発電中さん:2014/12/30(火) 08:46:54.84 ID:b1TQd56a
なんか寒いとリセットかかります、5度以下だと24時間連続稼動で1回程度の頻度で
そもそも動作温度とか何度以上だったんだっけ
なにか良い対策はないものか
>>628 どこかのタイミングがギリギリになってるとか
>>628 PICのせいではなく回路のせいですね、定数の見直しとチェックをしましょう
631 :
774ワット発電中さん:2014/12/30(火) 14:54:23.64 ID:GtCJCsJI
やっぱ回路ってむずかしいでうね
ちょっと前の中華は懐中電灯ですら
すぐ壊れるってのが理解できました。
633 :
774ワット発電中さん:2014/12/30(火) 17:36:53.41 ID:kt55rYM/
低温→コンデンサESR低下→3端子レギュレータ異常発振/リプルリジェクション悪化
→ ちょっとした入力電圧変動で出力電圧が大きく変動しリセットってな不具合は昔やらかしたことある
この原因であればR特性品に変えて容量増やせば解決した
温度が下がるとESRって上昇しねえか?
>>634 ESRというキーワードを使いたいだけなのかな?
>コンデンサESR低下
単に容量の低下だと思う。たぶんF特性のセラコンだったんでしょ?
1枚の基板に2つのPICを乗せて動かしたいのですが、水晶発振子1個で2つのPICを
動かす事は可能でしょうか?無論、2つのPICは同一クロックで構いません
水晶発振器なら多分問題なく出来る気がするのですが、コストが全然違うので
出来れば発振子でまかないたいです。発振子を2個使ってもいいのですが、同一
クロックなら1個でまかなう方法がもしかしてあるのかと思い質問しました
>>637 リファレンスクロック出力機能付きのPICを使い受け側を外部クロックモードにする。
>>638 すみません、記述が抜けていました
使用するPICはPIC16かPIC18の予定です。
クロック出力って大抵なかったっけ
大抵ある「クロック出力」(CLKOUT)はクロック周波数の1/4のが出せるやつで、
最近ついた「リファレンスクロック出力」(CLKR)はクロック周波数そのままが出せるやつだね。
…名前どうにかしろよ。
水晶発振使用時にCLKOUTやCLKRって出力できるんだっけ
使ったこと無いからうる覚えだけど、共用だったような気が
OSC1端子の波形を拾ってFETか何かで整形して使うとか出来ないかな?という妄想
内部発信しか使ったことないからよくわからんけど
片方を発振子の繋げ方にして片方を発振器の繋ぎかたにすればいいんじゃない?
発振子に回路繋ぐと負荷容量増加するからあんまりやりたくないね
CLKRが取れるならそれが良いけど、無いなら回路つないで外付C減らして調整するしかない
>>637 発振子にインバータ付ければ発振器と同じになるだろ。
あー、水晶発振子用のOSC2ピンとCLKOUT/CLKRは共用だ。
手元のいくつかしか見てないけどベースラインからEnhancedミッドレンジまでみんな揃ってそう。
あとは1/4周波数で我慢してPWMを使う手があるかな…。
それならPLL付きのデバイスにして4倍クロックで動作させれば原発振
で出力出来るな。PLLが入ることでジッタが増えたりするかも知れないが。
>>637 秋月で水晶発振子は30円。
発振器だと300円あれば周波数も選べる。
コストが全然違うったって、たかが300円じゃね?
まさかの量産じゃなかろうし。
>>648 REFCLKOという名前で、別pinになってるのがある。
>650 みたいな馬鹿がどのタイミングで出てくるのか待ってたんだけど意外と
遅かったなー
同一クロックのCPUを2個乗せる設計そのものが間違ってる
だいたい同じ速度で動いていればいいなら内蔵で済むしな
同一クロックでタイミングを合わせて2CPUで何かするんでしょ
そもそもどうやって同時だってお互いに認識するんだ
コストの徹底追求という「アソビ」だろ?
>>652 う〜ん、何がしたいのかわかんないな。
信頼性落としてまで設計しないし。
PICやめてARMとかにすれば1個ですむかもよ。
面倒だから両方とも内蔵クロックで。
658 :
637:2014/12/31(水) 20:12:33.47 ID:ibcFa8//
うーん、見事なまでに役に立たない回答(?)しかないですね(笑
とりあえず別のところで頂いた回答で解決しているんですが、一応マナーとして
こちらでの質問への回答は >638 をBAとしたいと思います
ではさよーならー
面白いと思ってるのかよくわからないレスだな
強がり言って去ってくところが初心者っぽくて可愛いじゃない
黙ってたけど某AVRにはCKOUTていう
>>637が主張するそのものの機能がある(水晶とは別のピン)
貧弱ペリフェラルでソフトゴリ押し設計だと2個使いたくなるんだろう
MPU2個とか書いてる時点でああと思ったよ
片側をI/O専用にするって設計は悪くないけど、クロック同期させる必要はないよな。
質問なんですがWIN8タブレットでMPLABXを実行されている方いますか?
いましたらビルドやデバッグ動作がもっさりしてて使いづらくないか教えてください
Atom Z3740タブレットでビルドしてる方のブログを見てその環境がいいなと思いまして
ちなみにN2820搭載PC(ストレージはHDD)でMPLABXを起動してみたら
すごくもっさりしてて使いづらかったです
>>664 Miix2だけどそんなに遅くは感じない。coresoroノートにxpよりは速い。i7のデスクトップよりはもちろん遅い。
>>665 回答ありがとうございます
今調べ物してましたがWin8.1+PICkit3でいろいろ不具合あるみたいですね
もう少し悩んでみます
667 :
637:2014/12/31(水) 23:28:27.54 ID:ibcFa8//
>>663 すっごい不思議なんだけど、同じくロックで動かすと書いただけで、別にクロック
を同期させて動かすとは一言も書いた覚えが無いんだけど(笑
なんで同期させて動かすって事になってんの?すっごい不思議なんだけど(笑
これってあれ?2ch名物のエスパーって奴?これがエスパーって奴なの?(笑
勝手に条件を想像して付け足すとかエスパーさんマジかっこいい(爆笑
そうだよ、用がすんだらさっさと帰えんな
同じくロック
同じくロック
同じくロック
愉快犯か
冬だね
年末年始くらいこんなことしてないで家族と過ごせよ
相手にダメージを与えようとして使った言葉は
自分が言われたら嫌な言葉をつい使ってしまうんだね
>>671は家族と過ごせない人なんだね可愛そうだね
>>671 それは仕事等の正当な理由で年末年始を家族と過ごせない人に対して
失礼なのでは?
>>671 おまえみたいなニートは家族と一緒に過ごしたことになるのか?
>ギャーギャー
Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ハァハァ (* ´Д`)< オナーニの途中だから邪魔しないでくれる?
_ (||||__⊂)__ \_______________
/旦/三/ /|
((| ̄ ̄ ̄ ̄ ̄| | ))カタカタ
|愛媛みかん|/
>>650 クリスタル減らしても30円にしかならない。コンデンサ入れても50円。
基板レイアウトとか面倒だから発振子2個使いでいいだろ。
同期しなくていいらしいし。
>>676 量産ならそれだけ違えば大きいが、信頼性試験やるとボロボロになりそうだ。
>>678 工場?工場関係者と信頼性試験に何か関係あるのか。
それとも、設計者は工場関係者だと思ってるのかな。
お年玉が予想以下だと大変だね。
なんか幼稚なスレだね、ここ
>>676 馬鹿は黙ってなよ。いくら馬鹿でもそれくらいは理解しよう
>>679 おまえの頭の中の「工場」ではそうなんだろう。
一口に工場ってもピンキリだあkら。
>>682 きっと彼の中では
工場は「こうじょう」じゃなく「こうば」なんだろうね
明らかに趣味の工作レベルなのに
量産だ信頼性だ言ってるほうがよっぽどビョーキ
実務を経験しちゃうと、趣味だろうが信頼性は考慮してしまう
低い信頼性でもokとした上での設計をする
何も考えてないのとは全く違う
趣味なのに低電圧指令とか考慮しちゃうw
今年も荒れそうだなこのスレw
平成27年も無事に正常運転を開始しましたねw
安心しました
趣味でFTA/FMEA解析して故障率を極限まで低下させた多重系システムをつくれるのが楽しい
普段の業務では0.1円単位のコストダウンで頭を悩ませてるので
目の前の0.1円しか気にならない業務とは、レベルが低いな。
曲解で揶揄とは、煽りのレベルが低いな プギャー(^д^)
PIC使う製品で0.1円単位じゃあ生温い
出荷数が1000万台超えるものでなければ
誤差
トヨタのコスト管理が銭単位なのは有名な話だが。
1000万台でも100万円か・・・
そのせいで使い難いバカ仕様になって生産打ち切り不良在庫100万台
>>692 何処が曲解なんだ?
量産品はコストは勿論、信頼性も上げないと、不良率が0.1パーセント上がっただけでサービスセンタがパンクする。
目先のコストだけでは無く、故障率を下げるのが当然。
故障率を気にしないコストダウンで製品を作れるならチョンでも出来る。
あ、チョンだったか。すまん。
不良率50%から50.1%に上がっても大して変わらないよ。
もともとサービスセンターなんてないし。
中国のお話だけど。
701 :
テヨン:2015/01/02(金) 20:15:20.37 ID:NX9skHdj
>>689 あけおめ、今年も平壌運転ニダ☆
>>698 なぜコストダウンに当たって
>>690氏が故障率を気にしていないと
勝手に設定を追加するのか理解できないニダ
それよりも何よりも、我輩がテヨンであるという最高機密を
勝手に漏えいした事について、謝罪と賠償を求めるニダ(`∀´)ウェーハッハッハ!
>>700 0.01%と0.11%じゃ
その差は致命的だけどな
そりゃあ、率の違いを%で表現する時点で、
その程度の知識なわけで
玄人のふりしてるだけなのね
どうせ故障した時には会社ごとどこかに消えてるからいいのさ
中国の話だけど
中国のは静かに壊れてくれるだけじゃなくて燃えあがるからな。
そんなのが0.1%もあって1万台も売ったら、こっちもただではすまんよ。
さらに車載品だとしたら民生アクセサリでもガクブル。
素人が無理やり絡むのはやめてほしいな。見てて恥ずかしいよ。
すまん、率の違いを%意外だとどうやって表現するの?
エロイ人教えて
そもそも%で表すほど不良率が高かったら生産なんて続けられないだろ
ppmで表すの?
だな
712 :
590:2015/01/03(土) 09:04:15.64 ID:ZZkP6Sdy
>>709 リチウムイオン電池は%レベルどころか機種によっては10%レベルの不良率。
その昔半導体素子は良品率の方が数%なんて言うのもあったな。
オレのFitはリコール5回目。
不良率500%だぜ!
出荷後の不良率と歩留まりの区別もつかないバカもいるんだな w
PIC以外の話も3ppm以下でお願いしますw
>>691 抵抗とかコンデンサとかは100単位で使うから、けっこうでかい。
量産経験のあるエンジニア以外発言禁止なのかw
三個だろうが六個だろうが
量産は量産だ!(^p^)
チップ抵抗だからさ
>>708 前回1%、今回1.1%なら、
0.1%アップじゃないのよ。
0.1ポイントアップなのよ。
まだ三が日の内だが、通常運転w
PIC32を25個買った程度しかしてないや、今まで買ったPICは全部で150個くらい
>>725 その程度のど素人はあと75年ROMっててください。マジで
>>725 すごいな、俺なんか10F200を累計15個買ったかなくらいだ。
>>726 私は16F84を30個買ってPICにサヨナラした、自他共に許すド素人
「この歳だ 振り返るのは 辞めにした」
すまんね
え、お前は何個かって?
数えたら82個だった。
うち、ただでもらったのが17個だ。
参考にしてもらってもかまわない。
オレ10F200は発信器として圧電サウンダを圧電ブザーにしたのと
長いケーブル経由のデジタル信号を整形するためのバッファやインバータとして使ったくらいだな。
>>727が作った15作品が気になる。
PICではもっぱらアセンブラ星人だけど
自分でPIC買ったことはないな・・・・
PICを大量購入すんのが流行ってんの?
ちゃんと使ってよ?本当に必要な人にとってはただの迷惑だから
使わないのに買う人はさすがにいないでしょう・・・多分
>>733 別に入手困難になってないでしょ?
使うかどうかに関わらず、買ってくれるんならその製品の寿命が延びるから、どんどん買ってくれ w
正直どうでもいいw
>>738 あるあるw
オレは予備にとか思って余計に買うこと多いからなあ
買うときは予備とか失敗とか考えて代替10個単位で買うことが多い
んでも使うのは1個とか2個だから、使ってないPICが山になってるわ。
去年の暮れに秋で24FJ64GB002をとりあえず10個買って、翌週にもふと思い立って
秋に寄った際にまた10個買ってきて、今うちに19個の在庫がある・・・
20年前に予備として買った12C509JWも結局使わず仕舞いだったので、年末にUV消去機と一緒に処分した
今は通販が発達してるから必要な分+2〜3個発注しておけば十分やね
でも、10個買ったほうが得だったりするわけで。
何をもって「得」というかは人による。
単価で考えるか、トータルコストで考えるか、
在庫管理の労力や廃棄損とかも考えないと。
>>741 俺は基本必要数 + 5%(切り上げ)で購入してる
>>741 窓付きが高かったのでワンタイム508を書いては捨てのデバッグをしたことがある
その時の余りをまだ持っている
> 12C509JWも結局使わず仕舞いだったので、年末にUV消去機と一緒に処分した
どう処分したのか気になる
たくさん買えばそりゃ単価下がることはあるけど、
どーせ使わないなら廃棄損で逆に高くなってるケース
がざらにあるんじゃないかそういう奴は
748 :
774ワット発電中さん:2015/01/04(日) 18:27:47.37 ID:uYAapECN
>>747 いや、そのとうりだよ
馬鹿な貧乏人はそれに気が付かない
必要なものを必要な時に必要な数だけ買う。これが正解
馬鹿はそれが理解出来ないから余分に買って手元に余らせる
手元にxxx個も余ってる、なんていう発言は馬鹿の馬鹿比べみたいなもん
749 :
774ワット発電中さん:2015/01/04(日) 18:45:05.42 ID:HHfUEo7U
沢山買うことのメリットは単価だけじゃない。
思い立った時に気兼ねなく実験するのに便利なので多めに買っておく。
最低限しか買わない奴は知識も最低限しかつかない。
Time is money.
安いんだものまとめて買うよね
752 :
774ワット発電中さん:2015/01/04(日) 19:24:08.69 ID:HHfUEo7U
貧乏人には無理なのかも試練
結局、そういう所の積み重ねが実力の差になってくるんだよな。
753 :
727:2015/01/04(日) 19:39:15.02 ID:miBwkUPu
必要な時に手元にないリスクと無駄在庫のどっちを重視するかだな。
在庫にさほどスペースを取るわけでもなし、値段もせいぜい数百円だから俺は前者を重視してるけど、
まあ今の時代通販で頼めばすぐ来るんだし必要数だけ買う運用もありだと思う。
さてここに未使用の10F200が10個ほどある…。
>>731の疑問に答えると、15作品もないが、
TV出力、ストップウォッチ、オルゴール、電子オルガンあたりが自信作。
>>753 手持ちの余ってる PIC で何とかすると言うパズル要素も楽しみの一つなので、余分に買う派
755 :
774ワット発電中さん:2015/01/04(日) 20:51:16.09 ID:/taXke3s
>>754 使いやすいやつから使っていくので、使いにくいやつとか、ピンコンパチの旧機種ばかり残る。
「初めてのPIC 0x04 [転載禁止](c)2ch.net」から来たんだけど
ここは真性の馬鹿しかいないんだな
またお前か
>>758 触らぬ神に祟りなし、
鏡を見てつぶやいている人に声をかけるのは感心しないぞなもし
1日経ってますけど
2日 勃ってますけど
763 :
774ワット発電中さん:2015/01/07(水) 13:10:00.83 ID:zllhQ2Ku
童貞だろ
和服着ている日は、ガマン、ガマン。
やり方指南しようか?
今時、気の利いたラブホなら着付けしてくれる
でも顔を合わせてしまうんですよね?
いやだなぁ
うまくやれば着崩れしないよ。
てす
しかし、ひまだねー。このままいくと自然消滅しそう。
だれかウソでもいいから質問しない?
10F200で接点式ロータリーエンコーダ読めてる人いる?
マルツでPIC24F処分してたから、ポイントで買ってきた。
いまニモニック眺めてる。
掛け算も割り算もあるんだな。インデックスつけた命令とか。
inc2とか何に使うのかワカランのも。
昔のとあるロジック回路の代わりをさせてみる予定。
ちょっとオーバークロックもしてみるかな・・・・
>マルツでPIC24F処分してた
なんで?
>>774 回転していない時も常時監視してるの?それともスリープ?
常時監視。スリープさせない用途だし。
あ〜
なら簡単だな
てか、スリープさせては実現不可能だろ。簡単とか難しいとかの話じゃない。
ま、理屈で考えられない奴は一生懸命頑張るんだろうけど、無駄w
10F322なら出来るんだよね。
昔のビデオのジョグシャトル付きリモコンを改造して電池駆動で使ってる。
かなり頑張ったけど。
そんなに利口なほうじゃないから10F200ではくじけた。
>>780 そういう風に頑張ったプログラムって、使う人が変わったり、接点の状態が変化するとエラー続出になるんだな。
定石通りの方が圧倒的に高安定。
少なくともリモコン内蔵チップの処理よりは勝っているよ。
中古リモコンなんで接触不良があり、内蔵チップでは逆方向の信号が出たり不感があったりしてた。
こいつはクリック位置がB相のエッジと重なるので秋月の安物と同じく処理が面倒なタイプ。
定石通りじゃ特に接触不良に対応できないから結局独自に考えた。
CRフィルターは無しな。
>>782 そんなもんにCなんて付けるのは老いぼれ爺だけだわw
>>772 プログラムは書けた気がするけどまだ試してない。
よーしパパ今日はCつけちゃうぞ〜
>>782 >こいつはクリック位置がB相のエッジと重なるので秋月の安物と同じく処理が面倒なタイプ。
定石通りにすれば全然面倒じゃない。クリック位置によって処理が面倒とか言うレベルじゃ℃素人。
℃玄人の朝は早い
だがもう構ってはもらえない
>>790 秋月とダブってるヤツだけ在庫限りの値下げなんだな
ぼったくり価格で平気なのかと思ってたが
一応秋月の値段を気にはしてるのか
> 一応秋月の値段を気にはしてるのか
そうりゃそうよw
794 :
電光掲示板:2015/01/20(火) 23:07:34.31 ID:9quHOHFw
PICおよびC初心者です。
基本的なPORT入出力制御やTMR0割り込みなどは使えるレベルです。CコンパイラはXC8を使っています。
今回ドットマトリクスLEDにて簡単な文字や記号を表示したいと思っています。(電工掲示板 16×32程度の掲示板)
そこで、まず、Cの「配列」を勉強し実験しているのですが、下記プログラム1では配列が11行×4列の時はコンパイラ成功し、while内の処理で、指定された番地のデータをPORT出力(LED点灯)させることができました。
しかし、プログラム2は、プログラム1に配列データをもう1行追加し12行×4列に変更すると、コンパイル実行時に
「error: (1250) could not find space (48 bytes) for variable _a」
と表示されコンパイルできません。
メモリ量が足りない意味だとはわかりますが、どうしたらいいんでしょうか?
マイコンはPIC16F837Aです。
今後いろいろな英数字や記号を表示したいので、たった12行×4列でエラーでは今後どうすることもできないような気がしますが・・・・・
申し訳ありませんがどなたかご教授お願いいたします。
795 :
電光掲示板:2015/01/20(火) 23:08:13.96 ID:9quHOHFw
◆プログラム1(コンパイル成功し正常動作)
// PIC16F873A Configuration Bit Settings
#include <xc.h>
#define _XTAL_FREQ 12500000
// CONFIG
#pragma config FOSC = HS
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config BOREN = OFF
#pragma config LVP = OFF
#pragma config CPD = OFF
#pragma config WRT = OFF
#pragma config CP = OFF
char a[11][4];
char main(void)
{
ADCON1=0x07;
PORTA=0;
PORTB=0;
PORTC=0;
TRISA=0x00; // PORTB IO ??????
TRISB=0x00;
TRISC=0x00; // PORTC IO ??????
char a[11][4]={
{1,2,3,4},
{5,6,7,8},
{9,0,1,2},
{3,4,5,6},
{5,6,7,8},
{1,2,3,4},
{3,4,5,6},
{5,6,7,8},
{1,2,3,3},
{9,0,1,4},
{9,0,1,5},
};
while(1)
{
PORTA=a[0][2];
PORTB=a[5][3];
PORTC=a[10][3];
}
}
796 :
電光掲示板:2015/01/20(火) 23:09:06.15 ID:9quHOHFw
◆プログラム2(コンパイル時エラーとなる)
// PIC16F873A Configuration Bit Settings
// 'C' source line config statements
#include <xc.h>
#define _XTAL_FREQ 12500000
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
// CONFIG
#pragma config FOSC = HS
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config BOREN = OFF
#pragma config LVP = OFF
#pragma config CPD = OFF
#pragma config WRT = OFF
#pragma config CP = OFF
char a[12][4];
char main(void)
{
ADCON1=0x07;
PORTA=0;
PORTB=0;
PORTC=0;
TRISA=0x00; // PORTB IO ??????
TRISB=0x00;
TRISC=0x00; // PORTC IO ??????
char a[12][4]={
{1,2,3,4},
{5,6,7,8},
{9,0,1,2},
{3,4,5,6},
{5,6,7,8},
{1,2,3,4},
{3,4,5,6},
{5,6,7,8},
{1,2,3,3},
{9,0,1,4},
{9,0,1,5},
{3,5,8,4},
};
while(1)
{
PORTA=a[0][2];
PORTB=a[5][3];
PORTC=a[10][3];
}
}
798 :
電光掲示板:2015/01/20(火) 23:16:35.88 ID:9quHOHFw
どうもです
前に16F84で簡単なLEDの点滅回路を自作したので、PICを選びました。
今まで16F84や16F877Aなどでアセンブラで小さいプログラム(時計など)は自作していました。
そのため、PICかな?と思いました。
固定のもんはRAMに置かなくてもいい
static付けたらプログラム領域に切ってくれたような
800 :
電光掲示板:2015/01/20(火) 23:20:20.73 ID:9quHOHFw
Cは初めてで今回勉強しようと思いCで書いています。
PICは16F873A、XC8でコンパイルです。
一行増やしただけで・・・
もっと別の方法があると思うのですが、いろいろ調べても
わかりませんでした・・・
配列使うとメモリすごく食うのか?。。。わかりません・・・
801 :
電光掲示板:2015/01/20(火) 23:21:40.09 ID:9quHOHFw
RAMに置く?
プログラム領域に切る?
ごめんなさい意味がわかりません・・・
単に勉強用に選んだんだと思うが
ちゃんと動く方をシミュレーターで動かしてどうメモリが使われているのか
確認しながら、メモリを減らすように工夫していけばいいんじゃないかな
グローバルのaとローカルのaで96byteも消費してるじゃん
更新が発生しないなら配列相当をROMに置けばいいんじゃないかな
それとPICでC言語の勉強はためにならないからやめなさい
メモリ不足で変数を確保できないっていってるんだから変数を減らす
char a[12][4];
は実行中に変更されないってコンパイラに教えてやるとRAMを使わずフラッシュメモリにデータを置いてくれるぞ
static char a[12][4];
って書くのだ
>>798 オレと似てるな。
PICはアセンブラオンリー。
ちょっと込み入ってるなと思うものはarduinoでサクッと組む。
LAN使いたい時はRaspberryPiにしてる。
それで作ったうえで、コスト重視ならPICで組み直してる。といっても1回だけだが。
PICをたくさん並べて使えばいい。
>>805 間違えた
const char a[12][4]={だった
809 :
電光掲示板:2015/01/20(火) 23:32:37.82 ID:9quHOHFw
ROMに置くということは別のICを接続するということでしょうか?
あと、申し訳ありません
グローバルのaとローカルのaってどう違うんでしょうか?
確かにコンパイル成功するほうでしっかり考えればいいんだと思いますが
糸口がつかめなくて困ってました・・・
810 :
電光掲示板:2015/01/20(火) 23:36:53.60 ID:9quHOHFw
ただいまコンパイル中〜
811 :
電光掲示板:2015/01/20(火) 23:42:01.09 ID:9quHOHFw
正常にコンパイルできたプログラム1にconst付け加えたら
エラーになりました・・・・・
// PIC16F873A Configuration Bit Settings
#include <xc.h>
#define _XTAL_FREQ 12500000
// CONFIG
#pragma config FOSC = HS
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config BOREN = OFF
#pragma config LVP = OFF
#pragma config CPD = OFF
#pragma config WRT = OFF
#pragma config CP = OFF
const char a[11][4];
char main(void)
{
ADCON1=0x07;
PORTA=0;
PORTB=0;
PORTC=0;
TRISA=0x00; // PORTB IO ??????
TRISB=0x00;
TRISC=0x00; // PORTC IO ??????
const char a[11][4]={
{1,2,3,4},
{5,6,7,8},
{9,0,1,2},
{3,4,5,6},
{5,6,7,8},
{1,2,3,4},
{3,4,5,6},
{5,6,7,8},
{1,2,3,3},
{9,0,1,4},
{9,0,1,5},
};
while(1)
{
PORTA=a[0][2];
PORTB=a[5][3];
PORTC=a[10][3];
}
}
812 :
電光掲示板:2015/01/20(火) 23:42:37.78 ID:9quHOHFw
error: (712) can't generate code for this expression
ここでCの勉強会やられても困るだけなんだ
ム板とか行って消えてくれるとありがたい
なんかウザく感じてきたので以降スルーする
815 :
電光掲示板:2015/01/20(火) 23:48:05.66 ID:9quHOHFw
// PIC16F873A Configuration Bit Settings
#include <xc.h>
#define _XTAL_FREQ 12500000
// CONFIG
#pragma config FOSC = HS
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config BOREN = OFF
#pragma config LVP = OFF
#pragma config CPD = OFF
#pragma config WRT = OFF
#pragma config CP = OFF
const char a[12][4];
char main(void)
{
ADCON1=0x07;
PORTA=0;
PORTB=0;
PORTC=0;
TRISA=0x00; // PORTB IO ??????
TRISB=0x00;
TRISC=0x00; // PORTC IO ??????
char a[12][4]={
{1,2,3,4},
{5,6,7,8},
{9,0,1,2},
{3,4,5,6},
{5,6,7,8},
{1,2,3,4},
{3,4,5,6},
{5,6,7,8},
{1,2,3,3},
{9,0,1,4},
{9,0,1,5},
{9,0,1,0x0A},
};
while(1)
{
PORTA=a[0][2];
PORTB=a[5][3];
PORTC=a[11][3];
}
}
816 :
電光掲示板:2015/01/20(火) 23:48:41.87 ID:9quHOHFw
コンパイル成功しました!
ありがとうございます!
せめてエラーの意味を理解しようとする努力をだな
818 :
電光掲示板:2015/01/20(火) 23:49:58.92 ID:9quHOHFw
BUILD SUCCESSFUL (total time: 1s)
Loading code from C:/Dev_MPLABX/PROJ.X/dist/default/production/PROJ.X.production.hex...
Loading completed
勉強します!ありがとうございました!
819 :
電光掲示板:2015/01/20(火) 23:50:35.07 ID:9quHOHFw
そのとおりですね!
ありがとうございました!
820 :
774ワット発電中さん:2015/01/20(火) 23:59:50.98 ID:/PrBJD+A
>>815 main の外側の
const char a[12][4];
は要らない気がするのだが。
あと、3桁品番(旧mid range)は、要素数 256が限界だったと思う。
(256以上の領域をリニアにアクセスする方法が無いので)
822 :
電光掲示板:2015/01/21(水) 00:24:30.58 ID:OYqXTs4i
いろいろありがとうございます!
試しました。
mainの外側のconst char[12][4]はなくすとエラーとなりました。
3桁品番(16F873A)などはいずれ、使えるようになれば4桁に移行したいと思います。
Memory Summary:
Program space used 121h ( 289) of 1000h words ( 7.1%)
Data space used 8Ch ( 140) of C0h bytes ( 72.9%)
問題は解決しましたが、
MPLAB Xのメモリー使用状況です。
data spaceがやはり厳しいですね・・・・・
823 :
電光掲示板:2015/01/21(水) 00:37:15.31 ID:OYqXTs4i
そうですね!
いわれるようにmainの外側のconst char a[16][4]はなくしても
コンパイル成功しました。
ただ、その場合、mainの内側のchar a[16][4]にconstつけなくても
コンパイル成功しました・・・・
もともとmainの外のchar a[16][4]が悪さしていたのか・・・
勉強します。
825 :
774ワット発電中さん:2015/01/21(水) 00:54:34.91 ID:OYqXTs4i
わざわざありがとうございます。
そちらに今後書き込まさせていただいます!
const付けた配列は、ちょっと面白いコードになるんだよな
単にアドレスが違うとかそんな次元じゃない
なにせPICはハーバードアーキテクチャだからな
まったくムチャしやがる
AVRみたいにROMテーブルを作る呪文書かせりゃ面倒がないのに
>828
むしろ、AVRの最新のgccもconst付けるとROMに行くようになったぜ。
呪文要らなくなった。
830 :
電光掲示板:2015/01/21(水) 21:31:08.48 ID:OYqXTs4i
昨日はありがとうございます。
constは奥が深そう…………素人は難しすぎる(-_-)
言われるようにmainの外側のchar a〜を削除してもコンパイル成功しました。
さらに、結局mainの内側のchar a〜の頭にconst付けてもコンパイル成功しました。
なんでかなぁーと考えていますが〜
グローバルのaとローカルのaが関係してそうですね
mainの外側のchar a〜の文は元々必要ないのに私が配列指定し、メモリーを食っている状態で、
さらに、mainの内側にchar a〜を記述したもんだからメモリーパンク?
だから、指摘されたようにmainの外側のchar a〜を消したらメモリーがフリーとなり、mainの内側のcar a〜だけでコンパイル成功?
って言うことでしょうかね?
だけらmainの内側のchara〜にconst付けなくてもコンパイル成功した?
って言うことでしょうかー
AVRはコード中に文字列定数書くと、それがみんなRAMに切られてどんどん減っていく
832 :
電光掲示板:2015/01/21(水) 21:34:36.30 ID:OYqXTs4i
訂正
〜mainの内側のchar a〜の頭にconst付けなくてもコンパイル成功しました〜
833 :
電光掲示板:2015/01/21(水) 21:35:39.25 ID:OYqXTs4i
なるほどー
834 :
電光掲示板:2015/01/21(水) 22:18:45.40 ID:OYqXTs4i
グローバル変数とローカル変数を意味もなく2つも配列指定した事が直接的な原因ですね!
勉強できました。
初歩的なことですいませんでした。
しかも、データーが変化しない内容ならconst付けて変数指定することが最善ですね。
const指定した変数はデーターエリアに書き込まれるのでしょうか?
なんとか少なくしたいですね。
835 :
電光掲示板:2015/01/21(水) 22:55:33.07 ID:OYqXTs4i
配列変数 const char a[16][4]にして、mainの前に出してグローバル変数にしてコンパイルすると、dataメモリー使用量が70%程度から1%に激減しました!!
配列はおくが深い・・・・
変数から定数化してグローバル化すると凄い事になる。。。
電気電子板で言語規則について語るのも違和感あるけど
ここ以外では回答帰ってこないだろうからそんなもんだと納得してる
その名前は何がしたくて付けてるのかな
アホなのかな
>>835 C言語の基礎位はGoogle先生に頼った方がいいと思うが
>>804も言ってたけど Cの仕様とPICの仕様が
ごっちゃになってるので気をつけよう
840 :
774ワット発電中さん:2015/01/22(木) 23:37:51.97 ID:EwwlGgxw
>>823 mainの外(関数の外)で宣言した変数は、同じファイル内のどの関数からでも使える。
関数内で宣言した変数は、その関数内でしか使えない。
外で宣言した変数と同じ名前で、関数内で宣言すると、関数内の変数が優先される。
constは変更できない変数だが 、XC8では特に指定しない限りは、ROM内に配置される。
*パソコンのソフト等では、プログラム部分と同じ、書き換え禁止設定された領域に
配置されるのが普通
構造化とかオブジェクト指向とか、いろいろ名前を変えながら、
結局名前空間をどうしようと右往左往しているに過ぎない
>>841 プログラムは名前付けが一番重要って説があるくらいだからな
>>840 >外で宣言した変数と同じ名前で、関数内で宣言すると、関数内の変数が優先される。
外で宣言した変数はどうなります?
ただ、メモリ食ってるだけで、使われずじまい?
>>843 他の関数内で使える
使わなければ単にメモリ食ってるだけ
名前が大事って言うけど、変数名とか識別子とか長くなると、コンパイルしたファイルが大きくなるとか
実行速度に影響してくるとかそう言う弊害はないんだろうか?
俺はあんまり気にせずに判りやすさ優先で長めの名前をつけてるんだけど。
>>845 debug情報入れてコンパイルすればでかくなるだろうけど、無しにすれば関係ないだろ
>変数名とか識別子とか長くなると、コンパイルしたファイルが大きくなる
>とか実行速度に影響してくるとか
全く完全に無関係
848 :
845:2015/01/23(金) 07:27:18.93 ID:rkzcBzW2
おお、レスありがとうございます、これで安心して長い名前を付けられます。
自分は結構フィーリングでプログラミングするタイプなので
変数名とか長目につけておかないと、よくわからなくなっちゃうんです><
PCプログラムじゃそんなこと気にする必要はないんでしょうが
PICだと影響出てくるんじゃないかなと気になってたところなんで、安心しました。
いや、分かりやすい変数名にする癖をつけることは大切だよ
よくループカウンタ変数に
unsigned char i
とか一文字変数名つける基地外がいるけど、もしこれが
unsigned char loop_counter_local_variable_value_i
って最初から命名されていれば誰だってこの変数がローカル定義のループ
カウンタ変数だって分かる。
なるほどB.W.カーニハン/D.M.リッチーは基地外と
>>845 リンクした後は、全て実アドレスに変換されるから問題無し。
ループ変数が i なのはFORTRANの慣習からきてるんじゃなかったか
>>850 古典としての価値はあるだろうけど、今現在においても一文字変数を使う奴は
ただの基地外でしょ。全く完全に意味が無い。
プログラム作法って本があって、ループ変数はijkを使えと書いてなかったか?
また、LINQやラムダ式では短めの変数じゃないと見にくいぞ。
LINQやラムダ式はその変数の解説文みたいなもんだからな。
ループ関数にijk以外を使うとか嫌がらせか
>>853 ijで済む所に下手糞な名前を付けるのは℃素人。
ijなら誰が見ても簡単なカウンタだとすぐにわかる。
本人しか理解できない名前は所詮ゴミ。
DQNが思いいれたっぷりの名前を子供につけて笑われるのと同じwww
>>848 試してみるなりアセンブラソースだしてみるなりしなさいよ...
>>856 >本人しか理解できない名前は所詮ゴミ。
>unsigned char loop_counter_local_variable_value_i
これみてローカル定義のループ変数だと分からない奴はおらんだろ
>>856 本人しか理解できない意味不明な変数作って言う台詞なのか?
そもそもijkみてローカルループ変数ってわからない素人がとやかく言うなよ
ijkでループ変数と分かるはず。
世界標準の変数名をください。
>>858 iの代わりにそんなに長い視認性の最悪な名前を付けてなんのメリットがあるんだ?
iなら一目でわかるだろうに。
>>849 ループ用変数に i を使うのは伝統的手法だろ。
>unsigned char loop_counter_local_variable_value_i
助長すぎてわかりづらい。
ループ変数をグローバルに置くやつはいないから local なんていらない。
最後の _i も要らないだろ。
わざとやっているのでは無いなら、あなたの方が偏執的。
誰にもネタをわかってもらえないこの感じ……
お爺ちゃんたち、朝早くから元気なのはいいんだけどさw
ここはあくまでPICのスレなんで、どうでもいいC言語談義は
老人会かどっかでやってくyれませんか?wwwww
そろそろお前が出てくる頃だと思ってたよ
行番号が小さいほうがメモリを食わないと思って1から始めたものじゃよ。
ijk! ijk! ijk!
>loop_counter_local_variable_value_i
視認性が悪くて仕方ない。
そして、loop_counter_Iocal_variadle_vale_i
とかって書いてエラーになるんだよね。
for(loop_counter_local_variable_value_i=0; loop_counter_local_variable_value_i < loop_counter_local_valiable_value_i_max_value; loop_counter_local_variable_value_i++) {
:
なんかいやだな。
>>871 for(
loop_counter_local_variable_value_i=0;
loop_counter_local_variable_value_i < loop_counter_local_valiable_value_i_max_value;
loop_counter_local_variable_value_i++
) {
ほら、これでステップ数5倍。
ちゃんと可読性による品質向上という意味のあるステップ数なので、工数が増えてお金がもらえる。
オナニー変数を付けたいならハンガリアン記法も追加したらどう?
ucLoop_counter_local_variable_value_i
unsigned charも気持ち悪いので
typeでloopCounter8bitとか定義して
loopCounter8bit lc8Loop_counter_local_variable_value_i;
これで他人が見たら不快になるコーディングが出来上がる
ここで空気を読まずに
loopCounter8bit lc8LoopCounterLocalVariableValueI;
とソースを短く出来たと喜ぶおじいさんの出番はありませんか?
そこは8ではなくEightで
loop_counter_local_variable_value_i の、
loop_counterは、ループ用のカウンタだから、わからないでもない。
localは、グローバルではないことを示すのだろうけど、
variable_valueって、何? constじゃないことを言うのか?
最後にiを使っては、反則でしょう。
変数名の長さ。ほどほどにしないと面倒なこともある。
Watchで表示する領域が幅を取る。印刷時に切れてしまうかも。
publicなスコープの変数はg_つけてprivateだとm_そんな感じだな
個人的にはpublicな変数がダイレクトに値変更されるのが嫌で、オーバーヘッドは発生するけど
わざと関数なりメソッド通しにしてるのは窓アプリ屋習慣かも
>>870 今時補完も効かない環境でコーディングする自信がないわ w
>>878 ハード屋にとっては、グローバル変数は抵抗無い。
>>879 定義の方がTypoしちゃってて、それを後からソース見た人に指摘されるんですね。わかります。
windowsのAPIに慣れてる人だと、
unsigned char loop_counter_local_variable_value_i も冗談に見えない
そういう奴らが書くプログラムは鈍臭い
>>882 マイクロソフトもMFCがやり過ぎだったので.NETになってからハンガリー記法禁止と新APIから命名もシンプルになった
未だにMFCに習って英文的な変数を付ける生き残りが居るのか。
誰もいなくなってたという事に気付いていないのかな?
会社にそんな老害が居たら不幸だろうな
>>882 そんなソースを何かの拍子に客がみたら、「あんたとこ、社内レビューやってないの?」って言われるッす
//ガミラス文字を使用するならフォント置き換え。
if (cullentFont == TYPE_GARMILLAS) {
for (int i = 0; i < 48; i++) {
if (Message_Of_Replaced_For_Display[i] == MESSAGE_CHAR_NULL) {
break;
}
//数字置き換え
if (Message_Of_Replaced_For_Display[i] > 15 && Message_Of_Replaced_For_Display[i] < 26) {
Message_Of_Replaced_For_Display[i] = Message_Of_Replaced_For_Display[i] + 80;
}
//大文字置き換え
if (Message_Of_Replaced_For_Display[i] > 32 && Message_Of_Replaced_For_Display[i] < 59) {
Message_Of_Replaced_For_Display[i] = Message_Of_Replaced_For_Display[i] + 73;
}
//小文字置き換え
if (Message_Of_Replaced_For_Display[i] > 64 && Message_Of_Replaced_For_Display[i] < 91) {
Message_Of_Replaced_For_Display[i] = Message_Of_Replaced_For_Display[i] + 41;
}
}
}
こんなコード書くときは一時的に仮の変数にでも代入すべきなのか?
どうしようか迷う。
>>886 InNumber, IsUpper, IsLower みたいなマクロを定義するのがオレ流
if (IsNumber(Message_Of_Replaced_For_Display[i]) {
Message_Of_Replaced_For_Display[i] += 80;
}
else if (IsUpper(Message_Of_Replaced_For_Display[i]) {
Message_Of_Replaced_For_Display[i] += 73;
}
else if (IsLower(Message_Of_Replaced_For_Display[i]) {
Message_Of_Replaced_For_Display[i] += 41;
}
みたいに書けるようにする
変数なんて一度だけ入力したらあとはコピペだから、
長さはどうでもいいんだけどね
可読性だけの問題
890 :
886:2015/01/23(金) 21:32:30.13 ID:SGJS+Wvd
>>887 こうすればだいぶすっきりして見やすくなりますね、
ありがとうございます。
あと”+= ”って表記も知らなかったので、
こう書けばもっと短くなるんですね。
>>886 変換テーブル作って引くほうが他人が見やすい
const unsigned char lut[]={0.1.2.3.....}; //ガミラス変換look up table
if (cullentFont == TYPE_GARMILLAS) {
char *msg=Message_Of_Replaced_For_Display;
while(*msg) {
*msg++ = lut[*msg];
}
}
892 :
774ワット発電中さん:2015/01/23(金) 21:53:31.80 ID:Cbf2xL7s
>>889 >可読性だけの問題
だから その可読性が問題だと言ってるやん
重箱の隅かな
でかい重箱だな
でかいほど隅の比率は小さいんだな
「隅」の定義にもよる
ダメだろ、i なんか使っちゃ
if (IsNumber(Message_Of_Replaced_For_Display[loop_counter_local_variable_value_i] ) {
Message_Of_Replaced_For_Display[loop_counter_local_variable_value_i] += 80;
}
ループ用に変数が要るという言語が古いんだけどな
全要素に対して実行、みたいな書き方ができないと
>>898 じゃあ要素数10の一次元配列について、後ろから順番にフォーイーチで処理する
例を教えてください
日本語変数名が一番
>>899 perl なら配列からpopしてけばできるけど、
あえて後ろから処理するってことは、インデックスが必要なのでは?
>>901 For each じゃダメな例をあげて皮肉ってるんだろ
>>900 だな。この際、甲・乙・丙・丁、松・竹・梅、月・桂・冠・・・etc
つうかプログラム言語の大部分が英語由来で、ウチらに取ってはネイティブの言語でないというのは
逆に抽象的に思考しやすくなるというメリットが有るんじゃないかと思う。
日本語のプログラミング言語がどれもこれも大して広まっていないがその証拠だ。
なまじ日本語だと読めすぎて判りづらくなる。
現状で生き残ってる日本語プログラミング言語ってなでしこぐらい?
さすがにもうMindは使われないだろうし・・・と思って公式サイト見に行ったら
なんとAndroid版を開発したんかい(笑) 頑張る人は頑張ってるようだ。
最近の言語はUTF-8対応してるから、日本語プログラミングっぽくはできるな
あとは、日本製ってことならRubyががんばってるな
>>905 DB系は変数やテーブル名に日本語が使える
>>905 Win32版 Mind は、exe を直接吐き出せて重宝した。
「〜から 〜を 引く」と「〜を 〜から 引く」の両方を文法的に許してしまったのは失敗だと思う。