>>148 両方持ってるわけじゃないから、自信ないが。
PICkit2
× 新シリーズ非対応
○ ロジアナ機能あり
PICkit3
○ 新シリーズ対応
× ロジアナ機能なし
だったと思う。
>>148 プログラム機能ならpickit3が2の上位互換のはずだが、確か3には2のロジアナ機能がなかった気がする
153 :
774ワット発電中さん :2011/05/28(土) 21:33:51.09 ID:z1wX1bra
ロジアナ以外の機能でpickit2にあったのにpickit3で省かれて残念なとこってない?
今調べたら、秋月ではpickit2とpickit3って1000円違うだけだんだな。 マルツで見たときは糞高いような気がしたがこれなら買ってもいいかも。
PICKit人気だけど秋月のAKI−PICプログラマー は新シリーズに対応できないの? 秋月選ぶメリット何がある?
>>156 PICkitは基本オンボード書き込みだから、それ用の回路が組まれて無いと使えない。
秋月のは、基本ゼロプレ使ったライター方式だから、IC単体セットすれば書き込める。
ま、その違いで何が有利で何が不利なのかは各自の判断だなw
>>156 > 秋月選ぶメリット何がある?
なにもない。
ZIFソケットで書き込みがしたいなら、PICkitを買ってZIFソケットつきの
基板を一枚作ればいいだけ。
> PICKit人気だけど秋月のAKI−PICプログラマー は新シリーズに対応できないの?
現状、サポートして無いみたいね。
そして、今後サポートされる可能性は絶望的だと、俺は踏んでるけど。
サポートデバイス一覧があるんだから自分で確認してくれ。
http://akizukidenshi.com/catalog/g/gK-02018/
160 :
148 :2011/05/28(土) 23:45:48.80 ID:1105cciB
ロジックアナライザーは将来買う予定なので それまでオシロで代用することにします。 皆さん 色々教えてくれてありがとう。
新規ID作ってチュートリアルから始めたいんだが、これってどっかにフラグかなんか設定されてる? クライアントがインストール済みのマシンじゃ幾ら新規で始めてもダメなんだけど?
162 :
774ワット発電中さん :2011/05/28(土) 23:50:59.87 ID:Ve1FA5OZ
>>161 元ネタが何か知らないけど
レジストリーを解析して
一個一個それらしいのを消したらいけると思うよ。
バックアップ必須。
>>163 誤爆にも親切なおまいらありがとw やってみるww
>>159 使い方次第だぜ
数十台とか書き込むなら、基板完成前に先にマイコンにざくざく書けるし
EPROMライターとしてさらっと使うには、その場でデータ確認・書き換え
出来るから便利だよ
インターフェースもすごい親切でわかりやすいじゃん
>>165 ICSPとZIFソケット書き込みの優劣を議論するつもりは無い。
というか、本当にPICkit2と秋月ライターの両方を使った上で書いてるのか?
数十台への書き込みとかを実際にやると、書き込み速度の差がきっぱりと
現れるはずなんだが。
PICkit何台も買うわけにもいかんし、 複数台同時にテストとかしたいわけで AVRみたいにUSBライタって作れないのかな
>>167 PICkit2も3もICD2もcloneを作ってる人はネット上にいるみたい。
ICD3は知らない。あとはWriter509か。
>>168 秋月ライタ → Writer509 → PICkit2 と使ってきたけど、前者
ふたつはもう出番が無いな。俺にとっては。
IC単体で書き込むなんて使い方が無くなって来た俺にとっては、PICkitで基板の端子にぶっ刺して書き込む事数秒のがありがたい。
>>169 ごめん言葉が足りなかった
昔のリピート品とかROM焼きに使ってるよ
動いてるものは環境変えたくないっていうのもある
Ver3のままだし、40ピンのプレッシャーソケットは外しちゃったw
言うとおりこれから買うならPICKITだろうね
そのへんはホント使い方次第。 ちゃんと基板起こして箱に入れて使ってるのもあれば、ホットボンドで固定の表面実装で組み込んで使ってるのも居るだろうしなあ。
PICKIT2選ぶなら秋月のAKI−PIC2プログラマボードでも同じかな? 秋月のは書き込み条件によっては、書き込み直後に石が死ぬみたいな注意が有るけどPICKIT2でも同じ?
PICKIT2で石が死んだことはない ただ、基板設計をミスってPICKIT2のファームが何回か飛んだことはある だから手元には、ファーム書き込み時に買ったPICKIT2の赤と黒の二つある ICSPは手半田回路の時、書き込み回路配線が面倒 でも、デバックしながら1時間に何回も書き換える作業をするなら 回路配線した方が断然早い ICソケットからPICを抜き差しする行為が好きな人は結構いるが。。。 秋月旧ライターとPICKIT2の書き込み速度は10倍くらい違う もちろんPICKIT2が早い PIC抜き差しするなら、PICKIT2にZIFソケットつけて書き込むのが一番安心 PICKIT3をそろそろ買おうかと思っている 秋月ライターには昔世話になったが、今は使う事はない 純正の方が安いのに、今から秋月ライター買う理由がサッパリ分からない
18F26K22にPICKit2が対応しないと思って慌ててPICkit3を買ったらPICkit2 でも差分ファイルで対応してるんだよな。 今後出てくる品種はPICkit3の方が早いだろうし、PICkit2で対応しない 品種も出てくるだろうから、2つあっても損したとは思ってないけど。
俺はREAL ICEばっかり使ってるんだが、よくとまる とまったからUSBケーブル抜いたらPCごと落ちたりする 便利でいいんだけど、どっか設計ミスってるんじゃないかなあ
考えてみたら、PikKit買って、ゼロプレッシャーソケットと基板、少々の線材などを買うとすれば ソケットにしたければ、秋月の互換でもコスパは変わらないよね。
ICに直接書き込むなんて面倒な事するならそうだろうな。 漏れはもう基板に直接付けちゃうからそう言う使い方は面倒なんだ。
空のPICを基板に実装して半完成品を作って、 出荷前に書き込む、というスタイルをmicrochipは想定している
180 :
774ワット発電中さん :2011/05/29(日) 20:57:17.06 ID:KfOMjJ2F
個人的な遊びでもICSPのほうが楽だろ。 ソケットに挿したり抜いたりするメリットって何?
>>180 ICSPのピンが実装上邪魔になる場合ぐらいか・・・
遠方の相手のファームウェアアップデート。 昔のアーケードゲーム基板はロム交換をやったのだよ・・・
>>181 ヘッダ立てといたのに、部品と干渉してPICkit2させないとか
馬鹿馬鹿しいミスだけどたまにやるw
>>180 ひとつの基板上に少ピンPICがずらりと・・・とかだとZIFソケットで
あらかじめ書き込んどいて、あとから挿入とか。
>>182 今でもショボイメーカーのはROM交換するでしょ。
ゲーム業界ではスゴイ仕事なんでしょ、ROM交換というフィールドサービス。
ピン幅がDIPなんで、勝手に2mmにサイズ変換したケーブル作ってるわ。 つうか、基板のピンに直接PICkit刺すとかしないなぁ…
2で十分なんだけど赤い色がかっこいいから3が欲しい
通常の3倍
マイクロチップの中の人にガノタがいると見てる
近所の部品屋でPICKIT2に比べてKIT3の値段が3倍高いから困る
テストクリップを使えば基板にピンを立てなくてもいいな
191 :
774ワット発電中さん :2011/05/30(月) 12:10:02.36 ID:UYl4vX8C
ソケットの部品もったいないから、 書き込むときだけICSPのランドに差して固定できる金具ってないかな? 板金押さえると簡単に外れるようなもの。 なかったら発明したら売れるんじゃないの? .|| ←ワイヤー .|| ==| |== ←接点 __| |__ \ /← カギ状の板金 ________...... .....____________ | |↑ ランド ↓差し込む ~~~~~~~~ ~~~~~~~~~~~~ .|| .|| → | | ← 左右から押さえると外れる ________==| |.==___________ __|| ||__ ランドと密着 ~~~~~~\| |/~~~~~~~~~~ ↑固定される
>>191 ソケット????
ジャンパー線6本出しときゃいいだけだぞ? そいつにICクリップで繋げる。
だったらそのジャンパー線6本もったいないじゃん ランドだけでいいじゃん
>>191 もっとゆるくていいなら、あるな。会社に案内きてたから、企業レベルなものかもしれんが。
V字の弾力のある導線をランドに差し込めるような構造なの。
ただ、スルーホールじゃないと(てか、穴の中にも導通がないと)接触悪そうだが。
しかし…ジャンパ6本がもったいない状態ってどんなだ。
そういうピンを開発して 尚かつICクリップとジャンパーのコストより 下げろというのか。 オメーが作るなり どこかに依頼して ジャンパーより安くオクで売ったら買ってやるよ。 送料は無料で頼むね。 もったいないから。
ホシデンか何処かでスルホールに差し込み、中で広がるタイプのコネクタが有ったな
もっと簡単に、磁石で挟み込めばいいんじゃね? 基板にはソルダむき出しのテストポイントみたいな感じでバターン作るだけで、 ライター側に付けたスプリング付きのピンが、丁度合う感じでさ。 工場ならプレス機みたいなもんで押さえてしまうんだろうけどさ。
ちょっと特許取ってくるわ
>>199 ここのログを証拠にその特許申請の取り下げ申請するさw
>>196 別に量産する側の基板に実装するわけじゃないから
コストは比較的高くてもいいでしょ
テスターケーブルぐらいの値段で
インテルのCPUファン取付金具はネジると外れるから そういう機構でもいいんだよ 要するにランドと密着すればいい
で、これを普及応用していくと まずブレッドボードが不要だと気付く。 市場を潰していって、業界の常識を塗り替える。
ちょっと飛躍しすぎたか。 まあレゴみたいな感じ。
基板直づけの安いコネクターなんじゃね 航空電子なんかが作っているとおもう。 あるいは治具としてマック8にもあるかもしれん
まあそんなやつをもっとハッテンさせた感じ 写真見ての通り明らかに無駄な構造だから高い
tes
>>207 んならICクリップでいくね?
6ピン端子用に基板に作った部品位置に開いてる穴に引っ掛ければいいんじゃね?
間違ってマイコンのプログラム消しちゃったんですけど、復元する方法ってありますか?
書き直すしかない
212 :
774ワット発電中さん :2011/05/30(月) 21:48:38.22 ID:nrBVvH8L
そんなことより何のプログラムだったのかが興味があります。
きっとプレステのmod chipだ
>>191 スルーホール用のはあるぞ
スルーホールならピンヘッダ挿して斜めに荷重するだけでも書き込めるし
>>205 たしかにマック8にある。先週見てた。リードは自作になるけど、先端があるだけでも助かる。
PIC32で使える、フリーのμITRON系OSってありますか?
217 :
774ワット発電中さん :2011/05/31(火) 11:21:31.37 ID:CK0SmO41
MPLAB C30 コンパイラ(Ver.3.24)を使って PIC24H のプログラムをしているのですが、 例えばポートAのビット2をトグルしたいときに、 LATAbits.LATA2 ^= 1; と書くのですが、コンパイラの最適化を最大にしても、 btg LATA,#2 となるようなコードが出ず、12ステップくらいのコードが吐き出されてモヤモヤしてます。 LATAbits を使って、インラインアセンブラを使わずに btg を使ったコードを出す方法ってありますか? 別に速さにこだわっている訳ではないですが、何か気持ち悪くて・・・ LATAbits.LATA2 = !LATAbits.LATA2; とか LATAbits.LATA2 = 1 - LATAbits.LATA2; とか LATAbits.LATA2 = ~LATAbits.LATA2; でも、だめでした。
LATA ^=2; じゃだめなの? わざわざ最適化が掛かりにくいビットフィールド使うことないと思うけど
ビット命令があるPICって、少ないのかなぁ? それとも、知らないだけ?
220 :
774ワット発電中さん :2011/05/31(火) 17:48:59.18 ID:ipmCUkzS
>>217 C30の評価版は一部の最適化機能に制限があるという情報もあるけど、使ってるコンパイラは
製品版、それとも評価版?
C18だと普通にBTGになった気がする
222 :
217 :2011/05/31(火) 19:36:07.17 ID:CK0SmO41
>>218 確かにそうなのですが、後でソースを見返した時にわかりやすいものにしたいだけなので。
まあ、コメント書けば良いのですが。
>>220 製品版です
224 :
774ワット発電中さん :2011/06/01(水) 00:02:25.44 ID:yZaAM/MH
初歩的な質問で申し訳ないのですが・・・ PIC BASIC Pro で12F629用のプログラムの勉強中ですが 内蔵クロックの使い方が分かりません。例えば OSCCON =%01110100 main: HIGH GPIO.5 pause 500 LOW GPIO.5 PAUSE 300 GOTO main のようなプログラムでコンパイルすると Error[113]c:\pbp\pbppic14.lib 449:Symbol not previously defined(OSCCON) のようなエラーが続けていくつか出てしまいます。 OSCCON の使い方って、何か特殊なことがあるのですか?
>>217 そもそもコンピュータは定数ではなくレジスタを操作するものなので
数ステップのコードを吐き出すほうがコンパイラとしては本来のもの
ただマイコン系だと等価のコードに近いオプションをつけてほしいね
>>225 意味がわからん。
レジスタ操作命令BTGを吐き出すのが誤りなの?
別にPICだけの話をしたワケじゃないのでそんなの知りません C「言語」でBITっていう宣言があればまた違うだろ そういう屁理屈の話です 誤りとも言ってないし、食いつかないでください
>>224 なんで? エラーメッセージに書いてある通りなんじゃないの?
229 :
774ワット発電中さん :2011/06/01(水) 06:54:17.92 ID:yZaAM/MH
>228 OSCCONが前もって定義されてないって言われてるんですよね? 定義しろと言われても・・・
230 :
774ワット発電中さん :2011/06/01(水) 07:59:25.86 ID:CksDnlVr
>>224 12F629にはOSCCONっていうレジスタは無いのです。
「そんなシンボル見つからないっつーの」って言われてるでしょ。
OSCCALならあるよ。
もっと真面目にやってください。
231 :
774ワット発電中さん :2011/06/01(水) 21:30:47.87 ID:yZaAM/MH
>228 >230 そもそもOSCCONは無かったのですね、失礼しました。 PicBasic Pro Compilerの取説には内部クロックはOSCCONで設定と 書いてありましたが、データシートは見ていませんでした。 コンフィグレーションビットの設定で内部クロックを指定したら 確かにちゃんと動きました。 ありがとうございます。
232 :
774ワット発電中さん :2011/06/01(水) 22:25:52.32 ID:eTkaOhUB
コンスルーで検索。 おまいらが思いつくことはすべてマックエイトが考えている。
233 :
774ワット発電中さん :2011/06/01(水) 22:30:05.30 ID:CksDnlVr
頑張ってください。 応援しています。 違う話 8X8ドットマトリックスのT0M-1588BHは秋月でもう売ってないね。 また売るといいなぁ。
>>233 買おうと思ったら秋月のHPから消えてたね・・・・
たくさん買っておけばよかった
>>232 展示会の時、マックエイトのブースで詰め合わせをもらうんだが、時々、その中に混ざってるのな。
ほとんど机の中に死蔵なんだけど、じっくり見るとたまーに、おっ。ってのがある。
236 :
774ワット発電中さん :2011/06/01(水) 23:50:55.25 ID:yZaAM/MH
たびたびですみません。 ロータリーディップSWで指定した回数だけブザーを鳴らすプログラムなのですが どうもdip-swの読み込みができません。 (相変わらずPICBASIC Proと12F629です。) 10進ロータリーなので4ビット分、変数jikanを jikan.0 = TRISIO.0 jikan.1 = TRISIO.1 jikan.2 = TRISIO.2 jikan.3 = TRISIO.3 で読み取って、for nextで使おうかと思っています。 例えばスイッチが4なら、jikan=0100ですよね? これは、100回なってしまうのか、 それとも%0100と考えて4回なるの、どちらなんでしょう。 試してみたらSWを9にするとなりっぱなし、その他のところではすべて31回 とダメダメな結果。 テスターで電圧を測るとピンの電圧は0100になってるのでハードは大丈夫だと 思うのですが。
238 :
774ワット発電中さん :2011/06/02(木) 00:14:50.22 ID:KNz9uCC2
>>236 picbasic知らないけど、TRISIO.0-3 じゃなくてGPIO.0-3じゃない?
239 :
774ワット発電中さん :2011/06/02(木) 00:16:17.24 ID:qR2Nm9v1
>>230 の「もっと真面目にやってください。」でそんなに言わなくてもって思ったけど
やっぱり、もっと真面目にやれって感じだなあ。
TRISIOじゃなくてGPIOなんじゃないのかな。12F629のデータシートよく読もうよ。
初心者さんっぽいけど、自分で調べられることを調べないで質問してる感じがする。 もう調べ方(もしくは○○を見ろ!とか)を言うぐらいにしておいた方がいいんじゃないの?
>>236 この前の10進と2進がわからん人か?
コンピュータは十進なんてわからんのだから、
2進で100(百じゃなくて、イチゼロゼロ)回鳴るだけ。
つまり意図通り、10進に直すと4回。
243 :
774ワット発電中さん :2011/06/02(木) 01:14:06.80 ID:Qm4+HbrS
16Fと12Fを共用するために TRISIO EQU GPIO ってなっているんだろね。 で、です。 8ビットでひとくくりになってるはずなので jikan=00000100 と見てください。 これは4回って意味になるよ。 31回ならば jikan=00110001 だね。この並び方に見覚えある? 基本的な話だけどプルアップ抵抗って知ってる?
244 :
774ワット発電中さん :2011/06/02(木) 01:19:11.49 ID:ERTfVnTz
TRISIOの件、確かにGPIOでした。 初心者だからということを免罪符にするつもりはないのですが、 データシートのどこを見ればいいのかということもあやふやで 難儀していました。 PICそのものの中身と、周辺の回路と、ソフトと 考えることがいっぱいで、難しいなぁと思いますが、 動いたときはうれしいですね。 真面目にやっているつもりではあるのですが、まだ足りないようです。 >241 この前の人がどんな人か分からないのですが、 今回が初めての書き込みなので、違う人のはず。 でも、説明よく分かりました。確かにブザー4回鳴ってます。
245 :
774ワット発電中さん :2011/06/02(木) 01:20:48.32 ID:Qm4+HbrS
ごめん。 31は 00011111 ですね。
246 :
774ワット発電中さん :2011/06/02(木) 01:27:27.76 ID:Qm4+HbrS
そのソフトって12Fに対してTRISIOって書いてエラーにならないのですか?
>>244 >真面目にやっているつもりではあるのですが、まだ足りないようです。
まだとかっていうレベルじゃ無い、全然足りねぇ ゼロに等しい
データシートよく分からないから見ないで、
2chで聞いちゃオーなんて行動している時点で真面目じゃねぇ
データシート全部読め、何が具体的に書いてあるか分からないでも
とりあえず何処に何関連の事が書かれているかとか把握しろって
データシートにはこう書いてあるのですが、その設定をしても動きません
とかの質問しろ
技術関連で言い訳する人間ほど、見苦しいものは無い
248 :
774ワット発電中さん :2011/06/02(木) 02:15:21.74 ID:ERTfVnTz
>243 確かにGPIO.4はブザーを鳴らすタイミングのスイッチにつなげてあるので、 プルアップしてあります。 GPIO.0からGPIO.3はDIP-SWにつながっているのですが、正コードのものしか 手持ちがなかったので、ノイズは気にしないこととしてプルダウン抵抗に なってます。 >246 12F629を指定してるんですけど、何も言われませんでした・・・ >247 確かにそうですね、厳しい言葉をありがとう。
単に入門者だからこそ自分の間違いに気づかないだけだろう。 自分の思い込みを一旦捨てて一つ一つ確認していかないと間違いは自分では見つけられない。 その辺は誰もが通る道でもあるだろうし、 検証してみて絶対自分の間違いじゃないって確証が持てる段階で どういう検証してそう判断したのか簡潔に示して 人に訊いたり、にちゃんで訊くと単純に正解だけではなくて今後に有用なアドバイスが得られると思うよ。 バグなんだけど仕様とされて回避策が示されてる場合も多いけどね。 本当にプルアップ、プルダウンに成ってるのか実際の電圧を示したり、 pic側の読み値を示したりしたら、ディップスイッチに関係なく0000で全く見当違いに読んでるとかじゃないの?
切り分け能力のことも加工としてたけどもう面倒だから省略w
>>224 データシート見比べ・・・(コンフィグ 変数宣言は省く)以下アセンブラ見本
BSF STATUS,RP0 CALL 3FFh MOVWF OSCCAL
MOVLW 0b00001111 MOVWF TRISIO
BCF STATUS,RP0
MOVLW 0x07 MOVWF CMCON
START
MOVF GPIO,W
MOVWF TEMP
MAIN
MOVF GPIO,W
SUBWF TEMP,W
BTFSC STATUS,Z
GOTO MAIN
MOVF GPIO,W
BTFSC STATUS,Z
GOTO START
ANDLW 0xOf
MOVWF COUNT
BEEP_LOOP
DECFSZ COUNT,F
GOTO START
CALL BEEP
GOTO BEEP_LOOP
BEEP
BSF GPIO,4 CALL DELAY
BCF GPIO,4 RETURN
DELAY
遅延 RETURN
END
厳しいねえ。 TRISIOとGPIOの区別も付かないLEDチカチカ初心者なら、真面目にやっても こんなもんだと思うけどね。 ホビーでやってる人間に技術屋の論理押し付けてもしゃあないって。
真面目というか姿勢の問題じゃないかな。 安易に聞くよりまずは調べつくしたほうが後々自分の役に立つし。 まあ俺もホビーユーザでアセンブラ初心者です。 オブジェクト指向に慣れてるとなんか新鮮に感じる
PICどころかマイコン初心者なら親切な本を一冊買ったほうがいい気がする マイコンがこういうものだってわかれば他のマイコン始めるときは自力の情報収集でできるようになるさ
255 :
774ワット発電中さん :2011/06/02(木) 08:45:44.20 ID:Qm4+HbrS
検索指導 @ MOVLW 0b00001111 MOVWF GPIO A DECFSZ COUNT,F GOTO _AAA_ GOTO START _AAA_ CALL BEEP GOTO BEEP_LOOP 重箱の住みでごめんね。 でも作っちゃう人がいるかも知れないからね。 スイッチはVCCへ接続でプルダウン抵抗だね。
256 :
774ワット発電中さん :2011/06/02(木) 08:53:58.10 ID:Qm4+HbrS
あと MOVLW B'00001111' じゃないとMPLAB-IDEは読まないかもです。
>>255 添削さんくす
1.
GPIOの入出力設定はTRISIOでいいはず
アドレス05hと85hだからどっちでも動くと思うが
2.
そのとおりです
あと訂正
BTFSC STATUS,Z GOTO MAINを
GOTO STARTにしないと
SWをAから0にもどしてまたAにするとならない
またSW変化後何秒後に判定というdelayを入れた方がいいかな
>>257 自己レス
訂正は必要なし
なお
〜〜
BTFSC STATUS,Z
GOTO MAIN
(ここにCALL DELAYをいれるとSW変化何秒後判定になる)
MOVF GPIO,W
〜〜
失礼しました
259 :
774ワット発電中さん :2011/06/02(木) 12:28:07.31 ID:Qm4+HbrS
>>257 ごめんなさい。間違えました。
@はそのままでOKです。GPIOでは駄目です。
delayはあって良いかもです。
GOTO MAINでよいと思います。
変更前と変更後の変化を見ているわけですよね。
パカパカやってる間の変更値は無視されるって仕様でOKだと思いますよ。
よく出来たプログラムだと思います。
スキップ命令は読みづらいからMPASMで用意されてるBZ、BNZ、BC、BNCを使 った方が良くないか? BTFSC STATUS,Z GOTO START ↓ BZ START
261 :
774ワット発電中さん :2011/06/02(木) 14:36:45.96 ID:qR2Nm9v1
プルアップ、プルダウンって話がでてたので気になったことがある。ディップスイッチは ショートとオープンを切り替えるタイプだと思うのでGP0からGP2までは12F629 内蔵のプルアップ機能を使うことでPICの入力とグランドの間にスイッチを接続するだけで いいと思うけど、GP3だけは入力専用端子でかつプルアップ機能はなかったんじゃないかなあ。 GP3だけは入力と電源(+)の間に外付けのプルアップ抵抗が必要だと思う。
>>261 スイッチは電源につないでるからIOはプルダウンしてるって本人が書いてるのに
今更になって書かなくてもw
263 :
774ワット発電中さん :2011/06/02(木) 15:14:18.96 ID:9A+yC1ps
真面目にやれっつう割りには、回答者もこんなもんよ。 「アセンブラのアの字もわからない超初心者から」って看板に書いてあるんだから 質問する側もそこまで気にせんでいい。
ハードの問題だと、エスパーでもない限り、コードだけじゃ解決不能だけどな。
265 :
774ワット発電中さん :2011/06/02(木) 16:05:15.45 ID:qR2Nm9v1
つまらんコメするくらいなら
>>217 あたりの疑問にレスしてやれよ。
>>236 のコードは見ただけで「あれっ」と思うけど
>>217 のは未解決のままだろ。
興味深くみてたんだけどだれか思い当たるところないのかな。
>>265 それ何か問題あるのか? コンパイルされたコードが効率悪いだけでちゃんと動くんだろ?
最適化きっちりやって欲しければ有料版のコンパイラ使えばいいじゃんって話だから相手にしてなかったのにw
268 :
774ワット発電中さん :2011/06/02(木) 16:22:58.37 ID:qR2Nm9v1
製品版だから最適化に制限なさそうだってことだったけど。
269 :
774ワット発電中さん :2011/06/02(木) 16:24:08.85 ID:Qm4+HbrS
>>260 BTFSC STATUS,Z
GOTO START
BTFSC PORTB,0
GOTO MAIN2
GOTO MAIN3
MANI2 ;
個人的にはこんな感じで韻を踏ませるプログラムに美しさを感じるのですよ。
それにステップ時間も見てわかるしね。
文字を多く打つことに抵抗はなくステップの多さに達成感を感じます。
これだからアセンブラ使いは・・・ って言われそうだね。
MAIN3 ;反省文
今後、初心者のみなさんに親切にします。
>>268 MPLABのコンパイラじゃ最適化は期待できない。
最適化するならHi-Tech Cのじゃないと。
ちゃんとMicrochipのサイトにも載ってる。
>>263 なんなんだお前はw
製品版のC30買うような素人離れした奴がおかしいっつうアセンブラリストもコンパイラオプションも
出さないんだから、それこそ真面目にやれって言ってやってくれよw
272 :
774ワット発電中さん :2011/06/02(木) 16:37:11.13 ID:qR2Nm9v1
>>270 純正コンパイラがそんなにダメとは思わなかった。
わかってるなら回りくどく書かずにレスしてやればいいのに。
あっけなく解決だな。
>>269 好き好きだから自分のスタイルで良いと思うけどね。
俺の場合はアセンブラでも楽にやりたいから、いろいろマクロ化してて、
ソースを見ただけではPICのアセンブラとは分からないような状態。
>>217 > LATAbits を使って、インラインアセンブラを使わずに btg を使ったコードを出す方法ってありますか?
__builtin_btg (&LATA, LATAbits.LATA2);
LATA ^= (1 << 2); へー、これだとbtg使うっぽい。
ワンコインマイコンになんでそんな怒ってんの?
そういう年頃
カルシウムが足りてないんじゃないか? 小女子でも喰え
奥さんに相手にしてもらえないから
281 :
217 :2011/06/02(木) 22:33:46.64 ID:Zu1p01zB
ご回答ありがとうございます。 とりあえず、たくさんトグルするコードを書くという訳ではないので、 おぼえていたら、独自のマクロか __builtin_btg で対応しようと思います。 LATA2 のように名前とビット順と名前が一致していればいいのですが、 そうではないメンバをトグルするときは分かりにくくなってしまうのが残念です・・・。 そういうシチュエーションがあるかどうかわかりませんが。 それからコンパイラで出たアセンブラリストを貼っておきます。 最適化オプションは、順に、「なし」、-O1、-O2、-Os、-O3 とあって、 そのうちの -O2、-Os、-O3 で出たコードです。 「なし」と -O1 の場合は、もう数行多いコードで出ます。 316: __builtin_btg(&LATA, 2); 0818 AA42C4 btg.b 0x02c4,#2 317: LATAbits.LATA2 ^= 1; 081A BFC2C4 mov.b 0x02c4,w0 081C DE0042 lsr w0,#2,w0 081E 600061 and.w w0,#1,w0 0820 A20400 btg w0,#0 0822 DD0042 sl w0,#2,w0 0824 202C41 mov.w #0x2c4,w1 0826 784091 mov.b [w1],w1 0828 A12401 bclr w1,#2 082A 70C080 ior.b w1,w0,w1 082C 780001 mov.w w1,w0 082E B7E2C4 mov.b w0,0x02c4
282 :
217 :2011/06/02(木) 22:35:58.50 ID:Zu1p01zB
318: LATAbits.LATA2 = !LATAbits.LATA2; 0830 BFC2C4 mov.b 0x02c4,w0 0832 FB8000 ze w0,w0 0834 DE0042 lsr w0,#2,w0 0836 A20400 btg w0,#0 0838 604061 and.b w0,#1,w0 083A DD0042 sl w0,#2,w0 083C 202C41 mov.w #0x2c4,w1 083E 784091 mov.b [w1],w1 0840 A12401 bclr w1,#2 0842 70C080 ior.b w1,w0,w1 0844 780001 mov.w w1,w0 0846 B7E2C4 mov.b w0,0x02c4 マイクロチップのサイトの HI-TECH C 購入ページに MPLAB Cコンパイラを強く勧めると書いてあったので、 バージョンアップで良くなってくれれば良いですね。
283 :
774ワット発電中さん :2011/06/02(木) 22:54:33.50 ID:Qm4+HbrS
申し訳ない。 オレがいつも書いているアセンブラと違うので読めません。
乗算なんかも__builtin_mul*を適宜使うと効率のいいアセンブラ吐くよ。
286 :
774ワット発電中さん :2011/06/03(金) 04:25:16.64 ID:b0h8jkZk
秋月のPICプログラマで16F627Aのコードプロテクト解除できないのかいな。 チップイレースしてもうまくいかない
PIC32の無償ライブラリってどうですか? USBやTCP/IPスタックとか、購入するとそれぞれ100万位するのが無料、、 これが決め手で、ARMよりPIC32選ぶ零細企業は多い気がするのですが、、
キャッシュの都合で、ワークスペースのほうをセーブしてない状態だと、コンフィグ変更をビルドに反映しない例があった模様
289 :
774ワット発電中さん :2011/06/03(金) 07:39:45.35 ID:5gqUOjka
>>286 そんなライターでもプロテクトは解除できないよ。
できたらマイクロチップ社の信用が失墜しちゃうね。
もし解除方法がわかったら大儲けできるので頑張ってみてもいいですね。
>チップイレースしてもうまくいかない
イレース=消去
290 :
774ワット発電中さん :2011/06/03(金) 07:41:44.27 ID:5gqUOjka
>>289 自己レス訂正
Xそんなライター
◎どんなライター
291 :
774ワット発電中さん :2011/06/03(金) 08:26:14.71 ID:jOc4eSOJ
>>286 チップイレースというのはプログラム・コードとコンフィギュレーション・コード
全てを一度消去して、新しくプログラム・コードを書き込もうとしてもできないという意味かな?
コード・プロテクトしてるわけだからコンフィギュレーション・コードだけ書き直そうとしても
できないと思うけど、全て書き込みなおすならできると思うんだけど。
>>287 ARMでも無償で使えるライブラリはあるのでは?
LinuxだったりTOPPERSだったり。
むしろARMの方がライブラリ豊富だろw ただし、英語圏のみだけどな。
294 :
774ワット発電中さん :2011/06/03(金) 15:39:06.33 ID:b0h8jkZk
>>291 >>286 ライタのボタンには「チップイレース(CP解除)」、
ヘルプには「"コードプロテクト解除とフラッシュメモリ消去"」
ってあるから多分全部消してくれると思ってるけど実際の動作は何してるか分かりません。
データシートにも14.9"Bulk Erase 命令だけがCPバーとCPDバーをセットできる」ってあるから
コードプロテクトの解除自体はする方法あるんですよね?
単純に上書きできればそれでいいのだけれども、エラーになります
プロテクト解除してHEX吸い出してくれるDOS用のソフトのことを書いてるサイトがあったんだけど もう一度みようと思って何とか検索したらインフォシークのサイトですでに消えてた・・・・
296 :
774ワット発電中さん :2011/06/03(金) 18:08:19.48 ID:5gqUOjka
>>295 そのサイトはプロテクト解除が成功したって書いてあったのかな?
只今奮闘中 程度の内容ではなかったかな?
見出しだけ大袈裟で企画倒れなサイトって結構多いんだよねえ。
297 :
774ワット発電中さん :2011/06/03(金) 18:22:25.46 ID:jOc4eSOJ
プロテクトだけ解除できたんじゃマイクロチップダメじゃんってことにならないのか?
298 :
774ワット発電中さん :2011/06/03(金) 19:59:46.89 ID:5gqUOjka
時間の概念がない痴識人には理解できない数値だろうなw
>>298 PICのプログラムがワカランが
ふつー、マトリクスLEDは走査で点灯するもんだろう?
PWM制御と同じじゃね?
>>298 LEDに過電流が流れることよりもPICの出力では足りない。1kΩでも大差ないと思う。
>>298 AN557 Four Channel Digital Voltmeter with Display and Keyboard だと
各セグメントに220Ωで14mA程度流れて、
コモンには、それ掛ける8で112mA流れるからトランジスタ駆動している。
メーカーでは、ちゃんと計算している。
秋月のキットは、「電源12V100mA」となっているのは本当なの?
305 :
774ワット発電中さん :2011/06/04(土) 00:45:41.23 ID:SKqhG35Q
赤LEDを定格2V、20mAとすると
(5V−2V)÷0.02=150Ω
これならLED的にもPICのピン的にもギリOK。
PICの引き込み側なら25mAまでOK。
27Ωで計算すると
(5V−2V)÷27=0.11mA
PICの許容の約5倍(引き込みで約4倍)
1つのポートグループでの総出力許容電流は100mAなので
点灯数が5個以上の場合は負担はなくなる。
しかし引き込み側では解消していない。
ダイナミック点灯として1列分の点灯時間はチラツキを考えると1m秒〜3m秒。
16列あるので比として1/16。
PWM的に考えると0.11÷16=約7mA(0.0068A)
しかしこの場合PWMとして考えてよいのかどうかという問題。
PIC内の出力素子には1m秒と短時間としても過電流が襲っている。
論より証拠、このキットを使っている人に動作年数を聞けばそれが結論になるかも。
>>304 キットにはACアダプタは付属されていない模様。
回路は12Vではなく5Vで動いている。
7805で減圧した場合に100mAがそれ以上に増加するのかは不明。
たぶんしない。
>>305 抵抗は電流制限用なので、それにつながった16列を一度に点灯しないと変です。
1列単位で点灯するなら各行に抵抗を入れるべきです。
そうでないと、各LEDの明るさが点灯数で変化してしまうでしょう。
どちらにしろ、ポートの限界を超えてしまっているので、
マイコンに対する負担以外は、違いはあまりないのかもしれません。
電源が12Vなのは、バックアップの9V電池のためですが、100mAはきつそうです。
ティピカル値でLED 1個点灯のとき、どのくらい電流が流れてるのか試算し てみたけど PIC16F877AのVOL特性はほとんど直線で25mA時0.53Vだから21.2Ω相当。 LEDの順電圧を2.1V(@20mA)としてPIC16F877AのVOH特性の図に V=2.1-(27+21.2)*Iの負荷線を引いてTyp(25゚C)と交わる点の電流を 読み取ると20.5mA。 意外と流れていないようだね。複数同時に点灯してもVOHがどんどん下がる から電流はそれほど増えないかも。 あくまでティピカル値での試算だけど。
>>292 ARMのチップメーカーでLinuxやToppersポーティング済みとかありましたっけ?
結構手間かなと思うんで、、
>>293 そうかもしれません。ただ、探し回るのが面倒で。
Microchipなら、無償ライブラリがメーカーのサイトに一通り揃ってるので。
ARMだと、STとTIはそういう感じであったんですけど、、
待機電流1uA以下の省電力PICってありますか?
310 :
774ワット発電中さん :2011/06/04(土) 07:18:22.46 ID:SKqhG35Q
>>307 PIC側での電流制限を当てにしていいのか
ハードで定格電流値(20mA)以内に収めるべきなのかという問題。
で、どう思う?
>>309 >>110 のレスでスリープ時に0.04μAという測定結果が出ている。(PIC16F886)
>>310 PICの電流制限当てにしてるよいうよりもむしろ何とかPICの能力を引き出してる、っていう感じじゃないの?
312 :
774ワット発電中さん :2011/06/04(土) 09:52:18.13 ID:P99wNaOs
製品としは、無駄なトラブルは避けたいというのが優先だと思うけど、
>>307 、
>>311 のようによく考えられた設計だといえるのか?
それともやっぱり設計まずいんじゃないのってことになるのか?
>>312 絶対最大定格を越えてしまっているので、設計がまずいですよ。
>>310 自分で製品に使うならこういう設計はしないけど、バッファ入れると部品
点数が格段に多くなるし、抵抗を大きくすると暗くなるということで秋月
のキット的な妥協なんじゃないかな。
ネットを探してTOM-1588BHの互換品と言われているC-4880Hのデータシート
を見てみたけど、絶対最大定格も書いてないし、ダイナミック駆動前提の
部品と思われるのにダイナミック駆動時のデータもないのでLEDに関しては
なんとも言えないけどたぶん大丈夫。
PICの方は複数のドットが同時点灯したとき、ソース側が25mAを超える可能
性は高い。
>>307 の訂正
V=2.1-(27+21.2)*I → V=2.1+(27+21.2)*I
>>312 > 製品としは、無駄なトラブルは避けたいというのが優先
そもそも秋月キットって、そういうのじゃないと思うんだけど・・・
uClinuxは1MBじゃ走らないよw
320 :
774ワット発電中さん :2011/06/04(土) 13:57:55.60 ID:SKqhG35Q
>>314 同意。
自分自身も設計するならばこのような回路設計はせず
コモン側はトランジスタで100mA程度が楽に流れる設計をするはず。
最後に、参考までに質問。深く考えなくても結構です。
各LED(8個)には(5V−2V)÷0.02A=150Ω程度の抵抗が必要となると思うけれど、
PIC側の電流制限を期待すれば抵抗値は100Ωでも30ΩでもOKと言えてしまいそう。
しかし実際このような低い抵抗値の回路図をみたことは自分はこの秋月キット以外にない。
この機能は「保険」程度と考えて万が一のときにPICやLEDを助けてくれる物
と思ったほうが良いだろうか?
主観で良いのでお聞きしたいです。
そんな「機能」は入ってない。 あくまでも素子の「特性」。
>>320 「電流制限機能」と考えているその発想には、同意できないな。
ポートの電流特性グラフって、定格外まで線引っ張ってあったよな。大昔のデータシートだと。 きれいな線じゃなくて、いかにも「実測の一例です」みたいな。
一瞬だけなら最大定格超えてもいいんだよ一瞬だけなら
そう思ってたら 毎時4シーベルトになった福島第一。
そして回路損傷、メルトダウン。
/| |/__ ヽ| l l│<ぽーん ┷┷┷
総理大臣がペテン師な国だもの今更。 ホントミンスに投票した馬鹿には謝罪と補償を要求する。
じゃ自民党なら何とかなったのか?
>>325-327 そういやあれも一瞬、想定を超えただけだったな。
結果は凄い事になった。
最高に政治に興味ある奴でも、民主を批判するのが関の山
世の中が震災復興一色で、節電だ、節約だって言ってるときに、 足の引っ張り合いや悪口ばっかり言ってるひとたち、それが政治家。 たまたま管さんがやってる時に地震が起きて、復興しようとしているのに、 別の人が首相になったら、良くなるのか? 谷垣さんが首相やったところで、 ボコボコに言われるだけで、復興についてはそうそう進捗があるわけではないでしょう。 だったら、やりたいと言ってる管ちゃんにやってもらえばいいじゃん。 みんなでバックアップしてあげればいいんだから。 そんな中、自党の党員なのに、奥に隠れて出てこないO氏が、もっともズルイと思う。
>>324 絶対最大定格は、一瞬でも越えてはダメ、
この値は仕様通りの動作を保証するものではなく、
ギリギリでも長期間であれば、デバイスの信頼性に影響する。
電流で制限されているものは、
ギリギリでも局所的発熱で劣化していくと考えればわかりやすいだろ。
>>323 今のデータシートにも、クロック4000MHzまでの消費電流載ってるぜよ
PICで自作パソコンの時代到来!するといいな
335 :
774ワット発電中さん :2011/06/05(日) 06:41:47.25 ID:F2ILtywl
PICの表面の文字がいつも消えてしまって 文字の溝だけになってしまうま。
うちもです
おまいら油っぽ過ぎだろw
お風呂でPIC見つけたラッキーと思ったらゲジゲジだった。
339 :
774ワット発電中さん :2011/06/05(日) 10:16:06.31 ID:F2ILtywl
あーやって型式を見えにくくしているのは ある意味プロテクト機能なんだろうか?
溝になったなら、白系の色鉛筆でこすれば復活するんでね? 素人意見だが
レーザーマーキングって元から溝だけのよーな。 アルコールとかで拭けば見えるようになるんじゃね?
虫眼鏡で見るとちゃんと見える
3次元バーコード加工しといて携帯で読める様にしとけばいいのにね。
344 :
774ワット発電中さん :2011/06/05(日) 19:10:12.43 ID:F2ILtywl
結果報告 色エンピツはアウト。 PICの表面はサンドペーパー状になっている為 表面すべてに綺麗に色が塗れてしまって溝の色だけ残すのも無理。 色分けで覚えておくか・・・。 また、シャーペンで「88」だの「648A」だの書いて充分読めるし消えない という結果が出た。 裏側ならば指が触れないのでまず消えない。 しかし、見た目は非常にクサイ。
dsPIC30F2012ってやつ使ってます。 トラ技についてきたマイコンボードです。 いま、信号をキャプチャしていて間に合わないので高速化したいんですけど if(PORTFbits.RF4 == 1)みたいな記述が次のようにアセンブルされてます。 mov.b _PORTFbits,WREG and.b w0,#16,w0 cp0.b w0 .set ___BP___,0 bra z,.L46 これを btstってヤツで書けば次の様に早くなるのかな?って期待してます。 btst _PORTFbits, #4 bra z, .L46 これだと2クロック?(インストラクション表には”1(2or3)”クロックって言う意味のわからない記述だったけど) かな?って。 こういう風にコンパイルしてくれないのはなぜでしょうか? 私の考えが間違っていてコンパイラが正しい?(まあ多分そうだと思うけど、どういう理由でダメなんだろう?) よろしくお願いします。
やってみればいいんじゃない?
347 :
774ワット発電中さん :2011/06/05(日) 19:58:09.81 ID:m4TX2Fz5
>>345 コンパイラの名前と製品版、無償版かなどの情報が必要なんじゃないか?
>345 どんなコンパイラでもifの条件節は妙にタコなコードを出すことがあるから > 私の考えが間違っていてコンパイラが正しい?(まあ多分そうだと思うけど、どういう理由でダメなんだろう?) ここまで卑下しなくてもいい。やってみるがよろし。 まあコンパイラがbtstしていい範囲かどうか判断つかなかったとかじゃね。
ありがとうございます。 はい、やって見ます。 インラインアセンブラだと処理フローを変えることはさせてくれないみたいなので 処理を全部アセンブラで書いてみることにします。 ありがとうございました。
>>347 済みません
Microchip社製 MPLAB 8.60.00.00です。
無償版です。
>>317 あるんですね、、
PIC32の無償ライブラリにはリアルタイムOSないですよね。
よく使われてるのは、FreeRTOSなんでしょうか?
352 :
774ワット発電中さん :2011/06/05(日) 22:16:26.94 ID:W9HeiidF
>340 俺は修正液でやってる。 塗って乾いたらアルコールで拭くと溝の中だけうまいこと残る。
>>345 「無償版は最適化がかからない」ということを踏まえた上で例えばそのif文を
if(PORTF & 0x08)
ヘッダファイル見て書いてないから合ってるかどうか知らないけど
こんな風に変えてみて。
つうかそもそも信号キャプチャが速度部速で間に合わないのは本当なの?
で、そこでクロック稼いだら信号キャプチャできるの?
dsPICなら相当にポテンシャルあるはずだけど。
レーザーマーキングが読みにくいなら、修正液塗って、乾いてからカッターで削ると見やすくなる 文字以外の部分にも若干残るからちょっと汚いけど、それでも見やすい
修正液って何?
>356 いや、一般事務用の。ボールペン消す奴。
>>357 あー、あれね。刷毛で塗る白い液ね。
あれって、ボールペンの文字を消すんじゃなくて、
上から白いマスクをかけるイメージじゃない?
>>353 ありがとうございます。
試してみたいと思います。
信号キャプチャが速度で間に合っていないと考えております。
ホスト側がクロック信号をLOW、HIGHしていて、これにあわせて立ち上がりにキャプチャしています。
このクロックが周期2μs程度です。
dsPICは30MHzで動作しているので、1周期60クロックくらい猶予があると考えていますが
時々ビットズレを起こします。(こちらがキャプチャしようとしたとき既に立ち上がっちゃってる)
ただ昨日別の方法で1クロック短縮させたらそれだけで解消したので、基本的には解決したんですが
また処理を追加したりするかもしれないし、向学のために試してみます。
ちなみにシリアル同期通信という機能はよく知らないのと、RS232のために使っちゃってるので試しておりません。
360 :
774ワット発電中さん :2011/06/06(月) 09:44:45.02 ID:nBP0Udlb
500Kbpsの高速シリアル通信か。 クロックの立ち上がりのたびに割り込み処理してるのか、それともメインループの中だけで 処理してるのだろうか。 そのような目的の場合、インラインアセンブラが必須ですね。 最初の機能割り当ての時点で低速なRS232Cをソフトウェアで、高速シリアル通信を 内蔵ハードウェアで処理させるようにデザインすればよかったね。 ソフトウェアで通信処理するのは低速な場合のみというのが基本だからな。
c30の質問 PORTB等のSFRは PORTB = 0xffff; PORTBbits.RB0 = 1;など ビット単位とバイト単位両方で操作出来ます たとえばTEMPという変数を TEMP = 0xf0f0; TEMPbits.TEMP0 = 1; ビット バイト両単位で操作する宣言方法ってどうすればいいのでしょうか ヘッダ参考しましたが行き詰まっています
PICを始めようと思って、一通り器材は購入したのですが、 一から勉強するにはC言語とアセンブラとどちらが良いでしょうか? 一般的には皆さんCで書いてるのでしょうか?
>>362 いちから、ってのは、言語もいちから?
もしそうなら、両方やっといて損はない。
他のCPUでアセンブラさわっていて、かつ、カツカツのソフト作る気がないなら、PICアセンブラは触りだけでいい。
と、俺は思う。
最低限、PICのデータシートが読めるぐらいの知識はあったほうがいいと思う。
できるだけ手っ取り早く使いたいなら圧倒的にC。 ただしその場合もいいテキストやサイトの丸写しから始めないと、 つまづいた時が大変。 やる気と余裕が有るならアセンブラから入った方が後々役に立つ。 それからCに移行する方がCのありがたみも分かる。 でも、一般にどっち使ってるかという質問ならCがずっと多いと思う。
> できるだけ手っ取り早く使いたいなら圧倒的にC。 ミドルレンジ以下を使うかもしれないのに、なんてことを言うやつだ、お前は。
ミドルレンジ以下なんか使うな。
>>361 C18だけど、GenericTypeDefs.hをインクルードして
WORD_VAL型の変数を定義すればおk
microchipのライブラリでも使われてるからC30でも使えるはず。
WORD_VAL TEMPbits;
#define TEMP TEMPbits.Val // wordアクセス
#define TEMP0 b0 // <-ビット番号
TEMP=0xf0f0;
TEMPbits.TEMP0=1;
ポートと全く同様に扱いたければ#defineで定義。
そのままWORD_VALに合わせて書いてもいいけど。
とっても初心者な質問でごめんなさい。 PORTBからHiを出力してLEDを光らせるだけのプログラム。 LIST P=16F877 INCLUDE P16F877.INC __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC ; __IDLOCS H'FFFF' ORG 0x0000; GOTO START; ORG 0x0004; RETFIE; START BCF STATUS,RP1; BSF STATUS,RP0; CLRF TRISB; BCF STATUS, RP1; BCF STATUS, RP0; CLRF PORTB; DECF PORTB, F; LOOP ; スキップ GOTO LOOP; END うまく光りません。別のサンプルプログラムは動くので回路には問題ないようです。 このプログラムで何か問題あります?これが動かないなんて泣けてきます
372 :
774ワット発電中さん :2011/06/06(月) 20:15:15.44 ID:phOl8nw/
オレは今でもアセンブラだよ あのブレークアウトゲームやテトリスに感動したからね いつかはあーゆーの作りたいからさ
>>371 PORTBにもADコンバータ用の設定てあります?
374 :
774ワット発電中さん :2011/06/06(月) 20:30:33.92 ID:phOl8nw/
CLRF PORTB; DECF PORTB, F; LOOP ; スキップ GOTO LOOP; END を MOVLW B'11111111';ここをいろいろ変えてみてね MOVWF PORTB; LOOP ; スキップ GOTO LOOP; END これでRB0〜7が点灯するかも知れない すぐ答えを教えるなと言われるかも知れないが オレは希少なアセンブラ使いの卵をひいきする
>>374 ありがとうございます。試してみたけどやはり光りませんでした。
LIST P=16F877
INCLUDE P16F877.INC
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC ;
__IDLOCS H'FFFF'
ORG 0x0000;
GOTO START;
ORG 0x0004;
RETFIE;
START
BCF STATUS,RP1;
BSF STATUS,RP0;
CLRF TRISB;
BCF STATUS, RP1;
BCF STATUS, RP0;
MOVLW B'11111111';
MOVWF PORTB;
;CLRF PORTB;
;DECF PORTB, F;
LOOP ; スキップ
GOTO LOOP;
END
またデバッガを用いてPORTBのwatchを見てみたところ、どちらのブログラムもPORTBには0xFFが格納されているようです。
>>371 >>374 ありがとうございます。
おかげさまで動きました。
プログラム自体には問題なさそう、ということなので、
サンプルプログラムとconfigを確認しました。
BODEN=Enable → BODEN=Disable にしたら動きました。
回路の構成は電源3.3V, クロック10MHz(HS,セラロック)でした。
ブレッドボードで回路を組んでいたのですが、 電源を投入してからLEDが光るまで.5秒から1秒くらいかかり、 PICのスタート時点で電源の供給が間に合わずにブラウンアウトがかかっていたようです。
>>377 それはエスパーにしか分からないわな。
ポートに対してDECFとかはやめた方が安全だぞ。直接LEDなどの重い負荷を
つないでるならなおさら。
>>378 確かにエスパーにしか分からんですわな^^;
私もエスパーではなかったのでどこが問題か分からずに質問してしまったようです。
4日ぐらい悩んでいて、「なんでこんなことでーー」と気が狂いそうになってるときに
人に相談すると冷静になってすんなり自分で解決できちゃうの良くあるんですよね。
どうかかんべんしてくださいませ、だんな。
DECFは、可読性だけの問題かと。RISCならレジスタに値を入れる回路は演算によらず同じ回路を使うはず。
演算結果が同じなら命令に拠らず動作は同じかと。
>>379 リードモディファイライトはレジスタでなくPINの値を読むから誤動作
する可能性がある。
それは他の命令でも同じでしょ? 要はどの命令使っても動作は同じ、ということ
>>351 32bitでもPICを使う理由は、あんまりない気がする。
基板の片隅で、ちょっとしたシーケンスを安価に実行出来るのがPICの良いところなんだから。
>>351 =
>>287 >>351 「使い勝手の良い無償ライブラリが提供されている32bitマイコン」
を探しているようだから、
>>382 のコメントは的外れのような気が・・・
それともPIC32の無償ライブラリは期待するような物じゃない?
>>383 >>384 あ、そうです。
USBやTCP/IPスタックなんて、作ってられないし、買うと1つ100万単位、、
そうすると、FTDIのチップとかXPort使うか、無償ライブラリあるやつに、、という流れです。
使い勝手は、Starter Kit注文したので、実際に確かめます。
実のところ、どっちもゼロからスタートしても、一ヶ月も缶詰になれば 十分作れる程度のシロモノだけどね。 無償ライブラリは基本無保証だから、遊びで動かしてみるという程度なら いいけど、何かおきたときのために、自分で全部把握しきれるくらいの 実力が必要よ。
387 :
774ワット発電中さん :2011/06/07(火) 11:00:30.74 ID:PADB7Lw7
家の家電品の電源を外出先からオン・オフさせようとウェブサーバー作ったことあるけど 動作確認しただけで運用まではいかなかったな。もし通信トラブルで制御不能になったとき が怖かったし。それとIPアドレスが固定じゃなくてある期間(数日とか数週間とか?) でかわってしまうところも自分にとっては運用を難しくしてたかな。 自分で書いたマイコンコードとしてはそのときが一番規模が大きかった。
超初心者質問ですみません。 フォートラン、コボル、N88ベーシックしか出来ないのですが、 開発言語は何から始めると良いでしょうか? 出来ればフリーのコンパイラがあるもので、お勧めをお願いします。
PICはフリー版があります
>>388 C言語
MPLABにフリー版がついている
mikroC もいちおフリーで使えるな ベーシックができるなら、C言語が一番楽だろうねえ…クセに慣れるまでちょっちかかるけど。
>>388 Basicが使えるなら、mikroBasicでいいんじゃないか?
Cは行末のセミコロンが嫌いだ。
まあ、mikroke系はどれも大して変わらんけど。
行末のセミコロンとかw どーでもいいよ
394 :
774ワット発電中さん :2011/06/08(水) 05:47:44.30 ID:MVQWYvlr
C使いでない人は ポインタとか構造体共有体とかの 便利機能使いたいときはどうしてるんだ?
知らなければ便利だとも感じない ええ、未だに良く解ってませんとも
主にシリアル通信でコマンドやり取りとかをやってるが PICでやる処理に構造体とか使ったためしが無いなぁ つうか、通信データ自体は構造体と相性悪いし、 保存しておくデータもいちいち構造体にするほどの物でもないしなぁ… むしろPICがひとつの関数レベルだからかもしれない。
0バイトから2バイトがコマンドタイプで、コマンドタイプが0x0001の場合は3バイト目から4バイト目はコマンド長で… みたいな典型的なバイトストリームの解析はstructの中にunion入れたりするのが常套手段じゃ?
まあ、通信データまとめて構造体にポンと入れ込むなんて事はしないけどw 解析結果をどこかに保管するときは、構造体でもいいのかもしれないなぁ… でもPICで動かすプログラム程度じゃそんなに複雑なデータ扱わないかw
PICって産業でももりもり使われてるんでしょうけど、 ここに来る人はほとんど趣味の電子工作で使ってる人?
>>398 それこそまさにポインターじゃないのか?
ウニオンな構造体ポインターをバイト列にポン!で解析可能
ちょっと話それるけど、JavaとかC#ってこれができないのよね。 PCと接続する装置でPC側のプログラムとか作ってるとすっごい不便。
かえせば、C言語が未だに制御系で現役の所以でもある
403 :
774ワット発電中さん :2011/06/08(水) 17:50:12.00 ID:XlSooYgQ
PICで、RS232受信のリングパッふぁって、組めますか? RWMが少ないので、何バイトくらい割り当てますか?
どんな長いメッセージなんだよ。 普通に作れる。
PICって一言でいっても古い16FシリーズからPIC32まであるけど…まあ24F,dsPICシリーズ以降なら RAMに困る事はそうないか(多いの選べばいいだけだし) 16Fシリーズも >3の16F1xxxの新シリーズ選べばRAMも多くなってるし,各BANK毎にコマ切れ配置の RAMがFSRの0x2000以降に連続配置されている(FSRも2バイト長で2本になった)
俺もリングバッファのすごい早いソースがほしい。 自分でも作ってみたけど動くのだけは確認したけど 早くなさそうだし。 でもいっぱつで動いたんで、全然デバッグしてない。 多分どっかバグってるはずだが検証もメンドイからソースくれ
リングメモリ管理で早いも遅いもなかろ? システム的制約がないなら2の乗数バイトにすればリード/ライトポイント演算が多少高速化できる程度だ アクセス自体がどうこうは石別にあるからなんともいえんのじゃない?
ぼくも一度作ってみたけど、リングのつなぎ目で、挫折しました
シリアル通信とかリングバッファあるのとないのとじゃ効率全然違うから 自分ライブラリに一個はもっといたほうがいいよ。
趣味で使うマイコンはROMなんて32Kもあれば十分だけど RAMはリングバッファやフィルタ処理であればあるだけ使っちゃう
>>408 あふれたら「あふれてるみたいだよー、ごめんねー」ってフラグ立てて、
シレッと上書きで終わりじゃないか?
ちゃんと面倒見るのはメインのほうで、バッファ管理する側はあくまでさっくり
H8とかでは、 バッファを256個の配列にして、現在位置と書き込み位置をchar型でもてば、かってにリングバッファ。 みたいなことやってたな PICでやるなら64とか128ぐらいだろうか?
バッファってのはな、いつもは処理することが無くて瞬間的に取り込み量が多くなって処理が追い付かない時には有効だけど、 トータルで確実に処理が追い付いてない状況では、導入するだけ無駄だからな?
>>412 PICでも256でおk
中途半端なサイズにすると&演算が入って遅くなるし
下手にブロック化してmemcpy使うより、256バイトのリングバッファのほうが速い
>>413 誰に言ってるの?
PICでリングバッファ作るぐらいなら、クロック上げろという話さねw
リングバッファは1個無駄にした方が簡単に書ける
417 :
774ワット発電中さん :2011/06/08(水) 22:32:45.16 ID:x/SDFwyY
>>414 >>412 のは16Fとか12Fを想定してると思うが。
バンクまたがる場合の配列はありなのかな。
俺は16F690で受信32バイト送信48バイトでやってるな。48バイトというのは 半端だけど16F62Xを使ってたときのなごり。
うん、なんか受信しか考えてないみたいだね。 複数の処理を擬似的に同時実行したい場合、リングバッファが欲しいのは送信だったりする。 「PICがひとつの関数レベル」 って言ってるぐらいだから処理1個なんだろうケド
そりゃ逆に受信側が大変だなw
globalで、書き込み位置、読み込み位置を確保。 受信割り込みで ・フラグクリア ・書き込み位置 %= 256 ・受信文字列[書き込み位置] = 受信バッファ ・新規データありフラグ建てる ・戻る 使う側 ・if( 新規データあり==1){ 読み込み位置 %= 256 if( strcomp( 受信配列, "\r\n" ) { } // この変がわからん }
読み込み数引いてバッファの残り覚えとくくらいだべ。 新規データフラグじゃなくてバッファの在庫数覚えときんさい 入出力バッファなんてほかに何もしようがない 先頭の位置とデータ数の2つの数いじる以外に
>>399 結構、お仕事の人もいると思う。
趣味で採用したマイコンを気に入り、お仕事でも採用、とかあるよ。
>>417 18Fはもちろん、最近の16Fもアドレス連続してたはず
12Fは新型あったっけ?
>>422 256バイトならこんなに簡単。
書き込み バッファ[書込位置++]=データ;
読み出し データ=バッファ[読出位置++];
空き容量 読出位置-書込位置-1;
使用量 書込位置-読出位置;
>>425 読み出し位置がbuffer+255で書き込み位置がbuffer+0になった場合も
それ成り立つの?
427 :
774ワット発電中さん :2011/06/09(木) 10:20:04.69 ID:qz6pu4fU
PIC24(C30) で組んでいて、複数の通信(例えばI2Cを同時に2系統)したい場合、 独自で作るパケット送信プログラムを下記のどちらのスタイルで組んだら良いのか 悩んでいるのですが、何かアドバイスありますでしょうか。 1.ソースを I2C1Packet.c, I2C2Packet.c として、変数やレジスタの I2Cx の x 部分だけを変えたものを作成 2.I2CxPacket.c というのを作って、各関数に引数として I2Cx の変数やレジスタが入った構造体のポインタを渡す 1だと、直接変数やレジスタを参照するので早いですが、ソースの変更は2つ行わなければならない 2だと、構造体経由する分オーバーヘッド、構造体の初期設定があるが、ソースの変更は1つで良い 1のスタイルで I2CxPacketTemplate.c みたいなものを作って、I2C1Packet.c に #include "I2C1Packet.h" (内部で #define I2C_NO 1) #include "I2CxPacketTemplate.c" のような形でマクロで実現できれば、これが良いかなと思っているのですが、うまいやり方が見つかりません・・・
>>426 成り立たないからバッファサイズを足しこんで…まぁそういうこった
MOD演算(除余算だっけ?)するよりも256バイトにしてAND演算の方が早いが
オプティマイザが解釈してくれるのかな?
PIC用のC言語って普通のCやC+と違うのでしょうか?
この質問でコンパイラの話と特定する事も出来ないし 出来てもコンパイラの何?がわからん
>>430 すみません、エスパー様ってどちら様でしょうか?
>>431 文法や命令(PIC専用は除いて)などは、どうなのかな?と思いました。
>>433 エスパーってのは
「全く情報の無い質問の意図まで読み取れる(つまりテレパシー能力)」
を有する人が答えてくれるのを待つしかないって話
今回のように言語仕様(文法)とかいうなら答えようはある
Cに関しては概ね同じ 詳細は各コンパイラの説明を参照
C++は制御系ではやった事ないので誰かよろ
>>434 そういや、PICのGCCはC++に非対応だったよね、確か。
AVRのGCCは対応してるらしいけど。
436 :
774ワット発電中さん :2011/06/09(木) 19:33:13.14 ID:BEinjzsC
最近はウィンドウズのアプリ作らなくなったのでC++忘れかけてるけど、マイコンのプログラムで
C++使うとCと比べてどんな点でメリットがあるのかな?
>>429 一般のCの知識でかけるけど、PIC用のコンパイラは制約が多い場合があったりする。
他のマイコンで書いたコードをPIC用に移植するのが最も難しいコンパイラは俺の知る限り
CC5Xかな。少し長い表現を使うとすぐに「シンプルな表現に分割しろ」と言われる。
あとバンクとかコードページなどCの仕様にない記述も必要になる。
ミクロCなどは制約が少なかったような、
>>426 成り立つ。
空き容量=255-0-1=254、使用量:0-255=1
そこで読出しを一回すれば読出位置が0になって
空き容量=0-0-1=255、使用量=0-0=0
となる。実際SPI受信データをUSBでPCに投げるのに使ってる。
>>428 2^8なんだからMODもANDもいらない。
除算器のないマイコンではANDのほうが早いのは事実だが、それすら不要なのがこの手法の利点。
>>437 バッファ長固定なんて話はないぞ?
64バイトの場合は?32バイトなら?
256限定なら限定といわないと
>438 まあ落ち着こうよ >422の >・書き込み位置 %= 256 > 読み込み位置 %= 256 >425 >256バイトならこんなに簡単。 上を読む限りバッファ長256バイト限定で話が進んでると思うよ。
PICでリングバッファだけで256バイトもメモリー取ったら、あと何も出来なくね?
>>440 最近のは取れるだろうが、以前のpicだと128すら難しいだろうな
>>439 落ち着くも何もリングを教えてくれの書き込みにはバッファサイズの話なんてないぞ?
>>438 256バイトで話進めてる人へのレスでさらに「256バイトなら」って限定してるやん…
しょうがないなぁ
遅くなるけど2^nで使える方法
>>425 の各処理に&0b1111…(nビット)をつけるだけ。
カスタマイズ性と記述ミス対策でdefineしよか。
#define mask(x) ((x)&0b1111)) //n=4, 16bytes
書き込み バッファ[書込位置++&mask]=データ;
読み出し データ=バッファ[読出位置++&mask];
空き容量 読出位置-書込位置-1&mask;
使用量 書込位置-読出位置&mask;
ミスw #define mask 0b1111 だね。関数形で書いたのに使うほうが間違ってたw
>>442 しょうがないと言われても、しょうがないwww
とはいえmask関数までかかれちゃ仕方ない
後は読み書きの部分でバッファオーバーフロー・アンダーランをチェックするだけだ
やすいのはいいが、1個で十分 ……会社に2個ほどあまってたなあ
>>446 ('_`)うぅ この前、まとめて買ったばかり
449 :
774ワット発電中さん :2011/06/10(金) 01:10:31.53 ID:SoMtMOkH
16F88あたりのPICでデジタルフィルタを実装できるのかな?
何でもいいから「デジタルフィルター」が作れるかと言われたら「可能」 ただし、おまえさんが要求する仕様(ビットレートとか次数とか)に合致するものができるかどうかは エスパーの出現を待たないと回答不可
もういいよエスパー云々は
エスパーだけど誰か呼んだ? まあ俺が掲載されると雑誌が終わっちゃうって超能力なんだけどw
リングバッファは、 受信時受信バッファに放り込むだけの作業 送信時送信バッファから放り出すだけの作業 ってのはわかる DMAつかうとどう便利になるん? よくわからん
>>453 DMAがあれば、周辺とメモリのやりとりは、DMAコントローラがやってくれる。
割り込みがあるとすれば、その作業が終わったことを示すため。
もちろん、周辺やDMAコントローラにそういう作業を命令するプログラムも必要です。
455 :
774ワット発電中さん :2011/06/10(金) 09:39:49.35 ID:SoMtMOkH
デジタルフィルタについて、16F88クラスに組み込んだ経験があればオーディオ用途で最高 何kHzくらいまでのLPF作れる、とか言えると思ったんだけど。デジタルフィルタも リングバッファと同じようなメモリの使い方するんじゃないのかなとは思うんだけど、 F88あたりでは処理が遅すぎるかな?
16F88のデジタルフィルタは、 積和計算をどのくらいの速さでできるか、かな。 1. ADでデータ取る 2. 配列に格納 3. 配列[0] × 係数0 配列[1] × 係数1 配列[2] × 係数2 配列[3] × 係数3・・・・個数分繰り返す 4. それらを全部合計する 5. 合計を個数で割る 6. DAに出力する 7. 配列をずらす この1〜7を1秒間に何回こなせるか、だと思う。
肝心な情報が抜けてるから、見積もれないなw
>>455 タップ数もサンプルレートもビット数も書かないんじゃ、経験ある人も答えられないと思うぞ。
16Fは乗算器ないから、オーディオ帯域でも数タップが限度じゃね?
掛け算だけで何サイクル掛かるか考えてみるといい。
PICに供給する電源を切っても、入力ポートにHの電圧が出ている場合、PICは そのまま動作しますよね。 これどうやって止めたらいいですか? 入力ポートから電源に電圧が流れるのは、入力保護ダイオードがの弊害ですよね。
>461 流れない方向にダイオード入れて、入力ピンには抵抗でプルアップしておけば PICのVDDが5Vならいけると思う。
16F84Aで勉強中なのですが、何度も書き換えたり、ブレッドボードに組みなおしたりしてるうちに、 6番ピンのRB0だけ反応しないようになったのですが、一つのポートだけ壊れるとかするのでしょうか? よろしくお願いします。
>>461 自分なら外部にリセットICかな。
電源電圧-0.3Vぐらいのリセット電圧で。(ダイオード経由の電圧降下が0.6Vだから)
内蔵のBORはリセット電圧が低くてダメそう。
>>465 ありがとうございます。
そういう壊れ方もあるんですね。
AKI−PIC2プログラマボードでソフトはPICkit 2 v2.61を使用していますが、
PICの健全性と言うか、テストと言うか、そう言う動作確認的なことなどする事は可能でしょうか?
質問ばかりですみません。よろしくお願いします。
467 :
465 :2011/06/11(土) 00:45:09.36 ID:KnudQTJz
>>466 悪いことは言わん、新しい奴買え。
そう高いもんでもないはずだ。
道東別海町民です。 【道東別海町市街地区】 計測機種 GM-10 LND712 00:52 曇り 微風(北西)平均12.77CPM(0.106μSv/h) 【道東別海町海岸地区】 計測機種 ストロベリーリナックス LND712 計測不能 測定用パソコンの遠隔操作が不調です。 おそらく回線が不安定なためと思われます。 明朝、高所作業車にて整備に行ってまいります。
↑ すみません。 スレ間違いしました。
472 :
774ワット発電中さん :2011/06/11(土) 01:44:39.93 ID:ZVw0YrDj
処理の速さで決まるような仕事は、AVRの方が4倍有利
いつの話だw
>>476 速度が必要なら24って選択肢もあるってだけの話
数を増やすって方向… は、無いなw
デジタルフィルターの話がいつの間にかFFTの話になったな
飛躍の年
481 :
774ワット発電中さん :2011/06/11(土) 14:54:47.52 ID:hVRZKO4r
>>479 ローエンドのPICで使う人がいないんだろうな。
フィルターはよく使われると思うがFFTは特殊な分野(計測関係)でしか使われないという
イメージがあるがどうなんだろう?
>>458 > 16Fは乗算器ないから、オーディオ帯域でも数タップが限度じゃね?
> 掛け算だけで何サイクル掛かるか考えてみるといい。
係数の掛け算だから、乗算器が無くてもシフト命令と足し算だけで済む気がする。
なら、一回の積和演算に10命令位か?
4次元IIRフィルタなら、1データ毎に積和演算が8回必要。合わせて80命令位かなぁ〜?
16F88を全然知らないんだけど、8MHzで動いて1命令3clk位なの?
そうだと仮定すると、1秒間に33,333回か?。あんまし、自信は無い。
>>455 もしこれが正解で33.3kHzサンプリングまで処理出来るとすれば、作れるLPFは16.6kHzが最高という話しかもしんない。
ちなみに、IIRフィルタにリングバッファは使わないよん。
>>479 そりゃそうだ。
FFTの実行速度がデジタルフィルタの「キモ」なんだから。
そうでもないのか
>>485 デジタルフィルタの「キモ」というなら、ふつうは積和演算じゃないか?
そこはもう専用回路で1クロックで済ました方が幸せかもしれん
487 :
774ワット発電中さん :2011/06/11(土) 22:35:49.62 ID:fsVeBlnm
デジタルフィルタなら、CPLDとかFPGAで組んじゃえば? MHzオーダーの処理が可能だぜ??
>>486 16F88 vs AVRのフィルタ勝負なら、乗算器を持っているAVRの勝ちだな。
FPGAというのが、作る楽しみも兼ねてて正解な気がする でも、既にあるものをコピペするだけになってしまうような
FPGAだと、PIC使う意味がアナログ関連以外皆無になるなw CPU機能すらFPGAに組み入れちまえるからw
いいからdsPICつかえよ。
なんかdsPICを使ったら負けな気がするんだ
493 :
491 :2011/06/12(日) 00:49:52.40 ID:YZMhBjTb
ですよねー。
係数を全部1にしたFIRフィルタ(移動平均)にすれば乗算器いらないよw
>>490 そういや、ADC/DAC入りのFPGAって無いな。なんでだろ。
>>492 それならPSoCでどうだw
>>494 >>482 > 係数の掛け算だから、乗算器が無くてもシフト命令と足し算だけで済む
係数が1以外でも乗算器は要らないよw
FPGAはもう当たり前過ぎて、PSoCの方が面白そうなんだけど、 いよいよ使い道がない
>>482 10命令で積和は無理だろう。
Microchipのデータシートによれば、
8 x 8 unsigned without hardware multiply : 13words 69cycles
16F88は20MHz、4CPIだから5MIPS。
加算とループオーバーヘッド考えれば80Cycles/MACくらいか。
8bit 8khz の音声をターゲットとしても積和7回/サンプルが限界。
乗算要るなら素直に18FかAVR使えばいいよな。値段ほとんど変わらんし。
69サイクル掛かるのが1サイクルで済むのは大きい。
499 :
774ワット発電中さん :2011/06/12(日) 10:46:13.76 ID:yPAizbjQ
F88あたりの低速PICでデジタルフィルタ作りたいってときはなるべく8ビットで計算したいと 考えるけどデジタルフィルタの実例ではほとんどが浮動小数点のような実数を使ってるような。 8ビットの計算でも16ビット変数を使うことになると思うけど、8ビットで計算できるような係数 とか可能なのかな?
>>498 検算ありがと。
> 8 x 8 unsigned without hardware multiply : 13words 69cycles
だけど、何回乗算器は要らないと言えばいいんだ?
係数は定数。定数を掛けるのは本当に簡単。
例えば「データfoo × 係数1」の計算をしたくて、その係数が「0.8046875」と都合の良い数字だとする。
この時0.8046875は次に分解できる(だから都合の良い数字)
0.8046875=0.5+0.25+0.03125+0.015625+0.0078125
よって、先の乗算は、
and = foo*0.5+foo*0.25+foo*0.03125+foo*0.015625+foo*0.0078125;
となる。つまり「0.8046875」を掛けるには、
and = (foo
>>1 )+(foo
>>2 )+(foo
>>5 )+(foo
>>6 )+(foo
>>7 );
となる。
つまり、この場合ならシフト命令5回、加算命令4回の9命令の演算となる。
無論、係数や必要な精度によって演算回数が変わることは言うまでもないw
> AVR使えばいいよな。値段ほとんど変わらんし。
最後がMで終わるチップのほうがよっぽどいいと思った。
固定小数点演算するにもデフォで32bitだし。
バカな。 PICの相手に最後がMで終わるチップなんかありえない。 相手はあくまでもAVR。 それ以外は認めない。 異論は認めない。
ARMか?
ARMクラスを使ってしまうと貧乏根性が削ぎ落とされてしまうからなw 何を作っても達成感が薄れてしまうというかなんというか。
504 :
774ワット発電中さん :2011/06/12(日) 13:55:22.79 ID:JH6mZzwI
1chipマイコンの勉強したいのだけどPICとAVRどちらがお勧めですか? 用途はガイガーカウンタの表示です。 アセンブラの知識はZ80で止まっています。 AVRスレにも書いたけど....
>500 foo x 0.8046875 を16Fで8bitのシフトと加算で実現しようすると21サイクルかな BCF STATUS,C RRF foo,f MOVF foo,w MOVWF and BCF STATUS,C RRF foo,f MOVF foo,w ADDWF and,f RRF foo,f ;直前でC=0確定なのでBCF省略 BCF STATUS,C RRF foo,f BCF STATUS,C RRF foo,f MOVF foo,w ADDWF and,f RRF foo,f MOVF foo,w ADDWF and,f RRF foo,f MOVF foo,w ADDWF and,f > 8 x 8 unsigned without hardware multiply : 13words 69cycles に比べれば1/3弱だけど、8bitで切ってしまうと精度が悪いような foo=255だと 結果は and=201 255 x 0.8046875 = 205.1953125
>>504 マルチ乙
AVR池。AVRスレではPICっていわれてるけどw
>504 新規ならAVRの方がとっつきやすいと思う,命令体系もよく出来ていて古い90SxxxxからTiny,Megaシリーズと変化ないし PICはシリーズによって命令体系が違っていて、さらに12/16F,18Fシリーズは独特で特殊すぎる。16bitの24F/H,dsPICは さすが新型だけあってエレガントになっている。 性能 dsPIC,PIC24 > AVR(Tiny,MEGA) > PIC18F > PIC12/16F 情報 PIC12/16F > AVR(Tiny,MEGA) > PIC18F > dsPIC,PIC24 実際問題 性能が必要な用途はそう多くないし、情報が少ないのはきついしね
USBから5Vとってるんだけど、アース線に触らないとLED光らないや…
>>504 一つでもCPUを使いこなしたのならデータシート読むだけでチョロいでしょ。
好きな方で良いと思うよ。
マイクロチップ社のmplabc18-v3_38-windows-eval-installer.exe(Cコンパイラ)ダウンロードしてインストールしようとしたら何も無いウインドウが開かれるだけで何も始まらないんだけど、どうすればいいの?
511 :
774ワット発電中さん :2011/06/12(日) 15:24:50.87 ID:JH6mZzwI
>>507 ありがとうございます。
アセンブラで書くつもりですのでAVR(Tiny,MEGA)にしたいと思います。
512 :
774ワット発電中さん :2011/06/12(日) 15:40:35.06 ID:yPAizbjQ
>>505 F88のシフト命令だけど例えば5ビットのシフト「
>>5 」を1ステップで実行できる?
PICの場合1ビットのシフトを5回繰り返して5ビットシフトしてたような。違ったかな?
>512 なぜ私に?? 16F88は1bitづつのbit回転しかできないよ。>505のソースもそうなってるけど そういえば新シリーズの16F1xxxならシフト命令(LSRF等)追加されてるから,イチイチCをクリアしなくていいんだな
dsPICと従来型の一番の違いって何でしょうか?
>>514 16bitマイコン(10F/12F/16F/18Fシリーズは8bit)
DSP搭載(24F/24Hシリーズ、8bitPICは非搭載)
か?
少し上にもPICが生きてるかどうかの話が出ていて、結論は買いなおせ。と言う事でしたが、 自分も部分的に壊れてるのかどうか解らないPICが幾つかあります。 テストするのってブレッドボードにLEDやSWで出力、入力を順にチェックするしかないのでしょうか? 何かフリーソフトとかでライター経由でチェックできるとかないでしょうか?
そんなのチェックする手間あったら買い直せ #前も言われただろうが。
>>501 > 異論は認めない。
あらま、ARMのLPC1111(Coretex-M0)の最安値は$1.40(Mouser)なんだけどな…。
Coretex-M0で、本気でPICやAVRの置き換えを狙っているらしいよ。
>>505 > foo x 0.8046875 を16Fで8bitのシフトと加算で実現しようすると21サイクルかな
ありがとう。しかもコードまで書いてくれて…スマソ
予想30clkより速いけど8bitなのか、辛いな…。
せめて16bitあればいいのに…。
>>499 > デジタルフィルタの実例ではほとんどが浮動小数点のような実数を使ってるような。
DSPだと、固定小数点演算が多いよ。DSPicだって固定小数点演算だし。
そのdsPICのDSPは、
DSP Features:
? Dual data fetch
? Modulo and Bit-Reversed modes
? Two 40-bit wide accumulators with optional saturation logic
? 17-bit x 17-bit single-cycle hardware fractional/integer multiplier
? All DSP instructions are single cycle
- Multiply-Accumulate (MAC) operation
? single-cycle ±16 shift
17-bitの積和演算だしね。
> 8ビットの計算でも16ビット変数を使うことになると思うけど、8ビットで計算できるような係数
> とか可能なのかな?
16bitで演算すれば実用的だよ。まぁ、何処まで演算誤差を許容するかもあるけど。
>>517 すみません、私は上の人とは違うので前には言われてません。
時々、マイナーな型番とかで、2個しか手持ちが無いのにどちらが故障か解らない(外見上)ということがあるので、
便利なソフトなどご存じないでしょうかと質問しました。
やはり買いなおししか無いのですかね?
>>500 >何回乗算器は要らないと言えばいいんだ?
without hardware multiply が読めないのか。
乗算器使ったらこんなの1サイクルだよ。その時点で気付こう。
乗算器無い前提なのにバレルシフタがある前提で計算してるってどうなの?
そんな計算方法があって、乗算がそのように実現されることくらい知ってるけど、
任意の係数や、係数をハードコーディングしたくない場合を考えて提示した。
522 :
774ワット発電中さん :2011/06/13(月) 05:12:42.70 ID:7N7sI8MS
>>520 壊れているかもしれない物を使いたいなら使えばいい
壊れているか壊れていないか確認したいなら
メーカに問い合わせればいい
簡単に壊れているかいないか確認したいなら
入力出力テストしてみればいいが自己テストは不安が残る
一番簡単なのは
壊れてない物を使う事
わかる?
使う用途による
わかる?
自分のアドバイス聞いてもらえないからってそうからむなよ。 こわれてるか壊れてないか簡単に調べる方法知らないなら知らないって黙ってりゃいいべ
>>523 そんな方法があり得ない事も分からないやつのほうが黙ってるべき。
全員黙ってしまってこのスレ終了だな
仕方ない、俺が答えてやるか。 買い直しを躊躇うのは壊れているのかいないのか判らないからだ。 判らない物はハンマーで叩き潰してしまえ。確実に壊れていると言えるし、見た目にもちゃんと壊れている。 これで心おきなく買い直せる。
PICなんて数百円の石、おかしいなと思ったら新しいの買えばいいだろw その前におかしいなと思った石の表面には分かるように印付けとくんだぞww
>>516 >テストするのってブレッドボードにLEDやSWで出力、入力を順にチェックするしかないのでしょうか?
いえ、ブレッドボードでなくて、ユニバーサル基板に回路を作る方法もあります。
また、スイッチやLEDを使用せずに、もう1つのPICの入出力を使用する方法もあります。
さらに言うと、順にチェックせずに、ランダムな順番でチェックする方法もあります。
奥の手としては、回りにいる人に「調べてほしい。お金ならいくらでも出す」と言えば
やってくれると思う。手を汚さずに実現できるよ。
それだったらおいくら万円で喜んで請けますよw
買ってきた新品が壊れてないことを確かめる方法を教えてください。
新品は工場出荷時に何重にもテストされていますので壊れていません
シュレーディンガーの猫の研究でもドゾ
あー、ちょうどブルーバックス読んでるところだ。 都筑さんの。
>>508 > アース線に触らないとLED光らないや…
念の為。小学校の理科でプラスとマイナスは習ったよね?
>>521 話題を勝手に変えないようにw
論点は乗算器の無い16F88で、どの程度のLPFが作れるか?
駅に着いたから後で
>>508 タッチセンサーだと思い込めば「幸せ」になれるぞ
北区
>>521 乗算器の無い16F88で、乗算しようとしたら乗算ルーチン使うのは普通。
それを10命令で可能と言ったのは俺だが、それは無理と言ったのは
>>498 。
しかもソフトな乗算ルーチンを引き合いに出して、
> 8bit 8khz の音声をターゲットとしても積和7回/サンプルが限界。
と間違った答えを出したのも
>>498 。
最終的に、
>>505 さんが素晴らしい答えを出してくれたが、
それで面子を潰されたからといって、俺に噛みつくのはお門違い。
> 乗算器無い前提なのにバレルシフタがある前提で計算してるってどうなの?
判ってないな、フィルタを書いたこと無いだろ?
フィルタの係数は定数。定数の乗算にはバレルシフタも要らない。
>>536 なんでそんなに喧嘩腰なの?
一例としてどんな係数でも使える乗算ルーチンを引き合いに出しただけ。
乗算器を使っていない一つの例を示したのに、
「乗算器要らないと何度言えば」ってキレだしたのは貴方。
「定数の乗算にはバレルシフタも要らない」って言うけど、
>>500 で言ってる
「シフト命令5回、加算命令4回の9命令の演算」ってバレルシフタありの場合なんだけど。
>>498 の主張「どんな係数でも69サイクルで乗算可能」
貴方の主張「限られた係数では10命令で可能」
>>505 氏 「実際にそのケースでは10命令では無理で21サイクル掛かる」
否定されたのはどちら?
538 :
774ワット発電中さん :2011/06/14(火) 03:23:42.42 ID:Ja4eXA3N
流れを豚切ってスマヌ。 以前、PICで音を出すようなスレを見ていた男だす。 再びPICでちょっとした楽器を作ろうしているのだが、 普通のPICの出力にスピーカーなどをつないで、ブザーみたいな 音じゃなく、少しはマシな音をだす方法はないですか? 簡単なフィルタでもよろし。音量はあまり要求しない。 とにかく、外付け部品を究極まで減らしたいので。
音のカナメは波形だ。 どうやってもデジタルだけだと矩形波だけしか出せない。 最低限D/A変換はしないとな。
541 :
774ワット発電中さん :2011/06/14(火) 04:48:31.77 ID:jYMn59GK
>>538 C1815とA1015使ってPWM出力すれば
スピーカから音声出せるよ
ライブラリはメーカサイトにあった気がする
ハードはデジタルアンプとかで検索してみ
>>537 > 一例としてどんな係数でも使える乗算ルーチンを引き合いに出しただけ。
だから、乗算器の無い16F88で、乗算しようとしたら乗算ルーチン使うのは普通。
だけどそれでは遅いからと議論していたんだと、
>>536 に戻る。
以下、無限ループw
どちらにせよ、高くて遅いPICで頑張るよりも、安くて速い32bitなLPC1111使ったほうがいい訳で…
なんで基板屋はPICなんか載せたんだ? と毒づきながらコードに向かう一日が今日も始まる…(あ〜ぁ)
>>537 > なんでそんなに喧嘩腰なの?
まぁ、そんな訳だスマソ
PWMで音を出すとフィルタが厳しすぎるので、ラダー抵抗がいい
スピーカーのインダクタンスって結構大きいから、趣味レベルなら高速PWMでフィルタなしでも…
>LPC1111使ったほうがいい デジタルフィルタ処理がメインならdsPICの方がいいよ。 Cortex-M3でFIRフィルタ処理をする場合1タップあたり12サイクル必要という話なので、 Cortex-M0は同じかそれ以上のサイクル数が必要なはず。 dsPICは曲がりなりにもDSPだから1タップあたり1サイクルで実行可能なので、性能差は圧倒的。
547 :
774ワット発電中さん :2011/06/14(火) 12:42:39.60 ID:F+cFX2eK
dsPIC、32ビットマイコンだと思ってたんだけど16ビット?
デジタルフィルタならFPGA使えって結論出てるだろw ノイマンタイプのシングルプロセスでフィルタ計算とか馬鹿過ぎw
ジョイマン!!!
>>548 FPGA
基板込みで1000円以下なら考えるけど
>>550 990円になってもやらないだろ? 知ってるぞ
552 :
774ワット発電中さん :2011/06/14(火) 14:12:45.25 ID:F+cFX2eK
>>551 FPGAはチップの実装がめんどくさいから電子工作にあまり使われないんだろう。
H8などもCPUボードの2列コネクタなどは受け側ボードの配線が複雑になる。
その点PICはDIPパッケージで実装が簡単。値段も重要だが使いやすさも大事。
大規模なプログラム容量を維持した上で少ピンタイプのFPGAがあればいいんだけど。
少ピンのPLCCなCPLDならなんとか
554 :
774ワット発電中さん :2011/06/14(火) 14:44:30.56 ID:F+cFX2eK
CPLDか。規模はいろいろあるんだろうが昔トラ技の付録で付いてきたMAXUとかいう CPLDではプログラム容量が小さすぎたという記憶があるな。
>554 MaxIIも「極小」から「やや小」まで幅があるからなあ。 トラギ付録のはいちばん回路規模が小さい極小モデルだから、 容量が小さすぎる例は多かっただろうな。 「やや小」のモデルなら極小のヤツより4倍ぐらい大きな回路を造れるんじゃなかったか。
557 :
505 :2011/06/14(火) 19:37:42.38 ID:c9vlYjeW
結局、「限られた係数での乗算は10命令で可能」は出てこないけど インチキ的 手法ならテーブル参照で可能か MOVLW D'2' CALL MUL1 ;CALL〜RETLWまでならちょうど10サイクル MOVWF and ------------ ORG H'0FB' ;テーブルがちょうど nn00で始まるように MUL1 MOVWF HOZON MOVLW HIGH TABLE1 MOVWF PCLATH MOVF HOZON,w ADDWF PCL,f TABLE1 RETLW D'0' ;W*0の値 RETLW D'1' ;W*1の値 RETLW D'2' ;W*2の値…以下255まで続くw
答え1バイトでいいの?
>>552 > その点PICはDIPパッケージで実装が簡単。
ふ〜ん。俺は200ビンクラスのTQFPの手ハンダも、苦にしないけどな。
コテを一周させて、ブリッジした数ヶ所を取り除くだけだし。
>>548 >デジタルフィルタならFPGA使えって結論出てるだろw
まぁね。FPGAなら1クロックで1サンプル処理出来るし。
実際、FPGAでFMラジオを作る記事が雑誌に掲載されてるしね。
でも、安くても1500円はするし、ADCは外付けになるのが難点。
>>559 質問。
基板はどうしてる?プリント基板の自作?ユニバーサル基板?
TQFPだと、ハンダ付けというか、基板レイアウトも大変そうだなと思うから。
ユニバーサル基板って何で切るのが楽だろう
アクリルカッター
>>546 > デジタルフィルタ処理がメインならdsPICの方がいいよ。
そぉ? dsPICもびみょ〜なんだよねぇ〜
DSPIC30F2012-30I/SP
MCU 16-Bit dsPIC30 dsPIC RISC 12KB Flash 3.3V/5V 28-Pin SPDIP Tube
1pcs $3.5000
Maximum Speed 30 MHz
RAM Size 1 KB
Program Memory Size 12 KB
TMS320F28020DAS
MCU 32-Bit C2000 C28x RISC 32KB Flash 3.3V 38-Pin TSSOP
1pcs, $3.4600
Maximum Speed 40 MHz
RAM Size 6 KB
Program Memory Size 32 KB
とりあえず、IDが変わる前にカキコ
PIC12F1822−I/Pのタッチセンサの使い方を教えてください。お願いします。
>>561 超音波カッター、 ホビー用の安物でも嘘みたいに切れるよ〜
>>546 今回の仕事はフィルタを組んでいる訳ではないんだ。
通信しながらモーターを動かすんだけど、処理速度が約8%足りないだけ orz
> Cortex-M3でFIRフィルタ処理をする場合1タップあたり12サイクル必要という話なので、
> dsPICは曲がりなりにもDSPだから1タップあたり1サイクルで実行可能
CM3って、そんなに遅かったっけ? 調べてみよっと。
ただdsPICと同じ値段なら、
>>563 の様にTMS320F2802の方が性能が高いんだよね…。
最近、PICで痛い目に合っているので、否定的でスマソ
>>566 普通のCPUとDSPとの能力差が大きいのは積和演算を連続的に実行する場合なので、
それ以外の処理がメインなら、同じクロック周波数のCPUと大差ない場合もある。
それと、仕事の場合は入手性の基準がアマチュアとは違うから、DSPを使うにしても
アナデバとかフリースケールとか他のメーカーも選択肢に入るはず。
>>569 > 普通のCPUとDSPとの能力差が大きいのは積和演算を連続的に実行する場合
おぅ、ありがと。なんか納得。ただ、
>>546 > Cortex-M3でFIRフィルタ処理をする場合1タップあたり12サイクル必要という話なので、
CM3にも積和命令があるんだよね。
ttp://infocenter.arm.com/help/topic/com.arm.doc.ddi0337ej/DDI0337ej_cortex_m3_trm.pdf MLA.W : 2 つの符号付きまたは符号なしレジスタ値を乗算し、下位32 ビットをレジスタの値に加算(積和)
たしか、この命令をサポートしたのはDSP的な使われかたを想定してと何処かで読んだ。
そこまで遅いかなぁ
>>569 > それと、仕事の場合は入手性の基準がアマチュアとは違うから、DSPを使うにしても
> アナデバとかフリースケールとか他のメーカーも選択肢に入るはず。
そうそう。秋月にあるかないかなんて、気にしないw
アナデバ・フリスケのDSPは、よく判らん。
それにしてもdsPICもPICも、こんなに価格競争力が無いとは思わなかった。
MicroChip、このままだとヤバいね。
PICはエラッタの量と質が半端ない気がする。仕事には使いたくない。
572 :
774ワット発電中さん :2011/06/15(水) 08:21:33.49 ID:IIRbUM50
>それにしてもdsPICもPICも、こんなに価格競争力が無いとは思わなかった。 MicroChip、このままだとヤバいね。 ほんとにそうかな?というのもたとえば2.4G無線チップ、無線部分だけのチップとマイコン内蔵型 とがあるよね。でも小型軽量が要求される民生用途であるにもかかわらずマイコンを外付けで設計 する場合が少なくないように思う。仕事で使う場合、逆に余計な負担を増やさないために使い慣れた 物を選択するってことも多いんじゃないのかな、と思った。
>CM3にも積和命令がある 普通のCPUでは、乗算するデータ2個がレジスタに入っていないとダメだから、 大ざっぱに考えて ・2個のデータを読み出す処理で2サイクル、 ・読み出すアドレスのインデックス2個を更新するのに2サイクル、 ・積和演算で1サイクル ・ループカウンタを更新するのに1サイクル ・ループ終了判定に1サイクル ・ループの先頭にジャンプするのに数サイクル(パイプライン・ストールのため) 程度の処理が必要になるはず。 DSPの場合は、これらの処理を1サイクルで完了する。
>>570 >CM3にも積和命令があるんだよね。
別に命令があるのは不思議な事じゃないと思うよ。
「積和命令がある」のと「ハードウェアとしての積和モジュールを持っている」ことは違うから。
アセンブラ命令として積和計算が1行で記述できる = 実行が1クロックってことはないでしょ?
ARMスレ池
ったく、ARM信者はこまるよな。 PICが気に入って、好きでやっているのに。 ARM ARMって言われると、ますます嫌いになってしまう。 アルデーノ野郎と同じ
579 :
774ワット発電中さん :2011/06/15(水) 15:52:17.29 ID:IIRbUM50
ARMという人はいても、自動車産業界で4割のシェアとか言われてるルネサスのマイコンを 押す声がないのはなぜ?ARMの方がメジャーなのか?
>>579 ルネサスからは個人使用を継続的にバックアップしようという姿勢が感じられない。
一時期はH8マイコンとか盛り上がったけど最近は全く聞かないもんね。
小口相手にしても、って感じなんじゃね
DIPパッケージがないのもそのせいだね はじめからディスってたわけで
つうかルネサススレ池 PICはピン割付ができるから好きさ。
>>579 ルネサスなんて逆に自動車でしか使わないなw
エンジンルームの過酷な状況でもある程度耐えるってだけでしょ。
儲けにならない個人より、儲けの大きい大口に注力するのが プロ(ルネサス)の判断らしい。
学校とか教育関係にバラ撒けば、将来決定権持ったときに選択してくれるのにね。 個人というか、そう言う所は甘いよなw
> 将来決定権持ったときに選択してくれるのにね。 規定路線を変えるほど、魅力の差は無いんじゃないか。 だから安くてもつなぎとめのために受ける。シェアは上がる。儲けは無い。
PICも自動車用途で売れ出したチップだよね・・・ かつてはエアバッグのコントローラでシェアが高かった 今はもっと良いマイコンがいくらでもあるからなぁ ○○Rとか○○Mとか
PICに関係ない雑談するなら他に行けばいいのに。せっかくスレッドが細分化されてるのに AVRの話したけりゃAVRスレに,ARMの話したけりゃARMスレに,雑談したけりゃ雑談所スレに
PIC厨ピリピリしすぎ
PICも大きさと省電力方面とかで良い所あるで
594 :
774ワット発電中さん :2011/06/16(木) 01:10:05.50 ID:32s66DIx
最初PIC16F84でマイコン始めて そのうちもっと高機能なマイコン使い始めて ARMとかルネサスも使ってるで〜 オマエラまだPIC使ってるの? 遅れてるね〜w って言う人達はスレタイなんて関係無いんだよ 流行の最先端! スゲー! カコイイ! て会社で言われないから 所構わず落書きしてるだけなんだよ わかってあげなよ 誉めてあげなよ スゴイスゴイ!って
>593 省電力って点ではMSP430とかに負けてなくね? >594 性能の良い石、取っつきやすい石。 そういうわかりやすいメリットを追い求めるなら、 「なら自分の使いやすいのとか好きなのを使え」で終わりだろ ちょっとクセのある石を使うのが楽しいんじゃないか?
> ちょっとクセのある石を使うのが楽しいんじゃないか? ____ / \ / ─ ─ \ / (●) (●) \ | (__人__) | \ ` ⌒´ ,/ r、 r、/ ヘ ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | ヘ lノ `'ソ | | /´ / |. | \. ィ | |
>>578 他社からみれば、こんなにデキの悪いチップがこんなに売れてちゃ我慢ならんでしょ。
実際、もうそろそろ出版も流通も次の商材が欲しいのでは?
>>571 こっちにおいでよ。仕事で使うとホント、泣けてくるよ(笑)(泣)
>>573 そうじゃぁ、ないんだ。パイプラインって言葉、知ってるかな?
>>569 が言う「普通のCPUとDSPとの能力差が大きいのは積和演算を連続的に実行する場合」とは、そういう事ではないんだ。
興味があるならこの資料を読めば、何故DSPが積和演算が速いか理解出来ると思うよ。
TMS320C6000 最適化技術アプリケーション・ノート
ttp://focus.tij.co.jp/jp/lit/an/jaja022/jaja022.pdf さてdsPICだけど、dsPICはC6000に比べたら可愛いもんで8命令同時実行なんて出来ない。
でも、PICの特徴的なメモリをレジスタとして扱えるアーキテクチャが効いてて、データをメモリから持って来て、演算して、元に戻す動作が1クロックで出来るのが優れたところ。
まぁ、昔っから外部メモリをサポートしないと、バッサリと切り捨てたから出来る事で、そういうトレードオフもありかな。
とにかく、そこら辺はDSPだからと言うより、PICアーキから来る話し。
Cortex-M3だと外部メモリを切り捨てる訳にもいかない。
なんとか13個の汎用レジスタに収まる様に、係数とか演算結果を保持すれば性能は出る。
収まっている限り、元データのロードと結果のセーブだけで済むし、それなら3段パイプラインで理想条件なら2クロックまで隠蔽される。
ここまで書けば
>>566 氏も理解出来ただろう。元ネタの、
>>546 > Cortex-M3でFIRフィルタ処理をする場合1タップあたり12サイクル必要という話
は、大量の変数を必要とするFIRで組んだから。
Cortex-M3でそんな事したら遅いのは当たり前で、性能を出すならレジスタに収まるIIRでなきゃw
そのFIRを組んだ奴はアホだねw
>>594 > カコイイ!
> て会社で言われないから
幸せな奴だな〜、頭の中がお花畑か?
会社でドヤ顔してもウザがられるだけ、求められるのは結果のみ。
エラッタやら、コンパイラのバグなんて言い訳にもならない。
それを使いこなすのがプロだろ?って言われるだけ。
それでも結果を出さなければいけないシビアな世界なんだよ。
間違いを書いたことに気がついたので訂正
>>598 > でも、PICの特徴的なメモリをレジスタとして扱えるアーキテクチャが
> とにかく、そこら辺はDSPだからと言うより、PICアーキから来る話し。
SHのDSP機能にも、同じ機構が用意されているのを思い出した。
TIもキャッシュをメモリとして扱えるから、思想的には同じ。
なのでメモリをレジスタ的に扱えるのは、DSPの特徴だね。
>>578 こんな奴がいるから、未だにPICが生き残るんだな。
いいのか、わるいのか。
ホビー(しかもライト)ユーザな俺にしてみればPIC最高 というか他良くわからない。勉強してみる
PIC厨からAVR厨に落ちたやつは戻ってこない・・・ そういうのを何人も見てきたよ・・・え?おれはMSP(rywww
PIC厨だAVR厨だって何なんだ
それで誰か困るわけでもあるまいし。
>>601 いいのかわるいのか分からないなら、様子見でいいんじゃね?
ラーメン屋に来て、お好み焼きを注文しラーメンの不味さを発言する奴 本人に悪気はないんだ
銀座に出かけてラーメン喰って帰って来るのもどうかとは思うけどなw 世界狭過ぎw
銀座に自分がウマいと思うラーメン屋があるなら、ラーメン食う為だけに出かけたっていいんじゃない? なんか例えどころおかしくね? 流れ的に、ほかにいいものあるから散策しろ、とか、もっと旨い飯屋探せよ、とかいいたいんだろうけど… 世界が狭くなくても嗜好が狭い奴なんてゴマンといるし…
繁盛しているラーメン屋に来たオッサン 子供からお年寄りまで、幅広い客層が店内に居る状態 注文を取りに来たラーメン屋の店員 すると、オッサンはこう言い始めた 「オレはプロ!ラーメンは以前食べて不味かった!」 「プロだから、沢山の食材は見ないと駄目!」 「今まで食べた中で安くて旨いのはイタリア料理」 「なんでここに居る奴等、イタリア料理を食べないのか?」 「プロはイタリア料理食べないと駄目なのに、なんでラーメン食べてるのか?」 「オレはプロだから、舌が繊細なんだ!オレはプロ!」 と言っている 困った店員 「あのぉ、、、ここラーメン屋なんですけれど、、、、」 という すると、オッサン 「プロの世界はシビアなんだよ!ラーメンなんて食べてられないんだよ!」 という
KARA??あんまり美味くなかった (´・ω・)
己卜 口=| ○ 書けないのか・・・
○じゃなくてLだった。
そんなこと言われるぐらいだから よっぽどまずいラーメン屋なんじゃない? 「ここのラーメン食うぐらいなら他の店行ったほうがマシ!」みたいな・・・
dspic30f2020のSMPS PWM使ったことある人いる? PWMにデッドタイムが挿入されなくて今詰まってる。 デッドタイム云々の設定はしてるのになんでじゃ
615 :
774ワット発電中さん :2011/06/16(木) 23:12:41.18 ID:zdrmGMzJ
>>614 コンバイラのバグじゃね?
バージョンアップか、ダウンしてみれば?
またエラッタなのかね 関わり合いにはなりたくないね
619 :
774ワット発電中さん :2011/06/17(金) 04:59:30.37 ID:91dJW4og
>>617 > v3.30にupdateしたけどやっぱうごかねー
次はdowndateだ!!
>>618 エラッタとか、やる気なくすよね。
>>594 Arduino、mbedのサンプルを少しいじったぐらいで、
ニコニコ技術部員常連として天狗になっている人が少なくないね。
一方で、華麗にエラッタを回避して、アセンブラでもC両方で、
出来ない輩をフォローできるよう、気を配っている人もいる。
どっちが向いているかは、比べたら推して知るべしだな。
まぁ、初めてやる人には、PICのアセンブラは勧めないけど
623 :
774ワット発電中さん :2011/06/17(金) 22:37:19.74 ID:91dJW4og
嫌よ嫌よも好きのうち 本当に嫌なら無視すればいい
PICのアセンブラで ds と言う命令や move と言うのは秋月のだけですか? メーカーのアセンブラでも使えますか?
pic自体がマイクロチップどっぷりだしなあ。 目的を手軽に達成するのに使う程度で住ませてあんまりどっぷり深く使う気になれない。
626 :
774ワット発電中さん :2011/06/18(土) 06:29:22.59 ID:8I5N8hQ/
>>625 > 目的を手軽に達成するのに使う
それ以上何があるの?
PICに限らずマイコンってそういうもんだろ?
>>622 >>621 はエラッタやバグを華麗に回避しても、スゲー!カコイイ!て会社で言われない…、誰も誉めてくれない、MicroChipの可哀相な犠牲者なんだよ。
わかってあげなよ、誉めてあげなよ、スゴイスゴイ!ってww
って、PIC以外を選べばしなくていい無駄な努力なんだよなぁ〜。馬鹿馬鹿しいな。
マジ可哀相な奴だ、俺も含めてね orz
同胞は意外と多いかもな 営業のバカのせいでいらない苦労がまた増えたよ
>>627 どこのマイコンでも多少のバグやエラッタはあるよ。
よほど古くて枯れちゃったヤツはそれも仕様に含むけどね。
まあ、目的や用途によって適切に選べば良いんじゃないの。
縛りがあるならしょうがない。
自分もいろんな縛りで8748しか選べなかったこととかあるし。
今更PICしか使えないっていう縛りは、 会社の体質による例が多いよ。 アマチュアみたいにコロコロ変えると、 逆にヒヨッコ扱い
会社で糞DSP使わされてるとPICの方が全然マシに思えてくる エラッタ開示されてるだけマシじゃん…
亀レス
>>573 なんだ、デマか?
Cortex-M3 テクニカルリファレンスマニュアル
> メモリインタフェース
> このプロセッサはハーバードインタフェースを採用しているため、命令フェッチと、
> データのロード/ ストアが同時に可能です。メモリアクセスは次のユニットにより制御
> されます。
> ・独立したロードストアユニット (LSU)(Load Store Unit) があり、ロードおよびス
> トア動作がALU (Arithmetic and Logic Unit) から分離されています
>633 TRM持ってんなら「プロセッサ命令のタイミング」参照のこと。 > 結果が64ビットの乗算 ... 3〜7サイクル UMULL、SMULL、UMLAL、SMLAL UMLAL、SMLALが 32bit x 32bit + 64bit の積和命令な。 ただし、dsPICの積和も 32bit x 32bit + 64bit が1クロックで出来るわけではないから そんなにえばれたもんではない。
>>632 >AVR厨の高笑いが聴こえてきそうだ・・・
否、違うと思う
AVRから見たら、こっちくるな だろ
うっとーしーのが増えそうと、嫌悪感を抱いていると思う
microchipがatmelを買収するなんて話があったんだな。なんか気持ち悪い。 失敗して双方にとってよかったよな。
すみません初心者でしてちょっとお伺いします LVPモードで書き込みする場合、PGMピンは書き込み時だけに使用されて、書き込んだ後は 通常の入出力ポートとしては使用できないのでしょうか? つまりはLVP書き込み用専用ポートになってしまうのでしょうか? よろしくご教授願います
638 :
774ワット発電中さん :2011/06/19(日) 05:21:35.85 ID:opJ4vstZ
ブサ男と豚子の物語1 ブサ男は豚子と付き合って一年位になる 彼にとって豚子が初めての女だ 豚子は見た目はイマイチだが、気が利くし何より 友人うけが良い 料理もソコソコ旨いし何より、気兼ねをしなくていいのが一番良い だが、唯一堪え難いものがある 食事中に放屁するのだ これは付き合って暫らく経過しないと分からない事だった 豚子「私の作った肉じゃがどぅ?」 プゥ〜〜 ブサ男「あぁ美味しいよ」 豚子「良かった〜」 プゥ〜〜 てな感じた
>>634 > > 結果が64ビットの乗算 ...
> ただし、dsPICの積和も 32bit x 32bit + 64bit が1クロックで出来るわけではないから
結果が64bitの乗算なら、dsPICも4クロックかかるだろうね。
>637 そうです。
641 :
774ワット発電中さん :2011/06/19(日) 09:33:39.32 ID:mRIxNvVH
>>637 コンフィギュレーションワードでLVPを有効にすると、PGMピンはI/Oとして使えないって
データシートに書いてあるよ
データシートは読んだほうがいいよ
ブサ男と豚子の物語2 ブサ男は豚子のその放屁が我慢できず、 豚子と別れることにした そこからブサ男はある決心をした ・豚子の不細工顔 ・豚子の屁クセ ・豚子とは付き合わない方がいい この三つを周りの人間に広めることにした
>>642 うん? 出来ないの?
16x16の積和演算を4回やれば32x32の乗算となり、その結果は64bitと踏んだんだけど?
>644 そういう普通のことが普通にできるとは限らないのがDSPの味。 加算先のアキュムレータは40bitしかないんだぜ。
>>644 有効精度は、16x16の積和演算を何回やっても、加算器のビット幅に制限されるから、増えることはないでしょ。
8x8が1サイクルでできる18Fだと、16x16は28サイクル掛かると書いてある。
>>645-646 何を言っているのか、よく判らないな…。
40bitを二つ繋げてどう64bitを表現するか?の問題は残るけど、
0xAAAA_BBBBと0xCCCC_DDDDの32bit値を16bitの乗算器で計算するなら、これだけで済むんじゃなかったっけ?
bar[31:0]=0xBBBB * 0xDDDD;
bar[47:16]+=0xAAAA * 0xDDDD;
bar[47:16]+=0xBBBB * 0xCCCC;
bar[63:32]+=0xAAAA * 0xCCCC;
>>648 そのような積和演算ができるDSPって、なんという品種ですか?
私もそれができるのであれば、ぜひ知りたいです。
>648 普通のプロセッサなら、 メモリ上にある値を読み出して、そこに加算して、結果をメモリに書き出す という処理自体が最速で3クロックだな。ウェイトがかかる場合も多い。 高クロックなCPUなら、キャッシュにヒットした場合の最速ですら3クロック。 っと、すまん。レジスタへの加算だったか。 中間のビット位置への加算って、できるのか? メモリなら可能だけど。 あと、加算時にオーバーフローが生じたとき(つまり「桁上げ」)の処理が抜けてるぞ。
>>649 うん?今はdsPICの話題なんだけど…
dsPICは、
>>573 「DSPの場合は、これらの処理を1サイクルで完了」とマニュアルにも書かれているけど、ロード/演算/ストアを1クロックで実行。
ならば、やり方は色々あるだろうけど、
>>648 の一回目の乗算結果は既にメモリ上。
二回目の積和はアドレスをインクリメントして。
三回目の積和のアドレスはそのまま。
四回目の積和はアドレスをインクリメントして。
これで4クロックじゃね?ってのが
>>639 (今ここ)
>>650 > あと、加算時にオーバーフローが生じたとき(つまり「桁上げ」)の処理が抜けてるぞ。
加算先は40bitだから、考慮しなくても桁上げ処理は出来そうと考えた。
(32bitの最大値同士を加算しても、33bitで事足りて40bitもあれば気にする必要ないかなって)
肝心要の問題をほおかむりされても。 >648 > 40bitを二つ繋げてどう64bitを表現するか?の問題は残るけど、 bar[31:0] をA、bar[63:32] を B に置いたとして、 bar[47:16] を A に重ねるにしても B に重ねるにしても一時的に48bit 必要になる。 うまい表現方法があるなら>642
perlとかで自分専用のプログラムをちょいちょいと書いて便利に使うのと、 マイコンで自分専用の回路を組んで便利に使うのが似ていることに気付いた これと相似なのに、自分専用の機械を作るというのもあるけど、 これだけちょっとハードルが高い
>>653 うん、それでメモリ上でどぉ?が
>>651 まさか、
>>634 >> 結果が64ビットの乗算 ... 3〜7サイクル UMULL、SMULL、UMLAL、SMLAL
Cortex-M3より遅いことはないだろ?
>>651 > dsPICは、
>>573 「DSPの場合は、これらの処理を1サイクルで完了」とマニュアルにも書かれているけど、
> ロード/演算/ストアを1クロックで実行。
これはその通り。
> ならば、やり方は色々あるだろうけど、
>>648 の一回目の乗算結果は既にメモリ上。
MACとかの命令の演算結果(40bit)はACCAかACCBにしか格納できなかったと思う。
Write Backでは16bitしかメモリに書けない(使える命令に制限あり)
もし俺なら、(やったことがないけど)こんな方法でやると思う
1回目をn回実施、その後ACCの内容をメモリに格納
2回目をn回実施、その後ACCの内容とメモリの内容を加算し、結果をメモリに格納
・・・
・スイッチの長押し(1秒以上)でカウンタが「 0 」になるようにプログラムを組みなさい。
・500msecの間に2回ONを検知したら「ダブルクリック」であると認識する機能を追加
する。ダブルクリックは、自動的にカウントアップする動作を行うようにする。
もう一度ダブルクリックで停止、再度ダブルクリックで再開、長押しでリセットする。
上の練習問題を解くために下のようなプログラムを作成しましたが、うまく動作しません。
http://codepad.org/EQXfsYPz どこが良くないのか教えて下さい。
使用したPICは16F84Aです。
PICとか関係なしに、C言語の問題じゃね?
>>658 どうすればいいんでしょうか?
アドバイスをお願いします
cntは何か意味あるんですか? ずっと 0 に見えるけど
>>659 まずは、このメッセージの意味を理解すること。
error: pic.h: No such file or directory
>>656 > MACとかの命令の演算結果(40bit)はACCAかACCBにしか格納できなかったと思う。
> Write Backでは16bitしかメモリに書けない(使える命令に制限あり)
そうみたいやね。出来るかどうか判らないんだけど、
1. bar[63:32]=0xAAAA * 0xCCCC; を実行
・この時、アキュムレータ‘書き戻し’機能で上位16bitをメモリへ(丸めたものってなんや?)
2. 左16bitシフト実行
3. bar[47:16]+=0xAAAA * 0xDDDD; を実行
4. bar[47:16]+=0xBBBB * 0xCCCC; を実行
・この時、アキュムレータ‘書き戻し’機能で上位16bitをメモリへ(丸めたものってなんや?)
5. 左16bitシフト実行
6. bar[31:0]+=0xBBBB * 0xDDDD; を実行
桁上り処理や、「丸め」処理の回避を無視しても、6クロック必要?
桁上り処理追加したら、Cortex-M3に負けそう orz
そんな馬鹿な話しはねぇ〜だろうに???
>>659 エラーメッセージくらい読めるだろ
pic.h が見つからないって書いてあるぞ
開発環境のマニュアルとチップのデータシートくらい全部読めよ
>>664 ヒント
#include <main.h>
#int_RTCC
#define longpush 1220
#define halfpush 610
long tmp_long=0,tmp_mid=0;
int old=0,pushed=0,;
void RTCC_isr(void) //819.2 us 1220 loops
{
if(halfpush > 0){
halfpush--;
}
if(!input(PIN_A0)){
if(old !=0){
if(pushed != 0){
if(halfpush > 0){
}
tmp_mid = halfpush;
pushed = 1;
}
}else{
old = 1;
}
}else{
old = 0;
pushed = 0;
}
}
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
setup_ccp1(CCP_OFF);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
//TODO: User Code
}
あ、ヒントだけ出して修正しようとしたら、
不完全なソースを貼ってしまった。GoBack
>>665 は動かないのでよろしく。
ヒントとして、タイマ割り込み使えと言いたかっただけ。
割り込み使わないなら 発振周波数/4 クロック数えてやってくれ
(20Mで 5,000,000クロック)
>>663 codepadってPICのプログラムもコンパイルできんの?
あとでAVRもためしてみよう。
>>662 16bitのDSPと32bitのCPUで32bitの演算させたら負けても仕方なかろうに
HI-TECHだな。
まさか、codepad上で動かないって言ってるわけじゃないでしょ?
そのまさか
というかプログラム例を提示していただければ…
>>672 例は書いてくれたんだから少しは自分で考えたら?
じゃあ答えを教えてやる。 #include<pic.h> さすがにあとは自分でやれ。
>666 後半 数えてるだけだったら、長押しじゃなくボタン連射でもクリアしちゃいそうだ。 連打ではなく長押しだけクリアにしないと誤答になる、のでは?
HI-TECH C の場合 #include <pic.h> #define _XTAL_FREQ 8000000 // __delay_us __delay_us_ms を使うための定数。動作クロックを Hz 単位でセット pic.h を参照 __CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT); // コンフィギュレーションワードの設定(例) const unsigned char led[10]={0x14,0x77,0x4C,0x45,0x27,0x85,0xA4,0x17,0x04,0x07}; void main(void) { unsigned char count=0,time1=0,time2=0; bit start=0; TRISA=0x01; TRISB=0x00; PORTA=0x00; while(1) { __delay_ms(100); if(RA==0) // 押されているとき { if(time1>10) // 1秒以上押された { count=0; // カウンタクリア start=0; // カウント停止 } if(time1<100) time1++; // 100以上にしない(桁あふれしないように) if(time2<5) // 前回押されてから0.5秒以内 { start=~start; // フラグ反転 } } else // 押されていないとき { time1=0; if(time2<100) time2++; } PORTB=led[count/10]; if(start==1) { count++; // 0.1秒で1増える if(count>99) count=0; } } } どうよ?テストはしていない
time2のクリア忘れてるなw フラグ反転の閉じカッコの後あたりに time2=0;を追加 あと、100ms間隔だと長すぎるか
10ms位の周期で動かして状態遷移でやれば完璧
679 :
774ワット発電中さん :2011/06/21(火) 02:38:35.29 ID:uR1Fx4lT
この程度の解答を自信満々で書き込む馬鹿は 自分が何してるか知ってるのか? 馬鹿が馬鹿を育てている あぁ嘆かわしい
タイミング取るのにdelay_msみたいなのを使ったらペケ
681 :
忍法帖【Lv=7,xxxP】 :2011/06/21(火) 04:52:53.64 ID:MxEf0bM3
>>679 ここでプログラムコードを聞いちゃう時点で馬鹿なんじゃない?
馬鹿じゃない奴は自分で考えるって。
なので、解答を書き込んでも、書き込まなくても結果は同じ。
嘆く必要は無いよ。
↑みたいな処理するとき、ただひたすら1ms周期で変数をインクリメントするだけのタイマ割り込み 使って、メインルーチンではその変数を参照してるんだけど、他にいい方法ある?
教えてください。 ハードUARTモジュール無しのPICで、内蔵4MHz OSCで 1msのタイマー割込を駆動しながら、ソフトウェアUARTで9600bpsのRS232の送信をしていますが、 送信文字が化けます。 この原因は、ソフトウェアUART処理中にタイマー割込が入り、 UARTの時間管理がボロボロになるから、だと思っています。 この場合の解決策は、ありますでしょうか? ・HardWareUART付きのPICに変更する→出来ないんです。 ・通信レートをめちゃくちゃ遅くする→これも相手がいるので、出来ないんです ・クロックをめちゃくちゃ速くする→出来ないですよね ・タイマー割込の中で送信する。→104us×10bit=1.04msで、時間不足。出来ないんです。 困りました。
ハードUARTが無いソフト処理の実態が理解できない。 特定のポートを送信と受信の2ビットで利用して それを監視してソフト的にシリアル送受信を実現してるって事か?
>>684 8pinPICを外付けしてシリアル送信専用にするとか。
ソフトを組む能力が無いならハードでなんとかするのが楽。
>>684 スタートbit送信から8bit転送完了までは割り込み禁止とする。
ストップbitは長くなってもいいのでこの間は割り込み許可。
104us x9bit < 1ms なので1ms割り込みもこぼさず実行できそうです。
688 :
774ワット発電中さん :2011/06/21(火) 13:41:03.36 ID:O+SKcsKy
基本設計がわるい。あきらめる。
つうか、シリアル通信をソフトでやるなんて、どこのゲームボーイだよw あれだってシリパラ変換くらいハードでやってるぜw シリアルデータの監視だけでCPUの時間的資源全部使い果たすような設計じゃ 何も出来ないだろw
通信中は割り込み禁止にするしかないだろ それで不都合あるならUART付きを使う 16C84の頃はソフトでシリアル通信やったけど 今ならUART付きを使えばいいじゃん
691 :
774ワット発電中さん :2011/06/21(火) 15:11:01.96 ID:O+SKcsKy
1.割り込みを100usにしてシリアル送信。10000bpsになるが4.2%の誤差なの で何とかなる。1msの処理は割り込みを10回カウントして実行。 2.割り込みを104usにしてシリアル送信。10回カウントして1.04ms周期 で実行。 4MHzで100usの割り込みだと100ステップ分くらいしかないから処理 が間に合わなけれ100usの割り込み処理を適当に分散。
>>684 です
みなさん、どうもありがとうございます。
ニッチもさっちもいかなくて困っていました。
>>687 ,690の、割込禁止にする方法
STOP bitの時は割込OKというのに気づきませんでした。
RS232C送信開始は、こちらの都合で出来るので、なんとかなる気がしてきました。
>>691 の割込時間を調整する方法
100usの割込み、すばらしいですね。ちょっとやってみます。
既存のマイコンの載った基板の機能拡張は、つらいです。
どうもありがとうございました。
仕事かよ。レベル低っw
>10000bpsになるが4.2%の誤差なの で何とかなる。 つながる相手が明白で、そちらにボーレート誤差がないとすれば 「何とかなる」値だけど >内蔵4MHz OSCで 内蔵OSCの誤差を考えると・・・・・・・・・・
無謀なことをしてる自覚さえないのか?
おれなら1msタイマーの方を犠牲にするかな 通信できる方が重要だろう 内蔵クロックじゃちゃんと1msなわけもないし
ピン互換にする小基板作ってUART付きPIC乗せたら駄目なの?
ストップビットを2(1.5)ビットにすると相手側の文字化けは少なくなるかも ダメもとで出来るのはこれぐらいか
ゴミみたいな仕事だなぁ・・・
とニート君が申しております。
タイマ割り込みを使わず、一回当たりの実行時間が1msになるようにして、 適切なタイミングでUARTの制御を行い、残りで他の処理をやる方法も考えられる。 12bitコアのPICでは割り込みがないので、これに似た方法は使ったことがある。
ループを用いる問題でintで変数宣言したらできなかったのに、doubleで変数宣言したらできました。 何故なのか教えて下さい。
>>702 まず、日本語の勉強からやり直せ
その次に、使っているコンパイラの仕様書を読め
A V Rスレに投げてきた 奴らはソフトウェアで作るのが生業だから すぐに何らかの成果を上げてくれると思う
これは、軽先生とかkaw(ryとかいう糞コテの荒らし投稿だろ。 さあ叩いてくれと言わんばかりだなぁ
Double型で0.000001を 発信周波数(INTOSC) ÷ 4 回実行したら、ちょうど1になるね。 いいアイデアだから、それで1秒数えなよw
丸め誤差、桁落ちとかあって少しずれるけど、 内蔵RCだと、所詮そんなモンでしょ 内蔵RCって精度を求める通信って、kawanaもびっくりだね。
>>702 8bitマイコンでのintは、short intになるので lop=65536はオーバーフロです。
710 :
709 :2011/06/21(火) 22:29:32.84 ID:VFys0zUm
signed intなので lop=32768以上がオーバーフローでした。
HI-TECH C向けの参考書でも include <pic.h> と書いて有るものと include <htc.h> と書いてるものがあります。 これって、バージョンの差とかでしょうか? どちらでもいいのでしょうか?
え、ヘッダーの中身も見ないの?
参考書のソースなんて、コンパイル通るかも保証無いだろw
charがデフォでunsignedでintはsignedなのは、気持ち悪いけど楽でいい
htc.hを「日立」って読んでる人ほかにいますか?
716 :
774ワット発電中さん :2011/06/22(水) 13:58:03.25 ID:QmcicNgw
アドバイスください。 picライターを探していたところpicstart plus はあったものの、 acアダプターが見つかりません。このライターを使えるようにする 方法ってありますか
>>716 ACアダプターなんて電圧合ってりゃ何でも使えるだろw
極性や端子違うなら変換アダプタでも作ればいいし
そのくらいの事でこのスレに書き込むなんて、先が思いやられるなw
まぁまぁw もうちょっと調べる力をつける必要があるとは思うけど最初はみんな初心者なんだからさ。
>>716 手元にPICSTARTPLUSのアダプターあるけど
9V 0.75Aって書いてあるので似たようなアダプター探そう
PICkit2買えよ
>715 ちょ はい・てく・C って事だろうに? >717 供給できる電流の大きさもチェックが必要だ。 あと、一部のACアダプタは平滑化が不十分な事があるから要注意 今は少ないだろうけど、昔は時々あったはず。
ったく
>>717 は 先輩風びゅーびゅーだもんな、偉そうに。
自分だってそういう時期はあっただろうに。
感じ悪いやつ。
俺はACアダプタとっかえひっかえくらい小学生の頃からやってた
50msecってどれくらいの時間なんですか? 具体的に教えて下さい
>>724 一般相対性理論だと光は149896.2m進む
ぶっちゃけ150km
高橋名人の16連打が平均62.5msだから、それよりちょっと速いぐらい
陸上のウサイン・ボルトだったら50cmくらい進むだろ。
なんなんだこのアカデミックな展開は
俺ならメシ3杯半食い終わるくらいだ。
地球を7周半くらい。
734 :
のうし :2011/06/23(木) 06:38:16.13 ID:VQxt9bCK
早口で『だるまさんがころんだ』の『ん』か『ろ』を発声してる間くらい。
実家に帰ります!って飛び出してった光が未だに帰ってこないんですが・・・・
どっかで反射しないかぎり帰って来ないんだろうな・・・おつかれ。
738 :
734 :2011/06/23(木) 08:33:46.95 ID:VQxt9bCK
パン!と手を叩いて10mくらい先にある壁に当たって、跳ね返って来たこだまの間の時間。
そんな奴おれへんやろ〜
>>724 > 50msecってどれくらいの時間なんですか?
マジレスすると、人間が感知できる最小時間が10ms。
50ms間隔で制御すると、反応が鈍い印象を与える。
別解、スイッチのチャタリングが止まるのを待つには、大抵充分な時間。
映画のコマが秒間24コマで、変化を検地するにはその倍の秒間48回前後で処理すりゃいいんじゃね? 秒間50回即ち20msインターバルくらいで あ、TVだと秒間30コマで倍だと60回だから16msかそのくらい。 まあ、10msでサンプリングしてりゃたいていのキー操作は拾えると思っていいな。
742 :
738 :2011/06/23(木) 13:45:32.12 ID:VQxt9bCK
マブチなんかのブラシはもっと早いスイッチングしてるな。 『機械接点式』インバーター、ってか?
>>741 > あ、TVだと秒間30コマで倍だと60回だから16msかそのくらい。
うん?それはアナログの話で、地デジたと60回じゃなかったっけ?
2倍速との違いも目で分かるな。
50msが遅い時間なのは実感出来るだろう。
すみません。教えて下さい。 20ピンPICの足全てを出力設定(できるピンに限る)して各ポート全てにLEDをつないで全点灯させたい場合、抵抗はどれくらい必要ですか?
>>743 アナログも地デジも、毎秒29.97フレームを半分ずつ二回に分けて送信してる
結果として、半分の解像度で毎秒約60フレームになってる
>744 1ポート合計200mAで1ポート8ピンだから1ピンあたり25mA 後は計算しろ。
>>744 質問があいまいだけど
A.20ピンPICの足全てを出力設定
PIC16F631,677,685,687,689,690はVdd,Vss,MCLR以外の17本が使える。
PIC18F14K50はVUSBも使えないので出力は16本。
B.電流
>>747 さんの条件以外にも
パッケージ電力:800mW
供給電流: Vdd=250mA, Vss=300mA といった最大制限があるよ。
250mA/17本=各14.7mAしか流せられない。
C.全点灯させたい
ひっかけ問題かい?
個別点灯でない全点灯なら抵抗は共通化して1個にできる。
PICを使う意味がないし、間違って1個のみ点灯させると250mAがそのポート・LEDに流れて壊れるけどね。
>>748 > B.電流
シンクとソースに振り分ければよいのでは。
そんなこと考えたこと無かったから本当に問題ないかは知らんが。
> C.全点灯させたい
> 抵抗は共通化して1個にできる。
さらりととんでもない事を書かないでください。
750 :
748 :2011/06/24(金) 02:27:36.25 ID:34InyUeq
>>749 補足ありがとうございます。
基本的な事を説明するため省略しましたが
H点灯とL点灯に分けるのはアリだと思います。
ぶっちゃけ最近の高輝度LEDは数mAも流せば眩しい位に光る 昔は5V系ロジックの出力にLED付けるときはちょこっと計算して 300Ωとか付けてた覚えあるけど、適当に1kΩでもいれとけば良いみたい 色でVF変わるとか何も考えなくても気にしないw
このスレ、
>>748 みたいなのが多い
だから他のスレ住人にバカにされる
絶対最大定格に対してはディレーティングしろよ
>>748 > PIC16F631,677,685,687,689,690はVdd,Vss,MCLR以外の17本が使える。
> PIC18F14K50はVUSBも使えないので出力は16本。
それなら、マトリックスにしてダイナミック点灯にすれば、64個のLEDを付けられるな。
>>753 趣味の工作で絶対定格は目安でしかないなw
>>755 絶対定格を超えた使い方するのは小学生か中国人w
ディレーティングという言葉が和製英語な気がしてならない
最近の高輝度LEDはほんと明るいよね
電源3.3Vで10kΩでも十分明るかった
>>744
>>755 PICのポートで70mAをLEDに流してダイナミックドライブしていた人がいたなぁ
760 :
忍法帖【Lv=9,xxxP】 :2011/06/24(金) 20:52:07.20 ID:lZNUR/K2
>>754 ダイナミックOKなら、16本で240個使える。
ちょっと無理すれば、272個までいける。
>>759 実測?
室温だと、「Low出力で3V」ぐらいになりそうだけど。
>>761 > ちょっと無理すれば、272個までいける。
どういうロジック? 興味ある
763 :
744 :2011/06/24(金) 23:20:28.41 ID:OmZgt2ly
みなさん回答ありがとうございます。 それでは単純に、抵抗値は1KΩを17個(出力17ピンとして)入れれば全点灯させても問題ないという認識で良いですか?
pic.h と htc.h の違いを教えて下さい
>>763 電源電圧と使用するLEDのVF(順方向電圧)による。
>>764 中身はどうなってるの?
一目瞭然だとおもうけどね
ロジックICの164とかでシリアルで出すとか、154で選択するとかそうやればI/O少ないPICでも出力は幾らでも増やせるぞ。 ま、200円未満のPICに100円程度のロジックIC付けるってのもアホらしいがw
ダイナミック点灯させたいんですが、どなたか参考にしたいのでプログラムをお願いします。
772 :
774ワット発電中さん :2011/06/25(土) 15:52:35.81 ID:JIEtMSaI
こういう奴は何がしたいんだろうな? ハードの構成がそのまんまプログラムに影響しちゃうのに それを無視してプログラムだけ見てもしゃあないだろw
>>761 > ダイナミックOKなら、16本で240個使える。
16本の組み合わせが120通り。逆に取り付けて240個か?
それならどう転んでも半分は点灯してしまい、ダメでねぇ〜の?
>>770 > ま、200円未満のPICに100円程度のロジックIC付けるってのもアホらしいがw
PIC16の20ピンは200円未満で買えないし、ロジックICはそんなに高くない。
>>771 「PIC ダイナミック点灯」
ググれば一発なのに、なぜ聞く?
親切なばかを捕まえようと思ってだろ。
すいません 点滅パターンを教えて下さい 1桁目のセグメントから4桁目まで順に点灯させればいんでしょうか?
何言ってんだこいつ。 順番に点灯させないでどうやって点灯させるつもりなんだろ?
実際にやってみりゃいいのにね・・・ 壊れる訳でもなし
同時に全部ONにしてトランジスタ焼いた事はあるw
Microchip Solutions v2010-10-19 の usb_function_cdc.c にある putsUSBUSART(char *data) ってlenの計算が変で終端 '\0' まで 送ってるんだけどこれってバグなんじゃ…?
>>780 仕様です
お気に召しませんでしたらお客様ご自身でソース書き換えろ
1文字送りならBUGかもと思ったけど、文字列送ってるなら仕様だろ。
>773 >PIC16の20ピンは200円未満で買えないし、ロジックICはそんなに高くない。 テンプレ >3,4 見て ただI/O欲しいだけなら 秋月20ピンの最安値は16F677 \170 (VDD,VSS,MCLR除く17本がI/Oとして使える) 40ピンの16F1937 \170(VDDx2,VSSx2,MCLR除く35本がI/Oとして使える) 28ピンで16F57なら\100(I/O20本,内蔵クロック無しだけど)
>>781-782 すんまそん、よくみたら関数のコメントに書いてた
「putsUSBUSART writes a string of data to the USB including the null character. 」
シリアルで 文字列 + '\0' 送られても俺的に邪魔なだけなんだけど…
受信側PCで '\0' 無視して文字列くっ付ける処理入れることにする
プログラムで制御するようにしたいのですが、調べてもなかったんです お願いします!わからないんです
>>788 GaNじゃないやつで、無抵抗になすがままにさせたら、100mA近くいけないかね?
となれば0.4mA相当。半分でも、砲丸を正面からなら、十分見えると思う。
一発40μsぐらいで抑えれば、チラつきもなさそう。4MHzでいける。
がんがれ!
>>789 お前が女なら●●●させてくれたら教えてやる
お前が男なら1000万円出せば教えてやる
以上
TB029の方法は1+2+...+15+16=136。LED逆方向並列でx2=272個。 240個は16x15でマトリックスかな。ラッチ用のICかPICが必要。
>>792 > TB029の方法は1+2+...+15+16=136。
計算、間違えてないか?
16ポートの最初のポートに接続出来るのは15通り。
次のは14通り…
つまり、15+14+ … +1は何通りだ?
795 :
792 :2011/06/25(土) 21:00:15.90 ID:SRjhfwTd
17ポートで考えていました。 16ポートなら120通りでLED240個ですね。
>>795 了解
272個ってのは17ポートって事か。いい勉強になった。
>790 PICのI/Oピンが持たないでしょ。 昔のデータシートにはVOH vs IOHが載ってて25mAも流すとTypでVOHは2.7V位(@VDD=5V) グラフの外だけどおそらく30mA位で2V位、LEDのVf考えるとこの位が限界じゃないか 絶対定格超えてるから、一発で壊れるかもしれないけど
>>797 >>761 にも書いたけど、25℃で70mAだと3Vぐらいになってた。
なんかヒソカに良くなってて、もうちょっといけるようになってるかなぁ、と
無謀な希望を含めて書いてみた。
> 絶対定格超えてるから、一発で壊れるかもしれないけど
基本的に流れ過ぎで死にそうになると収まるってのがCMOSでしょ。
流れないことはあっても、ピンが持たないことはないと思う。
長期の信頼性は別にして。
>>796 >>761 に関していえば違う。
俺の前を走ってたVOLVOのライトバンみたいのテールランプがダイナミック なのかパルス点灯なのか視線を動かすと点々になって見づらかったよ。
> (もう、どうでもいいけど) そんなに難しかったのかw
>>800 そこでVOLVOと浮き出てきたら「やるな」って感じなんだが・・・
803 :
774ワット発電中さん :2011/06/26(日) 00:29:32.32 ID:f1Qx0Ew/
>771 いっそ、ダイナミック点灯させるLEDドライバIC買ってきて、 PICからシリアル通信でデータを送ってみたらいいんじゃない? ものによってはパラレル通信のこともあるが。 一つのドライバICで64個までのLEDを扱えるのが多かったんだっけ?
>>801 底が見えたからね。
大方、16本で点ける240個に電源とグランド間の36個を加えて272個ってとこだろ?
すみません、質問があります 16F84Aのデータシートにはピンに流せる最大電流は25mAとなっていると思うのですが、 それは16F84Aの最大動作電圧の5.5Vの時に1つのピンからoutする場合に25mAであって 2つ以上outすると電流は減るという認識でよろしいのでしょうか? 英語があまり得意ではないので、データシートを読み違えていましたらその点も指摘していただけるとうれしいです
一本でも2本でも同じ。 それぞれMax 25mA ただし、それとは別にMaximum current sunk/sourced by PORTA/Bだとか Maximum current out of VSS/into VDD pinだとかの制限もあるから、 その全ての制限範囲内で使う必要はある 25mA×13本とかは_
16F84なんて化石みたいなの使う必然性って何?
>>807 個人の好みじゃね?
いまだにZ80とか8085使ってる人もいるしね
809 :
774ワット発電中さん :2011/06/26(日) 07:13:01.76 ID:MjLxAhI0
しかしあれだな LEDネタだと、食い付きが違うな
ライターの話しかできなかった連中が少し成長したって事だよ。
思わず書いてみたくなったw
>>807 個人の好みじゃね?
いまだに高くて遅いPICとかAVR使ってる人もいるしね
>>805 > それは16F84Aの最大動作電圧の5.5Vの時に1つのピンからoutする場合に25mAであって
> 2つ以上outすると電流は減るという認識でよろしいのでしょうか?
FIGURE 10-13: TYPICAL, MINIMUM AND MAXIMUM VOH vs. IOH (VDD = 5V, -40℃ TO +125℃)を見てみな。
それ以前に、25mAも引っ張ったらピン電圧は最悪0.5Vまで低下する。
そもそも絶対最大定格ってのは、5.5Vと25mAの両方を保証するもんじゃない。
どれか一つでも超えてはならない絶対な定格。
考え方が間違っている。
>>807 教科書と同じPIC以外は使えない輩
新規設計で16F877使う馬鹿とかその類でしょう
>>812 IOH、結構弱いなw IOLの1/3かよ。気にしたことなかった。
>>813 > 教科書と同じPIC以外は使えない輩
初めてでは、不確定要素をなるべく排す意味はある。
ずっとそればっかだとアレだけれども。
>>811 >いまだに高くて遅いPICとかAVR使ってる人もいるしね
AVRを一緒にしないでくれる?
PIC厨は「トロくても好き」だから使ってるんだろ?
仕事じゃないし、数十円違った所で気にしない
>>806 >>812 考え方を間違っていました ありがとうございます。てっきり5.5Vかければ25mAが流れるものだとばっかり思ってました
>>807 wikiにもっとも基本的なモデルと書いてありましたので16F84Aにしました
みなさん本当にありがとうございました
>>816 > 数十円違った所で気にしない
ねぇ、本気で数十円の違いだと思ってるの?
単位を一桁間違えてない?
〃∩ ∧_∧ ⊂⌒( ・ω・) はいはいあーむあーむ `ヽ_っ⌒/⌒c ⌒ ⌒
>>811 PICが16Fシリーズしか無いと思ってるか、それしか使えないか、AVRとかそれ以外使えても
PICと比較して速度なんか体感できないプログラムしか組めないくせにw
絶対教えない。
823 :
774ワット発電中さん :2011/06/26(日) 20:04:14.03 ID:13fuUo6g
>>820 でもPIC使いの多くは16Fユーザなんじゃない?
24Fとか始めちゃうと品種が充実してるAVRに移行する人も多そうだけど?
24に飽きたらDSPICが便利。
>>821 たかだか8MIPSのマイコンに、150円も払うの?
150円もあれば、45MIPSのマイコンが手に入るご時世に?
>>820 まぁ、そう突っかかるなよw
俺は単に知りたいだけなんだ、何故ここの住人は、高くて遅くてエラッタが多くてコンパイラがボロボロなPICを使うのか?って事を。
>825 なんだよ >811,818で偉そうに言ってた割に結局、でまかせかよw
>>826 まぁ、そう貶すなよw
俺も単に知りたいだけなんだ。おまいが使ってる安くてエラッタが少なくてコンパイラが優れたマイコンがどういうものかって事を。
「高くて遅い」AVR厨がきましたよーーオレは速度には満足してるけど・・・ PICの人たちも45MIPSも要らない人がほとんどじゃないの? 昔、SXとかいう50MIPSのPIC互換チップ売ってたけど、廃れたし
じゃあ安ければ4bitマイコン(ただしA/Dは10bitくれ)でも可な8bitPIC使いが追撃をw ARMも安いのがあるみたいだけど、どうせならこれでどうよとgdgdと薀蓄垂れてくれればいいのに。 ARMスレでとりあえずLPC1111が安いらしいと見て、データシート見たがまあまあだね。 個人的にはLQFP48でA/D8本って少なすぎなんだが、GPIO合計42ならまあいいんじゃないの? しかしデジキーで@200円ぐらいしているからなぁ。 すでにこの時点で、16Fでデータ取ってLCDでドンなひとにはぎりぎりなんじゃないかな。 グラフィック液晶+タッチパネルじゃないとダメとか、高速通信するとか言わない限りは速度側は問題ないかと。
〃∩ ∧_∧ ⊂⌒( ・ω・) DIPかSOPあればなんでもいいよ `ヽ_っ⌒/⌒c ⌒ ⌒
日をまたいだところで、また来るんだろうな>ARMな人 どうせなら「ワンチップマイコン総合」みたいなスレ立てて 各チップの比較や格安なchipの情報書いてくれれば役に立つだろうに。 実際はただの「かまってちゃん」だろうな、ARMスレ自体は1週間以上 誰も書き込み無いし
だいたいZ80で間に合ってたけど消費電力低いからPICって人は 俺以外にも結構いると思う
4ビット〜16ビットで長いことマイコン屋やってたけど、やりたいことが出来るならチップなんてどれでもいいや。 だけど、自分の趣味で選べるならスッキリしたヤツがいいなぁ。 PICもちょっと触ってみた感じではスッキリしてないけど、安いのと8ピンとか6ピンとかがメリットかな。 ハードロジックで組むのが面倒な簡単な回路をチョイチョイっと組むのに向いてる感じ。 高機能な制御用にはもうちょっとマシなアーキテクチャを選びたい。
>>830 あればあったで欲しいさ。
同じ価格で(秋月で)買えて、同じライタで書けるなら。
人気と性能は比例しない 阪神ファンを見てると良くわかる
>>825 むしろ150円で8MIPSも有るのかよ。
1990年ごろPC−9801RAが本体のみ約50万、モニタとプリンタ入れて80万ほどしたけど、8MIPSだったんだよな。
> 1990年ごろPC−9801RAが本体のみ約50万、モニタとプリンタ入れて80万ほどしたけど、8MIPSだったんだよな。 9801の歴史は知らんが、'90で8MIPSが間違いなのはわかる。
'90なら386全盛 486で33MHzくらい
自分としては、ホビー用途だからブレッドボードやユニバーサル基板で 気軽に試せるDIP品が在るのはありがたい。 QFP48ピンじゃチップ単体が安くても変換基板や基板作成が必要と コストも技術的にもハードルが高くなる。 そもそもI/Oピンを40ピン以上必要とか、速度も40MIPS必要なんて用途が そうそうあるわけでもなく、たまにしか使わないなら高くてもいいよ。 それより気軽に使えるDIP8ピンが\100程度で買える事が重要 仕事でバリバリやってる人には、その程度と鼻で笑うんだろうけど しょせん趣味(お遊び)だし。
パ○○コの裏ハーネスに6ピンPIC使って数千万稼ぐ奴もいるんだぞw
>>843 四号機の頃は設定判別期でボロ儲けできたんだけどなぁ
作ってよし、売ってよし
PS2のMODチップとかモナー
>>831 > しかしデジキーで@200円ぐらいしているからなぁ。
アブネットで$0.9028だから、お取り寄せで75円かな。
>>838 > むしろ150円で8MIPSも有るのかよ。
8bitで8MIPSと、16/32bitの8MIPSとを同じに考えてはいかんだろ?JK
まぁ、結論から言えばマイコンだろうが何だろうが自分に合ったもの使えばいいだけだろ 商売でも遊びでもPICでこと足りるなら他人がとやかく言うもんでもないし ID:FrgPU0TmとID:RE/VJdflとID:pO9D4bu7みたいな、大してスキルも高くないくせに スペックばかり拘るスペック厨みたいなのは何やっても中途半端だと思うよ 仕事も遊びもね
AVR信者って必ずPICのスレにいるよね いやなら来なきゃいいのに
アンチPICなだけで、AVR信者ではないからだよ なぜアンチになったかは不明だけどw
850 :
774ワット発電中さん :2011/06/27(月) 06:21:02.25 ID:hrWLClGM
ARM馬鹿といい PICの人気が許せないだけ ブスなのにモテル女に嫉妬してるキモ女みたいだな ブスは三日で慣れるのにね
まぁ、結論から言えばマイコンだろうが何だろうが自分に合ったもの使えばいいだけだろ 商売でも遊びでもAVRでこと足りるなら他人がとやかく言うもんでもないし 大してスキルも高くないくせに スペックばかり拘るスペック厨みたいなのは何やっても中途半端だと思うよ 仕事も遊びもね
852 :
774ワット発電中さん :2011/06/27(月) 08:50:23.24 ID:9lfX7i5K
ARM信者/AVR信者はしょせん性能厨なんだ コード効率の悪さとかプログラムのやりにくさとか速度の遅さをバカにしてるけど それでもPICで十分な事が多いから使ってるのにね
854 :
774ワット発電中さん :2011/06/27(月) 10:00:57.52 ID:r/SmxKQL
dsPICとか24Fとかあるのは知ってるけどPICといえば12Fか16Fって印象だな。 16F以下と18F以上を別スレッドにわけるとか。おれプログラマを自作して12F675,683 と16F84,88の4タイプしか書き込みできないから今のところ他の系列を使う予定が ないんだよね。結局低レベルPICでできる内容ならそれでいいんじゃない。 ARMだのAVRだの言わなくてもさ。他社ブランドのマイコンもいくつかもってるけどPIC以外で 使ってるのはルネサスだけ。でも俺の場合ほとんどの場合16F88で十分だったりする。 うまく使い分けるのが上級者、PIC使い馬鹿にするようなARM使いもたいしたことない。
24Fも5Vなら使ったんだけどなぁ3.3Vはちょっと面倒だ
でも今はいろんなデバイスが3.3Vに移行してるのが現実だよ。
FETの直接駆動がやりづらくなるから困るんだよ。
>>854 PIC使いは馬鹿にしないけれど、全角英数字は馬鹿にする
お前バカだな
パソコン通信時代からやってるオッサンは2バイト文字は通信費の無駄だと未だに思っているみたいだね
オッサンかどうかは分からないけど、本題にケチつけるだけの能力が無い文系なのか 些細な文章のあらしか指摘出来ない奴はよくいる。
ascii-netはカナをみんな半角カナで書く風習があった
全角英数字は見にくいな 正直どっちでもいいけれど、 「全角英数字」でググルと結構嫌われてるなw
そんなもんはフォント依存だ 全角と半角が全く同じ形に表示されるフォントなら見分けは付かない プロポーショナルな癖に1byteと2byteで幅を変える意味の方が判らない
まあ、全角英数字を声高に嫌う奴の発言で碌な内容の物は無いけどな。 そもそも、半角サイズが全角の半分に固定された大昔の貧弱なPCならいざ知らず 今日一般的なグラフィック描画の全角フォントと半角フォントを混用すると統一感に乏しくバランスが悪い。
理系板なので英数字は半角の方がいいなー。 慣習的なものだから、どうでもいいけど
>>866 理系板と半角は関係ないだろw そんな慣習は無い。一部変な奴が居るだけ。
理系は慣習的に記号を使わないなら話は別だが∴
全角とか半角とかは、組版規則の関係からで アカデミックな世界では結構厳しい 最近のPC社会だと、全角使いや半角使いは宗教化してきてる気がするけれど 他社への報告書とか出版物を作成する時に 組版規則と、あまりにもかけ離れた記述してるとうるさく言われるね 箸の持ち方がキチンと出来ないと思われるのと同じ感じ 飯食べるためのツールだろ!とか飯の食い方にケチ付けるな!ババア! とか言うのと同じ
>>868 出版向けなら普通にTeX使うだろ。そもそも今の理系板とは関係ないしw
全角じゃコンパイル通らないしな
数式とかに使った場合に不格好とか考えないのかねw
>>865 全角英数字でいいのは、80年代のアーケードゲーム(スーファミ以前まで)だけ
あの古きよき書体はかえって趣を感じる
>>870 コンパイルとレスのフォントに何か関係が?
コンパイル通るフォントしか使えないならANKでレス書けよ。頭悪すぎwww
文字コードがunicodeへ移行してしまったら、 全角文字も半角文字も一括で2バイトコードになるから、 あとは形の問題だけだよな。 そこまで移行が進みきってない今は、 KIとかKOの文字コードが混ざってバイト数が増える(主に携帯電話で)とか、 文字コード変換ソフトの不具合で文字化けが起きやすい(SJIS半角カナとEUCの変換が特にネック) とか、それなりな不都合はあるが。
そんなことより聞けよ。 PICとあんまり関係ないんだけどよ。 入出力3.3Vって秋月にあるような5V駆動のセンサと相性悪くね? 何かロジックICなんかで5Vのフルスイングを3.3Vに対応させてくれるようなものはないんですかね? XBeeを挟んでの通信を考えたときに、ついでにXBeeのアナログも使おうぜとか思った俺はこう感じた。 普通は3.3V駆動のセンサを使うんだろうけど、PICにあわせて5Vにしたいんだよね。
>>874 ロジックもあるけど5Vが入力出来る3.3VのPICもある
>>874 入力は5vでも問題なし。出力もオープンドレインにすれば5vでプルアップ可能。
>>877 出力はそのまま直結で大抵大丈夫。
そもそも中途半端な3.3Vの電源電圧ってのはその為の物だからな。
煽り文句無視で回答するお前らに全俺が記憶とびそうな勢いで安ウイスキーストレートで一気飲みできそう。 >875 5Vレトラントって聞いたことあるけど、もしかして5V駆動のPICと同じようにA/D取れるのかな…。 >876 いや…3.3Vぐらいが上限のセンサしか使えなくなるじゃないか。不便だろ。 >878 え、まじ? …い、いや回答はいいんだ、おれ全部調べてくる。 データシート見てくる。 それから…スレ覗くから。じゃ、じゃあ…。
以前ダイナミック点灯の件で相談した者です。 無事完成させることができました。ありがとうございました。
470Ωと910Ωで分圧すると3.3Vってのはダメ? 容量でちょっと遅くなるけどw
>>879 安ウイスキーは止めとけ。スピリタスか泡盛のストレートをオヌヌメする。
俺はそれも卒業したけどな。アルコールは脳を萎縮させる。20年後に後悔するぞ。
pic24fを使うために勉強したいのですが 初心者でもわかりやすい本はありませんか?
>>832 > DIPかSOPあればなんでもいいよ
>>834 > だいたいZ80で間に合ってたけど消費電力低いからPICって人は
>>842 > 気軽に試せるDIP品が在るのはありがたい。
> それより気軽に使えるDIP8ピンが\100程度で買える事が重要
それならMSP430でいいやん。
DIPがあって、より低消費電力で、PICよりも安い。
>>852 > それでもPICで十分な事が多いから使ってるのにね
それならより安く作る事を考えたら?
ただでさえ、人件費が高い国なんだからさ。
なんで現状で満足するんだか…。
>>856 >でも今はいろんなデバイスが3.3Vに移行してるのが現実だよ。
その認識、5年は遅れてる。
今や 2.5V CMOSが当たり前。
>>878 > 出力はそのまま直結で大抵大丈夫。
vIHは大抵Vcc×0.7って事を知らんの?
>886 でDIP8ピンのMSP430を\100以下でどこで買えるの? そもそもDIP8ピンが存在するの? 安いというなら どこで売ってるのか書かなきゃ意味がないだろ。 おまえのお花畑 脳内だけじゃ誰も買えないよ。
MSP430って昔あったMega8ってのをターゲットに設計されたんだろ? 当時、コード効率とベンチマークは少し遅いけど 圧倒的な超低消費電力がウリとか聞いた
馬鹿は自分以外は全部間違ってると思ってるから全レスする かまっちゃダメ
>>886 大抵VIHはTTLに合わせて2.0Vじゃまいか?
74HC除く。
>878 そういや。 3.3V出力のCMOSレベルの出力信号は、 5VのTTLレベルの入力端子と直結できる CMOS信号の閾値とTTL信号の閾値の違いがあって、 3.3VのCMOS入出力と5VのTTL入出力の閾値は同等だったんだよな? でも5VのほうのICもCMOSだと直結は無理くね?
>>853 情報ソース、古過ぎ。Cortex-M0登場以前やないけw
>>885 > pic24fを使うために勉強したいのですが
PICは消えゆくマイコン。今からは止めたほうがいい。
>>892 HCTならね。が、CMOSレベルとTTLレベルなら、一般的なのはCMOSレベル JK
>>894 > でも5VのほうのICもCMOSだと直結は無理くね?
その通り。「大抵大丈夫」で設計されたらかなわん。
>>752 > だから他のスレ住人にバカにされる
これ、思い出すと今の俺の気持(ry
>897 おまえ日本語理解できるの? 14ピンだろそれは >897 >でDIP8ピンのMSP430を\100以下でどこで買えるの? そもそもDIP8ピンが存在するの?
単純なI/OだとTTLレベルだけどシリアルポートなどに設定するとシュミット になってしまうために、5V電源のPICと3.3V電源のCMOSが直結できないのは 迷惑な仕様。
>>898 残念だったね、まさかDIPなPICより安いマイコンがあるとは!!
しかも安いのにI/Oが多い orz
902 :
774ワット発電中さん :2011/06/28(火) 09:40:38.42 ID:eeKoTfAP
>>900 DIPがあるかどうかももちろん重要だけど、開発環境の準備などさらなる煩雑さがある。
PICでできるのにわざわざ面倒なことをするというのも馬鹿な話。
>>899 2.4GHz無線モジュールなどは低電圧動作が多いね。ICSPで5Vしか
使えない時困る。接続ポートがTTLかSTなのかは要チェックですね。
16F88についての質問です。 開発環境はMPLABでアセンブラ使用。 メモリ使用が0-11b超えるとちゃんと動作しません。メモリ4096byte使えるはずではないかと思うのですが。 原因わかる方、よろしくお願いします。
>>903 ちゃんと動作しないってどうやって判断したの?
状況を詳しく
>>904 プログラムが頭に戻ってしまっているようです。内容はAN3からひっぱったデータをADコンバートして秋月の16x2液晶に表示するシンプルなものです。
ADコンバートしたデータを液晶表示しているだけなら、大丈夫だったのですが。
エラーは、データを計算するルーチンをいれたら発生。
そのルーチンは消さずに、そのルーチンに飛ばないようにしても同じエラーが発生しました。
バンク管理ちゃんとできてる?
>>906 全部アセンブルしても300ワードないのでその辺は気にはしてませんでした。
バンク切り替えはSFRをいじるときしか行っていませんし、必要な情報とったら戻してはいます。
プログラムメモリ側もバンク切り替えして管理したほうがよいのでしょうか?
過去に16F84Aを使用した際は、今回よりも長いコードを書いたのですが、このような問題は発生しなかったので気にもしてませんでした。
わんわんは?
>>907 PCLATHってもんがあってですな、ページ跨ぐCALLやADDWF PCLには気をつけよう
データシートの2.3に書いてある
PIC始めたころは監視犬に噛まれて何度泣いたことか・・・・
>>909 さんくすです
プログラムいじってみます。
912 :
903 :2011/06/28(火) 14:08:13.53 ID:vCa+aWym
>>903 ですが
ADDWF PCLで飛ぶ飛び先がバンクまたいでました。
位置をかえてまたがないようにすると、無事解決しました。
相談にのってくれた方々、ありがとうございました。
913 :
774ワット発電中さん :2011/06/28(火) 14:16:48.13 ID:eeKoTfAP
>>910 ウォッチドッグタイマーのことか?趣味のアプリでは使ったことないな。
みんなは使ってるんだろうか?
>>912 よかったね。1コードページ、1バンクしか使わないアプリならCを使えばそんなトラブルは
起こらないような気がするけどアセンブラでないとだめなのかな。
914 :
903 :2011/06/28(火) 14:25:12.29 ID:vCa+aWym
>>912 昔Z80やMC68000でアセンブラでプログラム組んでたときがあって、アセンブラで直接CPUに命令してる感じが好きだったんです。
なんかその楽しかった思い出をひきずってるだけかもです。
確かにCとかのほうが、楽そうではあるのですが。
>>913 暴走したら困る時に使う。空きエリアはgoto 0で埋めてる。
萌えたり、すぐ直しに行けなかったりする用途には。
>>913 趣味でかつC言語でいじる際には意識しない人が多いな。
配列(特にRETLW)で例外数値が入ると、困ったことになるから、
あるにこしたことはないけど。
仕事ならば、使わなくちゃダメでしょ。
仕様書に特に「使うな!」って記載されているなら、別として
アセンブラだと桁あふれが怖いよね。
PIC厨はAVRとかMSP430とかARMとか色んなプロセッサ嫌ってるんだな 気になるなら一度ぐらい浮気してみりゃ良いのに 本当にPICが良いならすぐに戻ってこれるさ
>>918 筋金入りのPIC厨なら、mbedじゃなくて、PIC32・DSPIC33一択ですな。
仕事がPICで趣味でも。。。っていうなら、そこまで極めるでしょ。
chipKIT-Uno32はスケッチも使えるし。
技術部の人対象のレスだが、ニコニコ技術部のPIC使いは、
Ardiunoをささっと覚えて、作ってみたのソースでも配布すればいいのにw
電気のデの字も知らないデザイナーでもマイコンを触った気分には出来るぞ。
>>918 わざわざPICスレでPIC貶すようなネクラのほうがタチ悪い。
そもそも他人の褌で喧嘩する弱虫が多いのはPICに限った話じゃないさね。
森羅万象ありとあらゆる分野でやってんじゃん。
>>918 >気になるなら一度ぐらい浮気してみりゃ良いのに
それが君の主観だな 正直、気にもなりやしない
それを気になると決め付けてPICスレで必死になっている所が邪魔臭いのな
922 :
774ワット発電中さん :2011/06/29(水) 05:27:05.39 ID:44dHXmbA
>>921 自分のやってる事が一番だと皆に広めたいだけだろ
一番にも関わらず、過疎ってるから納得出来ないだけ
小ピンやDIPが無いから使わないって言ってるの全然聞こうとしない
こういう人間は周りの意見に耳を貸さない
坦々と自分の選択や使ってる物を違う場で自慢をしたがるものなんだよ
多分、先祖代々アホなんだろうねw
>>920 >>922 おまえら筋金入りのPIC厨の頭の中は、天然なのか?
MicroChipや雑誌に、いい様に踊らされているのに気がついて無いのか?
150円PICを2個買う金で、LPC1111なら4個買える。MSP430なら6個買える。これが現実。
裏を返せば、全PIC製品は価格/性能比からして1/3の単価で十分。
PICが安くなって50円になったほうがより嬉しいだろ?
>>922 > 小ピンやDIPが無いから使わないって言ってるの全然聞こうとしない
> こういう人間は周りの意見に耳を貸さない
MSP430には小ピンもDIPもあるって言っているのに、耳を貸さない奴も居るけどなw
>>923-924 はいはい、必要になったら使いますんで余計なおせっかいは無用です。
どうぞ巣にお帰りください。
>>841 150円のPICが8 VAX MIPSもあるわけねーだろ
928 :
774ワット発電中さん :2011/06/29(水) 13:01:42.19 ID:+3YzLjUt
24MHz動作で8MIPSになるんだろうな
すまん32MHzか
まあ。 4クロックで1命令を実行するから32MHzなら8メガ・インストラクション毎秒 という表記自体はウソではないわな。 VAX MIPSでは1未満だろうけど。そもそも8ビットモデルだし。 とはいえ、9801RA(386DXの20MHzだっけ?)だって、8MIPSは無いような気がするが。
931 :
774ワット発電中さん :2011/06/29(水) 13:54:22.35 ID:6ciUS/O/
386DXって内部32ビット、外部バス16ビットっていうのだったかな?MIPS表現で いくらかはわからんけど。16ビットCPUの286ってのがルネサスのH8/3048と 同じ程度の処理能力なのか?
人のスレ来て「お前ら俺の事が気になるだろ? 気にしろよ!!」って、まるで朝鮮人だなおい。
チンコでもしごいてろw
>931 それは386SXだ。DXは32ビットバス。 それぞれのCPUでの実際のMIPS値はDhrystone取らんと分からんだろうけど、 誰か試したヤツはいるんだろうか? PICではベンチが乗るほどのメモリ積んでるのはそれなりに上位のモデルだけか。
picで簡単なサーボモータを動かそうとしているのですが サーボの電源は通電して、信号線にはパルス信号を送らなくても大丈夫ですか? それとも、パルス信号は必ず常時送り続けないといけないものなのですか? ラジコン屋さんに聞いても「そんな事したことないので分からない」といわれ 調べても見つかりませんでした。すみませんアドバイス頂けたらと思います。
937 :
936 :2011/06/29(水) 16:50:32.37 ID:pVV9xpRn
すみません。サーボは初めて使おうと思い、まだ購入していなく、これが出来るのでしたら買って電子工作を考えています、
938 :
774ワット発電中さん :2011/06/29(水) 17:01:38.77 ID:6ciUS/O/
>>936 ラジコン用のサーボということですね。一般に受信機の初期化時にはサーボに電源だけ供給して
パルスはださずにLOレベルのままです。初期化が完了してからパルスを供給し始めます。初期化
にかかる時間は状況によって変わりますが数秒から十数秒のあいだ無信号ということもあります。
パルスがない状態というのでサーボが壊れることはないと思います。(経験上であって保障はできません)
ただし使うサーボに適さないレートのパルスを入力するとサーボが焼損することがよくあります。
>>936 基本的に通電中は信号を絶えず送ること。
どうしても処理中に信号が途絶えるような使い方なら、動作用のPICとサーボ用のPICで並列動作させる
(CPLD,FPGAでも可能)
あと、
タイマ1,2でググってみる
940 :
936 :2011/06/29(水) 19:33:24.61 ID:pVV9xpRn
>>938 >>939 親切なアドバイスありがとうございます。 はい、ラジコン用のサーボモーターです。
やはり、私の考えているような使い方は良くないみたいですね。
実は、picは超初心者でintタイマー処理などまだまだ勉強中でしてこれからこの装置をつくるために勉強する予定です。
実際にやりたい事は、赤外線センサーで感知したら、ハエ叩きの動作のように、棒を2〜3回90度に素振りしたいのです。
それで、どうするかと考えたら、使ったことのないけどサーボモーターが思い浮かんだのです。
普通のモーターのような回転運動ではなく、90度位の往復回転運動が必要だと思いまして。
消費電力を極力控えるため普段はサーボモーターに電源は送らず、センサーが感知したら
メカニカルリレー使ってサーボに電源を供給して
そして、同時にpicにもリレーで電源が入り、サーボモーターにパルス信号を送ろうと考えました。
これって、考え方としてもよくでしょうか?
あなた方はいったいどこでpicの知識や情報を入手しているのですか?
回転運動を変換すりゃいいのに。
>940 そういう急加速急停止な使い方は大抵壊れる。>942の言うとおり回転→往復運動の変換機構作った方がいい。
>>942 >>943 ありがとうございます。 やはり、考え方自体間違っていたみたいですね。
いま、検索で回転運動から、素振り運動を探しているところです。
なかなか、見つからないですね。 うーん、あまりこのような変換運動は需要ないのかな。
それと、ここはpicスレですのでスレ違いになることに気づきました。
どうもすみません。 色々勉強になりしまた。
>944 クランク機構のお世話になった事の無い奴なんかいないんじゃないかな?
でもクランク機構って使ってて情けなくなるよね
>>936 パルスを止めても制御を続けるサーボと、フリーになるのと両方あるよ。
デジタルサーボだとどっちのタイプかはわからん。アナログなら後者。
948 :
936 :2011/06/29(水) 21:59:07.65 ID:pVV9xpRn
あれから、色々考えたのですが、クランク式だと結局は角度の検出など逆に難しくなることが分かりました。
動作終了時には、同じ場所に止まらせることが必要だとか。
なので、picでの工作を目標にすることにしました。
とりあえず、サーボは安いアナログのを注文しましたので明後日辺り届きそうです。
色々いじって、サーボの性質を勉強してみます。
>>947 どうも情報ありがとうございます。 デジタルサーボなんてのもあるんですね。
もっと、いろいろ勉強すればたくさん楽しめそうなので、みなさんがとても羨ましいです。
また、作成中プログラムに躓いたらお世話になりたいと思います。
たくさんの書き込みでスレ消費したことをお詫びいたします。 どうもありがとうございました。
12bitADのPIC、秋葉で扱ってるところあるかな?
>>943 急加速急停止で壊れたらラジコンのステアリングなんかには使えないんじゃね?
>>951 そこにぶら下がる負荷がわからんからな〜
一番簡単で壊れないステッピングモーターでいいんじゃね? 俺だったらそうする
954 :
774ワット発電中さん :2011/06/29(水) 23:59:16.01 ID:jJxn6MYw
>>946 あーなったなぁw (他の人は知らんけど)
サーボとかスッテッピングモータ使えるようになりたいと思ったのがきっかけで
初めて触ったマイコンがPIC16F84-10/Pだった。 十ウン年前
>>939 > 動作用のPICとサーボ用のPICで並列動作させる
馬鹿げた使い方、呆れる…
>>953 > 一番簡単で壊れないステッピングモーターでいいんじゃね?
俺もそうするな。
ステッピングモータって動き遅くて、速く動かすとトルクも少ないイメージがあるけど
960 :
774ワット発電中さん :2011/06/30(木) 08:15:48.17 ID:HRHwvnUe
>>959 脱調というやつだな。適正な条件で使えばということだろう。ただ「一番簡単」かというと
やっぱりサーボでやるのが簡単だろうね。ラジコンヘリのラダー制御などは結構大きな負荷が
かかってるし、それをジャイロで常に高速に動かし続けることに耐えているのだから。
あとドライバー回路とモーター制御のこともマイコンで見てやらないといけないし。
ラジコンサーボなら1本のパルスを出すだけでいいからね。
>>946 というのはどういう意味なんだろう?
ロボット用サーボなら力が強くて頑丈なものがあるよ。
ロボット用サーボでもいいと思うけど、長い棒みたいなのを 付けると長さによって壊れやすさが格段にあがりそう。 工業用のサーボなら強いと思うけどw
普通にモーターとギアにカムにスプリングでギミックこさえた方が賢くないか? どの程度の物を作ろうとしているのかイマイチ見えないからなんともだが
964 :
774ワット発電中さん :2011/06/30(木) 10:22:05.69 ID:HRHwvnUe
RC用のサーボはしってるけど、ロボット用サーボってのはなんだろう? 多関節の人間型ロボットに使われるサーボってRCサーボの流用じゃないの? 工業用のサーボにもRCサーボと同じメカ、制御構造のものがあるのか? それとも産業機械に使われてるモーター+エンコーダーと外付けのボックスタイプ ドライバーのことを指してるんだろうか?
今はロボット用のサーボがあるよ。PWMじゃなくてシリアルで双方向通信だったり、色々多機能。
まあ、デジタル制御してんのに、わざわざアナログなパルス幅で制御するデバイスにする必要無いしな。 むしろ最初からデジタル信号で制御すりゃいいんだよな。
サーボモータをpic16fで制御する方法おすえて
LEDをpic12fで制御する法王おすえて
>>923 人の使ってるCPUまで否定してさ
結局何がしたいの?
自演くさw
マゾなのでPIC使い続けるのです。。。。
もう、スルーしろよ PICが世に出て30年? 時代がPICに追いつき、追い越しただけ RISC対CISCとかと同じ
Picは安いからとりあえず使ってるんだけどもっといいのあるの?
MPS4S0は8ピンないからなあ まあ8ピン最強はアレなんだけど
976 :
774ワット発電中さん :2011/06/30(木) 22:04:55.24 ID:HRHwvnUe
今日扇風機買ってきた。最近の扇風機は噴出し口に手で触れると安全機能が作動して一時的に回転が とまるようになってるんだね。この機能、最近のPICに内蔵のキャパシティブ・センサー・モジュールで 簡単に実装できるのかな。
18F14K50地味に値下げされてるみたいだな ¥200→¥170
>>972 30年前なら有名な8bitプロセッサは出揃ってたころ
その頃にPICの醜悪なデザインはありえない・・・というか
設計者もここまで使い倒されるとは正直思ってなかっただろう
もっと古い6502はARMになった。この差は何?
>979 オレは信奉者じゃないから、 別にPICの肩を持つつもりはないけど、 ’80年頃の時点、すでに主要な8ビットアーキテクチャが出そろってた時点で考えても、 それほど無茶なデザインとは思わんけどなあ。 組み込み用の小規模CPUは制限の多い奇妙なアーキテクチャの方が主流だった気がする。 Intelのヤツからしてアレだったしな。 (こいつも長生きなアーキテクチャだよな...)
981 :
774ワット発電中さん :2011/06/30(木) 23:28:53.59 ID:pkMLDnlx
半加算器についての質問です。 半加算器にはAND2個、OR1個、NOT1個で構成されるものや、NAND4個、NOT1個で構成されるものなどいろいろあります。 どのような組み合わせが一番遅延時間が少ないのでしょうか?
マルチ乙
>>979 アーキテクチャ30年説があるね。
インテルがIA64で葬り去ろうとしたx86は、x86-64で延命したけど次はどうなるか。
その点、PICはソフト資産が無いに等しい。
無いのが逆に幸いしたのかも。使い捨てマイコン?
>>981 5V TTLなら後者が速い。たたし、これは30年前の話。
現在は同期回路で組むから、時間差は隠蔽される。
最後に、スレチだ
half adderが二つでfull adderになる理屈はちょっと感動した
picでロボット制御は駄目なの?
>>986 使えりゃなんでもokだと思うよ
そりゃ流行り廃りってのはある事は事実なんだけど、制御抜きに考えても
ロボットだったらロボット本体のハード設計の方が大事だろう。
ぶっちゃけI/O規格だけ一番最初にきっちり設計すれば制御部分なんていくらでも取っ替えられる。
秋月で売ってるGWS製サーボはコネクタガタついてGND浮くと瞬時に壊れる 双葉電子工業製のは同じ状態になっても壊れない さすがMADE IN JA…… CHINA
>>986 最近の上位機種以外はPWMもろくにないからおすすめできない
PWMを2つ出すためだけに、PICをその数だけ増やすとか馬鹿にもほどがある
(某Fランクロボットアーム)
趣味や学校課題なら、さっさとアルテラDE0買って、NiosIIにすることを推奨する。
業務でローエンドPIC固定ならアセンブラでがんがれ
ID:pVV9xpRn ID:qCW+68cE
このコテ、一体なんなの?
>>939 でPIC二つ動かせと言ったかと思えば、
>>989 では真逆なことを言う。
NG推奨?
>>989 ロボット用マイコンは、ソフトPWMがほとんどだよ。
十数個のサーボをコントロールする必要があるからね。
>>990 仕事でPIC16F、18F
卒研でSH
趣味でmbedとFPGAいじっているからアドバイスしているだけ。
サーボ1個にPWM1個使うのか、いいなぁ贅沢だなぁ PWM1個+デマルチプレクサで10個動かしてる上に自作マルチタスクOSで滞りなく 通信とセンシングまでやってるオレ頑張りすぎたのかなぁ…
ハードに奢って、ソフトで楽をする。 ハードがショボイので、ソフトでがんばる。 どっちだってーいいじゃないか。 第二次世界大戦時の連合と枢軸の飛行機みたいなもんじゃねー? もっとも枢軸のソフトウェアは使い捨されたが…
夢見る坊やか? ARM厨はすっこんでて欲しいな 大体、PWM二つ出すのにCycloneII+NiosII? CPLDで十分だろうがJK!
>>993 悪い、ごめん、先に謝っとく
> 通信とセンシングまでやってるオレ頑張りすぎたのかなぁ…
RTLを覚えれば、PWMなんてコピペだけでピンと容量が許す限り、幾らでも作れるのに…。
はいはい右から左
998 :
774ワット発電中さん :2011/07/01(金) 01:53:27.32 ID:cAVQhyrV
>>992 普通逆のような、趣味で16Fとか、仕事でFPGAとか。
>>993 RC用のサーボ信号をPWM(数十Hz)といってるから紛らわしくなってるような。
確かにPWMなんだけどRCの世界ではモーター速度制御用のPWM(数kHz)と
区別するためサーボ信号のことをPPMっていうのが慣例のような。
>>989 が言ってるのは
実際にはHブリッジをコントロールするPWMのような話じゃないかと想像する。
普通のRCサーボへの信号なら汎用ポートから時分割で8チャンネルくらい出力できそうだ。
(20ms/2.5ms=8)
はいはい↓次スレてけとうに立てろや
ネギを振らせ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。