トップページ電気・電子
1002コメント338KB
PIC専用のスレ Part 57
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2018/02/03(土) 23:52:05.99ID:EM0c0L1y
     ______
   /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/
0493774ワット発電中さん
垢版 |
2018/03/24(土) 12:07:51.66ID:yxTaArxD
リモコンデータの受信解析ソフトって、
単なるリモコンの受信処理部分のこと?
それとも受信回路や送信機の評価用の解析?
0494774ワット発電中さん
垢版 |
2018/03/24(土) 12:10:08.87ID:DULXL6IN
両方
0495774ワット発電中さん
垢版 |
2018/03/24(土) 12:45:24.08ID:ZChT3Wwu
状態遷移処理って何?
逆に状態が遷移しない処理があるのか?
0496774ワット発電中さん
垢版 |
2018/03/24(土) 12:49:09.22ID:yFlQbYi+
PLCのラダーのような
状態変移で動かすプログラミング
FAやプラントではそういう書き方しないとメンテナンスが面倒
0498774ワット発電中さん
垢版 |
2018/03/24(土) 12:56:13.38ID:BlNTL06s
PCの値が遷移
0500774ワット発電中さん
垢版 |
2018/03/24(土) 13:03:26.23ID:ZChT3Wwu
状態を示す変数を用いる処理が状態遷移処理だとしたら
ほぼ全ての処理がそうじゃないか?
0502774ワット発電中さん
垢版 |
2018/03/24(土) 13:20:15.96ID:RwpJ9/D6
>>493
何のリモコンのどのボタンを押したかを解析する処理。
NEC, AEHA, SONY フォーマットMAX6バイトに対応。
受信モジュールは月並な 38kHz 3pinタイプ。
リモコンで遠隔操作ができるようになっただけでなく、
8pin PIC でも入力ボタンが一気に増えた気がする
のがうれしい。

>>495
説明が悪かったかな。状態ごとに変数値を決めて
その値に基づいて処理を行うやりかた。
ひとつのことにかかりきりでよければ、プログラム
の流れそのもので、すなわち、状態を表す変数なし
でも処理ができるので、それと区別をしたつもり。
0505774ワット発電中さん
垢版 |
2018/03/24(土) 14:16:23.13ID:Kty3MHA/
状態遷移の状態を、状態と日本語で書くから知らないやつはわからない
stateと書けばいいんだよ
0506774ワット発電中さん
垢版 |
2018/03/24(土) 14:23:28.21ID:DULXL6IN
常態にしとけ
0507774ワット発電中さん
垢版 |
2018/03/24(土) 14:27:25.07ID:ZChT3Wwu
パルスの受信は割り込みで
解析は割り込みの外だろ?
「状態遷移処理」とCPU占有の関係がいまいちわからん

CPUを占有してよくて
「状態遷移処理」じゃない処理にすれば
解析が簡単なのか?
0508774ワット発電中さん
垢版 |
2018/03/24(土) 14:33:12.09ID:Kty3MHA/
>>502
他のマイコンだと、状態遷移テーブルをポインタ関数テーブルに対応させてアドレスジャンプさせるんだけど
8ビットPICだとどうやるの?
アセンブラでもスマートだが、unixのcで、select文と組み合わせてスマートに実現しているのをみたときは
K&Rはこれがやりたかったのかと感動した。ネットワークと内部込みで。
0509774ワット発電中さん
垢版 |
2018/03/24(土) 14:37:39.55ID:b8u8WUUR
質問です。

16F1705にてUSARTにて通信テストを行っているのですがうまくいきません。
何でもいいので受信すれば、1回LEDが点滅するようにしたいですがうまくいきません。

↓メイン部分でどこか間違いなどありますでしょうか?

