PIC専用のスレ Part 57
■ このスレッドは過去ログ倉庫に格納されています
______ /Microchip ./| / ( ゚∀゚) / | アセンブラのアの字もわからない |~ ̄ ̄ ̄ ̄ ̄| /. 超初心者からHEXが読めてしまう |/Z./Z./Z./Z_|/ || 鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ ||. ||. ||. || 大人気のPICマイコンのスレ なんといっても情報が豊富だし、開発環境も多いし、パッケージも豊富 使いやすくて、しかも安い。やっぱりPICだよね 例の如く基本リンクだ http://www.microchip.com/ マイクロチップ本社(Microchip Technology Inc. ) http://www.microchip.co.jp/ マイクロチップ テクノロジー ジャパン 株式会社 http://www.microchip.com/maps/microcontroller.aspx Microchip Advanced Part Selector (Maps) またーりやっておくんなまし 種類が多くてワカランって奴は上記パーツセレクタで、機能から最適製品を絞り込め! 教えて君はとりあえずGoogle( http://www.google.co.jp/ ) くらい使おう テンプレ内の秋月小売価格も在庫が捌ければ、次の仕入れからは昨今の為替相場変動にならって 適宜価格改定されてます。ここの表記価格とは違うかもしれないのでそのつもりで 回答者する人の注意 . 最初に回答したい気持ちは分かるけど、質問者の内容を、落ち着いてよく読もう。 質問者する人の注意 . あなたの周囲しか通じない変な省略語は使わずに、なるべく詳しく説明してね 前スレ: PIC専用のスレ Part 56 https://rio2016.5ch.net/test/read.cgi/denki/1501476623/ >>519 とりあえず問題の切り分けはできましたありがとうございます 結局のところPIC側ではなくて、モジュールの問題かもしれません 送信はうまく行くのですが、受信をすると電源が落ちてリセットしてしまうことがわかりました。 理由はこれから調査しますが、不良品の可能性もあるのかな? >>521 質問する前にモジュールのデータシートは読んだ? いや、俺は読んでないけど。 >>523 モジュールのデータシー読み込めてないです(泣) 英語ばっかで、つなぎ方などを見ただけで 一度読み込んで見ます ありがとうございますm(_ _)m まずは PC <===> PIC PC <===> モジュール で動作確認 PIC <===> モジュール はその後で >>525 了解しました とりあえずpcとPICの通信を完全にします 色々ありがとうございます あまりのレスの多さに感動です >>503 随分インプリメント依存の所への質問ですね。 今回は、約 125μs ごとに赤外線パルスの有無を チェックし、1ms以上パルスが続けばリーダーと 判断。その後、パルスが止まってから次のパルス が始まるまでが 1ms以上なら NEC か AEHA、1ms 未満なら SONY と判定するロジックにしました。 2ms 以上パルスが来なければ終わりと判断。 >>504 とりあえず受け取った bit 数と MAX 6 バイトを 丸ごとレジスタに保存。この内容を後で適宜判断 します。 >>505 PIC には、そもそも STATUS というレジスタがあ るのでそう書くのを躊躇いました。 >>507 以前は割り込みの無い PIC (12F510) を使ってい たもので、そのくせというかなごりで、TMR0 の とあるビットを監視してタイミングをとる形で、 全てポーリング処理で作りました。 > CPUを占有してよくて…解析が簡単なのか? 私はそう思っています。マルチタスクは CPU占有 ではありませんが、ひとつのことに専念している ようにプログラムを書けるので簡単に作れる気が するのではないでしょうか。 >>508 8 bit PIC の常套手段かと思いますが、プログラ ムカウンターに対して状態変数を加算することで 複数のアドレスに一発で分岐できます。その分岐 先には、一般的に GOTO を並べておきます。 addwf pcl,f で検索するとワラワラ見つかります。 >>528 せっかくのキャプチャー割り込みを使わないで ポーリングでやってるのか メインループの他の処理によってサンプリングタイミングがずれるし 1000命令かかる処理が他に有れば完全に取りこぼすわけだ 125usと言えばPIC16ではトップレベルで応答性が要求される処理 これで割り込みを使わないで何に割り込みを使うの? アセンブラの前にもうちょっと基本的なことを学んだ方が良い気がする 割り込み機能の全くない 12F510 が 50円だった頃 20個買ったやつがまだ結構余ってるんですよ。 今回は割り込み機能のある 12F1501 をハンダ付け してしまってから間違いに気が付いたのですが、ま、 いいかとそのまま 12F1501 でプログラムを作成。 余ってる 12F510 にもダウングレ−ド移植をしやす いようにとポーリングでやったんですよ。 全ての処理はイベント処理的に 125μs 以内に終わ るようにコーディングしてます。割り込みを使えな いわけではなくて、割り込みを使わないで作ったと いうだけのことです。 超小規模なプログラミングでも ホビーと業務レベルとの差は大きいな アセンブラってところがまた泣かせる 業務用のは保守性と再利用性最重要視してるから 冗長過ぎて眠くなる 趣味のは各個人の技巧やら独自記法満載で 読んでえ辛くなる >>528 >8 bit PIC の常套手段かと思いますが、プログラ >ムカウンターに対して状態変数を加算することで >複数のアドレスに一発で分岐できます。その分岐 >先には、一般的に GOTO を並べておきます。 通常のCPUならそうなんですが、PICのレジスタバンクまたいでアドレスジャンプやGOTOして かつ、ちゃんと帰ってこれるのかなと思って。 赤外線リモコン受光信号にちょくちょく ちょっかいを出してくるヤツが居る。 何か?と思ったら、Win10 にしてあるも、 ちょっと古いノートPCが、近くに相手が 居ないか定期的に赤外線で声掛けをして いるようなのだ。 これを使えば PC-PIC 間で赤外線通信が できるじゃん、と思って技術資料を探そ うとググってみても中々みつからない。 参考になりそうなサイトをご存知の方、 とりあえずヒントだけでも教えていただ けませんでしょうか。 >>534 プログラムアドレスの下位バイトが 0xff から次の 0x00 にまたがないようにコーディングする必要があります。 早速ありがとうございます。でも IrDA のプロトコルスタックを PIC 側に自作する根性は湧きません。PC側をもっと低水準で Lチカしたくなります。 >>533 >>543 8bitで保守性と再利用性が最重要視? 知らない癖に語るなよ恥ずかしい >>547 え?御社には開発基準が存在せず、ドキュメント管理の効率化もやっていない、 と言っているようなものですよそれ… >>526 とりあえず通信は完了しました! 色々皆さんありがとうございました! 助かりました >>549 理由も書かずに揚げ足とって煽るやつが一番トンチンカンw >>547 横からごめん、東芝の4ビットでも保守性と再利用性は最重要視されてます。@車両関連メーカー 速度とか機能は仕様の問題だよね。そんなの仕様を満足してればまったく重要視されません。 あとはコストとのバーターだけど、コストの話になると保守と再利用できないと、いまどきのメーカとしてはダメなんだよね。 そこらは営業と調達ががんばるだけ。 仕様 信頼性 コスト 開発期間/納期 これらよりも コードの保守性や再利用性を重視するアホなメーカーがあるのね >>553 お前ほんとにわかってないんだな。 仕様と保守を同一に語るメーカーがあると思ってるのか? 違いがわからないのかな >>554 特注の単品しかやった事が無いんだと思います。 最重要視 この言葉の意味がわからないのか自分で書いてて 他のいろんな事を犠牲にしてでも保守性や再利用性を確保する っていう意味だぞ なにも犠牲にせずに単に 保守性や再利用性を考えたコード っていう感じで使ったのなら 当然だろうね 保守性や再利用性を考えないコードなどあり得ない 一部上場電機メーカーで量産品をたくさん作ってるよ 他部署や顧客に 「保守性や再利用性を最重要視して開発しました」 なんて言ったら笑われるよ普通 一人でコツコツ趣味でやっていて、この仕事できると勘違いしちゃっ子なんだろうね。 能力はありそうだけど、職場じゃいらない子ちゃんだなぁ…自営でもなさればよいかと 能力ありそうだからなんとかなるよ どれに重点置くかは業界によっても違うだろ。 統一解無いと満足しない人なの? ここでの書き込みで能力がありそうなさそうなんてわかるわけがない。 >>561 俺もそう思う。 何を重要視するかどうかは業界によっても変わるし、製品によっても変わる。 自分が思っているものと違うものを、アホだ、わかってない、あり得ないなんて言うのは 「見聞が狭い」 ということを公言しているようなものだと思う。 >>562 >自分が思っているものと違うものを、アホだ、わかってない、あり得ないなんて言う「見聞が狭い」ひと 典型的な一緒に仕事したくないタイプだな 経験則的に、人当たりの良い yes マンでプログラミングが上手い人は殆ど見かけない気がする。 まあ、細かいことはいいんだよ、っていう人は、人をまとめる仕事に回されるんだろうな。 即ち重箱の隅をつつきまくるような繊細さと 攻撃的な性格を持ち合わせたプログラマーが優秀であると どの業界でもイエスマンで仕事が出来る人なんていない プログラマ限定の話しでは無いが、 チームを組んで仕事してると、トラブルで行き詰まったときに、 思いもよらないような斬新な、目からウロコのアイデアを出してくる人がいる。 逆に、話を聴くのは時間のムダ、って人もいるが、 そういう人が受注先のエライさんだと、無視するわけにもいかず、 一通りご高説を拝聴して、実際にダメなところをやって見せないとけないのがツライ I/Oが多いの探していて、 PIC18F45K20が18のくせに安すぎる(秋月\180)のだが 何か理由があるのでしょう蟹 ●良品で普及してるから安い ●糞で売れないから安い 他の類似のPIC18に比べると周辺機能が少なくなっている。 それで構わなければお買い得。 >>508 関数ポインタは8bitでも当然使える。 相対ジャンプの距離をインデックスにしておいて飛び先で 関数アドレスロードしてそこへジャンプする 定石だね 保守性や再利用性、最悪だな まともなコンパイラならswitch caseで自動でやるよ テーブル、二分検索、if else 方式を臨機応変に切り替える そだねー マイクロチップのコンパイラは頭良くないからね >>576 そういえば 1個のswitchで 連続部分はテーブルで、不連続部分は二分検索 みたいなハイブリッド処理をコンパイラがやってて 感心した覚えがある 下の方は機械に任せて、 機械が出来ない上の方を人間が考えれば良いよ >>528 みたいに基本設計がダメなものは コンパイラが進化してもどうにもならない >>537 あなたのような方を天才ハッカーと崇拝します。 >>544 とりあえず、ここまでたどりついたけど、ここで足踏み。次の一歩へのヒントをいただけると嬉しい。 https://technet.microsoft.com/en-us/library/cc961385.aspx >>508 ステートマシンですね。 関数ポインタは、定石ですね。 代替で、switch case を使うしかないかな? アセンブラの展開見ると、コンパイラによってオーバヘッドが余計にでたり、 分岐ごとのオーバヘッド差が出たりして、レイテンシに問題が出る場合には注意が必要。 PICでは、cc5xを愛用していますが、 cc5xでは、skip goto という、プログラムカウンタにオフセットを増分するやり方が簡潔で、 可搬性に欠けますが、非力なマイコンなので目をつむっています。 優秀な、gccがpic用にあればいいんだけど.... >>582 自分でデバイスドライバ書く前提なら IrDAのプロトコルをサポートしなくてもいいんじゃね >>584 自分は長いものには巻かれろ、派 スタンダードに合わせておいた方が後々何かと楽 >>583 数クロックの差で動作に影響を与えちゃうような作り自体が問題 そんな作りじゃ割り込みなんか使えない とは思わないのかな? PICユーザーは >>586 >PICユーザーは 一部のPICユーザーは、だね >>586 GPSDOの位相比較と制御をPICでやってるけど1クロックもずれない。 むしろPeripheral Interface Controllerとして本来の使い方かも知れない。 >>584 自作アプリで FIR Driver もしくは TrSIR.sys を 直接叩けば良さそうなんだけど、その叩きかたが 判らんとです。 >>588 内容がずれてると思うのだが 少なくとも>>586 とは 数クロックの差で動作に影響を与えちゃうような ソフトを作るべきではないという見解も、作った ものが1クロックもずれないので、これぞ P.I.C. と思った書き込みも、夫々理解できるのですが、 自作アプリからミニポートドライバをこうやって 叩くんだとコメントができる人は居ませんか? >>588 何Hzのクロックが何に対してずれないって? XC8のマニュアル読んでみたんだが、 ベースライン・ミッドレンジだと関数の引数がスタックじゃなく固定の場所に置かれるんだな 関数が再入不可能だし、関数が増えるほどにメモリ使用量が増える なかなか思い切った仕様だ >>594 ミッドレンジ以下ってそもそもコールスタックしかないと思ったが。 FSRも一つしかなくてソフト的にスタックを作るのも現実的でない。 >>595 突然そういえばPICの呼び出し規約どうなってるんだろうって気になって >>596 うん、C Compiler Optimizedじゃないことの意味をやっと理解した そもそもC言語じゃない 規格を満たしてないから アセンブラで組む時代の時代遅れなコア CCSC買えば? あっちもANSI準拠ではないけどっていう組み込み関数多いけど PICと掛けて小池百合子東京都知事と解く。その心は? 大年増(古いコア)の厚化粧(各種I/O) by 都知事選挙の石原慎太郎w 8ビットのコアをAVRに変更して、16ビットと32ビットにもっと注力すればいいのに・・・ 株主か大口顧客になってから言えば ここで言っても何も変わらん 時価総額いくらか知らないけど、多分、私の小遣いで大株主になるのは無理だと思う。 小遣い以上に掛かるならカミサンの許可を貰わないと・・・。 >>599 CCSCだとベース・ミッドでも引数スタックに置かれるの? 特に今再入可能な関数をCで書きたいわけじゃないんだけど どんな呼び出し規約してるのか知りたい >>601 余計なコストをかけずに売れ続ける商品を 経営の世界では「かねのなる木」と言う。 俺が経営者でも、コアを AVR に変更して 既存ユーザーに、今後はこちらに移行して くださいと頼んで回るような無駄なコストか ける判断はしないと思う。 8ビットなんて先細りなんだから 今から投資するアホはいない >>607 と、投資したことない貧乏人が言ってます 投資と聞くと株や不動産の事しか考えられない短絡脳が居るようで >>605 「大年増の厚化粧」はこれからも続くのか、やれやれ もっとも、私は趣味の電子工作でありPICを使っていないから被害は無いけど >>611 フッフッフ、もしかしたら「イヤよイヤよも好きのうち」? とフト思ったりしちゃったりしてw ま、PICだろうとAVRだろうとCPU界が繁栄すればOK、という事で宜しく >>612 まあ君みたいに炊飯器や電気ポットの中身を気にしてるのは世の中のごく少数だよ >>596 デフォルトは変数のアドレスは固定で、再帰呼び出し不可。 >>616 CCSCでベースライン・ミッドレンジの話? デフォルトはってことは変数をスタックに置くこともできるのか 8bitのPICでスタック? ミッドレンジ以前で使えるのか XC8 global options -> Statck options -> Stack type: Compiled / Reentrant / Hybrid fsr1 を使ってるっぽいけど、それ以上は追うつもり無いんで "どれで使えるのか / 使い物になるのか" 等に付いては、自分で確認しろや >>619 XC8でベース・ミッドで(普通の、Compiledでない)スタックが使えないのは知っている 5.8.1.3 REENTRANT AND NONREENTRANT SPECIFIERS Functions encoded for baseline and mid-range devices always use the non-reentrant model and the compiled stack. >>617 再帰呼び出し可にすると、ソフト的にスタック作ってそこにローカル変数を入れる。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる