ゆるAVR at DENKI
[2ch|▼Menu]
[前50を表示]
800:774ワット発電中さん
23/04/29 14:54:35.96 0CJxvyHF.net
この流れなので質問
PINxへの論理1を書いてのトグルアクション、
データシートを読むとトグルするのはピン
そのものじゃなくては該当ポートのデータ
レジスタって事になってる。
物流的にピンの反転が成立するのは次の
クロック?(PINxへの書込み後2クロック目?)

801:774ワット発電中さん
23/04/29 15:18:07.71 xlmqz0M5.net
>>800
>>787 の回路によれば、PORT 書き込みの WRx または PIN 書き込みの WPx によってラッチされるようで、これらは CPU的にはいずれも同等のレジスタ書き込み動作だからタイミングに違いがある理由も無く、
故にレジスタが変化するタイミングは PORT 書き込みでも PIN 書き込みでも同じように思う。
それが何クロック目かは確認してない。

802:774ワット発電中さん
23/04/29 18:38:59.56 g31vszwg.net
アセンブラのニーモニック文字列"SBI Pinx,n"のマシンコードをCPUがデコードして作る信号は
出力レジスタへのラッチパルスなんだから、ニーモニック文字列は"TBI Portx,n"のほうがふさわしいのでは?
ニーモニックを見ればすぐに動作内容が理解できる。
>>800
命令の実行時間はマニュアルによれば、たとえばmega328では2クロックと記載されている。

803:774ワット発電中さん
23/04/29 18:46:46.88 g31vszwg.net
そういえば昔、CROSS32というメタアセンブラがあった。
コレを使えば任意のニーモニック文字列が使える(マクロではなくて)

804:774ワット発電中さん
23/04/29 18:47:20.31 a/HP49rN.net
>>802
その信号は CPU というより I/O の回路(I/Oアドレスデコーダ)が作るんでしょ。
ニモニックは CPU のインストラクションに対応していて、I/O の個々の動作に対応してるわけじゃない。
あらゆる I/O レジスタに対してトグル動作になるんだったら TBI があってもいいだろうね。

805:774ワット発電中さん
23/04/29 20:59:21.08 aQZgo3ni.net
>>802
たぶんその意見に同調するのは一握り
ほとんど人は
「何言ってんだ?」
「データシートを、ちゃんと読めよ」
って意見だと思う

806:774ワット発電中さん
23/04/30 18:27:27.53 ppjEdkkg.net
ではアセンブラ「TBI Portx,n」命令は無しで、
無いので当然、命令一覧にも記載しないということにしましょw

807:774ワット発電中さん
23/04/30 19:24:28.77 FCxvWtvr.net
記載しないというか、元々そんな命令無いじゃん。
PINx への書き込み時の動作は命令じゃなくて I/O の動作だぞ。

808:774ワット発電中さん
23/04/30 22:44:59.07 URQDcoLJ.net
>>804
EORI A,K があれば良いのに
って話に帰着すると思う…
俺は余り必要性感じないけど

809:774ワット発電中さん
23/05/01 01:17:45.21 wk7YA/hr.net
>>808
CPU の命令と I/O の動作は別の話。
そこで言う EORI が I/O レジスタとリテラル値をオペランドにできたなら、それはどんなレジスタ相手だろうと(読み書き可能なら)ビット反転に使える。
それは、その演算を ALU で行い、結果をレジスタに書き戻す CPU の動作だから。
一方で現状の PINx について SBI をした場合、CPU はあくまでその I/Oレジスタのビットを立てる操作を行う。
ただその I/O は、ビットを立てる操作をされた時にトグル動作になるように実装されている。
これは CPU がそうしてるわけじゃなく、I/O の実装個別の仕掛け。
もちろん TBI でも EORI でも CPU の動作として実装されてるなら、当然そのニモニックは定義されるし、PINx に限らず全ての対象について等しくそのような操作が行われる。
もちろん CPU のその操作によってその通りにレジスタが書き変わるかは、その対象の個別の実装次第。
PINx については CPU が操作した通りの値には必ずしもならない実装だが、それによって便利になってる。