// メインの処理
void main()
{
/** 各ピン設定 **/
ANSELA = 0b00000000 ; // AN0-AN3は使用しない全てデジタルI/Oとする
ANSELC = 0b00000000 ; // 全てデジタルI/Oとする
TRISA = 0b00000000 ; // ピン(RA)は全て出力に割当てる(RA3は入力専用)
TRISC = 0b00100000 ; // RC5(rx)だけ入力その他のピンは出力に割当てる
PORTA = 0b00000000 ; // RA出力ピンの初期化(全てLOWにする)
PORTC = 0b00000000 ; // RC出力ピンの初期化(全てLOWにする)


//UART用設定
RC4PPS = 0b10100 ; // 出力(C4へTXを割当てる)
RXPPS = 0b10101 ; // 入力(RC5を割当てる:デフォルト)
TXSTA = 0b00100100 ; // 送信情報設定:非同期モード 8ビットデータ・ノンパリティ
RCSTA = 0b10010000 ; // 受信情報設定
//UART用設定 データシートP340参照
SYNC = 0;
BRGH = 0;
BRG16 = 1;
SPBRG = 25 ; // ボーレートを9600(高速モード)に設定
RCIF = 0 ; // USART割込み受信フラグの初期化
RCIE = 1 ; // USART割込み受信を有効にする
PEIE = 1 ; // 周辺装置割込みを有効にする
GIE = 0 ; // 全割込み処理を許可しない
Flag = 0 ; // データ受信フラグのリセット

/*************** メインループ ********************/
while(1)
{
//PIC電源確認LED点灯
LATCbits.LATC0 = 1;
__delay_ms(500) ;
LATCbits.LATC0 = 0;
__delay_ms(500); // 500ms遅延する

while(1)
{
// USARTからデータが送られてきたら処理する
LATCbits.LATC0 = 1; // LED点灯
if(RCIF==1)
{
RXBUFF=RCREG; // 受信データの取り出し
LATCbits.LATC0 = 0; // LED点灯
__delay_ms(500); // 500ms遅延する
}
}
}
}
0510774ワット発電中さん
垢版 |
2018/03/24(土) 15:01:32.96ID:ZChT3Wwu
>>509を見てよくわかりました
こういうプログラムが
「状態遷移処理」がないプログラムですね
0511774ワット発電中さん
垢版 |
2018/03/24(土) 15:19:55.18ID:b8u8WUUR
>>510
スマホからですみません
状態遷移処理がないとはどういう意味ですかね?

お手数をおかけしてしまって申し訳ないです
0513774ワット発電中さん
垢版 |
2018/03/24(土) 15:32:53.18ID:BlNTL06s
受信データ列は正しいビットレートで正しいレベルで入力しているのは確認してあるんかいな。
0514774ワット発電中さん
垢版 |
2018/03/24(土) 15:50:42.50ID:b8u8WUUR
>>513
受信データのビットレートは9600bps(PICは4Mhz外部クロック)で入力の電圧も問題ないと思います。
ただ、PIC(特にPPSの設定)と通信用のモジュール(※)が今回初めて使用する物なので、
基本的な記述に問題がないか確認したく書き込みました。

初心者のため意図と違う返信になっていたらごめんなさい

※通信モジュール
ttp://akizukidenshi.com/catalog/g/gK-07378/
0515774ワット発電中さん
垢版 |
2018/03/24(土) 15:59:28.72ID:FAmVE2sl
初期化のところは見てないのだけど(ここが問題かも)

while(1)のループが入れ子になっていて、breakもないし、外のwhile(1)は要らんよね?

どっち?
LATCbits.LATC0 = 1; // LED点灯
LATCbits.LATC0 = 0; // LED点灯

ビットレートが合っているかどうかは、初期化が終わったあとに、何か文字を送信して
オシロで見るか、PCで受信して確認すると良いと思う。
0516774ワット発電中さん
垢版 |
2018/03/24(土) 16:39:28.98ID:b8u8WUUR
>>515
返信ありがとうございます。

 》while(1)のループが入れ子になっていて、breakもないし、外のwhile(1)は要らんよね?
 そのとおりです。削除します。

 》どっち?
 LATCbits.LATC0 = 1; // LED点灯
 LATCbits.LATC0 = 0; // LED消灯
 が正しいです。

 》ビットレートが合っているかどうかは、初期化が終わったあとに、何か文字を送信して
 》オシロで見るか、PCで受信して確認すると良いと思う。
 オシロが手元にないので、PCに受信する方向で確認してみます!!

  》初期化のところは見てないのだけど(ここが問題かも)
  そこが問題かもしれないです・・・引き続き調査して見ます。
