PIC専用のスレ Part35

このエントリーをはてなブックマークに追加
1774ワット発電中さん
....  /Microchip ./|
 /( ゚∀゚)    /  | アセンブラのアの字もわからない
 |~ ̄ ̄ ̄ ̄ ̄|  /. 超初心者からHEXが読めてしまう
 |/Z./Z./Z./Z_|/ ||  鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ
  ||. ||. ||. ||

大人気のPICマイコンのスレ。
なんといっても情報が豊富だし、開発環境も多いし、パッケージも豊富。
使いやすくて、しかも安い。やっぱりPICだよね。

例の如く基本リンクだ
http://www.microchip.com/  マイクロチップ本社(Microchip Technology Inc. )
http://www.microchip.co.jp/ マイクロチップ テクノロジー ジャパン 株式会社
またーりやっておくんなまし。
教えて君はとりあえずGoogle(http://www.google.co.jp/) くらい使おう

前スレ
PIC専用のスレ Part34
http://kamome.2ch.net/test/read.cgi/denki/1309466648/
2774ワット発電中さん:2011/08/19(金) 22:19:35.89 ID:KUi8ADw6
>>1
2gt!
3774ワット発電中さん:2011/08/26(金) 11:08:57.17 ID:SUS+46J2
3set
4774ワット発電中さん:2011/08/26(金) 11:56:53.44 ID:14Mfk5or
あれ?なくなってる
5774ワット発電中さん:2011/09/03(土) 03:52:51.18 ID:iCHuIoyV
そろそろ危ない?保守あげ
誰だよ?重複した奴は?w
6774ワット発電中さん:2011/09/07(水) 11:28:47.64 ID:cHV56OY3
PICは面白いぜwww
7774ワット発電中さん:2011/09/11(日) 23:00:27.13 ID:dzBcQegV
ピクニックピクニックランランラン♪
8774ワット発電中さん:2011/09/12(月) 21:23:12.70 ID:S1Pa3XPC
貧乏な俺には持って来いの趣味だよ
9774ワット発電中さん:2011/09/16(金) 10:43:56.84 ID:4xv25P/E
ぴっ苦
10774ワット発電中さん:2011/09/23(金) 01:18:04.74 ID:t1gpQFOi
10げっち
11774ワット発電中さん:2011/09/24(土) 01:11:29.77 ID:ZrkLo4kS
[新シリーズのPIC16F1xxx テンプレ用] ('11/09版)
旧シリーズより機能が大幅にアップしていて値段も下がってる。新規に組むならこちらから選択すべき
秋月に入荷していないラインナップも表記(未)。円高のおかげか若干値下げあり(v)

[40pin] 16kwハ必要ナイカモシレナイケド10円差ナラ
v◎16F1939 \170 16Kw 1024 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2
v○16F1937 \160 08Kw 0512 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2

[28pin] こちらも10円差なら
-◎16F1938 \150 16Kw 1024 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
v○16F1936 \140 08Kw 0512 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2
v×16F1933 \140 04Kw 0256 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2

[20pin] こちらは秋月に無し
-未16F1829 ---- 08Kw 1024 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
-未16F1828 ---- 04Kw 0256 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2

[18pin] 18ピンの割にMSSPが2コ,ADC入力ピン多,タイマーx5,CCPx4と多機能
-未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
v◎16F1827 \110 04Kw 0384 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2
-未16F1826 ---- 02Kw 0256 I/O16 ADC12 CapS12 Comp2 Timer2/1 MSSP1 ECCP1/- CCP-

[14pin] 下位のチップしかなく機能的に8ピンとあまり変わらないのは残念
-未16F1825 ---- 08Kw 1024 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
-未16F1824 ---- 04Kw 0256 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2
v◎16F1823 \090 02Kw 0128 I/O12 ADC-8 CapS-8 Comp2 Timer2/1 MSSP1 ECCP1/0 CCP-

[8pin] 8ピンでUSARTもI2Cも使えるってのは大きいね
-未12F1840 ---- 04Kw 0256 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-
-◎12F1822 \080 02Kw 0128 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP-

 表記 Timer[8bit]/[16bit],ECCP[Full]/[Half],CspS=CapSense,Comp=Comparator
 共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計(?)

VDD1.8〜5,5V,Max32MHz(Vdd2.5V以上),4xPLL有,内蔵OSCでも32MHz可
プログラム面で新命令追加,bankは32マデ拡張,スタック16レベル,LATが追加,割込時のレジスタ自動保存
16bit幅で2本になったFSRデ連続配置RAMやプログラム領域アクセス可能

追加命令群
ADDWFC,SUBWFB : キャリー,ボローを含んだ加減算
ASRF,LSLF,LSRF : シフト命令
BRA : PCLATHやページ境界に関係なく相対ジャンプ [9bit幅] PC+255〜PC-256へ
BRW : PCLATHやページ境界に関係なく前方へのみ相対ジャンプ PC+W(0〜255) ADDWF PCL,f ヨリ便利
CALLW : 上位はPCLATH,下位はWのアドレスにサブルーチンコール
MOVLB,MOVLP :バンクセレクト,PCLATHに直接定数入れる
TRIS,OPTION :TRIS(A〜C),OPTION_REGにWの値入れる(12bit幅品互換?)
RESET : ソフトウェアリセト
ADDFSR : FSRに定数(-32〜+31)加減算
MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能
12774ワット発電中さん:2011/09/24(土) 01:12:41.71 ID:ZrkLo4kS
秋月のPIC12/16F(旧)シリーズ 命令セット14bit幅&DIP品限定ピン数別評価
あくまでも旧シリーズ内での相対評価。新シリーズが使えない場合のみ有効
値下品多数あり(先頭のvは値下げ,-は維持,*は新規)'11/9更新版
40ピンは決まり
v◎16F887 \180 40ピン600mil幅が許せるなら 旧シリーズ最強
28ピンはフラッシュとSRAMの差をどうとるか
v◎16F886 \170 887よりピン数減ってスリム(400mil幅)
v○16F883 \150 886との違い8Kw→4Kw,SRAM368Byte→256Byte
ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31K-8MHとフルサポート
新しめのチップで内蔵モジュールも多,大きささえ許せば20,18ピンよりこちらを

20ピンはF690のバリエーション多,価格差小なのでF690か,OPアンプF785,ポート割りがチョットカオス
v◎16F690 \140 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31K-8MHzとバッチリ
v○16F689 \130 F690からeCCP機能削られた
v△16F687 \120 さらにF689を2Kwと半分に
v×16F677 \120 さらにF687からeUSARTも削られた
v×16F685 \150 F690からSSP&eUSART機能が削られたのに値段高いとは
v◎16F785 \130 ADC有,CCP有,2Kw,内蔵31K-8MHz,OPアンプ搭載が異色(新シリーズにも無)

18ピンは種類は多いけど選択の幅は狭い。値段でF716いっそ20pinにするか
-×16F84A \250 機能無,1Kw,新規では不要だけど作例参照用or互換用に
v×16F648A \160 CCP有,USART有,4Kw,内蔵4MHz,ADC無同士でF87に軍配
v△16F628A \140 F648Aの2Kw版,売りが値段だけだと厳しいかな
v△16F627A \120 F648Aの1Kw版,上に同じ
v×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・
-○16F88 \200 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31K-8MHzと旧18ピンの王者ダガ高い
v○16F87 \150 F88のADC無Ver,ADC無が問題なければ
v○16F819 \170 ADC有,CCP有,SSP有,2Kw,内蔵31K-8MHz,F88とはROM,USARTの差
v○16F818 \150 F819の1Kw版,多機能なだけに1Kwに不安を感じる
v◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意

14ピンは10円差ならF688
v◎16F688 \110 ADC有,eUSART有,4Kw,内蔵31K-8MHz,CCPは無が残念
v△16F676 \100 ADC有,1Kw,内蔵4MHz
v×16F630 \100 F676のADC無し 無機能で影薄い

8ピンは多機能のF683かEEPROM無くても良いなら\60のF615
v◎12F683 \100 ADC有,CCP有,2Kw,内蔵31K-8MHz,8ピンとしては多機能
v△12F675 \80/90 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版,
v△12F629 \70 675のADC無(機能無しってこと),EEPROM必要で安いの求めるなら
v△12F635 \90/100 機能無し,1Kw,内蔵31K-8MHz,31KHz〜必要なら,環境によってはE/P版
v◎12F615 \60 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無さえ問題なければ
v×12F609 \60 F615からADC,eCCP機能省かれてる

(参考)機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
v△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら
-△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら
-×12F510 \60 ADC有(8bit),1kw,内蔵4Mor8MHz,EEPROM無し
v×12F509 \50 機能無し,1Kw,内蔵4M,EEPROM無し
v△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用
v△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用

マークの意味
◎お勧め、用途決まっていないならこれ買っとけ
○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ
△内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書にのってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
13774ワット発電中さん:2011/09/24(土) 01:14:40.82 ID:ZrkLo4kS
秋月のPIC18Fシリーズ 5V動作可で比較的高速(12MIPS)だが16F1xxx(8MIPS)
dsPIC30F(30MIPS)に挟まれて値段も高めで苦しい,拠り所はUSB

40ピン USB不要なら18F4525もありかな
◎18F4550 \370 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP1/1,SPP
△18F4520 \340 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP1/1
○18F4525 \380 24Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1
△18F4585 \500 24Kw/3328/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1,CAN
×18F452 \500 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/1

28ピン USB不要なら大容量で18F2620あたりも
◎18F2550 \350 16Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0
△18F2455 \340 12Kw/2048/256 [USB],Max48MHz(31k-8MHz),PLL,CCP2/0
○18F2450 \260 8Kw/768/0 [USB],Max48MHz(31kHz),PLL,CCP1/0,eUSART,MSSP無,TMR16bitx2少
△18F2420 \280 8Kw/768/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0
×18F2320 \420 4Kw/512/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0
○18F2620 \420 32Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP2/0
×18F258 \530 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/0,CAN

20ピン 値段的にも格安でお得
◎18F14K50 \170 8Kw/768/256 [USB],Max48MHz(31k〜32MHz),4xPLL,CCP0/1

18ピン 2ピン差だと体積的にメリット小
×18F1320 \220 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1

PIC18F共通 VDD 〜5.5V,10bitADC,eUSART,TMR8bitx1/16bitx3,MSSP

24,dsPICシリーズ(24F,dsPICは品数限られているが値下げでお買い得感向上)

40ピン
v○30F4013 \480 16kw 2KB EEPROM1KB
v×30F3014 \500 8kw 2KB EEPROM1KB

28ピン
v◎24FJ64GA002 \330 21.3kw(64kB) 8KB EEPROM無 リビジョンはイクツカナA3/4ハナイヨナ
v◎24HJ12GP202 \260 4kw 1KB EEPROM無 この値段で40MIPSはお得感大きい
v○30F4012 \460 16kw 2KB EEPROM1KB 5V動作必須でメモリ大きいのなら
v×30F2020 \500 12kw 0.5KB EEPROM無
v△30F2012 \350 4kw 1KB EEPROM無 5V動作必須で安いの欲しいなら
v◎33FJ32GP202 \320 11kw弱(32kB) RAM2KB メモリサイズ許容できれば24FJ64より、高速

18ピン
v○30F3012 \400 8kw 2KB EEPROM1KB

共通
24Fシリーズ Vdd2.0-3.6V Max16MIPS (一部ピン5V入力可)
24Hシリーズ Vdd3.0-3.6V Max40MIPS
30Fシリーズ Vdd2.5-5.5V Max30MIPS DSP命令有,(5V動作可)
33Fシリーズ Vdd3.0-3.6V Max40MIPS DSP命令有
14774ワット発電中さん:2011/09/24(土) 14:57:21.72 ID:NWTviUwh
天ぷら乙

もう16f877は時代遅れ感があるな・・・
VBも.netになって以降ついてけなくなって頑なに6使ってるし

こうやって時代に取り残されていくのだろうか・・・・
まだ20才です
15前スレ990:2011/09/24(土) 15:03:40.11 ID:yvnsC6cq
で、前スレ993は、 KiB わかったのか?
恥ずかしくてもう来ないか?w
16774ワット発電中さん:2011/09/24(土) 15:27:36.03 ID:Yt9MTF/2
自分が知ってるものが全てで、知らないものは調べもせず否定するのはワロタ
新しい概念に付いていけない人なんだろうね
17774ワット発電中さん:2011/09/24(土) 15:55:14.15 ID:XPXUMOEM
SPIバス(Master mode)を利用したいと考えています。
下記の設定でSPI1BUFにデータを書き込んでも、
データ送受信が発生しない問題で行き詰ってます。
大変恐縮ですが、アドバイスを頂けたらと思います。

【デバイス/開発環境】
@dsPIC33FJ32GP202
AMPLAB v8.73
B開発言語 C言語(MPLAB C30 コンパイラ)

【現象】
@下記の設定では、SCK1OUTピンがRB14に割当てられ、
 SPIバスがIdle modeでHレベルを出すのが期待される。
 しかし、オシロスコープで観測すると、High-Zに
 なっている模様。何もしないとLレベルでフラフラ
 してるが、10kΩ抵抗でプルアップすると電源レベルに張り付く。
ASPI1BUFに値を代入すると、SPI1STATレジスタのSPITBFビット
がセットされるが、一向に解除されない。送信イベント
(SCK1OUTでのバーストクロック)が発生しない。

BdsPIC33Fから導入されたPeripherarl Pin Selectの問題が
 疑わしいが、 同様の設定コードでUARTのTx/Rxピンの割当を行い、
 問題なく通信ができている。

18774ワット発電中さん:2011/09/24(土) 15:58:29.64 ID:XPXUMOEM
【SPIバス関連のSFR設定】
__builtin_write_OSCCONL(OSCCON & ~(1<<6)); // unlock sequence
RPINR20bits.SDI1R = 8; //SDI pin is mapped to RP8(=>RB8)
RPOR7bits.RP14R = 0b01000; //SCK1OUT pin is mapped to RP14(=>RB14)
RPOR7bits.RP15R = 0b00111; //SDO1 pin is mapped to RP15(=>RB15)
__builtin_write_OSCCONL(OSCCON | (1<<6)); //lock
IFS0bits.SPI1IF = 0; // Clear the Interrupt Flag
IEC0bits.SPI1IE = 0; // Disable the Interrup
//Configuration for SPIxSTAT, SPIxCON
SPI1STATbits.SPIEN = 1; //1 = Enables module
SPI1STATbits.SPISIDL = 0; //0 = Continue module operation in Idle mode
SPI1STATbits.SPIROV = 0; //0 = Clear Overflow bit.
19774ワット発電中さん:2011/09/24(土) 15:59:56.22 ID:XPXUMOEM
(つづき)
SPI1CON1bits.MSTEN = 1; //1 = Master mode
SPI1CON1bits.DISSCK = 0; //0 = Internal SPI clock is enabled
SPI1CON1bits.DISSDO = 0; //0 = SDOx pin is controlled by the module
SPI1CON1bits.MODE16 = 1; //1 = Communication is word-wide (16 bits)
SPI1CON1bits.SMP = 0; //0 = Input data sampled at middle of data output time
SPI1CON1bits.CKE = 1; //1 = Serial output data changes on transition
// from active clock state to Idle clock state

SPI1CON1bits.SSEN = 0; //0 = /SSx pin not used by module. Pin controlled by port function
SPI1CON1bits.CKP = 1; //1 = Idle state for clock is a high level; active state is a low level
SPI1CON1bits.SPRE = 0b110; //110 = Secondary prescale 2:1
SPI1CON1bits.PPRE = 0b01; //01 = Primary prescale 16:1
//SCK frequency 1.25MHz(40MHz/32)
SPI1CON2bits.FRMEN = 0; //0 = Framed SPIx support disabled

断片的な情報しか書ききれませんでしたが、
何かお気付きの方がいらっしゃいましたら、
ご助言を頂けると幸いです。
20774ワット発電中さん:2011/09/24(土) 18:36:39.74 ID:l7KbKg6j
前スレ>993のキビタンの反論が、いつ来るか楽しみでならないww
でもやっぱ、逃げかな?
21774ワット発電中さん:2011/09/25(日) 19:11:39.13 ID:lwPExzHj
LastRcv

BANKSEL SSP1BUF
MOVLW 0


MOVWF SSP1BUF
BCF PIR1, SSP1IF ;割り込みフラグクリア
  BANKSEL SSP1CON2
  BSF SSP1CON2, RCEN ;受信許可
  BANKSEL PIR1
     BTFSS PIR1, SSP1IF ;受信完了?
     GOTO $-1
BCF PIR1, SSP1IF ;割り込みフラグクリア
BANKSEL SSP1CON2
BSF SSP1CON2, ACKDT ;NOACKにセット
BSF SSP1CON2, ACKEN
BANKSEL PIR1
BTFSS PIR1, SSP1IF ;NOACK送信完了?
GOTO $-1
BCF PIR1, SSP1IF ;割り込みフラグクリア
BANKSEL SSP1BUF
MOVF SSP1BUF, W ;データ取得
RETURN

電子工作の為のPIC16F活用ガイドのI2Cの使い方のリストを手直ししたのが上のリストです。
I2CでEEPROMからデータを1バイト受け取るサブルーチンです。
当初、受信データが格納されるSSP1BUFに毎回FFが代入されていました。
EEPROMの内容は何度も確認しましたがFFでは無かったので、
試しに受信する前に一度SSP1BUFに0を代入させてみました。
そうすると、案の定データ受信後にSSP1BUFを確認すると毎回0でした。
ここに至ってSSP1BUFに受信データが格納されていない事が判りました。

で、それが何故なのかがわかりません。
このリストで何か判る事はないでしょうか?
よろしくお願いいたします。
22774ワット発電中さん:2011/09/25(日) 20:10:13.41 ID:VM1EVJvn
>>17
IOL1WAY コンフィグレーション ビット(FOSC<5>) は?
23774ワット発電中さん:2011/09/25(日) 21:09:47.60 ID:VM1EVJvn
>>21
その前に行っておかなければならない Repeated Start Condition や
リードビット付きアドレスの送信はやってあるの?
24774ワット発電中さん:2011/09/25(日) 22:01:57.53 ID:hQCkwEJg
PIC16F688のAD変換について教えてください。

調べてみると、変換した値はADRESH、ADRESLに出力される
となっていました。
これは、ADRESH、ADRESLには同じ値が格納されるのでしょうか?
それとも、変換の結果によって、格納される値は違うのでしょうか?
25774ワット発電中さん:2011/09/25(日) 22:33:41.90 ID:FQ1TKLhw
例えば10bitデータなら
ADRESH ADRESL の順に
12345678 9A****** (左詰め)か
******12 3456789A (右詰め)と格納されます
26774ワット発電中さん:2011/09/26(月) 04:11:22.14 ID:VPTvo7F9
>>24
もう1歩だね。
レジスタ名が、ADRESH、ADRESLと異なる名前になっていて、しかも
末尾だけHとLの違いなのだから、上と下、上位、下位と発想したい。
省略語のフルスペルが、どういう意味かを常に考えてマニュアルを読むといいよ。
AD RESult High = AD変換結果 上位側
AD RESult Low = AD変換結果 下位側
Resultは、結果という英語。

BOR = Brown Out Reset とか。
27774ワット発電中さん:2011/09/26(月) 07:07:02.68 ID:9cxAQNRg
>>23

はいPICkit3でブレークポイントをつけながら確認しています。
2821:2011/09/26(月) 09:32:27.93 ID:9cxAQNRg
すみません。よく確認しましたからACKが返って来ないのが原因でした。
Send

BANKSEL PIR1
BCF PIR1, SSP1IF ;割り込みフラグクリア
BANKSEL SSP1BUF
MOVWF SSP1BUF ;送信
BANKSEL PIR1
BTFSS PIR1, SSP1IF ;送信完了か?
GOTO $-1
MOVLW 0
BANKSEL SSP1CON2
BTFSC SSP1CON2, ACKSTAT ;ACK検出か?
MOVLW 0FEH ;エラー
RETURN

そもそも受信以前に最初のコントロールバイトの送信時点でACKが返っていませんでした。
このACKが返らないという事ですが、

1 一定の時間待ってもACKが来なかった
2 NOACK等の応答があった。(そもそもNOACKとはどんな波形の信号なのか?)

という疑問があります。
1 の一定の時間待ってもACKが来ない場合、通信相手のEEPROMが正しく動作しているのか?
というところから確認する必要がありそうですし
2 ならとりあえず、通信相手と意思の疎通は図れているという事になります。
まずはこのどちらかなのか切り分けしたいのです。

書籍によりますと、PIR1レジスタの SSP1IFがセットされる要因として、
データ送信後のACK受信完了とありますので、これが正しいなら何故に送信完了後に
BTFSC SSP1CON2, ACKSTAT
としてACKを確認しているのか?ならばACKかNOACKかを確認しているのか?
このあたりの事どなたか解説願えないでしょうか?
よろしくお願いいたします。
29774ワット発電中さん:2011/09/26(月) 09:59:19.44 ID:I8R0VLqV
>>27
SSP1BUF に書くと送信するはずだけど?
SSP1BUF には、直前のアドレスが入っているはずなのに、
0xff が入っているのは受信できているのでは?
SSPSTAT,BF や SSPCON,SSPOV は確認してる?
30774ワット発電中さん:2011/09/26(月) 10:45:14.03 ID:6hzP19PC
>>28
SSPでI2Cやったことないから一般的なことしか言えないけど、
I2Cは1バイトの8ビット送信後、9ビット目がACKだ。
NOACKを返すなんてのはなくて、9ビット目にACKを返さなかったらNOACKだ。

で、9クロック分の転送作業が終了したらSSP1IFが立つ。
ACKSTATは、その9ビット目が1だったか0だったかを示している。
31774ワット発電中さん:2011/09/26(月) 10:56:28.29 ID:I8R0VLqV
>>28
>1 一定の時間待ってもACKが来なかった
データのタイミングは、マスタが出すクロックが基本です。
スレーブは、時間稼ぎのためにクロックをロウに引っぱることができます。
データやクロックはプルアップされているだけなので、
マスタやスレーブはロウに引っぱることだけができます。
ロウに引っぱったままのデバイスがバス上に存在するとバスは使えなくなります。

>2 NOACK等の応答があった。(そもそもNOACKとはどんな波形の信号なのか?)
データのやりとりは、9ビット単位で行われます。
送信側からデータが8ビット送信され、受信側から9ビット目がACKとして送信されます。
ACKは、データを受信したことを表し、データをロウに引っぱるだけです。
アドレスの送信でACKが返ってこなかったら、そのアドレスのデバイスが存在しなかったということになります。

SSP1IF だけでは、何が起こったのかはっきりしたことはわかりません。
BCLIF というのもありますね。

このモジュールでは、時間がかかることは、1度に1つのことしかできません。
次のようなチェックを推奨しています。
movf SSPCON2,w ;
andlw 01fh ;Checks SEN,PEN,RSEN,RCEN,ACKEN
;
btfss STATUS,Z ;
retlw I2CMBusNotIdle ;Indicates Bus is not Idle
;
bsf STATUS,RP0 ;
btfsc SSPSTAT,R_W ;Checks transmission in progress
retlw I2CMBusNotIdle ;Indicates Bus is not Idle
;
retlw 000h ;Indicates Bus is Idle
3221:2011/09/26(月) 14:05:16.20 ID:9cxAQNRg
>>29-31

ありがとうございます。

>I2Cは1バイトの8ビット送信後、9ビット目がACKだ。
>NOACKを返すなんてのはなくて、9ビット目にACKを返さなかったらNOACKだ。


>ACKは、データを受信したことを表し、データをロウに引っぱるだけです。
>アドレスの送信でACKが返ってこなかったら、そのアドレスのデバイスが存在しなかったということになります。

ACKはロウなんですね。
慣れないオシロですが、波形も確認できました。
9ビット目のクロック時データ線はオンのままです。

EEPROMのアドレスの設定が間違っているのかも知れません。
もう少し確認してみます。
3332:2011/09/26(月) 16:08:59.09 ID:9cxAQNRg
microchip社のEEPROM 24FC1025のアドレスピンA0A1A2ピンをデータシートにしたがってVCCとグランドに繋ぐ。
EEPROM側のアドレス設定はコレだけのはず。
試しにA0とA1のピンを様々に繋ぎ変えてみるも変化無し。
やけくそでEEPROMを取り外してみる。
なんと変化無し。PICから繰り返し信号を送るもなしのつぶてとはこの事か・・・

もうどうして良いものやら・・・・・
34774ワット発電中さん:2011/09/26(月) 16:32:17.74 ID:JEVZHGc+
>>33
日本語の仕様書があるからI2C使うならこのくらい読んどけよ。
http://www.nxp.com/acrobat_download/literature/9398/39340011_jp.pdf
35774ワット発電中さん:2011/09/26(月) 17:23:18.16 ID:I8R0VLqV
>>33
少し休んで落ち着いてから作業しましょう。
まず、配線が正しいか再確認します。
クロックが 400 kHz や 1 MHz ならプルアップ抵抗に 2 kΩ を使っているかとか、
A0 と A1 は GND、A2 は Vcc につながっているかも。
アドレスは、0xA0 か。
ボーレートが速すぎたりしていないか。
オシロがあるのですから、データシートのタイミングから外れていないかも確認できますね。
EEPROM の内容を別の装置で確認する。
3632:2011/09/26(月) 18:46:54.00 ID:9cxAQNRg
>>35

ありがとうございます。ゆっくりやってみます。
37774ワット発電中さん:2011/09/26(月) 19:33:24.06 ID:zpzRSRd2
>>22
レスありがとうございます。

>IOL1WAY コンフィグレーション ビット(FOSC<5>) は?

Cプログラムの冒頭で下記のように設定しております。
////コンフィギュレーション
_FBS(BWRP_WRPROTECT_OFF);
_FGS( GWRP_OFF & GCP_OFF);
_FOSCSEL( FNOSC_PRIPLL & IESO_ON);
_FOSC(POSCMD_EC & OSCIOFNC_OFF & IOL1WAY_OFF & FCKSM_CSDCMD);
_FWDT(FWDTEN_OFF );
_FPOR(FPWRT_PWR1);
_FICD(ICS_PGD2 & JTAGEN_OFF);

上記の設定では、IOL1WAYビット(FOSC<5>)は0になっており、
Allow Multiple Re-configurationsとしております。
引き続きデバッグ中を行っております。
デバイスを交換しても、同じが現象が発生するので、
プログラム上の問題かと思っているのですが、
原因が絞りきれていない状況です。

38774ワット発電中さん:2011/09/26(月) 20:08:58.10 ID:1NWXwn+7
スレチだとは思うけどここの人なら知ってそうだから投下
ノートパソコンの液晶の仕様書って出回ってたりする?
壊れたノートパソコンをなにかしら再利用したいんだが・・・
39774ワット発電中さん:2011/09/26(月) 20:12:39.20 ID:pnt5BmJ7
ノートの液晶は素直な信号線だからオシロで眺めればすぐにわかる。
40774ワット発電中さん:2011/09/26(月) 20:38:23.19 ID:xrtoQJpT
LVDSだから気をつけてね
4124です:2011/09/26(月) 21:27:52.89 ID:xZwKnsP7
25・26さんありがとうございます。
勉強になりました。
42774ワット発電中さん:2011/09/26(月) 22:16:02.49 ID:I8R0VLqV
>>37
ADC の設定を忘れているとかないよね?
43774ワット発電中さん:2011/09/26(月) 23:21:35.44 ID:I8R0VLqV
>>36
ICソケットの接触不良やイモ半田とかいろいろあるからね。
ICソケットはテスタが当てやすいものを使っているかい?
44774ワット発電中さん:2011/09/26(月) 23:34:29.17 ID:kvYtDekm
>>36
接触不良をテスタで調べるとき、テスタ当てたおかげで接触不良が解消する場合もあるから、ご注意を
45774ワット発電中さん:2011/09/27(火) 07:52:15.06 ID:L7tlKIDW
>>42
レスありがとうございます。

>ADC の設定を忘れているとかないよね?

dsPIC33FJ32GP202の場合、SPIバスに割当ててるRB14(SCK1OUT), RB15(SDO1)は
アナログピンAN9,AN10と共用しております。

そのため、アナログピンをディスエーブルに設定するため、下記の設定を
行っております。
恐らく、Peripheral Pinとして利用する場合は,
TRISBの設定は無効と思われますが、念のため設定しております。

TRISA = 0x0000; //All pin of Poart-A is set to be output mode.
TRISB = 0x0000; //All pin of Poart-B is set to be output mode.
ODCA = 0x0000;
ODCB = 0x0000;
AD1PCFGL = 0x1fff; //1 = Port pin in Digital mode, port read input enabled,

46774ワット発電中さん :2011/09/27(火) 10:46:29.26 ID:jkPcPH0C
dsPIC33Fでメモリ->UART間DMA転送をやりたいのですが、キャラクター間のガードタイムは設定できるのでしょうか。
データシートを見ても解りませんでしたので...
47774ワット発電中さん:2011/09/27(火) 11:56:24.63 ID:mQg8sBHg
>>46
DMAはCPUを介さずにハードウェアが出せる最高速度でメモリ間のデータ転送をする
ためのものだからUARTのような低速なものにウェイトをいれながら使うというのが
意味があるのか、できるのか、
48774ワット発電中さん:2011/09/27(火) 11:56:47.45 ID:AWBOEkd+
…で終わる文章を書くやつは無視するのが俺のやり方
49774ワット発電中さん:2011/09/27(火) 12:44:28.93 ID:cLBzKQA4
>>47
別にバースト転送だけじゃないだろ、
I/OやUART向けのDMAを備えたCPUもあるよ
50774ワット発電中さん:2011/09/28(水) 13:54:11.53 ID:Qm8obWSJ
>>49
DMAC は、データ転送をするだけだよ。
例えば、ADC では、AD 変換の間隔は ADC 側が決定するよね。
同じように、UART にガードタイムを入れるなら UART にその機能が必要だと思うよ。
51774ワット発電中さん:2011/09/28(水) 14:22:06.15 ID:Qm8obWSJ
>>45
PMD レジスタは?
52774ワット発電中さん:2011/09/28(水) 16:38:55.54 ID:I9B++vws
>>50
視野狭いねぇ
53774ワット発電中さん:2011/09/28(水) 18:23:21.94 ID:Qm8obWSJ
>>52
それで >>46 の希望する機能を持った DMAC 付きのマイコンはないの?
54774ワット発電中さん:2011/09/28(水) 18:49:52.62 ID:lqknnho6
FPGAやってるとそんな用途なら転送レート制限付きのDMAC書いちゃえってなるから困るw
55774ワット発電中さん :2011/09/28(水) 21:01:41.42 ID:8gmbL9QB
あらら。46ですが、UARTガードタイム設定てぎるのは、AVR32系とSAM系でできました。
各位殿、ありがとうございました。
一応、所望の動作ができました。 以上。
56774ワット発電中さん:2011/09/28(水) 21:26:35.11 ID:5UiS+sAt
手持ちのマイコンにもDMAがついてるのがいくつかあるけど、その機能を使う機会が
今のところない。(またはあっても見逃しているのか?)
どんなアプリケーションなら「DMAを使おうか」となるのかな。
57774ワット発電中さん:2011/09/28(水) 21:27:06.09 ID:I9B++vws
>>53
単なる情弱を支援する気はありません。
58774ワット発電中さん:2011/09/28(水) 21:56:39.00 ID:EsHNrUHk
>>56
シリアル通信の送信とDMAを組み合わせると便利。
ただ、フロー制御で停止させるのは面倒。
59774ワット発電中さん:2011/09/28(水) 22:13:07.15 ID:5UiS+sAt
シリアル通信自体を最近は使うことはあまりないけど、送信するときは8バイトとか16バイト
とかの配列を使って送信データをまとめてコピーしてあとはインデックス情報をもとに送信バッファ
エンプティ割込みで自動送信、そしてメインルーチンで他の処理を並行してやるって感じで使ってるな。
だから今までシリアル通信ではDMAを使うという発想がなかった。
60774ワット発電中さん:2011/09/29(木) 06:02:21.46 ID:172ueMQ2
DMA使う程の転送

マイコンが扱うデバイスの癖に転送速度が追いつかないケースとかか?
でもそれならFPGAなんて高級品もいらないなCPLD程度でもかませば良い訳だし

特化した機能は出番減ったな
61774ワット発電中さん:2011/09/29(木) 11:55:50.79 ID:MKkqSQYY
busy-waitで回すにはIOが遅すぎ、割込みで待つにはそのIOは速すぎる、
というクラスのIOでDMAを使うがな。
1MspsのADCとかデータ待ちにusオーダーかかるLCDとか、ほとんどこのクラスだが
使ったことないならそれはそれでいいんでね?
62774ワット発電中さん:2011/09/29(木) 18:46:49.12 ID:Z4F87DiM
>>45
関係ないと思うけど、
PMD レジスタの ADxMD ビットをセットした後にクリアすると、
ADC モジュールレジスタは既定値状態にリセットされるそうです。
AD1PCFGL レジスタもその影響下にあるそうです。
ADxMD ビットをセットしたままなら問題ありません。
63774ワット発電中さん:2011/09/30(金) 07:22:49.73 ID:T9N4lZ0a
>>60
>特化した機能は出番減ったな

それは自分が使いこなせて無いだけ。
特化するって事はピンポイントで大きな需要があるからだし、遊びで機能が追加されてる訳じゃない。
64774ワット発電中さん:2011/09/30(金) 12:41:53.69 ID:3RGgtFyF
>>63
使う必要もないものを使いこなせといわれてもね。
「ピンポイントで大きな需要」なんだろ。
65774ワット発電中さん:2011/09/30(金) 18:10:19.60 ID:BOhGXQSz
QVGA以上の高精細液晶への表示で1画面文のデータを一度RAM上に作って最後にまとめて
液晶にデータ転送なんて事例でDMA使うってことがあるかな。
66774ワット発電中さん:2011/09/30(金) 18:26:37.54 ID:APMmlJ7w
事例としては効果が少ないかと思われ。何かの作業中にDMAが利用できる事の方が効果が大きい。
VRAMを2面用意して、一方を転送中に他方を編集。で、適度に切り替える。そんな感じ。
67774ワット発電中さん:2011/09/30(金) 19:36:16.06 ID:UIp+vv+Z
ご教授願います。
MPLAB IDE v8.76と、HI-TECC C PRO Liteを使用して、某参考書を元に
マイコンの勉強をしています。
プログラムをビルドした際、以下のエラーが表示されました。

undefined identifier "GODONE"
調べてみるとGODONEの識別子が宣言されていないというエラーのようなのですが、
他(OSCCONやTRISA)はエラーにならないのに、なぜGODONEだけエラーになるのでしょうか?

htc.hを宣言すれば問題ないはずなのですが?
68774ワット発電中さん:2011/09/30(金) 19:47:05.39 ID:APMmlJ7w
>>67
試しに、ソースの先頭に「 #define _LEGACY_HEADERS 」を1行加えてみて。。
69774ワット発電中さん:2011/09/30(金) 19:49:23.60 ID:APMmlJ7w
追記、htc.hをインクルードするより前ね。複数ファイルがあるのであれば、各ファイルの先頭に。
一括指定の方法もあるけど、とりあえず。
7067です:2011/09/30(金) 20:08:12.68 ID:UIp+vv+Z
>>68
#define _LEGACY_HEADERS で無事ビルドできました。
ありがとうございます。
できれば#define _LEGACY_HEADERS について教えて頂けるとありがたいのですが?
71774ワット発電中さん:2011/09/30(金) 20:24:16.37 ID:APMmlJ7w
コンパイラのリリースノートに書いてあるので、そちらをどぞ。doc/readme.txt

コンパイラのアップに伴いシンボル名が変更になった。けど、昔のソースを通す為
ヘッダファイルのフォルダの下に昔の名前のヘッダも用意してます。それを選択さ
せるのが、LEGACY〜だよ。という感じで。
今回はソースに埋め込んだけど、プロジェクト、ビルドオプションの設定のコンパ
イラの項でdefine macrosに指定(値不要)すれば一括指定も可能。
7267です:2011/09/30(金) 20:48:30.96 ID:UIp+vv+Z
>>71
ご説明ありがとうございます。

シンボル名が変更になっている場合もあるんですね・・・
readme.txtも目を通しておきます。
7345:2011/10/01(土) 08:34:14.86 ID:48HBcUU9
>>51
>>62

返事が遅くなり申し訳ありません。
ご指摘ありがとうございました。

本日、やっと纏まった時間が取れそうなので
SPIバスの件のデバッグを再開します。


>PMD レジスタは?

>PMD レジスタの ADxMD ビットをセットした後にクリアすると、
>ADC モジュールレジスタは既定値状態にリセットされるそうです。
>AD1PCFGL レジスタもその影響下にあるそうです。
>ADxMD ビットをセットしたままなら問題ありません。

上記の件を確認し、早期に解決できればと思っております。

74774ワット発電中さん:2011/10/01(土) 10:20:50.97 ID:n8ARMt2K
PIC12F510について教えてください。
これには、データEEPROMが内蔵されていないのですが、
代わりにプログラムメモリを、プログラム実行中に書き換えることは可能ですか?
75774ワット発電中さん:2011/10/01(土) 11:33:09.40 ID:ftducs7t
>>74
自分で自分のプログラムメモリを書き換えることはスペック的に無理だと思います
76774ワット発電中さん:2011/10/01(土) 12:58:40.50 ID:n8ARMt2K
>>75
ありがとうございました。
データEEPROM内蔵品を検討します。
77774ワット発電中さん:2011/10/02(日) 08:52:01.90 ID:ZdSvbgE+
16f193Xの40pinはPin Diagram上ではCCP1〜5まであるのに、CCPは2個しかないとあるのはどういうことなんですか?
(CCPを使った)PWMでモータを4個ほど制御したいんですが無理ですかね?
78774ワット発電中さん:2011/10/02(日) 09:09:56.33 ID:+YF1LLX2
eccp:3個
ccp:2個
と、データーシートに書いてある
79774ワット発電中さん:2011/10/02(日) 10:21:52.18 ID:ZdSvbgE+
>>78
ありがとうございます
eccpでしたか・・・データシートよく読むようにします・・・
8045:2011/10/02(日) 12:20:03.95 ID:lORFVPnX
SPI BUSの問題の件、解決しました。

SPIxSTAT, SPIxCON1, SPIxCON2の設定順序に問題があったようです。
PPSが原因だと疑ってたのが、却ってデバッグの見通しを悪くしていました。

【NG】
SPIxSTATレジスタのSPIENビットをセットしてから、
SPIxCON1, SPIxCON2レジスタを設定する

【OK】
SPIxCON1, SPIxCON2レジスタを設定してから、
SPIxSTATレジスタのSPIENビットをセットする

レジスタの設定をベタ書せず、素直にC30の
SPIモジュール初期化ルーチンを使用すれば丸3日無駄
にせず済んだかもしれませんね。

// C30 SPI module 初期化ルーチン(以下、参考)
void OpenSPI1(unsigned int config1,unsigned int config2,unsigned int config3)
{
SPI1CON1 = config1; /* Initalizes the spi module */
SPI1CON2 = config2;
SPI1STAT = config3; /* Enable/Disable the spi module */
}


上記のルーチンでは確かにSPI1STATの設定を最後に行なっている。
81774ワット発電中さん:2011/10/02(日) 18:33:22.86 ID:mW1bRnII
hi-tech Cとその他のコンパイラの仕様の違い(割り込み処理時の割り込み禁止は自動か手動か、みたいな奴)がまとまって載ってるサイトとか無いですかね?
データシートがギリギリ読めるような英語力しかないので、出来れば日本語が良いんですが・・・。
82774ワット発電中さん:2011/10/02(日) 18:38:21.25 ID:dd68ciIy
アセンブラの出力見れば何やってるか判るでしょ
83774ワット発電中さん:2011/10/02(日) 19:34:08.62 ID:v82wiRo0
>>82
わかんない
84774ワット発電中さん:2011/10/02(日) 19:55:59.54 ID:OKH/EIDH
読んでいる参考書のAD変換の参考プログラムに、
temp=(ADRESH*256)+ADRESL;
とあるのですが、どうしてADRESHを256倍するのでしょうか?
(変換データの格納は右詰です)
85774ワット発電中さん:2011/10/02(日) 19:59:10.08 ID:fmwhya79
>>84
8bitシフト
86774ワット発電中さん:2011/10/02(日) 22:30:34.31 ID:7gQb/Pc9
あなたは銅貨をH枚、アルミ貨をL枚持っています。
あなたの財産はおいくら?
→ temp = H*10 + L;
と同様
87774ワット発電中さん:2011/10/03(月) 00:31:14.76 ID:/MnRCX3P
ADRESH は、8bitのレジスタ
ADRESL は、8bitのレジスタ
temp は、16bitの変数 のとき

tempの16bitの中にセットするとき、

15・・・・・・・・・・87・・・・・・・・・・・0
ADRESH(上8ビット)ADRESL(下8ビット)

のようにADRESHを(上8bit)に置くため。
88774ワット発電中さん:2011/10/03(月) 21:25:46.72 ID:/QIWsRQq
浮動小数点計算でADRESLを256分の位置にしても結果は同じだな
tempを出力するときに全体を256倍にしないとだめだけど。
なーんて面倒なことはしないだろ?
89774ワット発電中さん:2011/10/03(月) 21:26:54.43 ID:/QIWsRQq
>256分の位置
実は単に間違えたんだが、何となく意味がわかるから恐ろしい。
90774ワット発電中さん:2011/10/03(月) 22:53:02.73 ID:dlE8LJP/
LM35DZの出力をPIC16F688でAD変換するのですが、
具体的にどのような値がADRESHとADRESLに格納されるのかがわかりません。
出力が○mVの時、ADRESHとADRESLにはどんな値が格納されるのかを
まとめているシートなんかはありませんかね?
91774ワット発電中さん:2011/10/03(月) 23:00:02.62 ID:lTFyCoYx
つ「データーシート」
92774ワット発電中さん:2011/10/04(火) 07:34:21.76 ID:3lcUo7qG
>>90
アナログ入力に可変抵抗でもつなげて、
電圧を変化させた時にレジスタの値がどう変化するのか、実験してみればいいじゃない。
大した手間じゃないでしょう。
93774ワット発電中さん:2011/10/04(火) 07:51:24.59 ID:AxjkbhJ3
ADC最初の一歩だよな
10KをVddVssで挟んで出力をANに入力
そして結果が合わなくて悩むw
94774ワット発電中さん:2011/10/04(火) 08:09:51.28 ID:FqUJIlPI
Vrefが変な設定になってた、でもなきゃ最初から期待通りの値出るだろw
95774ワット発電中さん:2011/10/04(火) 19:05:46.83 ID:36I6kYtA
PIC16Fで簡単でおもしろいものを作りたいのですがおすすめのモノを教えてくださいおねがいします神様
96774ワット発電中さん:2011/10/04(火) 19:07:56.73 ID:UbFkuVMM
PICライター
97774ワット発電中さん:2011/10/04(火) 20:06:13.79 ID:fTPumXAP
>>93
>10KをVddVssで挟んで出力をANに入力

  → 可変抵抗の10Kを、Vdd-Vssにつないで、出力をANに入力、な。
98774ワット発電中さん:2011/10/04(火) 22:49:10.41 ID:BMyDOTwL
>95
まずラジペンで足を曲げて犬の様な形を作る。
4本脚はもちろん、頭や尾をそれらしく作るのが肝。
次に白いペンキを用意し、
99774ワット発電中さん:2011/10/04(火) 23:20:10.79 ID:Ik+pn1YR
>>95
7segとスイッチで作る迷路ゲーム。
進みたい方向のボタンを押すと、「進んだ」「行き止まり」だけ答えが返る。
頭の中に地図を描きながらだから、結構遊べる。
ゴールしたらラップタイムを表示してお終い。

(というゲームを、関数電卓で作って遊んでたのは俺だ)
100774ワット発電中さん:2011/10/04(火) 23:32:11.74 ID:hTDDY69t
>>95
キッチンタイマーってどう? 最初はカップラーメン専用3分。徐々に機能を増やしてみる。
表示はLEDを1個、3個、10個、スイッチも1個、2個…テンキー。LCDで表示するのもいいかと。
電池で動かすなら省電力も考えないとね。
買った方が早い。確かにそうなんだけど、プログラム初体験なら、作る過程を楽しんでくれ。
101774ワット発電中さん:2011/10/05(水) 00:23:40.91 ID:u1nhNV2f
>>95
10個買ってきて指にはめて遊ぶ
102774ワット発電中さん:2011/10/05(水) 08:14:15.54 ID:2cYTN6NK
>>97
いや漏れ90じゃないし、1分悩んで設定漏れなおしたら普通に動いたってw
103774ワット発電中さん:2011/10/05(水) 23:05:53.54 ID:U09lY3iP
外部バスをもつマイコンにSRAMなど、それもあまり速くないチップを外付けしたとき、
同じリード命令を実行してもメモリが結果を返すまでプログラムはそこでストールする
ことになる?外部バスをもたないpic16fなどではRAMのリード・ライトなど基本的に
すべて4クロックで実行するのでそのへんはどうなってるんだろうか。
104774ワット発電中さん:2011/10/05(水) 23:39:44.93 ID:b5gEDJAN
ソフトで読むならその間は割り込み禁止にしてタイミングに掛かりっきりにはなるけど
別にペリフェラルは停止したりはしないから読んでる間は他の受け付けが遅れるだけ
タイミングはマイコン側で決めるものだし、ストールしてるように見えるかどうかは、
お前次第
105774ワット発電中さん:2011/10/06(木) 00:07:43.09 ID:mCDosdzF
遅いSRAM、5101か
106774ワット発電中さん:2011/10/06(木) 00:17:22.29 ID:xJiKtc8t
ストールという表現がわるかったのか、
そのリードが完了するまでは次の命令の実行に移らないということのようだから
一時的にはプログラムが停止した状態になるという理解でいいのかな。

例としてRAMを出したがキャラクタ液晶もバスに接続して使えると説明されてる
文献もあったような。かなり遅いので実際に使われることはないかもしれないけど。
107774ワット発電中さん:2011/10/06(木) 00:37:11.32 ID:Rs0fbV1B
>106
何を知りたいのか解らないけど、外部バスが無いPICのスレより
外部バスのあるマイコンのスレで聞いたら?
AVRやARMになら外部バスを持っているチップがあるよ。
おそらくWait入れたりWait信号で待ったかけたりしてるんじゃないの
108774ワット発電中さん:2011/10/06(木) 04:42:43.99 ID:8B7ri+GB
>>106
> 一時的にはプログラムが停止した状態になるという理解でいいのかな。
そういう場合もあるし、そうでない場合もある。
シンプルなやり方なら、データが読めるまでCPUが実行を停止する。
スマートなやり方なら、RTOSが別のタスクを実行する。
109774ワット発電中さん:2011/10/06(木) 09:21:09.27 ID:xJiKtc8t
リアルタイムOSとか聞いたことはあるけどマイコンに入れて使ったことはない。
ただOSが勝手に動くのではなくマイコンが動かしてるということを考えると
命令実行を停止してるのに他のタスクを実行するとはどういうことだろうか?
110774ワット発電中さん:2011/10/06(木) 12:22:45.68 ID:60Hx4rVX
>>109
本当にやることがなくなったら SLEEP 命令で眠る。
割り込みで目覚めて仕事をする。
一般的なタスクはタイマ割り込みと優先順位で仕事の時間配分が決まる。
111774ワット発電中さん:2011/10/06(木) 20:53:22.11 ID:TNiW+njb
>>109
一般論な。

マイコンにはキャッシュがある。かつ、そのキャッシュが遅いSRAMをキャッシュ対象にしているとする。
CPUがSRAMにアクセスしたとき、キャッシュにヒットすればSRAMにはアクセスしない。
ヒットしないミスキャッシュの時は、キャッシュコントローラがCPUに割り込みをかけ、SRAMからデータをキャッシュに転送する。
割り込まれたCPUはRTOSのカーネルを実行し、RTOSは別のタスクを実行する。
次のタスクを実行するとき、元のタスクが最優先で、かつキャッシュフィルされていたら元のタスクを再開する。

一言で言えば、CPUを止めないための機構があるってこと。
112774ワット発電中さん:2011/10/06(木) 21:11:19.44 ID:w1hJ/dfw
>>111
なんか色々酷い解説になってるなw
MMUとキャッシュがごっちゃになっとるのか、ちゃんと理解してから解説しよう。
113774ワット発電中さん:2011/10/06(木) 21:19:16.30 ID:60Hx4rVX
>>111
ハードウェアマルチスレッディングでないと効率悪そうだね。
114774ワット発電中さん:2011/10/06(木) 21:20:34.79 ID:U5i/buqu
>>112
じゃぁ、説明頼むわ。
組み込みマイコンにMMUなんてないけどなw
115774ワット発電中さん:2011/10/06(木) 21:27:32.20 ID:yj9wvlFP
>>114
無理無理。
エラそうな口を叩く奴に限って、まったく理解してないんだよなぁ
116774ワット発電中さん:2011/10/06(木) 21:48:31.17 ID:w1hJ/dfw
>>114
MMUあるチップもあるよ〜
キャッシュミスヒットで割り込みなんて機能はない。
117774ワット発電中さん:2011/10/06(木) 21:58:43.59 ID:w1hJ/dfw
111=114=115ってところか?
118774ワット発電中さん:2011/10/06(木) 22:25:59.41 ID:xJiKtc8t
「もある」じゃなくて具体的に該当するチップを示して欲しいところだな。それだけ自信たっぷりに
いうならすぐに出てくるんだろうし。広義でいえばインテルのも該当するんだろうがわれわれが一般に
認識している「マイコン」とは別物だからな。

>>108よりは>>111のほうが分かりやすいな。
リアルタイムOSの話から一気にキャッシュとかの話題になったがpic18以上からRTOSが
載るんじゃないのかな。PICにキャッシュなんてあったかな。
119774ワット発電中さん:2011/10/06(木) 23:12:15.41 ID:n7y5C4CV
リアルタイムOSという言葉が出てきて、混ざった感じ?
120774ワット発電中さん:2011/10/06(木) 23:38:44.08 ID:zpEz4jVU
>>100
LED点灯とサーボは制御したことあるんですよ〜。
7セグ使ってダイナミック点灯にチャレンジしてみます。
121774ワット発電中さん:2011/10/07(金) 00:01:32.17 ID:sIqNtD+S
>103の質問が遅いSRAMを"外部バス"に繋いだ時、PIC16Fの動作は?
って外部バス持っていないPIC16Fを対象にしたのが間違い。
まあ>107でAVRスレに行ったのかも。
ATmega128なら外部バスが有り 内部メモリで2サイクルかかる所を外部バスは
設定で+1〜+4Wait入れて低速のデバイスでも使えるようにしている。
そもそもバス接続なら、バスを占有されてしまうから待つ以外の選択肢は無いと思うが
いくつかのレスはI/Oで繋いでソフトでコントロールした場合と勘違いしているんでは…
122774ワット発電中さん:2011/10/07(金) 00:25:50.62 ID:Q7LTfcdj
つーか、いくら遅いSRAMでも他タスクに切り替えるなんて使い方する可能性は万に一つも無いだろ
それ出た時点で「あぁ、コイツ脳内知識だけで知ったかコイてるだけだな」ってわかれよ
触るな
123774ワット発電中さん:2011/10/07(金) 00:38:45.01 ID:nfs5cTZn
>>116
MMUなら仮想記憶だね。
これなら、メモリに存在しないときに割り込みが発生してOSがディスクからデータを持ってくることになる。
マイコンといっても携帯用みたいなパソコンに近い使い方をするものになるね。
124774ワット発電中さん:2011/10/07(金) 00:53:14.93 ID:nfs5cTZn
>>118
MMU付きならARM Cortex-Aシリーズとかかな?
用途から考えるとARM Cortex-Mシリーズとは別物だね。
125774ワット発電中さん:2011/10/07(金) 00:56:29.53 ID:Q+HgMb8i
最初の外部バスの質問の答えは
>バスを占有されてしまうから待つ以外の選択肢は無いと思う
なんだろうな。リード命令が終了するまで割り込みにも移れないんじゃないかと思う。

で、ちょっと前に出たDMAに関して、DMA、内部メモリ、外部メモリ、IOレジスタ
など基本的にすべて同じバスを利用してるのではないかと思うのでまとまったのデータの
転送をDMAにまかせてCPUで他の処理をする、といってもDMAによってバスが占有
されていれば内部メモリへのアクセスも制限されてCPUで他の処理というのがかなり制限
されるのでは、と思うけど何か間違ってるのかな。

126774ワット発電中さん:2011/10/07(金) 01:04:14.28 ID:nfs5cTZn
>>125
dsPICだとデュアルポートメモリだからDMAとCPUは並列に動作することができるよ。
127111:2011/10/07(金) 05:49:09.06 ID:jdL7aX0e
>>112>>116>>122>>125
世の中にはSoEMT(switch on event multi threading)ってのがあることを知らんの?
ただ、一般的では無かったかもしれんorz
128774ワット発電中さん:2011/10/07(金) 06:58:47.98 ID:C+LCFT9J
SH2/PCIの基板を設計したときは外付けの遅いメモリにはWAITタイミングを噛ませた
ってこれはハードの話だぞ?
当然ソフトの方はタイマーで割り込んで簡易OS下で動いているだろうし気にしているのは何故だ?
129774ワット発電中さん:2011/10/07(金) 07:00:36.24 ID:4icF3b5P
picと何の関係が?
switch on event multi threading
http://www.zeel.jp/products/list.php?category_id=48
130774ワット発電中さん:2011/10/07(金) 07:15:34.78 ID:mj5jw46s
要領を得ない質問に対して、それぞれの解釈にしたがって好き勝手なコメント
をしてるだけで、まったくかみ合ってないわな。
まあ、それでいいんだけどね。
131774ワット発電中さん:2011/10/07(金) 07:33:42.79 ID:3ijoZVXD
>>104でFAだしな
132774ワット発電中さん:2011/10/07(金) 07:51:35.89 ID:/tLWAu2U
>>129
なんも関係ないよ、原始的なPICにはw
133774ワット発電中さん:2011/10/07(金) 08:34:21.44 ID:xxdprfwt
>>127
おまえの頭の中全て整理しなおして出直せw
DMAにせよメモリ管理にせよおまえに語る資格はない、一生ROMってろカスっ
134774ワット発電中さん:2011/10/07(金) 09:38:46.58 ID:Q+HgMb8i
>>126
デュアル・ポート、よく聞く言葉だけどメリットがよく分からなかったんだよな。バスを分けるという
意味があったのか。なるほど、それならDMAを使う利点がはっきりと分かるね。ちょっと古いけど
H8/3048あたりもDMA機能があったと思うけどあれはデュアル・ポートだったのかな?
逆にデュアル・ポートでないマイコンでDMAを積んでてもその機能を十分に生かしきれてなかった
ということか。

デュアル・ポート・メモリはマイコン内部のメモリだけで、外付けのRAMでそのような機能のものはないのかな?
135774ワット発電中さん:2011/10/07(金) 09:40:08.32 ID:Q+HgMb8i
>>131
FAってのはどんな意味だ?
136774ワット発電中さん:2011/10/07(金) 09:56:54.60 ID:Qbn//wcO
ふぁいなる・あんさー?
137774ワット発電中さん:2011/10/07(金) 10:10:56.80 ID:Q+HgMb8i
>>136、サンキュ。
なるほど。
>>104はSoEMT(switch on event multi threading)の話だったのか。
最初意味がわからなかった。
SoEMTってマルチ・コアのシステムの話だね。1つのCPUしか持たない普通のマイコンの
話をしてるので「一般的ではない」というか違う話って感じだな。
138774ワット発電中さん:2011/10/07(金) 12:54:22.74 ID:nfs5cTZn
>>134
デュアルポートメモリの配線は単純に考えて2倍になるから、
それだけのメリットがないと使えないと思う。
VRAMのような一方はシフトレジスタで済むような構成とか、
FIFOみたいなバッファ用かな?
DMAならデュアルポートメモリでなくても
DMA専用メモリ空間で区切った方が簡単だと思う。
ARM Cortex-Mシリーズは、複数のバスを切り替えて
DMAとCPUのアクセスが衝突しにくいようにしている。
H8は、単純なDMAだったと思うが詳しくは知らない。
139774ワット発電中さん:2011/10/07(金) 13:25:36.53 ID:nfs5cTZn
>>127
SoEMTは、ハードウェアマルチスレッディングの一種だよね。
140774ワット発電中さん:2011/10/07(金) 15:32:41.02 ID:F6nDYrsn
今までアセンブラで16F88や16F887を使ってきました。
内容は、A/D,BCD,PWM,シリアルインターフェースの入出力、演算、LCD表示などです。

今回、16bit以上のADCが必要になり、MCP3421、MCP3551などシリアル接続のADCを検討しています。
ついでにアセンブラを卒業してC言語に移行し、USBやLANにも挑戦したいと思っています。
このような用途にオススメのPIC(I/Oも多いほど良いので40-28ピンの)を教えてください。
C言語については素人なので書籍もご紹介頂けたら有り難いです。
141774ワット発電中さん:2011/10/07(金) 18:28:30.30 ID:nfs5cTZn
>>134
dsPICだと、DSPの性能を発揮するためにメモリ空間が2つに分割されていて、
同時に2つのデータを持ってこれるようになっているし、
それが中断無く続くのがDSPだからバスが空くことがない。
片方のバスを止めれば、もう一方も止まってしまう。
デュアルポートメモリ無しでは、DMAを使うと性能が低下してしまうからだろうね。
昔のマイコンはバスが空くことが多かったから、そんなに問題にならなかったのだと思う。
でも、パソコンのHDだと、性能向上によりDMAからPIOになったから
周辺に大きなバッファがあれば、DMAは必要ないのかもしれないよ。
142774ワット発電中さん:2011/10/07(金) 18:32:50.11 ID:nDy+IA9j
やれやれ、ID:xxdprfwtは取り乱して涙目かw

>>127
> SoEMTってマルチ・コアのシステムの話だね。
それ、間違い。
>>139
正解
143774ワット発電中さん:2011/10/07(金) 19:11:23.43 ID:8jyJYZjt
EEPROM書き込み中にEEADRLをincfするコードを書いてた。
・・・できないんだな。3日悩んだわ。
144774ワット発電中さん:2011/10/07(金) 20:34:41.96 ID:wsJKavbT

>パソコンのHDだと、性能向上によりDMAからPIOになったから


145774ワット発電中さん:2011/10/07(金) 23:42:52.94 ID:h5V6bViY
秋月のPIC16F1937の説明に命令は全て1サイクルで実行って書いてるんだけどこれって実行時間が1サイクルって意味じゃなくて実行されるまでの時間が1サイクル?
ttp://akizukidenshi.com/catalog/g/gI-04466/
146774ワット発電中さん:2011/10/08(土) 00:58:32.37 ID:HgYPomec
>>145
>実行されるまでの時間が1サイクル?

変わった発想だね
147145:2011/10/08(土) 01:24:01.49 ID:MFohz0v/
>>146
最近のPICって1命令1サイクルになったの?
148774ワット発電中さん:2011/10/08(土) 01:33:10.75 ID:A2cOPvrW
>>145
「条件分岐を除き、命令はすべて1サイクルで実行。」って書いてあるよ。
All single-cycle instructions except branchesだから
「分岐を除き、命令はすべて1サイクルで実行。」だね。
4クロックで1サイクルなのは変わらない。
149145:2011/10/08(土) 01:36:37.54 ID:MFohz0v/
>>148
1命令1クロックと勘違いしてた
ありがと
150774ワット発電中さん:2011/10/08(土) 09:12:18.87 ID:p4YEmksR
クロックってなんですか?
151774ワット発電中さん:2011/10/08(土) 09:23:24.21 ID:Oii66iwQ
カチコチカチコチ・・・・
152774ワット発電中さん:2011/10/08(土) 16:06:51.19 ID:N0SHZGAt
サイクルってなんですか?
153774ワット発電中さん:2011/10/08(土) 16:11:20.54 ID:JtnSuzZl
チリンチリン・・・・
154774ワット発電中さん:2011/10/08(土) 16:16:07.91 ID:8yuqoqOd
日本政府が放棄しようかと考え中のもの。
155774ワット発電中さん:2011/10/08(土) 16:52:42.35 ID:xptDSh9+
脈と心拍数くらいの違いサ〜
15632:2011/10/08(土) 21:24:53.04 ID:QVQGTT7F
今やっとEEPROMからデータを受信できました。
永かった・・・・・
157774ワット発電中さん:2011/10/08(土) 21:35:35.50 ID:Mp6YlhmC
>>118
横レスするが、
携帯電話用とかセットトップボックス(ケーブルTVチューナー)とかで使われるようなCPUだって、
組み込み用というカテゴリになるわけで、
ARM11コアやらCortexA9コアを使った高性能な組み込み用CPUもある。

ということを、116氏とかは言ってるんだろ。
具体的なチップ名は、コア名でググったらいいと思う。

>>141
>でも、パソコンのHDだと、性能向上によりDMAからPIOになったから
これは理由が間違ってるね。
パソコン本体が搭載していた古いDMAは動作クロックが最大でも8MHz(もしくは5MHz)と遅く、
CPUの動作クロックが20MHzを超えても速度が向上していなかった。
しかも互換性問題ゆえ、32bitCPUであっても16bit幅のまま。

だからこそ、CPUによる「PIO転送」が有効だった。
が、まもなく、旧型とは別の高速DMAが併用されるようになったから、
ふたたびDMA転送の時代になったよ。
PCIバスコントローラ側のDMAを使えるようになったからね。

って、いつまでPICと関係ない話題を続けてんだよオレ。
158774ワット発電中さん:2011/10/08(土) 23:21:48.68 ID:h7Ek7WQx
>>139>>142について
ハードウェアマルチスレッディングというものをPIC16Fでも実現可能かな?
もしできないならどんな機能が不足してるのだろうか?
159774ワット発電中さん:2011/10/08(土) 23:35:45.36 ID:ntWQG7Ku
基板に必要なだけPICを乗っければいいやん
160774ワット発電中さん:2011/10/09(日) 00:11:45.73 ID:wpfS9nAl
エスパー回答すると、メモリからのデータ出力はクロックに合わせてタイミングが決まってるので、それにあわせてメモリコントローラを設計する。CPUにはwait入力してタイミングまで引っ張る。
遅いってのが、I/Oレベルなら割り込みだけど、SRAMではあり得ない。

ハンドシェイクのようなイメージがあるんだろうけど、メモリは同期と考えて間違いない。
161774ワット発電中さん:2011/10/09(日) 05:00:47.12 ID:yj0xEkGA
>>155

おまえは脈と心拍が違うのかw

心拍4回で、脈が1回とか・・・
162774ワット発電中さん:2011/10/09(日) 07:59:15.23 ID:QmM57F18
っ不整脈
163774ワット発電中さん:2011/10/09(日) 10:45:40.51 ID:pJUufg6y
弁か壁が欠損しているんだ、察してやれ
164774ワット発電中さん:2011/10/09(日) 11:54:21.99 ID:DmuqpxBI
4ストなんだよ
165774ワット発電中さん:2011/10/09(日) 12:04:16.34 ID:SZYNwLkI
>>158
PICは単純さが命だからね。
その意味でバランスがとれた設計になっている。
いくら高速動作でも無視できないストールが発生するのではリアルタイムにならない。
リアルタイムの用途では、ハードウェアマルチスレッディングは足枷でしかないよ。
166774ワット発電中さん:2011/10/09(日) 12:16:51.68 ID:ux7hiGF6
とりあえずPICというものがマイコンファーストコンタクトだった俺にはどうでもいい。
USBタイプの書き込み器ももっと安くなればな…。

SHを触る機会があったけど、3.3Vマイコンを嫌っていたのは食わず嫌いだったみたいだ。
32ビット、というか某CQボードに乗っているRAMが半端ないマイコンはなんとなく惹かれる。
そろそろ2.5MB+JPEGコーダ内臓とか出るみたいだし、ますます惹かれる。表示系もついているから無駄にタッチパネル搭載カメラとか作れそう。
ただサンハヤトで変換基板買うより…基板作ったほうが安いんだろうなぁ…とか思いながらも、10ビットしかないA/Dが4chをマルチプレクサで10チャンネル以上に見せかけているのに泣いた。
A/D欲しかったらPICつけるから安心しろといいたくなる。
他はどうか分からないけど、このSH表示系ってカテゴリはもうちょっとがんばって欲しい、デジキーで買える位には。
幾つかは買えるみたいだけど。

PIC?
ああ、何でも買えるから心配してない。
167774ワット発電中さん:2011/10/09(日) 13:28:58.12 ID:FUUS99YY
4ストワロタ
168774ワット発電中さん:2011/10/09(日) 14:02:37.90 ID:QmM57F18
微妙にIDの並びがいい感じ。あと少し
169774ワット発電中さん:2011/10/09(日) 17:58:33.76 ID:QAINzgSR
>>167
IDがいい感じ
170774ワット発電中さん:2011/10/09(日) 21:14:20.04 ID:BZbPhcV5
四対子狙いだな
171774ワット発電中さん:2011/10/10(月) 04:36:32.03 ID:TIEAvDaj
>>165
リアルタイムでハードウェアマルチスレッディングができるマイコンは存在する。
Parallax Propeller というやつだ。
32ビットCPUが8つ入っていて40ピンDIPだからPIC以上の変わり種だけどね。
172774ワット発電中さん:2011/10/10(月) 09:51:45.46 ID:ZiEzF5ca
あのふざけたプロペラさんそんなすごい、いや酷いモンだったのかw
ヤバイな、一つぐらい動かせる環境が欲しくなってしまうw

問題は動かせたとしてもすごさが伝えられないことだ。
173774ワット発電中さん:2011/10/10(月) 10:29:56.86 ID:yeGVsMc3
>32ビットCPUが8つ入っていて40ピンDIP
ってほんとすごいな。いったい何に使うんだ?
リアルタイムでハードウェアマルチスレッディングって具体的にどんなところ、アプリケーションで
使われてるんだろう?
174124:2011/10/10(月) 10:35:46.27 ID:ETvEa1UK
>>171
RAM狭いんだよね
175774ワット発電中さん:2011/10/10(月) 11:03:34.73 ID:PG1A7FgU
以前は「マイコン総合スレ」あったのに今は無いんだな
寂しいから人がいるPICスレで語りたいのもわかるけど
あらしてるのと変わらないよ
176774ワット発電中さん:2011/10/10(月) 12:27:06.14 ID:TIEAvDaj
Parallax は、PICやPIC互換で高速化したSXにBASICインタプリタをのせたモジュールを作っているところだから。
そこが設計したマイコンだから無関係とはいえないかも。
同じ32ビットでもPIC32と比較が困難なほど違っているというのは興味深いよ。
177774ワット発電中さん:2011/10/10(月) 15:47:03.41 ID:wHUVGkn9
>>171
単にマイコン並べたのと然程変わらないものをスレッディングねぇ・・・w
178774ワット発電中さん:2011/10/10(月) 16:43:39.94 ID:TIEAvDaj
>>177
それが簡単にできないことは、理解しているの?
179774ワット発電中さん:2011/10/10(月) 18:21:27.04 ID:PG1A7FgU
>176
チップ買ってきてソフト書き込んでモジュールとして1度でも売ったら関連ありってか?
なんだよ、そのとんでも理論は。
180774ワット発電中さん:2011/10/10(月) 18:46:06.33 ID:rJFqhpiR
マイコン総合スレ立てようか?プロペラとか先月のトラ技部出てたPiccoloとか
話すのに総合スレがあったほうが良いだろ
181774ワット発電中さん:2011/10/10(月) 19:19:54.68 ID:uodVqJwD
別に過疎ってんだからここでいいじゃん
そんぐらいスルーしろよ
182774ワット発電中さん:2011/10/10(月) 19:53:50.59 ID:PG1A7FgU
>180
お願いします。"マイコン総合スレ その2"まであったので3で
18332:2011/10/10(月) 20:02:27.59 ID:IBI2/8SR

やっとEEPROMから音声データを読み込む事が出来たのですが、
どうやら、不具合の原因はスピーカーを繋ぐ事から来る何かのノイズらしいのです。
速度を下げれば不具合は起きにくいのですが、完全には無くならないし、
そもそも遅いと音声の再生が間に合いません。
漠然とした質問で申し訳ないのですが、そして、もうこのあたりからスレチかも知れませんが、
質問させてください。

EEPROM→PIC→NJM386(オペアンプ)→スピーカー
という組み合わせです。
スピーカーだけを取り除けば正しく動作します。(勿論音は出ません。)

PICは受信完了待ちでループしていたり、または送信完了待ちでループするという現象です。

のでPICは生きているとは思うのですが、自己完結できるはずの送信完了が出来ない事からして
どんな事態が起きているのか判りません。

オペアンプからスピーカー間の配線はオペアンプ付属の回路図どおりですが、
この辺りの知識は無く何故そこに抵抗やコンデンサががあるのか等は判りません。
どんな事でも良いのでアドバイスいただけないでしょうか?
184774ワット発電中さん:2011/10/10(月) 20:46:07.64 ID:bZNEkSAt
>>183
回路が正しいのかどうか自分で判断できないならとりあえずUP
あとは電源の容量不足とかスピーカーのインピーダンスが低いとか
185774ワット発電中さん:2011/10/10(月) 20:49:28.98 ID:ETvEa1UK
EEPROMに置いたAUDIOデータをPICのDACでスピーカーに出すって事?
それから不具合の症状説明が重要だよな。不具合ってなに?
不具合の原因がノイズとする根拠は?
送信とか受信とか、相手はなに?

って辺りから説明しとけや
186774ワット発電中さん:2011/10/10(月) 20:58:58.94 ID:TIEAvDaj
>>183
パスコンはPICの近くに入れてる?
配線がしょぼいなんてことは?
GNDの配線はどうなっている?
配線の仕方によっては、GNDの方の電圧が変動することがあるよ。
187774ワット発電中さん:2011/10/10(月) 21:05:32.37 ID:TIEAvDaj
>>179
まあ、AVRとArduinoは、別スレだからね。
18832:2011/10/10(月) 21:14:19.36 ID:IBI2/8SR
http://loda.jp/soundtest/?id=1

とりあえず回路図UPします。
189774ワット発電中さん:2011/10/10(月) 21:29:52.49 ID:syOA2M7H
パスコンがないな
あと、実体が回路図どおりならGND経路が長い
190774ワット発電中さん:2011/10/10(月) 21:42:56.91 ID:bZNEkSAt
PWM出力の10uのコンデンサいらない気がする
VR3の数値と電解コンの極性が書いてない
細かいがスピーカーの所の10Ωの抵抗とGNDの所に●が無い
19132:2011/10/10(月) 21:44:32.94 ID:IBI2/8SR
>>185

PiCのDACではなくてPWMで出力します。

不具合1
EEPROMに対して指定あるアドレスを送信する時
MOVWF SSP1BUF ;送信
BANKSEL PIR1
BTFSS PIR1, SSP1IF ;送信完了か?
GOTO $-1
このループから抜け出せなくなります。

不具合2
EEPROMからデータを受信した後に送信したACKが終了しない。
BCF SSP1CON2, ACKDT ;ACKにセット
BSF SSP1CON2, ACKEN
BTFSC SSP1CON2, ACKEN ;ACK送信完了か?
GOTO $-1
このループから抜け出せなくなる。

I2Cの速度を100Kbpsにすれば不具合は起こりづらくなりますが、
400Kbpsにするとたちどころになります。
どちらもスピーカーを外せば不具合は起きません。

ノイズとは漠然と不具合の原因を推測して言っています。


>>186

パスコンは・・・実は未実装です。
>配線がしょぼいなんてことは?
>GNDの配線はどうなっている?
>配線の仕方によっては、GNDの方の電圧が変動することがあるよ。

配線は0.3ミリのすずメッキ線でやってます。
しょぼいの部類に入るのでしょうか?

>>189

グランド経路はすずメッキ線0.3ミリで
ACジャックまでEEPROMから10センチ
同じくオペアンプから7センチ
同じくPICから5センチです。


パスコンはどの容量がいいか調べているうちにおざなりになって付けていませんでした。
実は当たり前すぎでググッてもなかなか見つからなかったりしまして;;
19232:2011/10/10(月) 21:57:23.61 ID:IBI2/8SR
VR3は10KΩです。
電解コンデンサはオペアンプ側が+でスピーカー側が-です。
19332:2011/10/10(月) 22:04:19.58 ID:IBI2/8SR
>>190

>PWM出力の10uのコンデンサいらない気がする

こういうのが判るって羨ましいというか尊敬します。
よろしければもう少し手ほどき戴けないでしょうか?
194774ワット発電中さん:2011/10/10(月) 22:18:08.70 ID:PG1A7FgU
>191
スピーカーの前でも後ろでもいいけど直列に抵抗(数十〜数百Ω)入れてみて
(音は小さくなるけど) 症状が改善するならノイズでしょう。
パスコンもだけど電解コンデンサを電源にも入れてあげて

195774ワット発電中さん:2011/10/10(月) 22:34:26.93 ID:syOA2M7H
GNDが遠いというか、PICとEEPROMの電源、GNDをなるべく短く、だな
あと、PWM->DC化回路のCR時定数が短くないか? それで386の動作がおかしくなっているとか
196774ワット発電中さん:2011/10/10(月) 22:55:56.91 ID:f4VE3ZV/
10uは要ると思う。
フィルタの時定数もカットオフ考えれば妥当かな。

PWM周波数いくつ?
カットオフ15kHzのフィルタじゃよっぽどPWM周波数高くないとキャリア漏れるよ。
漏れたキャリアがアンプとスピーカー通して電源揺さぶってるんじゃないかと。
RC二段にするか、LCRフィルタにしてキャリアを減衰させるべし。
197774ワット発電中さん:2011/10/11(火) 00:23:24.99 ID:qQwpKpGp
パスコンは、0.1μFでよいと思うよ。
198774ワット発電中さん:2011/10/11(火) 00:35:41.25 ID:fsMGXFZb
4番ピン、プルアップ要らないの?
19932:2011/10/11(火) 06:36:48.93 ID:ElDVETxx
>>194-198


今夜からまた少しずつ進めてゆきます。
皆様アドバイスありがとうございました。
200774ワット発電中さん:2011/10/11(火) 18:31:02.00 ID:b48GM8A7
>>199
頑張ってるみたいだから、おじさんもアドバイスしちゃおう。

http://loda.jp/mcnc/?id=289.png

上の図のように、LM386の電源端子の前に、
デカップリング回路を入れると幸せになれるかも知れない。

LM386は音を出すときに電源電流が結構流れるので、
回路の電源の「電流供給能力」が十分でないと、
電源電圧(この場合5V)が、釣られて落ちてしまう。

そこで、LM386の電源ピンの前に、図のようなデカップリング回路を
入れてやる。("挟む"んじゃなくて、"入れる"、"挿入する"、な)

「電流のタンク」としてC2を置き、それに電気を貯めて、
LM386の「電源電流欲しい!」の要求を満足させる。
上流方面へは抵抗が入れて、上流へ「電流欲しい」を伝えにくくする。

一度やってみて。ダメだったら、ゴメンな。
201774ワット発電中さん:2011/10/11(火) 18:50:27.81 ID:b48GM8A7
>>199
追加ね。

電源からの電源線は、基板上の「電流の一番流れる部品に着地させる」こと。
PICとかEEPROMとかは、電気をほとんど食わない(=電流が流れない)から、
「電流の一番流れる部品」の電源から「電気をもらう」ように配線する。

「環八の交通量は凄く多いけど、1本路地に入れば車は少ない」のように
交通量の多い回路を優先的に電池から配線し、
交通量の電流少ないところはその「おこぼれ」をもらう、と似た感じ。

配線がΦ0.3の線だと、少し細いと思う。
交通量の多い回路には、もっと太い線を使わないと「渋滞」が発生する。
裏の路地のような交通量の少ない回路なら、Φ0.3の線でも良い。
202774ワット発電中さん:2011/10/11(火) 18:58:31.05 ID:fKk0RMf5
>>201
そんなに地雷を仕掛けるのは人としていかがであろうか?
203774ワット発電中さん:2011/10/11(火) 19:08:18.90 ID:b48GM8A7
>>202
えっ? 地雷って何ですか?

僕、何か変なこと言いましたか?
204774ワット発電中さん:2011/10/11(火) 19:38:42.88 ID:Kzp+UPbt
強いて言えば「電気をほとんど食わない」と言う癖に「挟む」を認めない事かな
205774ワット発電中さん:2011/10/11(火) 20:14:28.59 ID:b48GM8A7
なんで?
「挟む」と「電気をほとんど食わない」の間に、関連性はないと思うけど。

「地雷」の意味は、何でしょうか?
>>200 >>201の私の書込が、何かを埋め込んだというのでしょうか?
すみませんが、教えてもらえないでしょうか?
206774ワット発電中さん:2011/10/11(火) 20:26:21.00 ID:oFzK6LcV
電気の食わない部品をデカップリングすると言いつつ
386をデカップリングしているとか
207774ワット発電中さん:2011/10/11(火) 20:28:03.42 ID:oFzK6LcV
デカップリング、とは言ってなかったな
おこぼれをもらうようにしているか、だな 失礼
208774ワット発電中さん:2011/10/11(火) 20:47:47.81 ID:b48GM8A7
>> 206, >>207
「電気を食うLM386の電源を、回路電源からデカップリングする」が、
何かまずいですか?
20932:2011/10/11(火) 21:24:01.67 ID:ElDVETxx
>>200-207

レスありがとうございます。

C2はLM386の「電源電流欲しい!」の要求を満足させる。との事理解しました。
では、抵抗の向こうにあるC1はPICとEEPROMへおこぼれを供給する目的もある。
しかし、あくまでおこぼれなので、本来的にはC1もLM386の為の前段のコンデンサという事でしょうか?
21032:2011/10/11(火) 21:34:55.97 ID:ElDVETxx
前段のコンデンサというよりは、C1-R-C2の三位一体でデカップリングしている。
C1にはPICやEEPROMにおこぼれを供給する副次的効果もあるという理解でよいでしょうか?
21132:2011/10/11(火) 21:51:21.99 ID:ElDVETxx
>>195

CR時定数が短いのですか。確かにオシロで波形を見ても全然滑らかになっていないのです。
隣り合った山同士くっつけて滑らかな曲線を作りたいのですが、とげとげの短い山ばかりです。
21232:2011/10/11(火) 21:57:43.14 ID:ElDVETxx
>>196

PWMは8KHzです。

カットオフ15kHzのフィルタ・・・すみません。15kHzのフィルタとはどんな計算式で求めるのでしょうか?
213774ワット発電中さん:2011/10/11(火) 22:23:09.19 ID:+wMomzZ4
googleで「CR フィルタ」で検索すると、フィルタ計算ツールってのが一番上に出てくるよ
214774ワット発電中さん:2011/10/11(火) 22:41:21.93 ID:Ad8zipkE
フィルタは4kHzじゃないんかい?
215774ワット発電中さん:2011/10/11(火) 22:56:48.18 ID:rZ3r7+wR
CRフィルタはだだ漏れだから、相当厳しく設定してもノイズ酷い
216774ワット発電中さん:2011/10/11(火) 23:15:56.11 ID:oFzK6LcV
RとC2でデカップリングしているならC1は高周波のパスコン、0.1μF程度でいいんじゃないかな?
なんか誤解招いているような。


10μFは386に入力へのACカップリングでしょ、ならばPWMをなます効果は期待ほどではない。
なましてオーディオ帯域にするのは1kと0.01μFなんだが、CR時定数は10μs、
逆数で100kHzなのでカットオフ周波数が高いし386はムダに増幅できる帯域だよな。

PWMが8kHzなら、Rは1k固定としてCは0.47μF以上あれば、
波形上はだいたいつながって見えそうなところか。
もう少々帯域を捨てるか、またはPWMの分解能を捨てて周期の短縮を稼ぎたい気もする。


ループから抜け出せない誤動作を対策したいはずが
ずいぶんズレたな、すまん。
217774ワット発電中さん:2011/10/12(水) 01:12:46.59 ID:0A29USc4
>>212
PWM周波数は20kHz以上推奨
RCのLPFについてちゃんと調べるべき
218774ワット発電中さん:2011/10/12(水) 06:40:10.81 ID:KjQTIq79
>>215のような事情なので、計算式より波形目測のほうが
精神衛生上いいんじゃないかw
219774ワット発電中さん:2011/10/12(水) 13:18:14.81 ID:3aZjA7jd
fCOを計算してCとRを割り出して、いざ鳴らしてみると全然駄目じゃん
ということを一度は経験するな

オシロ見ながらフィルターの可変抵抗をぐりぐり回すと、
なんか拡大縮小にしか見えなかったり
220774ワット発電中さん:2011/10/12(水) 13:24:23.51 ID:VFZCKe2e
>>219
ちゃんと「ローインピーダンス」で、CRフィルタを駆動してる?
CRフィルタの後を、ちゃんと「ハイインピーダンス」で受けてる?
それでもうまく行かない?
221774ワット発電中さん:2011/10/12(水) 14:41:22.44 ID:3iB2WVwe
LM376 のデータシートのラジオ用アンプの回路例だと、CRフィルタはボリュームの後、アンプの直前に入れているね。
222774ワット発電中さん:2011/10/12(水) 14:44:43.18 ID:3iB2WVwe
>>221 LM376→LM386
22332:2011/10/12(水) 19:54:12.77 ID:X+MASU4M
皆様レスありがとうございます。
沢山のレスを戴きましたので、これから教わった事を一つ一つ理解したうえで身に着けて行きたいと思います。


そして>>200さん
昨日のレスありがとうございました。
upした回路図をプリントアウトしたうえで回路図を書き足し、そしてそれをスキャンした上でアップロードして詳しい説明まで戴きました。
見ず知らずの私にそこまでして戴きなんとお礼を言ってよいでしょうか。大変感謝しております。
224774ワット発電中さん:2011/10/12(水) 22:52:22.16 ID:VFZCKe2e
>>223
ありがとう。
頑張っているあなたに、何か役に立てたのなら嬉しいです。
今後の頑張りに期待しています。
225774ワット発電中さん:2011/10/13(木) 00:09:08.88 ID:B7WiNb7+
オシロスコープ高い
これじゃ家で実験できない(´・ω・`)
226774ワット発電中さん:2011/10/13(木) 00:17:08.26 ID:QO+5I9AA
>>225
ベンチャーかな?
都道府県の工業技術センターで測定器の貸し出しとか持ち込みでの精密測定とかのサービスを格安でやってるよ。
227774ワット発電中さん:2011/10/13(木) 08:22:45.92 ID:UXQGBlcw
>>201
> 「電流の一番流れる部品」の電源から「電気をもらう」ように配線する。
これはどうかな? 一緒にノイズまで貰ってしまうのがイマイチ。
ケースバイケースで変わるよ。

> 交通量の多い回路には、もっと太い線を使わないと「渋滞」が発生する。
電流容量を満たしていれば細くして、インダクタンス成分でノイズを低減させる方向もある。

以上、元ネタとは関係なし。
228774ワット発電中さん:2011/10/13(木) 08:24:13.50 ID:UXQGBlcw
>>225
それでも10万円を切るのだから、随分と安くなった。
229774ワット発電中さん:2011/10/13(木) 12:04:58.73 ID:vznw5d80
>>227
インダクタを入れればよいのでは?
230774ワット発電中さん:2011/10/13(木) 12:06:13.90 ID:J8vPegOd
安物買って銭を失えばいいじゃない
ttp://www.geeetech.com/index.php?main_page=index&cPath=53
231774ワット発電中さん:2011/10/13(木) 12:14:37.35 ID:eWkoP1o2
>>227
>これはどうかな? 一緒にノイズまで貰ってしまうのがイマイチ。
CRやLCでLPFかけてから使えばいいんでない?
ケースバイケースという免罪符を使うなら、なんでも有りだけどね。

>電流容量を満たしていれば細くして、インダクタンス成分でノイズを低減させる方向もある。
直流的な電圧降下を嫌ったんじゃない?
232774ワット発電中さん:2011/10/13(木) 19:03:43.09 ID:Qdg++7AE
>>231
> CRやLCでLPFかけてから使えばいいんでない?
それもケースバイケース。
CPU/SDRAMならそのとおり。

元ネタはアンプらしいから、この場合噛ませるのはロジック側でなくアンプ側がいい。
ただ、可聴域だからチョイ面倒。

さらに微弱なアナログ系なら電源の根本から分けたほうがいいし。
ソレノイドやモータも、逆の同じ理由で分けたほうがいいし。
ちなみに今のPCは、CPUとその他でPSUから分けてるし。

消費電力が多いところを強化するのは当然だけど、消費電力が多いってことはノイズ源でもある。
何処まで許容して、どこで線引きするかだよね。
233774ワット発電中さん:2011/10/13(木) 21:37:45.44 ID:TvPjT1+g
LM25DZの出力電圧をPIC16F688でAD変換プログラムを組みました。
間違っている部分や足りない設定などがあれば教えていただけるとありがたいです。
お願いします。


     unsigned short temp;
OSCCON=0x60; /*4MHz*/
long work =0;

TRISA=00000001; /*RA0/AN0ピンをアナログ入力モードにする*/
TRISC=00000000;

ANSEL=00000001;


ADCS2=1; /*AD変換クロックをFosc/16にする*/
ADCS1=0;
ADCS0=1;

ADFM=1; /*AD変換結果データは右詰にする*/

ADON=1; /*ADコンバータを電源オンする*/
VCFG=1; /*VREF pinの電圧を上限に指定*/

CHS2=0; /*AN0ピンの電圧をAD変換する*/
CHS1=0;
CHS0=0;



GODONE=1; /*AD変換開始*/

while(GODONE){
__delay_us(5); /*5μsec待つ*/
}

work= (ADRESH*256)+ADRESL;
work= (work *500)/1024;
temp=work /5;


return temp;
234774ワット発電中さん:2011/10/14(金) 00:56:49.49 ID:IyiOeyTb
完璧だと思うよ。素晴らしい。
1発で動いたでしょう? さすが〜ぁ。

235774ワット発電中さん:2011/10/14(金) 02:48:49.33 ID:HyT/K4Se
>>233
うまく動いたの? 
どの辺を不安に あるいは心配に思っているの?
君の作ったプログラムを、なんで僕たちがデバッグしなきゃいけないの?
もっと情報をだしてくれないと
236774ワット発電中さん:2011/10/14(金) 20:12:49.15 ID:y5XUHOtJ
冷たいこと言うなよ、俺たちは仲間だろ?
237774ワット発電中さん:2011/10/14(金) 20:35:58.98 ID:T2ZU8Z+Z
え?カマ?
238774ワット発電中さん:2011/10/14(金) 21:42:12.10 ID:wZ36KZfK
え?ネカマ?
239774ワット発電中さん:2011/10/14(金) 22:12:33.20 ID:rf1vCtW4
>>233
TABキー使ってインデントいれた方が読みやすいと思うよ
240774ワット発電中さん:2011/10/15(土) 00:01:56.08 ID:rsFdY3MS
2ちゃんでTABキー使ってもインデントにはならんだろ。
241774ワット発電中さん:2011/10/15(土) 01:53:05.41 ID:elA3KgdW
PIC24FJ64GB002のUSBホスト機能を用いて、PICに接続したUSBキーボードの文字を取得してLCDに表示するプログラムを書いています。
コンパイルに通したところ、 U1CONbits.SOFENやU1PWRCbits.USLPGRDといったI/O系の関数が定義されていないとしてコンパイルが通りません。
どなたかお助けいただけると助かります。
242241:2011/10/15(土) 01:59:06.82 ID:elA3KgdW
連投申し訳ないです。
上記のエラーが出るのは、Microchip Aplication LibraryのUSBライブラリのusb_host.cです。
サンプルプログラムを通した場合はこのソースが使用されていてもエラーが発生しないので、当方のプロジェクトの問題だと思うのですが、使用しているソースはサンプルと同じで、何が問題なのかさっぱり見当つきません。
243774ワット発電中さん:2011/10/15(土) 02:59:49.62 ID:w50D1E7J
>>241-242
ソースプログラムも見せずにエラーの原因を教えろとか、馬鹿か?
あと質問する前に日本語覚えなおしてこいカス。
244774ワット発電中さん:2011/10/15(土) 06:56:30.00 ID:cggQUJ38
>>243 確かにわかりにくい文章だけど、まぁなんだ、おまえも頑張れ。

>>241-242
サンプルプログラムが通るなら、自分の作ったプログラムとの違いを考える。足りない宣言の有無を確認。
サンプルプログラムのファイルの中に自分のプログラムの通らない箇所を部分挿入してリビルド、たぶん通るんじゃないかな?
なんでU1CONbits.SOFENというシンボルを使うのか、そのシンボルの名前は誰がアドレス解決するのか等々を考えて
いくと問題の要因がわかるかもしれない。と、少ない情報だけで推測するのも面倒だな。
245774ワット発電中さん:2011/10/15(土) 07:42:46.75 ID:O9dzdv54
>>242
インクルードパス指定してないんじゃね?
246774ワット発電中さん:2011/10/15(土) 09:18:32.87 ID:txnZeGUP
>>225
億で中古を1マソで手に入れた
247774ワット発電中さん:2011/10/15(土) 14:22:26.89 ID:pY0B+K2X
>>242
デバイスの指定を忘れているとか?
USBなしのデバイスになっていると使えないのは当然だよ。
248774ワット発電中さん:2011/10/16(日) 22:15:49.45 ID:acZX/arC
>>243-245,247
皆様ありがとうございました。
どうやら>>247が原因だった模様です。
249774ワット発電中さん:2011/10/16(日) 23:47:40.76 ID:Us8ydvQD
知り合いに「女ヶ沢」(メガさわ)という人がいる。
「その上を行くギガ沢なんていないだろうか?」
「いるわけないじゃん」
って感じで友達と馬鹿な冗談を言い合っていたら、
相手が、寺沢君だった。
250774ワット発電中さん:2011/10/17(月) 00:46:43.31 ID:uH3G84We
      _,..--------..._
     ;(         );
     | `` ------- '´´.| そんな奴はおらん
     |⊂⊃  ⊂⊃  | 
((__))  ,|、__     _,...--'7
 ||  / `--`-v--'´--''´~\
 ``=|,,,,,;;       ;;;;;;;;; ;;; >
   └'´|;;;;  O   ;;;;;;;;;;;|`'||
     |;;;;  O   ;;;;;;;;;;;;| ||
     | ;;;;  ∧   ;;;;;;;;;;;;;|((~))
     't--、_ハ__,... ----┤
      ``||~```~~~~||~ ̄
       .||、     .||、
     /  >    <  \
     <__/      \__ >
251774ワット発電中さん:2011/10/17(月) 08:20:53.55 ID:02DRJS21
それはメカ沢だw
252774ワット発電中さん:2011/10/17(月) 20:11:29.44 ID:itmPxiBE

PIC24FJ64GA002を2つ使ってSPI通信したいけど、まったく通信できません。ヒントでもいいので助けてください。

ピン割り付け
マスター側
TRISA=0xFF;
TRISB=0xF0FF;
AD1PCFG=0xFFFF;
RPINR20bits.SDI1R=7; //データ入力(RB7)
RPOR4bits.RP8R=7; //データ出力(RB8)
RPOR4bits.RP9R=8; //クロック出力(RB9)

スレーブ側
TRISA=0xFF;
TRISB=0xFF0F;
AD1PCFG=0xFFFF;
RPINR20bits.SDI1R=8; //データ入力(RB8)
RPINR20bits.SCK1R=9; //クロック入力(RB9)
RPOR3bits.RP7R=7; //データ出力(RB7)

spiのレジスタは
http://amahime.main.jp/pic24f/sdprog.txt
を使っています。
253774ワット発電中さん:2011/10/17(月) 22:19:04.87 ID:BLKmMKkv
>>252
それSDカード用でしょ。SPIの設定とか配線はどうなっているの?
254774ワット発電中さん:2011/10/17(月) 23:30:20.69 ID:uH3G84We
オシロ無いと動かせる気がしない
255774ワット発電中さん:2011/10/17(月) 23:35:18.07 ID:itmPxiBE
>>253
spiの設定はマスター側はそのままhttp://amahime.main.jp/pic24f/sdprog.txt
を使い、スレーブ側は
MASTER_ENABLE_ON を MASTER_ENABLE_OFF
に変更しただけです。

配線は、下のように直接つないでいます。
マスター     スレーブ
データ入力ーーーーデータ出力
データ出力ーーーーデータ入力
クロック出力ーーークロック入力
256774ワット発電中さん:2011/10/18(火) 01:07:22.79 ID:XMCiswzY
>>255
3: プライマリおよびセカンダリプリスケール ビット値を 1:1 に設定しないでください。
SPIx モジュールをスレーブモードで使用する場合、SMP ビットをクリアする必要があります。
257774ワット発電中さん:2011/10/18(火) 14:59:36.13 ID:J95nlXc2
流れぶっただがsdccのスレって無いのかね?
コンパイラの展開がasmでエラーになりやがるorz
258774ワット発電中さん:2011/10/18(火) 15:53:39.85 ID:uw2lTF1+
すいません教えてください。
18F14K50の3.3vLVOは、普通に150mAぐらい使って良いのでしょうか?
データシートにも電流書いていないし、もしかして、全然別の用途で用意してあるんでしょか?
259774ワット発電中さん:2011/10/18(火) 16:25:36.98 ID:F98E8Kep
ちょいとおたずねしますが、PIC16F887-I/P用の基板とソフトをPIC16F1939-I/Pに無改造で置き換えられますかね?
260774ワット発電中さん:2011/10/18(火) 16:54:42.50 ID:xHNje5DA
>>259
一般的に言って、PICは無改造で下位機種のコードを使いまわせるほどの
互換性は持っていない。

もちろん、PIC16F887のコーディングの段階から上位機種への移植を意識
して作ってれば、ほぼ無改造で移植できるかもしれないけど。
261774ワット発電中さん:2011/10/18(火) 17:14:06.42 ID:F98E8Kep
>>260
レスありがとうございます。
ピンアサインを見た限り、ほぼ上位互換なように見えたので聞いてみました。
2pinにULPWU、36pinにPGMが無いので、Ultra Low-Power Wake-up inputと、
低電圧書き込みが使えないくらいなのかな?程度に考えてました。
262774ワット発電中さん:2011/10/18(火) 17:32:34.06 ID:TI5NymPo
>>259
それ、すごく気になる。データシートにはVCAPが必要と書いてあるが、なくても動いているみたいだし。
263774ワット発電中さん:2011/10/18(火) 17:49:53.09 ID:cuWfXZ5T
>>261
ピン的には同じでも内部のレジスタは違ったりするから多分無理。
264774ワット発電中さん:2011/10/18(火) 18:41:47.82 ID:zeG9ABV0
>>258
俺がわかんないだけかもしらんけど、LVOが何なのか教えて
データシートを検索しても引っかからなかった
265774ワット発電中さん:2011/10/18(火) 18:43:17.64 ID:orbKDEmM
>>259
3桁と4桁じゃ命令セット自体違うし…

>>262
単体の三端子レギュレータだってキャパシタなしで動いたりするじゃん
安定性に問題があるからすべきではない
266774ワット発電中さん:2011/10/18(火) 19:03:40.66 ID:J95nlXc2
>>265
> 3桁と4桁じゃ命令セット自体違うし…

アップコンパチじゃないのか?
267774ワット発電中さん:2011/10/18(火) 19:04:12.07 ID:XMCiswzY
>>259
PIC1XF1XXX Software Migration 41375A
というのがあるから、それを見ながら移植ということだね。
268774ワット発電中さん:2011/10/18(火) 19:10:21.05 ID:XMCiswzY
>>264
LDO
269774ワット発電中さん:2011/10/18(火) 19:33:35.59 ID:9Jd1Wztb
>>263 >>265 >>267
877から887へは、うまくいったので甘くみてました。
コンパイラならともかく、アセンブラで組んだソフトは移植するのも骨が折れそうですね。
270774ワット発電中さん:2011/10/18(火) 19:44:33.77 ID:XMCiswzY
>>258
取り出せる電流が書かれていないということは、
内部で使うだけの能力しかないということだよ。
CVREFと同じ扱いだね。
271774ワット発電中さん:2011/10/18(火) 22:00:45.50 ID:uw2lTF1+
>>270
ガーン!! orz
272774ワット発電中さん:2011/10/18(火) 23:58:51.40 ID:jYrLWSlw
カルロス
273774ワット発電中さん:2011/10/19(水) 03:37:41.87 ID:3phtB9sP
ゴーン
274774ワット発電中さん:2011/10/19(水) 06:19:06.25 ID:EGQEZDwV
>>271
「電流ブースト回路」で幸せになれるかも。
275774ワット発電中さん:2011/10/19(水) 10:16:43.53 ID:dFAAza60
みんなよくバイクとか車とかに自作の回路つなげようと思うよね。
俺もよく自作で電子回路とか作ってデスクトップ上では問題がおきたことがないけど
一般行動を走る凶器につないで使おうとはあまり思わないな。
276のうし:2011/10/19(水) 10:31:39.13 ID:yq0yYtx/
バイクや車はイグニッションとかのノイズやら、電源の変動があるからマイコンなんか暴走しまくる。
このあたりのノウハウが要ることもあるぞ。DVD君みたいに。
277774ワット発電中さん:2011/10/19(水) 13:33:39.70 ID:RobIVCVi
>>275
http://www.youtube.com/watch?v=0d3HEvi_ltU
生きててごめんなさい
278774ワット発電中さん:2011/10/19(水) 14:10:15.82 ID:XxJ//28p
>>274
要求にあったLDOを外付けするのが正解だと思うよ。
279774ワット発電中さん:2011/10/19(水) 15:24:47.46 ID:UdmL4zYm
すみません、どなたか助けてください。
PIC BASIC PROで最初に定義するのに

@ DEVICE PIC12F615,, MCLR_OFF, WDT_OFF, IOSCFS_8MHZ, INTRC_OSC_NOCLKOUT

ってやってみてるんですが、
なぜかエラーが出るようになってしまいました。
以前のPCではこのまま動いて変換できていたのですが、
PCを買い換えて同じプログラムを変換しようとすると、

Warning[207] Found label after column 1,(DEVICE)
Error[122] Illegal opcode(PIC12F615)

とでてしまいまうように・・・。

いまさらBASICなんてと思われる方もおられるかもしれませんが、
どなたかアドバイスをお願いします。
280233:2011/10/19(水) 16:02:34.18 ID:TncVKa00
>>279
アセンブラで書けばエラーでないよ
281774ワット発電中さん:2011/10/19(水) 16:22:48.89 ID:XxJ//28p
>>279
DEVICE がラベルで、PIC12F615 がオペコードといわれている。
282774ワット発電中さん:2011/10/19(水) 17:40:46.74 ID:8Or/wAjz
REAL ICEってPGC/PGDのラインがシビアなのね。
プルアップしちゃいけませんってのは書いてあったけど、LSTTLのファンイン一個でつないでも動かない。
PICkIT2と3では動いてたので悩んでしまったよ。
んで、PICkIT3のデバックはPICKIT2に比べて超早いのね。
PICkIT3のスタンドアローン書き込みツールはPICkIT2よりノロノロなのに。
283774ワット発電中さん:2011/10/19(水) 20:35:39.20 ID:MidhQeWE
>>278
たぶん、>>258はLDOをケチりたいと先読みしてみたw
他、基準電圧源からもう少し引っ張りたいときにも使えるから、覚えておいて損はないしね。
284774ワット発電中さん:2011/10/19(水) 22:57:43.80 ID:VA9lZ4eM
なんかPIC16Fでつくるおもしろくてすごいもの教えて下さい
285774ワット発電中さん:2011/10/19(水) 23:15:55.17 ID:X8KlBEDP
LEDチカチカ
286774ワット発電中さん:2011/10/19(水) 23:28:47.27 ID:zajzCvgx
リレーカチカチ
287774ワット発電中さん:2011/10/19(水) 23:29:35.58 ID:XxJ//28p
>>283
LDOのデータシートによく紹介されている電流ブースト回路は、PIC内蔵のLDOには使えないよね。
基準電圧源だと、バッファを入れたら誤差が入ってしまうかも。
288ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/10/19(水) 23:37:54.94 ID:VfFRsPKG
>>284
キャラクタLCDに下記の内容を表示
■■■■■■■■■■■■■■■■
□□□□□□□□□□□□□□□□
289774ワット発電中さん:2011/10/19(水) 23:45:47.84 ID:GDfLjo3Q
今からならクリスマスに間に合うから、壮大なイルミネーションを作るのだ
290774ワット発電中さん:2011/10/20(木) 00:26:10.39 ID:z1rOH0iD
にちゃんびゅーわ作ってよ
291774ワット発電中さん:2011/10/20(木) 01:25:12.48 ID:WBrDHfz2
iPhoneみたいな携帯作って。名前は「PicPhone」
292774ワット発電中さん:2011/10/20(木) 06:17:32.17 ID:fp2iVNn8
>>11-13
> 203 名前:774ワット発電中さん[sage] 投稿日:2011/10/20(木) 01:44:22.19 ID:V02RJ2yg
> 彼でなくても、常識的に考えて秋月だけは避けるだろう。
> 送料バカみたいに高いし。少しは共立やデジット、千石、マルツを見習え、と。
293774ワット発電中さん:2011/10/20(木) 06:59:53.62 ID:1zKohxOh
高いと言いつつマルツとな?
294774ワット発電中さん:2011/10/20(木) 07:22:46.43 ID:cYuAZkL/
PICは秋月が一番安いんじゃないか?
29511-13:2011/10/20(木) 08:25:18.05 ID:KI26bcPa
>292
そう思うなら 各店のPICリストを作ってくれ。
296774ワット発電中さん:2011/10/20(木) 12:44:31.15 ID:B4KQ/s7W
このスレって、秋月の宣伝臭がプンプンするんだよなぁ
297774ワット発電中さん:2011/10/20(木) 12:51:41.47 ID:ShhIsGY7
で?
PIC関係で秋月以外のいい店があればどんどん出せばいい。
298774ワット発電中さん:2011/10/20(木) 13:32:35.54 ID:1zKohxOh
品揃えと価格のどちらも小売トップなのは否定できまい
宣伝言われてもね〜、越えるショップ紹介してよ、そしたらそっちの事でいろいろ書くから
299774ワット発電中さん:2011/10/20(木) 13:54:16.10 ID:3b8o6Z0t
PIC単体なら秋月しか無いだろう。
メジャー型番さえありゃあ品揃え的には問題ないし。

他の部品も含めてなら通販スレにでも行くべ。
スレ違いだからな。
300774ワット発電中さん:2011/10/20(木) 14:01:21.95 ID:NcoadJJX
型番によっては秋月一択だったりするし
301774ワット発電中さん:2011/10/20(木) 18:07:32.91 ID:KaoMXfju
宣伝乙
302774ワット発電中さん:2011/10/20(木) 18:53:32.01 ID:ShhIsGY7
まあ前スレで終わってる話なんだけどね


854 名前:774ワット発電中さん[sage] 投稿日:2011/08/11(木) 07:41:03.06 ID:XbQxC0dd
>>851
> PIC取扱品種の多さ、入手の容易さで秋月を越える小売があれば
それ言ったら終わってしまうやん。
PICだけで9,000種もヒットするDigiKeyに秋月が勝てる訳ないし。
「宣伝乙」って言われるのがオチ。。。



でも、でじきーのめどさは…
303774ワット発電中さん:2011/10/20(木) 19:16:01.83 ID:+MOd4mdB
>>288

PICいらね〜しw
304774ワット発電中さん:2011/10/20(木) 20:18:38.93 ID:KO6U1wLw
グラフィック液晶とPS/2キー付けてBASIC動かそうと思ったんだけど無理でした・・・・
305774ワット発電中さん:2011/10/20(木) 20:19:34.39 ID:A3GlXJCL
>>291
フィリピンのスーパーマーケット行くとその場で携帯電話に
いろいろハンダ付けしてくれるのを思い出した。
306774ワット発電中さん:2011/10/20(木) 22:34:31.53 ID:ENHCKYFu
>>304
BASICインタプリタとかをPICに搭載するのかと思った。
307耳がダメなソシヲタ:2011/10/20(木) 22:42:12.23 ID:BXxZFTku
>>306
どう読んでもそういう話だが。
308774ワット発電中さん:2011/10/21(金) 00:02:31.16 ID:l6kqrASL
PICでラジコン飛行機飛ばしたいお(^ω^)
だれかつくりかたおしえてお(^ω^)
309774ワット発電中さん:2011/10/21(金) 00:33:24.12 ID:Q6zbPdNO
>>308
インドアエアプレーンでよければ。
俺は作ったこと無いけど。

Indoor airplane world
http://blog.goo.ne.jp/toko0131/c/933456d6b96f4eede2468faa9b7e1103
310774ワット発電中さん:2011/10/21(金) 00:35:58.25 ID:OF3P7a5u
USBでプロポを繋いで画面の中で飛ばすのでも楽しいぞ
311774ワット発電中さん:2011/10/21(金) 02:57:18.36 ID:0PDaNjdz
>>308
>飛ばしたいお
>おしえてお
「お」って何だ? 「お」って。 バカじゃないの? 普通に言えよ。
312774ワット発電中さん:2011/10/21(金) 03:14:32.82 ID:bCSsNJz+
>>311
かわいくていいじゃないか
313774ワット発電中さん:2011/10/21(金) 08:41:58.90 ID:Y+gsxxHC
ここは2ちゃんねる
314774ワット発電中さん:2011/10/21(金) 14:14:46.72 ID:pCJrjxz3
pic24シリーズのusbホスト機能でbluetooth ドングル使ってる人いない?
315774ワット発電中さん:2011/10/21(金) 14:58:01.24 ID:YrU7ug1Y
>>311
「お」じゃなくて「お(^ω^)」でひとかたまりなんだよ
316774ワット発電中さん:2011/10/21(金) 20:36:17.75 ID:89n1fw6T
PICkit3ではシリアルEEPROMの書き込みはできないのでしょうか?
317774ワット発電中さん:2011/10/22(土) 02:38:45.89 ID:5K7eFeEn
PICでラジコン飛行機飛ばしたい 「お(^ω^)」

だれかつくりかたおしえて 「お(^ω^) 」

変なの〜。
318774ワット発電中さん:2011/10/22(土) 05:16:28.00 ID:SMeL1BxD
昔、「にょ」ってのは流行ったんだよ
俺も恥ずかしながら使ったにょ!
319774ワット発電中さん:2011/10/22(土) 05:22:51.33 ID:SMeL1BxD
特殊な語尾を付けるのはキャラ付けの基本なんだにゅ
そこを突っ込まれると心をえぐられた気分がするにゅ
にゅ?PICと関係ないからそろそろお暇するにゅ
・・・こんな感じだから、普通に使うとうざい事この上ないにゅ
320774ワット発電中さん:2011/10/22(土) 09:07:41.59 ID:7AYm3wOR
>>314
ググれ。どっかで見た覚えがある。
321774ワット発電中さん:2011/10/22(土) 10:59:03.09 ID:z/qJQG5i
>>304
>>306
猛者っているもんだね。

PIC Pico Basicの実験室
Microchip社製CPU:PIC24F専用Basic
ttp://www14.ocn.ne.jp/~picobe/
322774ワット発電中さん:2011/10/22(土) 11:02:02.14 ID:dzIzlxSu
昔、「ぎょ」ってのは流行ったんだよ
俺も恥ずかしながら使ったぎょぎょーーーー!!!

323774ワット発電中さん:2011/10/22(土) 11:12:51.64 ID:QEYN1gCt
にゅ、の中の人は出世したけど、にょ、の中の人は落ち目だな・・・
324774ワット発電中さん:2011/10/22(土) 11:16:10.65 ID:S6Egaq3w
猫っぽいのは にゃ
ねずみっぽいのは ちゅー
ゴリラっぽいのは ゴリ
が基本だろ
325774ワット発電中さん:2011/10/22(土) 12:13:43.73 ID:tPCzm34k
中国っぽいのは アル
韓国っぽいのは ニダ
326! 【5.4m】 【東電 88.6 %】 :2011/10/22(土) 20:25:19.67 ID:rDh6PTJB
>>321
SUGEEEEEEEEEEEEE
327774ワット発電中さん:2011/10/22(土) 21:40:32.65 ID:w14MhEdB
>>321
16F887Aで作ろうと思ったけどやっぱり無理かw
328774ワット発電中さん:2011/10/22(土) 21:58:06.59 ID:9tmCZ8yH
>>327
はやく16F8XXとかいうゆとり向けマイコンから脱却できるといいのにねw
(嫌ならPIC24H使えるようになれよw)
329774ワット発電中さん:2011/10/22(土) 22:08:55.10 ID:z/qJQG5i
PIC24をコアにして、ハード駆動用に幾つかPICを組み合わせたら
BASICパソコン出来るんじゃね?
330774ワット発電中さん:2011/10/23(日) 12:33:24.96 ID:i69IgkAx
アルバイト男性(29)方からノートマイコンなどを盗んで逮捕
http://raicho.2ch.net/test/read.cgi/newsplus/1319308795/

おまえら、なんか書き込んで来い
331774ワット発電中さん:2011/10/23(日) 13:01:01.91 ID:zQaB13Af
ノートマイコン
332774ワット発電中さん:2011/10/23(日) 13:07:37.02 ID:S/KmvmWT
何が変なの?
333774ワット発電中さん:2011/10/23(日) 13:30:31.67 ID:I2fB9Bs8
>>332
「ノートマイコン」の検索結果 約 2,080 件 (0.18 秒)
「ノートマイコン 逮捕」の検索結果 約 1,110 件 (0.22 秒
334774ワット発電中さん:2011/10/23(日) 13:34:58.59 ID:S/KmvmWT
>>333
結構ヒットするね
335774ワット発電中さん:2011/10/23(日) 13:57:09.47 ID:I2fB9Bs8
ま、ググル先生で1000件以下ってようするにゴミってことでしょ。
336774ワット発電中さん:2011/10/23(日) 17:45:34.10 ID:sOPkCyK2
337774ワット発電中さん:2011/10/23(日) 18:14:27.61 ID:TQXSlgvd
PICでハッキングツール作れる?
338774ワット発電中さん:2011/10/23(日) 18:44:18.99 ID:i69IgkAx
>>337
昔、プレステのコピープロテクトを解除するのにPICが使われたんじゃなかったっけ?
339774ワット発電中さん:2011/10/23(日) 18:47:51.79 ID:i69IgkAx
340774ワット発電中さん:2011/10/23(日) 21:43:18.06 ID:D17i4nmz
共立に行ったらpicの売り場のところに、
プログラムは書き込まれてないのでそのままではmod-chipとして使えない旨が貼られてた
341耳がダメなソシヲタ:2011/10/23(日) 23:35:41.01 ID:HTBuhKV8
今の話?
342774ワット発電中さん:2011/10/24(月) 17:11:19.45 ID:gnRivjhi
>>265
ありがとう。おっしゃるとうりですね。
16F887から16F1939への置き換えはあきらめます。

しかし、落とし穴にはまる人おおいんだろうなぁ。
343774ワット発電中さん:2011/10/24(月) 18:00:03.59 ID:4hNXYscX
置き換える必要はないが、新規のプロジェクトで1939使えないのって、情けないぞ
344774ワット発電中さん:2011/10/24(月) 18:17:22.66 ID:VqjvcJVg
かなり小規模の変更で載せ換えたけどな
少なくとも回路は何も変えなかったような
345774ワット発電中さん:2011/10/24(月) 18:18:56.77 ID:St0yuwiL
>>344
偶然とはいえよかったね
346774ワット発電中さん:2011/10/24(月) 18:32:35.63 ID:0ND26C5h
インクルードファイル変えるだけで、コンパイラが吸収してくれないのかな?
347774ワット発電中さん:2011/10/24(月) 19:36:02.21 ID:Eb7x/sxF
PIC18にするかどうか悩むところではあるね。
348774ワット発電中さん:2011/10/24(月) 20:36:56.38 ID:4hNXYscX
PIC18( ´,_ゝ`)?
24より性能悪くてただ高いだけの石かぁw。
そんなオワコンなんかゴミだろ。
当然16Fか18Fしか扱えない自称開発者もゆとり以下w
349774ワット発電中さん:2011/10/24(月) 20:41:54.03 ID:2+CiVpYb
>>348
バカにするな。
PIC16Fの時代があってこそ、PIC24があるんだぞ。
どの品種でも使えることのほうが、PIC24にしがみつくより、100倍有用だ。
350774ワット発電中さん:2011/10/24(月) 20:55:10.75 ID:d+dunDyU
TPO、コスト、入手性に応じて使い分ければそれで済む話。
通勤に高級車使っても、結局は移動手段だし。自己満足の世界。
351774ワット発電中さん:2011/10/24(月) 21:11:45.24 ID:GHqr3zoP
安く作って高く売るアルね
352774ワット発電中さん :2011/10/24(月) 21:17:38.38 ID:eGBkeHAu
なんでいまさらPIC18? PIC24F32KAxxxとか安いよ!
353耳がダメなソシヲタ:2011/10/24(月) 21:29:54.19 ID:GjMEyhN2
使いたい人は使えばいいと思うが、なんでそんなに必死に叩くのか不思議。
354774ワット発電中さん:2011/10/24(月) 21:39:31.73 ID:0lqIeo8o
>>352
24F安いけど情報少なくて使い方わからん
355774ワット発電中さん:2011/10/24(月) 22:17:32.68 ID:H0WO+QHk
24Fって3.3V系じゃなかったっけ?
調べもせずに書いているので、違ったら教えろ下さい
356774ワット発電中さん:2011/10/24(月) 22:20:41.05 ID:9lZZQ8SG
24Fに5V系があれば俺はAVRに移行しなかった
断言できる
357774ワット発電中さん:2011/10/24(月) 22:24:00.52 ID:BVAsJMtj
24FってUSB機能ある?
358774ワット発電中さん:2011/10/24(月) 22:29:54.10 ID:3Ndi+k8i
>356
5Vで使える、dsPIC30系じゃダメだったの?
dsPIC30ってペリフェラルのReMap機能が無い位で
命令体系も24Fや24Hと同じだし(+DSP命令)
総合的にみても24Fより上だと思うけど。
359774ワット発電中さん:2011/10/24(月) 22:38:33.21 ID:3Ndi+k8i
この前データシートみてて気がついたけど VDD上限3.6V系で
5Vトレラント入力可能なのっててっきり24Fだけと思ってたけど
24H,dsPIC33でもあるんだね。
アナログ入力と排他実装になっているようだけど
360774ワット発電中さん:2011/10/24(月) 23:11:18.22 ID:/eMEbz5+
>>357
一部ある
361774ワット発電中さん:2011/10/25(火) 00:47:07.77 ID:bsiRubGP
>>360
24系にもUSBあるのか。秋月で最初のころに24系の機能をチェックしてたときUSB機能が
なかったから。でも24系じゃなくて18系から選ぼうとする意図は基本的にUSBの有無なんじゃ
ないかと思った。
362774ワット発電中さん:2011/10/25(火) 01:54:01.93 ID:HhHsHCm4
>>354
日本語のデータシートがあるじゃない。
363774ワット発電中さん :2011/10/25(火) 05:01:30.76 ID:0TLt+W20
>>355 >>356
つっ PIC24FVxxKAxxx。
364774ワット発電中さん:2011/10/25(火) 12:14:02.03 ID:a0ixpwGp
>>362
webに転がってるソースを使ってみて覚えるっていうタイプなんじゃないかしら
たまに堂々とサンプルまで公開してるくせに間違ってるソースとかあって悶える。PWMの2bitの扱いとか…オシロ無いと気付かないんだこれが。
365774ワット発電中さん:2011/10/25(火) 14:11:22.67 ID:bsiRubGP
>>364
「PWMの2bitの扱いとか」ってのをもう少し詳しく解説して。
上位8ビットだけ使おうとすると下位2ビットって結構曲者なんだよな。
366774ワット発電中さん:2011/10/25(火) 19:35:06.41 ID:sdB/b4ag
TRISAレジスタとかTRISBレジスタの「TRIS」って何の略ですか?
出てくるたびに気になってしょうがない
367774ワット発電中さん:2011/10/25(火) 19:39:43.54 ID:j8jA1R5y
PICじゃないけど仕事で買った教育用ボードがクソだったときのプロジェクトの進みが遅いのは許しがたい。
なんで、SRAM使わない設定になっているはずなのに、アドレスとかデータのピンが勝手にSRAMにアクセスしてんだよ、取り込んだデータ勝手SRAMに渡してんじゃねーよ。
とか。
368774ワット発電中さん:2011/10/25(火) 19:49:31.06 ID:Ma0a1PYd
TRI-State?
369774ワット発電中さん:2011/10/25(火) 20:06:50.17 ID:Pn3oW0zk
>>367
「なっている筈」だからw

評価ボード買わずに、データシートとアプリノートだけで動くモノを作るのがプロ。
そんなスキル不足なら、素直にPICに安住してれば?
370774ワット発電中さん:2011/10/25(火) 20:48:47.73 ID:bsiRubGP
>>367
その問題は解決した?原因は何だったのか気になったので。
371774ワット発電中さん:2011/10/25(火) 20:58:33.61 ID:j8jA1R5y
あ、かけてた。

>368
いや、…さすがに書けないけど最近のボード。
書こうとも思ったが、誰か見てそうなんで怖いw

>369
やっぱりそうなのか…orz
…社内で誰も32ビットマイコン使ったことが無いのに必要性能を満たす(カメラ付く)からコレでって言われたんだよ。
(社長とか、上長とかから)
そりゃ満たしてたけど、購入後にハードとソフトの開発者が違うんで質問は向こうに問い合わせてください(で、個人のサイトのアドレス)とか言われる担当者のみにもなってください。
というか、俺ハード担当なのになんでソフトデバックまでさせられたんだよコンチクショウって感じですええ。
1週間ぐらいは結局それがわかるまで一人ハードの確認してた。向こう(購入したボード)で動いているんだからソフトの問題とは思えないって言われながらね。
文字通り全ピン当たらないと上長が許してくれなくてまじ地獄でしたよええ。
で取り込んだデータを勝手にSRAMに送り込んでいたのに気が付かず、マイコン内のRAMからデータをぶっこぬいてでてないな…と
そりゃ出ないわ俺の200時間残業返せ。

個人的にもPICがいいと思います。ウチみたいな場当たりで明日届くからとか買い物しちゃう零細は。
というか性能が足りてりゃ4bitでも2bitでもいいよ、マジで。
でもCQのSHみたいなへんてこマイコン大好き。早く出ないかなSH7268…。
372774ワット発電中さん:2011/10/25(火) 21:20:18.99 ID:j8jA1R5y
ご興味にお答えできるんならと。

>370
原因はサンプルソースを読み解けてなかったから、とも言えるかなぁ…。
まあ、検証用に買おうぜって言っておきながら、でも期日が迫ってるんで…とそれが来るまえに一枚作ってウダウダ言っているわが社がおかしいんだが。
(当然ハードにも色々無理があった)

結果サンプルソース上でI/Oたたきそうな機能を全部切り捨ててもらった。
(シリアル通信もLCDコントローラもその他も…みたいな感じで)
冗談抜きに切り捨てた上で必要なものだけ一つ一つ確認しながら実装してもらった。
結局、色んな構造体内で個別にI/O叩かせてるのをフラグで処理し切れてないのが問題だったらしい。
(だからわが社で作った方では存在しないSRAMを叩きに行くようなデジタル回りが出来上がったりしているわけで)
おかげさまで並行開発していたハコのバッテリー周りで(購入した基板の)消費電流まで見切れず、ワーストそのもので計算してバッテリーを必要量の○倍ぐらい実装しちまったよコンチクショウ…。

さすがにスレチでアレなんでこの辺でいいですよね?
スパースカラーとか無いけど、PICでも手軽にデコーダIC挟んだだけでNTSCとかPALとかのカメラとつなげられたらいいのに…。
おかげさまでアナデバさんから(個人的に)色々サンプル貰って楽しめてるし、3.3V系へのとっつきにくさも無くなったし。
仕事失う前に一枚二枚、需要もなさそうな変なボードでも作って遊んで見ようかと思ってる。
PICにも使えればいいのにと思ふ

マジスレチすまそ。
373774ワット発電中さん:2011/10/25(火) 21:45:16.18 ID:9lTfBFnR
>364
おどかすから慌ててデータシート確認しちゃったよ。
もしかしてCCPxCONのbit4じゃなくてbit5がLSBなのかと…
普通にCCPRxL<7:0>,CCPxCON<5:4>で10bit分と読めるんだけど
何か間違ってる?
374774ワット発電中さん:2011/10/25(火) 21:56:47.96 ID:m7gMAwSN
入手性の良さと価格に惹かれて別マイコンからPICに移行しようかと周辺事情を調べてます。
PICkit2の簡易ロジアナは便利そうだと思ったんですがPICkit3では省略されているのでしょうか?
375774ワット発電中さん:2011/10/25(火) 22:55:34.01 ID:a8sFULms
グダグダ長いな
つまりハードとソフトのアンマッチが原因で、
それはサンプルソフトをろくに読まずにハード設計したということか
376774ワット発電中さん:2011/10/25(火) 23:14:58.61 ID:RFRwqL+0
ハード屋がソフトに手を出すのも、その逆も効率が悪いってこった
当たり前すぎて何もいえない
零細だから分担できなかったのだろう、あえて言おう乙であると
377774ワット発電中さん:2011/10/25(火) 23:18:41.01 ID:PyCWCggp
>>365
8bitで使うときって、タイマー側の下2bitと100%と0%に気をつける以外は0でも書いて捨て置けばよくないか?
レジスタのビットそのものを間違ってるサンプルは見たなあ。オシロで確認するまで気付かなかった俺もアレだが。
378233:2011/10/25(火) 23:32:45.50 ID:KrqoMgc0
>>372
三行で
379774ワット発電中さん:2011/10/25(火) 23:54:54.53 ID:v7pOSFr3
ハードとソフトの両方やるのが楽しいのに
さらにメカもやれると最強
380774ワット発電中さん:2011/10/26(水) 00:00:46.83 ID:bsiRubGP
>>377
10ビットより低い分解能で使うと完全なリニアにはならないってことか。
381ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/10/26(水) 00:04:07.87 ID:9JUETMxy
>>379
学生の研究レベルではSH+FPGAで画像処理して、
機械系まで動かせたらネ申だぞ。

長期実務経験者の尺度は何とも言えない。ってか、1年経験でソフトだけなら余裕でしょ。
全部入りの職業SEは普通の会社では嫌われるからそういう人はコンサルでもやるのか。
382774ワット発電中さん:2011/10/26(水) 01:08:54.29 ID:kxY4C8DX
>380
ところがどっこい、10bitだと仕様上100%には絶対にできない(1024段階に対して1023までしか表現できないから)
ので、0〜100%フルに使うにはそれ以下でないと駄目なのだw

俺はキリのいい1000でいつも使ってる。
383774ワット発電中さん:2011/10/26(水) 07:00:30.18 ID:xamwuvTH
ちょっと意味がわからないですね
384774ワット発電中さん:2011/10/26(水) 07:01:53.75 ID:JtVkIDYp
なに言っているの。
0〜1023、ちょうど1024の段階じゃん。
385774ワット発電中さん:2011/10/26(水) 07:20:56.60 ID:kxY4C8DX
>384
そう、1023まで。でも1024かかないと波形は100%にならないんだ。
データシート読むかオシロで見てみ。
386774ワット発電中さん:2011/10/26(水) 07:29:23.03 ID:2a0u4HAe
パルス幅が1024ステップなら0〜1023でなく0〜1024で設定できないといけないな
精度が不要なら1023と1024は100%にして、直接ポートをON出力すればいい
387774ワット発電中さん:2011/10/26(水) 07:44:52.53 ID:XkGKa2hQ
>>382
理解できないです。
0〜100%を1%単位で刻むなら、101段階になるのですが…

0オリジンで1024段階なら0〜1023は必然です。
388774ワット発電中さん:2011/10/26(水) 07:50:37.46 ID:kxY4C8DX
あー、1024段階うんぬんが表現おかしいか。
そこは忘れろ。

一周期の期間が(PR2+1)*4で最大1024なのに対してDUTYが1023までしか書けない、て言いたいのよ。
389774ワット発電中さん:2011/10/26(水) 07:53:33.25 ID:cHdFLzUf
いくら机上で考えても、現物で調べた結果が結論になるんだろうな、この場合。
390774ワット発電中さん:2011/10/26(水) 08:00:21.69 ID:D4INyleI
以前、PIC16F88(87xだったかも)でやったときは、確かに3FFを書き込んでも
PWMの周期でスパイク状にLが出力されてたのがオシロで見えたよ。
391774ワット発電中さん :2011/10/26(水) 08:06:59.26 ID:u4QU+ZJL
>>390
そのヒゲでイルミネーションLEDがかすかに光るんだな。 プログラムでヒゲを殺してる w
392774ワット発電中さん:2011/10/26(水) 09:48:02.34 ID:2NQPbMDf
>>375
原文のほうが情報量が多くていい。
393774ワット発電中さん:2011/10/26(水) 23:01:48.79 ID:5PQJbw0q
おっとおれのPWMも毎周期ごとに初めに必ず一瞬信号が立つのだが同じ理由なのだろうか?
394774ワット発電中さん:2011/10/26(水) 23:23:39.03 ID:kxY4C8DX
完全なL(DYTY0%)には出来るはずだが。
395774ワット発電中さん:2011/10/26(水) 23:31:04.70 ID:xamwuvTH
1周期のHI:LOW比が0:1024〜1023:1という実装なんでしょ
どこもおかしくはないですね
396774ワット発電中さん:2011/10/26(水) 23:31:48.37 ID:b00o8WEu
周期を短くしたら?
397774ワット発電中さん:2011/10/26(水) 23:58:28.45 ID:kxY4C8DX
>395
100%にならない事に違和感を感じない人ならそうでしょうね。
あえていうなら君がおかしい。
398774ワット発電中さん:2011/10/27(木) 17:20:57.31 ID:pYQdVNiJ
0、100%のときだけPWMやめりゃいいじゃん。
399774ワット発電中さん:2011/10/27(木) 17:28:47.75 ID:3yVg8Dse
デジタル出力で0と1にすりゃ0%も100%も思いのままと思ったさ
400774ワット発電中さん:2011/10/27(木) 18:07:18.06 ID:PmAKjM9W
>398 399
0%と100%判定して分岐してPWM切って、それ以外の時はまたONにして。とか面倒くせえw
周期1020とか1000にすりゃいいだろ。
401774ワット発電中さん :2011/10/27(木) 18:32:57.15 ID:UIGW+DYi
>>400
それぐらいが面倒くさいと感じるなら、マイコンで遊ぶのは止めた方が良いのでは?
402774ワット発電中さん:2011/10/27(木) 18:37:49.35 ID:PmAKjM9W
>401
それしか手段がない場合ならともかく、明らかに無駄で遠回りな手段を好き好んで使いたくはないですな。
面倒だから簡単な手段を模索する、というのは技術者の本分じゃないんですか?
403774ワット発電中さん:2011/10/27(木) 18:44:43.48 ID:syi/1AJ0
簡単そうに見えて中では複雑なことしてる、というのも一つの形
404774ワット発電中さん :2011/10/27(木) 18:48:58.50 ID:UIGW+DYi
>>402
君にはマイコンは荷が重過ぎる。 よううく、これからを考えようね!
405774ワット発電中さん:2011/10/27(木) 18:53:05.99 ID:wDivhcrO
要求仕様を満たしてるなら>>400の方がスマートだと思うが。
個人の自由だからどうでも良いがな
406774ワット発電中さん:2011/10/27(木) 19:04:12.61 ID:PmAKjM9W
>404
なんだ無能、反論できなくなったか?w
407774ワット発電中さん:2011/10/27(木) 20:04:15.01 ID:LJo7CBxh
できるだけ分解能が欲しい or ほとんど影響ない

使い切らないと気が済まない or 動けばいい


好きにすればいいんじゃね?
408774ワット発電中さん:2011/10/27(木) 21:05:29.04 ID:AuQHw6LM
えっ?
PWMカウンタを使うかぎりどんな設定でも発生するんじゃないの?
409774ワット発電中さん:2011/10/27(木) 21:42:20.50 ID:7ttTbA/7
レベル低すぎw
PICで無理するぐらいなら、
素直にArduinoに移ったらw
410774ワット発電中さん:2011/10/27(木) 21:47:16.38 ID:H5JM5AIX
>>409
どんぐりの背比べって、知ってる?
411774ワット発電中さん:2011/10/27(木) 21:56:28.46 ID:18dQ6MEY
お前らにはスルーカが足りない
412774ワット発電中さん:2011/10/27(木) 22:16:10.25 ID:D9jLlOgj
何かが変
413774ワット発電中さん:2011/10/27(木) 23:28:37.38 ID:2bXLCwFm
頭痛が痛い;;
414409==銀翼の堕天使 ◆2TENKK.nkY :2011/10/28(金) 00:20:16.00 ID:AoAhr+cZ
PICが低レベルとは一言も言っていない。
英文データシートもろくに読めない輩は、PICすら扱えないから、
もっと稚拙なArduinoでシコって寝ろって言う意味。
415774ワット発電中さん:2011/10/28(金) 00:32:49.72 ID:LPBKJo+p
Arduino >>>>> 超えられない壁 >>>>> PIC
416774ワット発電中さん:2011/10/28(金) 00:47:21.79 ID:fEjRxHMu
>>415
あのさ、「金田式 DCアンプ Part22」なんかで誤爆してんじゃねぇーよw
http://toki.2ch.net/test/read.cgi/pav/1311235063/l50
417774ワット発電中さん:2011/10/28(金) 01:01:54.99 ID:Qd5il1i0





Arduino初心者熱烈大歓迎質問スレ
http://kamome.2ch.net/test/read.cgi/denki/1304842065/

Arduinoーフィジカル・コンピューティングスレ
http://kamome.2ch.net/test/read.cgi/denki/1284127732/







418774ワット発電中さん:2011/10/28(金) 15:57:16.21 ID:b78djETS
PIC32のDIP品が登場!
http://journal.mycom.co.jp/news/2011/10/25/087/index.html

なぜか、ほぼ同時期に ARM Cortex-M0 でもDIP品
http://techon.nikkeibp.co.jp/article/NEWS/20111026/199859/?ST=print
419774ワット発電中さん:2011/10/28(金) 17:33:47.52 ID:dsSvf563
>400 >401
机上論をいくら戦わせても無意味
>400の方法で実際の回路でやってみると
Duty50% 電圧1.6V
Dut 75% 電圧2.4V
Duty99% 電圧3.2V
Duty100% 電圧3.7V
となっちゃったよ。
Duty99%をDuty100%とみなす。が実際の「答え」では?
420774ワット発電中さん:2011/10/28(金) 18:23:41.51 ID:7Yp08aV+
>419
その電圧はどう測ってそうなったの…おかしいと思わないの?
421774ワット発電中さん:2011/10/28(金) 18:36:29.33 ID:9djtrBX6
>419
お前が何を言っているのか本気で判らん。
422774ワット発電中さん:2011/10/28(金) 18:38:35.85 ID:9djtrBX6
つーか99%と100%で電圧とやらが1割以上違うことに疑問を感じないのかw

なんの電圧だか知らんが。
423774ワット発電中さん:2011/10/28(金) 18:44:30.83 ID:dsSvf563
>>420
メンゴ>>400の方法じゃなくて>>398の方法だった。
マブチモータを回した、モータドライバICはTA7291P
PWMの周期は5,000Hz
おかしいかも知れないけど、俺はこの結果でいいんだ。
深入りはしないDuty99%=Duty100%みなしで、プログラムもシンプルだし
実用上何の問題もないし、俺はこれでいいんだ。
424774ワット発電中さん:2011/10/28(金) 18:46:32.00 ID:jhE4TD/G
どーやって計ったんだろうかね、PWMの電圧…
99%がへんちきりんなのは「実際の回路」とやらのせいじゃね?
425774ワット発電中さん:2011/10/28(金) 18:48:12.02 ID:jhE4TD/G
お、打ってたら
その結果でいいのか… というか自己完結してるならそこで話終わってないか?
426774ワット発電中さん:2011/10/28(金) 18:55:55.75 ID:rwjMM4d1
実験が、実験の体を成していないところは、とりあえず置いておくにしても・・・

ID:dsSvf563 はDutyが厳密に100%になら無いと、信号に「ヒゲ」が出て困る用途がある
という、この議論のそもそもの出発点を理解して無いのではないか。
427774ワット発電中さん:2011/10/28(金) 18:56:39.19 ID:bukkRzeo
要求spec満たせる、より簡単な方選べばいいよ
428774ワット発電中さん:2011/10/28(金) 19:10:40.69 ID:dsSvf563
>>425
「俺はこれでいいんだ。」と強がりを言ったけど、本当は「回路」が悪いんじゃ
ないかなと思ってる。TA7291Pの電圧降下が大きいのが不満なんだ。MP4212に変える
と問題が大きく改善されるのかなあと考えてる。機会があったらMP4212を試して
みようと思ってるが時間が取れなくて
429774ワット発電中さん:2011/10/28(金) 19:14:51.46 ID:9djtrBX6
どうせやるなら信号反転してLO入力で回転、HI停止にしてやるとこの議論の出発点がわかるよ。

止めたつもりがジリジリと動き続ける…
430774ワット発電中さん:2011/10/28(金) 19:15:15.60 ID:dsSvf563
>>426
この議論のそもそもの出発点を理解していません
431774ワット発電中さん:2011/10/28(金) 19:39:12.05 ID:dsSvf563
>>429
俺はDuty0%で使うことがなかったのでわからなかったんだけど
Duty0%にしてもモータがジリジリと動いてしまうのならPICの
PWM機能 問題だな。俺ならDuty0%の時は例外処理に飛ばして
強制的に電源offにしてしまうプログラムを組む
432774ワット発電中さん:2011/10/28(金) 19:43:10.01 ID:8Ce3kHKI
>>429
1%の電力でモーターって回るものなの?
433774ワット発電中さん:2011/10/28(金) 19:47:02.54 ID:rwjMM4d1
>>431
>>400
ループって怖いね・・・
434774ワット発電中さん:2011/10/28(金) 20:10:09.51 ID:dsSvf563
>>432
Duty20%以下になったらモータ回りませんでした。

>>433
ホントだ。また話がもどってる。

そうか、PWMの分解能を稼ぎたい為に、PWM周期を上げられないニーズも
あるよなあ。ニーズとPICの仕様のトレードオフになるんだよな。
(また、そもそもの出発点からハズレてる。)
435774ワット発電中さん:2011/10/28(金) 20:54:25.32 ID:/rMrHECV
円高だしデジキーとかいう通販でも検索してみるか。
436774ワット発電中さん:2011/10/28(金) 21:42:12.18 ID:hkU5jJgO
20桁くらいの7セグを表示したいのですが、ダイナミック点灯は避けたいのですが、
7セグ1個に1個のメモリーICを使って一度送った値を表示し続けるようにしたいのですが、
そういう専用ICとか定番の方法があったら教えて欲しいです。
437ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/10/28(金) 21:56:51.30 ID:AoAhr+cZ
>>436
過去ログからこのスレ読み直せ
438774ワット発電中さん:2011/10/28(金) 22:31:03.92 ID:CMSThJII
>>436
ウチにピッタリの基板があるなぁ
439774ワット発電中さん:2011/10/28(金) 22:55:45.70 ID:e077qzt/
>>436
74HC164
440774ワット発電中さん:2011/10/28(金) 23:18:32.27 ID:7Yp08aV+
>436
専用IC使わなくても、PIC複数個で使って作ればいいんでない。
7セグならドット含めて1桁に8pin必要だけど40ピンのPICなら4桁分表示できる
(電流的には厳しいかもしれないのでTr必要かな)
親PICから桁+数値のデータ送って対応する子PICだけが反応して表示書き換える
USART通信でも親から子への一方通行で良いからで子側が複数でも問題ない
441774ワット発電中さん:2011/10/28(金) 23:24:50.27 ID:bsE/CDj3
ttp://eetimes.jp/ee/articles/1110/27/news098.html

模倣半導体とかって出回ってるのか、秋月とか使いずらくなるなぁ
442774ワット発電中さん:2011/10/28(金) 23:29:59.85 ID:1yVh9HCt
74系に何があるか全部目を通しておくのも必要だよな
443774ワット発電中さん:2011/10/29(土) 00:04:31.78 ID:kUUeLsj9
TTL全盛期にはTIのTTLデータブックが設計者必携だったけど今は無いのね。
特に目的が無くてもパラパラめくって流し読みしているだけでも面白かったな。
444774ワット発電中さん:2011/10/29(土) 00:04:44.83 ID:aF8M7fSj
>>436
74595でいいじゃん。

>>441
×使いずらくなるなぁ
    ↓
○使いづらくなるなぁ
445774ワット発電中さん:2011/10/29(土) 01:01:06.77 ID:2k4UZdNE
>>436
俺様なら
PICだけ使うなら5個のPIC16F887をI2Cスレーブにして異なるI2Cアドレス割り振って
4桁分ずつ送るね

でも74HC164をジャンクで一杯もってるから20個シリアル接続して
7セグのコモン側にPchなりNchなりのFETかましてOFFにした状態で
データをシリアル出力して完了したらFET ONで表示するものいいね
SPI使うと速く転送できるかな

74HC273 74HC373 74HC573 74HC574のジャンクも一杯もってるから
20個亀の子配線して8bitデータを共通配線してPICのBポートとかに接続
各クロック端子は20bit分のPICのポートで管理すればPIC16F887とか1個でできるね
446774ワット発電中さん:2011/10/29(土) 02:30:15.93 ID:W0DX0CHA
>>436
各桁にPIC16F1823一個ずつ付けてI2C
447774ワット発電中さん:2011/10/29(土) 03:16:42.59 ID:Amqd1ARC
>>445
HC164にご執心のようだけど、
HC164はレジスタの出力がそのまま出力に出ているので、
データ転送中に出力がリアルに変化してしまわない?
FET ONで表示するってのも、よくわからない。転送完了まで7segはoffということ?

その点、HC595なら、RCK(レジスタークロック)があって、
ダブルラッチ構造なので、全部のデータを転送した後に、
RCKをアサートすれば、全bitが同時にパッと変化するから、HC164より上品に操作できないか?

標準ゲートのシリアルものの定番と言えば、74HC166と74HC595だと思うけどなあ。

書き込み速度にも依ると思うけど、8bitパラレルでラッチで保持もいいけど、配線が面倒たよね。
シリアルでホイッと簡単にスマートにやりたいよね。
448のうし:2011/10/29(土) 03:27:57.27 ID:gOHxbv8a
HC164で7セグ数桁ってのやったことある。
たしかにシフトした際に一瞬全部のセグメントが点くけどたいしたことなかった。
どうしてもならOEがある4094を使えばいい。
449774ワット発電中さん:2011/10/29(土) 06:49:53.23 ID:daRx6vK6
>>448
> たいしたことなかった。
どう感じるかは個人で違うだろ?

450774ワット発電中さん:2011/10/29(土) 08:07:04.66 ID:X0DG90Yk
だからその話をしてるんだろ?
451448:2011/10/29(土) 08:18:58.77 ID:gOHxbv8a
シフトの早さにもよるから、早いほど影響はないと思う。
ちなみに例のやつは4桁で1msくらいでドライブした。表示間隔は1秒ごとくらい、よほど気にしなければわからないかも‥

つうか、ブレットボードで実験してみたら?
452774ワット発電中さん:2011/10/29(土) 09:46:26.39 ID:Hc2H61S3
>>443
最近の情勢はよく知らんが、ディスコンになっちゃったのも結構あるんだろうなぁ
453774ワット発電中さん:2011/10/29(土) 12:55:01.05 ID:aF8M7fSj
>>448
>どうしてもならOEがある4094を使えばいい。
この場合、OEではなくて、Strobeがあるのがメリットなんじゃないの?
454774ワット発電中さん:2011/10/29(土) 13:08:16.20 ID:KpjX4yiA
最初の人がダイナミックはやだと言ってるのに、表示が一瞬でもちらついたり
消えたりする方法を教えるってのはどうなのかな。
455774ワット発電中さん:2011/10/29(土) 13:57:09.02 ID:JwNIpc+p
HC4511が7セグ専用ICっぽい、1桁に1個使用。
456774ワット発電中さん:2011/10/29(土) 15:27:40.26 ID:Hc2H61S3
昔よく使ったなぁ@4511
457451:2011/10/29(土) 15:46:12.54 ID:gOHxbv8a
458774ワット発電中さん:2011/10/29(土) 16:40:30.53 ID:PxyYPfJ7
459774ワット発電中さん:2011/10/29(土) 16:56:15.33 ID:X0DG90Yk
>>454
ダイナミックが嫌なのは20桁あるからじゃね? という思い込み
460774ワット発電中さん:2011/10/29(土) 17:05:34.32 ID:PxyYPfJ7
>>458
ウソ書いた
目的数字を表示してLEをHにすれば数字表示が保持される
千石で147円
http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=HC4511&x=33&y=20&k3=2&list=2
461774ワット発電中さん:2011/10/29(土) 17:21:37.86 ID:PxyYPfJ7
>>436
20桁の7セグ どういう用途に使うのか知りたい
462774ワット発電中さん:2011/10/29(土) 17:35:00.18 ID:EcBFD5/G
テレビじゃね?
フリッカー対策とかめんどくさいんだろ
ダメな大道具だな
463774ワット発電中さん:2011/10/29(土) 18:05:13.35 ID:Wu/OVAL6
なるほどな
20桁のどれを指定するかのセレクタも、5bit入力みたいな都合のいいの無いような
464451:2011/10/29(土) 18:09:07.24 ID:gOHxbv8a
こぉんなのかもよ。最近 熱い話題のニュートリノ系でタイムマシンとか。

http://img4.blogs.yahoo.co.jp/ybi/1/5c/36/analog_limited_vol29/folder/947624/img_947624_20501366_0?1290040259

16セグが かっこいいのに反して時代錯誤がはなはだしい。
465774ワット発電中さん:2011/10/29(土) 18:27:04.45 ID:PxyYPfJ7
>>462
テレビ番組の大道具さんですか。可能性ありですね。
でも、大道具さん仲間でノウハウ持っているような???
466774ワット発電中さん:2011/10/29(土) 21:59:25.87 ID:w+KqNCMT
周波数カウンタだったら紙だな
467銀翼の堕天使 ◆2TENKK.nkY :2011/10/29(土) 22:05:49.23 ID:hockO58D
テレビの大道具なら高価なラッチドライバ付き7segをジャカジャカ使うだろ
高輝度で大型を求めるなら尚更
468774ワット発電中さん:2011/10/29(土) 22:50:34.96 ID:Wu/OVAL6
テレビのカメラって感度低いからな
ガンガンにライト照らして撮影する
LEDも相当光らないと見えない
469464:2011/10/30(日) 06:37:32.34 ID:sIY6Fq6w
以前に学祭やステージ用のデカい(40cm高)7セグを作ったことある。
ICL7107の出力を簡単なSSRでスイッチして40W電球のセグメントにした。

4桁だったもんだから、8888の表示では1kW以上になった。
470774ワット発電中さん:2011/10/30(日) 07:34:59.29 ID:fAsKwhac
I/Oの多いPICで直接ドライブが一番安上がりか。
下手にロジックIC買うよりもマイコンチップのほうが安いとかw
471774ワット発電中さん:2011/10/30(日) 08:04:38.84 ID:BV72wxRh
PICで専用ICの肩代わりはいいんだが、
問題は電流なんだよな。
単に低速でロジックだけを扱うんなら
いいんだが。
472774ワット発電中さん:2011/10/30(日) 08:14:48.38 ID:7xlcXFS9
>>436は7セグ用の専用ICがあるのか?どうか?知りたかっただけだろう。
74HC4511の情報をゲットしただけで十分満足してんじゃね。その後レスもないし
使用する7セグの大きさ(電流量)情報がないと多ピンPICのアイデアは無意味
ダイナミック点灯を拒否するなら、たぶん点灯電流の問題が最大課題になる
473774ワット発電中さん:2011/10/30(日) 09:22:16.67 ID:ZgH/J5vg
20桁ってのは長いね。もしダイナミック点灯でやったら見え方に問題がでてきそうだ。
ダイナミック点灯が使える桁数としては最大で8桁くらいだろうか。
474774ワット発電中さん:2011/10/30(日) 09:43:08.87 ID:7xlcXFS9
>>473
>>436も20桁表示に実際に取り組み始めたら電流問題の壁にぶつかり
影響の無い範囲内でダイナミック点灯と取り入れ、
20桁を5ブロクに分け、4桁のダイナミック点灯 と言う所位に落ち着くん
じゃね?そうなると1桁毎HC4511でやるか?多ピンPICでやる方が有利か?
を考えなきゃいけなくなるんじゃね?
475774ワット発電中さん:2011/10/30(日) 10:22:58.55 ID:dlXkHXx1
ここまでCPLDの出番なしか・・・
476774ワット発電中さん:2011/10/30(日) 10:50:28.45 ID:BV72wxRh
この後も無いような気がする。
出力に何らかのドライバを挟むんなら今までの流れでも十分網羅してるし。
477774ワット発電中さん:2011/10/30(日) 11:20:25.42 ID:swcqPuAz
7セグ1個に対してPIC1個使って、I2Cでコマンドを受けて表示する
7セグの幅の基板を起こして量産しておいて、次の大道具でも使い回す
478774ワット発電中さん:2011/10/30(日) 11:56:31.39 ID:WBbr6RBu
I2Cインターフェースの1桁7セグモジュール
桁の順番は設定したI2Cスレーブアドレスに対応
スレーブアドレスはリセット時EEPROMからの読み出しで
ISPでEEPROMにスレーブアドレスを書き込めば桁の順番は自由自在

1個500円

これは売れるよ!
479774ワット発電中さん:2011/10/30(日) 12:12:09.48 ID:AZmeUHpX
>>478
I2Cだとアドレスの扱いが面倒だね。
どうせならそのEEPROM書き込みもI2Cでしょう。
リセットジャンパで工場出荷アドレスにできるようにすれば。
しかし7SEG1桁+PIC(EEPROM)の抱き合わせユニットで500円てどうなんだろ。
4桁ぐらいなら欲しいかな。
480774ワット発電中さん:2011/10/30(日) 12:27:01.98 ID:fAsKwhac
小規模な所が製品化か、いい流れだね。
500円なら電源込みの1ワイヤー制御にまで落とし込んで欲しい所。
481774ワット発電中さん:2011/10/30(日) 13:05:21.12 ID:7xlcXFS9
7セグ(3桁)のI2C通信の工作事例が紹介されてますね。
http://www8.plala.or.jp/InHisTime/page107.html#PIC-093
意外と簡単に作れそうですね。
482774ワット発電中さん:2011/10/30(日) 14:21:31.73 ID:swcqPuAz
ダイナミック点灯しとるがな
483774ワット発電中さん:2011/10/30(日) 14:41:33.02 ID:n2lh2C6G
なんで74HC595でやらないの?
484774ワット発電中さん:2011/10/30(日) 16:12:10.50 ID:EgkUxFzC
だよな、I2Cって、回線インピーダンスも高いし、手続きも要るし、
多桁LEDの駆動になぜふさわしいのかわからない。
どうしてもPICを使いたいなら、SPIで通信した方が良いと思う。

俺がPICでやるなら、
シリアルならHC595+8pin PIC、
パラレルならHC573+16F88などの18pin PICだな。

もっと楽ちんなのは、CPLDだけど、20桁×7セグメント=140るので、
XC95256、XCR3256以上になるね。
485774ワット発電中さん:2011/10/30(日) 16:55:23.63 ID:swcqPuAz
そんな配線したくねー
シリアル通信すら面倒なので、無線で送る
486774ワット発電中さん:2011/10/30(日) 17:23:31.42 ID:N7NN7ISb
>484
今となっては74HCって割高なんだよ。8回路系のなんて用途が限定されるのに
1個100円以上する。速度が必要ないなら安い多ピンのマイコンの方が向いてる。
487774ワット発電中さん:2011/10/30(日) 19:20:24.94 ID:AZmeUHpX
74HC595ならバラでも20円辺りで買えるから
多ピンマイコン数個よりは安いんじゃないかと
488774ワット発電中さん:2011/10/30(日) 20:18:27.83 ID:xOn2FP1u
>>487
その値段で買えるのはどこ?
489774ワット発電中さん:2011/10/30(日) 21:35:56.09 ID:bqk0draH
それ私も知りたい
490774ワット発電中さん:2011/10/30(日) 22:07:55.24 ID:N7NN7ISb
DigiKey辺りだと1個50円弱で買えるみたいだけど
必要な時に送料\2000払ってまで買うのはもったいないし、かと言って
\7500以上購入で送料無料だからって用途も未定なのに買いだめするのも
もったいないし…
>487
でも1個20円なら買っといてもいいですね。ぜひ教えてください
491774ワット発電中さん:2011/10/30(日) 22:24:52.50 ID:5LG0dFOA
>490
MOUSER. 送料無料条件はデジキーと同じだからデジキー嫌うなら選択肢外だけど。
1個買いで15円だね。
http://jp.mouser.com/Search/Refine.aspx?Keyword=74hc595&Ns=Pricing|0&FS=True
492774ワット発電中さん:2011/10/30(日) 22:37:46.29 ID:fAsKwhac
>>474
どうしてもスタティック点灯じゃないと駄目、って事じゃなければ
それが一番良さそうだね。
493436 :2011/10/30(日) 23:39:56.81 ID:6ViJUr6G
関連も含めてたくさん情報をありがとうございます。
いろんな方法がありそうですね
超初心者の自分にはIOが14個あるPICを20個使うのが一番誘惑されるのですが
レベルシフターが一般的ならそれを試してみようと思います
用途はいつも同じような計算をする計算機みたいなものです。
a/b*c=xみたいな計算でそれぞれが5桁でどれを入力するか表示するかで
表示切替ボタン設けたくないので、20個の7セグを並べたいです。
なぜダイナミック点灯はだめかというのは肉眼でもちらつきそうに思ったからです
撮影用途ではないです。
テレビでちらつかない7セグが映るとすごく気になります。業務用の機器とかは標準なのかな?
494ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/10/31(月) 00:09:16.52 ID:sHVZUWuS
何でここまででシフトレジスタが出てこない

>>493
シフトレジスタ式LEDドライバを使うのが、多点LED制御の常識
(スタティック含めて)
たとえばこんなやつ
http://eleshop.jp/shop/g/g9CC313/
495ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/10/31(月) 00:10:28.41 ID:sHVZUWuS
あら、HC595はシフトレジスタだった。
でも、所詮HCだから、LED直接繋ぐような使い方は向いていない。
496774ワット発電中さん:2011/10/31(月) 00:57:46.07 ID:EQaUVBnP
ACがいいと?
497774ワット発電中さん:2011/10/31(月) 01:36:30.72 ID:G/4eGWd3
PICワンタイム(OTP)マイコンって
何で1回しか書き込めないの?

そちらの方が消えにくいとか?
誤動作し難いとか?
498774ワット発電中さん:2011/10/31(月) 02:37:32.84 ID:zKxaoMFC
>何で1回しか書き込めないの?
ワンタイム(OTP)マイコンだから。
499774ワット発電中さん:2011/10/31(月) 02:40:20.81 ID:zKxaoMFC
>>495
>でも、所詮HCだから、LED直接繋ぐような使い方は向いていない。
おいおい、HCなら十分にLED直接駆動できるよ。

東芝のTB62777とかなら、LEDの制限抵抗無しでOK。
外部抵抗1本で、まとめて電流調整できるよ。
500774ワット発電中さん:2011/10/31(月) 02:47:17.65 ID:xr/NgsNs
>497
ファームウェア更新を考慮する必要がない製品量産用。
501774ワット発電中さん:2011/10/31(月) 02:53:56.11 ID:EQaUVBnP
>>497
単純にコストかと。
502774ワット発電中さん:2011/10/31(月) 03:02:10.51 ID:G/4eGWd3
>>500-501
ありがと

そんな物ですか?
コストですか・・・
てっきり、ノイズでプログラムが消えにくいとか
プログラムの保持年数が長いとか
いろいろ考えて悩んでしまったよ?w

>>498
俺だって、日本人なので日本語くらい読めるw
503774ワット発電中さん:2011/10/31(月) 03:51:22.75 ID:+LH2edsU
>>493
で、どの位の文字の大きさの7セグが必要なの?
一般的な文字高14.2mmの7セグでOKなの?大きな文字を考えてんの?
↓文字高14.2mm 4桁ダイナミック点灯7セグ 250円
http://akizukidenshi.com/catalog/g/gI-03955/
(点灯最大電流のあたりをつけなければ)

文字のチラツキが許容出来るならダイナミック点灯でもOK(撮影用途ではない)
用途は計算機表示「a/b*c=x」5桁×4=20桁
初心者の電子工作
504774ワット発電中さん:2011/10/31(月) 03:55:45.87 ID:993QXcYB
PIC16F84でZigBeeの文字列送受信できる?
505774ワット発電中さん:2011/10/31(月) 04:15:51.74 ID:+LH2edsU
>>504
できるけど、なんで今、化石PICの16F84(A?)を使わなきゃいけないの?
506774ワット発電中さん:2011/10/31(月) 07:17:59.60 ID:B/DHgqTT
化石と入っても秋月で割高で売っているのは人気のある証拠。
507774ワット発電中さん:2011/10/31(月) 08:00:46.76 ID:ncEGnwpb
>>497
紫外線消去型のEPROMを載せたマイコン(窓付き)が元になってて、窓を無くしたのがワンタイム。
フラッシュROMが出来る前の技術で作られてます。
書き換えできないと不便な用途(デバッグ不十分で出荷されるとか?w)には向かないから
フラッシュROMタイプが重宝されるようになった。
普通は、マスクROMマイコンを使った製品の量産試作とかで使用する。
508774ワット発電中さん:2011/10/31(月) 09:16:37.26 ID:B/DHgqTT
PIC16F1827で作ったプログラムをピン数が足りなくなったので16F1938用に書き換えて書き込みしようとしています。

Target Device ID (00000000) does not match expected Device
ID (000023a0).

こんなエラーが出てPICkit3からプログラムを書き込み出来ません。
何が悪いのでしょうか?
509774ワット発電中さん:2011/10/31(月) 09:17:07.57 ID:wh7CiPaS
>>506
割高と人気は必ずしも一致しないよ。
510774ワット発電中さん:2011/10/31(月) 09:33:46.66 ID:nv/qfRf9
PICが種類ごとに持っていて読みだし可能なデバイスIDを読み出してみたら00000000で
PIC16F1938として期待される値000023a0と違う
つまりID読出という基本的なやりとりがPICkit3とターゲットのPIC16F1938との間でできていない
とか
511774ワット発電中さん:2011/10/31(月) 09:40:35.04 ID:nv/qfRf9
Target Device ID (0x0) does not match expected Device ID (0x23a0).
http://www.microchip.com/forums/tm.aspx?high=&m=587672&mpage=1&settheme=Mobile

似た話題があるけど関係あるのかな
512774ワット発電中さん:2011/10/31(月) 10:31:25.63 ID:htvm8/nW
秋月は16f84しか使えない無能なオワコンエンジニアから搾取しているだけ

教科書と同じものしか使えないゆとりか
新しい物が覚えられない老害なんだろw
513774ワット発電中さん:2011/10/31(月) 11:42:41.92 ID:CTeTcml9
秋月にしては設定価格がやけに高いよね。
労咳プライスか。なるほど。
もしかすると店頭クレーム対応度が価格に反映されてんのか。
514774ワット発電中さん:2011/10/31(月) 11:50:59.99 ID:A7OV5dSu
>>512
オワコンって何?

変な省略語を使って、自慢気に語るのが、
おバカさんって感じだね
515774ワット発電中さん:2011/10/31(月) 11:53:43.96 ID:9fzL/OYD
さすがにオワコンを全く知らないというのはどうかと
略称をバカにしたいなら、もっと気の利いた切り返しが欲しい

まあ、オワコン自体がアホいんだどさ。
そもそも「オワコン」の中にある「コンテンツ」を把握して使ってるやつってもう居ないだろ、これ。
516774ワット発電中さん:2011/10/31(月) 11:54:01.27 ID:B/DHgqTT
16F84Aが高いのは高くても売れるからだと思うな。商売ってそんなもんでしょ?
517774ワット発電中さん:2011/10/31(月) 11:56:09.86 ID:B/DHgqTT
>>510-511

ありがとうございます。
とはいうものの、どうすればいいのかさっぱりです。
英文のはMPLAB IDEは自分のバージョンより若いので既に解決済みの問題と思われ。
518774ワット発電中さん:2011/10/31(月) 12:13:53.01 ID:wh7CiPaS
>>517
単純に結線が間違っているだけ。電源供給の有無。って事じゃないかなぁ?
単純な構成(5本結線)をブレッドボードで作ってみると他の影響を排除
できるので原因究明が早くできる可能性はあるかと。
519774ワット発電中さん:2011/10/31(月) 13:15:11.97 ID:sHVZUWuS
>>516
学校で教材として使っている場合も多いし
520774ワット発電中さん:2011/10/31(月) 14:06:06.10 ID:upBLKabl
PICKITって買ったことないけど、ICSPできないデバイスを秋月で扱ってるの?
521774ワット発電中さん:2011/10/31(月) 17:39:10.40 ID:B/DHgqTT
>>518

そうですね。どうやら結線が悪いようです。
試しに1本ずつピンを外していって変化を調べたところ、
なんと全て外したき、PICkit3を完全に外した時、
まったく同じTarget Device ID (00000000) does not match expected Device
ID (000023a0).
とでました。なんともゆるいエラー表示だなあと思いました。
配線が悪いのだと思いますが、それほど複雑でもないし間違えようも無いと思うし、
案外、ブレッドボードでなくて基板に起こすと直ったりするのかなと。
522774ワット発電中さん:2011/10/31(月) 19:03:57.52 ID:OOOe2Fkj
>521
2個あるVSSの片方しか繋いでいないとか? 適当だけど
523774ワット発電中さん:2011/10/31(月) 19:23:14.73 ID:Xm/YamMv
PIC16F84

チョベリグ!!o(*'▽'*)
524774ワット発電中さん:2011/10/31(月) 19:54:35.58 ID:uYUcoj9Q
PIC16F88 

も、チョベリグ!!o(*'▽'*)
525774ワット発電中さん:2011/10/31(月) 20:06:06.53 ID:B/DHgqTT
>>522

いやそれが2個あるVSSの片方だけにしたら直りました。www
VDDの反対側のVSSだけにしたら上手く繋がりました。
何故なんでしょうかね?VSSが2つあるのはそもそも何故なのか?

それだけでなく基板にも起こしました。
ブレッドボードではうまく行かなかったです。

で今度は違うエラーに悩んでいます。

プログラムすると

The following memory regions failed to program correctly:

Debug Executive
Programming failed


などと出ます。1827ではこんなことは無かったのに1938にしただけでこんなになるなんて。
526774ワット発電中さん:2011/10/31(月) 20:18:54.00 ID:wh7CiPaS
>>525
配線VSSの件、何か変な気がする。予備のデバイスあれば試したいところ。

デバイスの選択が違っている気もするし、もしかしたらプログラムメモリサイズ
ぎりぎりでDebugルーチンが組み込めなかったり。推測だけど。。
プログラミングの他、イレーズやブランクチェックも駄目なの?
527774ワット発電中さん:2011/10/31(月) 20:38:00.04 ID:jW3XESgy
>>505
家に沢山あるからです(^ω^)
528774ワット発電中さん:2011/10/31(月) 20:42:59.28 ID:B/DHgqTT
>>526

プログラム時
Programming...

The following memory regions failed to program correctly:

Program Memory

Address: 00000000 Expected Value: 00003080 Received Value: 00003fff

Programming failed



イレーズ時
Erasing...

Erase device complete



ブランクチェック時
Blank Checking...
The following memory regions failed blank check:

Program Memory

Address: 00000003 Expected Value: 00003fff Received Value: 00000fff

Blank check failed

こんな感じですね。

それから
2つ目のVSS、この場合19番ピンですが、これをGNDに繋いだ途端にPICkit3のSTATUSランプが赤く点灯する事からして
利用は判りませんがこれはPICkit3に結線するべきではない気がします。
529774ワット発電中さん:2011/10/31(月) 20:52:43.87 ID:B/DHgqTT
>>527

家にもまだ少し残ってます。16F84Aと秋月ライターだったのは4年前かな。
プログラム書き直すたびにICソケットに抜き差しするからそのうち脚が折れて使えなくなって、
そのために沢山予備を持っていた。

あと、12F683と675。安いから沢山在庫買ったけど、今はF1PICがあるし、
わざわざ不便な旧シリーズの8ピンはもはや使う事もないだろうな。
530774ワット発電中さん:2011/10/31(月) 21:07:47.76 ID:r6VADb+A
>>528
ターゲットの電源電圧は大丈夫?
パスコンは?
ケーブルの長さは?
Vpp, PGC, PGD に余計な部品をつけてない?
STATUSランプは点滅の仕方でエラーを表示するみたいだけど?
電源の安定のためVssを両方つなぐのが正解だと思うよ。
2つのVssの間に電流を流すような使い方はだめだよ。
531ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/10/31(月) 21:15:36.20 ID:sHVZUWuS
PIC16F628、PIC16F648、
PIC16F877、PIC16F877A、 PIC16F887
PIC18F(全て)

も、チョベリグ!!o(*'▽'*)
532774ワット発電中さん:2011/10/31(月) 21:33:40.65 ID:+LH2edsU
>>525
> 何故なんでしょうかね?VSSが2つあるのはそもそも何故なのか?

>>530
> 電源の安定のためVssを両方つなぐのが正解だと思うよ。
俺もPIC内の電源を安定にさせる為と習った。Vssが2つあるPICは、
Vss2つ両方つなぐ様にしている。少し疑問に思っていたけど正解だったんだ。
533774ワット発電中さん:2011/10/31(月) 21:53:25.22 ID:B/DHgqTT
>>530>>532
今は余計なものを排除して、5×7センチの基板に最短で配線してPICkit3と16F1938を繋いでいます。
パスコンはVDDと反対側のVSSそして、もう一つのVSSに繋いでいます。
この状態でもう一つのVSSとPICkit3を繋ぐと以下のエラーが出ます。

The overcurrent logic has detected a fault condition on

either VPP or VDD. Please disconnect your circuit check

MCLR or VDD for a short circuit and then reconnect. Also,

ensure that your target current requirements do not exceed

the specified limits.

Failed to properly connect to PICkit 3

というエラーが出ます。
534774ワット発電中さん:2011/10/31(月) 22:44:16.97 ID:OOOe2Fkj
>533
電源端子を間違えている位しか想像がつかないから
いっそ画像アップしてみては?
535774ワット発電中さん:2011/10/31(月) 22:55:39.02 ID:zo0Vl0yU
>>528 とは別人ですが、同じような状況がおき、解決策が見つからず、苦戦しています。
どなたか解決策をご教授いただけませんか?
症状はPICKIT3で18F27J53にプログラムを書き込むと以下のエラーメッセージをはいて止まります。
Connecting to MPLAB PICkit 3...
Firmware Suite Version.....01.26.68
Firmware type..............PIC18FJ

Target detected
Device ID Revision = 1

Programming...
configuration memory
Address: 1fff9 Expected Value: ff Received Value: f7
Failed to program device

ググったところ、同じような現象が起きている方がいましたが、根本的解決はできなかったようです。
ttp://broadbeans.blog.so-net.ne.jp/2011-07-28
ttp://broadbeans.blog.so-net.ne.jp/2011-08-17

環境はMacOSX(Lion),MPLABX 7.02です。
536774ワット発電中さん:2011/10/31(月) 23:09:56.83 ID:FofSBLMO
いつもVSSは片方しか繋いでないな
単にレイアウトの自由さの為に複数あるとしか思ってない
537774ワット発電中さん:2011/10/31(月) 23:30:13.13 ID:r6VADb+A
>>533
>The overcurrent logic has detected a fault condition on either VPP or VDD.
過電流検出回路がVPPまたはVDDのどちらかの障害状態を検出しました。
PICkit 3からVDDを供給しているなら、それがPICkit 3の電源供給能力を超えている。
または、VPPがPICkit 3の電源供給能力を超えている。
PICkit 3の回路図を見ると電流というより電圧でチェックしているみたいだから
PICkit 3が頑張っても期待した電圧に上がらないということだと思う。
テスタで当たってみた?
後は、チップを外した回路をテスタで導通チェックした後に、別のチップを試してみるぐらいかな。
538774ワット発電中さん:2011/10/31(月) 23:58:12.59 ID:r6VADb+A
>>535
CONFIG1HのBit3は0のはずなのに1を書き込もうとしているね。
チップの方で強制的に0にされているのかも。
539774ワット発電中さん:2011/11/01(火) 00:22:53.93 ID:Bj62bZEI
>>533
もしかして、MCLRとVDD接続してる?抵抗付き?
単独書き込みならMCLRとVDDの接続を外してもいけるはず。
540774ワット発電中さん:2011/11/01(火) 00:37:46.34 ID:nI9vAo0I
>>538
datasheetをみてみたところ、CONFIG1Hのbit3には何も設定されていませんでした。

この場合、具体的にはどのように修正すればいいのでしょうか?
541774ワット発電中さん:2011/11/01(火) 01:40:55.59 ID:JYeKspFY
>>540
どんな言語を使っているかわからないけど、コンフィギュレーションの設定をすればよいと思うよ。
それで、使われていないビットに正しい値が設定されるはずです。
542774ワット発電中さん:2011/11/01(火) 05:29:18.03 ID:dCyP2j6W
VssやVddが複数あったら全部つなげよ。
543774ワット発電中さん:2011/11/01(火) 06:57:35.13 ID:r7VGDuii
新デバイスが載ってないが、こうして見ると結構パターンあるな
たかが5本、されど5本
複数Vdd/Vssは全部繋ぐべきなの?
544774ワット発電中さん:2011/11/01(火) 07:09:03.86 ID:r7VGDuii
URLかいてなかったw
ttp://feng3.cool.ne.jp/icsp/index.html
545774ワット発電中さん:2011/11/01(火) 08:41:06.23 ID:1RBk0+dA
>>516
プロセスが古くてダイが大きく、安く作りたくても作れないんでしょ。
546774ワット発電中さん:2011/11/01(火) 08:52:54.42 ID:/8PSWc/H
>>543
> 複数Vdd/Vssは全部繋ぐべきなの?
当たり前じゃん。さらに全部にパスコン入れとけ。

ピン配列を見れば、IC屋が「ここはこう使ってほしい」と語りかけてくるもんだ。
547774ワット発電中さん:2011/11/01(火) 10:19:20.69 ID:EICz27+7
>>546
同意。
なぜ「全ピンつながなくてもいい」と思えるのだろう。
意味があって複数本出してあるのに。
548774ワット発電中さん:2011/11/01(火) 11:15:47.69 ID:r7VGDuii
>>546,547
すると >>525 は困ったりするがどうなんだ?
549774ワット発電中さん:2011/11/01(火) 13:00:07.55 ID:FgB9yipa
簡単なことだよ。
どこかに間違いがあるだけ。
550774ワット発電中さん:2011/11/01(火) 13:37:43.96 ID:GfWDiSFw
そうそう。
551774ワット発電中さん:2011/11/01(火) 14:07:39.40 ID:ny1LpMsR
>>525みたいなのが半端な試作して、微妙に動かなくて手に負えなくなりますように
552774ワット発電中さん:2011/11/01(火) 14:17:51.89 ID:kCZtPwZa
いろいろやって悩んで苦労して少しずつ分かってくるんだろ。
今までVssだと思ってたpinがちがうpinだったりしても、疑わない事には解決しないからな。
553774ワット発電中さん:2011/11/01(火) 14:45:19.72 ID:JYeKspFY
アナログ系デバイスだと全部の電源ピンを接続しないと使えないものもあったと記憶している。
NCはGNDにつないではいけないという注意があったりするのでデータシートは熟読しないと危ない。
554774ワット発電中さん:2011/11/01(火) 16:16:49.67 ID:nI9vAo0I
>>541
コンフィギュレーションをいじってみたところ、いくつかの項目をコメントアウトすることで動作しました。
言語はC18です。
コンフィギュレーションはマイクロチップが配布しているUSB-HIDサンプルの18F47J53のものをそのままコピーして使用していました。
一部コメントアウトを行い、検証したところ、CONFIG1Hで設定されるCP0とCPDIVのコンフィグを行うとエラーが出てくるようです。
最終的なコンフィギュレーションを記述します。
コメントアウトしてある場所が問題のコンフィグです。

#pragma config WDTEN = OFF //WDT disabled (enabled by SWDTEN bit)
#pragma config PLLDIV = 4 //Divide by 3 (12 MHz oscillator input)
#pragma config STVREN = ON //stack overflow/underflow reset enabled
#pragma config XINST = OFF //Extended instruction set disabled
// #pragma config CPUDIV = OSC1 //No CPU system clock divide
// #pragma config CP0 = OFF //Program memory is not code-protected
#pragma config OSC = HSPLL //HS oscillator, PLL enabled, HSPLL used by USB
#pragma config FCMEN = OFF //Fail-Safe Clock Monitor disabled
#pragma config IESO = OFF //Two-Speed Start-up disabled
#pragma config WDTPS = 32768 //1:32768
#pragma config DSWDTOSC = INTOSCREF //DSWDT uses INTOSC/INTRC as clock
#pragma config RTCOSC = T1OSCREF //RTCC uses T1OSC/T1CKI as clock
#pragma config DSBOREN = OFF //Zero-Power BOR disabled in Deep Sleep
#pragma config DSWDTEN = OFF //Disabled
#pragma config DSWDTPS = 8192 //1:8,192 (8.5 seconds)
#pragma config IOL1WAY = OFF //IOLOCK bit can be set and cleared
#pragma config MSSP7B_EN = MSK7 //7 Bit address masking
#pragma config WPFP = PAGE_1 //Write Protect Program Flash Page 0
#pragma config WPEND = PAGE_0 //Start protection at page 0
#pragma config WPCFG = OFF //Write/Erase last page protect Disabled
#pragma config WPDIS = OFF //WPFP[5:0], WPEND, and WPCFG bits ignored
#pragma config CFGPLLEN = OFF
555774ワット発電中さん:2011/11/01(火) 17:57:15.31 ID:JYeKspFY
>>554
C18のバグっぽいな。
18F47J53と18F27J53のヘッダファイルの違いかな?
556774ワット発電中さん:2011/11/01(火) 20:14:10.68 ID:BUsxwrsH
新デバイス情報な
32bitコア(MIPS32-M4K)PGMEM128KB RAM64KB OTG有

28PIN-SPDIPタイプ
PIC32MX250F128B

0.8mmピッチの44PIN-TQFPタイプ
PIC32MX150F128D

Microchip チョベリグ!!o(*'▽'*)
557774ワット発電中さん:2011/11/01(火) 20:59:21.41 ID:CjOUZiB6
16F84って時代遅れなのかよ(´・ω・`)
558774ワット発電中さん:2011/11/01(火) 21:05:53.10 ID:tfS27QcM
559のうし:2011/11/01(火) 21:10:13.00 ID:DM39161U
なのに10F2xx系は別の意味で先端かも‥

ちとしたことですごく上手くやってくれた。
560774ワット発電中さん:2011/11/01(火) 21:53:08.40 ID:JYeKspFY
>>557
廃品種になっていないのだから一定の需要はあるのでしょう。
ただ、新しい品種で使われているプロセスは使われていないから
ダイの大きさが大きく値段が下げられないのだと思います。
一覧で見ると温度範囲と電源範囲が違うんだよね。
561774ワット発電中さん:2011/11/01(火) 22:24:42.73 ID:F2w9JLtA
>>552

いやほんとその一言で気が付きました。
今までVSSだと思っていたものがVDDで、VDDと思っていたのがRB0でしたww
16F1827がたまたまVDDとVSSはピンの真ん中に並んでいたもので、
1938もそうだろうと完全に思い込んでいてデータシートを何度見ても1つずれていることに気が付きませんでした。


それにしても、それならそれで相応しいエラーメッセージをはいて欲しいものです。
IDが違うとかそんなエラーってないでしょうがwww

なんて見苦しい事を言ってみる。
皆さんどうもありがとうございました。
562774ワット発電中さん:2011/11/01(火) 22:42:07.11 ID:Bj62bZEI
>>561
接続ミスしてもデバイスもPICKIT3も壊れなかったん?
563534:2011/11/01(火) 22:45:43.58 ID:Slhr1ZVH
>561
まあ、わかってよかったね。
でもID 0のエラーはしょうがないとしても>533のエラーは電源端子を疑うべきだよ。
564774ワット発電中さん:2011/11/01(火) 22:50:36.37 ID:F2w9JLtA
>>562

そうですね。PICはたまに逆さセットとかしても壊れた事ないですし、簡単には壊れないようですね。

>>563

仰るとおりです。
565774ワット発電中さん:2011/11/01(火) 22:54:44.52 ID:2R9nA7O2
そんなことよりCCSCのサンプルのLCD.cとソフトウェアUARTを仕込んだらRAM不足って言われてカナシス。
6桁分の7セグも仕込みたかったんだが、無理なのか16F59…
ネタで購入したのをやっと使えるようにと思った俺がバカだったのか…。
566ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/11/01(火) 23:00:10.41 ID:ao8WgCKp
>>557
保守品だよそれ。簡単にディスコンにされると、業務では困るからね。
新規でそれを使うって言うのは、今更秋月のスーパーAKI−80で新規プロジェクトを作れと言っているようなものだな。
まさか、PIC16F84しかわからないっていうゆとり乙とかいうオチじゃないよな?w
(内蔵機能や番地などが変わるとお手上げって言う例)
567ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/11/01(火) 23:01:35.08 ID:ao8WgCKp
>>565
そこまで低機能なPICの場合、アセンブリ言語で組むだろ常考
568774ワット発電中さん:2011/11/01(火) 23:11:58.88 ID:2R9nA7O2
>567
ソフトウェアUART組むのめんどくさい。
誰かがやってくれるんなら使うけど…程度だなぁ。
(それでも上手くいくかどうか…)
割り込みも無いただの表示機だからホントにムリポならtだのLEDドライバにでも仕立て上げるかな。
ウインカーが内側から外側に流れるような表示になるとかそんなのにでも。

まあとりあえず、ソフトはぶー垂れてるけど、ハード組んで見るか。
569774ワット発電中さん:2011/11/01(火) 23:43:07.34 ID:JYeKspFY
>>566
ディスコンなら、代わりのおすすめ品種が表示されるよ。
570774ワット発電中さん:2011/11/01(火) 23:43:44.66 ID:Bj62bZEI
>>568
ん?と思って秋月見たら型番違いだけど16F57は70円なんだね。

サンプルライブラリを細工すればRAM問題解決しそうな気がする。
LCDや7セグを含めるのだから受信するだろうけど、受信バッファを抑えれば何とかなりそう。
16F59は128byte持っているけど、バンクあたり16byte。
バッファサイズを16以下に抑えれば何とかなりそうな気もする。
571774ワット発電中さん:2011/11/01(火) 23:55:21.48 ID:JYeKspFY
>>561
>それにしても、それならそれで相応しいエラーメッセージをはいて欲しいものです。
それを行うためには、追加の回路が必要になるけれど、
ほとんど1回しか使わない回路にチップ面積を使うのは無駄です。
Memory Programming Specificationを調べればわかるけど、
単純な信号のやりとりしかしていないから
正常な接続であることが前提になっているのですよ。
572774ワット発電中さん:2011/11/01(火) 23:59:43.41 ID:MopRhXP1
16F59か…よほど値段が安ければ使うかも。
ソフトは制約多いよ。特にスタック2層はキツイ

40ピンにしては安いのがウリだったんだろうが
むしろ最近は安いのを探すと、大抵新しいのになるのな
573774ワット発電中さん:2011/11/02(水) 00:03:02.22 ID:iSPgKiN/
おまえらPICで普段なにしてるん?
574774ワット発電中さん:2011/11/02(水) 00:30:43.64 ID:1Eq077vh
おれは仕事
575774ワット発電中さん:2011/11/02(水) 01:39:12.65 ID:wNi5dHe1
PICの仕事って年収どれぐらい見込めますか?ピンキリなのは判りますが
576774ワット発電中さん:2011/11/02(水) 06:49:56.64 ID:wrgcqN+D
>>561
乙乙、わかってなにより

で、Hi-TECH Cの良いガイドない?本でもWEBでも良いけど
これはみておけみたいな奴をお願します
577774ワット発電中さん:2011/11/02(水) 08:39:04.40 ID:Ehl866uP
>>575
あなたの技術力も営業力もわからんのではなんとも言えない
578774ワット発電中さん:2011/11/02(水) 08:45:41.88 ID:iCpvtvi5
>>566
おまえ、たまにはまともな事言うんだなw
579774ワット発電中さん:2011/11/02(水) 08:49:59.59 ID:iCpvtvi5
>>575
PICはメカ系が多い印象。
こうも円高が続くと、海外が多い産業機器メーカーは辛いだろうな。
580576:2011/11/02(水) 12:46:52.24 ID:20+eZdjl
う〜む、リファレンスページ紹介来るかと期待したが甘かったかw
これ↓が方言なのか知りたいのだが日本語の説明ってありますか?

bit SW_UP @ ((unsigned)&PORTB*8+3);

R&C時代の初めてのCしかしらんと見た事もない予約語に悩まされる
大抵は検索すると何かしら出て「初めてのC」の改版数に驚かされるw
「bit型(構造体なしで書けるの?)変数SW_UP定義」であろう事は処理から読み解けるが、
@?なんだアットマークって(これがHiTECHの方言なのか、組み込み系では一般的記述なのか?)
符号無しでFSRのPORTBに8倍?して3を足す?なんのこっちゃ
多分これも@の続きなのだろうけど何故8倍、何故+3?

部分抜きのテキストで元ネタがどこの何か分からないのが辛いが
PICの練習問題だろうから、ポートBのビット3(2?0オリジンかも?)にはSW_UPが接続されているのであろう
予想は出来ても答えはわからん、お試しするとして。。。あ、Lちかすればいいか
でも@の明確な意味が知りたい(何故8倍の+3なのかも)

ご存知な方教えてくだされ
581774ワット発電中さん:2011/11/02(水) 12:57:21.95 ID:Qbj5EmuP
>>580
それはCCSC独自の書き方じゃね?
HiTechでもそういう書き方するのか?
1バイト=8ビットで、PORTBの3ビット目ということだろう。
番地0ビット0から数えたビット番号をアドレスとして与えてるように見えるが。
582576:2011/11/02(水) 13:38:52.58 ID:20+eZdjl
>>581
ありがとう、なる程読み方はあってたのか
@を使って書いてあったがHiTECH C のヘッダ内にも多数ある
CCSCも書いてあるとすると組み込み系の標準的書き方なのかもしれない
ANSI-C?ではちと見つけられなかった

プリプロセッサ句も強力なものが多いようだけど
1つずつ読み解くしかないかな
文法説明の日本語が欲しいけど英語しかないのかもしれない
583774ワット発電中さん:2011/11/02(水) 13:44:49.28 ID:djUAN2C8
>>580
付属のヘッダファイルを開いてみたらHI-TECH Cにも @ はあったよ。
volatile unsigned char STATUS @ 0x003;
volatile bit CARRY @ ((unsigned)&STATUS*8)+0;
でも、HI-TECH C? for PIC10/12/16 User’s Guide に説明がない!
@ は、bit の時だけ8倍してビット位置を指定している。
コンパイラメーカー間で互換性を高めようと努力しているみたい。
584774ワット発電中さん:2011/11/02(水) 14:03:45.09 ID:C68zN9KU
>>583
何故0x08でなく、8なのか?
一見さんじゃなくても、慣れないと分かりづらいな。
585774ワット発電中さん:2011/11/02(水) 14:23:30.38 ID:djUAN2C8
>>584
ソースは短い方がコンパイルが速くなる。
やり過ぎは禁物だけどね。
8倍より3ビット左シフトの方がわかりやすいという人もいるかも。
その程度の違いだと思うよ。
586774ワット発電中さん:2011/11/02(水) 15:12:23.35 ID:XH6SfjPZ
*8 って、勝手に <<3 に変換してくれるんだろうか。 <<:3
587774ワット発電中さん:2011/11/02(水) 16:11:53.37 ID:SWZl1Jit
>>586
たいていのコンパイラはシフトで最適化してくれるけど、その展開方法は様々。
リストファイルを開いて・・・びっくり!なんてのもある。
588774ワット発電中さん:2011/11/02(水) 18:57:18.09 ID:b/s3bH9y
HI-TECH C の独自機能じゃね?
ttp://www.htsoft.com/support/faqs.php#faq89
589774ワット発電中さん:2011/11/02(水) 18:58:34.23 ID:b/s3bH9y
あとコンパイル時に定数を計算してロケーションを指定するもののようだから、
最適化もへったくれもなさそうだが。
590のうし:2011/11/02(水) 18:59:39.68 ID:We7xKi94
もまいらならこんなライブラリ持ってるよな?
紹介してやてよ♪
http://kamome.2ch.net/test/read.cgi/denki/1318220978/434-
591774ワット発電中さん:2011/11/02(水) 19:31:51.51 ID:SWZl1Jit
>>589
あ、すまない。定数だった
592774ワット発電中さん:2011/11/02(水) 20:22:17.28 ID:20+eZdjl
>>588
どーも独自なようだけどmanual.pdfに記述を見つけられなかった
探し方が悪いか

で疑問は「*8がシフト3ビット」ではないのよ<それは分かるけどそれだと
>>583
> volatile unsigned char STATUS @ 0x003;
> volatile bit CARRY @ ((unsigned)&STATUS*8)+0;

STATUSがアドレス0x003なのはメモリマップの通り、でも@って何?
そしてキャリービットが0ビット目なのもドキュメント通り

するとこの*8は?そしてここにも@がいる
C言語の仕様で@を探したが見当たらず、Hi-TECHのマニュアルからも付けられず
そこでご歴々に質問したのです、これはどういう風に読むの?
593774ワット発電中さん:2011/11/02(水) 20:25:44.45 ID:wNi5dHe1
あわび
594774ワット発電中さん:2011/11/02(水) 21:08:46.78 ID:djUAN2C8
>>592
@ は at と読めばよいと思う。
volatile unsigned char STATUS @ 0x003;
「volatile unsigned char」型の変数「STATUS」はアドレス「0x003」にあります。
volatile bit CARRY @ ((unsigned)&STATUS*8)+0;
「volatile bit」型の変数「CARRY」はアドレス「((unsigned)&STATUS*8)+0」にあります。
&STATUS == 0x003 == 0b0000000000000011
0x003*8 == 0b0000000000011000
-------------AAAAAAAAAAAAABBB
A はアドレス
B はビット位置
595774ワット発電中さん:2011/11/02(水) 22:18:59.13 ID:Qbj5EmuP
てか質問主はなにが問題なの?
コンパイラ付属のライブラリが、そのコンパイラ専用の表現使ってるだけの話じゃないの?
@はpragmaみたいなものだと思えばよろし。
596774ワット発電中さん:2011/11/02(水) 22:21:27.79 ID:7gXcQTHf
>>555
C18のバージョンを3.72から4.00にしたところ、コメントアウト部を有効にしても書き込み成功しました。
教えていただき、ありがとうございました。
597774ワット発電中さん:2011/11/02(水) 22:44:33.52 ID:7gXcQTHf
>>596
ミス:4.00 --> 3.40
598774ワット発電中さん:2011/11/02(水) 23:17:21.38 ID:20+eZdjl
>>594
詳しい説明をありがとう

でも変でね?volatile bit CARRY @ ((unsigned)&STATUS*8)+0; をバラすと

型 volatile bit
変数名 CARRY
謎  @(このコンパイラ固有の何かだとするとどういう意味なのか?読み(展開されるイメージ)はどうなるのか?)
(unsigned)&STATUS アドレス0x003の格納アドレス?
*8 &やキャストより優先?格納アドレスを3ビットシフト?どっちだっけ?
+0 釈然としないけど多分0x003の0ビット目を意味する

で、マニュアルにはbool型はなくbit型でやりますよ、あと書いてある
つまり1ビットのデータ型bitをインプリメントしている

疑問は
 ・@は説明が無いので何をしているのか不明のまま
 ・何故3ビットシフト?ビット位置はあるバイト(8ビット)の0ビット目ではないのか?>この場合キャリーだから
説明のアドレスは最初から0x003なのだからシフトする理由が分からない。
この書き方で何故ステータス(0x003)の0ビット目(キャリーフラグ)を指し示すのかわからない。
です。 >>595

何かの理由で 構造体ビット指定でなく(bit修飾子がビット操作専用で早いらしい)上記記述なのは良しとしても
3ビットシフトの意味がわからない

なんと書けば良いのか、とにかく他で@なんて修飾見たことないので悩んだだけ
チョンプロ書いてデバッガで展開を眺めて調べてみます
599774ワット発電中さん:2011/11/02(水) 23:25:56.82 ID:djUAN2C8
>>595
それが読めるのと読めないのとでは違いが大きい。
バグがヘッダファイルに起因するものか自分で確認できる。
メーカーによるバグの修正を待つ必要もなく自分で直すこともできる。
600774ワット発電中さん:2011/11/02(水) 23:38:20.21 ID:20+eZdjl
>>599
それもあるけどもっと端的に「ヘッダと同じ記述は可読性を上げる」
と予想し易い >同じコンパイラを使う人なら、メーカ提供のヘッダを無視ってのもね〜

記述として展開が有利になる可能性もある
後は自分の意図した動作は書き方1つでどうとでもなる
こういう瑣末な事も良く咀嚼した方が確実って事かな?

そしてわかった、PIC固有のバンクのせいか>それだけ書いてくれれば直ぐわかったのにー
3ビットなのは例の「プログラム域とデータ域を区別するビット」があるからか?
short a=&PORTA;
この展開をみて良く分かった

勉強になりました!さ、コーディングしよ
601774ワット発電中さん:2011/11/02(水) 23:39:42.14 ID:20+eZdjl
自己レス

3ビットなのはバンクが1〜8まであるからか…
そんな大きなPIC使ったことないからわからんかったわー
602774ワット発電中さん:2011/11/02(水) 23:43:19.83 ID:20+eZdjl
ダメだ、死にそうw

3ビットじゃない、8ビット「分」ずらしたいのか

bit演算子を使うと単位がビットだから3ビットずらさないとバイト扱いにならない(アドレスはバイト)
ははは…はぁ。
603774ワット発電中さん:2011/11/02(水) 23:50:59.61 ID:djUAN2C8
>>598
>*8 &やキャストより優先?格納アドレスを3ビットシフト?どっちだっけ?
それはCの基本だから説明しないよ。
>+0 釈然としないけど多分0x003の0ビット目を意味する
そうだよ。
>で、マニュアルにはbool型はなくbit型でやりますよ、あと書いてある
boolは論理値を記憶するためのものです。
1ビットであるという縛りはなくintと同じでも何ら問題ない。
1ビットを記憶するためのbitとは意味が違うのです。
> ・@は説明が無いので何をしているのか不明のまま
変数名と絶対アドレスを結びつけている。
別のCPU用のコンパイラでは定数をポインタにキャストしている場合もある。
でもそれはポインタなんだな。
> ・何故3ビットシフト?ビット位置はあるバイト(8ビット)の0ビット目ではないのか?>この場合キャリーだから
ビット位置も指定しないとbitの絶対アドレスを指定したことにならないからです。
理解できないなら、単純化した8x8のマス目を書いてマス目を特定するための番号を0から振ってみてください。
604774ワット発電中さん:2011/11/02(水) 23:58:03.95 ID:BTMDme0y
cc5xでもbit型とか@が使われてる。でもルネサスのH8系コンパイラではそのような表現方法はない。
bitや@はC標準の記述方法ではないのでcc5xでもbit型は使わずビットフィールドを定義して使ってる。
ビットフィールドは互換性がない、などとよく言われるけど定義部分だけをちょっと修正すれば多くの
処理系で使えるのではないか。
605774ワット発電中さん:2011/11/03(木) 01:22:18.73 ID:8OH3Gu17
>>588 のリンク先読んだか?
1 Absolute objects って所に、「変数とかの定義のあと @ アドレス、って書くとそのアドレスに置くよ」って
書いてあるだろ?
606774ワット発電中さん:2011/11/03(木) 01:41:04.06 ID:FmKYDRS5
難しくシフトとか考えなくても、8倍したらそのレジスタまでの総ビット数になって、ビット番号足せば総ビット番号になるじゃん
そこまでわかれば@はただの番地指定だとわかるはず

演算子の優先度すらわからない状態でここまで引っ張って、1バイト=8ビットだから8倍だと言われてるのに勝手にバンクのためだと決めつけて、挙句「言ってくれれば良いのに」とか見ててイライラしてくる
607774ワット発電中さん:2011/11/03(木) 02:28:43.07 ID:8lq9/zy7
PICのCが嫌われる所以がわかりますたw
608774ワット発電中さん:2011/11/03(木) 06:39:42.25 ID:/Nj8sIXw
超初心者です。質問させてください。
http://www.ucapps.de/のmidi mergerの 16F88をつかったものを作ろうとしています。
aki-pic2を使ってhexファイルを16F88に書き込んだのですが、
その後Unsupported Part(ID-3FE0)と表示されるようになってしまいました。
これは、hexファイルに問題があるんでしょうか?
回路を組んだところ、一応動いてはいるようです。
あと、この16F88は、もとに戻せるんでしょうか?
609774ワット発電中さん:2011/11/03(木) 07:10:38.56 ID:Adl5qA69
>>608
検索すると書き込み時の電源電圧に問題があるとそうなると書いてある。
610774ワット発電中さん:2011/11/03(木) 07:11:53.42 ID:Adl5qA69
>>607
マイコン用のCって、どれもこんな感じだよ。
611774ワット発電中さん:2011/11/03(木) 08:33:33.45 ID:hgDuqwK3
>>607
アセンブラの方がエンジニアの貴重な時間とエネルギを浪費する悪
PICがCで開発出来る様になった事は、非常にありがたい技術進歩
612774ワット発電中さん:2011/11/03(木) 08:35:46.19 ID:hgDuqwK3
>>608
> あと、この16F88は、もとに戻せるんでしょうか?
もとに戻せるよ。安心して
613774ワット発電中さん:2011/11/03(木) 09:01:22.97 ID:hgDuqwK3
いつもは16F886でPICkit2とHITEC-CでICDでデバッグしてんだけど
昨日16F88でICDしたらメチャ遅い。体感で5倍は遅い。なんで?こ
うゆうものなの?何か間違ってる?
614774ワット発電中さん:2011/11/03(木) 09:16:42.03 ID:8OH3Gu17
>>611
まともに使える人にはそうだろうが、
まともに規格もわかってない、マニュアル類も読めない、そんな奴には
混乱のネタが増えるだけだ、というのが昨日の流れでよくわかった。
615774ワット発電中さん:2011/11/03(木) 09:23:15.42 ID:cm9NX5vr
PIC16f88は1ワード転送しては書き込みして数ミリ秒待つことを繰り返す
PIC16F886は8ワード転送しては一括書き込みして数ミリ秒待つことを繰り返すという書き込みモードにも対応している
だから5倍遅いという体感は納得できる
616774ワット発電中さん:2011/11/03(木) 09:25:22.45 ID:cm9NX5vr
勘違いレスだったかも
617774ワット発電中さん:2011/11/03(木) 10:56:15.76 ID:hgDuqwK3
>>615
解説サンクス
じゃあ16F886で作り込んで、出来たら16F88に移し、16F88上で最終調整
する方法にするよ。情報提供サンクス。助かった
618lenovo x61 バッテリーです:2011/11/03(木) 10:59:41.77 ID:weOrKlZg
ヒット商品:新しいthinkpad x61 バッテリーです!高容量のlenovo x61バッテリー
http://www.hp-laptop-batteries.jp/thinkpad-x61-battery.html
619774ワット発電中さん:2011/11/05(土) 11:01:17.69 ID:+Ct7rbhG
11/3(木)10:59で投稿が停止しているように見えるが
この投稿が通る事は投稿制限されている訳ではなさそうだ。
620774ワット発電中さん:2011/11/05(土) 13:57:25.71 ID:0lHH9tLV
なかなか面白いこと言うね。
621774ワット発電中さん:2011/11/06(日) 11:16:31.08 ID:Ze8To98k
秋月の12Fだけど値段下がった?
円高で安くなったのかな
622774ワット発電中さん:2011/11/06(日) 11:42:08.55 ID:RNX7xnob
>621
いつの話をしてるんだ >11-13
623774ワット発電中さん:2011/11/06(日) 22:55:10.85 ID:gV7O76SV
後閑先生の本をみながらC30でCCS-Cのようなdelay_us()関数を作ろうと思っています。
#define CLOCK 80

void delay_us(int usec)
{
usec = (int)(CLOCK * usec)/40;
while(usec)
{
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
usec--;
}
}

とやってみたんですが
ストップウォッチで見たところ、delay_us(1);からぬけたら1.75us経っていました。

こんなに誤差出るものですか?
CLOCKは80Mhzです。
624774ワット発電中さん:2011/11/06(日) 23:38:51.25 ID:fsDqSCfo
ストップウォッチにそんな精度はない
625774ワット発電中さん:2011/11/06(日) 23:41:07.44 ID:qYVmtU+5
>>623
ヒント:スタック退避
626774ワット発電中さん:2011/11/07(月) 00:02:36.43 ID:kuSnp92v
delay_us(1)
delay_us(10)
delay_us(100)
delay_us(1000)
あたりの精度を測って、なぜ比例しないかを考えるんだ。
ヒントは>>625

あとは自分がよく使う値でちょうどいい結果が出るように、
/40 のとことか NOP の数を調整するとか、
1us専用の deleat_1us() を別仕立てで作るとかしてもいい。
627774ワット発電中さん:2011/11/07(月) 01:29:59.59 ID:JMXNiLHK
ありがとうございます。
精度はかってみました。
ずれがどんどん大きくなっていきました。
とりあえず使うかわからないけど、delay_1usを作ってみます。

スタック退避というのはよくわからないけど、
while文のときに条件分岐?があるから、その分時間を食ってしまうということでしょうか。

CCS-Cのときはこういう風にならなかったのは、コンパイラがそういうところで優秀だったからでしょうか。
628774ワット発電中さん:2011/11/07(月) 07:22:36.29 ID:A/CjtVbg
タイマー割り込み使えば?
629774ワット発電中さん:2011/11/07(月) 09:40:06.88 ID:aX9a+eYT
>>627
コールとリターン、戻りアドレスを覚えるスタック待避。この3つの時間を考慮してるかい?って話じゃないか?
分岐条件によっても時間が変わるから、汎用にするには相当テクがいるから、1つずつ専用関数作った方が早い。て話じゃないか?
630774ワット発電中さん:2011/11/07(月) 09:47:24.39 ID:br4GhBvV
CCSやHIの関数は、スタックや分岐ステップ数を計算している。

がんばれ( ̄◇ ̄;)
631774ワット発電中さん:2011/11/07(月) 11:32:21.91 ID:JMXNiLHK
タイマ割り込みも考えましたが、めんどくs(ry
ちょっとしたディレイにタイマつかうのはなんかなあと思ったのでやめました。
勉強はしてみます。

コールとリターンは考えましたが、スタックってのは考えませんでした。
スタックもよくよく考えてみます。
汎用があったら便利!って思ったので作ろうと思ったけど、今までやってきたことでも
大体同じ数値つかってきたから、汎用はいらないかもしれませんね。

計算してるんですか。
なんかすごいことやってるんですね。

とりあえず、dsPICだとLEDぺかぺかのさせてるだけなのでいろいろ試してみます。
ありがとうございました。
632774ワット発電中さん:2011/11/07(月) 11:45:56.42 ID:aZnGCXWY
タイマー使ってもただで高精度は出ない
精度を出す動機と仕様設計がなければねぇ
633774ワット発電中さん:2011/11/07(月) 12:25:50.85 ID:jFfrY3+r
精度が要るなら水晶+カウンタに落ち着く
634774ワット発電中さん:2011/11/07(月) 14:20:25.70 ID:vwtW4HTZ
PICKIT3を使ってて、書き込み時は機能しているみたいなんだけど
ボタンを押すとSTATUSが赤く点滅して動作しないんだよね・・・

回路設計ミスとプログラムのデバッグはしたんだけど、
他の原因とかありそうだったら教えて頂きたいです。

ちなみにプログラムはLED点滅、使用PICはdsPIC30F4012です
635774ワット発電中さん:2011/11/07(月) 14:58:06.18 ID:YFXjcSp4
回路設計ミスをしたんだったら、まずそれを直すべきだと思うんだが
636634:2011/11/07(月) 15:06:27.24 ID:vwtW4HTZ
>>635
あぁ、すまん。回路の確認はしたってこと
テスタでPICに電源が供給されていることも確認した
637774ワット発電中さん:2011/11/07(月) 15:37:21.00 ID:CbsSdDat
先輩方に質問であります。

dsPIC30F3012 を使って、シリアルデータを受信して
そのデータに応じてデータを返す装置を作ってるんですが、
(データ数)+(データ列) 的なデータ構造なので、
(データ数)を受信してからその回数だけデータを受信するように
forで回しています。

データがおかしいときに、ハングしてしまう可能性があるので
ループで戻ってこないときにWDTでリセットしたいのですが、
そのWDTリセットで、I/Oは初期化されないですよね?

ゴミデータが出てしまうといやなので。
マニュアルのどこかに(初期化される/されないが)書いてあるでしょうか?
よく見たけれど分かりませんでした。

よろしくお願いします。
638774ワット発電中さん:2011/11/07(月) 15:53:04.59 ID:YiJFpff5
>>637
マニュアルに書いてあっても、何の担保にもならないよね。エラッタ出されてお終いだし
639774ワット発電中さん:2011/11/07(月) 16:33:38.41 ID:cOHjMrQB
>>637
データがおかしい時にハングしないようなソフトを書くべき。
その上でWDTをONにする。
640774ワット発電中さん:2011/11/07(月) 17:45:48.90 ID:aRhp/YTY
FORは良くないと思うな。
641774ワット発電中さん:2011/11/07(月) 18:08:27.41 ID:CbsSdDat
>>638
つまり、“実機で確認”ってことですかね。
マニュアルなんて信用しないっと。
そういう進め方もあるでしょうけど。

>>639 >>640
うーん、そうなんですけど。
パケット的にデータが来るので、データの終わりかどうかを認識するのに
タイマーが一番簡単なんですよ。
しばらく待って、データが来なければ最初に戻ればいいだけなので。

とりあえず、実機で確認します。
諸氏方、どうもでした。
642774ワット発電中さん:2011/11/07(月) 18:34:09.08 ID:4U8XWBzC
WDTはハードリセットと同じ動作だよ
逆にI/O初期化されないWDTってあるのかな?
643774ワット発電中さん:2011/11/07(月) 18:49:45.14 ID:r0oMOOD9
>>634
TABLE 6-2: PROGRAMMER-TO-GO OPERATION FEEDBACK CODES
644774ワット発電中さん:2011/11/07(月) 19:11:05.35 ID:r0oMOOD9
>>637
データシートに次のような欄があるよ。
Value on POR, BOR
Value on all other Resets → WDT はこっち。
645774ワット発電中さん:2011/11/07(月) 19:23:13.70 ID:r0oMOOD9
>>637
データシートの次の章にはリセットされるレジスタ値の一覧がある。
Power Control/Status Register (PCON)
646774ワット発電中さん:2011/11/07(月) 23:15:43.57 ID:Q/OJhlEV
ご教授願います。
PIC16F688にて、
RA0をアナログ入力、RA1〜RA5を出力ピンに設定しているのですが、
電源を入れると、プログラム的に出力していなくても、RA1〜RA5から常時6V程出力しています。
PIC自体が壊れてしまったのでしょうか?
647774ワット発電中さん:2011/11/07(月) 23:23:40.15 ID:YiJFpff5
>>646
PICって5.5までじゃなかったっけ?
648774ワット発電中さん:2011/11/07(月) 23:48:56.40 ID:SJLug/+x
>>646
出力の設定あってる?
あとはI/Oの初期化終わったあとでLowにしてみるとか
それとRA3は入力専用

>>647
定格2〜5.5V
絶対定格−0.3〜6.5V
649774ワット発電中さん:2011/11/08(火) 00:05:31.84 ID:5kp3r6Ue
>>646
>RA1〜RA5から常時6V程出力しています。
電源電圧より高い電圧が出てる?
電源電圧と同じ電圧じゃない?

>プログラム的に出力していなくても、
出力ポートにセットし、
Hにセットしてる? Lにしてる?
それによって、自動的に答えが出ない?
650646です:2011/11/08(火) 00:06:58.73 ID:so/XM20O
>>647
6VをVDDに供給していました。
いまは、ハードを組み替えて5.10V程度まで落としましたが
現象変わらずです。PICが完全にダメになったのかもしれません。

>>648
プログラムを確認しましたが、出力の設定はあっていると思います。
>>あとはI/Oの初期化終わったあとでLowにしてみるとか
 やってみようと思います。
651774ワット発電中さん:2011/11/08(火) 01:01:23.07 ID:Ea1WDF1k
設計値には余裕があるから6Vで壊れることはそうそうないけどな。
ソースは3年間6Vで運用してる俺。まだ無事。
652774ワット発電中さん:2011/11/08(火) 02:29:05.95 ID:mj+uLsZ/
”壊れている”どうかわかりにくい場合ってあるよね。
交換できるのがあればすぐに確認できるんだけど。

出力に切り替えただけでは出力の状態は不定。
出力してない=Lにしている のだと思ってたけど
本当にポートへの出力を一度もしていなければHが出ててもおかしくない。
653774ワット発電中さん:2011/11/08(火) 06:30:50.67 ID:kHS1Npj9
>>650
引用で恐縮だけど、
・・>>あとはI/Oの初期化終わったあとでLowにしてみるとか
・・ やってみようと思います。
スレに書き込む前、最初に試すところだよ。
654774ワット発電中さん:2011/11/08(火) 09:59:50.72 ID:gfoX/TUl
>>651
PICは結構タフにできてると思う。メーカーによってはちょっとした過電圧で壊れるマイコンもあるね。
655774ワット発電中さん:2011/11/08(火) 10:01:41.08 ID:NZQJyADi
電源ON直後に出力ポートをHまたはLを確定させる意思があるなら
ポートにpullup、pulldownを施した上で
RAに出力してから出力ポートに切り替えるよなぁ
656774ワット発電中さん:2011/11/08(火) 10:30:02.07 ID:horKb0SF
>>645
どうもありがとうございました。
30F3012 のはまだ見つけていませんが、
Microchipの他のシリーズのものは見つかりました。
探して確認します。

>>642
こういう知ったかぶりが一番困るんだよね
657774ワット発電中さん:2011/11/08(火) 10:45:46.13 ID:UO+BaEAq
℃素人って、自分の能力の無さを棚に上げて恥ずかしげも無く書き込むなぁwww
まあ、無能だから気が付いてないんだろうけど
658774ワット発電中さん:2011/11/08(火) 10:50:30.07 ID:b7tU3hlX
氷片ですか
659774ワット発電中さん:2011/11/08(火) 11:08:53.39 ID:RFRrk9I+
ていうかさ、ゴミデータが出るとヤダとか言いながら
ハードリセットや電源ON時の対策取ってないわけだろ?
明らかに頭足りて無いじゃん。
660774ワット発電中さん:2011/11/08(火) 11:24:59.20 ID:UO+BaEAq
足りてないってより「無い」って言ったほうが正しい。
661774ワット発電中さん:2011/11/08(火) 11:33:27.59 ID:horKb0SF
>>657
まったくね。

>>659-660
電源投入時は、相手方が安定するまで
HWリセットが入っているので問題ないです。
ハードで対策も取っているし。

PICは使いたくないけど、要求なので仕方ないんですよ。
もうお金もらっちゃったし。
662774ワット発電中さん:2011/11/08(火) 11:38:03.27 ID:UO+BaEAq
>>661
やっぱり仕事か。
仕事でそのレベルは酷すぎるぞwww
PICの問題じゃなくてお前の頭のレベルが。
663774ワット発電中さん:2011/11/08(火) 11:49:38.72 ID:UO+BaEAq
>>661
あまりにも無能で理解できなかったみたいだから念のため書いておくが
>>657に書いた「℃素人」とは>>661の事だから、勘違いしないように。
664774ワット発電中さん:2011/11/08(火) 12:25:52.34 ID:horKb0SF
仕事って言うか、お手伝いなので。
他の人はもっとレベル低いよ。
665774ワット発電中さん:2011/11/08(火) 12:41:53.75 ID:RFRrk9I+
わざわざPICを指定する発注者が誰もここを見ていないとでも思っているのかい?
666774ワット発電中さん:2011/11/08(火) 14:52:31.15 ID:cTWmQIJb
MikroCのプログラムをpic basic pro
に書き直せませんかね
ネットでps/2テンキーを使った電卓があったので作成したらプログラムがmikroCだったのでpicbasicで作らなくてはいけなくて困ってます
667774ワット発電中さん:2011/11/08(火) 15:11:26.92 ID:kHS1Npj9
>>666
元がC言語ならPIC用のCコンパイラ探して移植した方が早いよ。
HI-TECH C Liteとか。わざわざPICbasicにするよりも近道かも
 と悪魔のささやき
668774ワット発電中さん:2011/11/08(火) 15:16:34.06 ID:cTWmQIJb
>>667
pic basicを必ず使わないといけないので困ってるんですよね
Pic16f88の6、7番ピンにps/2 テンキーを接続し液晶表示器に接続してます
669774ワット発電中さん:2011/11/08(火) 15:44:01.65 ID:cTWmQIJb
1桁同士の簡易電卓でいいんだけどまったくわからないわ・・・
670774ワット発電中さん:2011/11/08(火) 15:50:33.46 ID:GFZA/pev
お手伝いだとか、他人のレベルだとか、
言い訳すればOK。
671774ワット発電中さん:2011/11/08(火) 16:14:17.21 ID:QjgQfsCu
>>668
どこのを参考にしてるかしらないが、MikroCはPS/2ライブラリがあったはずだからそれつかってんじゃないのか?
その場合はライブラリの中身見にゃいけないから全く参考にならん。

一応MikroCはasm出力するはずだから、アセンブラが使えるなら参考にできるかもな。

まぁ、出来るところからやればいいと思うがな。
回路ができてるなら先に表示の方を作ったほうが良いんじゃないか
672774ワット発電中さん:2011/11/08(火) 16:17:42.92 ID:cTWmQIJb
http://www8.plala.or.jp/InHisTime/page064.html
ここ見ながら作ったんだけどpic basicで作らないといけないの忘れてたから……
673774ワット発電中さん:2011/11/08(火) 16:21:35.34 ID:Ge1w5mv3
作らなくてはいけなくて、とかセコイ理由捏造すんなよw
既に骨身に染みてるだろうが、独自仕様basicなんて糞の役にも立たないから
C言語でも始めたらどうよ
両方判れば自分で移植もできるだろ
674774ワット発電中さん:2011/11/08(火) 16:29:27.30 ID:cTWmQIJb
>>673
捏造じゃなくてpic basic proを使った工作を提出する課題なので役に立たなくてもしないといけないんです
675774ワット発電中さん:2011/11/08(火) 16:35:53.76 ID:2xpxSiZj
2chを使う課題、ソーシャルって奴ですかね。
676774ワット発電中さん:2011/11/08(火) 16:38:19.14 ID:QjgQfsCu
>>674
丸投げ乙。
添削ぐらいならまだしも、ソース写して提出するような奴の手伝いするやつはおらんだろう。
とにかくそのサイトはmikrocのライブラリ使ってるから参考にはならん。

課題ならPS/2の通信仕様ぐらいわかってないと例え提出できてもどうしようもない。
677774ワット発電中さん:2011/11/08(火) 17:19:08.94 ID:kHS1Npj9
>>674
もっと敷居を下げて、LEDチカチカじゃ駄目なん?
678774ワット発電中さん:2011/11/08(火) 17:19:55.73 ID:Ge1w5mv3
多分丸写しだからPS/2は課題と全く関係ないな
どのみち電卓すら作れないんじゃアキラメロン
679774ワット発電中さん:2011/11/08(火) 17:28:59.21 ID:GyNh5ZOR
初心者です。
MPLAB C18のことでお伺いしたいのですが、こちらで質問させていただいても
よろしいでしょうか?
680774ワット発電中さん:2011/11/08(火) 17:35:47.23 ID:cTWmQIJb
>>677
表示器も使わないといけないので電卓思いついて調べたんですよね
pic basic proがまったくわからないんです
講義でもled点灯とカウントアップしか教えてもらってないので
681774ワット発電中さん:2011/11/08(火) 17:52:46.42 ID:GyNh5ZOR
679で書きこませていただいたものです。
質問させていただきます。

MPLAB C18で入力が反映されず困っています。
PICには18F452、デバッグにはICD3を使用しています。
以下のプログラムでICD3から書き込み、デバッグで実行し、Delay10TCYx(10)でブレイクポイントを貼ってPORTDの内容をSpcial Function Registar用のウォッチウィンドウで確認しています。
最初にRD0に5Vを与えて確認するとPORTDは00000001と表示されています。
次に、ブレイクポイントで止めてRD0に0Vを与えて再び実行し、確認してもPORTDは00000001のままです。
そこで、RD0に0Vを与えたまま「Debugger」->「Reset」->「Processor Reset」をクリックし、再度「Run」するとPORTDは00000000と更新されました。
以下のプログラムではダメなのでしょうか?
このような基本的なことを聞いてしまい、申し訳ありません。
教えていただけると助かります。
682774ワット発電中さん:2011/11/08(火) 17:57:55.98 ID:b7tU3hlX
>>680
課題なんだからpic basic proを勉強して>>672のソースを参考にしながら
自分で書くのが正解だろ。近道はない。
683774ワット発電中さん:2011/11/08(火) 18:01:09.15 ID:KNsvnrLM
>>681
窓から投げ捨てろ
684774ワット発電中さん:2011/11/08(火) 18:11:38.81 ID:GyNh5ZOR
すみません。プログラムがありませんでした。

#include <p18f452.h>
#include <delays.h>

void main(void) {
unsigned char ucData;

TRISD = 0xff;
TRISE = 0xff;

while(1) {
ucData = PORTD;
Delay10TCYx(10); //ブレイクポイント用
}
}

投げ捨てないように頑張りたいと思います。
685774ワット発電中さん:2011/11/08(火) 18:18:42.03 ID:QjgQfsCu
>>680
PS/2キーボードをいきなり使おうとするのは無謀。
せめてLCDとスイッチ入力が出来るようになってからにしろ。
テストつーことでスイッチを押した回数をLCDに表示するプログラムでも作ってみれ。
応用すればストップウォッチぐらいは回路そのままでもつくれるぞ。
686774ワット発電中さん:2011/11/08(火) 18:26:45.37 ID:kHS1Npj9
>>684
ダメ元だけど、ブレークポイント用の呼び出しを1行追加。都合2行にして、
双方の行にブレークポイント設定し、実行してみて。
687774ワット発電中さん:2011/11/08(火) 18:29:26.22 ID:kHS1Npj9
ん、表現が変だった。
 Delay10TCYx(10); //ブレイクポイント用
 Delay10TCYx(10); //ブレイクポイント用
って感じにして、双方の行にブレークポイントね。

BP2つ設定できたっけ?
駄目なら、ブレーク後にステップアウトで命令行を動かしてみて。。
688774ワット発電中さん:2011/11/08(火) 19:44:34.99 ID:EMK82sVB
RCDライタというものを使ってPICに書き込んでいるのですが
16F84Aと88は書き込みができるのですが
その他のPICで書き込めたことがないのですがどうしたら良いでしょうか
パソコンにはPCIスロットにRS232Cのボードを入れてつないであります。
サイトで調べると持って色々なものに書き込みできるようなのですが・・
689774ワット発電中さん:2011/11/08(火) 20:17:24.99 ID:1LeaoW9x
>>661
WDTじゃなくてタイマ割り込み使うのが筋じゃね

>>672
IO部分だけCソース流用して、メインはbasic使って関数呼び出しすればいいんじゃね?
690774ワット発電中さん:2011/11/08(火) 20:18:50.42 ID:1LeaoW9x
>>688
電圧・電流不足とかでPICによって書けたり書けなかったりする
そんなときはチャージポンプ用コンデンサの容量変更で書けたりもする
691774ワット発電中さん:2011/11/08(火) 20:32:23.18 ID:y+cSIl8m
>>688
PICkit2を買った方が幸せになれる。
692耳がダメなソシヲタ:2011/11/08(火) 21:01:19.26 ID:BgR7jcZB
>>688
675とも相性が良くなかった。
書けるときは問題なく書ける。書けないときはしつこくやってると書けたりする。
最新版相当で作った。並のポートなら、あれで電圧は十分保てる。
693774ワット発電中さん:2011/11/08(火) 21:20:55.57 ID:VUjuSZC6
>>664
> 仕事って言うか、お手伝いなので。

金貰っておきながらお手伝いって・・
その上2chで質問。
ちっとは責任持てよw
694774ワット発電中さん:2011/11/08(火) 21:27:52.83 ID:cTWmQIJb
>>685
オルゴールで再生数をカウントするものを自力でがんばって作り直して見ます
695774ワット発電中さん:2011/11/08(火) 22:50:41.85 ID:NtNvhj1l
PICkit3は?
696774ワット発電中さん:2011/11/09(水) 11:16:29.18 ID:7Z6iISZJ
>>688
確認用のLED外したら書き込める事があった
ダメモトでやってみ
697774ワット発電中さん:2011/11/09(水) 11:20:33.53 ID:Md0Qzg1e
>>687
お返事ありがとうございます。
試して見ましたが、状態は変わりませんでした。
ただ、TRISE=0b00000111;としたところ、入力の状態が反映されるようになりました。
原因がよくわかりませんが少し前進した気がします。
ありがとうございました。
698774ワット発電中さん:2011/11/09(水) 21:59:29.92 ID:Zj+oJVfv
>>697
REGISTER 9-1: TRISE REGISTER
R-0 R-0 R/W-0 R/W-0 U-0 R/W-1 R/W-1 R/W-1
IBF OBF IBOV PSPMODE ― TRISE2 TRISE1 TRISE0

bit 4 PSPMODE: Parallel Slave Port Mode Select bit
1 = Parallel Slave Port mode
0 = General purpose I/O mode
699774ワット発電中さん:2011/11/10(木) 11:28:09.98 ID:OMaG8zqC
PIC16F1827からI2Cで24LC512のEEPROMにデータを
ページモードで書き込みしようとしています。
ネットなどには1ページ単位で、24LC512の場合には128バイト毎に
Stopコンディション発行で書き込みすると記述されていますが、
これは1ページの最大データ内(128バイト以内)であれば、128バイトに
達しなくても、Stopコンディションで書き込みを終了しても
いいのでしょうか。(例えば16バイト毎など)
データシートには、1ページ辺りの最大バイト数を超えると、
最初に戻って上書きされるので注意を要する、と記述されており、
1ページは最大128バイトと記載はされていますが、128バイト毎
という記載はありませんでした。

どなたか教えて頂けると助かります。
700774ワット発電中さん:2011/11/10(木) 12:07:29.98 ID:nri3XpIn
自分が24LC256(バッファサイズ64byte)とか
24LC64(バッファサイズ32byte)用に
16bit整数(2byte)の読み書きや32bit整数(4byte)の読み書き
の関数とか作って動作確認したときは特に問題は無かった
つまり
アドレス+2byteのデータ転送後STOP発行で正常に書き込めたし他のデータを壊すこともなかった
アドレス+4byteのデータ転送後STOP発行で正常に書き込めたし他のデータを壊すこともなかった
つまり24LC512の場合で言えば128バイトの範囲内なら16バイト毎とかokということじゃないかな
1byte毎の書き込みもページメモリを1バイトだけ使ったページライトモードでの書き込みといえるし
701774ワット発電中さん:2011/11/10(木) 12:37:39.82 ID:O21Q8P7g
>>690>>691>>692>>695>>696
レスありがとうございます。
LED外し、コンデンサ変更で何回も試してみたのですが
一度も書き込みできませんでした・・・
近いうちに別のライターにしようかと思います。
702774ワット発電中さん:2011/11/10(木) 12:46:22.10 ID:twH10E+x
素直にpickit買うのが幸せへの一番の近道
703774ワット発電中さん:2011/11/10(木) 13:22:17.08 ID:DhI3JlBE
>>643
ありがとう。とりあえずエラーではなくなったです、
704774ワット発電中さん:2011/11/10(木) 14:02:43.29 ID:dlsSEiM4
pickitが完成度が高くて安くて入手性も良いので、逆に自作してやろうと
705774ワット発電中さん:2011/11/10(木) 23:37:40.18 ID:11n9SwW4
10F200から10F222に置き換えた際
内蔵オシレータがデフォルト8MHzになってたのに気づかず…

みんなも気をつけてね
706774ワット発電中さん:2011/11/11(金) 13:10:43.70 ID:HWXjVh7h
PICユーザーは他社のマイコンとうまく使い分けてる人も多いと思うのでちょっとお聞きしたい。

FPGAで使われるマイコンにNiosIIというのがあります。タイプがいくつかあってeバージョンは
PICとまったく同じようにレジスタへのリード・ライトでIOを操作できます。しかしfバージョンは
パイプライン処理やキャッシュメモリ内蔵型の高性能タイプでレジスタへのアクセスではIOを操作できない
みたいです。ARMその他、高性能の部類のマイコンは上のfバージョンのようにPICなどとは異なる
コーディングが必要ですか?

また、現在のPCではIOに直接アクセスできず、デバイスドライバを通して、ということになってるけど
上のfバージョンと同じような状況からそのような方法になってるのかな?
707774ワット発電中さん:2011/11/11(金) 13:31:37.76 ID:681n++S5
>>706
メモリーマップドIOって好きだな
708774ワット発電中さん:2011/11/11(金) 13:32:45.93 ID:j2MBA0tf
>>706
高性能タイプってのが何を指すのかわからないぐらいだだっぴろい気がするんだが。

PCがIOアクセスできないんじゃなくて、WindowsがIOアクセスさせないようになってるだけ。
OSの定めた手順を守らせるのは、ハードの差異を吸収して互換性を確保する上での定石。
709774ワット発電中さん:2011/11/11(金) 15:10:18.40 ID:VPSVI4W4
>>706
PICはメモリマップドI/O、ARMも同じだけど、ビット操作を別のメモリ空間に割り当てているみたい。
上位ARMだとメモリ管理と特権モードで使用が制限される場合がある。
I/O空間が別のマイコンも古くからあるけどNiosIIは知らないからね。
710774ワット発電中さん:2011/11/11(金) 15:21:05.99 ID:VPSVI4W4
>>706
OSがあるなら、その約束を守ったコーディングが必要です。
そうでなければ、I/Oを直接操作する部分とやりたいことを分離するのが普通でしょう。
I/Oを直接操作する部分は、異種マイコンごとに異なっているのが普通なので作り直しになります。
711774ワット発電中さん:2011/11/11(金) 15:23:05.96 ID:exXFoUh5
Nios だったら FPGA スレで聞けばいいのに・・・
712774ワット発電中さん:2011/11/11(金) 21:26:18.55 ID:1/0fTKHd
ロボットで画像処理が必要になったとかで、
急にPIC(32MX除く)だと足りないって感じたかわいそうな人なんだろうけど
713774ワット発電中さん:2011/11/12(土) 20:53:04.13 ID:mqsohKAo
>706
アセンブラで書かないから予測が出来ないでそういったはめになる!
714774ワット発電中さん:2011/11/13(日) 13:12:12.68 ID:gWEHvwC+
書き込めなくなってしまったので助けていただきたいです。
状態は以下の通りです。

PCで接続を確認すると、ライターのシリアルまで判別できる
電源供給により以前書き込んだプログラムが実行される(PC、外部共に)

以上から、ライター・PICどちらも機能していると判断できると思うのですが、
プログラムの書き込み、読み込み、削除等、一切受け付けません。
解決策を知っている方がいましたら、ご教授お願いいたします。よろしくお願いいたします。
715774ワット発電中さん:2011/11/13(日) 13:18:10.20 ID:Ih7dN2CX
PICを交換して駄目ならライターを買うか自作するかすれば解決。
716774ワット発電中さん:2011/11/13(日) 13:29:49.29 ID:VcC7bDEh
>>714
ライタの種類がわからない。
受け付けないだけでは何が起こっているかわからない。
PICの載っている回路がわからない。
接続ケーブルの破損や回路の変更でライタがPICを制御できなくなっているのでは?
717774ワット発電中さん:2011/11/13(日) 15:39:46.01 ID:X+Au8Owu
>>714
ターゲットもデバッガも問題ないという自分の判断を信じるべき。
スイッチいれる時は手首のスナップを効かせないとだめ。
PICは指先で動くようなヤワな石じゃない。
718774ワット発電中さん:2011/11/13(日) 18:21:03.98 ID:YPpmvp1k
>714
Vppが死んでるんじゃない?
719774ワット発電中さん:2011/11/13(日) 20:53:29.71 ID:JrbuW69d
>>714
それだと、PC-ライタ間の通信と、PICのコアが動いてることしかわからん。
ライタの書き込み信号と、書き込み信号の伝送線路と、PICの書き込みポートについては動いているかどうかわからない
720774ワット発電中さん:2011/11/13(日) 21:34:09.90 ID:YBTqScJU
例えば、RA0として、
オンになった時に割り込みを掛けて、その割り込みの中でタイマーをスタートさせる。
次に、RA0がオフになった時に割り込みを掛けて、その間の時間を記憶する。
時間はだいたい0.1秒〜3秒の範囲内です。

なんども繰り返す割り込み処理の中で、その平均を求めて、
平均の約2倍の時間が掛かった時にフラグを立てる。
通常処理の中で、そのフラグを確認した時に特定の処理をする。

という事をしたいのですが、タイマー0とか1とかどんなタイマーを使えば良いのか、
タイマーに詳しくありません。
何方かのアドバイスをお願いいたします。
721774ワット発電中さん:2011/11/13(日) 21:54:57.78 ID:rom9FFFW
>>720
16bitタイマーを外付けの32kHzで駆動。8分周すれば16秒まで計れる。
RAはPOS/NEGエッジで割り込みしたいんだろ?オフでTMR1リスタートしてオンで読めばいい。
タイマー読んだ後の移動平均とか2倍判定は他の親切な人に聞いてください。
あと、オンとかオフとか定義次第でどっちか判らん表現する奴は氏ね。RISEとかFALLの方が判りやすいよ。
722774ワット発電中さん:2011/11/13(日) 22:05:18.12 ID:VcC7bDEh
>>720
タイマーをスタートさせる必要なんて無い。
時計で経過時間を計るのにそんなことしないだろ。
CCPのキャプチャモードを使えば、立ち下がりエッジごとや立ち上がりエッジごとに、タイマ1を保存してくれる。
723774ワット発電中さん:2011/11/13(日) 22:05:18.95 ID:YBTqScJU
>>721

ありがとうデス。
明日、秋月に行くので外付けの32KHzの何かを買ってきます。
漠然としていたものにクリアに回答を戴き感謝感激です。
724774ワット発電中さん:2011/11/13(日) 22:16:54.48 ID:P4tI4xbu
>>720
最初キャプチャと思ったんだけど0.1〜3秒だと計測する時間が長すぎる
キャプチャの立ち上がり割込がかかったときにカウント開始、立ち下がり割込でカウント終了みたいな感じにして
タイマー割込で時間の計測をするとか?
725774ワット発電中さん:2011/11/13(日) 22:27:20.26 ID:bBIfdvDE
>>723
クロック内蔵なら外付けクロック買わなくてもいける。
精度を求めなければ。という条件は付くが。。
「32KHzの何か」という時点で必要な部品が揃わない気がする。
726720:2011/11/13(日) 22:30:32.51 ID:YBTqScJU
やりたいことはモーターの回転時間を監視して、通常の2倍の時間が掛かった場合に警報を鳴らす。
と言うものです。

モーターの動作時に、モーターの+極の電圧が立ち上がるので、その時に割り込み処理の中でタイマーをスタートさせて、
モーターの停止時に、モーターの+極の電圧が立ち下がるので、その時に割り込み処理の中でタイマーを読み取る。
タイマー値が通常の2倍になった時に、フラグを立てます。


通常処理は只只、フラグが立つまでループさせておき、
フラグが立ったら警報を鳴らしてまたフラグが立つまでループするという繰り返しです。


引き続きアドバイスありましたらよろしくお願いいたします。
727774ワット発電中さん:2011/11/13(日) 22:36:01.19 ID:P4tI4xbu
>>726
モーター・・・
なんか信号の取り方から心配になってきた
まさか+極を直接繋ぐつもりじゃないよね?
728720:2011/11/13(日) 22:42:48.13 ID:YBTqScJU
>>727

その辺りよく考えています。判りやすく簡素に書いただけです。
729774ワット発電中さん:2011/11/13(日) 23:26:23.64 ID:/G5vt1v1
pickit3のライタソフトでデバイスの自動選択が出来ないって仕様ですか?
730774ワット発電中さん:2011/11/13(日) 23:40:09.91 ID:VcC7bDEh
>>724
クロック周波数が書かれていない。
最大で16ビットのタイマ+3ビットのプリスケーラだから、それにあわせてクロック源を用意するのは当然のこと。
使い方を見る限りでは、タイマ0のオーバーフローをカウントして、ポートBのピン変化割り込みでキャプチャしても充分な精度がありそうだね。
731774ワット発電中さん:2011/11/13(日) 23:52:33.36 ID:VcC7bDEh
>>729
ベースラインだと、デバイス選択を確認するためのデバイスIDがないみたいだね。
まあ、作ったソフトとデバイスをあわせることができないほどだと、どうしようもないと思うけど。
732774ワット発電中さん:2011/11/13(日) 23:57:03.01 ID:gWEHvwC+
>>716ー719
レスありがとうございます。
ご指摘いただいた点をチェックして、まだ自力で解決できない様だったらまた来ます。
733774ワット発電中さん:2011/11/14(月) 00:26:55.80 ID:/3u4M1XJ
そういえばPickit2のコンフィグ値が合わないのが気になってた
動作するから仕様かバグかな?ともやもやしてた

気になっていくつかのデバイスで照らし合わせた
pickitt2だと無効なビット表現が違うんだね

へんな日本語ですまん
734720:2011/11/14(月) 08:20:47.29 ID:+kFiiaOQ
PICkit2とPICの間の通信はSPI?I2C?
735774ワット発電中さん:2011/11/14(月) 09:07:33.50 ID:tq5ggZHl
>>734
本国サイトに仕様が掲載されてるけど。
まずは、公開されている情報を読破した方がよくないか?
736774ワット発電中さん:2011/11/14(月) 13:14:32.65 ID:BaZd8Skz
まあ、なんでも公式ドキュメントを読めってのも。他に調べなきゃならないことは山ほどあるわけだから。
PICのICSPはクロックとデータ(in,out共通)の2線式なのでSPIではないと思う。
I2Cかその他の規格かな。プログラマを自作したことがあるけどだいぶ前なので詳細は忘れた。
737774ワット発電中さん:2011/11/14(月) 13:32:58.47 ID:6o9R3b/M
どちらかというとSPIに近いんじゃないかな
SDOとSDIで信号線を共用したSPIて感じ
基本的に[コマンド]+[ワードデータ]の単位でやりとりされて
[コマンド]は必ずプログラマからターゲットの向き
[コマンド]には書き込み系と読みだし系があって
書き込み系の場合は[コマンド]に続く[ワードデータ]はプログラマからターゲットの向き
読みだし系の場合は[コマンド]の後にプログラマ側はデータ線を入力に切り替える一方
ターゲット側は読みだし系の[コマンド]を認識してデータ線に[ワードデータ]を出力してくる

まあそんな感じ
738774ワット発電中さん:2011/11/14(月) 13:34:37.68 ID:yDXW3y9Z
タイミングを定義すればPS/2みたいな2線もあるわけで
739774ワット発電中さん:2011/11/14(月) 17:38:38.12 ID:LLyBnwXB
740729:2011/11/14(月) 21:34:07.83 ID:5l5FGVVZ
>>731
レスありがとうございます。
pickit2では出来ていたのに・・・
741774ワット発電中さん:2011/11/14(月) 22:12:49.98 ID:1AXr2gwW
PICerFTを製作しようと思うのですが

↓この回路図
http://einstlab.web.fc2.com/PICerFT/Circuit.png

これの"+5V →"や"+12V →>"と書かれているところは
それ同士をただ接続するだけでいいのでしょうか?
742774ワット発電中さん:2011/11/14(月) 22:19:06.81 ID:1GqqvkYw
うぃ。
Vcc同士、GND同士も牡忘れなく
743774ワット発電中さん:2011/11/14(月) 22:20:48.47 ID:1AXr2gwW
>>742
回答ありがとうございます 助かりました。
744774ワット発電中さん:2011/11/15(火) 11:20:49.23 ID:8/GpeGhi
タイマー割り込みについて教えて頂きたいのですが、

dspic30f4012にて、割り込み時間をきっかし1秒にしたいので
クロック・プリスケーラ・カウンタ?の値をそれぞれ
512k・256・512に設定したのですが、どうも1.1秒ぐらいの間隔になっています

カウンタ?の値はいくつにすればよいのでしょうか?
ものすごい初歩的で申し訳ないのですが、宜しくお願いします。
745774ワット発電中さん:2011/11/15(火) 11:40:56.81 ID:XYNDrnax
>>744
マイコン全体に言えることだけど、「毎割り込みを正確に一定の間隔にする」という考え方は
あまりしないな。割込み処理の開始にはレジスタ退避処理などでレイテンシがあるし、他の割込み
と併用していれいれば待たされることもあるし。
それを考慮した上で、適切なタイマーの設定値についてはdsPICは使ったことがないので他の回答者
にまかせる。
746774ワット発電中さん:2011/11/15(火) 11:45:15.70 ID:9BgWP4Jv
>>744
クロック周波数もわからんのにどうしろと。
それにクロックのソースが正確じゃない可能性もあるし、割り込みもフリーランさせずに割り込み時にタイマー値を設定するようなプログラムだとタイマー値設定するまでのステップの誤差を考えないと目的の時間にはならない。

ともかく情報が少なすぎる。後出ししても回答側もあなたにもメリットないぞ。もっと詳しく
747774ワット発電中さん:2011/11/15(火) 12:27:29.39 ID:gZlh7n1d
きっかり1秒ならGPSの信号使ってみるとか?
748774ワット発電中さん:2011/11/15(火) 12:55:20.41 ID:MAHkl9yF
1.0秒の精度で良いならタイマーの数値の調整で何とかなるけど、1.00秒以上の精度を要求するなら、
32.768KHzの水晶発振器を分周して使うべき。
749744:2011/11/15(火) 13:03:05.18 ID:8/GpeGhi
>>745
動作は10秒程度でリセットするので、数ms程度の誤差なら考慮しない予定です。
>>746
クロックは512kか10Mがあります。
>>747ー748
それが一番簡単ではないかなーと思ってるんですがね。既存のものでやってみたいのです。

あと今確認したら遅れではなく、早かったです。0.95秒くらいでした。
750774ワット発電中さん:2011/11/15(火) 13:12:35.73 ID:9BgWP4Jv
>>749
すまん。クロック書いてあったな。
割り込み退避処理の誤差を考慮しない場合でも計算上タイマー値500じゃないのか?

その設定だと長くならないか?
751774ワット発電中さん:2011/11/15(火) 13:21:58.00 ID:MAHkl9yF
>>749
まず10msくらいの割込タイマーを作って、それを100回まわして約1秒のタイマーを作る。
具体的には10ms割込のたびにカウンタを+1してそれが100になったらフラグを立て、カウンタをリセットする。
メインルーチンでフラグをチェックしてフラグが経ったら1秒経過したことになるので、フラグはクリアして、1秒処理ルーチンへ。
10msx100回で0.95秒くらいなら、カウンタを105にしてみる。
この辺はカットアンドトライで調整シル。
752744:2011/11/15(火) 13:22:40.17 ID:8/GpeGhi
>>750
520ぐらいでも少し早い感じでした
てかきっかり1秒といっておきながら、誤差は〜とか矛盾してますね
一旦他の方法を考えてみます。
みなさんレスありがとうございました。
753774ワット発電中さん:2011/11/15(火) 13:27:25.96 ID:U+cZXmCY
>>740
PICkit2で出来てたならベースラインじゃないだろ
754774ワット発電中さん:2011/11/15(火) 13:48:59.38 ID:a0gjlP3F
ちょっと早いとか遅いってなにで測定したのか
気になったけどまあいいや
755774ワット発電中さん:2011/11/15(火) 13:52:33.61 ID:xGThi/lU
32768Hzの信号を32768分周すれば1Hzになる
20000000Hzの信号を20000000分周すれば1Hzになる

dspicは詳しくないんだが
timer2/3の32bitタイマーのピリオドレジスタにシステムクロックの周波数を設定して
一致割込発生させれば正確な1秒になるのでは?
756774ワット発電中さん:2011/11/15(火) 13:54:28.54 ID:7CuXoXb6
1秒を手動(目視+ストップウォッチとか)で計りたいなら、10秒ごとに100秒まで10回とかいうふうに計って
誤差が伸びていかないor縮んでいかないなら1秒がちゃんと出てる
とかいうようなやり方しないと、いつまでたっても手の誤差を計り続けることになるな。
757774ワット発電中さん:2011/11/15(火) 14:21:39.40 ID:a0gjlP3F
一般的な成人の場合、目で認識→脳で判断→神経に伝達まで
約0.3秒って聞いたことがあるけどそれを測定すればいいんじゃね

dsPICにはそんな機能があった気がする
758774ワット発電中さん:2011/11/15(火) 15:30:25.46 ID:tKGAAcDC
普通にロジアナで測らないの?

持ってないなら、100円のストップウオッチにSSRかTR繋いで、ポートに繋げば良いのに・・・
759774ワット発電中さん:2011/11/15(火) 17:08:17.31 ID:3okZ3cml
なんでロジアナ?
760774ワット発電中さん:2011/11/15(火) 17:13:39.86 ID:7CuXoXb6
オシロのはなしじゃなかろか。
761774ワット発電中さん:2011/11/15(火) 18:05:07.45 ID:9eujocz0
誰もが一度は作る“周波数カウンター”の出番
762774ワット発電中さん:2011/11/15(火) 18:26:32.65 ID:Kh3acbzI
1秒ならPCのソフトオシロで充分だよ。
763774ワット発電中さん:2011/11/15(火) 19:21:32.96 ID:Rv7QD2Rh
>>744
その1.1秒ステップのPICを持って光速の1.487倍まで加速してこい。
地球時間の1秒とほぼ同じになるはず。
764774ワット発電中さん:2011/11/15(火) 19:30:01.53 ID:N4RS3VK/
一瞬物理板に入ったかと思ったw
765774ワット発電中さん:2011/11/15(火) 19:31:21.42 ID:N4RS3VK/
というか、よくよく見たら、物理的に超光速は不可能だけどね
言いたいことはわかったけど
766774ワット発電中さん:2011/11/15(火) 19:46:18.21 ID:o9DKf0oU
>>763
どういう計算?
早くなることってあるのか。
767774ワット発電中さん:2011/11/15(火) 19:50:01.68 ID:N4RS3VK/
>>766
たぶん、近光速(亜光速)運動してるPICの時間の進みは
地球に比べて遅くなる
ということを言いたいんだと思うよ
768774ワット発電中さん:2011/11/15(火) 19:54:41.45 ID:xDABTLwy
光速の1.487倍で地球での1秒になるとして実際に処理をするPICが1.1秒では・・・・
769774ワット発電中さん:2011/11/15(火) 20:25:50.19 ID:V6WuHJf6
>744
原発振の誤差は置いておくとして、その設定なら
512000(512kHz) ÷ 4(f/4固定) ÷ 256(P/S) ÷512(PR) = 0.9766Hz → 1.024秒 にならない?
素直にPRの値を500にすれば誤差を置いておけば1秒にならないか?
770774ワット発電中さん:2011/11/15(火) 23:02:05.33 ID:55v4Ho4n
>>753
「デバイスの自動選択」という部分がみそだと思う。
IDEが指定するデバイスがPICkitに伝えられる。
HEXにはデバイスの指定はない。
PICkitは可能ならデバイスIDで正しいPICか確認している。
HEXだけで書き込むならデバイスを指定したか?
デバイスが判らないとデバイスIDを読み取れないかも?
間違ったデバイスの時にVPPに正しい電圧が供給されるか?
771774ワット発電中さん:2011/11/15(火) 23:08:08.10 ID:55v4Ho4n
>>753
PICkit 3 Programmer-To-Goというスタンドアロン書き込み機能が追加されているから、それかも。
772774ワット発電中さん:2011/11/16(水) 10:39:09.41 ID:leDswZMA
PWMのついてないPICで内蔵オシレータ、50/50のDUTYで方形波出そうと思ったら、
100khzくらいが限度かな。
773774ワット発電中さん:2011/11/16(水) 11:07:27.44 ID:Sv2MY5UI
bsf GPIO,0
nop
nop
bcf GPIO,0
goto $-4

内蔵4MHzなら 166KHzか。
774774ワット発電中さん:2011/11/16(水) 11:22:27.92 ID:leDswZMA
そんな感じでした。
775774ワット発電中さん:2011/11/16(水) 11:49:48.63 ID:WuV98iEf
クロック直
776774ワット発電中さん:2011/11/16(水) 14:25:09.25 ID:leDswZMA
10k-50kHzくらいで、DUTYを20-80くらいをADの半固定から
ソフトで自由に設定したかったのですが、CCPないと厳しそうです。
777774ワット発電中さん:2011/11/16(水) 15:47:16.10 ID:j/n3mvF3
PIC24FのDIP品(28ピン)に
・LCD
・4*4キーパッド(マトリックスタイプ)
・XBee
・いくつかのLED
・ICSP
つけようと思ったらもうピンが全然足りない感じなんですけど、表面実装タイプにしないと
なんともなりませんか?
778774ワット発電中さん:2011/11/16(水) 15:51:33.03 ID:jdq5TIiK
>>777
足の数と面実装の関連がサッパリ判らない。
面実装にすると足増えるの?
779774ワット発電中さん:2011/11/16(水) 16:01:46.99 ID:3T4D15L/
>>777
ピン数増やすとフラット品しか無いのだろう
780774ワット発電中さん:2011/11/16(水) 16:25:19.02 ID:jdq5TIiK
そういうことなら28pinを最初にかかなければ…
さておき
キー、LCD、LEDはシフトレジスタ(しりぱら、ぱらしり)でもぶらさげれば、全部数珠つなぎで、入力3本、出力3本、とかいうこともできそうだ。
781774ワット発電中さん:2011/11/16(水) 17:01:11.51 ID:leDswZMA
40ピンのDIPじゃ駄目なのか?
782774ワット発電中さん:2011/11/16(水) 17:07:18.07 ID:LV4Bl0o6
>>777
LCDはシリアルで、テンキーはUSBでつなぐ。
783774ワット発電中さん:2011/11/16(水) 17:19:24.42 ID:Hl9l6Rkq
>>781
24Fで40ピンDIPあったっけ?
784774ワット発電中さん:2011/11/16(水) 17:38:38.89 ID:0ouYIs12
>>777
マイコンありきじゃなくて、機能からマイコンを選択しないの?
とりあえず簡単に削減できるのは、LCDを4bitアクセス(文字タイプと想定)、
LEDはシフトレジスタ(数による)かな。
LCDはSPI接続の種類もあるよ。
785774ワット発電中さん:2011/11/16(水) 19:04:12.19 ID:BwJoT4RR
>>783
探してみたけど、dsPIC30Fしか見あたらなかった。
786炬燵熊猫:2011/11/16(水) 19:48:36.53 ID:4tUKEUn4
>>777
キー入力、表示制御用にPIC一個使ってシリアル通信したほうがいいかもね?
信号線はCK,Di,Do,RESETくらい?
787774ワット発電中さん:2011/11/16(水) 20:06:47.62 ID:mb1CByVu
>>777
LCDってキャラクタ?グラフィック?
LCDをI2C 2
キーボードをマトリックス 8
XBee 2
ICSP 3
I/Oが24個あるとして15個しか使ってないから9個のLEDが制御できる
LEDもマトリックスにしてもいいけどソフトがわかりにくくなりそう
ICSPは入出力とかぶっても、トグルスイッチに繋がっててHighやLowと直接繋がってるとかじゃなければわりと大丈夫な気がする
788774ワット発電中さん:2011/11/16(水) 20:51:01.44 ID:hJdqFfbw
XBeeフロー制御無しはつらくね?
無線だぞ?
789774ワット発電中さん:2011/11/16(水) 23:52:13.28 ID:kcJDtDdd
趣味レベルでPICをはじめに当たって、Pickit2を買うかPickit3買うか悩んでるけど
お勧めなライターは?
どこかに比較表なんかないのかな?
790774ワット発電中さん:2011/11/17(木) 00:11:40.82 ID:HPxXhQ5O
pickit2じゃないかな?ロジアナ付いてるし何かと便利
791774ワット発電中さん:2011/11/17(木) 04:06:48.42 ID:/oQmzyA0
>>789
これから発売されるチップをいち早く使いたいというのでなければPICkit2で
いいんじゃね。両方持ってるけどPICkit2ばかり使ってる。
792774ワット発電中さん:2011/11/17(木) 17:55:58.04 ID:TufSaNvv
ET2011でMicrochipのブース見た帰り道で発見した事がある。

Microchipとみなとみらい線は色違いの兄弟

チラ裏スマソ。気付いてしまったら脳裏から離れなくて、つい。
793774ワット発電中さん:2011/11/17(木) 23:03:57.98 ID:2CaOm9GO
モスバーガーは従姉妹?
794774ワット発電中さん:2011/11/18(金) 09:44:41.18 ID:W8x3SCjy
USARTのRXピンの処理について教えてください。

PICとPC間をUSARTで通信したいのですが、
常時接続ではなくて必要な時にコネクタで接続して通信しています。

この時RXピンはプルアップしておいた方がいいのでしょうか?
しなくても問題無くは動いているのですが、入力ピンをオープンで放置しておいても
大丈夫でしょうか?
795774ワット発電中さん:2011/11/18(金) 10:50:58.90 ID:foZfN2Zk
ICのデータシートをよく読んで。

不安なら外部でプルダウンする
796774ワット発電中さん:2011/11/18(金) 11:00:43.10 ID:8YaCjjzF
RS232ドライバがレベル決めてくれるでしょ
797794:2011/11/18(金) 11:11:28.68 ID:W8x3SCjy
>795

データシートもう一度読んでみますね。
プルアップじゃなくてプルダウンですか。ダウンでないといけないですか?

>796

それは接続中ですよね?
接続していないときにプルアップとかで電位を固定しなくて大丈夫?って質問です。
798774ワット発電中さん:2011/11/18(金) 11:39:26.51 ID:UiMT/axh
電波テロ装置の戦争(始)エンジニアさん参加願います公安はサリンオウム信者の子供を40歳まで社会から隔離している
オウム信者が地方で現在も潜伏している
それは新興宗教を配下としている公安の仕事だ
発案で盗聴器を開発したら霊魂が寄って呼ぶ来た
<電波憑依>
スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科
<コードレス盗聴>
2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠>
今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部>
キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索
799774ワット発電中さん:2011/11/18(金) 13:07:29.26 ID:AgsHBBvw
>>797
あんたの説明が足りないから
PIC-PC直結で答える人もいる
間に何か挟んで内科医?
それならプルアップだけど
800774ワット発電中さん:2011/11/19(土) 21:16:46.74 ID:4el0L3Vx
32KHzの水晶発振子からクロックを取ってタイマー1のカウントアップをしたいのですが、
T1CONレジスタの入力種別は専用発振回路なのか外部入力なのかどちらでしょうか?
それから、PICのメインクロック自体は8MHzの内部クロックですが、
この水晶発振子はどのピンに接続したら良いのでしょうか?
801774ワット発電中さん:2011/11/19(土) 21:28:27.55 ID:9MJKXggf
PICの種類は?
802774ワット発電中さん:2011/11/19(土) 21:37:27.20 ID:0y4N1kn5
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
の各端子に32KHz水晶発振子の2本足をそれぞれ接続する
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
の各端子とGND間に47pF程度のコンデンサをそれぞれ接続する

外部クロック入力を選択する;
TMR1CS: Timer1 Clock Source Select bit
1 = External clock from T1CKI pin (on the rising edge)
0 = Internal clock (FOSC/4)

オシレーターイネーブルにする
T1OSCEN: LP Oscillator Enable Control bit
1 = LP oscillator is enabled for Timer1 clock

タイマ1をONする

PIC16F887とかの場合はね
803ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/11/19(土) 21:57:48.88 ID:osE2BHYx
>>802
PIC16F19839の場合どうすればいいかわかる?
804ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/11/19(土) 21:58:08.20 ID:osE2BHYx
間違えたw
PIC16F1939だな。
805774ワット発電中さん:2011/11/19(土) 22:08:59.94 ID:PkdC64kT
>>803
データシート読んだの?
806774ワット発電中さん:2011/11/19(土) 22:15:57.49 ID:0y4N1kn5
>>803
表 16-2: クロック ソースの選択
TMR1CS1 TMR1CS0 T1OSCEN Clock Source
0     1    x    System Clock (FOSC)
0    0     x    Instruction Clock (FOSC/4)
1    1     x    Capacitive Sensing Oscillator
1    0    0   External Clocking on T1CKI Pin
1    0     1   Osc.Circuit On T1OSI/T1OSO Pins
807774ワット発電中さん:2011/11/19(土) 22:18:14.64 ID:T5yfC0mv
スペック Windows7 home premium x64bit メモリ4GB
なんですが、こちらのサイト→ttp://www.mars.dti.ne.jp/~ogura/e_hobby/pic10f206.html
で公開されているアセンブリソースをPICerFTでPIC10F222に書き込みたいのですが

.srcを.hexにアセンブラできるフリーソフトを教えてくださいお願いします
808ミ爻ж 銀翼の堕天使 ж爻彡 ◆2TENKK.nkY :2011/11/19(土) 22:40:01.67 ID:osE2BHYx
まぁ、16F1XXXシリーズアレルギーは、仕事だと潰れるのみか。
877厨や84、628厨はどうせPLLの設定とかわかっていなかったり、
最大クロックでした使ったことなかったりするでしょw
趣味だったらさっさとArduinoに移りなよw
809774ワット発電中さん:2011/11/20(日) 03:16:01.41 ID:w27KSnmb
4MHz入れてぶん回す以外なにがあるんだよ
810774ワット発電中さん:2011/11/20(日) 09:47:17.89 ID:tZWfeArl
>>808
では18F2550厨はどうですか?
811774ワット発電中さん:2011/11/20(日) 12:13:12.78 ID:ZDnJYWF4
>>772
プログラム領域全てに
bsf GPIO,0
bcf GPIO,0
bsf GPIO,0
bcf GPIO,0
 ・
 ・
 ・
と書くのが最速
812774ワット発電中さん:2011/11/20(日) 12:16:33.00 ID:Y6opdneP
cvasm16をつかってアセンブルしようとしているのですが
"use of unknown symbol GP1"
と表示されて、ピンを指定することができません
PIC10F222を使おうとしているのですが GP1を何に書き換えればいいですか?
GP0〜GP3まで教えてください お願いします
813774ワット発電中さん:2011/11/20(日) 12:23:35.55 ID:2Xs0HCAF
>>812
定義ファイル読めばいいだろ。てかcvasmフォーラム逝け
814774ワット発電中さん:2011/11/20(日) 12:24:46.46 ID:Co64MZuG
>>811
ラッチ使わないと誤動作しないのか?
815774ワット発電中さん:2011/11/20(日) 15:49:45.47 ID:YOt4BHSc
>>813
定義ファイルが見当たりません  そもそもアセンブリの勉強もせずにオープンソースを流用しているだけなので
たぶん初歩的なことすらわかっていません
どうか助力をお願いします
816774ワット発電中さん:2011/11/20(日) 15:55:57.91 ID:VkBpw2BX
>>815
例題見れば答えが見つかるかと。
もしかしたら、マニュアルよまず、いきなりcvasm16?を落として使ってるの?

仮定の話だけど、自分でレジスタ定義してね!ってことになりそう。
その場合の疑似命令の文法は・・・マニュアル読んでよ。としか言いようがない。
オープンソースなら誰かが定義したのがアップされている。に一票。
817774ワット発電中さん:2011/11/20(日) 16:21:00.59 ID:YOt4BHSc
>>816
"他のも見てみる"に助けられました
解決しました  ありがとうございます !
818774ワット発電中さん:2011/11/20(日) 19:23:08.17 ID:ZDnJYWF4
>>814
ラッチの付いてるPICは使えば良いだけ。
それ位考えろよ。頭が無いのか?
819774ワット発電中さん:2011/11/20(日) 20:06:21.59 ID:atPmoceE
4つほどある
820774ワット発電中さん:2011/11/20(日) 20:08:34.57 ID:ZDnJYWF4
俺より多いじゃねーか。俺は2つしか無いぞ
821774ワット発電中さん:2011/11/21(月) 00:18:01.51 ID:iG3euv97
下の頭がわがままなんですね。わかります。
822774ワット発電中さん:2011/11/21(月) 08:07:29.71 ID:qItd6iZM
PICでPORTAのRA0をオンならオフに、オフならオンに変更したいのですが、

MOVF PORTA,TEMP
MOVLW B'00000001'
XORWF TEMP,W
MOVWF PORTA

こんなのしか思い浮かびません。
ただ、これだと他のRA1〜RA7も道連れになるのが気に入りません。

XORを使ってもっと良い方法は無いでしょうか?
823774ワット発電中さん:2011/11/21(月) 08:49:39.99 ID:r9kzrjhk
>>822
道ズレになるのは確かだけど、割り込み処理(があると仮定して)のポート操作と競合しなければ無難かと。
ビット反転命令は・・・無かったよね。たしか。
824774ワット発電中さん:2011/11/21(月) 09:00:07.04 ID:xjTV6TBc
BSF/BCF使っても内部的にはPORTA全体を読んでから書き戻してるんだし、それでいいんじゃない?
F1xxxなら

MOVLW B'00000001'
XORWF LATA,F

MOVLB入れたら4ステートだけど。
825774ワット発電中さん:2011/11/21(月) 09:08:09.70 ID:qItd6iZM
>>823-824

ありがどうございます。

>BSF/BCF使っても内部的にはPORTA全体を読んでから書き戻してるんだし、それでいいんじゃない?

そうでしたか。なら他に方法はなさそうですね。
826774ワット発電中さん:2011/11/21(月) 09:16:54.70 ID:r9kzrjhk
ラッチレジスタが無い状態で、同じポートの他の位置で出力設定になっていると、色々面倒。
ラッチレジスタ使えるなら、>>824 がイイ。
827774ワット発電中さん:2011/11/21(月) 14:48:08.37 ID:PHq9CQ2n
ラッチレジスタが無いならポートを読まずにTEMPをメインにすべき。
828774ワット発電中さん:2011/11/22(火) 21:09:26.41 ID:5NtIG8kF
MPLAB IDEのprojectウインドウにあるBuild AllのしたのMakeって何をするためのものですか?
829774ワット発電中さん:2011/11/22(火) 22:45:00.68 ID:0QtxT6DL
>>822
ラッチレジスタ使わなくていいなら
MOVLW B'00000001'
XORWF PORTA,F
の2行。
830774ワット発電中さん:2011/11/22(火) 23:02:59.53 ID:J8K+SXM2
>>822
「道連れになる」というのが理解できませんでした。
何が問題点となっているのか、教えていただけないでしょうか。
(PICのこと、まだちゃんと理解できてないものでして…)
831774ワット発電中さん:2011/11/23(水) 05:32:13.77 ID:mVCeAK+3
>>828
変更したファイルだけビルドする時に使う
832774ワット発電中さん:2011/11/23(水) 19:23:11.92 ID:pdiXwW+Y
16F1938でタイマー1を水晶発振子で動かそうとしていますが、内部クロックで動作してしまいます。

T1OSOピンとT1OS1Iピンに35KHzの水晶発振子を繋いでいます。
水晶発振子の両足はそれぞれ68PFのコンデンサを経由させてGNDに落しています。

タイマー1のオーバーフロー割り込みが掛かるとRB5をオンオフさせて、オシロでその周期を測定しています。
その結果、1.902Hzとなり、計算するとこれは内部8MHzのクロックでプリスケーラー8で動作しており、
外付けの水晶発振子でカウントアップできていないのです。

そこで、T1CONレジスタのT1OSCEN,T1SYNC,TMR1CSの各ビットを色々と変えながら試しています。
専用発振回路か外部入力(同期)のどちらかの設定だと思うのですが、解説本を読んでも、どちらなのかハッキリ判りませんし、
色々と試してもどれも同じ結果になります。
どのような原因が考えられるでしょうか?
833774ワット発電中さん:2011/11/23(水) 20:09:30.78 ID:DyPWaQQ6
外部入力設定でかつ専用発振回路onになってるのかな
834774ワット発電中さん:2011/11/23(水) 21:54:54.83 ID:pdiXwW+Y
設定はT1CONレジスタで行い
7-6ビット
 10 = Timer1 クロック源にピンまたはオシレータを選択する
  T1OSCEN = 1 の場合:
  T1OSI/T1OSO ピンの水晶振動子
bit 3 T1OSCEN: LP オシレータ イネーブル制御ビット
1 = 専用のTimer1 オシレータ回路を有効にする

データシートを見ると、7-6ビットが未使用ではなくて上記のように追加されていました。
ここにB'00'を設定しておいたので、内部クロックを指定したことになっていました。
あらためて、 T1OSI/T1OSO ピンの水晶振動子にするために、
T1CON レジスタをB'10001011'としました。

しかし、今度はタイマー1がカウントアップされなくなりました。
素直に水晶発振子が動作していないと考えるのが妥当と思います。


ここで、水晶発振子を取り出してクロックを刻むかテスト回路を作りたいのですが、
すみません、どんなものを作れはよいかアドバイス戴けないでしょうか?
835774ワット発電中さん:2011/11/23(水) 22:02:22.92 ID:eh11U6ci
水晶発振子にコンバータと周辺回路を付けて発信させて出力はLEDでいいんじゃないの?
35KHzでも目には判別効かないと思うけど…。
836774ワット発電中さん:2011/11/24(木) 01:03:51.11 ID:6fTir1ym
>>830
PICはPORTの状態を読み出す時、出力設定のピンも
(外部につながっている)ピンの状態をそのまま読み出す。
外につながっている回路によっては、出力バッファの状態とは違う値をとってくる場合がある。

たとえば、PORTAを読み出してPORTAに出力する
 MOVF PORTA,F
だけでPORTAの出力が変わるかもしれないということ。
837774ワット発電中さん:2011/11/24(木) 03:43:40.11 ID:ujsOe6bo
システムクロックを外部クロックのLP オシレータ モードにして問題になっている
35kHz水晶を接続してLEDチカチカプログラムを走らせてみるのが一番確実な発振有無の確認方法のような気がする
個人的には68pFは値が大きすぎる気もする 15p 18p 22p 33pあたりでどうなるか
838774ワット発電中さん:2011/11/24(木) 06:00:59.05 ID:q6I2aBrB
>>836
>>830です。納得しました。
出力の場合でも外の回路によっては違う値を取る場合があること(この場合があるということ)と、
出力命令の動作仕様から、
意図したものと違う出力に切り替わる場合があるということですね。
勉強になりました。お礼申し上げます。

839774ワット発電中さん:2011/11/24(木) 06:02:53.35 ID:q6I2aBrB
>>838です
書いてる途中でミスにより書き込んでしまいました

× (この場合があるということ)
○ (この場合があるということを見落としていました)

連投すみません
840774ワット発電中さん:2011/11/24(木) 11:13:14.96 ID:lhTj9euJ
PIC書込み機持ち歩きたいんですけど、マッチ箱サイズとかたばこサイズでケース入りのライター無い?
841774ワット発電中さん:2011/11/24(木) 13:49:11.49 ID:GloSH7GW
>>840
用途が?だけど、PICkit2とか、実装されているボタンを押せば書き込みできるんじゃなかった?
事前にデータの登録が必要。希望する大きさではないけど、用は足りそう
842774ワット発電中さん:2011/11/24(木) 16:24:36.29 ID:a7ov0hC7
>>840
RCDライターとかどうよ?
シリアルポートじゃないと書込みできないけど
843774ワット発電中さん:2011/11/24(木) 22:15:43.21 ID:6+CyttXV
>>822-823
18Fならビット変転BTG命令あるよ
844774ワット発電中さん:2011/11/25(金) 19:08:51.80 ID:lZjnuyvX
>>837

レスどうもです。
>個人的には68pFは値が大きすぎる気もする 15p 18p 22p 33pあたりでどうなるか

手持ちが無いので週末に秋葉原に行ってみます。
845774ワット発電中さん:2011/11/25(金) 21:50:47.05 ID:rGold2dV
個人的にタイマ1に32kHz水晶付けたのは初期のPIC16F877の頃だけだけど
その時は47pFでうまくいった
PIC16F877のデータシートにはタイマ1外付け水晶のコンデンサ値例が載っていて
32kHzのとき33pF 100kHzのとき15pF 200kHzのとき15pF
となっている
あと手持ちのPIC16F887のクロックモードをLPにして32kHz水晶付けて試したら12pF〜68pHまですべて発振okだった
PIC16F887のタイマ1では試してない(ブレッドボード配線になってしまうから)
PIC16F1xxxは持ってないから試せない
846ご教授願います:2011/11/25(金) 23:41:41.53 ID:os6AAbXe
仕様している参考書に、
「I/Oピンがアナログ入力モードになっていると、I/Oピンの電圧はHレベルでも0と読まれてしまう」
と書いています。
現在、PIC16F688にて、RA0をアナログ入力ピンに設定しそこにLM35DZを繋いで電圧を入力しているのですが、
この入力は常に0になってしまうということでしょうか?
847774ワット発電中さん:2011/11/25(金) 23:58:48.38 ID:28UuHbP5
>>846
データーシート読もうぜw

16F688のI/O PINのブロックダイアグラムを見るとA/Dコンバーターへはそのまま接続されていますが
ポート入力は、インプットラッチの手前にANDゲートがあってアナログ入力モードだと強制ゼロになるようになってます

つまりアナログ入力モードのPINは
A/Dで読めばアナログ値が読め、ポートを読むとゼロが読めるということです
848774ワット発電中さん:2011/11/26(土) 20:48:18.95 ID:DFp0eMtH
ブロックダイアグラムってそうやって読むのか
849774ワット発電中さん:2011/11/26(土) 20:52:00.68 ID:hjtkZwyA
仕様書など文章で書かれているとなかなか伝わりにくいけど図示するとすっきり理解される好例だね。
850774ワット発電中さん:2011/11/26(土) 21:07:55.75 ID:DFp0eMtH
>>832

>T1OSOピンとT1OS1Iピンに35KHzの水晶発振子を繋いでいます

データシート見ると、

>専用の32.768 kHz 低消費電力オシレータ回路が、
>T1OSI ( 入力) とT1OSO ( アンプ出力) の間に内蔵さ
>れています。この内部回路は、外付けの32.768 kHz 水
>晶振動子と使います。

と書かれているので、35kHzではだめかもよ?
851774ワット発電中さん:2011/11/26(土) 21:43:23.75 ID:UpIGxdIR
32Kで動いて35Kで動かない、そんなタイトな回路を想像できないな
852774ワット発電中さん:2011/11/26(土) 22:50:37.20 ID:uCRRAQir
PIC16D193Xのデータシートには
>LP オシレータ モードでは、内部インバータ アンプ
>のゲインが最も低く設定されます。3 つのモードの
>うち、消費電流が最も少ないのがこのモードです。
>このモードは、32.768 kHz の音叉型水晶振動子( 時
>計用水晶振動子) の駆動専用に設計されています
とありtimer1のオシレーター回路も同じだと類推すれば
発振回路にとっての負荷として特性が時計用水晶振動子
と大きく違うとまずいということはあるかもね
発振周波数の違いと言うより
853774ワット発電中さん:2011/11/26(土) 22:51:21.43 ID:uCRRAQir
PIC16F193X
854774ワット発電中さん:2011/11/27(日) 00:42:51.60 ID:BSu89EIB
>>847
ご説明ありがとうございます。おかげさまで理解できました。
855774ワット発電中さん:2011/11/27(日) 00:48:51.43 ID:BSu89EIB
連投失礼します。
PIC16F688でAD返還後、ADRESHとADRESLに格納された値を10進数に直す計算式を調べていたところ、
work=(ADRESH*256)+ADRESL;
work=(work *500)/1024;
work=work/5;
という式をみつけたのですが、どうしてこの式で10進数に変換できるのかが理解できません。
work=(ADRESH*256)+ADRESL;は、ADRESHの値を右に格納しているということだけはわかるのですが・・・
856774ワット発電中さん:2011/11/27(日) 01:46:59.93 ID:PrXIqN/x
例えばA/D変換値1023(10進数)は1111111111(2進数)あるいは3FF(16進数)と表現することもできる
3FF(16進数)=(3*16^2+15*16+15)(10進数)=1023(10進数)
となる
16^2(10進数)=256(10進数)
である
A/D変換値1023は ADRESH=3(16進数) ADRESL=FF(16進数)と8bitずつに分離格納されているから
そのままでは扱いにくい
work=(ADRESH*256)+ADRESL;
とすれば10bitの値として扱えるようになる
いってみればこの式のみが「10進数に直す計算式」なのでは?

work=(work *500)/1024;
work=work/5;
の2式は基準電圧が電源電圧の5Vで
それに関しての変換式のように見えるがよくわからない
857774ワット発電中さん:2011/11/27(日) 02:31:12.01 ID:BSu89EIB
>>856
レスありがとうございます。
work=(ADRESH*256)+ADRESL; で10進数になっているというのはわかりました。
この式の引用元には、LM35DZの出力をPIC16F688でAD変換後、変換データを室温(気温)に戻すと書いていました。
work=(work *500)/1024;
work=work/5;
この二つの式は、work=(ADRESH*256)+ADRESL;で0〜1023の10進数に直したあと、
室温に変換するための式ということでしょうか?

私の知識不足でわかりづらい説明、質問になってしまい申し訳ありません。
858774ワット発電中さん:2011/11/27(日) 03:06:33.24 ID:PrXIqN/x
work=(ADRESH*256)+ADRESL;
基準電圧が5Vなら5V*(work/1024)でA/D変換値から電圧値(V単位)が計算できるから
work=(work *500)/1024;
は整数演算の精度を考慮して計算の順番を入れ替えていたり
5Vを値500に見立てているだけで本質的にはこの式のみで電圧値への変換は完了している
LM35DZは出力電圧1Vのとき100℃だから
100℃のときのA/D変換値は(1V/5V)*1024=205
work=(work *500)/1024;
に代入すると
work=(205 *500)/1024=100
となって温度の値になっている
だから最後の
work=work/5;
は余計と思われる
859774ワット発電中さん:2011/11/27(日) 03:08:19.86 ID:ICWLT1qF
ちょっと式を変形して

work=(work*1000)/1024
work=work/10

と書けば、意味がわかるかな?
860774ワット発電中さん:2011/11/27(日) 03:13:14.64 ID:PrXIqN/x
基準電圧が1Vなら計算精度のために500で計算して最後に5で割ったという解釈もできるか
861774ワット発電中さん:2011/11/27(日) 03:20:46.92 ID:AKgqSuBo
ま、このクラスのマイコンで割り算を安易に使うのは
Cしか出来ない℃素人って事を曝け出してると解釈するべきだな。
862774ワット発電中さん:2011/11/27(日) 03:34:58.85 ID:PrXIqN/x
まあそれは次のステップだろう 変数や定数の型とかもね
863774ワット発電中さん:2011/11/27(日) 10:43:50.47 ID:kg40AB9s
16F873でRB4をプルアップ設定にしてタクトスイッチをGND間に接続しています。
このボタンを押したときにリセットが掛かってしまいます。(正確にはリセットというより誤作動して0番地から再スタートするという印象)
INTCONレジスタはCLRFですべて0にしましたが同じように誤作動しました。
何が原因でしょうか?
864774ワット発電中さん:2011/11/27(日) 11:25:41.58 ID:Lz+tFI6p
RB4が出力になっているってことはないよな

ポートが正しく設定されているとして…
タクトスイッチを押したときにRB4のPINがGND電位にしっかり落ちているかどうか?
中途半端な電圧だと貫通電流で誤動作起こすこともある
865774ワット発電中さん:2011/11/27(日) 12:00:10.82 ID:ShG1m2mK
>>863
RB4を出力に設定していましたぁ。
という落ちでしょう。
866774ワット発電中さん:2011/11/27(日) 13:36:45.82 ID:XLl1ZsCF
>>861
なんで割り算を安易に使ってはいけないんですか?
桁あふれしてしまうからでしょうか?
867774ワット発電中さん:2011/11/27(日) 13:55:47.15 ID:b3i0/dhn
有限桁の整数演算だからだよ。
掛けたり割ったりすると、簡単にデータが無くなってしまう。
割り算なら余りを捨ててしまうからだね。
868774ワット発電中さん:2011/11/27(日) 13:57:17.49 ID:b3i0/dhn
割り算は遅いという問題もあるね。
869774ワット発電中さん:2011/11/27(日) 14:51:10.90 ID:mG49AKuk
>>866
使えばいいよ。
使ってはいけないと言う方がおかしい。

「マイコンで、C言語で、フロートによる割り算」の弊害は、
   計算に時間がかかる
それだけです。
上手に使い分けすればいいだけです。

floatにするので、RAMを多少食います。
が、繰り返し計算が多いだけですので、ROMはさほど喰いません。

使い分けの出来ない人が、盲目的に「割り算はダメ」って言ってるに過ぎません。
胸を張って使えばいいです。
870774ワット発電中さん:2011/11/27(日) 14:53:55.86 ID:Drd/hoiM
>>866
掛け算、割り算は、シフト演算子でなんとかならないか、まず考えよう。

ボクの作ったサーボシステムのゲインは x8 x4 x2 x1 x0.5 *0.25 *0.125
でしか設定できない様にしている。えっへん。
871774ワット発電中さん:2011/11/27(日) 14:57:40.04 ID:QmCSmISL
今は、そんなに意識せずに使ってもよくなってきてるよね
もちろん、ROM, RAMがぎりぎりというハード的制約がかかってきた
時は考えないといかんだろうけど
速度的にも問題なく、余裕が有るのなら使えるものは使ったほうがいい
872774ワット発電中さん:2011/11/27(日) 17:06:52.45 ID:rOqb6FsO
もう32bitでも値差ねーべよ
873774ワット発電中さん:2011/11/27(日) 17:22:10.27 ID:mG49AKuk
>>870
そんなことでドヤ顔されても困る。
x8 x4 x2 x1 x0.5 *0.25 *0.125 などの2のn乗で済む場合はいいけど、
1-2-5シーケンスの場合だったらどうするよ?
あるいは、AD1の結果/AD2の結果 とか。
マイコンの制御上では2のn乗で済む場合も多々あるけど、
人間とのI/Fでは、ほとんど通用しない。

874774ワット発電中さん:2011/11/27(日) 17:26:49.33 ID:b3i0/dhn
まあ、余裕があるつもりで使って後からどうしようもなくなるというのもあるからね。
875774ワット発電中さん:2011/11/27(日) 17:33:54.15 ID:81BMyV0/
>>866
かまっちゃ駄目だってw

それはともかく「桁あふれ」は論外。開発言語に限らず演算途中でのオーバーフロー
は駄目でしょ。ってか「桁あふれしてしまう」と思った要因が知りたいところ。
876774ワット発電中さん:2011/11/27(日) 18:14:30.67 ID:XPy5YPM9
昔のカメラのシャッタースピードみたいに、
実は128分の1秒だけど 125 と書いてあげれば
まあなんとかなる……場合もあるでしょ。
877774ワット発電中さん:2011/11/27(日) 18:25:55.84 ID:mG49AKuk
>>876
でも、それは「ウソ」なんだよね。
嘘はだめでしょ。
878774ワット発電中さん:2011/11/27(日) 18:30:34.06 ID:4OyebMPX
誤差であってウソではないな
879774ワット発電中さん:2011/11/27(日) 19:54:05.33 ID:NhWS6pXV
除算は特に遅いから、誤差が許せる範囲で近似して、何か掛けてから2^nで割る。
定数乗算は大したことないし、乗算器付きのPICもあるので合理的。
32bitマイコンでも除算器がないのはよくあるから割と高性能マイコンでも良く使うテク。
例:a/5≒a*51/256(256で除すのはバイト単位なのでシフト演算すらいらない)

>>878
意図せず生ずるものは誤差でいいけど
最初からわかってて設計してるのは果たして…
880774ワット発電中さん:2011/11/27(日) 21:51:37.40 ID:Xpuk3Bs5
いずれにせよ、コンパイラが生成するコードを見て判断できるレベルの奴が、
自分で見て判断してやればいいことだ。
つまらんことしてわかりづらいコードにしてバグ入れ込んだら元も子もない。

定数での除算を固定小数点風の乗算にする、とかはコンパイラがやってくれる
最適化として最近はあたりまえになりつつあるしな。
881774ワット発電中さん:2011/11/27(日) 22:13:17.06 ID:dVhGgKvy
>>858様 >>859
詳しいご説明ありがとうございます。
おかげさまで理解することができました。
882774ワット発電中さん:2011/11/27(日) 22:51:15.48 ID:98CN5Jla
初書き込みです。
USB実装のPIC18を使用してAD変換を通して回路の電圧をPC上に表示しようとしてるのですが、オススメの参考書などございましたら教えて頂けませんでしょうか。ちなみにC++を使用しています。
883774ワット発電中さん:2011/11/27(日) 23:15:33.54 ID:sb/6Hxtf
>>879
>意図せず生ずるものは誤差でいいけど
>最初からわかってて設計してるのは果たして…

シリアルの通信速度なんかだと、クロックを何分周すれば誤差がどれだけだからOK…
みたいな設計をしますよね?
それって何か問題なんですか?
884774ワット発電中さん:2011/11/27(日) 23:16:49.01 ID:XCd/o3N7
実数割り算ルーチンが組み込まれるとコンパイルできなくなる
885866:2011/11/28(月) 00:45:48.76 ID:4MAlDInr
なるほど、演算に時間がかかってしまうのと、誤差が生じてしまうため
避けた方が良いということですね。勉強になります。
>>875
なぜ桁あふれにいたったか>
存在しないとは思いますが、10bitまで計算できるけど表示(保持)できるのは8bitまで
というマイコンがあったとしたら、符号とかでもバグになるんじゃないかなーと思ったので
例えば、15/7=2.1428571なのか、
          0.042857142なのか
とか。もしかしたら、4.2857142とかにもなってしまうんじゃないかなーと、素人は考えました。
886774ワット発電中さん:2011/11/28(月) 01:11:04.00 ID:ZP6xmMRW
>>885
15/7=2 だね。
整数演算だから小数点以下は切り捨てだよ。
浮動小数点演算は、メモリ食いで遅いから本当に必要でなければ使わないね。
887774ワット発電中さん:2011/11/28(月) 01:36:50.04 ID:4MAlDInr
>>886
ありがとうございます。そういえばMPLABでクロックに小数点を使った時に変な色になりました。
デバッグでは反映されているのに、実行してみると何も変化していない様な気がしたんですよ。
まぁ、人間が認識できる速さのレベルなんてたがが知れてるとは思いますが、納得しました。
888774ワット発電中さん:2011/11/28(月) 01:38:14.30 ID:1jolZKnh
>>878
>誤差であってウソではないな
それはいかんだろ、設計的に知っていてやるのは。

>>880の言う通り
>つまらんことしてわかりづらいコードにしてバグ入れ込んだら元も子もない。
この一言に尽きる。

定数の割り算なら、事前に逆数の乗算にできるけど、
float A = AD値1 / AD値2 というときは、そうも行かない。
結局floatを使って割り算するしかない。
889774ワット発電中さん:2011/11/28(月) 02:50:27.90 ID:1jolZKnh
思い出した。
昔、デジタル燃費計を作ったときに、結局割り算を使ったんだ。
323km / 27L とか 分母がドンドン変化していくので、困った。
890774ワット発電中さん:2011/11/28(月) 03:37:52.59 ID:71gOZq7R
ノウハウとして、割り算せずに済むならできるだけしない方がいいよねって話なだけで
決して割り算なんてやってはダメなんて誰も言ってない
割り算でしか解決できない問題を取り上げて「ほら割り算いるだろ(ドヤ」って言われてもねぇ・・・
891774ワット発電中さん:2011/11/28(月) 04:17:48.61 ID:kYFJrFED
>>888
>>889
>float A = AD値1 / AD値2 というときは、そうも行かない。
>結局floatを使って割り算するしかない。

もうちょっと勉強した方が良いと思う。
892774ワット発電中さん:2011/11/28(月) 18:54:23.89 ID:ZP6xmMRW
浮動小数点演算を使う前に固定小数点演算が使えるか考えた方がよいと思う。
893774ワット発電中さん:2011/11/28(月) 18:59:55.36 ID:mzcRjwqW
固定小数点演算のライブラリが見つかりませんって言われるぞ
894774ワット発電中さん:2011/11/28(月) 19:19:53.32 ID:4qg/MGPE
PIC使ってさ本当にfloatが必要な時ってどんなとき?
895774ワット発電中さん:2011/11/28(月) 19:30:52.98 ID:mzcRjwqW
ロボ制御でクォータニオンを扱うとき
896774ワット発電中さん:2011/11/28(月) 20:13:32.05 ID:0mvHrqtd
897774ワット発電中さん:2011/11/28(月) 21:49:52.90 ID:0Qzx5CHf
>>845>>850-852

32kHzの水晶発振子で動作しました。
レジスタの設定も色々とありデータシートを何度も見ることになりました。
日本語のデータシートでなければきっと理解できなかったと思います。
最後に35kHzでも試しましたが、やはりダメでした。

ちなみに、コンデンサは15pFと68pFの両方で試してどちらも動作しました。
直列抵抗は無しです。

亀レスになりましたが、皆様ありがとうございました。
898774ワット発電中さん:2011/11/28(月) 22:29:56.10 ID:ZP6xmMRW
固定小数点演算は四則演算だけなら特別なものはいらないよ。
任意の桁に小数点があるものとして計算するだけだからね。
899774ワット発電中さん:2011/11/28(月) 22:53:20.50 ID:FCVLrEz4
>>896
ありがとうございます。参考にさせていただきます。
900774ワット発電中さん:2011/11/28(月) 23:34:07.64 ID:BQX0RRMX
LEDつなげるときとか時抵抗ってまとめちゃっていいんですか?
http://www.rupan.net/uploader/download/1322490780.jpg
901774ワット発電中さん:2011/11/28(月) 23:50:31.20 ID:HhM1Ma4Q
>>900
マルチ乙
902774ワット発電中さん:2011/11/28(月) 23:52:40.92 ID:C1ZJ/QcU
3個同時点灯なら大きく間違ってはいない
個別点灯でも点灯/消灯が何かの情報を表現しているなら点灯個数によって各LEDの点灯時の明るさが変化するだけで害はない

各LEDの印加電圧/電流特性が同じなら抵抗が共通でも
それぞれに流れる電流は3等分されるから互いに同じ明るさで点灯することが期待できる
でも実際は各LEDの印加電圧/電流特性が互いに少し違うから
多目に電流が流れるLEDは明るめに点き少な目に電流が流れるLEDは暗めに点くことになる
それを気にするかどうかの問題だ
903774ワット発電中さん:2011/11/28(月) 23:54:55.84 ID:BQX0RRMX
複数のスレに同時に書き込むのがマナー違反だって今知ったスマン
904774ワット発電中さん:2011/11/28(月) 23:58:23.40 ID:BQX0RRMX
>>902
回答ありがとうございます。確かに作っててLEDの明るさが変わるなぁとは思っていました。
ではスイッチの場合はまとめてもいいんですか?
905774ワット発電中さん:2011/11/29(火) 00:05:02.46 ID:6fOAvOlo
電子工作入門者・初心者の集うスレ 37こっちに移ります
906774ワット発電中さん:2011/11/29(火) 00:07:09.01 ID:gOlC8HUW
一端がGNDに接続されたスイッチと
一端が電源電圧に接続された抵抗とを直列接続し
その接続点の状態をマイコンのポートで読みとる場合のことを行っているのであれば
複数のスイッチで抵抗を共通化すると
マイコンから見れば
1つのスイッチがONされると
複数のスイッチ全てがONされたということになる
つまり各スイッチのON/OFFを見分けられない
複数のスイッチのどれか1つでも押されたらマイコンが1つの動作をする
という目的ならそれでも良いだろう
907774ワット発電中さん:2011/11/29(火) 00:11:24.14 ID:6fOAvOlo
>>906
確かにww今考えたらそうでした。アホな質問してすみませんでした
908774ワット発電中さん:2011/11/29(火) 00:14:54.63 ID:6fOAvOlo
でも行けそうな気もするかも?
http://www.rupan.net/uploader/download/1322493247.jpg
909774ワット発電中さん:2011/11/29(火) 00:25:28.94 ID:gOlC8HUW
3つのポートはそれぞれ入力に設定されていて
ポートの状態を読むのなら
各スイッチがOFFのときは各ポートは高インピーダンスで不確定なポートの状態を読むことになる
各スイッチがONのときは各ポートは状態「GND」を確実に検出することができる
でも各スイッチがOFFのときは各ポートは高インピーダンスで不確定なポートの状態だからスイッチONと検出されたりOFFと検出されたりする
スイッチがONされていないのにスイッチONと検出されても良い用途ならそれでも良いだろう


マイコンには入力ポートの内部プルアップ機能を持っているものがあるから利用できるならそれを利用するのが簡単確実だろう
910774ワット発電中さん:2011/11/29(火) 00:28:17.34 ID:l9oGRb9C
マルチポストがマナー違反だとなってるけど、あるスレにポストしてレスがなければ他のスレにポスト
したくなるのもわかる。私的にはだいたいポストから12時間以内にレスがなかった場合、それスレでは
回答は得られないと判断するが、他の人はそのあたりどのような基準をもってるのかな?
911774ワット発電中さん:2011/11/29(火) 00:35:41.28 ID:6fOAvOlo
ではプルアップ抵抗をまとめることは出来ますか
912774ワット発電中さん:2011/11/29(火) 01:12:28.32 ID:nokPmCv3
出来る訳ないだろ
913774ワット発電中さん:2011/11/29(火) 04:01:05.35 ID:U9TbACld
>>910
質問者が似たようなスレと思うようなスレは、同じ人が見ている可能性が
高いから、スレを変えても結果は同じでマルチポストだと思う。
914774ワット発電中さん:2011/11/29(火) 06:02:42.53 ID:3BbZzq5s
>>911
出来るよ。意図した様に動かないかも試練が
915774ワット発電中さん:2011/11/29(火) 09:14:29.89 ID:DKX4+cd7
>>910
12時間って、それより長い周期でしか見てない人もいるでしょ。
他のスレ行くなら質問閉じてからね。
916774ワット発電中さん:2011/11/29(火) 10:12:10.43 ID:/PabBcz1
>>911
8個とかまとまったやつがあるよね
何て言ったっけ?集合抵抗?
917774ワット発電中さん:2011/11/29(火) 10:46:05.18 ID:VOlsCJfz
>>908
これでok?って何がokなんだ?
その抵抗は何を意図して入れてる?
918774ワット発電中さん:2011/11/29(火) 10:49:20.07 ID:unAdWP7/
919774ワット発電中さん:2011/11/29(火) 11:08:06.67 ID:mLG+9uZc
>>911
「毎日似たような食事しかしてないんだろ?週1回にまとめろ」
920774ワット発電中さん:2011/11/29(火) 11:50:01.06 ID:DGwwdHPE
16F84Aひとつでふたつの周波数を同時にカウントする事って出来ます?出来なければふたつ乗せれば行けますか?
921774ワット発電中さん:2011/11/29(火) 12:13:27.39 ID:VOlsCJfz
遅い周波数ならポートの変化する時間を測れば入力ポートの数だけ周波数を測れるよ

周波数カウンタが欲しいなら秋月に売ってる1000円くらいのテスターに
10Hz〜10MHz測れる奴があるから2個買えばいい
922のうし:2011/11/29(火) 13:41:40.86 ID:QpbzUas4
こぉいった
http://kamome.2ch.net/test/read.cgi/denki/1320843130/295-

オルゴールなんかをやるライブラリとかはないのかな?
昔あったAY−xxxxなんかみたいに音階や休符を簡単なコードにして曲を効率よく格納かつ扱いやすいやつ。

あと伴奏で付けれるのとか。たしか二部にするにはその(演奏)二つ単純にEX-ORして出力すればいいとか聞いたけど。
923774ワット発電中さん:2011/11/29(火) 14:46:27.02 ID:HQzMsrud
AY-ほげほげに、MMLを解釈するなんていう高度な機能を持ってるなんてものがあるのか?
924774ワット発電中さん:2011/11/29(火) 15:01:54.86 ID:unAdWP7/
AY-xxxxって、PSGのシリーズのことかしら?
MML(のようなコード)をレジスタに投げるカタチにする埋め込みソースコード(ライブラリ)のことじゃないかしら?
EX-ORで混ぜられる音情報って何かしら?
925922:2011/11/29(火) 15:09:08.30 ID:QpbzUas4
PIC10F200にYMZ294
http://m.youtube.com/watch?gl=JP&hl=ja&client=mv-google&v=CTc1Oj7WsFY

のエミュレートができそうな‥ 音量指定は無理そうだけど。
どかな?
926774ワット発電中さん:2011/11/29(火) 15:09:11.26 ID:/PabBcz1
せめてFM音源にしようぜ
927925:2011/11/29(火) 15:11:10.83 ID:QpbzUas4
dsPICにそのライブラリはあるの? 実現はできそうだけど。
928774ワット発電中さん:2011/11/29(火) 15:38:44.57 ID:OV5L4Wz5
3和音のFM音源なら実現した例があるみたいよ
929927:2011/11/29(火) 15:42:44.03 ID:QpbzUas4
たしか32和音なんての
http://2chnull.info/r/denki/1195915863/

だかのどっかにあったな。
930774ワット発電中さん:2011/11/29(火) 19:05:53.45 ID:YUP4vH6S
MOVWFとかDECFSZとか1つ押しただけで出るような専用のキーボードみたいなのってありますか?
931774ワット発電中さん:2011/11/29(火) 19:28:48.43 ID:OV5L4Wz5
キーに文字列も割り当てられるプログラマブルキーボードとかプログラマブルテンキーとかあるな
932774ワット発電中さん:2011/11/29(火) 20:16:00.54 ID:aDlg3w+m
そういうキーボードをPICで
933774ワット発電中さん:2011/11/29(火) 20:31:31.80 ID:/rQleL/h
CCS-C(Ver4.120)を用い、PIC16F1939でEEPROMの初期値を定義しようとしています。
しかし、開始番地をどのようにしたら良いか分からず困っています。

例えば16F877の場合は→ #rom 0x2100={0x01}
18F系の場合は→ #rom 0xf00000={0x01}

のように定義してできたのですが、16F1939ではどちらもダメでした。
あてずっぽで、0x4100とか0x8100とか色々試したのですがやっぱりできませんでした。
(コンパイルは通るのですが、PICkit2で読込み時に警告出ます)

どなたかご存じの方はおられませんでしょうか?
934774ワット発電中さん:2011/11/29(火) 20:44:37.52 ID:sBIQi/7D
おい、秋月から格安のアンドロイドのアクセサリー開発基板が発売されたぞ。
7000円で、しかもPICkit3付きだぞ。
http://akizukidenshi.com/catalog/g/gM-05308/

基板の詳細は、下記だわ。
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en553673
935774ワット発電中さん:2011/11/29(火) 20:48:28.97 ID:VOlsCJfz
PICkit"は確か標準では16F19XXや16F18XXには対応してなかったはず
書きこむにはマイクロチップのサイトからデバイスファイルを落とす必要があったかな
936774ワット発電中さん:2011/11/29(火) 20:50:36.96 ID:b7ghICne
PIC16F193X/LF193X/PIC16F194X/LF194X/PIC16LF190X Memory Programming Specificationを見ると
.hexファイルの1E000h-1E1FFhにマップされるって書いてある
CCS-Cでどうだかは使ってないのでわかんない
937774ワット発電中さん:2011/11/29(火) 20:52:10.70 ID:9qRus8N1
アンドロイドってなんでょう?なにかのパワーアップアイテムとか?
938774ワット発電中さん:2011/11/29(火) 21:07:00.46 ID:9qRus8N1
任意の数の掛け算や割り算が出来るサブルーチンを以前何処かのサイトで見たのですが、
ご存知の方いませんか?
939774ワット発電中さん:2011/11/29(火) 22:01:22.58 ID:mTtQK/ry
『1かけて2かけて3かけて4(し)かけたオ××はやめられない!』
『5かけて6かけて7かけて8(やっ)ぱり×××やめられない!』
『9かけて10かけて11ィかけて12(とに)かく×××やめられない!ア、痛かった!!!』
940774ワット発電中さん:2011/11/29(火) 22:10:43.60 ID:YUP4vH6S
>>931-932
そういうテンキーがあるならそれを改造するかPICで自作ですかね

>>938
http://www4.zero.ad.jp/electronics/pic/pic.html
ここかな
941774ワット発電中さん:2011/11/29(火) 23:30:19.92 ID:EOpKPv9m
自作RCDライタとWinPicで(高電圧)書き込みはおこなえています。
秋月ライタで確認すると、確かに正しく最後まで書き込みはおこなえています。
しかし、読み込みができません。
正確に言うと表面上正常に読み込めるのですが、値が全部FFです。

書き込みができるんですから、何か簡単な間違いじゃないかと思ってるんですが、
何かヒントはありませんか?
読み込み中のVDDは4.9Vで一定しています。
まずどこをチェックすればいいですか?
942774ワット発電中さん:2011/11/29(火) 23:41:19.62 ID:VOlsCJfz
書き込んだPICは正常に動作するんかね?
943774ワット発電中さん:2011/11/29(火) 23:45:36.82 ID:gOlC8HUW
全部3FFFじゃなくて全部FFだからEEPROMを読み出してるとか
944774ワット発電中さん:2011/11/29(火) 23:47:27.41 ID:EOpKPv9m
>>942
これでその部分は既に明らかにしています。
>秋月ライタで確認すると、確かに正しく最後まで書き込みはおこなえています。
945774ワット発電中さん:2011/11/29(火) 23:48:42.81 ID:CRNszKeE
>>944
なにその口調
946774ワット発電中さん:2011/11/30(水) 00:00:35.60 ID:EOpKPv9m
>>941ですが、
ハード面の製作不良だと仮定して、
書き込みOK、読み込み駄目の理屈を推測して頂けませんか
947774ワット発電中さん:2011/11/30(水) 00:07:29.49 ID:0y3qkNXM
答え
自作RCDライタが不安定

以上w
948774ワット発電中さん:2011/11/30(水) 00:08:54.10 ID:ONFEU8nQ
じゃあ俺もその答えでいいやw
949774ワット発電中さん:2011/11/30(水) 00:19:02.60 ID:mKiPpDBF
>>945
屈折してますね。さすがこんなレスに常駐している方です。

あと、さっきは>>942へのレスの内容が不適切でした。

あらためて適切なレスをしておきます。
>>942
あなたはファイルをバックアップしてベリファイに成功していても全然安心できない性格なんでしょうね。
コピーしたファイルを全部開いて自分の目で中身を全て確認しないと全く安心できない性格なんでしょうね。

iPodに音楽を持ちだしても、本当に持ち出しに成功していると信じられないんでしょうね。
全曲実際に聴くまでは信じられないんでしょうね。

それくらい>>942は的外れなレスです。
950774ワット発電中さん:2011/11/30(水) 00:21:52.37 ID:y0EyaelY
+ ;
* ☆_+
: , xヾ:、__,..-‐‐:、、,へ.........._
         く '´::::::::::::::::ヽ
          /0:::::::::::::::::::::::',     みんな逃げてー
       =  {o:::::::: :( ´Д`):::}
         ':,:::::::::::つ:::::::つ
      =   ヽ、__;;;;::/
           し"~(__)
951774ワット発電中さん:2011/11/30(水) 00:26:45.64 ID:XlYrQddD
キャーキャー!
952774ワット発電中さん:2011/11/30(水) 00:27:09.32 ID:OY0sC3W+
funabashiさん並の良キャラ
953774ワット発電中さん:2011/11/30(水) 00:28:27.07 ID:ro2bVe1M
突っ込みどころあるがヒントになりそうだから言わないでおこうw
954774ワット発電中さん:2011/11/30(水) 00:33:00.04 ID:sq+EN3Ew
>>946
コードプロテクトされているような気がする。
955774ワット発電中さん:2011/11/30(水) 00:34:13.53 ID:ONFEU8nQ
941様がそんな初歩的なミスをするはずがないだろうw
956774ワット発電中さん:2011/11/30(水) 00:37:57.79 ID:0y3qkNXM
書けてんなら読めなくてもいいじゃんw

つーか、きっとあそこがあれなんだろうなとは思う
957774ワット発電中さん:2011/11/30(水) 00:43:08.86 ID:ONFEU8nQ
RCDライタの構造からするとまあ推測はできるわな

>>946
注文通り推測したぜw
958774ワット発電中さん:2011/11/30(水) 00:50:05.14 ID:OY0sC3W+
書けたプログラム通りに動作するなら読める必要なんてないよね
CDRに音楽データ焼いて再生してみてちゃんと聴けたらそれでいいわけで
CDRに記録されたデータをデータ列として確認するなんて無意味なのと同じだよ
959774ワット発電中さん:2011/11/30(水) 01:03:11.70 ID:/d9XHIu0
書けるけど読めないなら、CTS線の配線間違いくらいじゃない?
960774ワット発電中さん:2011/11/30(水) 01:12:38.08 ID:0y3qkNXM
おいおいw
そんな簡単なことは言うまでもないだろう
961774ワット発電中さん:2011/11/30(水) 01:19:39.69 ID:GySj7ldV
MPLAB X IDE(beta)使ってる人いる?
さっき使ってみたけど、まずまずじゃないかと個人的に思う
何よりもMacからも普通に書き込めたのがちょっと感動
962774ワット発電中さん:2011/11/30(水) 07:26:46.91 ID:rDjQK+TX
秋月ライタで確認しただけで正常動作したとは書いていない

きっと屈折している者の一人です

秋月ライタも不安定
963774ワット発電中さん:2011/11/30(水) 15:41:13.59 ID:ONFEU8nQ
屈折していたCTSの配線は直ったのだろうか
964774ワット発電中さん:2011/11/30(水) 17:38:35.27 ID:flxDXigY
10f222用にcvasm16でアセンブラしようとしてるんですが
"use of unknow symbol _INTRC_OSC_NOCLKOUT"と表示されてアセンブラできません

解決策ごさいませんか?
965774ワット発電中さん:2011/11/30(水) 18:00:13.57 ID:aXjHQSG+
>>964 質問に答えが書いてあるじゃないか
"_INTRC_OSC_NOCLKOUTという未定義のシンボルを使っている"と表示されてアセンブラできません

1.使っちゃいけないシンボルを使ってるから使うのをやめる
2.使えるはずのシンボルが定義されていないバグがあるから、自分で定義する
3.その他イロイロ

アセンブラだからトラブルを回避するのに困るようなことはないでしょ
966774ワット発電中さん:2011/11/30(水) 18:06:31.04 ID:flxDXigY
>>965
落ち着いて考えてみればそうですね
ありがとうございます そしてスレ汚し失礼しました
967933:2011/11/30(水) 18:42:14.38 ID:T/750XDm
>>935
>>936
アドバイスありがとう!
なるほど、確かにMemory Programming Specificationっていう別資料に書いてますね。
とりあえず #rom 0x01E000={0x01} とやって試してみましたがまだダメでした。
もうちょっと調べてから報告します。(もしもコンパイラのバグだったら泣く;)
968774ワット発電中さん:2011/11/30(水) 18:43:04.96 ID:lF7OdYyB
ライタが調子悪いので買おうと思って秋月のページを見ているのですが、
PicKitが無難かなと思って見ているのですが、ICのソケットはどうなっていますか?
秋月プログラマーにはソケットがありますが、PicKitはどうやってICをつなぎますか?
969774ワット発電中さん:2011/11/30(水) 18:59:46.95 ID:OIyXx3yc
ハンダ付け
970774ワット発電中さん:2011/11/30(水) 19:09:55.19 ID:aXjHQSG+
>>968
www.picfun.com/PICkit2/PICkit02.html
971774ワット発電中さん:2011/11/30(水) 19:13:59.95 ID:U1ECCrh/
>>967
EEPROMのアドレスはコードメモリのワードアドレス単位で指定するから、
.hexファイルでのアドレス1E000hは、コードメモリでは1ビットずれた0xF000に対応するはず。
972774ワット発電中さん:2011/11/30(水) 19:17:25.56 ID:rS9CmNw4
>>970
よくわかりました!
973933:2011/11/30(水) 19:21:05.12 ID:T/750XDm
>>971
うわぁ!
#rom 0xF000={0x01} としたら16F1939のEEPROMに書き込めました!
ありがとうございました。もっと勉強します。
974774ワット発電中さん:2011/11/30(水) 19:53:29.36 ID:/d9XHIu0
>>968
ICソケットなんて必要ないじゃん
基板にICSP用のピンヘッダを立てておくとか、電線で直接繋げばいいよhttp://kyoutan.jpn.org/uts/za/za110312_0.jpg

そうすれば、プログラムを書き換えるたびにマイコンを抜き差しする必要がない
975774ワット発電中さん:2011/11/30(水) 21:31:38.74 ID:PHXYty/l
>974
静電容量が絡んでなけりゃな。
976774ワット発電中さん:2011/12/01(木) 00:56:20.30 ID:U07f1raa
PIC16F1xxx使いたくて
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.83
を877 887とかで試したら今まで俺が使っていたコンパイラ(Grich社製コンパイラ)より高性能じゃないか!
最適化省かれてるのに
ふざけるな!
977774ワット発電中さん:2011/12/01(木) 09:04:18.51 ID:nrrUN6IA
>>976
HI-TECH Lite版は最適化省かれるどころか、差し障りのない命令が加わってるよ。重く大きくなる感じ。
そのLite版がGrich社製より高性能って、Grich社製が気になる
978774ワット発電中さん:2011/12/01(木) 09:48:44.09 ID:GL5t9B2p
何気なく書いた割り算とかが、シフトやANDに置き換わってると、
おお、と思う
979774ワット発電中さん:2011/12/01(木) 10:21:13.39 ID:QUYewk+T
HI-TECH C の Lite 版はひどいぞ
分岐に無駄なGOTOを追加してサイクル数とプログラムメモリを無駄に消費しやがる
最適化がないだけならいいけど、無駄なコード入れられるのはちょっと…

CCS@16FやC18評価版だと逆アセンブルリスト見ながら人力で最適化して
ある程度タイミングクリティカルなプログラムもCで書けるけど、
Hi-Techじゃ無理だw
980774ワット発電中さん:2011/12/01(木) 11:13:32.20 ID:OVgN1zob
>>979
無料の意味分かるのか?
無償提供に文句を言ったって無駄。
購入すれば問題の無い事。
最適化されなくてもうまく使えばアセンブラより生産性高い。
981774ワット発電中さん:2011/12/01(木) 11:28:50.28 ID:GL5t9B2p
無駄なGOTOをわざわざ入れてる訳じゃなくて、場合によってはその前に別の処理が入るんだよ
ループ処理を翻訳した直後ではそうなってる
で、不要な部分を削っていくのが最適化
982774ワット発電中さん:2011/12/01(木) 17:29:27.50 ID:6XtJeqZr
すいませんが、大きな桁数同士の割り算をPICでやりたいのですが、良い方法はありませんでしょうか。
たとえば 60000000/1176472 とかです。

何をやりたいかというと、エアモーターの回転数を細かく測りたいので、
基準の時間をつくり、一回転中に何回パルスが入るかをカウントして回転数を求めたいのです。
(よくある0.6秒間のカウント数を表示する方法では低回転の誤差が大きいので)
983774ワット発電中さん:2011/12/01(木) 17:53:08.70 ID:VYgAztqH
別アプローチとして割り算を使わない方法を考えるというのもある

0.6秒間のカウント数の表示ではrpmが100単位になってしまうということでしょ?
単純な加算やシフト演算で済むような計算式で加算平均を取って誤差をならしていけばいいと思う
984774ワット発電中さん:2011/12/01(木) 18:01:00.84 ID:VYgAztqH
具体的には2進数で計算しやすいように60/128秒単位で回転数を数えるようにする

a = 60/128秒間の回転数
b = (b + a*128)/2
rpmの表示 = b

のような処理はどうでしょ?
985774ワット発電中さん:2011/12/01(木) 19:38:27.63 ID:HMNVXJtP
>>982
その程度ならそのまま割り算したってたいしたことないよ。
986774ワット発電中さん:2011/12/01(木) 19:55:11.42 ID:QfqHpF+F
64ビットの型を知らないだけだったり
987774ワット発電中さん:2011/12/01(木) 20:04:45.62 ID:Kh0NNYdz
32ビット/32ビットを計算すればいいじゃん
ttp://orange.zero.jp/electronics/pic/pic.html

最大12000rpm、1パルス/回転なら200パルス/秒で5msec/パルス
32ビット/32ビットはHFINTOSCの8MHzで2msecかからないというところか、
1回転毎に計算しても間に合いそう

それより重要なのは時間分解能の設定だな
最大12000rpmで1rpm分解能を狙うなら、カウントクロック8MHz、
被除数は0x1C9C3800x2の0x39387000を俺なら選ぶ
加えて、精度がそこそこの外部クロックを使用するか、
またはHFINTOSCなら被除数をチューニングして校正するね
988774ワット発電中さん:2011/12/01(木) 20:16:10.57 ID:QfqHpF+F
アドバイスじゃなく押し付けよくない
989774ワット発電中さん:2011/12/01(木) 20:19:47.01 ID:Kh0NNYdz
64ビット変数はいらない気がするが
かえって計算時間の増加を招く逆アドバイスになったりして
990774ワット発電中さん:2011/12/01(木) 20:21:17.74 ID:/r9xjgLN
200rpm以上は従来の方法、それ以下のときは延々と引き算繰り返す、でどう?
回転数低い(=更新も少ない)んだし、高々200回の引き算なら十分なんとかなるんじゃね?
991774ワット発電中さん:2011/12/01(木) 20:30:50.87 ID:Kh0NNYdz
パルス入力から数値更新までに高いレスポンスが求められる仕様ならお勧めしにくいな
992774ワット発電中さん:2011/12/01(木) 21:55:42.50 ID:6XtJeqZr
うわぁ・・・ (;゚д゚)…

いっぱいレスが付いて驚きますた。
Cみたいにlongだのfloatだのがあれば良いのですが、
コンパイラも知識も無く、やっとこさ先日からMPASMで始めてまして、
>>987さんのサイト見て感心している次第です。
>>990さんの方法も考えてみましたが、果たして自分で出来るのか・・・と。
>>983さんの方法、理解しようと奮闘中です・・・。

993774ワット発電中さん:2011/12/01(木) 22:28:00.05 ID:Kh0NNYdz
>>984のは重み付け平均だな
定時間t0毎のサンプリングなら時定数2xt0の一次遅れフィルタとみなせるが、
パルス毎の計算だとどう見ればよいものか・・・
994774ワット発電中さん:2011/12/02(金) 00:32:23.85 ID:kFWqYmMf
精度が数桁でいいのなら、分母・分子が共に16bit(unsigned short)に
収まるまで両方右シフトしてから割り算でどうかね。
995774ワット発電中さん:2011/12/02(金) 06:56:22.81 ID:TufUlYlS
桁が多いまま、というのは精度が高いという意味だけど、
そんな精度が得られてるとも思えないから、
意味のない精度を大事に保存して計算するのは無駄だな
996774ワット発電中さん:2011/12/02(金) 08:27:00.62 ID:HSFLn0nM
回転数は時間で計測するから、意外に精度は高く得られる
仕様的に意味がないほどの高精度は不要だが
997774ワット発電中さん:2011/12/02(金) 08:38:08.96 ID:TufUlYlS
ああ、シフトしてしまうと肝心の低回転での精度が得られないのか
精度とか有効数字という浮動小数点的なものを整数でやろうとするから
最大桁に合わせる必要が出るんだな

一定時間毎のカウントじゃなくて、一定カウントに要する時間を測定すれば、
精度一定になると思う
998774ワット発電中さん:2011/12/02(金) 10:39:21.28 ID:1tYVlJyY
>>992

>>984の式は精度は出ないよ
0.6秒単位で測るより少しだけ精度が上がるのと(100rpmを下回るといきなりゼロになったりはしない)
その方式のプログラムをちょっと変えるだけで済むというのがメリット

数値は実際の回転変化より少し遅れた値になるけれど
そのぶん滑らかに変化する
数値表示だったらそういう処理を入れた方が見やすい場合もある

例では、直近までの平均値1/2+今のカウント値1/2で加算しているけれど
3/4+1/4とか7/8+1/8とかいう計算もできて、より滑らかな変化になる
999774ワット発電中さん:2011/12/02(金) 10:41:48.34 ID:1tYVlJyY
でも今からゼロからプログラムを組むんであったらどの方法でもいいかな
作成前に詳細な仕様を決められる経験があるわけでもないので
細かいところはプログラムが動いてから考えればいいと思う
1000774ワット発電中さん:2011/12/02(金) 10:44:08.00 ID:xTodwuXo
1000!!!

>>982
引き算してけばいいだろJK
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。