810:774ワット発電中さん
23/05/01 01:28:18.93 wk7YA/hr.net
で一般レジスタとリテラル値の EORI、これは欲しいな。
EOR なんて結構よく使う演算なだけに、EORI が欲しい場面もかなりある。
ぶっちゃけ ORI を潰して EORI にするのが便利な気がする。
ORI r, x

ANDI r, ~x
EORI r, x
で実装できるけど、EORI は ANDI と ORI の組み合わせじゃ計算できない。

811:774ワット発電中さん
23/05/01 06:34:31.25 Pp96qEyO.net
ORとAND=>EORは動作が違うし
ORとEORの使用頻度を考えたらORを削るのはアホ

812:774ワット発電中さん
23/05/01 07:56:53.94 6++6L5BU.net
>>811
そりゃ3つ揃ってれば言うこと無いが、オペコードが足りなくて 2つになってるわけで。
で、EORI が無いと EOR を取るには必ずレジスタが余計に 1つ必要になってしまうのに対して、ORI ないし ANDI の一方が無くても 余計なレジスタは必要無い。
そして ORI については実質必ず Zフラグは降りるから、条件判定としての価値も低い。
また、複数条件の OR 判定を演算で行うケースでも、それは元々レジスタを使うんだから、使うのは ORI じゃなく OR。
そしてレジスタのビットを個別に立てる命令もある。
なので 3つのうち 2つだけを残すとすれば、ANDI と EORI が妥当。

813:774ワット発電中さん
23/05/01 10:27:33.51 Too1MXFK.net
CPUは$9A4Dというマシンコードをデコードして
ポートDビット5の出力レジスタへの反転用ラッチパルスを作る。
これは誰も否定しないよね。
ニーモニックはCPUのマシンコードの動作内容を人間に理解できるように言葉で表現したものだから
コード$9A4D → 文字列"TBI PortD,5" で良いと思うけどな。
命令の種類については、コード16ビット+汎用レジスタ32個なので制限があるのは仕方が無い。
私はむしろ他の16ビット固定語長のCPUに比べたら、命令の種類が多いなと感心している。
可能なら、いつも反対が殺到するけどBCD演算命令が欲しい。
贅沢を言えばキリがないが、レジスタ複数組選択命令も。

814:774ワット発電中さん
23/05/01 10:41:44.04 1V2ZXW/f.net
くどいなぁ
単にデータシートを読んでれば良いだけだし
どうしてもやりたいならマクロで書けば良い
それを公開して皆が賛同すれば実装されるはずだぞ

815:774ワット発電中さん
23/05/01 11:30:07.03 s43BerBR.net
>>813
普通に否定するけど?

816:774ワット発電中さん
23/05/01 11:56:59.42 Lc5kTXxh.net
>>813
>ポートDビット5の出力レジスタへの反転用ラッチパルスを作る。
それは CPU が作ってるんじゃない。
CPU は PIND のビット5 に 1 を書くことを試みてるだけ。
他のレジスタに対してそうするのと全く同じように。
で、PIND というハードウェアがその書き込み動作を受けて PORTD のビット反転動作をさせてる。
CPU がやることと I/O のハードウェアがやってることをいい加減理解しようぜ。

817:774ワット発電中さん
23/05/01 12:26:58.63 3zRkJHS8.net
>>812
ORIとEORIでは圧倒的にORIの頻度が高い
ORIをANDIとEORIで実装するのは問題が多く普通はやらない
2つを選ぶならANDIとORI

818:774ワット発電中さん
23/05/01 12:41:51.69 Lc5kTXxh.net
>>817
>ORIをANDIとEORIで実装するのは問題が多く
解説希望

819:774ワット発電中さん
23/05/01 13:03:27.90 c9V/Vzo9.net
ただ今制限を設けております

820:774ワット発電中さん
23/05/01 13:24:33.32 Pp96qEyO.net
>>818
組み込みCPUの基礎の基礎だから
この手の問題点は理解しておかないと
まずは>>810に聞いてくれ