0517774ワット発電中さん
垢版 |
2018/03/24(土) 17:22:17.89ID:b8u8WUUR
>>516
連投すみません

PIC側から文字を送信したところ、無事にpc側にて受信できました。

恐らく受信部分の問題だと思われます
引き続き調査してみます。
0518774ワット発電中さん
垢版 |
2018/03/24(土) 18:04:42.63ID:BlNTL06s
その送信の線を受信につないでみると?
0519774ワット発電中さん
垢版 |
2018/03/24(土) 18:30:09.45ID:b8u8WUUR
>>518
なるほど!!目からうろこでした

PICは正常に動作しました!(LEDは消灯しました)

ということはモジュールとPIC間かPCの送信の問題ですね
0520774ワット発電中さん
垢版 |
2018/03/24(土) 19:31:08.66ID:D2mDamJb
48MHzで動いてるPIC18から12MHzのクロックって出力されてましたっけ?
HSモードじゃだめかな

外付けセンサーで12MHzが欲しいんだけどなんかPIC用とセンサー用で12MHzを
2つ実装するのが馬鹿みたいな気がして
0521774ワット発電中さん
垢版 |
2018/03/24(土) 21:01:41.47ID:b8u8WUUR
>>519
とりあえず問題の切り分けはできましたありがとうございます

結局のところPIC側ではなくて、モジュールの問題かもしれません

送信はうまく行くのですが、受信をすると電源が落ちてリセットしてしまうことがわかりました。

理由はこれから調査しますが、不良品の可能性もあるのかな?
0523774ワット発電中さん
垢版 |
2018/03/24(土) 22:08:15.09ID:Kty3MHA/
>>521
質問する前にモジュールのデータシートは読んだ?
いや、俺は読んでないけど。
0524774ワット発電中さん
垢版 |
2018/03/24(土) 22:28:40.03ID:b8u8WUUR
>>523
モジュールのデータシー読み込めてないです(泣)
英語ばっかで、つなぎ方などを見ただけで

一度読み込んで見ます

ありがとうございますm(_ _)m
0525774ワット発電中さん
垢版 |
2018/03/24(土) 23:20:20.15ID:ZChT3Wwu
まずは
PC <===> PIC
PC <===> モジュール
で動作確認

PIC <===> モジュール
はその後で
0526774ワット発電中さん
垢版 |
2018/03/24(土) 23:26:08.28ID:b8u8WUUR
>>525
了解しました

とりあえずpcとPICの通信を完全にします

色々ありがとうございます
0528774ワット発電中さん
垢版 |
2018/03/25(日) 00:12:50.86ID:mWqzvsF5
あまりのレスの多さに感動です

>>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 で検索するとワラワラ見つかります。
0529774ワット発電中さん
垢版 |
2018/03/25(日) 00:32:11.73ID:mPfq9Gm7
>>528
せっかくのキャプチャー割り込みを使わないで
ポーリングでやってるのか

メインループの他の処理によってサンプリングタイミングがずれるし
1000命令かかる処理が他に有れば完全に取りこぼすわけだ

125usと言えばPIC16ではトップレベルで応答性が要求される処理
これで割り込みを使わないで何に割り込みを使うの?

アセンブラの前にもうちょっと基本的なことを学んだ方が良い気がする
0531774ワット発電中さん
垢版 |
2018/03/25(日) 01:14:39.79ID:mWqzvsF5
割り込み機能の全くない 12F510 が 50円だった頃
20個買ったやつがまだ結構余ってるんですよ。
今回は割り込み機能のある 12F1501 をハンダ付け
してしまってから間違いに気が付いたのですが、ま、
いいかとそのまま 12F1501 でプログラムを作成。
余ってる 12F510 にもダウングレ−ド移植をしやす
いようにとポーリングでやったんですよ。

