【Pickit3】PIC専用のスレPart21【速度3倍?】
タイトルのPICKIT3は、まだ発売されていないようだがICD3は既に発売中の様子。 誰か買った人いない? ICD2との違いが気になる。 USB側の速度が早くなってもも実用上のメリットはないような気もするが。
------------------------------------------------------------- 秋月のPIC16シリーズDIP品限定ピン数別評価 40ピンは◎16F887 \250 28ピンは◎16F886 \230で決まり ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31K-8MHとフルサポート 20ピンはF690のバリエーションモデルが多いけど価格差が小さいからF690でOKかな ◎16F690 \210 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31K-8MHzとバッチリ ○16F689 \180 F690からeCCP機能削られた ×16F687 \180 さらにF689を2Kwと半分に △16F677 \170 さらにF687からeUSARTも削られた ○16F685 \190 F690からSSP&eUSART機能が削られた ◎16F785 \180 ADC有,CCP有,2Kw,内蔵31K-8MHz,OPアンプ搭載ってのはいいね 18ピンは種類は多いけど選択の幅は狭い。F88かいっそ20ピンにするとか ×16F84A \300 機能無,1Kw,いまさら不要 ×16F648A \200 CCP有,USART有,4Kw,内蔵4MHz,今はF87があるから ×16F628A \200 F648Aの2Kw版,値段同じじゃ価値無し △16F627A \160 F648Aの1Kw版,低コストで勝負かな・・・ ◎16F88 \230 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31K-8MHzとGood ○16F87 \200 F88にADC無いだけ ×16F819 \250 ADC有,CCP有,SSP有,2Kw,内蔵31K-8MHz,F88に及ばない ○16F818 \200 F819の1Kw版,F87と比べるとROMとUSARTで負け,ADCで勝ち ◎16F716 \110 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い 14ピンはF688だね ◎16F688 \160 ADC有,eUSART有,4Kw,内蔵31K-8MHz,機能的にもマアマア △16F676 \140 ADC有,1Kw,内蔵4MHz,F675の14ピン版か・・・ 8ピンはF683だと思っていたがF615も\100にしてはなかなか良い ◎12F683 \150 ADC有,CCP有,2Kw,内蔵31K-8MHz,8ピンとしては多機能 ○12F675 \120/130 ADC有,1Kw,内蔵4MHz ,環境によってはE/P版 △12F629 \100 675のADC無(機能無しってこと) △12F635 \120/130 機能無し,1Kw,内蔵31K-8MHz,環境によってはE/P版 ◎12F615 \100 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無し ×12F609 \100 F615からADC,eCCP機能省かれてる (参考)機能無,EEPROM無,12bitコア プログラム組む上で制限多し △16F57 \100 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら △16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら △10F200 \70 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用 おまけ ◎ATMEGA88 \250 28ピン,ADC,PWMx6,USART,SPI,I2C,8KB,内蔵〜8MHz,高性能でお奨め ◎tiny2313 \100 20ピン,PWMx4,USART,2KB,内蔵〜8MHz,ADC不要なら安価でいい
> 1000 名前:774ワット発電中さん [sage]: 2008/12/03(水) 22:47:31 ID:cfKVcVpx > 次スレまだー? トドメさすなよ...、前スレ980-1000はスレ立て・誘導待ちを覚えておくように あとこのスレPart22ね
10 :
774ワット発電中さん :2008/12/04(木) 00:24:50 ID:RYzEi0cO
>>8 別マイコンについては専用スレがあるから、書くと荒れるので書かない方がいいぞ。
いままでの歴史がそうだったからな。
乙! ところで単品売りじゃ無いけど 10F222も入れてくりょ。
PIC24FJ256GB106とC30使ってるんだが、 コンパイラエラーがでる PSV section .const exceeds 32K bytes 32Kもあるプログラムはまだ作ってないのだが、、、、なんだこれクズだな
どーせなんか間違ってるんだろ プロジェクトごとさらしてみ
自己解決 C18ソースのプログラムをC30に移植する時にプログラム設定ミスしてた クズは俺だったって事だな ごめんよPICクズ扱いして
PICに関わらず 不具合の原因は自分に非がある場合が殆ど 部品の不良を疑うのは最後だ
ようやく少しずつMPLAB SIMの使い方が分かってきた。 ネットで見つける資料だとバージョンが違ってたり、 欲しい情報が乗ってなかったりと意外と手間取ったよ。 慣れてくると何てことないんだろうけど。
使ったこと無いなぁ。
タイマーってオーバーフローしたらそこで停止するの? また0から自動でスタートしないの? 初めて使って値を見たらいつも0。 いろんなでたらめな値を期待してたのに。(乱数の代用)
停止しない もともと動作していないのでは?
後閑氏のPIC電子工作に載ってる、LEDを光らせるだけの回路を組んでみたところ RB0からの出力がRB1〜7出力の逆のタイミングになり、かつ電圧が0まで下がりきらない状態だったので PICを交換したら正常な動作をしたのですが、これはPICが壊れているのでしょうか? SFRはSTATUSとTRISBくらいしか触っていません。
_ _ ∩. ( ゚∀゚)彡 itowさん ( ⊂彡. ガンバレ!! | | し ⌒J.
さーて 何作るかな
23 :
774ワット発電中さん :2008/12/07(日) 19:09:06 ID:4eqRDyyg
32MXを使ってみようと思って、まずは社内評価用の治具に載せるつもりなんだが いままで(16bit品)と同様にMCLR、PGC、PGDだけつないでおけばプログラム、デバッグともOK? データシート見てると、EMUC/EMUDやらTRDやらあるんだが、これなに? EMUC/Dは16bitにもあったがいままで無視してた TRDはTrace Dataって載ってるが、どう使うの? ほかにもJTAG TESTなんちゃらってのが何本かあるが、使い方わかんね これつかったらなんか便利なことあるのかな? 当方のデバッグ環境はREAL ICE/ICD2/PICKIT2の3本だてです
32MXってナンだ?
>>24 エキスパートならちゃちゃと教えてくれ
>>25 80MHz動作でプログラムメモリ512KB/SRAM32KBでUSBモジュール付きで100pinで800円っていうお得な32bit品
>>26 補足サンクス
昔のNECの88シリーズが8MHz位だったことを考えると、 32MXでパソコン作れそうだな。
29 :
774ワット発電中さん :2008/12/08(月) 00:18:58 ID:+GyFgDEg
ADC使うときのアクイジション時間って 使うピンを変更しない場合は毎回取らなくても1回だけでよい?
入力の大きな変動には追従できなくなることさえ理解していればいいんでないか? 少なくともなんらかの値は出るが、無意味なデータを取ってることになると思う あまり変動のない入力ならば追従しそうだけど、それなら無理して高速サンプリングする必要ないし 俺なら絶対にやらない
>>28 8年前 PIC18C シリーズ登場時、今までの PIC16Cシリーズ 4MHz → PIC18C452 40MHz にパワーアップ。
本家 microchip forum で 同じような事を言っていたよ。「TRS-80 (Z80 4MHz)程度なら作れるだろうか?」って。
ところが重大なバグ(4MHz でも割り込みで誤動作・4000Hを跨ぐと暴走)が発覚し、フォーラムは炎上して閉鎖。
んで今のかたちの
ttp://forum.microchip.com/ フォーラムに落ち着きましたとさ。
それ以後は新しいデバイスは1年様子を見てから使う事に決めましたとさ。めでたしめでたし。
教えてください。 picを部品箱から出すときにいちいち型番を光にかざしてみるのが面倒です。 背中に白のペンで書き込みたいのですがおすすめのペンはありますか? 綺麗に仕分けするほど品種も多くないし、入れ替えも多いので書き込む方が 便利かと思うけど、ほかに方法があればそれも教えてください。
35 :
774ワット発電中さん :2008/12/08(月) 18:10:23 ID:1f/tHLGN
>>33 レーザーマーキングは、脱脂が一番!
アルコールかアセトンかフラックス除去を塗って、フーフーすればあら不思議!
>>29 なんで、アクイジション時間をとらなくて良いと思ったのかが分からないけど
「1chだけなら、Sampling Switchを閉じたままにできる」と考えているなら
間違いだよ。PICのADCはSARだからS&Hする必要がある。
>>33 色付きのシールを貼るとか・・・
ICのストックなんて、どうせすぐに種類が増えるから、あきらめてパーツケースに
LEDライトをいれておくとかいう方向性のほうがよいかもよ。
37 :
774ワット発電中さん :2008/12/08(月) 18:43:47 ID:+GyFgDEg
>>30 >>32 >>36 レスありがとうございます。
> なんで、アクイジション時間をとらなくて良いと思ったのか
例えば以下のデータシートのp.116に、
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en023112 > After the analog input channel is selected (or changed),
> an A/D acquisition must be done before the conversion
> can be started.
って書いてあったので、アクイジション時間ってチャネル切り替え後の話なのかなと思ったんですが、
一方で「改訂版電子工作のためのPIC16F活用ガイドブック」(技術評論社)のコード例(p.242)だと、
毎回読み取りのたびに
(1)チャネル選択(ADCON<CHSx>の設定)
(2)20usのウェイト
(3)ADC開始(ADCON0<GO>のセット→DONE待ち)
をやっているので、これってこうしなきゃいけないのかなあと。
少なくとも(1)を毎回やる必要はないですよね?(チャネルを変えなければ)
>>37 そのデータシートのP117のFIGURE 9-4を見てください。
Sampling Switch(SS)というのがありますね?
「ADCON0<GO>のセット→DONE待ち」の間は、これが開いた状態になっています。
> an A/D acquisition must be done before the conversion
> can be started.
というのは、『SSが開いた状態から閉じた状態に変化したときに、Choldの電圧が
VAの電圧まで充電するのに時間がかかるからそれまで待っててね』という意味です。
SARはその原理上、SSを閉じたままA/D変換することができないので、必然的に
前回のA/D変換から次のA/D変換までの間にアクイジション時間が必要になります。
> 少なくとも(1)を毎回やる必要はないですよね?(チャネルを変えなければ)
これはそのとおり。
そのシールが発熱で発火とかないのかな?
40 :
774ワット発電中さん :2008/12/08(月) 21:18:23 ID:vsMAdPTu
Hi-Tec C コンパイラの関数に Sound_Init と Sound_Playってあったっけ・・・
どういう処理をPICでしたら100度以上になるのか聞きたい
LCDが表示されない。
ここのとほぼ同じ環境をそろえてやってるんだけど・・・。
ttp://kuri6005.sakura.ne.jp/pic/index.php?LCD%C9%BD%BC%A8%CB%A1%2816F886%29 症状はSC1602の上の段にだけ■■■■■■■って感じで表示されてる。
初期化が上手くいってないんだろうと思うんだけど、プログラムも同じ、
使用してるPICも同じ、使用ポートも同じ、とくると買ったばかりのPickit2が
壊れているとしか・・・PICが動いてるかどうかも分からないしどうやって
原因をつかめばいいのかも分からない。
今は電池から三端子レギュレータに入力して出力の5VをPICのVddとSC1602につないでる。
ブレッドボードの上でスイッチなどがないので電池をブレッドボードに抜き差しして動くか
試してるだけなんだけど・・・pickit2壊れてる?
>>42 SC1602は思いのほかシビアで、配線が汚いと初期化してくれないことが結構あるよ。
pickit2が壊れてるかどうかは、もっと簡単なプログラム(LEDピカピカとか)を書き込んで
試してみれば良いんじゃないかな。
>>42 あの写真だとコントラストの調整ようの抵抗とか見当たらないけれど、君はつけているかな?
>>42 クロックが発振していないとか リセットを何回かしてみるとか
レジスタのReadyフラグ見ないで書いてるかな。 クロック落としてみてちょ。
waitを長めに取ってみればいいかもね
>>43 そうですね。
まずはそれをやってみるというか、このプログラムのwhileループに
LEDピカピカコードを入れて確認してみようと思います。
>>44 ありがとうございます。
いろんなものぶっ飛ばしていきなり目標物を作ろうとしたのが間違いでした。
チカチカ試してみます。
>>45 最初は抵抗(可変がなかったので分圧ですが)をかましていましたが映らなかったので
今はGNDに接続しています。
>>46 すいません、リセットの仕方が分かりません・・・。
>>47 色々調べても見たんですが、正直な所分からないのが現状です。
ttp://www008.upp.so-net.ne.jp/funfly/h8_8.html より
電源投入後15msec以上待つ
インストラクションコードの0x03を書き込む
4.1msec以上待つ
インストラクションコードの0x03を書き込む
0.1msec以上待つ
インストラクションコードの0x03を書き込む
0.1msec以上待つ
インストラクションコードの0x02を書き込む
0.1msec以上待つ
インストラクションコードの0x28を書き込む(モード設定。他のモードもあり)
0.1msec以上待つ
インストラクションコードの0x0eを書き込む(表示設定。他の設定もあり)
0.1msec以上待つ
インストラクションコードの0x06を書き込む(カーソル設定など。他の設定もあり)
こういう情報もいくつか見たんですが、配線の具合や個体差でdelayがもっと
必要になったりすることもあるだとか、しかしdelayが長すぎてもダメだとか
ありもうどうしていいやら、という所です。
電源を投入すると■■■■■■■■の状態になるとの事ですが、
この状態のときに初期化コマンドが送られればそれいこう正常に動作するんですよね?
>>50 「今はGNDに接続しています。」
では、表示しないね。
VR必須。
「リセットの仕方が分かりません・・・。」
は、PICのリセット端子をリセットする。
プログラミング前に、ハードウエアのチェックだな。
>>50 後関さんのCCS-Cの例
http://picfun.com/c_lang/lcd_lib.lzh 液晶表示器制御用ライブラリ(lcd_lib.c)には、下記の関数を含んで
います。
(1) 初期化関数 lcd_init()
PICの電源投入後に実行するべき初期化の関数です。パラメータ
はありません。
(2) コマンド出力関数 lcd_cmd(cmd)
液晶表示器の制御を行うための1バイトのコマンドを出力する関数
パラメータとして下記制御コマンドを使います。
【Control Commandの一覧表】 Commnad DB7 6 5 4 3 2 1 0 説 明 Clear Display 0 0 0 0 0 0 0 1 全消去、CursorはHomeへ Cursor At Home 0 0 0 0 0 0 1 * 表示内容は変化なし。 Entry Mode Set 0 0 0 0 0 1 I/D S I/D=Increment/Decrement S=With Display Shift Display On/Off 0 0 0 0 1 D C B D=Display C=Cursor B=Blink Cursor/Dislay Shift 0 0 0 1 S/C R/L * * S/C=Display/Cursor R/L=Right/Left Function Set 0 0 1 DL N F * * DL=8/4Bit N=2/1Line F=Large/Small CGRAM Address Set 0 1 CCRAM Address Character Generator RAM DDRAM Address Set 1 L DDRAM Address Display RAM L=Line Busy Flag/Adrs Read BF Address BF=Busy Flag (3) 文字表示関数 lcd_data(string) stringとして渡す文字列を表示します。表示位置は現在位置から となりますので、位置を変更する場合には、上記コマンドで制御 します。 (4) 画面消去関数 lcd_clear() 単純に全画面を消去しカーソル位置を左上端とします
8ビットPICでICSPやろうとしたら、ICSPのときはVDDを5Vにしなくちゃいけないんだね。 スペック無視すれば、3.3Vでも書き込めてるっぽいけど。 3.3Vで動作させる回路にPIC載せてICSPするのは面倒なんだな。
質問なのですが、 現在、CCSCでインラインアセンブルを行いたいと思い、プログラムを書いてるのですが、コンパイルすると Undefined identifier STATUS Undefined identifier ADCON0 と、出て、コンパイル出来ません。 PICは16F88を使ってるので、16F88.hを参照してみたところ、STATUS,ADCON0の記述が無いのですが、どうしたらいいのでしょうか?
追記 MPLABの16F88データの中のADCON0部分のアドレスを16f88.hに追記すればいいのではないか。と思い試行錯誤中 オペランドにアドレスを直指定出来るのかなぁ。。。
連投すみません。おそらく解決したので、報告します。 P16F882.INC内に(P16F88.INCは無かった) ADCON0 EQU H'001F' という、ラベル付けがあったので、 これを16F88.h内に #define ADCON0 0x001F と、記述すれば、大丈夫なはず。これから外出なので、試せないのですが。
>>55 max 3.6V 仕様の PIC だと /MCLR にも Vpp が加わらないので回路は簡単になるよ。
でも ICD2 は 5V 固定なので外部電源モードでないと書けない。
PICkit2 だと Vdd 可変なので書き込みは楽だけど、電流はあまり流せない。
>>58 #byte ADCON0 = 0x001F とするほうがいいよ。
>>60 アドバイスありがとうございます。
16F882用の定義ファイルでやってたら、ADCON0のGOビットがずれてた・・・
P16F88.INCはなんでないんだろうか。
普通にあるよ. P16F88.INC
>>59 8ビットPICで MAX3.6Vってあったっけ。
>>64 >
>>63 > PIC18FxxJxxシリーズ
ありがとう。
でも18Fは選択肢になかった。ごめん。
わかる方いたら教えてください。 PIC24FJ64GA002のマイコンと MPLABのC30 student Edition(体験版?)というコンパイラを使用して LED使用の割込み処理のプログラムを組んでいるのですが、 #include <p24FJ64GA002.h> int main(){ AD1PCFG = 0xFFFF; // 全てディジタルに CLKDIV = 0; TRISA=0x0000000000000018; TRISB=0x0000000000000000; PR1=62500-1; IPC0bits.T1IP = 5; // 割り込み優先レベル5 T1CON = 0b1000000000000010; // タイマ初期設定 IFS0bits.T1IF = 0; IEC0bits.T1IE = 1; while(1){} } とメインで割込み許可を出しているのに void __attribute__ ((interrupt, no_auto_psv)) _RTCCInterrupt(void) { IFS3bits.RTCIF = 0; //この列にブレークポイントを置いています 処理部分 } の割込み部分に処理を渡せません。 エラーが出ないので何が足りないのかが分らないのです。 ときどき指導してくださる方が 「16Fシリーズの割り込みと同じはずだ」 と言っているのですが、参考書では上記のような書き方をしてあります 参考書は「C言語ではじめるPIC24F活用ガイドブック」です。 よろしくお願いします。
メインでインで割込み許可を出しているゆにっと てーいち 割りこみるーちん りあるたいむくろっく
>>66 CPUの割込み許可レベルを5未満に下げるか
T1IPを7にするか
69 :
66 :2008/12/10(水) 16:46:13 ID:MbFAUTje
>>67 >>68 回答ありがとうございます。
その辺りのことを調べてやってみます
ありがとうございました。
70 :
774ワット発電中さん :2008/12/10(水) 17:45:21 ID:ldP7G4WZ
pickit2のuart機能はなんだかおかしいような気がするけど正常ですか? 低ビットレートではちゃんと動くけど19200以上はちゃんと機能してないように思う。 アナライザはちゃんと動いているんだけどな〜
その意味不明の質問って一体何?
自己解決 ノンパリ固定ってどういうことさ〜〜〜〜
無理に日本語に訳さずに、アンタの母国語で書いてみれw
英語環境だと7ENが普通だったんだけどな
7キャラクタ・偶数パリティ・ストップビット無し
7E1でした・・・
77 :
50 :2008/12/11(木) 03:10:43 ID:h16UjyN2
あれから色々試しまして、LEDチカチカは動いています。
DelayMsを使い1秒程度のON−OFFを作っているつもりが各々2秒程度になっている
他は、短くすればそれなりに短くなりますし制御は(一応)出来ています。
つまりpickit2はうまく動いてくれていそうです。
しかしSC1602の初期設定がどーうしても出来ません。
PIC16F886:LCD
RB0:DATA4
RB1:DATA5
RB2:DATA6
RB3:DATA7
RC4:LCD_EN
RC6:LCD_RS
GND:PIN2,LCD_RW,DATA0-3
これらのピンがPICと接続されている事を確認しました。
V0(LCDのPIN3)は可変抵抗30kオームにつないで■■…の濃淡の調整が
できる事を確認しています。
同じPICを使ってやっているのに
>>42 のHPの結果と違っている理由が
分かりません。
どうしてでしょうか。どうすればいいかアドバイスもらえないでしょうか?
HPに書かれている補足部分はやっています。
>DelayMsを使い1秒程度のON−OFFを作っているつもりが各々2秒程度になっている そこに何かあるんじゃないか OSCCON
>>78 ありがとうございます。
> OSCCON = 0b01110000; //内蔵発振器 8MHz使用に設定
こういった部分を入れているのですが不足でしょうか?
何分なにが原因か全く想像も出来ない程度なので、
どういった情報を出せばいいかなどもあればお願いします。
>>80 スミマセン・・・MPLABからコンパイラについての情報を持ってきました。
HI-TECH C PRO for the PIC10/12/16 MCU family (Lite) candidate build 3206 V9.60PL4
です。
>>81 while (flag==1)
{
#asm
BSF 0x007, 3 //RC3 ON
#endasm
while(cnt<1000){
DelayMs(1);
cnt++;
}
cnt = 0;
*/ #asm
BCF 0x007, 3 //RC3 OFF
#endasm
while(cnt<1000){
DelayMs(1);
cnt++;
}
cnt = 0;
}
こんな感じです。
GND:PIN2,LCD_RW,DATA0-3 ^^^^^^^^^ DATA0-3をオープンにしてみたらどうよ?
>>83 オープンにする場合もあるというのをどこかで見たんですが、電流節約のためだけじゃなかったんですね。
夜にでも試してみます。ありがとうございます。
>>77 >RB0:DATA4
>RB1:DATA5
>RB2:DATA6
>RB3:DATA7
>
>RC4:LCD_EN
>RC6:LCD_RS
>GND:PIN2,LCD_RW,DATA0-3
プログラムは合わせたのか?
LCDemoのままやってみたら?
>>85 LCDDemoはPORTDを使用しているから、PORTDのない16F886では、LCDDemoのままでは動かない。
>>84 ttp://kuri6005.sakura.ne.jp/pic/pukiwiki.php?LCD%C9%BD%BC%A8%CB%A1%2816F886%29 ここに結構丁寧に説明してあるから、再度、配線とプログラムを丁寧に確認してみるのは
どうかな。
●ポイント:lcd.hとlcd.cはメインプログラムと同一フォルダー内にコピーして入れて置くこと。
(所在:添付のsamplesフォルダのLCDemoフォルダ内)
●lcd.h (添付のsamplesフォルダのLCDemoのlcd.hを変更なしで、そのまま利用)
●lcd.c(分割コンパイル)
(自分の使用環境に合わせて変更し利用する)
今回は16F886を用い以下の通り7か所を変更し、ファイルを上書き保存し分割コンパイル
に利用した。
内臓発振器 8MHzで使用するので、
20行 #define _XTAL_FREQ 8000000
今回は、LCDのRSをRC6、RWをRC5、ENをRC4し、D7をRB3、D6をRB2、D5をRB1、D7をRB0に
接続したので、
27行 #define LCD_RS RC6
28行 #define LCD_RW RC5
29行 #define LCD_EN RC4
30行
31行 #define LCD_DATA PORTB
99行 TRISB=0;
100行 TRISC=0;
に変更する。
>>85 ありがとうございます。
プログラムはあわせてやっています。
PORTなどを適時変更してやってみましたがダメでした。
>>86 ありがとうございます。
実は、そのページどおりにやっているのですが動かず悩んでいるんです・・・。
そのほかにも時間を長めに取ればいいという情報を見たりして試してみたり
しているのですが、たとえばそれぞれの待ち時間を1秒など物凄く長くしても
初期化は行われますか?
例)
1秒待つ
インストラクションコードの0x03を書き込む
1秒待つ
インストラクションコードの0x03を書き込む
1秒待つ
インストラクションコードの0x03を書き込む
1秒待つ
インストラクションコードの0x02を書き込む
1秒待つ
インストラクションコードの0x28を書き込む(モード設定。他のモードもあり)
1秒待つ
インストラクションコードの0x0eを書き込む(表示設定。他の設定もあり)
1秒待つ
インストラクションコードの0x06を書き込む(カーソル設定など。他の設定もあり)
等でも動きますか?
遅くするなら 4MHzで確認汁
>>88 元々のsampleプログラムが4MHzだったので4MHzでも確認しましたが
ダメでした。上の1秒おきでは動かないのでしょうか?
…もしかしてSC1602が壊れていますか?
>>87 > 1秒待つ
> インストラクションコードの0x03を書き込む
どんなコード書いたの?怪しい?
なんか、HI-TECH PICC Lite と HI-TECH C PRO(Lite mode) をゴッチャにして使用して
いる様な気がするのだが?
ちゃんとHI-TECH C PRO(Lite mode)のsamplesの中のLCDemoのlcd.cを使ってる?
/* initialise the LCD - put into 4 bit mode */
void
lcd_init()
{
char init_value;
ADCON1 = 0x06; // Disable analog pins on PORTA
init_value = 0x3;
TRISB=0;
TRISC=0;
LCD_RS = 0;
LCD_EN = 0;
LCD_RW = 0;
__delay_ms(15); // wait 15mSec after power applied,
LCD_DATA = init_value;
LCD_STROBE();
__delay_ms(5);
LCD_STROBE();
__delay_us(200);
LCD_STROBE();
__delay_us(200);
LCD_DATA = 2; // Four bit mode
LCD_STROBE();
lcd_write(0x28); // Set interface length
lcd_write(0xF); // Display On, Cursor On, Cursor Blink
lcd_clear(); // Clear screen
lcd_write(0x6); // Set entry Mode
}
電源投入直後に8ビットモードにする命令でパカパカやってから 4ビットモードにする命令を出して 4ビットモードで初期設定 つう手順やってる?
これだけ参考情報があって解決しないのは 努力不足だな まったく。
>>90 コードはまだ書いていません。
(現在の案はインラインアセンブラでなるべく近い1マイクロ秒を作り、カウンタを使って
ループさせて作るか、と考えています。)
delaymsを使ったりして適当に必要な長さの2倍以上にとって見たりもしたんですが
それでもだめだったので、それならもうとことん長く取ってみようか、と考えました。
ただ、長すぎるとダメなんじゃないか?という点も疑問で、どうしようかと悩んでいます。
仰るとおり当初はHI-TECH PICC Lite と HI-TECH C PRO(Lite mode) をゴッチャにして
使用していましたが、現在はPROのもののみを使っています。
>>91 パカパカというのが
>>90 でいうこのあたりであればやっています(やろうとしています)
__delay_ms(15); // wait 15mSec after power applied,
LCD_DATA = init_value;
LCD_STROBE();
__delay_ms(5);
LCD_STROBE();
__delay_us(200);
LCD_STROBE();
__delay_us(200);
LCD_DATA = 2; // Four bit mode
LCD_STROBE();
■■■■■■■■■という表示がある時点で上記手順を踏めばよいのですよね?
>>92 申し訳ありません。しかしどうしても上手くいかないんです。
> 92 軽石引っ込め!日湘から出てくるな!。
>>94 軽いしではないし、実際に解決法をレスしているし。
お前薬でもやってるのか?
使っているコンパイラのサンプル使って解決できないなら
配線も疑え。
オシロとかロジアナ無いの?
調べられるじゃん
99 :
774ワット発電中さん :2008/12/12(金) 00:46:14 ID:JnREm1bM
初めて16F914を使ってみたのですが動きません。 20MのクロックでA1をHにするだけなのですが電源ONで動きません。 しかしMPLABのデバッガで(ICD)で動かすとちゃんと動作します。(LCDも動く) MCLRは使用しないモードです。 何か指定し忘れているのでしょうか?
>>98 そうだね。PICkit2のロジアナで、5ミリ秒で信号が出て、次200マイクロ秒後に信号が出て
最後に200マイクロ秒後に信号が出ている事を目で確認すればいいんだよね。
それが確認出来ればPICとプログラムはOK。配線がおかしい。という事になるね。
流れがいまいち追いきれてないけどちょっと疑問
>>87 > インストラクションコードの0x28を書き込む(モード設定。他のモードもあり)
4bitモード接続のようだけどこれって大丈夫?
103 :
774ワット発電中さん :2008/12/12(金) 22:14:57 ID:6zakKLM2
16F819でプログラムを組む際のA/D変換で 電圧をデジタルに変換するときどのように値を計算すればいいのでしょうか? 10ビットなので2^10=1024で最大値を割れば1あたりの電圧がでると思うんですが この最大値は自分で設定しないといけませんか? 先生は5Vを1024で割れば1あたりの電圧がでると言ってたのですがなぜ5Vなのかわかりません
>>103 Vref+の電圧がA/D変換のフルスケールになるよ。
・・・それはさておき、せっかく先生がいるんだから先生に聞くほうが良いと思うよ。
105 :
774ワット発電中さん :2008/12/12(金) 23:01:46 ID:6zakKLM2
>>104 帰り際にその話を聞いてそのまま家路についたんですが
どうも気になって質問させてもらいました、明日から土日で先生にもあえなかったのもあって
ありがとうございます、解決できました!
マルツのPICも安くなったね トラギみて気がついた
>先生は5Vを1024で割れば1あたりの電圧がでると言ってたのですが 1023で割らないとダメだろ、10bitA/Dの最大値は1023なわけだし、もっとも誤差の範囲だが。 仮に2bitのA/DがあったらVrefを3Vとして4で割ると、0.75になる。 しかし2bitの場合0〜3の4段階しかなく、0の時は0Vだから0V,0.75V,1.5V,2.25V,3Vと5段階になってしまい計算が合わないと思うんだが。
>>107 全くそのとおりですが・・・さて。
PICのADCで5Vフルスケールの電圧計を作るとして、
どういうパターンがあるかというと・・・。
@5/1023を定数として持っておいて、AD値を乗算
A5*AD値/1023を演算
B5*AD値/1024を演算
これらの中で、@は5/1023の段階で丸め誤差が出る。
理想的なのはAだけど、除算をPICでやらなければ
いけなくなる。
そこで、シフト命令で代用できるBで済ませるというのは
わりとよくある話だ。
というのが、
>>103 の先生の考えかも。
109 :
42 :2008/12/13(土) 02:46:24 ID:WJTVq9Rq
>>96-97 ありがとうございます。
こんな機能があるとは知りませんでした。
ロジックアナライザーを試してみましたが、
__delay_ms(15); // wait 15mSec after power applied,
LCD_DATA = init_value;
LCD_STROBE();
__delay_ms(15); // 4.1msec以上のウェイトが必要な所15msecウェイトしています
LCD_STROBE();
__delay_us(800);// 100usec以上のウェイトが必要な所800usecウェイトしています
LCD_STROBE();
__delay_us(800);// 100usec以上のウェイトが必要な所800usecウェイトしています
LCD_DATA = 2; // Four bit mode //ここの信号も出ていました。
LCD_STROBE();
>>100 上記信号を確認しましたので、敗戦を疑ってみていますが特に間違っていそうな点は
見当たりません。
(ロジックアナライザーはPICのプログラムを実行しているのではなく実際の信号を
出力しているのですよね?)
14PINのオスメスのソケット(SC1602についてきたものです。)をSC1602とのはんだづけに
使っている所くらいしか違いが見つからず困っています。
テスタの導通テストを使って各PINとPICの対応PINが導通しているのを確認しました。
>>101 間違っていそうな所があればご指摘頂ければ嬉しいです・・・。
>>102 void
lcd_write(unsigned char c)
{
__delay_us(40);
LCD_DATA = ( ( c >> 4 ) & 0x0F );
LCD_STROBE();
LCD_DATA = ( c & 0x0F );
LCD_STROBE();
}
コンパイラについていたサンプルですし、
このようにシフトさせてゴニョゴニョしているので多分大丈夫じゃないかと思うのですが…。
さらに、プログラムもPICもOKで配線も問題なさそうだったので、別のSC1602(こちらはバックライト無)
でも確認しましたが
■■■■■■■■■■■■■■■■
と表示は変わりませんでした。
次は何を試したら良いでしょうかorz
とりあえず、クロックおそーくしてみたり?
>>110 ありがとうございます。
現在4MHzでやっています。
さらに遅くした方がよいですか?
112 :
42 :2008/12/13(土) 03:18:51 ID:WJTVq9Rq
ごめんなさいごめんなさいみなさんごめんなさい プログラム中で #define LCD_RS RC6 #define LCD_RW RC5 #define LCD_EN RC4 このように定義していたにもかかわらず RC4をLCDの4PIN(RS用)に、RC6を6PIN(EN用)に接続していました。 皆さんの仰るとおりでした。 Hello world !
>>107 >1023で割らないとダメだろ、10bitA/Dの最大値は1023なわけだし、もっとも誤差の範囲だが。
1024で良いのじゃないかと。
逐次変換型A/Dを自作するとすると、ラダー抵抗でD/Aコンバータを作って、コンパレータで
比較することになりますよね。
Vref 1Vで、2bitのラダー抵抗を作ると、出力の電圧は
0V、0.25V、0.5V、0.75V
となります。
入力電圧0V〜0.25V→変換結果00
入力電圧0.25V〜0.5V→変換結果01
入力電圧0.5V〜0.75V→変換結果10
入力電圧0.75V〜 →変換結果11
なので、1LSBあたりの電圧は、Vrefを4で割った値で良いのではないかと。
>>113 00の範囲と11の範囲は01、10の半分だから
3で割るんじゃマイカ
10進数は9で割るのか
>>116 > 00の範囲と11の範囲は01、10の半分だから
え?
釣られんなよ
18FのESUARTでAutoWakeUpでスリープから復帰してシリアル受信するって サンプルどこかにありますでしょうか。
0〜1023は1024分割だから 例えばVref=5Vなら1023は4.995Vくらい〜5Vまでということじゃまいか なんつーか微分的にn→5Vみたいな 例えが悪いかもしれんが 10mで1mごとに杭を打つと何本いるか?なんていう算数問題があったと思うけど 杭なら11本いるけどA/D値の場合は最後の11本目はイラネーヨってことじゃないかな
で、結論書き忘れたけど、1024で割っていいんじゃないかな。 どうせ部品誤差、測定誤差、そもそもA/Dの誤差のほうが大きくて難しく考える ことじゃないと思うけど、バイナリ的に1024の演算のほうがラクなのは明らか。
いっそ1000で割ってもいんじゃね
>>124 Cで書いて誤差は許容範囲で人間にやさしいプログラム書くならそれでいいと
思うけど、asmで書くと1000とか面倒。
つーか10進表示したりログったりするためならLSBを1/10とか1/1000で考えたほうが
いいかもだけど、そうじゃなければ1/16とか1/1024とかにしたほうがラクってそれだけ
だと思う。
>126 同意。 とりあえず、5.1Vとかにして1024分割(1023でもいいが)して、 1目盛=5mVに決めるのが良いだろう。 5mV x 1023で5.115Vだが、5.100Vと較べて誤差0.2%程度だしな。 正確さが必要なら、もっと精度の良いAD使うべきって話しまで行くだろうし。
A/D変換に便利ですよって程度の意味だって事は分かっているんだけど、4.096Vとか書かれると
有効数字何桁だよって突っ込みたくなる。秋葉原なら鈴商でLM4040-4.1が買えるね。
>>126-127 5.1V良いね。いただき。
>128 末尾まで読まないようじゃ突っ込む資格ないぞ。 LM4040D じゃ 4.096V て言っても気休めだが、 LM4040A だと 0.1% 3ppm/℃ だったはず。
> 資格ないぞ。 > だったはず。 ゴーグル先生で調べてから書け、軽石とこ近藤豊広。
確かに書かなかったね。申し訳ない。 鈴商で手に入るのはLM4040CIM3-4.1だよ。
>>126 なるほど。へぼい5V電源で5.12Vとか出てると誤差の範囲とはいえウゼーとか
思ってたけど、A/Dに使うならむしろラッキー当たり〜!とか考えられるのかw
134 :
129 :2008/12/15(月) 00:48:19 ID:CynNDqec
>132 むしろ末尾まで覚えてることに驚愕してる。 ざっと確認したが鈴商のwebに載ってないよな? いくたびにちょっとずつメモしてるが、それでもあそこは覚え切れん。 サトーがDだったのでCがあるってのは想定外だったわ。
>>134 > むしろ末尾まで覚えてることに驚愕してる。
まさかまさか。以前買ったのが手元にあるだけですよ。
webには載ってないです。5個入り250円。
前にPICで何を作っているの? という書き込みにライターというレスばかりだった事があるが、 Pikkit3が出ようとしている今、みなさんは何を作っていますか?
137 :
774ワット発電中さん :2008/12/15(月) 22:19:42 ID:zgRueV3F
勿論 ライター
ライターってPICを動かす為の手段であって、 それが目的になっているのは本末転倒というものですよ。 来年は皆でロボットを作りましょう。
ライターに始まり
世の中大抵の物はすでにあるってことだな
>>138 いや、これと言って作るものないから、PICライタ作る
USBで使えるWriter509作る
でも、書き込み速度がPICkit2より遅いんだよな
ICSPもうまく動かないんだよな
PIC24とかdsPICに書き込めなくて不便なんだよな
だれか改良してくれないかなあ
ライターに始まりライターだけで終わる、ってことですね、よくわかります。
143 :
774ワット発電中さん :2008/12/16(火) 00:24:08 ID:JSEoB3AU
音楽用途をやっています。MIDIとか。
144 :
774ワット発電中さん :2008/12/16(火) 02:42:10 ID:aBl83yyH
レゴにPIC乗せライントレースするような車を作りたいんですがどのようなパーツが必要でしょうか?
ピカピカに決まってるだろ。 これ以外にPICで作るものあるか?
マイコン○イブ
148 :
774ワット発電中さん :2008/12/16(火) 18:10:17 ID:aBl83yyH
>>144 本末転倒な話になるけどレゴでライントレース程度のことなら
わざわざPICなどのマイコンを乗せる必要もないと思う。
>>148 俺には出来ないな 電子回路は得意だけど
>>148 素人が〜といわれても、素人の内容がよくわからない。
前半にいるヤツは、左曲がり有線なライントレースと粗いバーコードリーダーみたいなものか…
PICスレだから、駆動部やセンサー類は揃ってるとして
ライントレーサーのプログラムや、リーダー部分を想像できて構成できるぐらいじゃないと無理じゃないかい?
作れますか?と聴いてる時点で1年以上はかかると予想してみる。
>>148 作れますかと聞く奴は一生作れない。
作りたいという情熱が絶えなければいつかは作れる。
何も空を飛べといわれているわけではないとしか私には言えません。
>>153 うっざ、そういって自分ができるからってわかったように言う奴イラってくる
155 :
774ワット発電中さん :2008/12/17(水) 01:10:03 ID:k33fsMuJ
>153 軽石だよ。放置放置。
156 :
774ワット発電中さん :2008/12/17(水) 01:10:40 ID:k33fsMuJ
間違った >154 軽石だよ。放置放置。
>>154 カルシウム取れよ。
オレも153の物言いはあたってると思う。というかこれって昔から言われてる事で、自分が出来る出来ないは放っといてもよく言うじゃない。
作れますかって聞く前に足りない頭で考えてみるとか、他の作例を探すとか、色々あるじゃない。
そういうものを面倒だと思い放り投げて、ねえねえ出来る?出来るの?って聞きに来る奴には一言で説明して組み立てさせるなんて間違いなく不可能だろ。
(キット品を購入させでもしなければ)
出来る出来ないんじゃない、作るんだ。
ぐらいじゃないと人様のキット以外はなかなか難しいよ。自分もそう思う。
あれ、これ軽石さん? 自分は軽石擁護じゃないのであしからず。 というか火種引っ掻き回してすまそ。
一人じゃどうにでもならないことだってあるし そのときにアドバイスをくれるとホントに助かる 148みたいに自分でググることすらしないやつはできるとは思わないけど
>>148 さんはできることがわからないとやる気がおきない人なんじゃない。
なんというか結果だけを求めているのか、作る過程を楽しめない人が増えているきがする。
161 :
774ワット発電中さん :2008/12/17(水) 08:44:33 ID:dgzbB0jd
いまどきカルシウムとか言ってるバカいるんだ
ナトリウム不足です
163 :
1/2 :2008/12/17(水) 14:21:19 ID:B6H/9x42
質問します。 「たのしくできるC&PIC制御実験」という参考書の 7セグLEDの3桁加算と3桁減算のプログラム(PIC16F84用)を PIC24FJ64GA002用に4桁でアレンジしようとしてプログラムを 組んだところ、光らせられませんでした。 C言語はある程度勉強しましたが、電子工作は初めてなので、 回路に問題があるのかプログラムに問題があるのかが分らず、 プログラムの方を疑う方向で質問させていただきます。 以下のプログラムを変えるとしてどのようにすればいいでしょうか。 #include <p24FJ64GA002.h> #include <timer.h> _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx1 /*& BKBUG_OFF*/) _CONFIG2( FCKSM_CSDCMD & OSCIOFNC_OFF & FNOSC_PRIPLL & IESO_OFF & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_HS) #define SECMAX 1 unsigned int STROBE=0x04; int POINT1=0; int POINT2=0; int POINT3=0; int POINT4=0; int sec=0,act=0,age=0,sage=0; int f=0,a=0,b=0,c=0,d=0,e=0,g=0; unsigned int segment_data[10]= {0xffc0,0xfff9,0xffa4,0xffb0,0xff99,0xff92,0xff83,0xfff8,0xff80,0xff98}; int main(){ unsigned int i; CLKDIV =0; AD1PCFG = 0xFFFF; if((act==1)&&(age==1)){ if((d==0)&&(c==5)&&(b==0)&&(a==0)){for(i=0;i<20;i++){LATBbits.LATB10=1;}} if((d==1)&&(c==0)&&(b==0)&&(a==0)){for(i=0;i<20;i++){LATBbits.LATB10=1;}} if((d==1)&&(c==5)&&(b==0)&&(a==0)){for(i=0;i<50;i++){LATBbits.LATB10=1;}} } TRISA=0x0007; TRISB=0xFF00; IEC0bits.INT0IE = 1; INTCON2bits.INT0EP =0; IEC0bits.INT0IE =1; sec=SECMAX; while(1){ LATBbits.LATB8=0; } }
164 :
2/2-1 :2008/12/17(水) 14:22:37 ID:B6H/9x42
void __attribute__((interrupt, no_auto_psv)) _INT0Interrupt(void){ IFS0bits.INT0IF =0; if((LATBbits.LATB8)==0){ if(age==0){ age=1;sage=0;act=0;sec=SECMAX; a=0;b=0;c=0;f=0; }else if(age==1){act=1;} }else if(LATBbits.LATB9==0){ if(sage==0){ sage=1;age=0;act=0;sec=SECMAX; a=0;b=0;c=0;f=2; }else if(age==1){act=1;} } if((act==1)&&(age==1)){ d=(LATBbits.LATB8); if(e==1 && d==0){ a++; POINT1*=0;POINT1+=a; e*=0;e+=d; if(a==0x0a){ a=0; b++; POINT2*=0;POINT2+=b; } if(b==0x06){ b=0; c++; POINT3*=0;POINT3+=c; } if(c==0x0a) c=0; f++; POINT4*=0;POINT4+=f; } if(f==0x06) f*=0; }else{ e*=0;e+=d; }
165 :
2/2-2 :2008/12/17(水) 14:25:03 ID:B6H/9x42
if((act==1)&&(sage==1)){ d*=0;d+=(LATBbits.LATB9); if(e==1 && d==0){ a--; POINT1*=0;POINT1+=a; e*=0;e+=d; if(a==-1){ a=9; b--; POINT2*=0;POINT2+=b; } if(b==-1){ b=5; c--; POINT3*=0;POINT3+=c; } if(c==-1){ c=9; f--; POINT4*=0;POINT4+=f; } if(f==-1) f=5; }else{ e=d; } } sec-=1; if(sec==0){ sec=SECMAX; if((STROBE<<=1)==0x10){ STROBE=0x01; POINT1*=0;POINT1+=a; PORTB=segment_data[POINT1]; LATAbits.LATA0=1;//port_a=STROBE; } if(STROBE==0x02){ POINT2*=0;POINT2+=b; PORTB=segment_data[POINT2]; LATAbits.LATA1=1;//port_a=STROBE; } if(STROBE==0x04){ POINT3*=0;POINT3+=c; PORTB=segment_data[POINT3]; LATBbits.LATB12=1;//port_a=STROBE; } if(STROBE==0x08){ POINT4*=0;POINT4+=f; PORTB=segment_data[POINT4]; LATBbits.LATB13=1;//port_a=STROBE; } } } よろしくお願いします。
166 :
774ワット発電中さん :2008/12/17(水) 14:53:09 ID:/n6Mm4P2
>>163 まだスキルが足りないので、最初は背伸びせず、ポートのチカチカだけ
やった方が良いと思うんだけどね。
半角省略されるし、複数レス食うし、どっかのうpローダーにあげるほうが幸せじゃなかろか
168 :
774ワット発電中さん :2008/12/17(水) 15:03:23 ID:wMmAFcgQ
よろし まで見た
>>163 >C言語はある程度勉強しましたが、電子工作は初めてなので、
>回路に問題があるのかプログラムに問題があるのかが分らず、
最初は参考書とか簡単なもの同じ回路通りに作りなよ。<電子工作
つぅか、初めてならハード間違いの可能性高いんだから
プログラムの添削させんな。
>>163 まずはデバッグのどろくさいやり方を経験しないとね。
はじめてのデバッグはLEDのON/OFFを、 ひたすらソースコードの頭からずらしながら入れていた、のは いい思い出
>>170-173 コメントありがとうございます。
初めてではありますが、実は課題としてとても偉い人に決定されてしまったのです。
PIC24シリーズの参考資料が少なく、参考書は7セグのC言語の資料用でした。
ここでの質問は原因の絞込みが目的だったので、
単純な動作のプログラムでの回路のテストをした方がよさそうですね。
余計な質問で大変失礼しました。
>>174 参考資料はmicrochipのHPに大量にあるわけだが・・・
>175 具体的に何処だよ、軽石。挙げろよ。
>>176 TopページのDesignから 好きなのどうぞ
お前、英語が不得意なだけなんだろう?
>>174 学生の宿題か何かか?
LEDをチカチカしたり7SEG光らせる程度の問題なら
printfデバッグつかいなよ
24F初めてならUARTの設定が難所かもしれんけれどな
PIC24Fの書籍なら大御所の本があるから、こんな所で汚いソース上げる前に
それ買うか立ち読みしなさい
あ、LCDじゃなくて7セグLEDだったんだな。 ま、制御的には案外似てるから・・・
>>181 私にとっては下品なあなたの方が不愉快です。
>>181 ハイハイ
他人を罵倒する前に
せめてご自身でも何か情報を示して欲しかったよ
185 :
774ワット発電中さん :2008/12/18(木) 12:21:04 ID:Y0Dr2IYM
マナー話で提示のない軽石> ID:11t3chhi おまいは、善部町ってどこですか?と聞かれて地球!って答えるのかと(ry
>>185 軽石への文句は本人に直接言えばいいだろうに。
文面が支離滅裂だよ。
お前、薬でもやっているのか?
187 :
774ワット発電中さん :2008/12/18(木) 14:04:38 ID:Y0Dr2IYM
>お前、薬でもやっているのか? こればっか。 具体的にサイト内のどこに質問者に参考になる資料があるのかと問うてみる。
薬板にも出入りしてる俺は、少しだけビクッとした。
>>187 「こればっか」って、一回しか薬って書いてないけどさ。
そこのサイトから好きな情報おとせばいいだけだよ。
サンプルのソースもあるだろう?
使うPICのデーターシートも、Cコンパイラの関数の説明だってあるんだしさ。
質問者へ手取り足取り100%回答してやんないといけないのかココは?
だからお前みたいにクレクレ君になるんだよ。
金くれるんなら、質問者のケツまで拭いてやるよ。
お前も簡単に情報手にしたければ、金払えよ。
俺がお前のケツも拭いてやるから。
>サンプルのソースもあるだろう? どこ? >Cコンパイラの関数の説明だってあるんだしさ。 どこ????
>190 マナー馬鹿にそんなこと聞いちゃいけません。 知らないんだから。 >191 知らないなら黙ってろ馬鹿。
結局なにも....
195 :
774ワット発電中さん :2008/12/18(木) 14:50:22 ID:EnbLI5Cp
ほんと、マナー教室ウザウザ。マナーばっかじゃなくて、PICのこと少しは勉強しろ。軽石?
なんか「1を聞いてせめて2か3まで推測してくれよ」と「1言われたって1しかわかんねえよ」のバトルみたいなスレだな
バトル?雑踏のノイズなんて気にしてもしょうがないと思いますよ。
>>189 乙カレー。
互換さんの掲示板が閉鎖されたのでストレス溜まっているんでしょう。
いちゃもんつけるだけでまともなレスができない人が沸くのは、仕方が無いけどうざい。
>>163 >>166 がすでに言っているけど、まずはLEDの点滅で確認するのがいいと思う。
金があるならpickit2を手に入れて、デバッガーモードでデバッグするのも良いぞ。
プログラムをトレースできるので、自分のプログラムのミスがあっという間に判ったりする。
無くてもできるけど、あればデバッグの進み方が早い。
夢の中でデバッグ これ最強
この罵倒しあう混沌ぶり、これこそPICスレだw
PIC16F1xxxの4桁がFuture Productになってるんだけど RAMサイズが2^nだぞ。 バンク無くなるかもよ?
夢デバッグなめんなよ 二人の先輩SEが悩んでた不具合を夢デバッグで解消したんだぜ
そろそろ目覚めたらどうよw
204 :
774ワット発電中さん :2008/12/18(木) 19:54:56 ID:Y0Dr2IYM
また迷惑メールきたじ。
sdfghって、キーボードの配列だよね。Aの隣から右へ。
こんなアドレス捨てろよ。
PICユーザは素敵だ。
ロクに知らんのに威張るやつばかり。
From: <
[email protected] >
To:
[email protected] Subject: [picfun:7044] Re:Re: メールアドレスの公開
伊さんはご自身は絶対に悪くなく、悪いのはtraceartであると(誤って)確信
して、私への攻撃発言を繰り返しました。
このMLメンバには、このような、たちの悪い参加者がいて、
伊氏が私のアドレスを本文にわざと引用した翌日から、
迷惑メールが届き届き始めました。
伊さんは自分のやっていることが他人に迷惑を書けているのが
まるでわかっていません。
>>204 「まだ続けるのか、お前らどっちも迷惑なんだよ、続きは2chで汁。」
って誰か書いてやれよ
>>199 ,
>>202 夢の中でバグを見つけたことがある人って、俺以外にも存在したんだ!
夢デバック万歳!!
自営スレにこれ貼ったのと同一犯でしょ。 秋月荒らしといい、自営業者はロクでもないな。 軽石と一緒で社名バレてんだから、考えろって。ヱセ工企ダメんジョン。 99 名前:774ワット発電中さん[sage] 投稿日:2008/12/16(火) 21:05:08 ID:8L9FHG14 おチンチンびろーん ∩___∩ | ノ ヽ/⌒) /⌒) (゚) (゚) | .| / / ( _●_) ミ/ .( ヽ |∪| / \ ヽノ / / tac itow / | _つ / | /UJ\ \ | / ) ) ∪ ( \ \_)
またケンカか・・・ 超初心者からベテランまでOKスレだろ それぞれのスキルのことで罵倒しあう神経がわからん 初心者にしてみれば質問したら素直に答えろハゲ、だろうし ベテランにしてみれば俺も苦労して覚えたんだから、ちったあ自分でやれクソガキ って感じなんだろうけど、2chだしなあ。別にいいじゃん、そういうのどうでも。
波平乙
PIC同士をつなげるのって例が少ないけどご法度なんでしょうか? 例えば16F54や16F57のような低脳激安物を大量に使ってバトンタッチして 行く、またはメインCPU用意してそれぞれ子分を制御するというような回路を 組めば超長いドットマトリクスとかできると思うんです。 もちろん入出力のところでショートしたりしないような工夫は必要だとは 思いますが、狙いとしては専用ロジック使うより安価で拡張性も高いという ところです。 何か見落としている点があったらご教授下さい。
>>212 > メインCPU用意してそれぞれ子分を制御するというような回路
これはよくやる。
というか、PICって、そもそも子分として使うように設計されたんじゃなかったっけ?
> 超長いドットマトリクス
これはシフトレジスタとかを使うほうが簡単で安価な気がする。
ただ、複数の低性能CPUを使うのと1つの高性能CPUを使うんだったらどっちが良いかは
ケースバイケースだからなあ・・・とも思う。
そういえば、Core 2 Duoじゃないけど、組み込みマイコンにもワンチップの中に複数コアの
やつが最近出たんじゃなかったっけか?
>>214 > Parallax Propellerのことかな?
そう、それそれ。
どこで聞きかじったんだか忘れて探せなかったよ。ありがトン。
>>212 IOポートが足りないときとか、複数の装置ユニットを連携して操作する時なんかは
シリアルポート経由で複数のPICをつなぐのはよくやるね。
べつにPICでなくても良くて、通信フォーマットが問題になるけど。
>>213 SHシリーズでもデュアルコアは出てたような。
大学の授業でPICkit2を使ってのライントレーサーを作りました とても楽しかったので個人的にいろいろやってみたいのですが PICを使った電子工作を始めるに当たってどのようなものを揃えればよいでしょうか? PICkit2のほかにPICを書き込めたりするものがあったら教えてください
>>219 > PICkit2のほかにPICを書き込めたりするものがあったら教えてください
存在はするけど、PICkit2以上にお勧めのものは、現時点では特にない。
PICkit2の何が不満なの?
> PICを使った電子工作を始めるに当たってどのようなものを揃えればよいでしょうか?
授業でやったんなら大体わかってると思うけど・・・
工具一式とテスターは必須、あとブレッドボードもあると便利。
欲を言えばきりがないが・・・
PICkitを個人の素人が使うには宝の持ち腐れかと思って質問させてもらいました 不満はいっさいありません とりあえず本などを読んでみてちょこちょことやってみようと思います ご返答ありがとうございました
>>222 ライターを自作すれば、確かに安く上げることはできるけどpickit2を
買ったとしても秋月で4000円ぽっちだからね。
性能を発揮しきれないとしても、純正品という安心を買うと思えば。
二昔前は秋月ライターがスタンダードで・・・一昔前は秋月ライタの
あたらしいpicへの対応状況への不満からWriter509がはやり・・・
いまはpickit2があるから、ライターを作ること自体が目的の人と
予備とか人にあげるとかで2台目以降のライタが欲しい人ぐらい
しか自作はしないよ。
>>225 やったこと無いから自信ないけど、タイマ1を外部クロックで使えば
その回路でもいけるような気がする。
> ID:sm0Ees3+ 軽石引っ込め!
>226 ありがとう。 データシートのSLEEPの項に ・Oscillator driver is turned off なんて書いてあるから駄目と思ってたけど 6.8 Timer1 Operation During Sleep 読むとできそうだね 32768Hz / 8分周 / 65536(16bitタイマオーバーフロー) =1/16Hz=1回/16秒 TMR1の初期値に4096いれておけば15秒に一回割り込みでSLEEPから 復帰できそうだ。
229 :
774ワット発電中さん :2008/12/21(日) 11:46:36 ID:kEmBQ6KB
秋月雷太もネットと繋いでバージョンアップできれば、廃れなかっただろうに。
いまから始める人は秋月買っちゃ無駄??
うん
だね
16F84 もobsolete
でもAVRにしようかPICにしようか検討中
この場合欲張るのはいいこと 両方いけ
二等追うもの一等得ず
AVRはPICと比べて種類や参考文献の多さで圧倒的に負けている?
FT232RLでAVRライタを作る→AVRでPICライタを作る
PIC一筋・浮気無しでやってるが、追えてないぞ。
やっぱり追えてない俺が言うのもアレだけど、他のCPUのアーキテクチャを 見るのも理解が深まるかも。 「パタヘネ」とまでは言わないけど、「CPUの創り方」とか。 もちろん一通りはpicを使えるようになってからの話だけどね。
ソフトはC言語を使えば、PICであることの特殊性は殆ど無いし、 ハードに関しては特に他のCPUと違っているとも思わないよ。 AVRとの比較でも片方が使えれば他方も普通に使えると思う。
機械の制御に 16F84 を使おうと思っています。 B0を出力、B1を入力に設定してブレッドボードで読み書きのテストをしたところ、 B0の出力は上手くいってる気がするのですが、 B1のピンには何もつながない状態なのに、読み出すとON(1)になる時があります。 何もつないでいないのだから常時OFF(0)になるはずと思うのですが、理由がわかりません。 B1とGNDを抵抗で結ぶと常時0になり、B1と+5Vを結ぶと常時1になるようですが。
もしかしてこういう感じにすればいいのですか? | | 機| |P 械|___________|I |通信出力 | B1 |C | R | | | | | ↓GND
当たり前田のクラッカー プルアップ プルダウン をググル 電源直結はいかんよ
>>245 0と1と「どちらでもない」という状態があるんで、「どちらでもない」が必要でない限り
入力はプルアップかプルダウンするのが常套です。
5Vで動かしているのですが、Rは何Ωくらいが妥当なんでしょうか?
>>245 Wikipediaの「デジタル回路」を見てみるといいかも
>>250 10kとか。
BCF OPTION_REG,RBPU
という手もある。
皆様、ありがとうございます。
>>252 10Kでやってみます。
BCF OPTION_REG,RBPU は調べてみます。
親機と子機があって、親機が壊れたのですが古い機械のため入手できず、
子機をPCの RS-232Cで制御しようと思ったら、子機にクロックを送信しないと
通信できないようなので、PICに橋渡ししてもらおうと思ったのです。
調べたところ、CLK,TXD,RXD,GND で、9600BPS程度で親機とつながっていたようです。
この場合、1ビット送る手順として、以下の方法で大丈夫でしょうか?
(16F84は、10MHzです)
1、CLKをON
2、TXDをON(orOFF)にする
3、空ループ(100回)
4、CLKをOFF
5、空ループ(100回)
6、1へ行き次のビット送信
使うんだったらusart 乗っかったPICのほうがよくないかい 手持ちでSYNC モデムがあればback to back にしてつかうとか modem eliminator つかうとか
>>253 仕事で使うんですか・・・
232Cではないようですね。
9600bps程度ってことなら、いっそPICも9.6kHzで動かせば超ラクかも
257 :
255 :2008/12/22(月) 23:57:08 ID:QA1BW+Eu
すいません。自己レス。 他の処理があるし、それじゃ遅すぎですね。 要するに9.6kHzの倍数とかでやればってこと。 bpsが厳密でない独自の無手順通信なら、なんかそんな感じで (適当な空ループ)でいいと思います。
sync で無手順? bscとかsdlc とか伝送手順があるのでは
>>257 4行目にハッっとしましたので、コマンドを投げてテストしてみたいと思います。
>>258 無手順同期通信で、クロックの立ち上がりで送受信を行っているようです。
(たぶん・・・。)
ちょっと試行錯誤してみます。
ヒント本当にありがとうございました。
>>256 PC⇔PIC⇔子機
という構成するつもりなんですよね?
PIC⇔子機の方の通信はよく分からないけど、PC⇔PICの間は
USARTモジュールがあったほうが楽じゃないかと思います。
無謀だとは思いませんが・・・
261 :
259 :2008/12/23(火) 00:20:48 ID:Zfy4rgKM
自己レスです。
立ち上がりでってことは、
>>253 の手順1と2が逆ですね!
262 :
259 :2008/12/23(火) 00:29:25 ID:Zfy4rgKM
何度もすみません、PICから子機への送信もプルダウン抵抗は入れたほうがいいんですよね?
>>260 手元にUSART付きのPICがないので、ひとまずPIC単体で擬似コマンド出して、
いけるようなら、USARTを検討してみます。
>>262 子機は5Vのロジックで動いているってことでよろしいですか?
電圧違ってると面倒だと思う。その場合はフォトカプラとか使うしか。
264 :
259 :2008/12/23(火) 01:53:30 ID:Zfy4rgKM
>>263 分解したら5Vだったので、大丈夫だと思います。
問題は制御する親機の方で、デスクトップなら12V、
リナザウなら3.3Vを変換しないといけないですよね?
いっそUSARTとUSB付きのPICにすればいいのかもしれませんね。w
通信というか ps/2 キーボード のエミュレーションみたいなもの?
266 :
259 :2008/12/24(水) 13:06:48 ID:MvWCW6j7
まず親機の仕様をきちんと入手汁 m9っ`Д´)
268 :
774ワット発電中さん :2008/12/24(水) 23:17:47 ID:3z35wrR0
プルアップ/プルダウンも知らない人がビット単位の制御が要る通信とか、 でもってタイマー使わず空ループとか…とんでもない話だなぁ… 話から察するに工作機ってCAD/CAMで言う所のCAM? 「親機」ってのはPCの事でしょ? 外部クロックが使えたって事はPC-9801なのか?OSは? でさ、その工作機っていうヤツね。 たぶん通信方式をディップで変えるとか出来ると思うよ? いま外部クロックが要るって事は、工作機は同期通信モードだよね。 なら非同期通信モードに変えればクロック要らないよ。 親機側も非同期通信モードにすんの忘れずにね。 スタートビット/ストップビットとかも合わせるんだよ?
疑問形
270 :
774ワット発電中さん :2008/12/25(木) 21:39:27 ID:IC1WjXZN
電子回路設計、試作、プログラムなど、個人で細々とやっております。 高周波、低周波、アナログ、デジタルなど、専門は電子回路。 座右の銘は「変わり者で行こう」「創意は無限」など。 質問される方は出来る範囲で情報、状況の開示があれば、的確な回答が出来そうです。 患者が患部を見せてくれないと、医者は患者を見殺しにするしかなくなる。 予想で治療すると、医療ミスにつながりかねない。
>>270 えーとそれはJO_O氏のプロフだったっけ
272 :
774ワット発電中さん :2008/12/25(木) 22:47:58 ID:mrr9UzmP
ナセ公ダメんジョン自演乙。
>>271 愛知県半田市に住んで40うん年になります。
質問される方は出来る範囲で情報、状況の開示があれば、的確な回答が出来そうです。
DSPICで1MHzの搬送波と音声信号をAM変調にしたいと思うのですが、ラジオで復調出来る程度の波形になりますか? クロックは外部クロックを使って30MIPS程度、音声信号はアナログピンから入力します。 ADCには30F4012を使って1Mspsくらいでやろうと思っています。 4012が高いので買ってから試すよりも、出来る人に聞いた方が良いかと思って質問しました。
データーシート読めばいいじゃん。
>>274 実績が桁違いに高いTI社のTMS320C6000シリーズの評価ボードと付属ソフト
で実験することを勧めます。
詳細はTIのHPで調べてください。
サポートも大変親切です。
dsPICは苦労するだけで目的のものが出来上がらないと思います。
>>274 そんなの普通にDBM IC使えばいいんでないの?
PIC使うのが目的なら何も言わん
PICとアル中の関係を誰か教えてくれ 場合に酔ってはPICをやめる
おもしろいのかな
>1MHzの搬送波と音声信号をAM変調にした PSoCでやってたなぁ・・・というのを思い出した今日この頃
毎度JOさんがアル中で 毎度JOさんはPIC16の小さなプログラムが書ける。 H8の大きいプログラムはできない様子 という関係。
PICのMCLRに10KΩの抵抗を綱久野は何故でしょうか? ちなみに外すとICSPが上手く動作しませんでした。 要するにどうしてですか?
MCLRが'L'ならリセット 'H'ならRUN プルアップすれば'H' しなければ、、、?
>しなければ、、、? Hと思うのですが。 というか、プルアップしてましたっけ?
VCC直結でHレベルにしとくと リセットスイッチとMCLRの中の人に大電流が流れる危険性があるから?
http://kitaura.info/PIC16F648A1.html このHP見てPIC16F648Aにプログラムを書き込もうととしたんですがビルドができません。
エラーメッセージはこんな感じです。何が原因でしょうか?
warning: processor mismatch in "pic16f648a.o"
error: missing definition for symbol "__sdcc_gsinit_startup", required by "C:\Documents and Settings\PICC\648atest.o"
Link step failed.
BUILD FAILED: Wed Dec 31 13:15:11 2008
良くわからないが、pic16f648a.oの記述に問題があるようだけれど、 ソースを晒せるかな?俺は応えられんが誰かがアドバイスくれるかもよ。
>>286 CONFIG1レジスタのMCLREビットが1だったら、MCLRにhigh入力しないとリセット状態だよ。
ICSPするときは、MCLRに12VかけてPICをプログラムモードにするから、MCLRピンが回路内の
他のデバイスにつながってたら大電流が流れて壊れてしまうかもしれないから、保護抵抗やダイオード入れる。
でも、抵抗入れなくても電圧がかかってれば動きそうに思うけど。
>>288 PICが"pic16f648a.o"という名前のオブジェクトファイルにあってないよ。
"648atest.o"というオブジェクトファイルに必要な"__sdcc_gsinit_startup"というシンボルの定義が欠けていますよ。
なので、リンクが失敗しました。
って書いてあるよ。
>You need to rebuild/reinstall the library. Initialization for globals
>and static variables has been moved into a library routine
>__sdcc_gsinit_startup() in device/lib/pic/libsdcc/idata.c, so also make
>sure to link against libsdcc.lib from the lib/pic14 (or is it lib/pic ?)
>directory. Check all linker's include paths for copies of old versions
>of this file.
ググったら1秒以内にこいつが出てきたよ。訳すのめんどいんで自分で翻訳してね。SDCCのライブラリが問題な気がするね。
292 :
名無し :2008/12/31(水) 22:23:14 ID:yVPPwp7r
HI-TECHのLCDemoの件で、以下の様に結線した時、 #define LCD_DATA ??? LCD_DATAはどう書けばいいでしょうか? PORTDではだめでした・・・ PIC LCD RD1 E RD2 RW RD3 RS RD4 DB4 RD5 DB5 RD6 DB6 RD7 DB7
>>292 根本的な解決は分からないので他の方に譲りますが
・E RW RS を他のポートから持ってくる。
例)PORTA (A1=EN) (A2=RW) (A3=RS)
・PORTD bits 0-3 are connected to the LCD data bits 4-7
こう変えたら多分大丈夫ですよ。
LCD_DATAは元からあるlcd.cのように
#define LCD_RS RA3
#define LCD_RW RA2
#define LCD_EN RA1
こんな感じでOK
4bitモードだと、ビットシフト使ってるはずだと思うので、
PORT同じにするとめんどくさくなるのでは?
当然きちんと設定すればよいのでしょうが・・・。
294 :
名無し :2008/12/31(水) 22:46:15 ID:yVPPwp7r
>>292 次のようにな
#define LCD_RS RD3
#define LCD_RW RD2
#define LCD_EN RD1
#define LCD_DATA PORTD
#define LCD_STROBE() ((LCD_EN=1),(LCD_EN=0))
/* write a byte to the LCD in 4 bit mode */
void lcd_write(unsigned char c)
{
__delay_us(40);
LCD_DATA = (LCD_DATA & 0x0F) | ( c & 0xF0 );
LCD_STROBE();
LCD_DATA = (LCD_DATA & 0x0F) | ( c<<4 );
LCD_STROBE();
}
>>292 接続を以下に変えて
RD0 DB4
RD1 DB5
RD2 DB6
RD3 DB7
RD4 E
RD5 RW
RD6 RS
lcd.cを
27行 #define LCD_RS RD6
28行 #define LCD_RW RD5
29行 #define LCD_EN RD4
30行
31行 #define LCD_DATA PORTB
はどうよ。
それでも動かなければ
接続を以下に変えて
RD0 DB4
RD1 DB5
RD2 DB6
RD3 DB7
RC4 E
RC5 RW
RC6 RS
lcd.cを
27行 #define LCD_RS RC6
28行 #define LCD_RW RC5
29行 #define LCD_EN RC4
30行
31行 #define LCD_DATA PORTB
はどうおよ。
出力データとタイミングデータはPORTをわけた方が安定するのかなあ?
297 :
名無し :2008/12/31(水) 23:04:21 ID:yVPPwp7r
>>274 結論から言うと1MSPSで1MHzの搬送波を出力するのは無理です。
とりあえず以下の単語を調べてみてくれ。
サンプリング定理、ナイキスト周波数
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < Pickkit3まだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
300 :
774ワット発電中さん :2009/01/03(土) 03:28:33 ID:n/r3yt0z
シャァ専用デバッガーはまだか?
302 :
774ワット発電中さん :2009/01/03(土) 13:00:03 ID:RqtVuX4S
STATUS,Cって引き算だと逆なんだな。 確かに、ちゃんと/borrowとある。 2日潰した orz
305 :
芥川龍之介 :2009/01/04(日) 14:26:16 ID:Gc9tXMQB
>>303 秋月よりも、PIC使っている人にとって、
DSPIC33の 実験例は ほとんどないからなあ。貴重な情報源。
いちおう、PICシリーズで手軽に安く入手できるチップをみると、
DSPIC33あたりがメダマだし。
実験例も、浅草研が唯一だったがあ、基板が数万円するし、大きそう。
他、秋月のカラーLCDで自作しているやしがいたがあ、多層基板でまねが
できねえ。
まあ、つくるとしても、それを作る道具にかなり金かかりそうだし。
両面焼き基板(高い)や感光する道具類やら、穴あけ(あれだけ小さいものを扱うので、ドリルも金かかる)だけでも大変。
他、ハンダの吸い取り機器やら、結局
手間とリスクが結構あるし、道具に基板以上の金がかかちゃあ、あんまりいいことない。
それ考えると 基板は 買うしかない になってしまうがあ、
ここのHPのやつだと、片面焼きだけでいけてるみたいだし、LCDだとか
周辺機器をモジュール化して、同じく 片面焼きで、再現が容易。
PIC他、マイコン類は LCDなどの周辺機器等 ひっくるめて、
結構な値段で、販売しているし、周辺機器も、馬鹿高い値段になっているし、
マイコンユーザーにとって、金銭的障壁が大きい。
結局、販売側の都合で、無駄なものやら、情報がでてこないやら、
能率が悪すぎるからなあ。
ここの例なら、SDカードやら モジュールの値段考えたら1/2とか1/10とかのレベルで
違ってくるし、
まあ、お金の絶対値的な 話より、 すべて業者任せだと、この業界 とんでもない吹っかけしているところ
多いしなあ、
所詮、配線とか 簡単な仕組みなら、自分でやるべきかと思う。
っていうか、ちょっと面倒が えらいボッタクリにあいそうで気が抜けない。
実際、使う人は、なんらかの実験だったりするわけだし、
結局、それらの機器の、一番、初期段階で、ここまでぼられるってことはだね。
その先の、もっと手間やらかかるものがほしいなんてことになれば(実際にはなるでしょう)
..
ちょっとの手間に 何人ぶら下がって(いくら経費がかかっている)いるのだろうか?
まさに、芥川龍之介(蜘蛛の糸)ですわ。
蜘蛛の糸は、あんまり沢山人がぶら下がると切れるんだな。
306 :
774ワット発電中さん :2009/01/04(日) 16:01:45 ID:VMXWeXH+
>>305 >蜘蛛の糸は、あんまり沢山人がぶら下がると切れるんだな。
多分違う意味と思う。
小学校の道徳だったっけw
>>305 基板を起こして実験するということが、一昔前まで仕事として請け負う人でさえ躊躇する
金額であったことを考えるべき。いまは数万円で基板が作れるが、少し前までは数十万円
台だった。大量生産ならともかく少量生産の基板なら最初はユニバーサル基板で動作確認
するのが当たり前だった。
基板製作用の回路図を仕上げて、基板が出来てくるまでの時間は、自己反省の繰り返しで
もう少し検討すべきだった事柄をいつも悔やんでいたもの。
個人の趣味で基板起こせる金額にまでなったのは感謝すべき。批判するなら自分がやったら
いくらで出来るか考えられる程度まで詳細を詰めてみたら。設備費や消耗品費用、営業経費
考えたら今の金額は妥当だよ。
それでも不満なら海外の業者に頼む手もある。
>>305 永杉
蜘蛛の糸は自分以外の人間がたくさん登ってくることにキレるような
狭い心をもったから切られたんだぞ
いろんな意味で国語の勉強やりなおせ
>308 あれ、ごだびんだから。
>>304 内部的には補数の加算だからじゃないかと。
>>310 >>304 Wreg の bit を 全て反転する。
Wreg を inc する。
んでぇ 足し算を実行する。そーすると
subwf の出来上がり。だから f−Wreg になって /borrow と論理が逆転する。
初期の PIC16Cxx時代だと Wreg=0x00 の時 フラグが誤動作したのは、ないしょね。
CMCON、borrow、次はどこでハマることやら・・・
インベーダーからのミサイル大杉
315 :
774ワット発電中さん :2009/01/09(金) 08:58:16 ID:9FzE4sVl
PICkit3まだぁあああああああああああああああああああ?
317 :
774ワット発電中さん :2009/01/09(金) 12:06:26 ID:rcWEJBhp
それで
318 :
774ワット発電中さん :2009/01/09(金) 12:08:56 ID:c8cwBiqT
319 :
774ワット発電中さん :2009/01/09(金) 12:19:15 ID:c8cwBiqT
やっと理解したwww非絶縁なんだな、コレ。
>>316 機種「SHE35ED」 の U201 PIN5 にスイッチ4個ぶら下げるやり方
今度やってみよう。
>>317 仕様書に能力制御方式がインバータ制御と書いてあるけれど、どういう意味なんだろう?
322 :
774ワット発電中さん :2009/01/09(金) 16:46:57 ID:LA+L0Cmy
?
ゴメン、間違えた
>>316 仕様書に能力制御方式がインバータ制御と書いてあるけれど、どういう意味なんだろう?
>>323 消費者向けの用語としての「インバーター制御」だと思う。
俺らは半導体制御と読み替えればOK
モーターの電力を加減するのに、PWMなんかで細切れにするだけでもインバータとか言うんだっけ? クーラーなんかのアレ。 蛍光灯のおめめにいいインバータは、50/60Hzではちらつきが見えるから、さらに速い周波数に変えて見えなくしてる。 調光は詳しくしらね。
ドレ?
モーターが周波数で回転数を変えるタイプだから pwmとは違うだろ。
トライアックで位相制御してるだけでインバータ制御って笑わせてくれるなw おまけに5VとACが繋がっている。 こんなんアリかよw
>>328 >おまけに5VとACが繋がっている。
>こんなんアリかよw
ど素人乙w
しかし何だな。 日本は家電製品に対して、力率改善を要求してないんだよな。 だから、こんなのが許される。
331 :
774ワット発電中さん :2009/01/09(金) 18:42:23 ID:8oN2jkTl
>>330 学生?
負荷の殆どがヒーターだから、大掛かりな回路付けても力率はたいして改善されないよ。
そんなもんつけてコストアップするのは製品を一度も作った事が無い学生お宅だな。
その機器全体に対する割合が低ければいいの? ファンモーターの話なんだが。 ひどい安物の扇風機なんか、力率は0.5くらいだよ。
333 :
774ワット発電中さん :2009/01/09(金) 19:51:34 ID:8oN2jkTl
>>332 90mAのFANモーターに力率改善の回路付けるの?
インバータ制御は嘘として PICでのトライアック位相制御としてちょっと参考になるな。 もっと部品減らして簡略化できるだろ・・・とか 4KEY-SW入力はRラダーA/D方式とか 見慣れた部品多いし興味ひかれる。 どうでもいいけど J201だかコネクタpin順違いに数分悩んだw 意図的・・・なのかな?
>>333 15W、20W、30Wの三段階切り換えのサーキュレータでさえも、力率改善すべきだと思う。
こういう家電製品は長時間にわたって稼働しっぱなしなので、馬鹿にできない。
>>335 >15W、20W、30Wの三段階切り換えのサーキュレータでさえも、力率改善すべきだと思う。
90mAって何W?
100Vなら9Wだな
3.3Vなら0.30W
ごめん、日本語が間違ってた。 100Vだから9W
スレチかも知れないけど、力率が悪いと電気代が高くなるの? うちのサーキュレータを計ってみた 強 47W 81VA 0.58 中 34W 54VA 0.61 弱 19W 29VA 0.66 ※それぞれ測定器で出た値なので、計算がちょっと合わないorz
「力率改善用コンデンサ」は進相コンデンサで、大抵の負荷はL(遅相) 電力計は相のズレで回るから、進相と遅相を相殺させればメーター回らない みたいな覚え方を聞いた覚えがあるな
かつて積算電力量計のアルミ円盤の近くに強力な永久磁石を取り付けて 円盤の回転を遅くして電気代だましてたヤツが検挙送検されたことあるから 真似するなよ。
積算電力計は有効電力(W)を測定するので、力率が悪くても電気代が高くなる事はない(一般家庭用の場合)。でも、送電線には 皮相電力(VA)分の電流が流れるので、力率が悪いと送電コストが高くなる。だから、家庭用以外は力率により割引や割増しがある。
>>332 純抵抗負荷であるヒーターの消費電力のほうがはるかに大きいからモーターの無効電力が相対的に小さくなる。
よって機器全体での力率は結構高くなると思われる。
何当たり前のことを連投してるんだよ ここは中学校かよ
347 :
774ワット発電中さん :2009/01/10(土) 06:23:49 ID:2b/Fm9pL
しかし、メーカが回路図を出しているなんて久々だな。 メーカーの回路図をじっくり見ていると、コストダウン化の手法やプロの手法を 見られていいね。非絶縁の回路もある意味参考になる。こういう方法でもいいのかと 感心したよ。
348 :
774ワット発電中さん :2009/01/10(土) 06:29:29 ID:2ebPA3gy
すいませんが質問です。 テーブル参照のプログラムを使用している場合、 割込処理時にプログラムカウンタの内容も保管(退避) すべきなのでしょうか? ASCII変換したデータのLCD表示が正常にしません。 割込処理を削除すると正常に表示します。
>>348 PIC16系という前提で回答します。
> ASCII変換したデータのLCD表示が正常にしません。
> 割込処理を削除すると正常に表示します。
どちらかというと、BANK関連のバグのようなにおいがします。
STATUSの退避・復帰は正しく行われていますか?
> テーブル参照のプログラムを使用している場合、
> 割込処理時にプログラムカウンタの内容も保管(退避)
> すべきなのでしょうか?
PCLはハード上スタックに勝手に保存されるので、やるとすれば
PCLATHの退避・復帰になります。
「したほうがいいか?」と聞かれれば「したほうがいい」と答えますが
「しなければならないか?」と聞かれれば「プログラムしだいです」と
しか答えられません。
350 :
774ワット発電中さん :2009/01/10(土) 07:50:02 ID:2ebPA3gy
>349 PIC16F877Aを使用しています。 WレジスタとSTATUSレジスタ(SWAPFで)は退避しております。 ご指摘の内容で変更し確認します。 有難うございます。
351 :
774ワット発電中さん :2009/01/10(土) 10:44:07 ID:PEnNzxw0
>>349 割り込み処理ルーチンで w, status 等を保存するレジスタファイルは
どのバンクを選択していても同じアドレスに存在するレジスタファイルに
しなければなりません。16F877Aなら 0x70〜0x7f。
>>344 1kWの電気ヒーターをONにすると、コンセントの電圧が106Vから101Vに低下する
配線で50Wもロスしているってこと?
これが電力計からこちら側で起きてるなら、
力率が悪いと、屋内配線でのロスが大きく、その分、電気代が増える?
??
どうせ暖めるための1kWの電気ヒーターだろ 熱になってるんだから無問題
>>352 変圧器のインピーダンスより屋内配線のインピーダンスのほうが高いとは思えないから気にするな
356 :
348 :2009/01/10(土) 13:06:56 ID:2ebPA3gy
>349 >351 LCD表示しました。 LCD表示プログラム(点灯制御部)に誤りがありました。 どうもすいませんでした。
ありがとう 屋内配線で50Wもロスしてたら、壁の中が炭化して燃えて火事になっちゃうよね。
>>358 USB Application Design Center見てきな、Host機能の違いも書いてあるよ
18Fとか24FのUSBコントローラにホスト機能は無いよ
横からだけど、usbのホスト機能をpicに内蔵しても それ以外のプログラムの難しさがなぁ。
>>359 ありがとう。ちょうど電子工作のページでホストの記事を見つけたとこだった。
USBの仕組みをちゃんと理解してなかったよ。
うーん、残念。
USB機能は関係なくなるけど、ホストコントローラを使ったら、PC無しでPIC-DualShockの通信ができそうな気がしてきた。
>>362 プログラムが得意なら頑張ってみたら?
PIC18Fでもスペックで泣きを見そうだけど
USBなんて挟まない方がいいんだけど、Dualshock3ってHIDプロファイルだったっけ?
汎用のBluetoothモジュールってSPPかDUNぐらいしか見ないんだよね
HIDのマスタになれるモジュールがあればいいんだけどな
あと海外製だと良いのがあるのに・・・
>>363-364 いしかわきょーすけさんの作品ですね。私も先ほど読みました。
昔から色々試して、公開してくれるので参考になりますね。
もっと低レベルな、プロトコルはFWで実装する青歯モジュールがあれば良いんだよね。 WiiリモコンにはBroadcomのチップが入ってたけど、1チップで通信・ボタン・センサを処理してた。 外付けEEPROMからFWをロードして内臓のCPUで走らせてるように見える。 EZUSBと良く似た構成だ。
>>359 >18Fとか24FのUSBコントローラにホスト機能は無いよ
24FのGBにはHOST機能があると書かれているが違うのか
369 :
774ワット発電中さん :2009/01/12(月) 23:02:00 ID:axeHCQ9N
24Fの On The Go ってホストとトライバと両方なんでしょ。 ほんとのホストではないってことかな?
>>369 >ほんとのホストではないってことかな?
CDC,HID,Mass Storageのドキュメントが確認できるけれど、
ほんとのホストってどういう意味なんだ?
UHCI,OHCI以外のコントローラをUSBコントローラと言わないのであれば、
ほんとのホストコントローラではない
出力ポートがHIで何も接続しない状態でも2V程度しか出ません。 電源は0.3A以上の容量の自作電源で+5Vしっかり出てます。 それとHiのとき出力電圧にノイズがのってます。Loのときはノイズ解消 なぜなんでしょう。
>>371 1. どこか別の信号とショートしている
2. Highのとき出力設定になっていない
3. チップが壊れている
>>371 PICの型番とどのポート使ってるか書いてくれ。
どうせオープンドレインポートだと思うけど。
USB のホストを名乗るなら、High speed 対応とか、Isochronous 転送対応とか、電源の問題とかいろいろある。
375 :
371 :2009/01/16(金) 19:19:17 ID:YdjpeBSr
>>373 PIC型式は 16F628A ポートはPortBです。
これがオープンドレインポートだとすると5V出ず2Vしかないんですか?
しかもノイズ大。
>>375 データシート読めばわかるだろうけど16F628AのODポートはRA4のようですよ。
>>373 さんのご指摘はデータシートの図5-4をみれば理解できると思います。
オシロ測定の2V?テスターの2V? ノイズって言ってるから、オシロ?
出力の前に、 BCF STATUS,RP0 してみるとか。
ポートのON,OFFのノーウェイトでやってるとか。
>371 俺も出力設定じゃなくて入力設定になっていると思う。 PORTB アクセスしてるつもりがTRISBに書き込んでる。 以前、入力設定になっているとき、ピンの電圧測ると 371みたいな状態だったよ.。
ここでいいのかわかりませんが教えてください。 最近PICを初めまして、12F683とMikroCでやってます。 ピンに4個LEDを付けて(正確には2SC1815を噛まして) 光らせています。 ところが GPIO = 0b00110011; と書くと全て明るく光るのですが GPIO.F0 = 1; GPIO.F1 = 1; GPIO.F4 = 1; GPIO.F5 = 1; と書くとF5のみ明るく光り他は弱々しい光です。 個別に明滅を制御させたいので困っています。 よろしくお願いします。
382 :
774ワット発電中さん :2009/01/16(金) 22:21:15 ID:BN/fmeXk
CMCON0は確認した? CMCON0 = 0x07;とか
そう、初期設定でソレが必要 CMCON = 7;
>>382-383 CMCONを追加したら無事動作しました。
不勉強でお恥ずかしいです。
大変ありがとうございました。
385 :
774ワット発電中さん :2009/01/17(土) 01:25:28 ID:tK21lzak
マルチで申しわけありません 初心者スレで回答してくれる人がいなかったので 厚かましいですがもう一度質問させていただきます。 dsPIC30F4012で10bitADコンバータを5つ使おうとしているのですが 変換したデータがどれも同じデータ(最後に変換したAN4のデータ)になってしまいます。 AD変換したデータをバッファメモリに保存する際に 同じアドレスに保存されるのか,違うアドレスに順番に保存されるのかが分かりません。 読み出すアドレスを変えると0の値のデータが出てきます。 // 測距センサデータ取り込み for(i=0;i<5;i++) { SetChanADC10(Channel[i]); //チャンネル選択 ADCON1bits.SAMP = 1; //サンプル開始 while(!ADCON1bits.DONE); //変換完了待ち Data[i] = ReadADC10(0); } このプログラムをメインに書いてwhileでループをかけています。 やり方が間違っているのでしょうか?
>>385 OpenADC10()のパラメータとChannel[i]の中身がわかんねぇとな。
それはともかく・・・サンプル開始と(サンプル終了)A/D変換開始は別だぞ。
入力を一時保管するバッファは複数あっても、 ADコンバータ本体は一つしかなくて、出力データを貯めるレジスタも一つだけ。 ってタイプが普通のような気がするんだけど?
あー、ひょっとして、最適化されて、ループが消えてる可能性があるのではないかな。 volatile宣言したか?
>>388 volatile宣言はヘッダーのお仕事ですね。
C:\Program Files\Microchip\MPLAB C30\support\dsPIC30F\h\p30f4012.h
390 :
774ワット発電中さん :2009/01/17(土) 16:29:40 ID:Eyzs02qB
>>384 あまりプログラムばかり書くのもどうかと思いまして…
すいません。以下のようにしています。
// ADコンバータ設定値定義
unsigned int ADConfig1 = ADC_MODULE_ON & ADC_IDLE_CONTINUE & ADC_FORMAT_INTG
& ADC_CLK_AUTO & ADC_AUTO_SAMPLING_ON & ADC_SAMPLE_INDIVIDUAL
& ADC_SAMP_OFF;
unsigned int ADConfig2 = ADC_VREF_AVDD_AVSS & ADC_SCAN_OFF & ADC_SAMPLES_PER_INT_15
& ADC_ALT_BUF_OFF & ADC_ALT_INPUT_OFF;
unsigned int ADConfig3 = ADC_SAMPLE_TIME_31 & ADC_CONV_CLK_SYSTEM;
unsigned int ADConPort = ENABLE_AN0_ANA
& ENABLE_AN1_ANA
& ENABLE_AN2_ANA
& ENABLE_AN3_ANA
& ENABLE_AN4_ANA;
// AN0〜AN4までアナログ
unsigned int ADConScan = 0x0000;
unsigned int Channel[5] = {ADC_CH0_POS_SAMPLEA_AN0 & ADC_CH0_NEG_SAMPLEA_NVREF,
ADC_CH0_POS_SAMPLEA_AN1 & ADC_CH0_NEG_SAMPLEA_NVREF,
ADC_CH0_POS_SAMPLEA_AN2 & ADC_CH0_NEG_SAMPLEA_NVREF,
ADC_CH0_POS_SAMPLEA_AN3 & ADC_CH0_NEG_SAMPLEA_NVREF,
ADC_CH0_POS_SAMPLEA_AN4 & ADC_CH0_NEG_SAMPLEA_NVREF};
OpenADC10(ADConfig1, ADConfig2, ADConfig3, ADConPort, ADConScan);
サンプル開始させてから手動でサンプル終了させなければいけないということでしょうか?
>>387-388 [AN0をADC]→[バッファ]→[バッファからData[0] ]→
[AN1をADC]→[バッファ]→[バッファからData[1] ]→…
のつもりなんですが…レジスタが1つというのはData[i]という書き方がだめということでしょうか?
volatile宣言については初耳です。調べてiにかけてみましたが変わりませんでした。
>>390 いまいち判らんが、
CH0のみで順次切替+手動サンプル+自動変換開始+シングルバッファ+変換毎readなら
ADConfig1 では ADC_CLK_AUTO & ADC_AUTO_SAMPLING_OFF
ADConfig2 では ADC_SAMPLES_PER_INT_1 じゃね?
それでA/D変換開始はサンプル開始と別で少し後なんだから
SAMP set直後からDONEみるのは拙そう。
IFS0bits.ADIF = 0;
ADCON1bits.SAMP = 1; //サンプル開始...自動変換開始
while(!IFS0bits.ADIF); //変換終了待ち
・・・が委員じゃね?
>>391 ConvertADC10()の中身は
ADCON1bits.SAMP = 0; /* clear SAMP to start conversion*/ だろ
BusyADC10()の中身は return !(ADCON1bits.DONE); だし
主に16F886 にmikroC のフリー版を使用していますが 制限の2kワードを越えるプログラムが必要になり フリー版を卒業しようと考えています。 CCS C … 資料豊富だが癖があるとの情報 mikroC … フリー版良かったが資料が少ない 関数は多いほうが好みなので上記2点が候補です。 価格も同じくらいで迷っています。 今後を考えるとどちらが良いかアドバイスをお願いします。
フリーのmikroCはいいんだけど バージョンアップ多すぎな感じがする
>>394 ソフト買うくらいならdsPICかAVRに引っ越した方が良いよ。
AVRなんか制限の無い無料のコンパイラがあるし、dsPICは……なにか制限あったっけ?
mikroシリーズはバグが多すぎる気がする。
_,,..,,,,_ Pickit3まだ? ≡ ,' 3 ヽヾヽ ≡ l U j! _ )))_ ≡⊂'_"j ノ'" ヽ从/ ビダァァァン ≡と_,,,. .-‐'´ ⊂ j! ゞ  ̄ ̄ ̄ ̄ ̄ ̄ ゛'''''‐---ー '  ̄ ̄ ̄ ̄ ̄ ̄
>>394 コンパイラを自分に合わせるんじゃなくて自分をコンパイラに合わせた方が早い。
と思う。同じく886をメインに使ってるけどHI-TECHのコンパイラ使うと制限なく使えるよ。
素人の俺が使えてるんだから問題ないでしょ。
>>394 CCS-Cでいいだろ。癖あるけどmikroC程じゃない
関数や各種ドライバ例が豊富だし、mikro系と違って
MPLAB (IDE)統合環境で純正ICD2/PICkit2とかICD可能
CCS-Cってバグ多くないか?…怖くて使えないものがw
>>394 dsPICはともかく、18系にすれば、コンパイラがフリーになる。
最適化オプションが使えないけど、あまり気にしなくてヨロシ。
各社のC言語って毎年お布施が必要な物もあるよね。 あれっていくらなの? C18は無料だけど。
Hitech C for pic も最適化が無いだけで、殆どのデバイスが使えるぜ。
HITECH PicC Pro(lite mode)は関数乏しいし 最適化が無いだけじゃなく、 嫌がらせの増量汎長コード吐くよな。 あれで満足しちゃう人って・・・
406 :
774ワット発電中さん :2009/01/19(月) 10:31:44 ID:lahFdMHb
>>405 フリーのコンパイラに何を求めているんだか。そこらのコンパイラよりも不具合ないし。
SDCCでも使って頭パニクってろよwww
有料コンパイラでどれがいいかって話の流れだろ。 低レベルなクズの方に引っ張るのは止めれ
有料っていっても、結局無料版と品質は一緒 最適化有効になったところで、最適化でバグる 関数いっぱいついてきてもバグだらけ
PICKIT2でdspic30f2012をデバッグしたいのですが一向にできません 書き込みは可能なのでPICKIT2が壊れてるわけではないようです もしかして他の機材を買わないとだめなのでしょうか?
>>409 先月頃、俺が出した結論は、MPLAB IDE8.15aでは対応していない。
だった。
たぶんaが取れたのがリリースされたら対応するのだと期待している。
>>410 ありがとう
やっぱり対応してないのね…
名古屋で10F200の小売をしているところご存知の方いらっしゃいます?
413 :
394 :2009/01/19(月) 16:16:44 ID:fIWGMMpM
>>395-400 いろいろありがとうございます。
それぞれ決め手に欠けるようですね。
>>399 でそれほど大した癖でもなさそうな印象を受けたので
CCS-C を優先してみたいと思います。
ただ、
>>396 の様にAVRへ引っ越したほうが良いとは良く聞きますね。
遅かれ早かれと言ったところでしょうか。
414 :
774ワット発電中さん :2009/01/19(月) 17:06:13 ID:cv8jrUwL
CCS-Cで、PIC18の割込みレベル「高」,「低」の設定って、どうやるんでしょうか? プリプロセッサ命令#priorityを使って、下記のようにやってみたけど・・・・、 #priority ext1,timer0,timer1,rda,tbe,timer3,ad デバッガで止めて、INTCONレジスタとIPRレジスタの中の割込優先レベルフラグを 全て確認してみたが、各**IPフラグは全部「1」のままだった。(「0」にされてる奴は一つもない。) 設定が効いてないみたい。もう、インラインアセンブラで書くしかないのかなぁ・・。
>>414 #device HIGH_INTS=TRUE と高位割込み使用にして
#int_ext1 high みたいに各高位割込み指定すれば桶
>>413 まずは24系でC30の世界を試して見れ。タダでほぼ無制限だし。
AVRへの引っ越しを考えるのはそれからでもいいだろう。
AVRを使うならARM7を使ってみたい 実際どの程度のものなのかはデータシート見ないとわからないけど
>>413 個人的にはmikroCの方が使いやすいなぁ。
慣れているっていうこともあるけど操作がしやすい。
最近はmikroCもバグが減ってきていると思うよ。
あとは使ってみて個人的にどれに馴染めるかって言うことだと思う。
mikroCでタブを入力すると 大量の半角スペースになってしまうんですが これをタブのままにしておけないでしょうか optionの所見ても見当たらなくて困っています
MikroC割り込み中にpwm duty 変更できんのね・・・・
>>419 Option の [Tabs To Spaces]のチェックを外す。
はずしてるのにならないなら、チェックをつけてMikroC終了させ、
再度、起動してもう一度はずせば、いけたような。
422 :
774ワット発電中さん :2009/01/20(火) 09:24:27 ID:S8mnhgx+
Hitech C for PICのバージョンが9.60pl5になったお。 マイクロエレクトロニカのCってちょっと癖があるよな。更新も止まってる。 CCSとソースブーストは構文が特殊で移植性に乏しい。
>>421 ありがとうございます。
スペースに化けなくなりました。
話し変わりますけど
初心者の自分はMikroCがとても使いやすいです。
IDEそのものもですが、参考回路図まで付いたヘルプが
初心者の自分には大変有り難いです。
mikroシリーズは確かに使いやすいな。 ……バグさえなければ。
CCS使ってるけどそんなにいいなら買ってみるか・・・・ 体験版はあるのかな?見てこよう。
仕事で必要とかでなければPICの12Fや16F系のコンパイラは買わない方が良いぞ、いろんな意味で。
>>426 その、いろんな意味とやらを皆が知りたがっているのだが。
429 :
774ワット発電中さん :2009/01/22(木) 01:18:04 ID:UCAsNp7c
片方のPIC16F84Aに8つのボタンをつけもう一つのPIC16F84Aにつないだ LCDに0から7までの数字を出すプログラムはどう書けばいいのでしょうか 二つのPICはシリアル通信で一つずつのPINで接続します
・LCDの使い方 ・シリアル通信の使い方 ・スイッチの入力 の、どれがわからないのかすらわからんけど、1個でやれば。
431 :
774ワット発電中さん :2009/01/22(木) 01:29:41 ID:UCAsNp7c
すいません本当は赤外線リモコンをつくるので2個でやらないといけないの です LCDはなんとか初期化できました スイッチを押して違う信号を出してLCDに数字を表示するやり方が わかりません
>>431 ・LCDの使い方
・シリアル通信の使い方
・スイッチの入力
がすべて含まれてるな
なにもわからんということか
433 :
774ワット発電中さん :2009/01/22(木) 01:48:12 ID:UCAsNp7c
すいません ぶっちゃけそうです
434 :
774ワット発電中さん :2009/01/22(木) 02:07:03 ID:SUDcrhLn
このスレの住人て、大したスキルもないのに妙に偉そうなんだよな。 軽いs
今日mTouchセミナの日だけど、行く人います?
スイッチ読む 符号化する 符号化した信号を1ビットづつシフトしながら赤外線信号用の変調プログラムにつっこむ 変調プログラムで突っ込まれた論理信号を赤外線通信のフォーマットに従った論理信号に変換 出てきた赤外線出力用の信号を赤外線LEDのドライバプログラムへ突っ込む 赤外線受信用ICのフィルタに合うパルス変調を行って赤外線LEDを点灯させる 送信側はこんなもので良い?
>>429 >>431 mikroCで送信側書くと・・・
while(1){
if (button(&PORTB,0,10,1)) SW_0 = 1;
if (button(&PORTB,0,10,0) && SW_0)
{ Soft_Uart_Write("0"); SW_0 = 0; }
if (button(&PORTB,1,10,1)) SW_1 = 1;
if (button(&PORTB,1,10,0) && SW_1)
{ Soft_Uart_Write("1"); SW_1 = 0; }
// ・・・
if (button(&PORTB,7,10,1)) SW_7 = 1;
if (button(&PORTB,7,10,0) && SW_7)
{ Soft_Uart_Write("7"); SW_7 = 0; }
}
439 :
774ワット発電中さん :2009/01/22(木) 16:23:47 ID:ZWo0nL53
ありがとうございます 皆様
それだけかよ!
441 :
414 :2009/01/23(金) 08:34:53 ID:hew0uWHc
>>415 返事遅れまして、スミマセン。
解決しました。ありがとう。
しかしCCS-Cは、実際の特殊レジスタに書き込む内容をプリプロセッサ命令で決定する
ってスタイルが好きだね。
本来、プリプロセッサはあくまで疑似命令であって、コンパイル時にマシン語には
翻訳されないはずのものなのに・・。
プリプロセッサを通した後の、コンパイル寸前の段階のソースコードが 見れれば何か掴めるかな。 gccなら -Eオプションみたいな。
浮動小数点の桁落ちで困っていまして mikroC で倍精度浮動小数点を扱う方法はありませんか? インラインでも良いのでできる方法があれば教えてください。
mikroCでは for dsPICでも float/double型が同じw 倍精度扱うならC30に汁。
Pickit3 1月発売!!  ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ O 。 _,,..,,,,_ / ,' 3 `ヽーっ l ⊃ ⌒_つ `'ー---‐'''''"
449 :
774ワット発電中さん :2009/01/26(月) 18:53:28 ID:gc/Ub/vy
まだごだびんがレポートして汚してない。 とか。
> みんな1月発売のPICkit3を楽しみに待ってるけど いかにも2ch初心者だな。 楽しみにしているのはごく一部で大多数はあまり気にしていない。 気にしていないから誰も「気にしていない」と書き込まないんだよ。 2chでは書き込みするやつはごく一部の人間だとまず覚えよう。
そのりくつはおかしい。 ほとんどの人が期待してないことには同意。
まあ、基本ROMだよな 書き込むときは必要になったときか、相手が必要そうな情報を教えるときくらいか
これ以降買う人は3を買うだろうってくらいかな? 値段も発表されてる? 安くないとそっちに移行しないんじゃないかな。
やっぱPICスレは書き込み機のスレなのね。 Programmer Interest Community
PIC16Fシリーズも18Fも24Fも値段が同じくらいなものなら 高機能な24F、少なくとも18Fを選択したほうが良いと思うのだが 何で未だに16Fが頑張ってるの?
コンパイラ変えるのも面倒だしね 金もかかるし
458 :
774ワット発電中さん :2009/01/27(火) 20:23:56 ID:lKtOa/uU
スキルがないから.... 後漢さんの教導がないから.... PCのポート壊すリスクや、スリリングな書き込みが楽しめないから....
>>456 16Fの方が断然安いから、28ピンPICで比較してみると
16F886 190円(安い!)
18F2550 500円
単に情報が無いからじゃね? 新しいマイコンを自力でスタートできる人って殆どいないからねぇ。
USBが使えることを考えると高いとはいえないと
用途と価格で選ぶんでしょう USBを必ず使うとも限らないし
アセンブラで18F組んでるともう16Fに戻りたくない
コンパイラで組んでるともうアセンブラに戻りたくない
そのコンパイラが使えないからみんなアセンブラなんじゃね?
アセンブラで引き算すると必ずバグを生み出してしまう 割り算と引き算はアセンブラ好きくない PIC18Fばかり使ってるとPIC16Fのincf・decfでもバグってしまう
Cだと余計なバグが入る余地があるから、簡単な仕事に使うにはアセンブラが良い。
12F683を使うときだけアセンブラ。 他はすっかりCだな。
>>467 計算式で余計なバグというと、数字の桁あふれのことかな?
意図的にキャストつける癖をつければいいが。
470 :
774ワット発電中さん :2009/01/28(水) 07:44:31 ID:R5eO6StX
この世はCが当たり前と思ってROM ばかりだったけどアセンブラでやって いる人も結構いるんですね安心です。 ちなみに自分はささいなプログラム でもフローを書くので周りからは 設計遅いと言われて小さくなってます。
471 :
467 :2009/01/28(水) 08:25:58 ID:UtiCRIZ2
>>469 Cで発生する余計なバグは計算だけじゃなくて、かなり広範囲に渡る。
制御用には本質的に向かないと思うよ。使う人間の問題も含めてだけど。
計算にしたって、アセンブラなら、演算ルーチンなんて自作ライブラリを使いまわしてるから
バグの入り込む余地は殆ど無いし、そもそもプログラムを設計する時点で数値の意味は
決まってるからキャストなんて不要。
まぁまぁ、少し落ち着きなされ
アセンブラによるプログラミングで発生するバグは、極めて広範囲に渡る。 制御用には本質的に向かないと思うよ。 業務なら特に
まぁまぁ、好きなもの使ったらよろしいですやん
PICしか使わないならアセンブラでいいよ。引きこもってな。
おどれらいい加減にせえよ
アセンブラだとレジスタのPUSH/POPの順番を間違えたり、PUSH/POPの数が 合ってないと簡単にバグるし、暴走するよね。 呼び出し先で汎用レジ スタが破壊されるとか。 Cはそこらへんが自動化されているから、そういうバグはまず出ない。 逆にアセンブラではそれを逆手にとってトリッキーなコードを書くことも できるけど、保守性や可読性を考えたら、薦められない。 あぁ、PICは暴走しないんだっけ?(w
どういった意図を持って書込みしてるのか理解できないんだけども 何がしたい? アセンブラを使ってる人にCを使わせたいのか? C使ってる人にアセンブラ使わせたいのか? 立場も好みもそれぞれ違うんだから 好きにしたらええんちゃうん?
>>471 まぁまぁ
最近は分岐予測などを行うMPUあるので一概にアセンブラが良いとは断言できない。
さらに業務で使うには移植や保守を考えるとアセンブラの立場は狭い。
もちろんアセンブラにも良いところあるのでそれらをうまくライブラリー化し
Cとアセンブラの混在プログラムを書く事もできるのでそれぞれの特徴を生かし
使うことが最善だと思うぞ。
480 :
774ワット発電中さん :2009/01/28(水) 12:05:10 ID:L9aHupzf
書き込み機とアセンブラVS高級言語ネタ以外ないのかね。 なんか作れよおまいら。
わざわざアセンブラでプログラムを組む必要性にかられた事が 無いし、組む必要も無いと思ってるけど アセンブラの知識を持っていないと損してるとも思う。
12Fや16Fのアセンブラは変態だと思う。
483 :
774ワット発電中さん :2009/01/28(水) 13:27:40 ID:L9aHupzf
つーか、CPUアーキ自体が変(ry
つーか、ピカピカくらいしか作るモンないし。
クロック計算してみたいなやつとか。 テレビの信号作るようなやつとか。
つーか、レジスタが1つしか(ry
>>467 開発規模とかデバック作業の時間によって変わるだろ、、そんなの
例えばFATファイルシステムとかをPICのアセンブラ使って構築する能力の持ち主が
そんなに存在するとは思えないけれど
業務でどんなの作ってるか知らんけれど、たいした規模の開発じゃないんだね
うらやましい、、、
ところで今更のように PIC16F18xx/19xx系とか Enhanced Mid-range Coreと称して命令拡張なんかされてるけど どう思う? まだまだPIC16シリーズ品種が増えそうだね。
>479 ここPICスレ
CCS PCMでの文法に関する質問なのですが 割り込み関数定義の"#INT_xxx"の次の行に関数そのものを記述するのではなく プロトタイプのみ記述し実際の関数は他のところに書いても正常にコンパイルできますか?
>>487 たいした規模なら、PICにこだわる必要はないと思うけど。
CPUは暴走なんかしない。書かれたとおり動いているだけだ。
>492 それは嘘。 ハード障害を失念している。 それを加味しても、PICは暴走しないのだというのが、千葉の誰かの主張。
>>488 Microchip純正でC16が出そうな気がする。
FSR1個目がスタック、2個目がROM・RAMも読めるポインターになりそう。
MPLABのLinkerが使えると助かるね。
Z80・6802・8085・8749のアセンブラ使いだったから四則演算では楽がしたいねぇ。
>>492 暴走した。
picの隣で20w送信したらとんだ。
おかげで1200円が・・・・
EMPだな。 ご愁傷様です。 秋月で100ピンのdsPICが買えるのを見てびっくりしたが、その値段もびっくりだ。 digi-keyで値段合わせに1個買うくらいなら秋月の方十分安いや。 …どうせだからdigi-keyで変換基板に乗せられたやつとか売ってないかなぁ…。
PICとスイッチを繋げてシリアル通信するだけの回路です。 PICのピンに流れる電流をテスタで計るとスイッチの状態に連動して変動することが 確認出来るのですが、プログラムで読むとスイッチの状態に関わらず常に1が返って きてしまいます。 以下のプログラムなのですが、どこがおかしいか教えて頂けると助かります。 PICはPIC24FJ64GA002です。スイッチはRB9に接続してあります。 とりあえず ・他のPICで試したみた ・他のポートに繋いでみた ・内蔵プルアップをONにしてみた のですが、どれも同じ結果でした。 #include "p24FJ64GA002.h" #include "libpic30.h" #include "uart.h" _CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & ICS_PGx1 & FWDTEN_OFF ) _CONFIG2(IESO_OFF & FNOSC_FRC & FCKSM_CSDCMD & OSCIOFNC_ON & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_NONE) int main() { CLKDIVbits.RCDIV = 0; //postscaler = 8MHz AD1PCFG = 0xffff; RPINR18bits.U1RXR = 7; // U1RX = RP7 RPOR3bits.RP6R = 3; // U1TX = RP6 TRISB |= 0xff00; U1MODEbits.UARTEN=1; U1STAbits.UTXEN=1; U1BRG = 25; while (1) { __delay32(500000); if(PORTBbits.RB9 == 1){ putsUART1("1"); }else{ putsUART1("0"); } } }
pickit3マダー?
俺…Pickit3が出たらpic始めるんだ…
500 :
774ワット発電中さん :2009/01/29(木) 17:33:46 ID:I0PL0yd0
>>497 電流の変化をpicの01で?
電圧のon offか?
電流だったらハードのミスだな〜
501 :
497 :2009/01/29(木) 17:43:02 ID:VndbY4Za
>>500 ごめんなさい、電圧です。単なるスイッチです。
> TRISB |= 0xff00; こんな表記もあるんだ・・・使ったことないからびっくりだ。 とりあえずダイレクトにGNDにRB9を落としてみた? それでも1ならわかんない。
>>497 >>502 > TRISB |= 0xff00;
TRISBのリセット初期値は0xffffなので拙かろう。
504 :
497 :2009/01/29(木) 21:42:44 ID:3Oqa7uX1
今は回路が手元に無いのですが、わかりました… 電源 --- SW --- PIC となっていて、たぶんスイッチがグランドに落ちてないです。 なのでSWの状態にかかわらずHIGHで、PICのピンにテスタを当てる事でと 正常に動くというオチのような気がします。
テスタで何を確認してたんだ?
>>504 さてはお主、電流レンジでテストリードを当てたな?
テスタの使い方(中学校の理科の教科書)から勉強しなおすように。
507 :
497 :2009/01/29(木) 22:30:40 ID:3Oqa7uX1
あれ? テスタがプルダウン抵抗の役割をしてたんじゃないかと思うんですが 見当違いですか?
>>507 内部抵抗値、ドライブ能力など調べてみると良いかもです。
>>479 確かに適材適所だな。
たった4KのプログラムにCを使わなくちゃいけない理由は、バイナリを無駄に大きくして
いかにも大層なプログラムの様に見掛け倒しのパフォーマンスが必要な時とか?
客向けの期間の迫ってる仕事じゃアセンブラなんて使わん。 時は金なりならCを使う。 PICと限らないこともあるからな。 アセンブラなんてZ80や8051使ってた頃位しかなくて、ニーモニック覚えたって 今じゃなんの役にもたたん。これからはメンテナンスができるCとかそれに 準ずる言語が一般的だ。
年がら年中同じ石とにらめっこしてるとかならアセンブラオンリーで いいのかもしれないね
そーいえば学生の頃、計算機基礎講座でアセンブリの課題にフォートランで書いた レポートを提出して先生に叱られてた奴が居たのを思い出した。 彼曰く「数行で書けることをなぜわざわざ低級言語で(ry」 お前はなんでこの授業選択したのかとw
その言い訳は計算機や辞書、PCを持ち込んでテスト受けるようなもんだな。 対して、秋月の格安ベースラインから始めようとしている自分はまるでおはじきで算数を学ぶ小学生ですな。
>>511 8bit以下のPICでもそうなら、単なるバカ。
516 :
774ワット発電中さん :2009/01/30(金) 19:33:35 ID:WSoBB4Kn
>515 低級言語バカor素人or書き込み機マニアorLED点滅職人
俺はCを使ってLED点滅職人orz
俺もCを使ってLED点滅職人part2orz
LED点滅職人 ↑座布団1枚
> 8bit以下のPIC 4bitのPICもあるのか?
>515 これから新しくPICの世界に入ってきた人たちには、自前のアセンブラのライブラリとかないし、 いきなり数多くの石を使わされる羽目になるので、Cを使うんじゃないかな。 先輩たちのライブラリがあるとしても、そのリストを把握して使いこなす時間がかかるのではないかと。 身近な話だと、ガッコで習ってくる言語がCだったりCASL(!)だったりするので、 じゃあこのPICではCで開発でいいやってなってる。
>>520 「以下」だから、8ビットでもアセンブラでいけるだろうし、それ以下なら尚更だ、とか言いたいのでは?
ザイログ系マイコンで8ビットのアセンブラをよく触るけど、
アセンブラでいちからライブラリみたいなものを作るのはひじょーにめどいな
お、なんかおかしい ×それ以下なら尚更だ ○それより下なら尚更だ だな。
言語の話で盛り上がってるなぁ〜 俺的には今はC言語で充分だと思うがでもアセンブラは知っているほうが絶対に良い。 ニーモニックを知っているとかではなく、アセンブラでの組み方ね。 そっちの方がC言語でも効率の良いプログラムが書けると思うんだがね〜。 まぁおれの個人的意見だが。
525 :
774ワット発電中さん :2009/01/30(金) 22:50:51 ID:5+4isUxa
実際問題、なんでもかんでもCで組もうとする奴って、物凄くセンスが悪い事が多い。 人相手のプログラムならまだしも相手が機械や様々なデバイスの場合、自分の能力の低さを棚に上げて CPUをUPグレードしないと無理とか言い出す。しかも、センスが悪いから、高速なCPUを使って無理やり 動かしても信頼性の低さは改善出来ない。 まあ、お陰で仕事が回ってくる訳だが。
> 、物凄くセンスが悪い事が多い。 センスで仕事してないからなぁ。 趣味じゃないし。 > 高速なCPUを使って無理やり 低速なCPU使って無理やりの方が可読性が悪くて今日日は排除対象。 受託でやってるなら、考え直した方がいいと思う。 > CPUをUPグレードしないと無理 PIC程度のCPUのupgradeって、ピン足りないとかメモリ足んないとかそんなもんでしょ。 そんなの声高に主張する人いないって。
527 :
774ワット発電中さん :2009/01/30(金) 23:05:05 ID:dmpNd1FK
つーか、世の中のマニュアル車とオートマ車の比率考えればわかるでしょ。
528 :
774ワット発電中さん :2009/01/30(金) 23:28:11 ID:jFXNSweV
オートマ免許だとオートマしか運転出来ないのと関係が似てるね。
先に言っておくが ガンダムの主人公もロボット工学に長けてるぞ 特にアムロとカミーユは
そう、それもある。 でも、基本移動手段。A->Bにいければいいし。 運転下手な人が無理にマニュアル乗れば事故るけど、オートマで生まれた余裕を安全にも振れるし。(お金にも振れるけど。) 何より、運転代わってくれる人が沢山いる。今はこれが大事。 いまどき軽だからマニュアルって図式はないし、F1とて、ローンチコントロールしてるくらいだし。 手段重視じゃなくて、目的重視だと、おのずと.... アセンブラ職人よりも、並みのファーム書いてくれて、PC側アプリまで触れる方がうれしい。
おいおまいら、LLVM方面で The PIC16 port of LLC is now usable. It works with Clang. だそうですよ。 アセンブラ職人はどんなコード吐くのかチェックに急行頼む。
532 :
774ワット発電中さん :2009/01/30(金) 23:53:09 ID:uLSV/+NY
実際問題、なんでもかんでもアセンブラで組もうとする奴って、物凄く根性が悪い! 単なる趣味のプログラムならまだしも、自分の能力の低さを棚に上げて アセンブラでなくCで組む奴はセンスが悪いなどと無茶苦茶なことを言い出す。 実際のところ、言語は択一じゃないから混在して構わない。 Cではプログラム処理を可読性の高い様式で簡潔に記述できるので 効率的にプログラムが組める。 必要ならば部分的にアセンブル記述と組み合わせてもok。 一方、全部アセンブラ記述って非効率だし、アセンブラ主体で部分的に C等の高級言語組み合わせとか、やってもメリット無いよね。
言語なんて年齢の数程度は使えないと話にならないだろ。常識的に考えて・・・
最近は、ハードもCだしねぇ。 いまどきAND,ORとかで組まれた日にゃ、後任はワケワカ。 書いた人しか読めない”高度な”記述する人って、問題起こしてバックレるしね。 中庸は徳である。と。
535 :
774ワット発電中さん :2009/01/31(土) 00:28:32 ID:G/C2arNP
PICは絶対暴走しない=アセンブラ至上主義=千葉県人=秋月スレコピペ荒らし??? 軽石に始まり、PIC関係者は説教癖のある好人物が多いね。 つーか、PICでなんか作ってみろよ。
536 :
774ワット発電中さん :2009/01/31(土) 01:05:40 ID:8F+t02ZE BE:1147248184-2BP(0)
好きなほう使えばいいじゃん アセンブラでもCでもコード効率とメンテナンス性の天秤でしょ どうせ先のことなんて分かんないし気分で使い分けてるよ 大体みんなこんな感じじゃないの?
537 :
774ワット発電中さん :2009/01/31(土) 01:06:24 ID:8F+t02ZE BE:860437038-2BP(0)
それはそうと、Pickit3 出ないじゃん!
>>537 なるほど、それでみんなカリカリしてんだなw
納得した!!
仕事でPICを使うならば、先々の事や作業性から考えてC言語を使うだろ コンパイラがダメダメちゃんでも、アセンブラと比べて作業効率が断然違うし 解読性が良いから、自分がその業務から退いた後でも比較的気分が楽 8bitだからアセンブラっていうのは、仕事では極力避けるべき 仕事でLEDチカチカ程度より少し高度なものを、プログラムメモリギリギリまで駆使して C言語で組むのは納期内に製品が出来上がればよいだけで、HEXファイルが汚くても 顧客はそんな所まで見ない 逆に見る顧客は相手にしたくない 一番コストで高いのは、人件費 人件費には、教育も含まれてるから アセンブラで組んだ方が早いっていうのは、仕事では成り立たない まあ、大体C言語を毛嫌いする人の8割はC言語を使えない人なんだろうけれど
C言語だから駄目というより、性能ギリギリでCPUを選定するシステム設計が駄目 だからアセンブラ馬鹿が調子にのる 価格の問題なら、高く見積もりだせない営業が駄目 価格競争で仕方ないのならばその仕事は下りるべき 価格において中国、インドには勝てない そもそも、C言語による開発で発生するトラブルよりノイズとかで起こる トラブルの方が多いと思う そこで皆さんに質問! ノイズ対策はどうしていますか? 0.1uF程度のパスコンだけはありえんと思うけれど
0.1uを電源ピンに何も考えずに入れる。今のところそれで問題は起きてない。 一度pinの変化割り込み使おうとしたら、予想外のところで割り込みかかる問題が発生したことがあったが 対策せずにカウント式にして逃げた 正直細かいところにこだわる時間がないので問題発生しても大体ソフトで逃げるな
543 :
774ワット発電中さん :2009/01/31(土) 08:03:56 ID:D7gF05zF
ノイズ対策はカットアンドトライ、だいたいCRで回避、低速なんで。 >540 >まあ、大体C言語を毛嫌いする人の8割はC言語を使えない人なんだろうけれど →あると思います。自分も・・・
>>541 > 性能ギリギリでCPUを選定するシステム設計が駄目
逆に、性能ギリギリって、実際にどんな選定基準で判定しているのか聞き
たい。 大抵はクロック数と命令ステップ数で計算しているなんて言うん
だろうけど、複数の割込要因が最悪条件で同時発生するとか、考慮して
いないように思える。
あと、実装後検証での、本当に最大負荷で「ギリギリ」に収まっているか
どうかの検査もどんな手法でやっているのかと。 信号発生器とかパターン
ジェネレータ使って外部割込発生させたりして本当に検証してるのか?
むしろ、何か暴走とか不具合出た時の言い訳が、「性能ギリギリなんで」
なんじゃないかと思う。
>>543 > ノイズ対策はカットアンドトライ、だいたいCRで回避、低速なんで。
某大手メーカーで、静電気試験とかで暴走しないように、リセット信号
のCPU直近に、103とか104のコンデンサぶら下げるのが、常態化してるの
見たことあるんだが、これってどうよ?(w
545 :
774ワット発電中さん :2009/01/31(土) 12:19:48 ID:Qq4UcdTm
Cを嫌う書き込みは単に買う金ないから アセンブラを嫌う人間はアセンブラ(ハードも)が理解できないから。 そんな言い合いより何を作るかだろ? 手段はどうでもいいよ。
アセンブラなんてCのインラインで使う物だと思う。 そりゃPIC12とか使ってれば別だけどね。 PIC程度だとスキル的に「アセンブラ > C言語」じゃない。むしろ逆。
アセンブラは嫌いだよ。読みにくいし組むの大変だし。 でも使えるから、Cで組んでて無理なところはインラインアセンブラを有効利用してる。 逆アセンブルリスト見ながらCのソースを手動で最適化したりもできるからアセンブラはわかってると便利。 PIC18Fでポインタ使ったりすると、Cでの書き方で倍以上速度変わるから必須だと思う。
ヤだなぁ、手段は容易に目的化してしまうのですよぅ。 そしてライター製作ばかり流行る。 さて、次はどんなライター作ろうかな。
549 :
774ワット発電中さん :2009/01/31(土) 14:50:49 ID:PiVtBfhX
_,,..,,,,_ Pickit3まだ? ≡ ,' 3 ヽヾヽ ≡ l U j! _ )))_ ≡⊂'_"j ノ'" ヽ从/ ビダァァァン ≡と_,,,. .-‐'´ ⊂ j! ゞ  ̄ ̄ ̄ ̄ ̄ ̄ ゛'''''‐---ー '  ̄ ̄ ̄ ̄ ̄ ̄ _,,..,,,,_ Pickit3まだ? ≡ ,' 3 ヽヾヽ ≡ l U j! _ )))_ ≡⊂'_"j ノ'" ヽ从/ ビダァァァン ≡と_,,,. .-‐'´ ⊂ j! ゞ  ̄ ̄ ̄ ̄ ̄ ̄ ゛'''''‐---ー '  ̄ ̄ ̄ ̄ ̄ ̄
たかっwwwwwwwww 買えねえよwwwwwwwwwwwwww
552 :
774ワット発電中さん :2009/01/31(土) 15:05:24 ID:8F+t02ZE BE:860436364-2BP(0)
>>551 デバッグエクスプレスだから送料抜けばPickit2と値段変わらなくね?
基板なしはいつ出るんだろ・・・
554 :
774ワット発電中さん :2009/01/31(土) 16:01:42 ID:PiVtBfhX
高校生だからpickit2買いまつ・・・・・・
555 :
774ワット発電中さん :2009/01/31(土) 16:07:28 ID:P92ANGtY
うおおおおおおおおおおおおおおおおお遂に販売したのか? 価格が6300円って安すぎだなおい。 PICkit2持っているけど、3倍早いって噂だからな。 品薄になりそうなので、ちょっくら注文して来る!
556 :
774ワット発電中さん :2009/01/31(土) 16:15:27 ID:PiVtBfhX
>>555 安いのか・・・・・・・
やっぱり買いたくなってきた。凄く迷ってる。
これでJDMライタ使わんくて良くなる。
俺は基板なしが秋月に出たら買う
>>555 > 3倍早いって噂だからな。
2とは違うのだよ!2とは!
・・・ってこれは青いほうか。
3倍早いメリットってなに?
気分がいい
ライバルに差をつける
ライタのコレクションが増える。 これでライタが作れる。
低電圧プログラミングはメリット。 Pickit2/ICD2だと給電時ダイオードで降圧とか面倒。
>>550 PICkit3 Debug Express $69.99
PICkit2 Debug Express $49.99
PICkit2単体 $34.99
PICkit3 40%UPか。
Fedex代他が約$20だから
$70+$20=$90 * @95円=8,550円か。
書込み速度が3倍速くなった。低電圧プログラミング可の魅力と比較しても高いな。
PICkit3単体が秋月に出たら考えよう。
566 :
アセンブラなんてめんどくさい :2009/01/31(土) 23:58:57 ID:2h7dDU7S
dsPICのC30コンパイラって、gccがオリジナルらしいけど、C++でも書けるのかい?
>>564 ちょっとまって。書き込み速度3倍って・・・
赤い→シャア専用→通常の3倍
から来たネタですよね?本当の変更点は
>>453 ですよね?
本当に3倍速いんなら購入を考えちゃいそうなんですが・・・
>>565 > PICkit 2 Programmer Software v2.60 Released - Jan. 30, 2009 7:24:17 PM
> Support for Low Voltage Programming of applicable devices.
あっれ、これってPICkit3の目玉機能じゃなかったっけ・・
569 :
774ワット発電中さん :2009/02/01(日) 03:08:39 ID:SnOdOW15
>>544 リセット信号前に0.1uFのコンデンサ+Rを入れるのは、
ノイズによるリセット誤動作の予防で効果がある
家庭内で動作させるPICでノイズに悩む事はまずない
工場とかで使う場合は、マグネットコイルやリレーコイルのON・OFFサージや
大電流消費機器のON・OFFによるノイズでPICが停止したり、リセットがかかってしまう事がたまにある
電源から数十〜数百Hzのサージが電源トランスやAC-DC電源回路から周りこんでくる
その場合、0.1uFのパスコンでは防げないので、数uFの非電解コンデンサやバリスタ、コイルを入れれば
大抵大丈夫だがマレに駄目な場合がある
その時はノイズ出す機器後にCRを入れればOK
ためしに100Vマグネットの後ろに5Aファンを入れて、それを5回路一秒間に3回ON・OFFして
色々なCPUで誤動作の実験をした、
16F84や古いPICは確かにノイズに強いに思うが、5分もすれば数回誤動作する
比較的新しいPICは、数回のON・OFFで駄目
上記対策をすれば、数千回繰り返してもノイズによる誤動作は無し
ちなみにすべてのCPUの電源に0.1uのコンデンサは入れている
570 :
774ワット発電中さん :2009/02/01(日) 04:21:29 ID:N2MCxosW
>>569 教科書に書いていないプロの経験はとても参考になります。
571 :
774ワット発電中さん :2009/02/01(日) 05:38:44 ID:iHI6vgEs
>>544 古いPICはノイズに弱くて、ノイズでラッチアップするからコンデンサとリセットポートの間に電流制限の為に抵抗が必須。
リセット信号を安定にさせるには抵抗無しのほうが良いのだけど、チップコンデンサを直近に付けても
ラッチアップしたから抵抗は省略出来ない。
あと、プログラムでノイズ耐性が変わるから気をつけてプログラムしたほうが良い。
素人がCで組むと悲惨。LEDチカチカ位なら問題ないけどね。
確かにノイズに対する配慮は重要だが、基本はノイズが基板内に入り込まない対策 が最優先。プログラムにまで制限かけるような状況では、まずハード対策が先じゃないの。 確かに工場なんかのサージノイズには手を焼くことも多いが。
> 素人がCで組むと悲惨。LEDチカチカ位なら問題ないけどね。 またお前か。 素人は関係あるが、Cは関係ないだろ。 いい例、ダメな例を具体的に挙げてみって。 > 0.1uFのパスコンでは防げないので、 > 数uFの非電解コンデンサやバリスタ、コイルを入れれば > 大抵大丈夫だが これ、場当たり喧嘩殺法というか典型的素人だろうw。 後付部品で基板モコモコ。 これじゃ製品にならんて。 ノーマルモード、コモンモード、インピーダンスあたりをググレ。 > マレに駄目な場合がある お前が書いたヘボいコードのせいだろ それはbugっていうんだ。 > その時はノイズ出す機器後にCRを入れればOK アホか。 製品にCRを添付するのかと。 死臭のする糞オヤジは、千葉でくそして寝ろ。
574 :
774ワット発電中さん :2009/02/01(日) 10:50:30 ID:xEgZw+tG
> 571 全体にオカルトな話だな。 電流制限抵抗ってどうやって決めた?カットアンドトライ? 理屈はついてきてるかな?じゃないと再発するぞw。 しっかし、動くまでに一か月かかりそうな手法だな。 客の機器にCR付けたり。拒否られたらどうすんの。 〉プログラムでノイズ耐性が変わるから気をつけてプログラムしたほうが良い。 ソース交えて具体的に語ってくれ。 それはアセンブラのみで可能なのか。 >> マレに駄目な場合がある > > お前が書いたヘボいコードのせいだろ > それはbugっていうんだ。 そうそう、理屈なしで場当たりでやってるやつは、すぐ電源とノイズのせいにしたがる。オーオタ的なオカルトな理屈で。 アセンブラ、可読性悪いからな。へぼさがバレないのが最大の利点か。 時々現れるこのオヤジ、なんかPIC暴走しないって言ってるやつ? あと秋月のスレにベタベタ張ってたやつの匂いが。(まともを装ってるけど)
完璧なのはないだろ
>>578 ノイズ対策を後でゴロゴロ付ける行為=場当たり的
最初から完璧対策で回路設計している=場当たり的ではない
場当たり的と反論しているわけだから、完璧なノイズ対策回路を知っているって事
じゃないのか?
是非教えてもらいたい
舶なんかだと、アースは海だわ、無線はデカいわで、ノイズ対策がえげつないことになるな。 まあ、個人でそんな用途で使うとは思わんけどね。
海って巨大で伝導性もよくてアースとして理想的っぽいけどどうなの?
>>581 そそ、オマケに大型船は金属でシールド完璧と来たもんだ。
プログラムでノイズ耐性が変わるってどんなんだ?
584 :
774ワット発電中さん :2009/02/01(日) 18:16:14 ID:iHI6vgEs
>>572 勿論、ハードの対策は十分にした上での話し。
4層基板使って完璧に対策したつもりでもソフトで手を抜いて良いわけでは無い。
静電気試験すると結構、問題の出てくるソフトはある。量産製品だと特にシビアだね。
Cでしか組めない奴ってセンス無いから、誤動作を想像出来ないんだよ。
なので致命的な動作不良を起こす。
>>573 >素人は関係あるが、Cは関係ないだろ。
素人乙
関係ないと思えるうちは素人だ。精進したまへ
想像してみる プログラムメモリの空きエリアをNOPで埋めて、最終番地にはリセットベクタへのジャンプ命令を入れておくとか?w
586 :
774ワット発電中さん :2009/02/01(日) 18:29:01 ID:iHI6vgEs
>>585 そういうのも勿論だけど、もっと根本的な、プログラムのアルゴリズムの部分。
基本設計の部分で差がでる。
>>586 それこそ言語の問題じゃないだろう
プログラマーの資質の問題
> 場当たりじゃない 後付しない回路設計。 トリッキーなコーディングの不要な設計。 センスは不良で、文書化可能な設計<-重要 つーか、CRつければ直るって、それ、設計していないのと同じだろ。 トラブルは予想可能。 プロなら、作業が進むと外す方向。 > プログラムのアルゴリズムの部分。 > 基本設計の部分で差がでる。 アーキと言語は関係なし。 だから、どういう差が出るんだ。 "具体的に"よろしく。 だいだいおっさん、EMCとかリピート製作とか人を使うとかとは関係ない一人完結趣味の一品料理だろ。 アセンブラ"しか"コーディングできない人は気の毒。 効率考えたら、アセンブラはインラインでマシンサイクル数えるような所だけ。
589 :
774ワット発電中さん :2009/02/01(日) 19:10:04 ID:CmR9a/lG
訂正 センスは不良 -> センスは不要 感に頼るのはねぇ。
590 :
774ワット発電中さん :2009/02/01(日) 19:33:53 ID:LCq2Q8yF
> ID:iHI6vgEs もう止めたほうがいいよ。 あなたが住む限られた世界の外では通用しないから。 特殊アーキテクチャのPICをアセンブラで使ってる段階でセンスないから。 コケてもリセットベクタに飛んで止まらないから安全てどういう了見なのかと。 あと、素人丸出しなのが、バリスタをノイズ対策に使っていること。 それはry ワニ口でグランド取ってるプローブで”やはりスイッチングはノイズが多い。やはりトランスで”とか言ってるオカルトオヤジだろ。 まー機械屋とか設備屋とかだと騙せるだろうけどね。
591 :
774ワット発電中さん :2009/02/01(日) 19:35:53 ID:iHI6vgEs
偉そうな割には全然考える頭が無いんだな。だからCしか出来ない奴は…って言われる。少しは考えたらどうなんだ? センスは勘じゃない。 勿論、感なんかじゃ全然無いぞヨwww
>>584 良く分からないんだが、プログラムでノイズ耐性が変わるとして何故そうなるのか
の原因まで分るの?
チップ内部のレイアウトや配線の太さなどの影響が大きいと思われるが、そんなもの
メーカーがマスクを作り変えたら終わりに過ぎない。
ノウハウと言えなくはないが、そこまでして性能を確保してもそれを維持できる保証はない。
ハード設計者の視点からは、とても薦められないし、そんな方法で性能を確保するのが
プロの仕事だとは思えない。
593 :
774ワット発電中さん :2009/02/01(日) 19:38:40 ID:iHI6vgEs
>>590 リセットベクタもバリスタも俺じゃ無いよwww
>特殊アーキテクチャのPICをアセンブラで使ってる段階でセンスないから。
全くド素人だね。筋が通ってない。
>>592 素人意見かもしれないが、プログラムでノイズ耐性〜てのはそういうのじゃなくて
フェイルセーフ的なものやスイッチ入力処理的な何かのかのことでは
595 :
774ワット発電中さん :2009/02/01(日) 19:42:49 ID:CmR9a/lG
>偉そうな割には全然考える頭が無いんだな。 偉そうな割には文書化する能力、読解力がないなぁ。 どうするとアセンブラの方がCより有利なのか、アセンブラのみで実現できるアルゴリズムって何よ? そろそろ教えて。頭下げちゃうから<(_ _)>。 > だからCしか出来ない奴は…って言われる。少しは考えたらどうなんだ? スレの流れは逆なんだが...わからん?1:nで1があなた。 > センスは勘じゃない。 CRゴテゴテのゴテゴテ基板がその”センス”の結果なんでしょ。 前衛アートか何かをやっているの? 抵抗入れないとぶっ壊れるって、なまで出し入れしているのか? そりゃ漢だww。
> 全くド素人だね。筋が通ってない。 どのように?
597 :
774ワット発電中さん :2009/02/01(日) 19:44:11 ID:YcEyR9r/ BE:1075545465-2BP(0)
598 :
774ワット発電中さん :2009/02/01(日) 19:50:51 ID:iHI6vgEs
>>592 > 良く分からないんだが、プログラムでノイズ耐性が変わるとして何故そうなるのか
>の原因まで分るの?
勿論分る。でも
>>592 が考えてる部分とはちと違う。ソフトの質の話だからチップ内部のレイアウト等とは別次元の話。
そりゃハードはハードで最善を尽くすのは当然の話。だから、ハードしか知らない人がソフト屋に薦める事は難しいんじゃないかな。
599 :
774ワット発電中さん :2009/02/01(日) 19:54:54 ID:iHI6vgEs
>>595 なんだ、秋月あらしがこんな所にまで出張かw
600 :
774ワット発電中さん :2009/02/01(日) 20:03:04 ID:isHJmmit
>ハードで最善を尽くすのは当然の話。 CRごてごては、最善じゃなくて、誠意を見せているだけ。 >だから、ハードしか知らない人がソフト屋に薦める事は難しいんじゃないかな。 やー、アセンブラしか知らない奴がいかに偏狭で取り残されているやつかわかったよ。 行数は多いものの、具体的話って現場でCR入れて苦労したって話のみ。 あとはセンスで片付けるのですかそうですか。 敬誠でH8売ってくれなかったから、しぶしぶ信越行ってでPIC売ってもらったんでしょ。 もうISDNで千葉から出てこないでください。 PICすれは初心者のスレ。 初心者たたきしてないで、もっと上を目指してください。
>599 アラシはアセンブラのほうでしょ。
602 :
774ワット発電中さん :2009/02/01(日) 20:08:41 ID:Z11SCk2d
俺以外にほんとにプロいるのか?
>>598 > ソフトの質の話だからチップ内部のレイアウト等とは別次元の話。
ノイズ耐性とプログラムの質に関係があるとは思えないんだが。
ノイズはハードで対策するのが基本で、それをやった上でどのようにソフトで
ノイズ耐性が変わるの?
もう少し具体的なことを示さないと自称プロを名乗るだけの人と疑われても
しょうがないんじゃないかな。
どうもソフト屋からも非難の声が当たっているみたいだし、正直言って
何をいっているのか良く分からない。
素人目には、自称プロの方々の議論が抽象論に終始しているのが面白い。 具体的な実装の話は聞かれても答えないのは企業秘密だから? それとも…。
605 :
774ワット発電中さん :2009/02/01(日) 20:17:13 ID:CmR9a/lG
ソフトの質やらセンスやらだけなのでねぇ。 実体がわからん。 自分の天才ぶりに酔っている or それがなくなると自我崩壊の瀬戸際爺なんでしょ。 相手にわかるように、それが素人でも、わかるように説明できないのは(ry
とりあえず、空行を半分に減らしてね。
607 :
774ワット発電中さん :2009/02/01(日) 20:31:09 ID:CmR9a/lG
608 :
774ワット発電中さん :2009/02/01(日) 20:36:32 ID:iHI6vgEs
池沼秋月あらしの本領発揮だなwww
> ID:iHI6vgEs 他人の質問に答える前に、 ・ソフト開発におけるセンスとは。 ・あなたの考えるソフトの質とは。 ・アセンブラでしか実現できないアルゴリズム例は? ・Cに対するアセンブラの優位性はどのような理由によるものですか ・Cに対してアセンブラの優位性がわかる記述例は? とりあえず、これだけ答えて。
610 :
774ワット発電中さん :2009/02/01(日) 20:43:18 ID:iHI6vgEs
>>603 >どうもソフト屋からも非難の声が当たっているみたいだし、
ソフト屋もピンキリだからな。少なくとも此処に出てくるCしか出来ない奴は糞なので非難の的さえずれてる。
>正直言って何をいっているのか良く分からない。
会社にいって、下っ端グラマじゃ無理だから、ある程度経験のあるちゃんとした上流設計をしてる人に聞いたほうがいい。
このアセンブラ最高!って言ってるバカ馬鹿、さすがにアセンブラのァの字も言わなくなったな。 一人で御苦労さま。 んで、PicKit3が出るまでこの話題は続くのか? おれはC+インラインアセンブラでいいや。
612 :
774ワット発電中さん :2009/02/01(日) 20:49:24 ID:wo6WPu6N
> 此処に出てくるCしか出来ない奴は糞なので非難の的さえずれてる。 だからーどこが糞でどうずれてるのよ〜。 またセンスとか質でごまかすのぉ? 自分でもわかってないんじゃない?
> ソフト屋もピンキリだからな。 ピン乙。
614 :
774ワット発電中さん :2009/02/01(日) 20:54:28 ID:WXcw9q1l
アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高! アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高! アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高! アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高! アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高!アセンブラ最高! PICはアセンブラがつかえてなんぼでしょ!
アセンブリをアセンブラと言うのは大昔から? はじめて読むアセンブラて本もあったし。
「Cしか出来ない奴」って括りが歪んだ劣等感の現れだな。 物凄く限られた初心者だけしか当て嵌まらないんじゃないか?
アセンブリ言語を機械語に変換する事をアセンブル (assemble) すると言い、それを行うプログラムの事をアセンブラ (assembler) と言う。 アセンブリ言語のことをアセンブラと呼ぶ者もいるが、これは厳密には誤用である[1]。 ウィキペディアではこうかいてあった。
アセンブラ宮殿
情報処理試験でアセンブラ言語って言うからな。 個人的にはめちゃめちゃ違和感あるのだが。
>>617 1. IBMはSystem/360から2008年現在まで一貫してアセンブラ言語(Assembler Language)と呼んでいる。例:IBM High Level Assembler
の脚注も忘れずに。IBMは一貫して厳密には間違っているのか?
>>620 >例:IBM High Level Assembler
って Assembler で切ったら例にならないよな
>>CmR9a/lG なんか必死だね。。 暴力的な言い回しは千葉あたりに住んでいるとみた。 素人じゃない事を証明したいなら、自分で設計した回路図とか基板のパターン図でも出してくれや。 大人なんだから、少しは自重したらどう? >>iHI6vgEs もう煽って楽しんでいるねえ。 釣られる人多すぎ。 ノイズ対策は外部から入ってこないように、ハードウェアで対策するのが基本でない? ノイズに強い電源にするだけで結構いける、欠点は値段が高い事かな? たしかに、Cでしか書けない人よりも、アセンブラを理解している人の方がバグは少ないような気がする。 でも、ソースの可視性を求めるとすればCで書いてもらう方がありがたい。 アセンブラでカリカリチューンすれば高速、コンパクトでできるけど、後で変更や追加しようとすると破綻する場合が多い。 本人以外が改版できない場合が多いので、困るんだよね。 Cだと素人でも意外と簡単にできるのが良いと思う。 アセンブラだと呪文で理解しにくいけど、Cだとパズルくらいまで判りやすくなっていると思わない?
623 :
774ワット発電中さん :2009/02/02(月) 00:03:43 ID:/w+dmcDk
>>622 >ノイズに強い電源にするだけで結構いける、欠点は値段が高い事かな?
なんですか?それ?
確かに場当たり的ではないな、、、ウン、、、
>622 常識人ぶって、燃料投下してどうするw。
>>582 ちゃんと施工してくれてたらいいけど、そうでないと、船体全部がアンテナとかいう変なことに
海との接触部分は基本的に防錆び塗装だし、うかつに電位のかかった金属出すと錆びまくる
結局、「アセンブラでしかできないソフトウェア上のノイズ対策」ってのが何なのか みんな見当もついてないから、わかってる約1名が実例を交えてわれわれ愚民共に ご教示していただければ終息すると思いますが。 でないと「ノイズ対策は高級電源で結構いけます」みたいなのが出てきて話が あさっての方向にいくからw
と言うより、PIC を仕事(製品)で使っている人っているの? ちょっとした治具になら使うことあるけど・・・
629 :
774ワット発電中さん :2009/02/02(月) 00:46:48 ID:I/UJIWuT
630 :
774ワット発電中さん :2009/02/02(月) 00:54:03 ID:/Vrlthbm
>>627 2,MCLRは10Kオーム程度でプルアップする
3,PICのVddに0.1μFのコンデンサを接地させて入れる
とりあえず、PICとMAX232と液晶にパスコン0.1uF。 PICって、ノイズにやられるというよりも、ノイズ発生源なんだけど。 微弱電波の範囲は簡単に超えるし。 んで、アセンブリ言語キティは漢らしく、モータ満載でスパイク撥撥な環境で、信号線を直繋ぎしてる風。 最低信号はフォトカプラで切って、できたら、電源は絶縁型DC-DCを使う。(これがノイズに強い電源?) 筐体はがっちり導通をとり、FGとSGは明確に区別する。スパイクは外皮を通してFGに逃がす。 ACコンセントは当然3Pin。 これで死んだことないですね。モータ、溶接機アリのラインだったけど。 LCRでの対策だと周波数特性を持つので、環境が変わる(周波数成分、信号路のインピーダンスなどの変化)と馬脚を現すので基本的にやらない。 これが場当たりの趣旨だと思う。よくない。 あと、乗ってるスパイクを取るために信号線にCを入れたりすると、そのポートに電流が集中してESD試験で死にます。 これがアセンブリ言語キティのラッチアップの真相だと思う。 アセンブリ言語で組むとCより安全というのはよくわからない。 アセンブリ言語特有のアルゴリズムというのも。 基本ハード屋なので、ソフトの質やら対策、個人のスキルはあてにしてません。
632 :
774ワット発電中さん :2009/02/02(月) 00:55:19 ID:hVMdaRPg
Cで組めないアルゴリズムっていうと、セマフォとかの待機ハンドルかい?(PIC関係ないけど) 後はコンパイラが対応するよりも先にCPU専用命令を実装したい場合ぐらいしか思いつかない #define Nop() {_asm nop _endasm} これをアセンブリだと見なすなら話は違うが PICのCコンパイラはアセンブリの上に成り立ってるから、(いきなりCからopコード生成しない) C言語とアセンブリは同質なものだよ
>>628 むしろ何でもPIC
コストパフォーマンス、入手性、開発環境を考えると、3.3VならdsPIC33、5VならdsPIC30、高速処理+USBならPIC32MX
8bitでいけそうでも16bitしか使わない
500円のコストダウンよりも1週間の納短が優先される環境ですのでこんな感じ
大量生産なら違うんだろうけどね
9800bpsでシリアルデータを断続的に受信しながら 受信データをテキスト化してSDカードへ書き込むものを作っているのですが SDカードとSPI通信中にシリアルを受けるための割り込みが入り、書込みエラーが生じていしまいます。 書き込み中だけでも割り込みを止めると取りこぼします。 RXとSDOが一緒の端子なのでUSARTは使用せずシリアルはソフトでしています。 せめてUSARTが併用できればよいのですが。 PIC18F2550を使用しています。 何かよい方法はないでしょうか? ちなみに趣味の範疇です。
>>631 >信号線にCを入れたりすると、そのポートに電流が集中してESD試験で死にます。
そうなのか!?
偉そうな上司に、信号線には100p程度入れとけって言われて
何も考えずにそのまま設計してたorz
>>電源は絶縁型DC-DCを使う
どこの奴使ってます?絶縁型DC−DCはタケェ!
>>636 SPIをソフトでやってUSARTモジュールを使うのはだめなの?
>>636 シリアル受信割込みは、受信データをバッファメモリに書き込むだけにして、
後の処理はCPUが暇な時にやらせる
その処理でエラーがでるなら、SPI通信のクロックを遅くする
基本的にSPI通信は同期式だと思うからそういったエラーは出ないと思うけれど
(SDカード使った時無いから、間違ってたらすみません)
FatFSのPICサンプルコードが凄く参考になると思います
あ!USART受信は使えないのか!! ごめんなさい
>>631 ttp://homepage3.nifty.com/tsato/dtemc/part6.html うーん、、、↑ここ読むと
バリスタもCRもコンデンサも有効みたいだと書かれているけれど、
良く分からん!!
場当たり的じゃないノイズ/サージ対策ってどうしたらいいんだ〜よ〜
偉そうな上司が100p程度入れとけっていうのは、上記URLで意味有り気な事かいてあるけれど
高卒の俺じゃ、チンプンカンプン?
っていうか、なんで俺みたい頭の悪い人間が設計しなきゃいけないんだ?
なんか腹が立ってきた!!!
納期は迫ってるし、ムキーーーー!!
もうねる!
抜群のセンスで高い質のファームを書く。 納品の時に各種コンデンサコイルを持っていく。 これで問題になったことはない。
643 :
774ワット発電中さん :2009/02/02(月) 08:42:19 ID:tXJXAnEN
C言語でノイズ耐性に影響がでるというのは、I/Oポートのアクセスが杜撰で、不用意にBIT操作をしたり しがちということかもしれないね。要は、ポートをREADしたときに、出力PINが化けないように、出力を上書きしたり、連続して同一ポートにBIT操作をしないとか、 BIT書き込みそのものを避けるとか、入力設定のポートを開放状態にしないようにするとかです。
>>631 > とりあえず、PICとMAX232と液晶にパスコン0.1uF。
ずいぶん昔、客先のハードで自分が組んだソフトの通信が正常に動作しない
ことがあって、調べたら232Cのレシーバ(SN75189AN)の閾値レベル設定用の
外付けコンデンサ(通常330pF〜470pFを実装)に、全部パスコンと同じ0.1uF
が実装されていて、受信波形が鈍りまくりだったことがあった。
>>636 PIC24に移行すれば、SPIとシリアルを同時に使える。(ピン配置を変更できる)
ハードの使用を確認したとき、マイコンの変更を考えた方が良かったんじゃないか。
>>627 これに対する回答のレスはすべて間違い。
/w+dmcDkが本職ならたちの悪い質問だ。
だったら正解を示してみてよ。 コンデンサの盛りが足りない? あー、アセンブラで組まなきゃいけないんだね。
>>643 なんかよくわからんが、C言語では絶対ビット操作せんといかん…ってもんでもないよね。
ライブラリを使わず組めば、書いた通りにしかアクセスしないから、杜撰といわれる理由もわからない。
最適化かけると、ときどき愉快なコードを吐くコンパイラも居るけど、そういうのは最適化を切ればいい。
あと、ポートのノイズ問題であって、プログラムが暴走するようなリセットやアドレスバスへのノイズは関係ないよね?
>>636 すでに答えは出ていますね。
>>638 ,639さんの方法でもいいでしょう。
条件しだいではほかにも方法はあります。
シリアルデータを断続的に受信という事ですが、どのくらいの間隔で来るのでしょうか?
ある程度まとまってきて、一度データが切れると次に来るのは1s後とかあるのでしょうか?
次のデータが来るまでに一定時間受信データがないのであればその間にSDへ書き込めばよいですね。
また、CTS、RTSなどの信号を使って受信をコントロールする方法もあります。
SDへの書き込み中は相手からデータを送信させない。
私でしたら
>>636 さんのようにシリアルをモジュールにしてSPIをソフトに、ブロックデータを受信してからSPIに書き込みを行います。
650 :
774ワット発電中さん :2009/02/02(月) 12:32:07 ID:n9CAT2PB
>647 >646は、みんなが言ってることが正しいです と言ってるんだ。そっとしておいてあげよう。 質問が悪いとケチ付けてだんまりとは。 自分のbugも環境が悪いとか言いそう。
>>638 ,639,645,649
おぉ沢山レスありがとうございます。
皆さん仰るとおりSPIをソフトで書く方が余裕ありますね。
うぅ…シリアルだけなら既存のコードを流用できたのに…
PIC24も勉強始めてみます!
C言語じゃセンスがないだ、アセンブラ開発は素人だ、
俺は正しい、お前は間違ってる
って滑稽すぎ
しかも「ノイズ対策は高級電源です」と答える始末
結局プロらしくまともに答えたのは
>>631 だけかよ
挙句の果て、質問にケチ付け始めた
もう転職して「お笑い」にいったらどうだろうか
>>651 がんばれ
SDカードのIFが気になるんだけど、なにつかってるの?
I2C対応のIFで18F2550なら、I2CとUARTって選択肢もでてくるよ
ハードで併用できるし
それとC18コンパイラだったら、c:\MCC18\src\pmc_commonに、
SW_{I2C|SPI|UART}ってあるのはご存知かい?
>>651 基本的にはUSART+ソフトウェアSPIの方が良いと思うけど、別案ね。
現状のソフトUARTで割込みといってるのは、スタートbitエッジで割込み
ストップbit+バッファ処理まで割込み処理内なのかな?
もしそれで割込み処理時間が長くて問題起こるということなら
SPI(SSP)を高位割込み処理すれば、あまり弄らずにうまくいくかもよ。
655 :
774ワット発電中さん :2009/02/02(月) 13:33:44 ID:tXJXAnEN
>>648 どんな言語を使おうとも、吐き出されたASMリストが全てです。
僕は、C言語オンリーですが、四則演算以外はライブラリを使用しませんし、
I/O近辺のASMリストは必ずチェックします。
PC環境でも、C言語を使用しているので、いちいち頭を切換えるのは面倒くさいので
ASMリストを眺めるのは冗長な最適化していないかチェックしたりステップ数を数えたり
のためにします。
C言語を完全に理解しているのであれば、たとえPIC規模のマイコンでもC言語を使用した方が良いと思いますが。
むしろ、生粋のハード屋さんでASMを使いこなせているのであれば無理にC言語に習熟するのはつらいと思う。
"C言語を完全に理解しよう"という覚悟がなければ使いこなすことは難しいという言語であることは間違いないです。
>>655 フーーーーン
エライでちゅネ〜〜
で?
657 :
774ワット発電中さん :2009/02/02(月) 14:32:57 ID:O07yweQ3
>>622 >ノイズ対策は外部から入ってこないように、ハードウェアで対策するのが基本でない?
当然、ハードでの対策はするでしょ。全然否定してないよ?
だけど、ソフトも対策が必要って事。
「ノイズはハードのせいなんだからソフトはそんなもん知らん」って言うのがC言語クオリティ
ちなみに、電源の対策だけで製品にする事は俺の場合は皆無。まあ、Cで作ったプロトタイプならそれで十分なのだろうけど。
例えば
>>627 の回路ならスイッチやLCDは対策が必要だし、場合によっては232の信号線でさえ対策する。
LCDなんてそれ自体がCPUをもったモジュールだから暴走もするし、外からちゃんとリフレッシュしてやら無きゃいけない。
製品ならね。知ったかアマチュアならそんな事は思いも寄らないだろうけど致し方ない。
雑誌に書いてある知識をひけらかすのが精一杯だろう。
アセンブラならカリカリチューンしなくてもCの10倍は早い。まあ、Cしか知らない信者から馬鹿なクレームつくだろうから
3倍早いという事にしておいてやろうかなw
ソースの可読性は書き方による。Cしか出来ない奴は「ソースがコメントだ」と言う馬鹿な奴がいるし
必ずしも読みやすいとはいえない。これもセンスの問題だな。センスの悪い奴のソースは言語が何であれ読みにくい。
昔MSXのBIOSソース(勿論アセンブラ)が出版されてて買ったけど、読みやすかった。8進数で書かれててちょっと新鮮だったな。
>Cだと素人でも意外と簡単にできるのが良いと思う。
>アセンブラだと呪文で理解しにくいけど、Cだとパズルくらいまで判りやすくなっていると思わない?
本来なら理解出来ない奴がなんとなく分った気になってバグを作りこむ気がする。
まあ、Cは所詮高級言語だから、ハードを理解出来ない奴にプログラムを書かせるには最適ではあるな。
てか、それが目的でしょ。そういうレベルの奴らは言われた通りに動かすのが精一杯で、ハードがどのような
特性を持つかなんて思いも寄らない。なので、出来上がったプログラムは「こうしたら動いた」みたいな部分がコメントも無く
ちりばめられていて他人が保守なんておぞましいよ。
>>634 >PICのCコンパイラはアセンブリの上に成り立ってるから、(いきなりCからopコード生成しない)
>C言語とアセンブリは同質なものだよ
大抵のCコンパイラは中間言語があるでしょ。でもそれは同じ品質のアセンブリコードである保障にはならない。
>>651 >皆さん仰るとおりSPIをソフトで書く方が余裕ありますね。
ほんとにそう?SPIのビット制御の方がCPUの負荷としては重いと思うよ。その上シリアルをASCIIに変換するんでしょ。
データーが膨れるよ?SPIをハードで実行するほうがセンスが良いと思う。
単にシリアルの割り込みでレジスタ壊してるだけでは?
割り込みからそのまま(若しくはNOPで時間稼ぎして)何もしないで戻っても書き込みに失敗する?
> LCDなんてそれ自体がCPUをもったモジュール おいおいwww
>>657 >電源の対策だけで製品にする事は俺の場合は皆無
電源の対策を具体的にかいて
>例えば
>>627 の回路ならスイッチやLCDは対策が必要だし、
>場合によっては232の信号線でさえ対策する。
具体的にどんな対策なの?
> 「ノイズはハードのせいなんだからソフトはそんなもん知らん」って言うのがC言語クオリティ いやぁ、別にCでもさぁ、ちゃんとできるとおもうよぉ。知らないだけだと思うけど。 これは個人の資質でしょ。 アセンブリ言語で書いたやつのbugをコンデンサで蓋する方がどうかと思うけどねぇ。
C言語とアセンブラの関係ってハードウェアで言うとVHDLとスケマの関係みたいなもんだよね? 件の人は「回路をVHDLで書いて合成なんてアマチュアだ。スケマで書くのがプロの仕事だ!」って 言っているようなもん?
662 :
648 :2009/02/02(月) 15:42:37 ID:cCnTA6NY
>>655 もとのノイズがどうのという話はどこへ?
コンパイラを知っていて、吐き出されるASMが全てっていうことなら
最適化OFFという条件をつければ、「不用意に」とか「杜撰」という表現されるようなことは発生しないのでは?
というか、コンパイラごとにそういうのが出ないソースの書き方を定型化してしまえるのでは?
663 :
774ワット発電中さん :2009/02/02(月) 16:18:15 ID:QKWQlXRm
>>657 ようは、CPUの使用消費電力を意識してコーディングできる
アセンブラで開発した物がノイズに強いって云いたいんだろう?
スゲエよ!オッサン!!
その重箱の隅を突付くような発想、チョンだな
レベルが低いスレだな しかもいちいちアゲて恥さらし
>>657 これだけ集中砲火を浴びていながら上から目線のレスをつけられるあなたの性格が
ある意味で羨ましい。けっして尊敬は出来ないが。
つまりAVR使えってことだよ
667 :
636 :2009/02/02(月) 16:49:34 ID:6NLRgdSG
>>653 SDはSPIモードでの通信です。
I2Cでの通信は調べてみましたが分かりませんでした。
すみません、実力不足です。
サンプルコードは参考にします。
情報本当に助かります。
>>654 色々な案が出てきて楽しいです。
一応スタートエッジ検出の後、timer0で1bit毎に割り込みをかけていました。
勉強を兼ねてSPIをソフトで書いてみます。
うまくいく予感がします。
>>665 協調性がなくて他人と違う事を発言して尊敬されたい性格の持ち主なんだろ
相手にするだけ時間の無駄
2chでこんな時間に偉そうに能書き垂れる訳だから、自営業か窓際なんだろ
暇な奴って事は確かで教育者でも失格だな
>>658 単なる知ったかだろ、おまえ。
> > LCDなんてそれ自体がCPUをもったモジュール
>
> おいおいwww
>
確かにCPUを持ってないものもあるがそんな使いにくい物を使うやつは少数派。
がっかりだな〜
>>650 質問者の模範解答を待ってるんだよ。
君もしょぼいな〜
>>669 そこはLCDモジュールと書くべきだと思うぞ。
LCDと書くと普通は液晶単体の事。
673 :
774ワット発電中さん :2009/02/02(月) 17:33:31 ID:avLXe6aX
>>672 どうみても
>>627 の回路についてだから、LCD単体と思うのはおかしいだろ
重箱の隅をつつく奴ばかりが下らんレスしているな
> ID:NFmOdJab なんで教えてくださいと言えないのだろう。 知らないとこ自体は恥ずかしくないのに。 # そういえば、マシン語とか機械語って言葉、Z80とともに消えちゃったね。 # その代りに言語の名称としてのアセンブラなる誤用がはびこりはじめ...。
つ "すすんで明かりをつけましょう"
要はアセンブラで済むようなちょろい仕事しかしてないおっさんが、話し相手がいなくてぐだぐだ騒いでいると。 対策という言葉は客に対して言い訳でよく使うが、内実はコンデンサをべたべたつけてるだけと。 アセンブラの素晴らしさが開示されると思ったが、そんなのなかったんだ。 それで ぽ か ー ん な空気が漂っていると。
アセンブラ奴隷にはガッカリだ。
679 :
774ワット発電中さん :2009/02/02(月) 22:34:04 ID:TI7yKG86
ブラオヤジみたいに世の変化をつかめてない奴が作った工場の設備火災の原因作るんだな。 バカ安で請け負うから、しぶとく生き延びちゃうんだな。 ちゃんとハード作れば、ソフトは普通に組んで、プラス保険で済むのに。 何でもアセンブラじゃないと安全確保できないハードってオソロシす。
>>621 まあ、そこはアンカーだから。
そこから飛ぶと
IBM High Level Assembler and Toolkit Feature is a flexible development solution for all Assembler Language applications.
ていうような例が見られる。
汎用機用のプログラムをASMでかけたらたいしたもんだ
つーか、Windowsを移植(ry このブラオヤジ(受けた!)一人ぼっちで仕事してるんだろうな。 なので、情報の出入りがなく、良くも悪くも周囲との接触、摩擦がない。 なので、ブラッシュアップされず、自分だけの偏った理論が脳内で成長する。 普通に理解力があれば、しばらくはROMとこうってなるんだけど、また出てきたしね。 言ってる事は 晴れのち曇り、所により一時雨 みたいな、どうにもカスな話ばかり。 ブラして寝とき。 コイルオサン。
dsPICのds(p)の機能を使うにはアセンブラのみと以前聞いたが 今はCでも使えるんだろうか 俺には使えそうも無い(理解できない)けど、使いこなしている人は いるんだろうな。
>>683 使える。
FFTのサンプルとかあるよ。おもろい。
vistaでアセンブルできるかどうかのテスト Microsoft Windows [Version 6.0.6001] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:\Users\guest >debug -a 100 17CF:0100 mov dx,200 17CF:0103 mov ah,09 17CF:0105 int21 17CF:0107 return 17CF:0108 ^C -e 200 17CF:0200 00.32 00.43 00.48 00.24 -rip IP 0100 :100 -g 2CH Program terminated normally -q C:\Users\guest
だからぁ、コンデンサゴテゴテでもコイルグルグルでもどんな言語でもいいから
場当たり的じゃないノイズ対策ってのは
>>631 で打ち止めなの?
結局、"高級電源で結構いける"が他人をアホ扱いする人間のファイナルアンサーってことなのか?
アホがアホを非難して終わり?
> 打ち止めなの? じゃね?ハード側は。 なんかか思いつく? ID:mtl8Y8Il > 結局、"高級電源で結構いける"がファイナルアンサーってことなのか? 違うだろ。 > アホがアホを非難して終わり? 違うだろ。読み直せ。
688 :
774ワット発電中さん :2009/02/03(火) 01:34:26 ID:3g1yxBYE BE:1434060285-2BP(0)
アセンブラでしかかけないノイズ対策ってのが 書いてる本人以外全く分からない 分かるように説明できないのは 示せる具体例が実は存在しないか 若しくは真性のアフォのどっちかでおkじゃね どちらにしても得られるものは何もない
んだ。
>> 結局、"高級電源で結構いける"がファイナルアンサーってことなのか?
>違うだろ。
どこがどう違うのかわからん
結局、
>>631 もそれ以前も、ノイズ対策に対して高級電源しかない
コイルやコンデンサをゴテゴテとを書いた人は、素人扱いされて終わり
>>627 のレスポンスも、具体的内容は全然ない
アセンブラ馬鹿を叩いておわり
アセンブラだからノイズに強いとかC言語だからノイズに弱いとかなんて
アホらしくて参考にならん
>
>>627 のレスポンスも、具体的内容は全然ない
あるじゃん。ばか?
> アホらしくて参考にならん よそにいけ
693 :
774ワット発電中さん :2009/02/03(火) 07:54:19 ID:DeDEGk7k
アセンブラ奴隷のブラオヤジ、深夜に自演乙。
694 :
774ワット発電中さん :2009/02/03(火) 08:43:11 ID:dhf/aU77
>>637 値段は高いけど、COSELを使っている。
理由はと聞かれたら言い訳がましいけど、安心かな?
過去の実績が置き換えを許さない。
他社で、安価で信頼性が高いのがあったら教えてくれ。
使うのはRS422の信号と制御用のI/O線の部分にだけ使っている。
696 :
774ワット発電中さん :2009/02/03(火) 10:25:00 ID:Y4T06pOV
話はそこじゃなて アセンブラは ・3倍速い。(当社比) ・バグなんかでない。(ただし謎のセンスが必要) ・ノイズに無敵だ。だが、容易にラッチアップするので保護抵抗が必要。 ・PICなら暴走しない。 ・アセンブラ固有のアルゴリズムはなんかすごいらしい。(実態不明) ・CPUを内蔵しているインテリジェントなLCDパネルの制御に最適。 最後のやつ、9割表示データで、コード領域がなくなってしぶしぶアセンブラとか? これなら、アセンブラ優位というのはわかる気がする。
クソワラタw もう、アセンブラが〜、言う奴へのテンプレレスにしようぜ
>>695 COSELで安心だってよwww
素人だな
やっぱり、DC-DCもアセンブラなんだろ?ww
OPアンプもリセットICもレギュレータICも使いません。 すべてディスクリートで構成されたアッセンブリー品を使います。
そうそう、市販のDC-DCなんか誰が作ったかわからんもんね。 なあ=>ブラおやじ
余計な作業で仕事の時間がかかる奴は無能な証拠
アセンブリ言語で書いたほうが10倍(少なくとも3倍)速いとか寝言は寝て言えっての。 最低限必要なコードに比べて冗長なコードは精々1割程度だわw その1割が欲しい時は俺もアセンブラを使うが、Cでも書き方次第で冗長なコードはほとんど防げる。
質問したいからソースをアップしようと思うんだけど 半角を全角スペースに変換するプログラムって有る?
すべて置換え使えばいいだけじゃね?
sed拾ってきて以下で。 sed -e 's/__/ /g' (__は半角スペースの1インデント数ぶん) エディタの全置換機能でもいいけど。
>>704 別にインデント無しでも構わないと思うぞ。
それよりコメントよろ
一応上の補足だけどファイルに取り出す時は sed -e 's/__/ /g' < 入力ソース.c > 出力ソース.c
悪いけどそれもアセンブラでやるから
OKわかった。 自己満足だがここに張る場合は以下の方がいいな。 sed -e 's/ \{2\}/ /g' < 入力ソース.c > 出力ソース.c
#include "D:\work\pic\selecter\select.h" #int_TBE void TBE_isr(void) { disable_interrupts(INT_TBE); buf=0; return; } #int_TIMER1 void TIMER1_isr(void) { set_timer1(0); return; } void main() { int cc; setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); setup_spi(SPI_SS_DISABLED); setup_lcd(LCD_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); enable_interrupts(INT_TBE); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); set_tris_a(0b11111110); while(1){ if(kbhit(cas)){ cc=getc(cas); putc(cc,cas); putc(cc,pc); if(cc==0x99){ enable_interrupts(INT_TBE); while(buf) ; output_low(pin_A0); buf=1; } } if(kbhit(pc)){ cc=getc(pc); switch(cc){ case 01: output_low(pin_A0); break; case 02: output_high(pin_a0); break; } } } }
INT_TBEの使い方がよくわかりません。 enalbleした状態だと常に割り込みがかかりっぱなしでほぼpicがフリーズしたような 状態になります。 ですので普段はdisableにして明らかに送信バッファにたまっているときにenableにして 割り込みがかかったらdisableにしています。 これだけならいいのですがtimer1の割り込みを許可するともう何が起こっているのやら 全く動きません。 何がどう悪いのでしょう。 プログラム自体は送信バッファが空になったらA0をHにすることがメインです。 追伸 sedの件ありがとうございました。
PIC中級車です。ずっとず〜っとアセンブラだけつかってきましたが、 ここらでCなんぞをつこてみようかと思い始めています。フリー 有償を問わずお勧めをご教示いただけると嬉しいです。有償といっても 予算は数万程度しかありませんが。よろしくお願いいたします。
715 :
774ワット発電中さん :2009/02/03(火) 23:08:46 ID:3g1yxBYE BE:1075545656-2BP(0)
>>715 一応プロレベルです。パソコンのアプリ作りでC++までやってました。
ソフト開発の原液引退してますが。
>>716 MPLAB
C30、C18のフリー版で
719 :
774ワット発電中さん :2009/02/04(水) 01:17:42 ID:GUsEad4p
>>716 >一応プロレベルです。パソコンのアプリ作りでC++までやってました。
そんな人がなぜ、マイクロチップ純正の無償で入手出来るCを使った事が無いの?
自分の環境がスタンダードだと思い込むのは危険です。
722 :
774ワット発電中さん :2009/02/04(水) 02:18:04 ID:GUsEad4p
>>720 実力の無いのを棚にあげて、環境のせいにしてはいけません。
プロならば。
そう、言語と品質は関係ありません。
>722 千葉で氏ね。
ちと聞きたい事があるんだけど… 16F84A同士で信号のやり取りをしたいんだけど、1個目RB4出力→2個目RA4へ入力なんだけど。 普通に考えると、プルアップ抵抗とかがいるとは思うんだけど、1個目のRB4がトランジスタアレイに 繋がっているんで、電流とか色々考えると…なんです。 2個を連結するような使い方なんて、普段しないからどうすればよいか…よろしくです。
>>725 ULN2003/2004系とか普通Trアレイ入力はプルダウンになってるから
オープンじゃないし、外部抵抗無しのまま直結で委員じゃね?
>>725 奥歯にものが挟まったような言い回しだね。
手元にあるんだろうからつなげて試せばええやん。
ハードウェアの問題より、1線でやるならば受信データの取りこぼしの方を気にしろ。
これから買うならもう少しましなデバイスを使えばええ。
悩む所が2chらしくて面白い。
>>725 直結でOK。
気になるなら100Ω位の抵抗を直列に繋ぐ程度でも可。
もちろん通信速度によるが・・・
皆さん、早速どうもです。 TrアレイはTD62083APなので、直結でも良いかなと思ったのですがRA4ですから… 信号と言っても、単なるONかOFFの信号なのでシリアルとかパルスではありません。 単純に、A基板とB基板に分けて仕事させて、A基板の出力によってはB基板の 出力を切換えると言った事なんです。もっとI/Oの多い石を使えば済むむ話なんですが、 プログラムが84Aで組んでしまっている以上、今更変えるわけにも行かずまた、基板 サイズがでかくなるのは好ましくないので、多段基板にした事による物でした。 今の所、Eagleで設計しているのですが、新規基板でまだ部品も手配していないので 試そうにも試せなくて…。 とりあえず、直結の方向で設計して言ってみようと思います。ありがとうございました。
単に 0/1の2値信号を伝えるだけなんじゃね? シリアル通信なの??
あ、行き違いw 双方向でなけりゃ、てかRA4入力固定なら プルアップでもプルダウンでも桶。
733 :
774ワット発電中さん :2009/02/04(水) 15:14:36 ID:Y92myn4d
>>663 >ようは、CPUの使用消費電力を意識してコーディングできる
>アセンブラで開発した物がノイズに強いって云いたいんだろう?
全然違う。ちゃんと日本語が理解出来るまで100回でも声に出して嫁。
重箱の隅と言うのは確かだが、それによって重大な事故が発生する事もある。
まあ、おまえさんみたいなニートには無縁の世界だから気にするな。
それに、ここに書いてる、Cしか出来ないと思われるプログラマたちは似たり寄ったりだから悲観する事は無いぞw
ポートや設定レジスタのノイズへの対策だと、一定周期で設定値書いたり (Cでは最適化切って)二度読みさせたり、周期毎に読ませて平均とったり C言語でもアセンブラでも、当たり前のこととしてやってるけど そういうのじゃなくて? アセンブラ固有のノイズ対策のコードってどんなのだろ?
736 :
774ワット発電中さん :2009/02/04(水) 15:24:52 ID:vLlCro9t
>733 みたいな、人の意見を聞かず、思い込みの激しいやつが事故原因を作るんだな。 この期に及んでも、アセンブラで書く以外に具体策でてこねーしw。
737 :
774ワット発電中さん :2009/02/04(水) 15:27:08 ID:vLlCro9t
あ、ごめん、コンデンサてんこもりにするんだっけな。 テンプレ貼っておく。 アセンブラは ・3倍速い。(当社比) ・バグなんかでない。(ただし謎のセンスが必要) ・ノイズに無敵だ。だが、容易にラッチアップするので保護抵抗が必要。 ・PICなら暴走しない。 ・アセンブラ固有のアルゴリズムはなんかすごいらしい。(実態不明) ・CPUを内蔵しているインテリジェントなLCDパネルの制御に最適。 最後のやつ、9割表示データで、コード領域がなくなってしぶしぶアセンブラとか? これなら、アセンブラ優位というのはわかる気がする。
738 :
774ワット発電中さん :2009/02/04(水) 15:27:44 ID:vLlCro9t
場当たり、手当たりしだいが抜けてた。 あぶねー事故のもとだw。
740 :
774ワット発電中さん :2009/02/04(水) 15:32:05 ID:vLlCro9t
つ[ない袖は振れない]wwww
741 :
714 :2009/02/04(水) 18:55:30 ID:ss/hxe6u
PIC中級車です。 皆さんいろいろとありがとうございました。参考にさせていただきます。 助かりました。
技術とか具体性の無いアセンブラ奴隷には失望したよ。
>>733 皆よく釣れるね〜
オッサン仕事で相手されないから嬉しいだろ
>ソフトも対策が必要って事。
ってもしかして
>>735 で書いてあることか?
だとしたら、C言語とかアセンブラの問題じゃないw
ってことを教えておいてやる
オッサン「アセンブラだとこんな風に出来るからノイズに強いんだよ〜♪」
オッサン信者「スゴイッスね!」
オッサン「俺ってサイコー〜!!!」
ってなコントを想像してしまうw
で、具体的にどんなアセンブラコード書けばノイズに強くなるんだ?
もったいつけずに教えろ
>>735 で書いてあることだったらアホらしいからレスしなくていいよ♪
いつぞやのコイルジジイ思い出すなぁ。 あれもオチがつまんなかったんだよなぁ。 当たり前すぎて覚えていないけど.....
16F やそれ以前のシリーズなら、アセンブラの方が良いと思う。 スタックが無いから関数呼び出しとか、オーバヘッド大きそうだし。 18F以降ならCの方が良いと思うけど。
しかし、今だに16F84Aを選択する人がいるのが理解できん なんで? 秋月で買うこと想定しても16F84Aなら\300、DSPIC33FJ32GP202で\450 この150円の差が大きいってことなのか?デバッガは共通だし、ほんとわからん
749 :
774ワット発電中さん :2009/02/04(水) 23:44:46 ID:gX/f4FOJ
>748 同サイズでも16F88とかあるじゃん。
>>749 だからDSPIC33FJ32GP202は選択肢に入らないって事。
>>747 本とか雑誌で、16F84Aを使った記事が多いからだろ?
dsPIC33は5V出力できないのは痛い
>>747 マジレスするところじゃないかもしれないけど。
保守用途
・実機から吸い出してコピーがしたい→使われてるのが84A
・昔書いたコードの移植がめんどくさい→84Aならそのまま動くや
初心者
・とりあえず教科書のコピーから→使われてるのが84A
>>747 連技だっけ?お試し版のはF84Aだけしか出来ないからじゃない?
それほど大規模で、AD変換とかしないなら他のライブラリを何万も出して
買うよりかは、少し高いF84Aで済ました方がトータルコストは安いし。
それに、簡単な物で過去の製作記などではF84Aが圧倒に多いから、一々
配線を変え直すならそのままがよいって事では?
俺は保守用に、オクで@180で確保しておいたけど。
>>754 連技ってメジャーなの?
使ったことがあるのなら、感想が聞きたいです。
>>747 先ず触れるのが16F84Aだからじゃない?
ラインナップ多いから「選択」って結構難しいと思うよ
>>8 のテンプレは参考になりました
一覧でまとまったサイトってないの?
連枝まだあんのか 5年以上前に一回使った 感想は、すぐ動いて完成した 重宝した 納期が非常に厳しく内容が簡単ならまあ薦められる 連枝などなくてもできる人にはもちろん薦めない 当時一日で作った検査機、まだ動いてるんだろな 5V必要ならDSPIC30Fがあるよ 33より発熱するけどEEPROM持ってるし使いやすい Cも無料だしあっさり動く 資料もいくらでも拾えるし、メーカーのページにサンプルコードが山ほどあるし コスパかなりいいと思います
dsPICって良い教材あるかね? 今まで使ってたのが「C言語によるPICプログラミング入門 」なんだけど
>>757 dsPICとかいいんだけどさぁ。あんなにポートがいっぱいあるのに
8ビット連続で取れるのは少ないっていうのはどういうこった?
761 :
774ワット発電中さん :2009/02/05(木) 19:27:17 ID:EN4UVK/R
>>735 >>586 に書いたけど、そういう通常動作の時の話ではない。
センスの無いプログラムは、誤動作した時の挙動に問題があったり
誤動作しやすかったりする。Cしか出来ない奴はCPU内部を想像出来ないから
動けばなんでも同じとしか思えないだろうけど、現実は大きな品質の差が存在する。
実際に家電作ってる会社に納めたマイコン付き試作基板は、滅多に誤動作しないと
ノイズ耐性を評価した人が驚いてたよ。
でもそれは、
>>735 みたいなCでも出来る対策では無く(勿論それは必要だけど)
マイコン内部のロジックが誤動作した時の挙動を救済するもの。
>>739 別に
>>739 が認めなくても良いよ。 ID:vLlCro9t みたいに無知まるだしで
煽ってるつもりになってる馬鹿を見るのが面白いだけだから。
ってかどっちもどっちな・・・
>>761 また具体例無し、証拠無し。
嘘つき野郎。出て行け!!!
どっちも相手で遊んでいるつもりなんだろうけど 相手も遊んでいるだろうね。
>>761 >>煽ってるつもりになってる馬鹿を見るのが面白いだけだから。
スレ汚し詐欺師乙
>>764 まあ、どちらが悔しそうかは一目でわかるけどね。
ふとおもたが、ロジックで特殊なことできるなら、特許でウハウハだな。 一昔前なら、自分とこだけのロジックってことで名を売ることができただろうけど いまどきはPICだろうがマイコンだろうがアホのように金かけて吸い出して解析されるよなー車のECUとか…
ロジックだとイリーガルステートの対策とかなら良くやりますね。
>マイコン内部のロジックが誤動作した時の挙動を救済するもの。 もうアセンブラの領域飛び越えてマイクロコードの域じゃないのか?
771 :
774ワット発電中さん :2009/02/05(木) 20:50:51 ID:cSK9dX1U
>761 >マイコン内部のロジックが誤動作した時の挙動を救済するもの。 可能性はあるが、それをどうやって”誤動作”として認識するのか? 狂っている回路で...。 アセンブラの素晴らしさは伝わってくるけど、肝心な”アセンブラならでは”のところががセンスだったり、想像だったりでアセンブラ関係なし。 雲をつかむよう。 自己の認識と文章の表現能力にギャップがありそう。 てか、この話電子立国でやってたね。 電気釜はアセンブラで、ソースを印刷して何メートルもあるソースリストをみんなで査読して安全を確保してるとか。 どっかで聞いてきた話でしょ。 PICのスレでのみ騒いでるって、お里が知れますですよw。
772 :
774ワット発電中さん :2009/02/05(木) 21:07:09 ID:EN4UVK/R
> ID:EN4UVK/R 敗走モード
>
>>768 > ECUはそんなに金掛けなくても吸いだせる。
具体的には?
>>マイコン内部のロジックが誤動作した時の挙動を救済するもの。
>
>可能性はあるが、それをどうやって”誤動作”として認識するのか?
>狂っている回路で...。
んで、知ったかじゃなくて、質問してるんですけど.....。
ID:EN4UVK/R 笑えるね。 >実際に家電作ってる会社に納めたマイコン付き試作基板は、滅多に誤動作しないと ノイズ耐性を評価した人が驚いてたよ。 普通は誤動作した段階でNGなんですけど。 オールCで作ったプログラムですが、トータルで約5000台ほど出荷された製品が毎日動作(もう3年くらいになる)して不具合出ていませんけど、どこかおれ間違えたのかな?
775 :
774ワット発電中さん :2009/02/05(木) 21:24:03 ID:EN4UVK/R
>>773 悔しそうだなw
煽れば教えてくれるとでもwww
776 :
774ワット発電中さん :2009/02/05(木) 21:27:00 ID:EN4UVK/R
>>774 >普通は誤動作した段階でNGなんですけど。
流石にCしか出来ない奴は言う事が違うなw
実際にメーカーのハード屋さんに付き合ってみたら?
まあ、無理だろうけど。
キティガイが居ることは良くわかった。
ID:EN4UVK/R >>マイコン内部のロジックが誤動作した時の挙動を救済するもの。 > >可能性はあるが、それをどうやって”誤動作”として認識するのか? >狂っている回路で...。 悔しがってるわけじゃなくて、質問してるんですけど.....。 車のECUの動作単位ってなにか知ってる? どんなセンサが単位か? 知ってたら教えて。
779 :
774ワット発電中さん :2009/02/05(木) 21:41:07 ID:EN4UVK/R
>>778 >悔しがってるわけじゃなくて、質問してるんですけど.....。
>>773 の一行目に悔しさが滲み出ていますがwww
ちなみに、昔のECUはROMを使ってる物が多いし、現行はワンチップだけどROMモードを持ってる物が多いし、デバッガが繋がる物さえある。
今解析中のはSHだから簡単に吸い出せた。
それと、全然質問してる態度じゃないよ。小学生からやりなおしたらwww
ID:EN4UVK/R様 >>マイコン内部のロジックが誤動作した時の挙動を救済するもの。 > >可能性はあるが、それをどうやって”誤動作”として認識するのか? >狂っている回路で...。 この部分、コーディングでどのように実現されているのでしょうか。 ご教示のほど、よろしくお願いいたします。 また、 車のECUの動作単位はあるセンサが単位となっているそうですがご存知でしょうか。 併せてご教示のほど、よろしくお願いいたします。
781 :
774ワット発電中さん :2009/02/05(木) 21:51:30 ID:EN4UVK/R
>>780 マジで頭悪そうw
なんでお前みたいな奴に教えてやらにゃいかんの?
笑わせてくれますね。
具体的な技術を示せないホラ吹き奴隷は屑。
↓プロなら答えられなきゃおかしいな。 車のECU触ってるのならどっちも常識。 ブラオヤジ、調子に乗りすぎたな。 ID:EN4UVK/R様 >>マイコン内部のロジックが誤動作した時の挙動を救済するもの。 > >可能性はあるが、それをどうやって”誤動作”として認識するのか? >狂っている回路で...。 この部分、コーディングでどのように実現されているのでしょうか。 ご教示のほど、よろしくお願いいたします。 また、 車のECUの動作単位はあるセンサが単位となっているそうですがご存知でしょうか。 併せてご教示のほど、よろしくお願いいたします。
あとECUの解析って、何を解析してるんだ? 目的はなに??
メーカーは?エンジン形式は?
ブ ラ オ ヤ ジ し っ た か 乙 ! (いま、猛烈にググり中。)
おまえらそんなにピキピキしてないでpickit3を予約する作業に戻るんだ!!
なんかアセンブラ使えればデバイス内部のハードを理解できるように読めるが、 実際の内部構造はメーカー毎に違うし、同じメーカー内でもシリーズ毎に異なることさえある。 その誤動作を想像するなんて、たかがアセンブラを知っているレベルで出来る訳ないよ。 どんな誤動作をするかでさえ予想できないのに、どうやればそれを救済できるかなんて 分るならデバイスメーカーが頭下げて教えを請いにくるんじゃないか。 デバイスの論理図やレイアウト図見て考えているならまだ可能性はあるが。
>実際に家電作ってる会社に納めたマイコン付き試作基板 妄想だってもっと具体的だろ。 家電て何だよ。 >今解析中のはSHだから簡単に吸い出せた。 エンジン形式位は書けるだろ。メーカーだってさ。 アセンブラ奴隷撃沈かww
今時クルマのECUってアセンブラやC言語で直接書かなくなったよな〜
792 :
774ワット発電中さん :2009/02/05(木) 22:40:54 ID:EN4UVK/R
>>788 > なんかアセンブラ使えればデバイス内部のハードを理解できるように読めるが、
だとしたら読みが足りない。
誤動作を想像するのは実務経験を積めばわかるだろうけど脳内だけじゃ思い浮かばないかもしれない。
仕上がった製品(最終ユーザが使うと言う意味の製品)の特性によって対策が変わるものもあるけど
大筋で変わらない、つまり単にアルゴリズムがまずい物もある。Cしか出来ない奴はそういうまずいアルゴリズムを
平気でつかう。正常動作時の動作が仕様を満たしていれば問題無いと言う考えだからな。
そんなのは最低限の条件。
というかC言語使う人に恨みでもあるんですか?
794 :
774ワット発電中さん :2009/02/05(木) 22:43:05 ID:EN4UVK/R
795 :
774ワット発電中さん :2009/02/05(木) 22:44:57 ID:EN4UVK/R
796 :
774ワット発電中さん :2009/02/05(木) 22:46:27 ID:72cYF132
恨みそれだけでしょ。Cで挫折した。 家電て何? 解析してるのはどのエンジン用のECU? ちょっと具体的になるとだんまりなのね。 バカオヤジ。
けどなんというかCしかできない・・・ってフレーズをそこまで 断言できるってことは周囲の人にめぐまれなかったんでしょうね・・・
今日も大漁ですね。 毎度ご苦労様です。
799 :
774ワット発電中さん :2009/02/05(木) 22:48:06 ID:72cYF132
〉その通り。 後だしかよー どんなエンジンだよ〜
ふつうこんだけ叩かれたら、 。・゚ (;゚`Дフ。モーコネーヨ ワァァァン ってなると思うんだが。 実は¥80兆円とか要求するようなかわいそうな感じの人なのかも しれんからそろそろそっとしといたげたら?
>仕上がった製品の特性によって対策 これ、場当たり対策っていうんだろ。 設計っていうのは見越して先に(ry >実務経験を積めばわかる わかんなかったみたいだね。 無駄な時間を過ごしたなwww.
>仕上がった製品の特性によって対策 これ、場当たり対策っていうんだろ。 設計っていうのは見越して先に(ry >実務経験を積めばわかる わかんなかったみたいだね。 無駄な時間を過ごしたなwww.
PIC初心者として質問なんだけどさ、 単にアルゴリズムがまずい物ならそれはプログラマの資質であって Cだからってわけじゃないんじゃないの? アセンブラだってアホが書けばマズいアルゴリズムになるんではないかなと 初心者なりに思うんだけど。
804 :
774ワット発電中さん :2009/02/05(木) 22:57:29 ID:EN4UVK/R
>>796 >ちょっと具体的になるとだんまりなのね。
改造ECUを扱う業界はかなり狭いからな。これだけでもありがたく思えw
>>797 そうかもね。まあ、ここで「Cしかできない」と書いてる対象者はこのスレに書いてる頭の不自由な奴らの事だけどな。
勿論、初心者とかホビーでやってる人は問題ないけど、無知がバレバレの書き込みで知ったかする奴らは(ry
>>804 スレに書いてるって意味では自分も同じでは?
アセンブラがわかるならこのスレに書いててもOKって考え?
というかアセンブラがわからないひとって極少数派だと思っているのは
私だけなのかな。
>>791 日産も日立系なのか
>>803 いま出てるのは、アルゴリズムじゃなくてコーディングでの命令のチョイスと並べ方とかの問題じゃなかろか。
ふと。
ポインタやスタックがズレたときに、命令位置間違って実行してもNOPとか意味を成さない命令になって
しばらく進むと本来の流れに戻れるように、命令幅をNOPあたりで調整してある…とか…って思いついたが
スタックやPCがズレるって、すでにCPUの動作の根底に関わる不具合だしなあ。
そんな代物で動くプログラムなんかしたくないな。
ツーかさ、ポインタで挫折したかわいそうなやつ相手にもう。 まーPicKit3前夜祭かな。
>>806 >スタックやPCがズレるって
ロジック設計のときは設計上ありえない状態も考慮して設計したりしますよ。
変な状態(ステート)に落ち込んだから怖いので・・・
7セグを4511と連携させて表示するプログラムを考えているのですが 10進4桁の値を引数で渡して表示させるには下のようなプログラムでいいのでしょうか? なおポートC0〜3、C4〜7、D0〜3、D4〜7にはそれぞれ4511を接続します void Segment_View(int view){ int c_port, d_port; output_c(0x00); output_d(0x00); c_port = view % 10; view = view / 10; c_port = c_port << 4; c_port = (view % 10) + c_port; view = view / 10; d_port = view % 10; view = view / 10; d_port = d_port << 4; d_port = (view % 10) + d_port; output_c(c_port); output_d(d_port); }
811 :
774ワット発電中さん :2009/02/05(木) 23:35:26 ID:fw1wkyTw
ここはアセンブラ”も”おkな) ID:EN4UVK/Rに回答してもらいましょう! 7Seg業界は狭いってかw。
> ID:EN4UVK/R みごとな逃げっぷりww
定年したジジィなんで夜が早いんだよw
まあ24時間2チャンしている人もそんなにいないでしょう。
>>810 とりあえず気になったところ
割り算とか%(なんて呼びましたっけ?)は使用するコンパイラの環境によると
思いますがリンクに成功していますか?
あと「c_port = (view % 10) + c_port; 」ってしている部分は実際には
問題はないと思いますが、論理和の方があとでソースを見るとき
見やすいと個人的には思います。
俺の中ではアセンブリ言語で組めるプログラムは基本的にCでも組めるという認識だけど、なにか間違ってたのかな。 ポートアクセス間にディレイ挟むならNop();でいいし、WDTだって使えるし。 ポートのリードモディファイライトによる誤動作を防ぐバッファだってCで書ける。 こういったフェイルセーフをプログラムで実装するのはもちろん大事だが、 そうでもしないとまともに動かないようなハードは見直す必要がある。 あくまでフェイルセーフにとどめておくべき。
asm→cの順に行けばポインタで挫折する事なんて普通は無いハズなんだけどなぁ。
>>813 おそらく悔しくて、明日の朝は4:00頃に目が覚めるんじゃないか?(笑)
818 :
774ワット発電中さん :2009/02/06(金) 01:07:12 ID:hWZCmUcs
まー昭和の脳内プログラマでしょ。 >仕上がった製品の特性によって対策 これ、場当たり対策っていうんだろ。 設計っていうのは見越して先に(ry >実務経験を積めばわかる わかんなかったみたいだね。 無駄な時間を過ごしたなwww. >家電て何? >解析してるのはどのエンジン用のECU? >>マイコン内部のロジックが誤動作した時の挙動を救済するもの。 > >可能性はあるが、それをどうやって”誤動作”として認識するのか? >狂っている回路で...。 この部分、コーディングでどのように実現されているのでしょうか。 ご教示のほど、よろしくお願いいたします。
今日わかったこと。 ブラオヤジは、質問されるのが嫌い。 どんどん聞いて見よう!。
マイコン内部のロジックの誤動作を予測するって 早い話ディスクリート部品でマイコン作れる能力が無いと 不可能じゃないの?
821 :
774ワット発電中さん :2009/02/06(金) 01:26:51 ID:1OPdmGEM
もうちょっと アセンブラ氏の話も聞いてみたかった 2ちゃんだからしかたないけど あほなアオリおおすぎ
> マイコン内部のロジックの誤動作を予測するって 予測不可能だろ。内部ステートと外界の条件の組み合わせがどんだけあるのかと。 つか、想定できる不具合ってbug or erattaじゃね? 俺は対策してるなんて言ってるあたりで嘘つき。 そんで予測した不具合が起きたことなんか証明できないからね。こじつけや想像はできるけど。
>821 ”素人” ”知ったか乙”の言葉にどんな意味が? 具体的な話、1行もコード出てこないし。 脳内がどんなに立派でも、相手に伝わらなければゴミ。 ただのCO2排出源。
825 :
774ワット発電中さん :2009/02/06(金) 01:53:33 ID:1OPdmGEM
>>824 そうなんだけどさ 会社で静電気試験やると
担当プログラマによって 静電気強度が違う事があって 不思議だったから
俺ハードなんで 聞いても よくわからなかったけど
>>825 そのレベルなら、単に信号の見方の違いではなかろうか?
信号来たら即反応するソフトならば、誤動作も早いよね
同一信号8カウント連続で反応するようにすれば簡単には誤動作しない
反応速度は落ちるので、それとのトレードオフ
そのレベルなら言語の違いなど出ないけどね
しかもできて当たり前の処理
827 :
774ワット発電中さん :2009/02/06(金) 02:20:44 ID:1OPdmGEM
>>826 そうなのかな
でも ボタンが押されたような動作じゃなくて
完全に マイコンが逝ってる感じだったけど
828 :
774ワット発電中さん :2009/02/06(金) 03:33:37 ID:xrhU7/Cr
アドバイスをください。 MPLABv8.15から外部エディタが使えるようになりました。 現在、MPLABv8.20でTerapad0.93を使うように設定しようとしているんですが、 設定後、MPLABのワークスペースウインドウ内でファイルをダブルクリックすると エディタは起動するが新規ファイルが開いてしまう現象が起こっています。 ほかのエディタ(Windows標準のメモ帳やオフィスのワード、OpenOfficeのWriter)では、 何の問題もなくうまくいきます。 解決策を知っていたら、教えてください。 また、外部エディタに設定できるフリーソフトのエディタも教えてもらえると助かります。
> ID:1OPdmGEM なんか、誰かみたいなあいまいな物の言い様だね。 悔しくて眠れなかったんだね。 > 完全に マイコンが逝ってる感じだったけど どうしてそう感じたのか。
>>825 ,827
2人のプログラマが全く同じ条件のプログラムを書いているわけじゃ無いんでしょ。
静電気試験にしても再現性がどの程度あるのか、実験の条件を細かく調整しないと
まったく同じ実験をしても結果にバラツキが出ることは十分に考えられる。
実験結果がプログラマによってことなるとの判断に行き着くまでに、検討すべき
事項があるんじゃないか。
>>755 亀レスだけど。
ラダーに慣れ親しんだ人間にゃ、この方が分かりやすい。
と言うか、自分でソース書くならラダー組んだ方が直感的に分かるし。
タイマーやIFも簡単に組めるしね。
ただ、無料版は16F84Aにしか対応していない。(無料なだけ良いけど)
オプションで他の石にも対応出来るみたい。高いけど…
>>810 1の位がRC4-7でいいの?
こんなでも委員じゃね?
void Segment_View(int view){
output_c( (view%10)<<4 | (view%100)/10 );
view /= 100;
output_d( (view%10)<<4 | (view%100)/10 );
}
833 :
774ワット発電中さん :2009/02/06(金) 09:24:02 ID:d11Od84m
*.exe %Pだっけ
>>830 メインループがとっちらからないように組むとかだけでも、えらい変わりそうだしな
Z8マイコンなんだが、電源弱くて暴走って不具合あったときも
プログラム本体の居るアドレスを数バイトずらすだけでしばらくだけ回避できたりして
他人の組んだプログラムだったから、バグなのか何なのか悩み倒した覚えがあるな…
835 :
774ワット発電中さん :2009/02/06(金) 11:01:33 ID:1OPdmGEM
>>829 くれくれ厨なのに 下手なあおりなんかしてるから
ちゃんとした情報持ってる人が 書かなくなっちゃうんだよ
自重してほしい
>>830 プログラムじたいは違うけど 基板は似たような物で
マイコンも東芝の同じ物
仕向け先によってプログラムが違うのだけど
チャタリング防止とか 基本的な部分は 仕様を出してるから
その通りになってます 静電気試験は 試験機で数十万回 放電させて
統計的に調べるので 再現性は高いよ
今日 上司に聞いたら プログラムの組み方で変わるらしい
もともとハードの人だったけど ソフトをやりたいとかで 移動になった人らしい
C言語で 書いてあるらしいけど 詳しくは部署が違うので わからない
> ちゃんとした情報持ってる人が 書かなくなっちゃうんだよ 自演で幕引き宣言ですか。
837 :
774ワット発電中さん :2009/02/06(金) 11:21:29 ID:rjsfxGGm
>>835 今回はどっちもどっちでしょ。お互いあおり遊んでいるつもりな気がします。
それと部署が違くても、そういう現象(?)がハッキリしているなら
ちゃんと情報を吸い上げて会社全体のプログラミングレベルをあげたほうが
良いと思いますよ。
ま、いくら知識があって、頭がよろしかろうとも、 こんな話し方してるやつらに仕事は頼めんな。 書き込みの内容、これ自分が書いたんですと客先に見せられますか?
840 :
774ワット発電中さん :2009/02/06(金) 13:55:06 ID:1OPdmGEM
>>838 なんか 勘違いしてない?
俺が書いたの 821以降なんだけど
>ちゃんと情報を吸い上げて会社全体のプログラミングレベルをあげたほうが
言うだけなら なんとでも 出来ますね
知ってますか? 日本では言うだけの人が一番偉いのです。
>>840 >くれくれ厨なのに 下手なあおりなんかしてるから
>ちゃんとした情報持ってる人が 書かなくなっちゃうんだよ
これにたいしてのレスですよ?
>> ちゃんと情報を吸い上げて会社全体のプログラミングレベルをあげたほうが > 言うだけなら なんとでも 出来ますね わかっててやらない、そんでくそブラおやじに教えてクレクレ。 こりゃだめだわ。 お願いだから、ブラおやじ召喚しないで。 よその部署に話聞きにいって。 ブラおやじが具体的な話できるわけないでしょ、流れ的に。 記憶だけで生きてる、ポインタ挫折の敗残兵、廃人だよ。 ブラおやじ。
ノイズは言語が原因とかわからんが、 CRゴテゴテつけてるよ Cもテンコ盛り Lは電源ラインにコモンモード用とノーマルモード用だけ 200V系、100V系で誤作動一切無し 原価3000円を○万円で売ってますけれど、なにか?
最初からなら設計だけど、↓これはだめでしょ。 > >仕上がった製品の特性によって対策 > >これ、場当たり対策っていうんだろ。 >設計っていうのは見越して先に(ry
846 :
774ワット発電中さん :2009/02/06(金) 15:06:37 ID:1OPdmGEM
>>845 最初から対策する部分はしておくけど
現実には ノイズシミュレーターでの確認は必須だし
それで部品追加とか 基板修正になるのは 珍しくないよ
最初の設計だけで テストもしないで出荷できる実力
(図々しさ) が あるとは うらやましい
SMDだと後付けなんかできないので、痛い目にあった所、想像つくところはPadは設けておく。 で、とりあえず大丈夫。 ずうすうしさは不要。 > >仕上がった製品の特性によって対策 仕上げるって言葉、妙に引っ掛かるんだよね。 粘土細工でも作ってるのかと。
バカ穴の三菱対現物合わせの中島ですか
849 :
774ワット発電中さん :2009/02/06(金) 16:19:03 ID:1OPdmGEM
>>847 想像付くところは 設計にもりこまれてるからいいけど
社内規定の25KV で試験すると 何処に飛ぶかわからない事があるよ
想像だけで済むなんて いいな
どれくらいでテストしてるの
担当がよそなんで回数はわからないけど、 (1)接触放電 ±4kVまで試験を行い、異常なし。 (2)気中放電 ±8kVまで試験を行い、異常なし。 な感じ。 SH2のNetBSDなシステムです。 IOはEther,VIDEO,TTL。 ESDはコンデンサで対策できないでしょう。 基本は外皮で食い止める。浮いてる金属をなくす。 そんな感じ。 RCAはGNDを分離できないので、フィンガで外筐へ。 Etherのトランスは沿面距離に注意。 SGとの間にEMC用の予備パッド... などなど。 そろそろブラオヤジ登場かな。 ”素人乙”はかりで、具体的な話は出ないと思うけど。
あ、あと趣味で、会社の備品ばらして他社の対策見てます。 これ結構役に立つとおも。
852 :
774ワット発電中さん :2009/02/06(金) 17:38:26 ID:1OPdmGEM
>>850 接触で4Kですか それ位ならうちでも多分大丈夫
北米向けの製品は クレームの実績があるので 特に厳しいです
シールドしたいのはやまやまですが コスト的に無理なので
ケースデザインも含めて 対策します
25Kだと ABSが 金属と変わりないので
ソフトで コンスタントに 対策できればかなり嬉しいですが
PICじゃないけど、CPUの暴走はWDTで防ぐとして、動作中のテーブル類は3か所に同じ値を置いておく。 あと、動作中だよフラグも3か所。 復帰時に、多数決で動作中だったフラグが立っていたら、テーブル読み込んでResume的動作。 フラグが多数決でcold startを示していたら、RAM全部初期化なんてのはやっていますよ。 3個所は多数決を取るため。奇数個所なら多いに越したことはないと。
あ、テーブルも多数決ね。
PIC以外の話をしてる仲のいい仲間たち。 スレ立ててそっちでやってくれ。
856 :
774ワット発電中さん :2009/02/06(金) 20:21:31 ID:DtfVYWby
わざわざそんなこと言うなら、なんか本来のネタ振ってよ....。
最近電子工作を初めた俺はPICいじるのがとても楽しい 特にI2CでそれぞれのPICに役割を振って通信させて動かすのが 生き物みたいで愛着がわく
858 :
774ワット発電中さん :2009/02/06(金) 23:06:07 ID:X5Jchgtr
哀れな秋月荒らしが知ったかして暴れてたみたいだな。 3箇所に同じ値を書いとくなんて対策はよっぽどじゃないと効果が無い。 ID:1OPdmGEMは折角環境に恵まれてるのだから「3箇所に同じ値を書いてますか」って聞いてみるがヨロシ 99パーセントそんな事はしてないはず。 まあ、Cしか出来ない奴には想像が付かないだろうけど仕方が無い。 若い人ならいろいろ想像して手が動くだろうからがんばって勉強すれば自分の物に出来るだろうからガンガレ! 秋月荒らしみたいな頭の固いジジイには無理だな。諦めたほうがいい。
多数決定数は、Flashとかで最後の砦的な使い方はしたような覚えがあるな。 まあ、Flashは物理的に壊れること前提だからだけど、他にも何か使い方があった気がする。 それより俺的には「動作中のテーブル」っていうのがよくわからんな。 動作中=RAMに展開中、とかで、暴走からの復帰でもう一回使う、とかいうのだったら ものごっそ怖いっていうか、そんなテーブル捨ててしまえな気もするが。
860 :
774ワット発電中さん :2009/02/06(金) 23:41:05 ID:1OPdmGEM
>>858 是非とも 秘伝を教えて頂きたいのですけど 駄目ですか?
会社でも聞いてみますが そのプログラムを書く人は
正社員では無いので 細かく教えてくれるかどうか
862 :
774ワット発電中さん :2009/02/07(土) 00:26:50 ID:HfYge1Z+
ミナサン ナカヨク シテクダサイネ ワルクチ ヨクナイ
>>862 ドラクエ2でパスワード間違ったときの事を思い出した
不快な思いをしたので謝罪を要求する
そして ID:X5Jchgtr 今日も遠吠えしているのであったwww. 具体的に書いてみろよ、いい加減。 > 秋月荒らしみたいな頭の固いジジイには無理だな。諦めたほうがいい。 本人だろ、千葉県人。 このしつこさ、登場タイミング。 > そんなテーブル捨ててしまえな気もするが。 車のエンジンみたいに止めれば安全って物じゃないときは(車両は止めればいいけど、エンジンは止めると暖房が効かない)、動かし続ける必要がある時は初期化は最低限で済ましたりするとのこと。 で、時としてテーブルが腐るんで、バッテリ外して数十分放置して再接続をすると調子よくなったり。 アセンブラ奴隷はエンジン知らないみたいだけどね。 処理の最小単位知らない、RBがH8,->はSH,SRはM16とか、一般人でも知ってる人は知ってるって。 アセンブラ奴隷に質問 インジェクタの噴射量に一番大事なパラメータは? 1.ドエルアングル 2.スロットルポテンショメータ指示値 3.クランク各センサ1° 4.エアフローメータ指示値 5.水温
> 是非とも 秘伝を教えて頂きたいのですけど 駄目ですか? これだけ時間がたっても一言も有意な情報出てこないから、妄想基地害だと思うよ。 どっかで聞いたことある話だし。 画期的なアルゴリズムなんかないと思ってください。 ちなみにテーブルの多数決は航空宇宙系ではポピュラー。 放射線、宇宙線でRAMが化ける可能性が高いので。(ソフトエラー) それでも止められないから、多数決とって、多数の値に修正。 極限では完全は無理で、確率を高める世界だから、アセンブラならロジックの修正ができるなんてうそ。 スタティックな回路がこけるなんて妄言吐くのは詐欺師。
最近はSEU問題とかあって、誤動作対策が必要になってきた。 冗長以外の画期的な対策があれば、こんなスレでゴミ撒く必要なくなるよ。
ホラホラミナサン チュウガクセイヤ コウコウセイモ コノスレミテマスヨ ケンカシナイデ ナカヨクシマショウ うんこ
アセンブラ基地害、すごい逃げっぷりだなぁ。 アポロは3台、シャトルは5台で多数決、中のファームもって有名じゃん。 すごい了見の狭い奴なんだな。気づいてないんだな。 フィルタ動たし、寝よっと。
しつもんです。 picでramを扱いたいんですが I2Cかそれに近い少ないピンで制御でき高速 安い 容量は1kで十分 入手性がよい(送料が安いとか) こんなramは有りませんか?
高速なのにI2Cという所がビミョーだけど、1Kでいいなら もう一つPICを外部RAM代わりにしてもいんじゃない? RAM(SRAM?)でI2Cなんてあるのかな。
>>870 こんなのあるんだ。
こうなるとPIC側に外部RAMモードとか欲しくなるな。
質問ですPIC16f677にC言語のプログラムを書き込みたいのですがうまくいきません 書き込む環境として、MPLAB ICD 2にターゲットボードとしてPICDEM 2 Plusを使っているのですが 今回20ピンのマイコンを利用するのにターゲットボードは18、28、40ピンしか対応してないので 28ピンのソケットからVDD、MLCR、Vss、ICSPORT、ICSPLCKからジャンパ線を伸ばして PICマイコンを繋げたのですが、なかなかうまくいきません この方法に問題があるのでしょうか?教えてください
>>869 シリアルフラッシュで良いと思うけど。
セクタサイズ以内なら、書き込みも割と早いし。
875 :
774ワット発電中さん :2009/02/07(土) 12:32:04 ID:04k3tluX
>>870 送料が・・・
> 高速なのにI2C
遅いですか?少ないピンではほぼ最速だと思ってました。
>>874 なかなかいいかもです。
入手方法がわからないけど
どうしても手に入らないようならSDカードで挑戦しますが
もっと簡単なインターフェースの方がありがたいです。
PIC18F2550がRAM:2048バイト、秋月で400円 I2Cはアクセスするのに時間が掛かりそう。
>>873 18ピンのソケットを使って1番ピンを合わせ(10,11ピンをはみ出して)書けませんか。
Writer509のソケット配列ならこの方法で書けます。
>>875 こういう汎用シリアルだったらSPIが一番速いんじゃないの?
I2CだとMAX400kbpsじゃん。
1KB追加程度なら外付けするより内蔵RAM大きいやつの方がアクセス楽だね。 18F2550も良いし24FJ64の秋\450も魅力的かと。
>>873 >>877 18Pinと20PinじゃVpp/MCLR以外は合わないんで
他はジャンパ必要だと思いまつ。
>>876 >>879 やっぱりその方が現実的ですか。
確かに24fは魅力的ですから購入します。
ただ、秋月に注文したい物が今ないんだよな・・・・・
>>878 線の数を増やせばいくらでも高速になります。
私の中に3本以上は越えられない壁が存在するんですよ。
それはお気の毒に
こうですか? 1本>>>神の領域>>>3本>>>越えられない壁>>>4本>>>富豪の壁>>>フサフサ 髪の毛の話だからな!
884 :
877 :2009/02/07(土) 14:51:16 ID:5Ce9JBwE
>>880 Writer509のように8ピンにも対応していたら書けるんですけど
PICDEM2Plusの回路図みたら18ピン専用でした、すみません。
>>873 考え方はいいけど配線間違ってないかな
2OP 28P ICD
4 1 1 MCLR
1 20 2 VCC
20 19 3 GND
19 28 4 DAT(RB7)
18 27 5 CLK(RB6) だよ
873です みなさまどうもありがとうございます >884の通りに配線しているのですが、うまくいきません PICを使うのは初めてなので、その他のトコがうまくいっていないみたいです 後は自分でなんとかしてみます
886 :
774ワット発電中さん :2009/02/07(土) 20:02:08 ID:hDur9FzL
実践的なまともな流れのときは、ブラおやじは出てこないんだな。 御託ばかりで、御託に中身がないなぁ。 笑える分、軽さんの方が数段マシ。 でも、もう出てこないでね。(>_<)
あげて召喚するなよ
>>873 >>885 何がうまくいかないか書かれてないのでどうしようも無いけど
配線の問題とは別かもな。
PICDEM 2 Plusで対応できる18/28/40pinのPICで
MPLAB IDE+ICD2使い方確認してみなよ。
じゃあ改まって
>>627 の回路にノイズ対策を施すレスをします
a.MAX232の電源に0.1μのコンデンサGND-VCC間に入れる(電源ノイズ対策)
b.PICのMLCRに10Kをいれる(ラッチアップ対策)
c.MCLRとGNDに0.1μのコンデンサをいれる(リセット誤動作防止)
d.上記10Kの抵抗と並列にダイオードをいれる(リセット誤動作防止)
e.PICの入出力のすべてに1KΩ程度の抵抗をいれる(ラッチアップ対策)
f.三端子レギュレータの出力と入力との間にダイオードをいれる(レギュレータIC保護)
g.三端子レギュレータの入力とGNDの間にコモンモードノイズ対策のコイルを入れる(電源ノイズ対策)
h.LCDのDB0-DB3のプルダウン抵抗をはずす(内部プルアップ抵抗在り)
ざっと思い浮かんだ対策
意味のないもの、もっと必要なものがあれば理由を書いてレスしてくれ
> (電源ノイズ対策) ノピズ?ア ホか、素人。軽石かあんたは。 > (レギュレータIC保護) わかってねーな。なんで必要かデータシート読み直せ。 >.三端子レギュレータの入力とGNDの間に これは表現の問題か。 形をまねてるだけなのがよくわかりましたw。 あとはこちらの件、ご教示のほど、よろしくお願いいたします。 ID:EN4UVK/R様 >>マイコン内部のロジックが誤動作した時の挙動を救済するもの。 > >可能性はあるが、それをどうやって”誤動作”として認識するのか? >狂っている回路で...。 この部分、コーディングでどのように実現されているのでしょうか。 ご教示のほど、よろしくお願いいたします。 また、 車のECUの動作単位はあるセンサが単位となっているそうですがご存知でしょうか。 併せてご教示のほど、よろしくお願いいたします。
892 :
774ワット発電中さん :2009/02/08(日) 09:42:42 ID:fmtj/myr
〉889 ちょwwwwアセンブラ奴隷ダサすぎ。 これであの物の言い様かよ。 久しぶりに、良ゴミレスを見た。 10Kプルアップに1Kを挿入って、さすがプロはいいセンスしてるな。 それでもこけたらコンデンサだろww。 〉LCDのDB0-DB3のプルダウン抵抗をはずす どこに抵抗がある? あと、理由がダメすぎ。GND直結は間違いだけど、違う理由。 プロっていうから、専用リセットIC使ってるかと思ったよ。 瞬停には耐性ないな。アセンブラ奴隷。 age晒し もう来るな、ゴミ!。
> 10Kプルアップに1Kを挿入って、さすがプロはいいセンスしてるな。 まあ、MOSだから許してあげようよ。 I2C,SPIの時はどうするんだろうね。 アセンブラキティ、EIA-232側の耐性ってどうやって確保するの? MAXIMだから大丈夫ってか?
無駄に改行入れるやつって、目が悪いのかな。
895 :
889 :2009/02/08(日) 11:19:38 ID:JVgPdZb/
プロじゃないです。素人です
896 :
774ワット発電中さん :2009/02/08(日) 11:25:53 ID:LJ8ATEiB
PIC18F2320使ってるんだけど、不思議な現象で悩んでます。 どなたか他に、こんな状態に出くわしたことないでしょうか? 電源投入後10数秒間くらい、MCLRすら効かない状態が続く。 (もちろんパワーオンリセットも働いてない) MCLRを無理矢理GNDに落としたりしてみてもダメ。全くリセットを受け付けない。 ところが不思議なことに、10数秒経つとこれが効くようになる。・・・★ ICD2でプログラミングした直後は、プログラム用のコネクタ外した途端にちゃんと動き出す。 さらに、そのまま電源さえ切らなきゃMCLRもちゃんと効く。一回でも電源落として、 入れ直すと★の状態になる。 コンフィグビットでMCLRはもちろん有効にしてあります。 何でこんなこと起きるの?
PICを知らないおいらが言うのもアレだが、 MCLRが効かないんじゃなくて効きっぱなしになってるんじゃないの。 つまりMCLR端子が浮いてるのでは? 入力容量が漏れ電流で充電されていって、10秒ぐらいでHレベルと 認識される電位に達し、そこでやっと動作を始めるのでしょう。 もし内部プルアップされてる端子だったらスマン。
>>896 >電源投入後10数秒間くらい、MCLRすら効かない状態が続く。
この間プログラムは走ってるの?
MCLRが効いてるかどうかはどうやって判断してるの?
クロックソースは何?
電源は何で何V与えてるの?
899 :
774ワット発電中さん :2009/02/08(日) 13:10:25 ID:LJ8ATEiB
>>897 ありがとうございます。MCLR端子は典型的な積分回路に接続してあります。
(10kの抵抗を電源側に、10uFのコンデンサをGND側に接続し、抵抗とコンデンサの接続点をMCLR端子に。)
不思議なのは、最初にDIPパッケージの18F2320を使って手配線で組んだ基板では何も問題なく動いたので、
「よし」の判断を下して全く同じ回路でプリント基板を起こし、SOPパッケージの物を使って組んだら、
SOPの基板の方でだけそういうことが起きるんです。(SOPで作った基板、2枚ともそうなので単体の特性不良
というワケでもなさそう。)
現象そのものも不思議です。電源投入時にMCLR端子を強制的にGNDにジャンパしておき、電源ON後1秒以上
経ってからジャンパを離しても、全くリセットがかからず。パワーオンリセット回路の時定数が足りなくて
リセットがかかってないだけなら、この方法でなら正常に立ち上がらなきゃおかしいですよね。
さらにしつこいくらいに、MCLR端子をGNDにジャンパしたり離したりしてもダメ。電源投入後、十数秒の間は
絶対にダメなんです。
それが十数秒経過した後は、ほんの一瞬でもGNDジャンパしてやると(すなわち外部MCLRを与えてやると)
一発でリセットがかかって走り出す。何なんでしょう、これ?
900 :
774ワット発電中さん :2009/02/08(日) 13:15:58 ID:LJ8ATEiB
>>898 ありがとうございます。
>クロックソースは何?
>電源は何で何V与えてるの?
ソースは10MHzのHCで、クロックモードはPLL×4モードで動かしてます。
電源は+5Vです。(実測4.96Vぐらいですが。)
プログラムは、走ってないですね。
一番最初にやらせる仕事が、メインのループに入る前にIO端子を一つON(H)にする
というだけの動作をモニタとして入れてあるのですが、これが実行されませんから。
リセットがかかって走り出したかどうかは、その端子がONになったかどうか(LEDつないであります)で見てます。
半田付け不良にちがいない
クロックの発振の立ち上がりが異常に遅いのかね。 設定が本人が思ってるのと違ってるとか、振動子まわりの定数が不適切とか。 まあでも定数が不適切なら発振しないままのような気はする。 設定間違いに100ジンバブエドル
903 :
774ワット発電中さん :2009/02/08(日) 13:36:30 ID:LJ8ATEiB
そうですね。いまコンフィグビット設定の周辺を、再度徹底的に洗い直してます。 ただ、マトモに動くほうの基板(手配線のDIPパッケージの分)と、動かないほうの基板で 設定に全く差がないのが不思議・・・。 あと、怪しいのはPLLx4モード(内部CLOCK:40MHz)での運転ですかね。これ、私は初めてなので。 しかしいくら何でも、内部でPLL動作が落ち着くまでに十数秒もかかるのかなぁ・・。
904 :
774ワット発電中さん :2009/02/08(日) 14:02:55 ID:fiiGolTa
教えて君で悪いがもし知っていたら教えて下さい。今まで8ビットのUSBPICで18F4550て 奴で少しだけ遊んだ事があるが今度16ビットの(24Fシリーズ)を使いたいと考えてます。 Cコンパイラーも8ビットのものとは異なるものをダウンロードしなくちゃいけない様だけど他にも たくさんの違いがあると思う?
>>894 おれもそう思う。
アセンブラおやじも気持ち悪いがID:UUij2+CQも気持ち悪い。
>>889 は釣り針でかすぎて、口に入らない。
もしかして粘着していた馬鹿なのかも?
>>896 デバイスの不具合も考えられるけど、電源ONからのスタートアップで発振がうまくできていない可能性もある。
ソースクロックのコンデンサとかはどうなっているのかな?
DIPとSOPで挙動が違っているのはRev.が違っているので微妙な違いで動いたり、うごかなかったりとか。
>>900 俺もクロックの発振不良だと思う。
クロック周りにオシロ当ててみると何かわかるかもしれない。
あと、特定できているわけではないのにリセットが掛からないという表現は避けたほうが良いかと。
おっしゃってる症状だとリセットは掛かってるけど何らかの理由で起動できてないとしか思えない。
907 :
774ワット発電中さん :2009/02/08(日) 15:15:16 ID:LJ8ATEiB
皆様、色々ありがとうございます。 発振回路は秋月で売ってるRALTRONの10MHzクリスタルの両側に、22pFのチップコンデンサを設けた一般的なものです。 クロック波形をオシロで確認しましたが、見る限りキレイに発振してるようです。正弦波っぽい波形が、 ほぼキッチリ10MHzで計測できてます。電源投入から10数秒後の、MCLRを受け付けるようになる前後で (便宜的にこう表現しますが)特に波形や周期に変化は見られません。 あと、大した進展ではないのですが、新しいことが一つ分かりました。 CONFIGレジスタでウォッチドッグタイマを1秒くらいに設定して、プログラムループ中の WDTクリア処理をわざと消す。こうしておいて立ち上げたら・・・何も起きません。 パワーオンリセットが効かなくても、ウォッチドッグの最初の周期でリセットがかかるのかな? と思ったのですが・・・。 パワーオンリセットでプログラムが走り出さないと、CONFIGレジスタの設定内容すら読み込まれないみたいですね。 つまりMCLRを受け付けない間は、そこまでも行ってないようで・・。
908 :
774ワット発電中さん :2009/02/08(日) 16:02:57 ID:Ea2ERh4U
秋月で売ってるライターセット買おうと思っています。 LEDつけたりしたあと、LCDに表示とかが当面の目標です。 5Vアダプタ+ソケット、ブレッドボード、 PIC16F84A+ソケット、LEDはカゴにいれました。 あとは抵抗やコンデンサを何個か準備しておきたいのですが、 よく使うもの、不足しているものなどあれば指摘してください。
>>908 ・9V角電池ソケットひも付き→ブレッドボードに差せる様に加工
・三端子レギュレータ5V10個くらい
・電源用平滑コンデンサ:35V100uF 10〜20個くらい?耐圧は実際に使うだけあればよし
・パスコン:耐圧50V 積層セラミックコンデンサ 0.1uF
パスコンは100個くらい買ってもいいかも。 連投スミマセン
ごめん。電池ソケットは基板取り付けのやつ使えば加工の必要がなかった
912 :
774ワット発電中さん :2009/02/08(日) 16:26:05 ID:Ea2ERh4U
>>909-911 ありがとうございます。これから物色してみます。
抵抗はどれをよくつかいますか?
913 :
774ワット発電中さん :2009/02/08(日) 16:29:19 ID:Ea2ERh4U
カゴにいれると 「電源用電解コンデンサ 100μF 35V」は2個までのご注文に限らせていただいています なってしまいました。なんてこったい
915 :
774ワット発電中さん :2009/02/08(日) 16:34:18 ID:Ea2ERh4U
電源用電解コンデンサ 220μF 35Vは数量制限ないようなので かさばるけど、これを2個直列につなげればいいですか?
>>915 大きい分には兵活用としては問題ないと思うから
直列につなげなくてもいい。
抵抗は取り合えず10kΩを買っとけば?100個袋入りがあったと思う。
プルアップ プルダウンに使ってもいい。
ポートの電流が最大25mAなので、5/0.025=200Ω
少し余裕見て250オーム位のも買っとくといいかも。
後は、たぶん赤色のLED使うんだろうから5Vで光らせるときに
必要な抵抗を。150Ωくらいかな。ちゃんと調べて計算する事。
後は目的によるんだろうけど
1 10 100 1k 100k
100個ずつ位買っておけば組み合わせて色々作れるんじゃない?
917 :
774ワット発電中さん :2009/02/08(日) 17:03:35 ID:Ea2ERh4U
>>916 なるほど、それではコンデンサは220μの方を20個くらい準備してみます。
抵抗も参考になりました。そのあたりをひととおり購入してみます。
アドバイスありがとうございました。
918 :
774ワット発電中さん :2009/02/08(日) 17:16:47 ID:LJ8ATEiB
>>914 うわっ、貴重な情報ありがとうございます!!!!
その辺は全然疑ってなかった。 早速読んでみます。
919 :
774ワット発電中さん :2009/02/08(日) 18:52:17 ID:LJ8ATEiB
>>914 全て解決しました!! 大感謝です!!
「パワーアップタイマか、HS-PLLモードのいずれかを有効にしていると、
32KHz内蔵オシレータがリセットに貼り付いたままになる。」
とありました。
結局、WDTの使用と、HS-PLLモードでの運用は併用できないようですね。
WDTを使うと自動的にPower-upタイマを使うことになるワケだし、どちらかは捨てなければならない。
いや、ホントに助かりました。ありがとうございます。
恥かきついでにどなたか教えて頂きたいのですが、デバイスからDevice-IDとRevision-IDを読み出す方法って
あるんでしょうか?(MPLabとICD2で出来るとか・・)
素人質問でスミマセン。
920 :
774ワット発電中さん :2009/02/08(日) 19:03:47 ID:LJ8ATEiB
連投スミマセン。自己解決しました。ICD2をターゲットと通信させたときのログに出てくるんですね。 DIPパッケージの場合 "Target Device PIC18F2320 found, revision = Rev 0x4" SOPパッケージの場合 "Target Device PIC18F2320 found, revision = Rev 0x6" Revision-IDが違う! 教えていただいたErrataは18F2320でも、Rev.IDが0110(0x6)の奴に関してだけのものだから、 だからDIPパッケージの物は問題なく動いたのですね。 全て納得! たいへん勉強になりました。 重ね重ね、ありがとうございました。
>結局、WDTの使用と、HS-PLLモードでの運用は併用できないようですね。 >WDTを使うと自動的にPower-upタイマを使うことになるワケだし、どちらかは捨てなければならない。 何で?
>>919 >>ただ、マトモに動くほうの基板(手配線のDIPパッケージの分)と、動かないほうの基板で
>>設定に全く差がないのが不思議・・・。
↑ココの解説plz
設定の問題だったら手配線だろうが動かないと思うのだが
923 :
919 :2009/02/09(月) 00:11:48 ID:xfV6Ljga
>>922 設定の問題ではありませんでした。
>>914 氏が提示してくれたErrataの冒頭に、以下のようにあります。
The following silicon errata apply only to
PIC18F2220/2320/4220/4320 devices with these Device/Revision IDs:
Part Number Device ID Revision ID
PIC18F2220 0000 0101 100 0 0110
PIC18F2320 0000 0101 000 0 0110
Revision IDが0110となるのはSOPパッケージのこと。DIPパッケージならば0100。
「このErrataで報告されている不具合は上記のDevice IDとRevision IDのデバイスでしか起きない。」
とあるから、設定が同じでもDIPパッケージの物には起きないです。
924 :
922 :2009/02/09(月) 04:19:08 ID:LznlZuzd
PORTB_ とすると、PORTBの中身が読み込めるシアワセ仕様ってあったりするんでしょうか
その疑問がどこから来たかというと、LCDのSC1602Bに文字を表示するというこの↓ソースの239行目です。
ttp://www.cqpub.co.jp/shoseki/mycomputer/pic004/ss5/list5-12.txt PORTBの4〜7だけがLCDと繋がっているので、LCDへデータを送る際に上位4ビットを
保存する目的であるということはわかったのですが、現在のポートの出力を読み込む時に、
PORTB_ と定義されたところを読んでいるのですが、この PORTB_ は0x29が割り当てられています。
これでは29番地を読み込むことになって現在のポートの出力を読み込めないのではないかと思ったり、
直接 movfw PORTB でイインジャネーノと思ったり夜も眠れません。
暇な方がいらっしゃったらご教示お願いします。
肉番地のRAMの仮称
pickit3って半透明の赤なんだね。
>>925 まあ間違いだと思うが、プログラム中でPORTBの下位4ビットを使ってないから影響なし。
プログラム意図をただしく反映するなら、
movwf LCD_PORT ; ポートに書く
の後に
movwf LCD_PORT_
をいれるかな。
ttp://aikofan.dee.cc/aikoup1/src/f1341.jpg 秋月のPICライタでICSPしています。
画像のリセットSWを押すと秋月ライタの4066が昇天します。
VppがGNDに接続されてしまうからだと思います。
スイッチとGNDの間に1Kの抵抗を入れれば、Vppは12Vなので電流が12mAになり、
アナログスイッチの定格(たしか20mA)以内に収まるかな、と考えています。
こんな対応で問題ないでしょうか。
>>930 スイッチとGNDの間じゃなくて、スイッチとMCLR/Vppの間がおヌヌメ
>>931 ありがとうございます。
MCLR/Vppとスイッチの間に、余裕を持って2.2Kの抵抗を入れてみたところ
4066は昇天せず、PICのリセットやICSP書き込みも問題ありませんでした。
アドバイスありがとうございました。
PIC18F2550 のUSARTで 最初の1文字がPCで受信できないのですが 原因が分かりません。 入力20MHzで48MHz駆動、9600bpsです。 おかしいところがあるのでしょうか? コンパイラはC18です。 #include<p18cxxx.h> #include<usart.h> #pragma config FOSC = HSPLL_HS #pragma config WDT = OFF #pragma config PLLDIV = 5 #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 #pragma config PWRT = ON #pragma config BOR = OFF #pragma config BORV = 2 #pragma config LVP = OFF #pragma config VREGEN = ON #pragma config MCLRE = ON #pragma config PBADEN = OFF void main(void) { TRISA = 0b00000000; TRISB = 0b00000000; TRISC = 0b10000000; LATA = 0xFF; LATB = 0xFF; LATC = 0xFF; ADCON1=0x0f; CMCON=0x07; OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 77 ); while(BusyUSART()); WriteUSART('x'); //←これが受けられない while(BusyUSART()); WriteUSART('#'); while(1){ while(BusyUSART()); putcUSART('-'); } }
934 :
925 :2009/02/10(火) 22:26:07 ID:ersKDrv0
>>926 , 928
確かにPORTBはLCDにつなぐ以外に使っていないので問題なさげです。
RAMの仮称については自力で何とかしてみます。
ありがとうございました。
openしてからしばらくウェイト入れてみたらどうだろう?
936 :
933 :2009/02/10(火) 23:06:42 ID:W3UZI4Ch
>>936 PC側が原因?PC変えてみても駄目?
あとUSBシリアルとか・・・
938 :
933 :2009/02/10(火) 23:32:00 ID:W3UZI4Ch
>>937 PC変えてもダメっす
石を変えて試してみます
939 :
933 :2009/02/10(火) 23:37:08 ID:W3UZI4Ch
石を変えてみましたがダメでした 自作ロジアナもどきで見てみると 最初の1byteだけ綺麗に0x00で出力されます
940 :
933 :2009/02/11(水) 00:56:42 ID:038XbbK7
OpenUSARTを使わず直接レジスタに書き込めば動きました TXSTA = 0b00100000; RCSTA = 0b10010000; SPBRG = 77; OpenUSARTをどう間違っているのか良く分からないのが課題です
千石にあった小型振動モータと秋月の12F629Tでプログラマブルローターつくるお
そういうときは、C:\MCC18\src\pmc_common\USART\uopen.cを見ると良いです しかし、周辺用のライブラリ使うと結局ソース見ないと解決しない問題が多々発生するので 私はほとんど使ってないですが 自分でレジスタ設定した方が結局早い不思議
943 :
933 :2009/02/11(水) 02:37:19 ID:vfEunZfm
>>942 ありがとうございます
C18のライブラリって結構問題起こりますね
mikroCを使ってたときはこうじゃなかったんだけどな
C調言葉で書くと PIC16系 自分でTx割り込みフラグを勃てて 割り込みチンコの中で挿入レジスタにカキコ PIC18系 挿入レジスタにカキコでTx割り込みフラグが勃起 割り込みチンコの中で果てるのを待って復帰 つう違いがあった気が・・・・ C言語の意味が違うか ^^;
ツマンネ
>>943 C18のライブラリはタコなので頼りにしない方が吉。
947 :
933 :2009/02/11(水) 14:48:31 ID:X8CWZl37
ソースを見て解決しました 非同期通信でも同期に関する設定の記述が必要 関係ない設定の省略でなぜbitを立てるのかと子一時間(ry OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW & USART_SYNC_SLAVE & //←これと USART_ADDEN_OFF, //←これを追加 77);
>>947 マスクフラグを使って「&」 で複数指定する仕様だからじゃないか?
個人的には、「|」で指定する方が好み
>>948 その通りの仕様なのだけど
マスクフラグを使う利点が分からない
ソースコードも
void OpenUSART( unsigned char config, unsigned int spbrg)
(中略)
if(config&0x01)
なんて感じでなんかね、もぅ…
>>949 言葉通りじゃない。
「〜と〜と〜を使う」
「〜か〜か〜を使う」
まぁ俺もOR派だが・・・
PICkit3 届いた。 中のICの型番が見えるくらいに半透明だな。 昔のカラフルな iMac を思い出した。w
MPLAB IDE 8.20 で選択すると、例によっていきなりファーム更新。w 書き込みは速い。本当に書いてるのかって感じ。 デバッガとして使うときは良いのだが、プログラマとして使ったとき リセットの制御が出来なくなってるのが不便かな。(PICkit2は出来た)
PIC kit3は シリアルEEPROMライタ機能とかUART Toolや簡易ロジアナ機能とか無くなったの?
>>953 まだそういうソフトが無いっぽい。
ハード的には可能だろうから、そのうち提供されるんじゃないかなあ。
今のところ普通に実用するなら PICkit2 のほうが良いだろうね。
あたらしもん好きだね 最近pickit2 かったばかり
>>955 > あたらしもん好きだね
それは認めるw
あと、一応仕事だから(本業はパソコンのソフト屋だけど)、
最近のもの調べておかないと、って感じ。
>>956 なら ICD2とか3、real ICEも買わないとね
>>950 フラグの類はORじゃないとしっくりこないな。
別のマイコンかもしれんが&|どちらで結合してもいいってのがあってハァ?とか思ったことがある。
MPLAB IDE V8.15a→V8.20へのアップグレードを試みたところインストール中にエラーとなります。 何故?
え、今まで作ってきたプログラムも消えてしまうのでは?
消えるのか…
こういう人はパソコン買い換えると作ったものは全部消えるんだろうな。 そういう人生も後腐れがなくて良いな。w
>>962 というか、ヘッダファイルがこれで、ソースがコレとコレで・・・
とかそういうのやり直し?前のバージョンまで普通にアップグレードできたのに、
v8.20で一度仕切りなおしているの?
普通に上書きアップグレードでなんとも無いけどな。うちでは
966におなじ。普通に上書き。 >というか、ヘッダファイルがこれで、ソースがコレとコレで・・・ >とかそういうのやり直し? mcwファイル(mcp?)の中って、ソースの場所とかは相対パスで記録されてんじゃないの? 実際移したことないから未確認だけど。。
旧バージョンをアンインストールして最新をインストールしてもプロジェクトはそのまま使えるだろ
SOPパッケージのPICって、どうやってプログラムしている? 基板のサイズから、オンボード書き込みは出来ないから、今は一々秋月の変換基板に 手で押しつけて書き込んでいるが、どうも失敗しているようで… 一時期は、律儀にハンダ付けして書き込み後に吸い取り線で取り外していたが…
>>969 必要最低限のランドを出すしかないよね
必ずしもコネクターは必要ない。
クリップでランドに接続する。
>>969 普通は ICSP だけど、どうしても無理ならソケットだなあ。高価だよね。
変則的なものでも端子を付ける方法を考えるのが良いと思う。
あとは、ソケットアダプタ持ってるとこに書き込みを依頼するくらいか。
いゃあ〜更新の権限の無いユーザーでウインドウズにログインしている。 というようなエラーで8.15→8.20に出来ません。 もちろん、唯一登録しているユーザーで権限もあるのです。 こういうケースのエラーが出た方いませんか
>>972 トラブルの原因になるからアンインストール→再インストールが無難
ユーザー名日本語使ってたりしないよね
>>973 アンインストールしたのに・・・・
結果変わらず・・・・・
>>975 いや〜
>>972 じゃ無いけど。
新しいPCでMPLABが起動直後に強制終了されるのが直った。
感謝感謝。
30個の接点入力をPICに入力したいのですが なにかいい方法ないでしょうか?
979 :
774ワット発電中さん :2009/02/14(土) 00:43:52 ID:P4XhBf50
6X6マトリクス。 アセンブラキティはどうかな?
アセンブラキティというのは検索してもみつかりませんでしたが マトリクス入力ならいけそうですね。なるほどなあ。 関心しきりです。
アセンブラキティ=召還呪文
8x4マトリクスの方が素直かも。まぁどっちでもいいけど
純接点で同時押し無しなら分圧抵抗とA/Dって手もあるな。 何が良いかはケースバイケース。
>>978 64pinとか80pinのPICつかえばおk。
なやむ所ではないな。
いつも思うんだが、単にPICって書かれてもわからん 8bit〜32bit、6pin〜100pinとあるわけで
>>975 3年前にPIC入門して以来、ユーザー名は必ず1バイト文字にするようにしてたからすっかり忘れてた。
海外のソフトって対応してないのが多いよね。
テンプレに入れたほうが良いかも。
MSは開発力にものをいわせてどんどん各所の自由度を高めて行ってるから アプリがどんどん落伍していくな。日本語ユーザ名どころか空白入りパスでも 落伍アプリ多数だし。Program Files->Progra~1とか書き換えて誤魔化してる人、 まだ結構いるんじゃない? Program Files\Microsoft Hogehoge\Fuga Fugaとか見ると「ふぎゃー」と言いたくなる。 でもこればかりはMSの方に分がある話だしなぁ。
990 :
972 :2009/02/14(土) 12:29:48 ID:m/vtHyd2
自己解決しましたが折角なので解決方法を張っておきます。 コンピュータの管理者であるにもかかわらず、インストールまたは実行しようとしているプログラムから、管理者権限が必要というメッセージが表示されます。 インストールしようとしている場合、プログラムのインストール アイコンを右クリックし、[管理者として実行] をクリックします。 管理者のパスワードまたは確認を求められた場合は、パスワードを入力するか、確認情報を提供します。 プログラムがインストールされるが動作しない場合、プログラムのアイコンを右クリックし、[プロパティ] をクリックします。[互換性] タブをクリックし、[管理者としてこのプログラムを実行する] チェック ボックスをオンにして、プログラムの実行を試します。
VISTAかよ
992 :
774ワット発電中さん :2009/02/14(土) 16:56:29 ID:HnfecRFF
こんな奴がマイコンやってるなんて 世もま・・・末だな。
うちは Vista で平気だけどなあ
Windows7βだと
>>990 の方法が必要だった
と、将来の7ユーザーに向けて書いておくwww
>>993 えっこんなエラーも直ぐに解決できない奴がPICなど。
という意味でしょうか?
> ま・・・末だな。 これを書きたかっただけだと思う。
PICは暴走しないんだぞ。 ロジックの故障推測機能もあるし。 なぜがアセンブラじゃないとアクティベーとしないんだが。
ただいま新人教育中 思いもよらないところでつまずいてくれますな
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。