821:774ワット発電中さん
23/05/01 13:30:02.67 bWJZj8va.net
>>816
> それは CPU が作ってるんじゃない。
> CPU は PIND のビット5 に 1 を書くことを試みてるだけ。
入力レジスタPINxnに書き込む事は出来ません。
書き込む相手は出力ラッチPORTxnです。
各信号はCPUの命令デコーダ部が作ります。

822:774ワット発電中さん
23/05/01 13:44:17.09 Lc5kTXxh.net
>>821
>入力レジスタPINxnに書き込む事は出来ません。
そうだよ。だから試みてると言ってるんだぞ。
CPU はアドレスバスにI/Oアドレスを出し、データバスにデータを出し、そして書き込みパルスを出す。
ReadOnly のレジスタならその試み反応するハードになってないから何も引き起こさないし、PINx は >>816 のように動作するようにハードが作られてるというだけ。
CPU は PINx に対して何も特別なことはしていない。

823:774ワット発電中さん
23/05/01 16:23:58.53 Lc5kTXxh.net
>>820
その前に、>>810 の手順で OR になるというところまでは理解できてるの?

824:774ワット発電中さん
23/05/01 18:21:18.15 Pp96qEyO.net
最終的に(普通のメモリであれば)ORIと同じ結果になるというだけで
ORIとは動作は違う
この違いが問題点
色々あると書いたけど
少なくとも問題点が3つはある

825:774ワット発電中さん
23/05/01 18:31:27.08 Lc5kTXxh.net
>>824
メモリというか、ORI はレジスタと即値の OR演算なんだが。
まあそれをメモリと便宜上言ったとして、その場合では問題無いんだろ?
じゃあなんの話をしてるんだ?

826:774ワット発電中さん
23/05/01 18:56:57.49 Pp96qEyO.net
少なくとも問題点が3つはある

827:774ワット発電中さん
23/05/01 19:00:06.16 Pp96qEyO.net
ちょっとは自分の頭で考えなよ

828:774ワット発電中さん
23/05/01 19:21:55.10 gOGq7WiN.net
>>816
>PIND というハードウェアがその書き込み動作を受けて PORTD のビット反転動作をさせてる。
 その「PIND というハードウェア」の内容がよく分らないけど、
CPUマニュアルのI/O回路図(たとえばmega328のFigure 13-2. General Digital I/O)は
出力ラッチPORTxnへのWRXというクロックパルスが記載されている。
この信号は他のWPXやRRXと同様にCPUが命令コードをデコードして
作ったものだと思うけど異なるのか?
I/O回路ハードウェアの例外として、この信号だけが特別製なのか?
特別製なら、ではその回路はどこに存在するのか?
なぜI/O回路図に記載されていないのか?
このビット反転反転機能はtinyシリーズから追加されたのだが、
ともかくその発売時点で命令マニュアルには記載して欲しかったな。
CPUマニュアルで1行チョットの説明で終わらせるなんて、
まるで妾の子のような扱いで、出力反転命令があまりに可哀想w

829:774ワット発電中さん
23/05/01 19:32:03.38 gOGq7WiN.net
>>822
あいまいで何だか意味がよく分からないな、
CPUはもっとYes、Noがハッキリしてるものだと思うけど。

830:774ワット発電中さん
23/05/01 19:51:47.77 Pp96qEyO.net
コアとペリフェラルの区別がつかないアホ

831:774ワット発電中さん
23/05/01 20:16:51.86 Lc5kTXxh.net
>>828
>その「PIND というハードウェア」の内容がよく分らないけど、
>>787

832:774ワット発電中さん
23/05/01 20:23:24.83 Lc5kTXxh.net
>>827
いやーさっぱり分からんわ
まさかだけど、ORI の I が他の一部命令の規則に取り入れられてる I/O の意味だと思ってるわけじゃないよな?

833:774ワット発電中さん
23/05/01 21:24:13.34 72e2cbo+.net
今どきのガキンチョはワンチップマイコンしか知らないから区別がつかないんだろう
じじいたちは自分でアドレスバスをデコードしたりアクセスタイムを計算しながらRAMやROMを接続したりしてCPUとメモリやIOの関係を学んできたんだよ