全ての処理はイベント処理的に 125μs 以内に終わ
るようにコーディングしてます。割り込みを使えな
いわけではなくて、割り込みを使わないで作ったと
いうだけのことです。
0532774ワット発電中さん
垢版 |
2018/03/25(日) 11:40:34.40ID:BOg+2r5T
超小規模なプログラミングでも
ホビーと業務レベルとの差は大きいな
アセンブラってところがまた泣かせる
0533774ワット発電中さん
垢版 |
2018/03/25(日) 13:25:26.97ID:lrSYKSS5
業務用のは保守性と再利用性最重要視してるから
冗長過ぎて眠くなる
趣味のは各個人の技巧やら独自記法満載で
読んでえ辛くなる
0534774ワット発電中さん
垢版 |
2018/03/25(日) 13:33:12.42ID:3ONxWJnp
>>528
>8 bit PIC の常套手段かと思いますが、プログラ
>ムカウンターに対して状態変数を加算することで
>複数のアドレスに一発で分岐できます。その分岐
>先には、一般的に GOTO を並べておきます。

通常のCPUならそうなんですが、PICのレジスタバンクまたいでアドレスジャンプやGOTOして
かつ、ちゃんと帰ってこれるのかなと思って。
0535774ワット発電中さん
垢版 |
2018/03/25(日) 13:46:34.46ID:mWqzvsF5
赤外線リモコン受光信号にちょくちょく
ちょっかいを出してくるヤツが居る。
何か?と思ったら、Win10 にしてあるも、
ちょっと古いノートPCが、近くに相手が
居ないか定期的に赤外線で声掛けをして
いるようなのだ。

これを使えば PC-PIC 間で赤外線通信が
できるじゃん、と思って技術資料を探そ
うとググってみても中々みつからない。

参考になりそうなサイトをご存知の方、
とりあえずヒントだけでも教えていただ
けませんでしょうか。
0539774ワット発電中さん
垢版 |
2018/03/25(日) 14:04:57.39ID:mWqzvsF5
>>534
プログラムアドレスの下位バイトが 0xff から次の 0x00 にまたがないようにコーディングする必要があります。
0540774ワット発電中さん
垢版 |
2018/03/25(日) 14:36:33.68ID:mWqzvsF5
早速ありがとうございます。でも IrDA のプロトコルスタックを
PIC 側に自作する根性は湧きません。PC側をもっと低水準で
Lチカしたくなります。
0544774ワット発電中さん
垢版 |
2018/03/25(日) 16:54:08.29ID:SORJJxgJ
PC用のIrデバイスドライバがありゃ良いんだな
0545774ワット発電中さん
垢版 |
2018/03/25(日) 16:55:14.71ID:SORJJxgJ
PIC側でbluetooth使うのもありか
0546774ワット発電中さん
垢版 |
2018/03/25(日) 17:18:10.56ID:AuEketqe
memo

https://taroumaru.jp/main/irda_windows10
https://github.com/irkit
https://github.com/kerikun11/IR-Station
https://github.com/iguanaworks/iguanair
https://www.driverguide.com/driver/download/SigmaTel-USB-IrDA-Dongle
http://mcn.oops.jp/lab/machines/irda-dongle/index.htm
http://hp.vector.co.jp/authors/VA005810/irda/link_irda.htm
http://tech.nikkeibp.co.jp/it/free/NT/WinReadersOnly/20050721/1/
https://support.microsoft.com/ja-jp/help/3150989/an-irda-networking-device-does-not-work-in-windows-10-version-1511
0548774ワット発電中さん
垢版 |
2018/03/25(日) 19:58:35.66ID:qua2RALn
>>547
え?御社には開発基準が存在せず、ドキュメント管理の効率化もやっていない、
と言っているようなものですよそれ…
0550774ワット発電中さん
垢版 |
2018/03/25(日) 20:06:49.41ID:SHaSvhaJ
>>526
とりあえず通信は完了しました!

色々皆さんありがとうございました!

助かりました
0552774ワット発電中さん
垢版 |
2018/03/25(日) 21:03:42.50ID:3ONxWJnp
>>547
横からごめん、東芝の4ビットでも保守性と再利用性は最重要視されてます。@車両関連メーカー
速度とか機能は仕様の問題だよね。そんなの仕様を満足してればまったく重要視されません。
あとはコストとのバーターだけど、コストの話になると保守と再利用できないと、いまどきのメーカとしてはダメなんだよね。
そこらは営業と調達ががんばるだけ。
0553774ワット発電中さん
垢版 |
2018/03/25(日) 21:59:16.88ID:34OP5Ze7
仕様
信頼性
コスト
開発期間/納期