834:774ワット発電中さん
23/05/01 23:01:20.59 nBr9ONhg.net
>>828
インストラクション・マニュアルに記す
理由は全く無いと思うが?
トグルにしてもデータシート中にわざわざ 
見出し付き(Toggling the Pin)で書いてある
データシートをマトモに読まず「ボクの
考えが絶対なんだ!」って駄々をこねる
人には何言っても無駄か…

835:774ワット発電中さん
23/05/01 23:21:34.19 PvBy0q+N.net
>>828
>>787 の回路図の読み方を教えてあげる。
まず青矢印の先の方にある Dラッチが PORTx レジスタの bit n な。レジスタの正体はこれ。
んで信号 WRx は、CPU が PORTx に対して書き込みを行うときのパルス、WPx は PINx に対して書き込みを行う時のパルスな。
んで WPx はデータ線と AND が取られてるだろ。これが PINx の bit n に 1 を書いたことの検出。
この次の OR によって、PORTx への書き込みか PINx への 1 の書き込みで PORTx のラッチパルスを作ってる。
でそのパルスで何を書くかだが、それは青矢印のセレクタが決める。
PINx へ 1 を書いた場合は PORTx の当該ビットの反転が、PORTx への書き込みだった場合にはデータ線が選択される。
んでこれらの回路は CPUじゃなく、I/O の回路な。
CPU はトグルがどーたらなんてことは気にせず、インストラクションの通りにデータ線に 1 を出し書き込みパルスを出してるだけなのな。
それで何が起こるかなんて CPU は知ったこっちゃないのよ。
これで分かるかな?

836:774ワット発電中さん
23/05/02 08:43:44.19 4AdwuNry.net
お互いにCPUという単語が指すものが違うから永遠に分かり合えないにだった。ちゃんちゃん

837:774ワット発電中さん
23/05/02 12:29:05.24 xvkYfrYD.net
>>835
AVRを始めた時から何回も見ている回路図(構成図 ?)だけど、
叮嚀に文章で説明してくれてアリガト。
でもねぇ、一目見れば分かることを文章で長々と書かれても・・・
3、4行読んでイヤになって諦めた、申しわけない。

838:774ワット発電中さん
23/05/02 13:14:59.84 xvkYfrYD.net
>>836
多分、CPUというよりI/Oに対する考え方の問題であり、
スレ違いは微妙で大した事では無いと思う。
太古の昔からCPUのDOはラッチ、DIは3ステートゲートと決まっているけど、
最初から >>835
>PINx へ 1 を書いた場合は PORTx の当該ビットの反転が、
と書いてくれればまだ良かったのに、
>PIND というハードウェアがその書き込み動作を受けて PORTD のビット反転動作をさせてるな。
なんて書くから、
「PINDというハードウェアが?書き込み動作を受けて?
 入力回路の3ステートゲートではなくて?
 何それ?どこにあるの?入力ハードウェアは出力とは関係無いだろ?
 CPUは命令をデコードして反転出力用のラッチパルスを作ってるだけだぞ」
と疑問符で頭がいっぱいになってしまった。

839:774ワット発電中さん
23/05/02 13:24:11.74 xvkYfrYD.net
ま、CPUマニュアルのI/O回路図の中身はともかく、
命令一覧表には出力ビット反転命令"TBI Portx,n"を記載して欲しかったな。
アセンブラを変更しないといけないから無理だろうけど。
そう言えば思い出したけど、昔、サブルーチン・コール命令を
ニーモニックでBAL(ブランチ&リンク)と記述するCPUがあって驚いた。
無操作命令をNOPではなくてPCI(Program Counter Increment)なんてどうだろ?
皆様、大変お騒がせしました、ではこれにて。

840:774ワット発電中さん
23/05/02 14:25:11.13 fedQzrSD.net
>>838
I/O と聞いて GPIO に限ったことしか想像できない人なんだろうね。
CPU の DO とか DI なんて言ってるあたりでお察しだけど、一言 >>830 これに尽きる。
でも、TIMER なんかのひとつひとつの動作にもニモニックを割り当てろなんてことはさすがに言わないでしょ?
それは何故だろうと立ち返ってみたらどうだろう。
これはおっさんの自己満と言われることは承知だけど、たとえば Z80 という CPU と 8255 という PPI について調べてみたらどうかな。
この PPI は GPIO的なもので、CPU との関係と照らして考えるとこれまで言われてることが分かると思うよ。
ついでに DO やら DI やらが CPU の話かってことも分かる。

841:774ワット発電中さん
23/05/02 18:45:24.58 cOaNdBof.net
もう終わりにしようと思ったけど、AVR仲間としてどうしても君の将来が気になったので。
 書いている事が抽象的で中身が何も無いぞ。もう少し論理的に具体的に書いた方が良い。
それとCPUの勉強をもっとしてくれ。理解が浅すぎる。
健闘を祈っている。

842:774ワット発電中さん
23/05/02 19:40:23.00 d4gMR+m7.net
tiny10 のブロックダイアグロム
CPU はマーカーで囲った部分だと思うけど、どう思う?
WDT はちょっと特殊だったり INTERRUPT UNIT は CPU に含むかで異論はありそうだけど。
URLリンク(i.imgur.com)

843:774ワット発電中さん
23/05/02 19:48:38.80 +QyZuLN/.net
>>842
URLリンク(microchipdeveloper.com)

844:774ワット発電中さん
23/05/02 19:54:12.50 d4gMR+m7.net
>>843
ああ、明確なのがあったのか。失礼しました。
メモリも含んじゃってるのね。
ただ言いたいことは変わらなくて、PORTx は CPU の外側だよねってこと。

845:774ワット発電中さん
23/05/02 20:04:36.19 r1izDMGH.net
ここのサマリー動画見るだけでも有用だよね
(ここの動画見てればTBIが必要なんて間違っても
ならないと思うんだが…)