これらよりも
コードの保守性や再利用性を重視するアホなメーカーがあるのね
0554774ワット発電中さん
垢版 |
2018/03/25(日) 22:15:20.75ID:3ONxWJnp
>>553
お前ほんとにわかってないんだな。
仕様と保守を同一に語るメーカーがあると思ってるのか?
違いがわからないのかな
0556774ワット発電中さん
垢版 |
2018/03/26(月) 01:13:49.99ID:XHOfX23W
最重要視

この言葉の意味がわからないのか自分で書いてて
他のいろんな事を犠牲にしてでも保守性や再利用性を確保する
っていう意味だぞ

なにも犠牲にせずに単に
保守性や再利用性を考えたコード
っていう感じで使ったのなら
当然だろうね
保守性や再利用性を考えないコードなどあり得ない
0557774ワット発電中さん
垢版 |
2018/03/26(月) 01:17:23.60ID:XHOfX23W
一部上場電機メーカーで量産品をたくさん作ってるよ

他部署や顧客に
「保守性や再利用性を最重要視して開発しました」
なんて言ったら笑われるよ普通
0559774ワット発電中さん
垢版 |
2018/03/26(月) 04:15:03.65ID:feh8Yv3J
とにかく戦わないと気が済まない人っているよね
0560774ワット発電中さん
垢版 |
2018/03/26(月) 04:21:31.59ID:FQp9EZ8h
一人でコツコツ趣味でやっていて、この仕事できると勘違いしちゃっ子なんだろうね。
能力はありそうだけど、職場じゃいらない子ちゃんだなぁ…自営でもなさればよいかと
能力ありそうだからなんとかなるよ
0561774ワット発電中さん
垢版 |
2018/03/26(月) 06:51:54.73ID:WKP3Z2E4
どれに重点置くかは業界によっても違うだろ。
統一解無いと満足しない人なの?
0562774ワット発電中さん
垢版 |
2018/03/26(月) 07:07:36.21ID:iPG2wmh3
ここでの書き込みで能力がありそうなさそうなんてわかるわけがない。

>>561
俺もそう思う。
何を重要視するかどうかは業界によっても変わるし、製品によっても変わる。

自分が思っているものと違うものを、アホだ、わかってない、あり得ないなんて言うのは
「見聞が狭い」
ということを公言しているようなものだと思う。
0564774ワット発電中さん
垢版 |
2018/03/26(月) 11:18:07.69ID:AyFe6chz
>>562
>自分が思っているものと違うものを、アホだ、わかってない、あり得ないなんて言う「見聞が狭い」ひと

典型的な一緒に仕事したくないタイプだな
0565774ワット発電中さん
垢版 |
2018/03/26(月) 12:28:31.48ID:JC3K7XTA
経験則的に、人当たりの良い yes マンでプログラミングが上手い人は殆ど見かけない気がする。
まあ、細かいことはいいんだよ、っていう人は、人をまとめる仕事に回されるんだろうな。
0567774ワット発電中さん
垢版 |
2018/03/26(月) 12:38:45.19ID:dLGY9z2p
即ち重箱の隅をつつきまくるような繊細さと
攻撃的な性格を持ち合わせたプログラマーが優秀であると
0569774ワット発電中さん
垢版 |
2018/03/26(月) 13:33:35.61ID:k6zu2F8v
プログラマ限定の話しでは無いが、
チームを組んで仕事してると、トラブルで行き詰まったときに、
思いもよらないような斬新な、目からウロコのアイデアを出してくる人がいる。
逆に、話を聴くのは時間のムダ、って人もいるが、
そういう人が受注先のエライさんだと、無視するわけにもいかず、
一通りご高説を拝聴して、実際にダメなところをやって見せないとけないのがツライ
0571774ワット発電中さん
垢版 |
2018/03/26(月) 16:59:03.17ID:zDhlItNO
I/Oが多いの探していて、
PIC18F45K20が18のくせに安すぎる(秋月\180)のだが
何か理由があるのでしょう蟹
0572774ワット発電中さん
垢版 |
2018/03/26(月) 17:09:29.57ID:Sw7iEgdq
●良品で普及してるから安い
●糞で売れないから安い
0573774ワット発電中さん
垢版 |
2018/03/26(月) 17:34:45.05ID:xTGmPMlP
他の類似のPIC18に比べると周辺機能が少なくなっている。
それで構わなければお買い得。
0575774ワット発電中さん
垢版 |
2018/03/27(火) 17:42:43.13ID:gq/fr8Du
相対ジャンプの距離をインデックスにしておいて飛び先で
関数アドレスロードしてそこへジャンプする
定石だね
0576774ワット発電中さん
垢版 |
2018/03/27(火) 18:24:37.88ID:3nEB+9Dr
保守性や再利用性、最悪だな