846:774ワット発電中さん
23/05/02 22:57:04.89 BUuYxSJQ.net
>>844
こことデータシートを見ればほとんどの
問題は解決するよ
(メガネの姉さん、なんか迫力あるよなw


847:774ワット発電中さん
23/05/03 10:48:57.33 cE7EupMi.net
ノイマン型コンピュータは3つのユニットで構成される。
CPUにメモリは含まれない。
CPU:Central Process Unit
I/OU:In & Out Unit
MU:Memory Unit

848:774ワット発電中さん
23/05/03 12:02:42.68 oCtqWMQV.net
>>847
ハーバードアーキテクチャは厳密には
ノイマン型じゃないと思うが?

849:774ワット発電中さん
23/05/03 12:21:23.24 QMkPy9yb.net
スーパーアスリーテス吉田沙保里さまについて語る文脈で
A「平均的人類の男性には
 腕が二本と足も二本備えている。
 頭部は胴体に含まれない」
B「吉田沙保里は 厳密には
 人類の男性じゃないと思うが?」
こう置き換えてみると、
たとえ発言に虚偽が無いとしても、
AさんよりもむしろBさんが失礼な気がするのは
気の迷いだろうか? 知らんけど(^p^;

850:774ワット発電中さん
23/05/04 09:37:30.58 iGfQbr0a.net
↑たとえが難しいよ。
AVR専用というわけではないが、24点までのDI/Oデバッグ用のSW/LEDボード
CPUと動作電圧が異なる回路(124Vのフォトカプラなど)にも使えるように
抵抗はSIPのソケット交換式にした。
ケーブルは過去のものが使えなければ、必用に応じて適当に作る。
URLリンク(i.imgur.com)

851:774ワット発電中さん
23/05/04 14:21:43.00 eQIYLuJL.net
随分脈絡無くぶっ込んできたな

852:774ワット発電中さん
23/05/04 23:00:11.71 GRnlPt7W.net
自己顕示欲の塊

853:774ワット発電中さん
23/05/04 23:50:32.67 AX95prI5.net
マッケンジー

854:774ワット発電中さん
23/05/05 11:42:34.68 fyJ2wt//.net
皆様には色々と御不満もおありでしょうが、「スレの恥は掻き捨て」でやってます
お気に入りのAVRのために歯をくいしばって、生き恥をさらしながら頑張ってます
しょうもない画像だよね、いいかげん誰か作品画像をアップしてくれよ

855:774ワット発電中さん
23/05/05 11:48:36.52 fyJ2wt//.net
つまらん画像見せられるぐらいなら、過疎化の方がまだマシ、という意見もあるか・・・

856:774ワット発電中さん
23/05/05 11:49:39.61 6selGOOv.net
いいだしっぺの法則

857:774ワット発電中さん
23/05/17 19:56:02.67 xN9c3ykL.net
>>39
メーターの横のスイッチみたいなのは何です?

858:774ワット発電中さん
23/05/17 20:55:31.67 2FbfGD6b.net
5/3.3Vの切り替えとセルフパワーかISP供給するかじゃね

859:774ワット発電中さん
23/05/21 23:37:05.37 bl3sao5t.net
まっ、TikTokだのyoutube だのを嬉々としてやってるようなのに比べりゃ遥かにおとなしい自己顕示だわ。

860:774ワット発電中さん
23/05/22 12:40:20.78 Arwsbt3B.net
よ〜し、はんだツンツンしちゃうぞ〜

861:774ワット発電中さん
23/05/22 13:31:05.73 Qgu6l9ps.net
T.U.GO!
Ago!

862:774ワット発電中さん
23/05/25 09:17:55.97 oN+Z7UKh.net
>>857
カメレス来たw
ターゲットへの供給電圧切り替え(5v、3,3v、無し(ターゲット側に電源あり))
書き込み低速モードと通常モード切り替え(自動対応のファームにすれば不必要)
の2つです

863:774ワット発電中さん
23/05/25 10:16:24.08 oN+Z7UKh.net
>>859
いや、このスレは、もともとそういうスレdふぁったんじゃ?

864:774ワット発電中さん
23/05/25 17:23:22.81 I8dXBk4A.net
出る杭は打たれる

865:774ワット発電中さん
23/05/25 18:14:57.36 LKKi+b50.net
ストッキング電線するしな

866:774ワット発電中さん
23/07/09 19:08:59.67 iAiKqi/pM
世界最悪の殺人組織公明党強盗殺人の首魁斎藤鉄夫らテ口リストに乗っ取られた国土破壞省に天下り賄賂癒着しながら莫大な温室効果カ゛スに
騒音にコ囗ナにとまき散らして氣侯変動させて日本どころか世界中で土砂崩れに洪水,暴風.猛暑,干は゛つ,大雪.森林火災にと災害連發
させて大量殺戮して.工ネ価格に物価にと暴騰させて.住民の生活を破壊して私腹を肥やしてるクソ公務員個人に徹底報復しよう!東京都港区
赤坂2丁目17━1Оか゛クソ議員宿舍なのは有名た゛が「省庁別宿舎‐覧表』て゛検索すれは゛全国の公務員宿舎の位置か゛容易に確認できるので
拡声器や,騷音バヰクて゛乗り付けてフ゛ァンフ゛アンやりに出向いてやろう!もちろんカによる─方的な現状変更によって都心まて゛数珠つなぎで
クソ航空機飛ばして閑静な住宅地だろうと航空騷音まみれにして生活に仕事にと公然と妨害してるこいつら利権害蟲のことだから騷音なんて
どうということはないんだろうし,航空騒音に比へ゛れば屁みたいな騒音しか出せないた゛ろうが,遠慮なく大騷音まき散らしに出向いてやろう!
政府という傘で好き放題やってる公務員には個人攻撃か゛有効!図書館やらて゛ブァンブアンやって税金泥棒利権を徹底的に壞滅させるのも正義!

創価学會員は,何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ−か゛ロをきけて容認するとか本氣て゛思ってるとしたら侮辱にもほどか゛あるぞ!
hтΤРs://i.imgur、сοm/hnli1ga.jpeg


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

270日前に更新/223 KB
担当:undef