まともなコンパイラならswitch caseで自動でやるよ
テーブル、二分検索、if else 方式を臨機応変に切り替える
0578774ワット発電中さん
垢版 |
2018/03/27(火) 20:21:41.24ID:3nEB+9Dr
そだねー
マイクロチップのコンパイラは頭良くないからね
0580774ワット発電中さん
垢版 |
2018/03/27(火) 21:18:53.61ID:3nEB+9Dr
>>576
そういえば
1個のswitchで
連続部分はテーブルで、不連続部分は二分検索
みたいなハイブリッド処理をコンパイラがやってて
感心した覚えがある
0581774ワット発電中さん
垢版 |
2018/03/27(火) 21:29:28.65ID:3nEB+9Dr
下の方は機械に任せて、
機械が出来ない上の方を人間が考えれば良いよ

>>528みたいに基本設計がダメなものは
コンパイラが進化してもどうにもならない
0583774ワット発電中さん
垢版 |
2018/03/28(水) 11:50:09.45ID:yNywI8K8
>>508
ステートマシンですね。
関数ポインタは、定石ですね。
代替で、switch case
を使うしかないかな?
アセンブラの展開見ると、コンパイラによってオーバヘッドが余計にでたり、
分岐ごとのオーバヘッド差が出たりして、レイテンシに問題が出る場合には注意が必要。

PICでは、cc5xを愛用していますが、
cc5xでは、skip goto という、プログラムカウンタにオフセットを増分するやり方が簡潔で、
可搬性に欠けますが、非力なマイコンなので目をつむっています。

優秀な、gccがpic用にあればいいんだけど....
0584774ワット発電中さん
垢版 |
2018/03/28(水) 12:20:58.19ID:RJ7XhbH5
>>582
自分でデバイスドライバ書く前提なら
IrDAのプロトコルをサポートしなくてもいいんじゃね
0585774ワット発電中さん
垢版 |
2018/03/28(水) 12:53:24.89ID:jVF8EhGs
>>584
自分は長いものには巻かれろ、派
スタンダードに合わせておいた方が後々何かと楽
0586774ワット発電中さん
垢版 |
2018/03/28(水) 13:30:29.19ID:wkTDt4VO
>>583
数クロックの差で動作に影響を与えちゃうような作り自体が問題
そんな作りじゃ割り込みなんか使えない

とは思わないのかな?
PICユーザーは
0588774ワット発電中さん
垢版 |
2018/03/28(水) 15:34:08.84ID:O6A9YPEs
>>586
GPSDOの位相比較と制御をPICでやってるけど1クロックもずれない。
むしろPeripheral Interface Controllerとして本来の使い方かも知れない。
0589774ワット発電中さん
垢版 |
2018/03/28(水) 15:42:59.22ID:HkzvRci2
>>584
自作アプリで FIR Driver もしくは TrSIR.sys を
直接叩けば良さそうなんだけど、その叩きかたが
判らんとです。
0591774ワット発電中さん
垢版 |
2018/03/28(水) 19:28:05.25ID:HkzvRci2
数クロックの差で動作に影響を与えちゃうような
ソフトを作るべきではないという見解も、作った
ものが1クロックもずれないので、これぞ P.I.C.
と思った書き込みも、夫々理解できるのですが、
自作アプリからミニポートドライバをこうやって
叩くんだとコメントができる人は居ませんか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況