ゆるAVR ..
[2ch|▼Menu]
69:774ワット発電中さん
22/09/01 17:57:12.57 EEQX21sL.net
必要な人が居るかどうかわからないけれども
キーボードマトリクスです
この電卓の基板はテストパッドがついてるので、そこにはんだ付けして簡単に線を引き出せます
ただしキートップがシリコンゴムなのでキーの表示を変更したい場合は難易度高いです
キートップがプラのを買ってみたんですがテストパッドが無くて撃沈しました(レジスト剥がしという手もありますが)w
URLリンク(downloadx.getuploader.com)

70:774ワット発電中さん
22/09/01 19:15:24.55 UUGbjrxg.net
>>69
いいね

71:774ワット発電中さん
22/09/01 20:11:37.95 SoWtMoYs.net
>>69
どれか一つのキーをShiftキーのように決めておいてキーが押されたらLCDにキーレイアウトが表示されるようにするとか
Shiftキーを押すごとに異なるキーレイアウトを表示し何かキーが押されたらそのキーにマッピングされた機能が入力される
キーマッピングは3セットくらい持っておけば足りるかな

72:774ワット発電中さん
22/09/01 21:57:10.09 EEQX21sL.net
全キー表示しちゃうと表示領域がもったいないので
DOSみたいに上段1列がいいかもしんないですね

73:774ワット発電中さん
22/09/02 13:25:24.57 SzVJqloR.net
見た目から攻める(なんでぼかしてる)w
URLリンク(downloadx.getuploader.com)

74:774ワット発電中さん
22/09/03 14:54:10.15 7kNRp7Xd.net
>>61
DB命令のバグってどんなの?
バグではないけど、.db でバイト単位のデータの定義のしづらさはなんとかならないのかね。
2バイト単位でしか定義できず、奇数バイト数定義だと隙間が 0埋めされちゃうのがクソ面倒。
行末に ¥ 付けて改行すれば折り返しだけは見やすくできるけど、ラベル振れないから限定的。
アセンブラ丸ごと作ろうとは思わないけど、せめてイカしたプリプロセッサ作れたらいいんだけどな。
でも.macro やら #define やらまで考えるときちんとしたプリプロセッサ作るのも容易じゃないのよね。

75:774ワット発電中さん
22/09/05 07:33:59.94 8KbBBgHJ.net
>>74
AVRを始めた頃の古い話でよく覚えていないが、文字列2個を続けて定義すると
前の文字数が奇数個か偶数個かで、後ろの開始アドレスが一つズレる、だったかな

76:774ワット発電中さん
22/09/05 11:49:46.29 eapgSxLV.net
それ、アライメントの作用であってバグとは違うような

77:774ワット発電中さん
22/09/05 15:17:56.72 wN2nv5hf.net
統合環境と親和させられるならアセンブラを丸ごと自分で作りたいな。
シミュレータでデバッグするときのブレークポイントがソースコード上に張れればいいんだけどな。
どこかにアドレスとソースコードの行番号の対応を持ってるんだろうけど、そういう仕様ってどこかに公開されてるのかな。

78:774ワット発電中さん
22/09/05 16:15:30.69 hGYujQmy.net
マイクロチップスタジオ、重くて使う気がしないので
軽い統合環境ほしいですよね~

79:774ワット発電中さん
22/09/05 16:50:23.69 uJKyzKIK.net
>>78
マイクロチップスタジオ立ち上げなくてもシミュレータが動かせればいいんだけどな。
でもシミュレータは独立の exe になってるから、単体で使える可能性もあるんかな。
でもレジスタやらメモリやら I/O の状態表示やデバッガの操作インタフェースを考えると何らかのフロントエンドは必要で、大人しくマイクロチップスタジオ使っとく方がいいのかなぁ

80:774ワット発電中さん
22/09/05 18:12:49.93 DT9Cshx0.net
メチャ大事なポイントだよね
→ ブレークポイントがソースコード上に張れればいい
→ 何らかのフロントエンドは必要

81:774ワット発電中さん
22/09/05 20:06:05.27 hGYujQmy.net
ちなみにシミュのexeってどれ?、探せんかった

82:774ワット発電中さん
[ここ壊れてます] .net
>>81
よく見たら単体のというのは語弊があったかもしれないけど、Atmel Studio 7.0 では atbackend.exe だと思う。

83:774ワット発電中さん
[ここ壊れてます] .net
その名前じゃわからんわなあw
ポチっとしてみたけどなんも起こらんかった

84:774ワット発電中さん
22/09/06 01:32:35.92 HzpZuLKE.net
>>83
標準入出力か何かで情報交換するんかな?
そこら辺スルーさせつつ記録する中継exe 作れば解析はできそう

85:774ワット発電中さん
22/09/06 09:34:54.59 pon7wDCh.net
標準エラー出力を開発統合環境のデバッグペインに垂れ流してくれるとデバッグが捗るんやけどな・・・

86:774ワット発電中さん
22/09/07 17:06:47.83 Dm0Rj0Qf.net
qfp32の3281番ピンの角、欠けてることになってるけど
全然わからん・・・

87:774ワット発電中さん
22/09/07 21:03:29.67 HsWFZ13W.net
〇の刻印じゃねえの?

88:774ワット発電中さん
22/09/07 21:28:33.59 Dm0Rj0Qf.net
裏向きに貼り付けたのでw

89:774ワット発電中さん
22/09/07 23:10:24.57 HsWFZ13W.net
pin3とpin5がGNDらしいので テスターで各辺の三番目‣五番目間の導通を・・・

90:774ワット発電中さん
22/09/07 23:24:18.97 Dm0Rj0Qf.net
>>89
なるほど、無事判別できました、ありがとう

91:774ワット発電中さん
22/09/08 00:24:27.67 L8oN2hgA.net
刻印薄くて表からもよく分かんないのあるよね

92:774ワット発電中さん
22/09/08 03:18:29.62 vwQzZKDK.net
やっぱり表向きにしようと剥がした
接着剤が詰まって1ピンマーク見えませんw
テスターえらいw

93:774ワット発電中さん
22/09/08 11:00:24.27 o+LGhEBF.net
自作ボードを超えて
今、時代の最先端だよ
自 作 の 壱 ピ ン 記 号

94:774ワット発電中さん
22/09/08 15:12:13.00 +IoYMZMu.net
>>93これか?
これのQFP版を作って…って老眼には見えねー
URLリンク(www.aitendo.com)

95:774ワット発電中さん
22/09/08 15:46:48.39 vtlAhElY.net
>>94
信号名ではなくてピン番号だけでもいいから
どこかでシール作って売り出してくれないかな

96:774ワット発電中さん
22/09/08 16:08:24.13 8ZI7ehgQ.net
>>95
ラベルシールエディタで自作したら?
シールはサイズ違っても適当に切って使えばいいし。
フリーのマクセルのラベルプロデューサーはオブジェクトの位置やサイズ 0.1mm 単位で指定して原寸印刷できて結構便利だよ。

97:774ワット発電中さん
22/09/08 16:13:38.84 o+LGhEBF.net
一方ろしあは マジックで点を打った・・・
URLリンク(o.5ch.net)

98:774ワット発電中さん
22/09/09 01:54:53.72 wVpnGjEA.net
たしかにQFPとかSOPのICをひっくり返して空中配線するとき白いペイントマーカーを使うなぁ
SOPも1ピンと16ピン/14ピンを間違えないように1ピンに点を打っとく(´・ω・)

99:774ワット発電中さん
22/09/09 08:01:48.12 P6+mmWez.net
今日9月9日は重陽の節句
「菊の香や 奈良には古き 仏たあち」 (芭蕉)
新暦じゃ菊なんかまだ早いっちゅうのw

100:774ワット発電中さん
22/09/09 08:03:55.64 P6+mmWez.net
↑あ、あが余計だ! 芭蕉君怒るだろうな

101:芭蕉君
22/09/09 08:46:26.30 3y2l755Q.net
激おこぷんぷん丸だゾ☆彡

102:774ワット発電中さん
22/09/09 22:23:21.31 wVpnGjEA.net
そういえば、いつの間にか「カム着火ファイアー」とか言わんなったな(´・ω・)

103:774ワット発電中さん
22/09/10 06:43:13.95 R0MgawJT.net
ムカ着火ファイアー!やぞ

104:774ワット発電中さん
[ここ壊れてます] .net
カム着火インフェルノとの近藤勇足

105:774ワット発電中さん
22/09/12 22:52:18.78 mwiua78k.net
455kHzのセラミックフィルター(セラロックでもセラミックレゾネータ―でもなくラジオに使うフィルターのほう)があったからそれで発振させてみた
既に書き込み済みのAVRはちゃんと発振してクロック周波数比相当に遅くなった
別のHEXを書き込もうと思ったらUSBaspがエラーになった
SlowClockのジャンパーしてもAVRDUDEの-Bオプション付けてもダメだ
まさかとは思ったけど別の時期に買ったもう一つのUSBaspで書き込んでみたらジャンパーもオプションもなしでそのまま455kHzのAVRに書き込めた
USBaspって書き込み済みのファームのバージョン確認することってできるのかな?新しいファームを上書きするしかない?

106:774ワット発電中さん
22/09/12 23:19:12.44 78DvyEnq.net
本家のファームがアップデートされた日付と、買った日付を比べて
買った日付より新しいファームが入ってるわけは無いので
最新じゃないことの確認くらいはできるんじゃないかな
中華usbaspの場合、ハードを変えてあったりして
独自のファームになってることもありだから、気を付けて
うっかり本家のでアップデートしたら文鎮化なんてこともあるよ


そもそもプロテクトされてなくて読みだし放題という落ちはないかなw

107:774ワット発電中さん
22/09/13 01:21:08.92 +kRyKu9G.net
1台は中途半端な「追記ロック」がされてたけど読み出しは2台とも出来て一応flashのHEXとかFuseビットとか保存しといた
EEPROMは2台とも空だった
2台は微妙に違っていてジャンパのシルクとかも違ってた
URLリンク(i.imgur.com)
上が最初に買ったほうでJP3をショートしても遅いAVRに書き込み出来ない
下はあとで買ったほうでJP3をショートしなくても遅いAVRに問題なく書き込み出来た
いろんなサイト回ってみたけど本家の最新より新しいのもあるみたいでよくわからん
本家の最新はTiny10とかで使うTPIに対応してると書いてあるけど別のサイトではバイナリ(HEX)は古いからTPIに対応してなくて自分でソースからビルドが必要とか書いてあるところもあった
まあ当分TPIとか使う予定はないけど…

108:774ワット発電中さん
22/09/13 02:11:12.59 ZVXpkW5j.net
本家のファームで動くことが確認できてるなら、アップデートしちゃったほうがめんどくさくないかも
うちにあったのは見事に文鎮化(軽すぎて文鎮にもならんかったというのはナイショ)
いろいろよくわかってなかったときだったから捨てちゃったけど
どうせピンの接続がちがってるだけだろうから、ソースからビルドすれば、多分使えたんだろうなあと思う
お手軽だからか、回路図ついてるからか、自作してる人よく居るね
で、自分で機能追加しちゃう猛者までwで、ファームがよくわからん状態に
というわけで、本家回路で作っとけというわけでKicadの練習がてら作ったんだけど
いろいろ間違えてて、あれ、なんでここの線細い?とかUSBコネクタが逆とか、かわいそうな基板が
たくさんできてしまいましたw

109:774ワット発電中さん
22/09/13 10:14:08.60 rjzse0gr.net
本スレの方がひどい有り様になってるなw

110:774ワット発電中さん
22/09/13 11:12:30.44 6JjXKSTn.net
ここもそのうちに「ひどい有様」になる
どこだって必ず「ひどい有り様」になる
なぜなら日本人だから

111:105, 107
22/09/13 14:05:39.78 +kRyKu9G.net
2台あるうちの古いほう、JP3ジャンパしても遅いAVRに書き込めなかったほうのファームを書き換えてみた
とりあえず本家の最新版2011-05-28
JP3ジャンパすると遅い(455kHz)のAVRにも書き込みできるようになった
もう一台のほうはJP3ジャンパなしでも遅いAVRに書き込めるからもっと別のファームが入ってるんだろう
本家の最新(2011-05-28)はVer.1.04らしいけどgithubに1.06とか1.08が存在するらしいことが書いてある
もしかしたらそれかもしれないし…

112:774ワット発電中さん
[ここ壊れてます] .net
いろいろ検索したついでにちょっと出てきた情報
5V/3.3V切換えジャンパはあまり有用ではないということ
3.3Vに切り替えてもターゲットに供給する電源は3.3VになるけれどMISO,MOSI,SCKなどの信号は5Vのまま
安いUSBaspに搭載されている3.3Vレギュレータの近くにバイパスコンデンサがない
(ウチのやつは2台ともレギュレータがXC6206-3.3Vが載っていたがコンデンサがない)
入力はUSBコネクタの近くにあるコンデンサが多少効くかもしれないが出力はケーブルの先のターゲットのところまでいかないとコンデンサがない

113:774ワット発電中さん
22/09/13 17:21:51.26 ZVXpkW5j.net
この場合のレベル変換は、双方向じゃないので抵抗分圧でも、いけるそうな、でももっと簡易的には
5Ⅴ出力から3.3vの入力へのラインに電流制限抵抗を入れるだけでもいけちゃうって話を聞いたことあります(やってみてないけど
しかし、波形がかなり鈍るそうなので高速ではだめかもしれない、真面目にやるなら、まともなレベル変換チップを入れたほうがよさそうですね
やっぱり、改良版を作っときますか

114:774ワット発電中さん
22/09/13 18:41:43.37 ZVXpkW5j.net
グーグル先生に質問してきましたw
制限抵抗式は、5v出力→抵抗→ダイオード→3.3vへクリップという方式のダイオードを省略し、代わりに入力の保護ダイオードを利用してるものらしいです
制限抵抗でいいんかいという疑問が晴れました
実際上問題はないのでしょうが、ダイオードくらい自前でいれとけば回路見た時に、なるほどと理解できそうなもんですがw
ターゲットへの供給電圧を切り替えればクリップ電圧も切り替わるのでめんどくさくなさそうです

115:774ワット発電中さん
22/09/13 19:32:55.00 ZVXpkW5j.net
>>111
私もググってみました
1.06から応答がない場合にSCKを自動で遅くする機能が追加されたみたいですね

116:774ワット発電中さん
22/09/13 19:51:17.19 ZVXpkW5j.net
本家の回路で謎なところ、USBの信号が3.3Vなのでツェナーでクリップしてるようなんですが
ツェナーの電圧が3.6vなのはなぜ~w

117:774ワット発電中さん
22/09/13 22:14:37.53 +kRyKu9G.net
ここのフォーラム少し読んでるんだけど
URLリンク(forum.arduino.cc)
最初の人が5個のHEXファイル載せてるけどそのうちの「chinese1.hex.txt (9.58 KB)」が>>107の2台目のジャンパなしで遅いやつに書き込める方から吸い出したHEXと完全一致した…
名前がchinese1っていうのがちょっと引っかかるんだけど…う~ん…まあ動いてるからいいか、でもできればこれのソースも見てみたいかも
1台目から吸い出したHEXはネット上に転がってるHEXと一致するものがまだ見つかっていない(古いのかそれとも改変してるのか、まあいいけど)

118:774ワット発電中さん
22/09/13 22:42:25.47 ZVXpkW5j.net
1.08のソース有った
URLリンク(github.com)
ドライバーを入れなくても、ウィンドウズが持ってるドライバで動くようになったみたいです

119:774ワット発電中さん
22/09/13 22:49:27.95 ZVXpkW5j.net
レベルシフト問題は、とりあえずは基板いじらずにケーブルに抵抗入れとくという方法でもよさそうですね
三端のコンデンサなしもんだいは、使ってる三端によっては発振しちゃうみたいですね
基板にコンデンサをはんだ付けして対処してるようです
あとは、改造して使うか、基板起こすか

120:774ワット発電中さん
22/09/13 23:03:11.41 ZVXpkW5j.net
READMEに書いてあるバージョンは1.4とかになってるしよくわかんないですねこれ
ソースのコメントには、* Last change....: 2020-11-26 ってあるから、
本家のよりは新しいみたいだけど、同梱のHEXはファイル名が新しくない
自分でビルドしろってことですか、そうですかw

121:774ワット発電中さん
22/09/13 23:39:58.16 +kRyKu9G.net
なるほど、ということはそこの1.08が今のところ最新っていうことになるのかな
1.08のusbasp-1.08\bin\firmwareにあるのはどうやら本家のやつらしい、1.08のビルド済みHEXはusbasp-1.08\firmwareのなかのソースと同じフォルダにあるmain.hexがMega8用、m88.hexがMega88用みたい(たぶん)
とりあえず本家の1.04までとそれ以降のGitHubの1.06、1.08あたりが本流ということのようだけど(どうでもいいかもしれないけど)それ以外のもあるようだ
というのも>>117に書いたchinese1.hex(うちにある2台目から吸い出したものと一致したやつ)が気になったので調べてたらどうやら正体が分かった
売られているUSBaspは微妙にいろんなバージョンがあるけどきちんとメーカー名の入ったものはそう多くはなくその中の一つに「LC Technology」というシルクが書かれている基板がある
これ用のファームが「usbasp-lc-technology-2015-12-29-atmega8.hex」というファイル名でネット上にいくつかあってそれと一致した
最新のオフィシャルWebページが不明だけどアーカイブの
URLリンク(www.chinalctech.com)
がそうらしい

122:774ワット発電中さん
22/09/13 23:44:45.68 +kRyKu9G.net
ちなみに 「chinese1.hex = LC TechnologyのHEX = ウチの2台目から吸い出したやつ」 はここでも拾える(他にもあると思うが)
URLリンク(github.com)
のなかのusbasp-lc-technology-2015-12-29あたり

123:774ワット発電中さん
22/09/14 00:08:09.24 ybCaxx2e.net
>>116
たしかにこの3.6Vは謎だけど正常時の電圧というよりはサージや静電ノイズ等からの保護って感じかな

124:774ワット発電中さん
22/09/14 05:50:40.21 fbH6LXxW.net
寝て起きたらひらめきが有ったので回路図をもう一度見てみた
なるほど~、USBバスは双方向なところへ、この回路は5vの信号を
3.6Vに落とすようになってる、一方通行のレベルシフトだ
PCから見ると、ツェナーが直接ぶら下がってるので、3.3v以下のツェナーだと具合が悪い
というわけで、3.6Vになってると理解した

125:774ワット発電中さん
22/09/14 06:08:32.06 fbH6LXxW.net
MISO、MOSI などのレベルシフトにつての考察
幸いに双方向で有る必要はないので出力は抵抗一本ですますことができる
だがしかし入力はどうだろう、入力のスレッシレベルがおよそvcc/2だから
ターゲットからの出力が崩れてなければそのまま受けることができる
だがターゲットの電圧が2Vだったりすると、ハイレベルが認識されなくなってしまう
書き込み機を3.3Vでうごかしてやるとうまくいくんじゃないかとひらめいたが
ほんとだろうかw
暇な人は検討してみてくださいやし

126:774ワット発電中さん
22/09/14 08:17:05.07 ybCaxx2e.net
そうか、USB→Mega8方向ではなくてMega8→USB方向のためのツェナーか
USBasp→ターゲットについてはMega8Aを3.3Vで動かせばっていうのは自分も考えたけど仕様上はちょっと無理のよう
Mega8Aのデータシートのグラフに補助線を引いてみた(実際にはまあまあ余裕があるから動くだろうけど)
URLリンク(i.imgur.com)

127:774ワット発電中さん
22/09/14 16:03:27.07 fbH6LXxW.net
実力値で動いちゃうかもしれないって感じですかね
本気で幅広いターゲット電圧に対応するなら
真面目にレベルシフト回路を入れたほうがめんどくさくないってところでしょうか
USBのことをググってたら信号レベルが2vなんてのが出てきて
あれ?3.6vツェナーの立場は?ってなってます

128:774ワット発電中さん
[ここ壊れてます] .net
信号レベル2vの謎
どうもスレッシレベルが2vってことのようで
実際何ボルトで出してんのか不明でした
でも3.3あたりでだしてんでしょうね、多分

129:774ワット発電中さん
[ここ壊れてます] .net
なんとなく JS で AVRrc の簡易エミュレータを作ってみた。
I/Oの動作は何も再現しない CPU だけでクロックタイミングも合わせてないけど、Celeron N4120 な PC の Webブラウザ上で実機より速く動いてる。
今時の JS はすげーな

130:774ワット発電中さん
[ここ壊れてます] .net
103 だと思って付けてから、よく見たら 10Jだった・・・

131:774ワット発電中さん
22/09/24 01:35:02.87 ISzfNovp.net
USBASPを一個つくって、1.08のファームを入れてみた(main.hex)
新品チップに書き込むときも、スロージャンパを切り替えずに
自動でクロックダウンしてくれるのが確認できた
しかもジャンパで落としたときより、かなり速い、段階的に落として通信できたところで
動くようになってる感じかな?
こっちがメインになりそう、今までのは予備としてそのまま置いとこうかな

132:774ワット発電中さん
22/09/24 07:06:32.86 ISzfNovp.net
スロージャンパ刺しても自動と速度変わらんかった、
以前のが落としすぎだったのかな?(未確認)

133:774ワット発電中さん
22/09/24 08:08:03.64 ISzfNovp.net
あとはドライバー問題ですね、 main_winusb.hex を使えばwinusbで動きました
が、すでにlibusbkが入っているのでZADIGでリプレースして試したので、
すっぴんウインドウズですんなり認識してくれるのかは試せてません

134:774ワット発電中さん
22/09/24 09:34:41.59 ISzfNovp.net
すっぴんウインドウズ(win10)で試してみました
確かにウインドウズの持ってるWINUSBドライバで認識はするのですが
自動認識してくれませんでした
コンピューター上の利用可能なドライバーの一覧から選択してやらないといけません
これなら、ZADIGでぽちっとなと、するほうが簡単なので
無理にWINUSBバージョンに変更することはないかなと言う感じでした

135:774ワット発電中さん
22/09/24 18:59:00.93 zDxadu+7.net
USBASPの10ピンコネクターにはtx,rxがつながってるけど、ファームが対応してないので使えない
対応ファームを作ってる有志も居るようだが、ベースになってるファームがちょと古い
そこで、FT232あたりを載せて、そっちに任せてはどうかと思ってみる
そうすれば、bitbangライターとして動作可能にもなるので
自作したときの「最初の書き込みどうするの?」が解決するし
アップデートのときに「他のライターが要る」問題も解決する
どうこれ

136:774ワット発電中さん
22/09/28 09:32:17.55 GHzk9DO4.net
以前にbitbang試したときは全然苦労した記憶が無いのに、
何故か動かせない、う~む
コンパイルし直せ的なメッセージでるが
前は、すんなり動いた記憶しかない
avrdudeのバージョン依存か?まいったな

137:774ワット発電中さん
[ここ壊れてます] .net
avrdude 7.0でスタティックリンクになって、リビルドしろメッセージは出ない模様
が、デバイスから応答がないから接続を見直せと宣う、一応動いてるようだが
接続間違えてるようには見えないんだが・・・・詰まった

他のライターあることだし、まあいっか

138:774ワット発電中さん
22/09/29 01:04:17.77 ZjxpdL6S.net
てす

139:774ワット発電中さん
22/09/29 01:06:46.15 ZjxpdL6S.net
おおぼけかましてた
slkとselfを取り違えてた
信号線しか見てなかったよw
あっさり動いた
usbasp + bitbang + usbuart
miso mosi sck rst に抵抗入れて3.3V対応
downloadx.getuploader.com/g/mcnc/492/bitbang.png
avrdude 7.0はここ
github.com/mariusgreuel/avrdude/releasesm/g/mcnc/492/bitbang.png

140:774ワット発電中さん
22/09/29 01:11:04.22 ZjxpdL6S.net
あれ、リンクがおかしくなった
avrdude 7.0はここ
URLリンク(github.com)

141:774ワット発電中さん
22/09/29 13:29:14.86 PbKe0I4J.net
どんまい

142:774ワット発電中さん
22/09/30 22:48:08.48 IRwPxoJE.net
昔買ったAT90S2313でちょっと遊んでいる
PICで言うところの16F84Aみたいにすごくシンプルで隅々まで理解しやすいな
-10っていう10MHz品と-4っていう低電圧まで使える4MHz品があるけど-10でも5Vで20MHzで動いた(Lチカだけど)
今、12MHzのクリスタルで出るUARTの最高速度750kbpsでAVR→PC方向に少しデータを送ってみたけど特に問題なく送れてちょっと拍子抜けした感じ
PC→AVR方向でも試してみるか…

143:774ワット発電中さん
22/10/01 07:40:25.15 vXGV/ft6.net
懐かしや、私の「初めてのAVR」
ワンチップCPUをPIC16F84で始めて、すぐにこれに乗り替えた。
思えば遠くまで来たもんだ。

144:774ワット発電中さん
22/10/01 11:10:20.15 E3UN6N5j.net
今数えたら私の所にも未使用AT90S2313が19個残っていた。
AVRの魅力は何と言っても、<汎用レジスタが32個もある>だと思っている。
ザイログZ8みたいに複数組みあればもっと良かったけど、上を見ればキリが無いし、
下を見ればPIC16F84 がある事だしw
(PICファンの人、ゴメンネ、当時の話です)

145:774ワット発電中さん
22/10/01 11:16:36.49 Y+9JrJKP.net
ATTiny10 は 16個しか無いけどな。
SRAM も 32バイトしかない。
だがそれが楽しい。

146:774ワット発電中さん
22/10/01 15:47:03.12 E3UN6N5j.net
フト、16個を二組持つのと32個を一組持つのとでは、
どちらが良いんだろ、と5秒ほど考えてしまった。
(二組のどちらを使うかは命令あるいはフラグなどで切り替える)

147:774ワット発電中さん
22/10/01 16:16:04.03 XYdwzC7Y.net
(Cからアセンブラを呼び出すときとか)マニュアルで(フラグとか切換え命令で)切り替えてもいいけど、割り込みで自動的に切り替わって割り込みハンドラからの戻り(RETI)で元のレジスタグループに戻るみたいなのがいいか…
あれ、そういうのどっかで見たような気が…

148:774ワット発電中さん
22/10/01 16:24:03.04 XYdwzC7Y.net
「純正・互換ボード」っていう言い方もなんか

149:774ワット発電中さん
22/10/01 16:25:15.28 XYdwzC7Y.net
>>148は誤爆した失礼

150:774ワット発電中さん
22/10/01 19:27:27.48 FR/A23VB.net
>>146
考える余地なく32個を一組だよ。
たとえば16個2組だと、各処理は結局16個のレジスタだけで処理を書くことが基本となる。
そうやってレジスタ数を絞って処理が書けるなら32個一組のレジスタの内 16個を使っても書けるわけで、そういうレジスタ数の配分を16個2組といった枠に囚われず自由にできるようが間違いなく良い。
この4レジスタは割り込み処理専用ね、とかね。

151:774ワット発電中さん
22/10/01 19:29:22.95 FR/A23VB.net
ただし Z80 みたいにレジスタの役割が実質固定されてるようなアーキテクチャだと、バンク切り替え式の方が便利だろうね。
なぜならレジスタの住み分けができないから。

152:774ワット発電中さん
22/10/01 19:44:24.21 HVzuVxPS.net
Z80裏レジスタは割り込みでpush pop してると遅いときによく使ったけど
AVRみたいに他が充分速いうえに演算に使えるレジスタがいっぱいあると
出番ないよね
AVRは16ビットが扱いにくいのが玉に傷

153:774ワット発電中さん
[ここ壊れてます] .net
AVR32「せやろか?」

154:774ワット発電中さん
22/10/01 21:19:02.25 HVzuVxPS.net
AVR32はむりやりAVRって名前つけてるだけで、中身別モンって言うじゃない

155:774ワット発電中さん
[ここ壊れてます] .net
>>152 >AVRは16ビットが扱いにくいのが玉に傷
データ8ビット、基本命令コード16ビットのCPUだから、
そこまで要求したらCPUを設計した学生が可哀想w

私はむしろ制限ありとはいえ、16ビット演算命令があることに感心した。
32個もレジスタがあるから、全レジスタを指定する命令なら
命令コード16ビットのうち5ビットも消費してしまう。
CPUを設計するってトレードオフの連続なんだろうな。
あちらを立てればこちらが立たず、仕方がない諦めよう、みたいなw

156:774ワット発電中さん
[ここ壊れてます] .net
いや対象レジスタを制限して実現しよう、みたいなw

157:774ワット発電中さん
22/10/02 18:29:55.51 luTjMt5q.net
別に扱いにくくはないけどなぁ•••
まさかアセンブラで書いてんの?

158:774ワット発電中さん
22/10/02 18:38:52.76 tC77493y.net
でも EORI が無いのは納得いかない。
例えば EORI と引き換えに ORI を無くしても、
ORI Rd, imm

ANDI Rd, ~imm
EORI Rd, imm
で代用できるけど、EORI は ANDI や ORI じゃ代用できない。
一時レジスタ使えば 2命令で実現はできるけど、レジスタ数キチキチの時には厳しいんだよ。

159:774ワット発電中さん
22/10/03 07:35:59.54 cnZCQvXJ.net
>>157
数KB、せいぜい数10KBの小さな制御用CPUプログラミングで、
AVRを使う面白さや楽しさは、AVRの個性、特徴、持ち味などが
存分に発揮されるアセンブラ・プログラミングにあると思っている。
制約の多いレジスタ群の使い分けをプログラム設計時に検討するのも楽しい。
アセンブラじゃないと実現出来ない仕様もあることだし。

160:774ワット発電中さん
22/10/03 07:41:25.59 VOAe7Oy9.net
アセンブラパズルプログラミングとか
30年前に卒業したわ

161:774ワット発電中さん
22/10/03 08:17:16.03 rDUc9RFY.net
Cでやりたいことやれてるなら無理してアセンブラ使う必要は無いわな。なんならBASICだっていい。
アセンブラ持ち出さないとスペックが足りないならいくらか払ってマイコンをクラスアップすればいいし、AVR にこだわる必要もなくシングルボードコンピュータ使う選択肢だってある。
わざわざアセンブラ使うのは、やりたいことがそもそもアセンブラを使うという場合くらいだろうな。

162:774ワット発電中さん
22/10/03 08:31:16.32 1fwwVvb4.net
AVRで速度足りないからラズパイってことにはならないだろ。
むしろI/Oなんか遅くなるよ。
ARMもアセンブラで書くのか?OSは使わずに。

163:774ワット発電中さん
22/10/03 09:10:13.53 FnpjBqh6.net
スペックってのは速度とは限らんよ。
メモリが足りないとかストレージ欲しいとかいろいろあるでしょ。

164:774ワット発電中さん
22/10/03 10:46:31.79 0Fog0qd/.net
Cの人ってなぜかアセンブラをばかにするけど
Cなんて高級アセンブラって言われるくらいあせんぶらに寄ってる言語なんだからねw

165:774ワット発電中さん
22/10/03 11:05:42.59 wQEa/aCg.net
>>163
メモリ32KBのAVRから4GBのラズパイに切り替えなきゃって
そもそもおかしくね?

166:774ワット発電中さん
22/10/03 12:05:17.13 8tNpEug1.net
その間をしらないんだろ

167:774ワット発電中さん
22/10/03 12:24:35.60 5Lhgau8O.net
>>165
やりたいことができるならアセンブラで頑張る必要は無い、アセンブラを使うことが目的じゃなければね
という主張を補足するのに並行して
やりたいことができるなら AVR でがんばる必要は無い、AVR を使うことが目的じゃなければね
という文脈で言ったつもりだったんだけど、難しかったみたいね。ごめんね。
スペックというのが速度だけじゃなくメモリとかあるでしょと言ったら、今度はメモリに拘ってくるとか頭痛いわ。
温度測って Bluetooth や WiFi で飛ばすもの作りたいと思った時、あえて AVR で頑張ってもいいし別のもの使ってもいいでしょ。
AVR でもアセンブラでも、目的にも手段にもなるというお話をしたかっただけですよ。

168:774ワット発電中さん
22/10/03 12:45:32.28 7hjoWm9M.net
SBC使う選択肢「だって」ある
がどうして
AVRから次はラズパイ限定になるのか?

169:774ワット発電中さん
22/10/03 13:05:27.68 1fwwVvb4.net
>>168
じゃあ、お勧めのSBC教えて。

170:774ワット発電中さん
22/10/03 13:42:23.04 zeUicfzY.net
nanopi 面白かったよ。
iSCSI のネットワークディスクを USB HDD に見せかけるブリッジ作った。

171:774ワット発電中さん
22/10/03 14:01:11.44 aN3qFfHH.net
ラズパイまで行かなくても、picoだってだいぶ高性能だよね

172:774ワット発電中さん
22/10/03 14:30:13.17 w5hUSVzw.net
ゆるAVRのスレなんだし、基本AVRで遊ぶことが前提ってことでいいんじゃないの?
ファンが集まるところにやってきて、ほかのマイコンその他への乗り換えを勧めるのって、
感情を害する確率が高いことを分かっててやってるよね。
デリカシーが乏しいとか、悪意が強いとかそんな感じ。
マイコンの比較をしたいなら比較スレがあるからそっちでやれば良いと思うんだ。

173:774ワット発電中さん
22/10/03 14:48:40.46 I5+xpmUV.net
だれも乗り換えろなんて言ってないだろ。
(一連の書き込みがどうとかじゃなく一般論として)アセンブラに拘ることを半ばディスるような言い方がある中で、AVRに拘ってモノを作ることに重ねてみただけだ。
ここにはわざわざ AVR を使う連中が多いのだろうから、そうたとえることで「わざわざ」そうすることの意味が分かってもらえるだろうと狙ったのな。
どうやら狙いは大外れだったようだけどな。

174:774ワット発電中さん
22/10/03 15:08:32.40 jNCWYsks.net
>>160
優秀なんやな、そつぎょうおめでとう
ぼくは 在学資格を失って放校処分です(^p^)うぇーい

175:774ワット発電中さん
22/10/03 16:11:53.51 ycqNLT0R.net
>>172
アセンブラでガチガチに書くことのどこが
「ゆるAVR」なんだよ?

176:774ワット発電中さん
22/10/03 16:14:17.68 0Fog0qd/.net
アセンブラでゆるっと書くのですよ

177:774ワット発電中さん
22/10/03 17:59:54.81 cnZCQvXJ.net
> 私がAVRのプログラムをASMで書く三つの理由
>  AVRのアーキテクチャの面白さに密着したい
>  小さくて早いプログラムを書きたい
>  マルチタスクを使いたい
人それぞれの選択理由があるんだろうな、趣味か仕事かでも異なるだろうし、好きにすればいい

178:774ワット発電中さん
22/10/03 19:14:58.99 56PFGkyh.net
>>177
マルチタスクというのがよく分からんけど、どういうこと?

179:774ワット発電中さん
[ここ壊れてます] .net
いつものタスクディスパッチャ爺に振り回されるな

180:774ワット発電中さん
22/10/03 21:10:02.64 w5hUSVzw.net
技術的な優劣を一次元で考えるのも変だし、そんないい加減な技術的な優劣で、趣味の優劣を論じられた気になる人がいるのも人間の弱さだなあ。

181:774ワット発電中さん
22/10/03 21:11:23.30 0Fog0qd/.net
AVROSおもろいじゃん、誰かやろうよ

182:774ワット発電中さん
22/10/04 08:28:14.59 O8WFdpXW.net
>>180
禅問答みたい。
抽象的すぎて私にはよく理解できまっしぇ〜んw
前から気になっていたのですが、
もう少し分りやすく具体的に書いてくださるようお願いいたします。

183:774ワット発電中さん
22/10/04 09:01:21.18 7EOm+6nz.net
ソースコード一つとっても動作の堅牢さという軸、
コメントを含めて保守するための読み易さという軸、
この例だけで二軸=二次元なんだしもっと多元的な評価が本来は必要だろう、
というようなことなんだろうなーとかってに理解したつもりになる;しらんけど。
avr用のおぺれーちんしすてむって、あぶろすってよむのかな?

184:774ワット発電中さん
22/10/04 12:26:21.67 WICiimlq.net
avros ギリシャ語で繊細だそうな

185:774ワット発電中さん
22/10/04 14:02:41.43 WICiimlq.net
え~ぶいあ~るOS 「繊細」 う~ん

186:774ワット発電中さん
22/10/04 14:23:00.03 7EOm+6nz.net
なんつーか…精密製品につき踏みつけないでください、という上乗り式体重計的な不安感が漂うとるな・・・しらんけど(^p^;

187:774ワット発電中さん
22/10/04 16:27:43.24 WICiimlq.net
OSであるために何があればいいんかな
とりあえずスライサーは要るよね

188:774ワット発電中さん
22/10/04 16:37:28.85 kXMI1WBz.net
MS-DOS だって OS だぞ。
ざっくり言って資源管理してアプリケーションの求めに応じて切り売りできれば OS だと思う。

189:774ワット発電中さん
22/10/04 17:02:00.14 WICiimlq.net
じゃああ~、avrでosに割り振ってもらいたくなるものってなんだろう

190:774ワット発電中さん
22/10/04 17:10:19.07 5IMAHIV4.net
シングルタスク•シングルアプリOS

191:774ワット発電中さん
22/10/04 18:55:38.78 WICiimlq.net
外部ストレージ使いたいとかだと、avrDOS ってのもありかもですね

192:774ワット発電中さん
22/10/04 19:10:00.05 kXMI1WBz.net
マルチタスクみたいのやりたい訳じゃなければライブラリでいいじゃんっていう。
マルチタスクにしたってどうせ電源入れてから切るまでずっと同じのが動いてるんだから、別に OS に世話してもらわなくてよくね?っていう。
タイムスライスにしても、規模的にいつも並行して動くというよりイベントを受けての処理になることが多いだろうから、割り込みでよくね?っていう。
余所のOSに書かれたコードをそのまま動かすレイヤーとしても、やっぱライブラリでよくね?っていう。

193:774ワット発電中さん
22/10/04 19:15:27.93 WICiimlq.net
複数の動作をするプログラムを一個のプログラムとして書くのと
単独のプログラムを複数書くのとでは楽ちんさが違うのよさ

194:774ワット発電中さん
22/10/04 19:19:58.66 nxdqp5cq.net
>>193
それは下手だから

195:774ワット発電中さん
22/10/04 19:22:53.48 WICiimlq.net
今ウインドウズプログラマーを的に回したなw

196:774ワット発電中さん
22/10/04 19:29:23.35 WICiimlq.net
下手でもかけるなら、いいことじゃないか

197:774ワット発電中さん
22/10/04 19:37:09.32 +DA4gtER.net
たしかFreeRTOSはAVRに対応してたんじゃないか?
皆んなで楽をしよう\(^o^)/

198:774ワット発電中さん
22/10/04 19:45:42.56 yPuGAjCl.net
>>197
ただでさえ少ないCPUパワーとリソースが...

199:774ワット発電中さん
22/10/04 19:47:25.86 yPuGAjCl.net
LED 1個に1タスク
ボタン1個に1タスク
みたいな姿が目に浮かぶ

200:774ワット発電中さん
22/10/04 20:01:56.29 +DA4gtER.net
>>198
そこでATMEGA1284Pの突入ですよ
>>199
ボタン1個やLED1個にタスク2〜3割り当ててもええんやで
\(^o^)/

201:774ワット発電中さん
22/10/04 20:05:25.99 5IMAHIV4.net
>>193
void main(void) {
 task1();
 task2();
}

202:774ワット発電中さん
22/10/04 20:11:48.05 WICiimlq.net
そのtask1とtask2が同じリソースを必要としてる場合どうなるかな

203:774ワット発電中さん
22/10/04 20:14:06.33 yPuGAjCl.net
突っ込み処はそこか?

204:774ワット発電中さん
22/10/04 20:16:55.27 WICiimlq.net
突っ込んでほしそうだったから

205:774ワット発電中さん
22/10/04 20:22:10.13 WICiimlq.net
まあ昔は>>201みたいな順繰り回しのOSも存在してたらしいけどな

206:774ワット発電中さん
22/10/04 21:40:42.53 yPuGAjCl.net
8bitにOSとか
イラネ

207:774ワット発電中さん
22/10/04 21:43:43.44 5IMAHIV4.net
>>202
両方のタスクがPB0を使いたい場合、
ちゃんとしたOSならどうするの?
どうにか出来んの?

208:774ワット発電中さん
22/10/04 21:44:55.56 yPuGAjCl.net
>>202
もしかして全てのリソースを使える単独のプログラムを複数作るのと比較してる?
違うでしょ
タスクに分けた各タスクを単独のプログラムと呼んでるわけてしょ?

209:774ワット発電中さん
22/10/04 22:01:16.40 WICiimlq.net
そういうのはOS様に、使わしてくだせ~て、お願いしてから使うから
同時使用にならないようにOSが管理する
複数からアクセスしなきゃならない必要がある場合は、OSが交通整理してくれる
1番さんどうぞー、2番さんちょっとまってね~、空いたよ~2番さんどうぞ~てな感じ

210:774ワット発電中さん
22/10/04 22:04:02.09 yPuGAjCl.net
OSに夢見すぎじゃね?

211:774ワット発電中さん
22/10/04 22:10:31.95 WICiimlq.net
ちゃんとしたOSならって問だしね~
なんちゃってOSでも便利になるならいいと思うのよね
ちゃんとしたOS配下のプログラムって書くときの手続きがいろいろめんどくさくなるから
ここで作るとするなら、なんちゃってOSのほうが受けがいいかもしんないね

212:774ワット発電中さん
22/10/04 22:14:58.29 KcWN8OSu.net
例えばゲームウォッチを OS 使って書き直したらどんないいことがあるだろ。
ファミコンのゲームでもいいけど。

213:774ワット発電中さん
22/10/04 22:16:07.94 WICiimlq.net
windowsだと複数からアクセスされるべきハードはデバドラ経由でしかアクセスさせてくれなくて
linuxはこっちで使わせてくれってお願いして許可が降りたら直接いじれるって聞いた

214:774ワット発電中さん
22/10/04 22:17:31.34 yPuGAjCl.net
>>211
世の中にあるRTOSはちゃんとしたOSじゃないと?

215:774ワット発電中さん
22/10/04 22:22:30.71 WICiimlq.net
OSの権限が強すぎるとリアルタイム性が犠牲になるからRTOSができてきたんじゃないの?

216:774ワット発電中さん
22/10/04 22:36:12.39 WICiimlq.net
>>210
夢ぐらい見ようぜw

217:774ワット発電中さん
22/10/04 23:13:11.92 DbZtciCX.net
「夢みれば夢も夢じゃない」
なんでもできるはずだわ〜♪ そこにあるもので〜♪
夢が広がりんぐ \(^o^)/

218:774ワット発電中さん
22/10/05 08:37:08.63 VAWZ6EHw.net
もちろんマルチタスクで書けるプログラムはシングルタスクでも書けるが
あえてマルチタスクにする目的、恩恵は
「プログラム構造を単純化する」→「開発時間を短縮する」
ではあるまいか?
>>199
模型自動車のライト制御
まずSW1個と対応するLED1個の点灯プログラムを作り、次にこれを8組並べる
ここでは排他制御、明るさ制御など少し複雑化されているが
プログラミングに時間は掛かりません
URLリンク(pastebin.com)
参考 SWとLEDを2組並べたもの
URLリンク(pastebin.com)

219:774ワット発電中さん
22/10/05 10:00:20.36 krGSEiTi.net
でもゲームとかFM音源バリバリ制御しながら
500キャラ動かして弾幕描写とかをマルチOSに任せて作っても
画面にノイズ出て始末に負えなさそう

220:774ワット発電中さん
22/10/05 10:20:12.71 wsF6biwK.net
>>218
プログラム領域が無限なら、とか
応答までの時間猶予も無限大なら、とかいう
制約が付かないとシングルタスクでも書けるとは言い切れないんじゃね?しらんけど;(^p^;

221:774ワット発電中さん
22/10/05 10:33:02.50 4r5HAvtl.net
ライブラリでいいじゃんとか、OSって結局ライブラリの集合体みたいなもんやん
リンクされて一体になってるか、別々に存在してるかってだけでしょ

222:774ワット発電中さん
22/10/05 11:29:28.26 x10e9mGh.net
>>221
それはそう。
ただどのみちひとつにしてROMに焼き込んじゃうんだから、AVRアプリケーションくらいなら一切合財全部リンクしちゃう方がいいな。
例えばファミコンはカセットの中の ROM を CPU が直接実行するけど、スイッチのはカセットの中のファイルを適宜メモリにロードしてそれを実行する。
後者のような構成だとOS欲しくなるけど、前者のようなのだとOSなんて大袈裟なもんいらん と判断するな。
同じプロセッサ上で動く未知の誰かと協調する必要もないし。

223:774ワット発電中さん
22/10/05 11:31:22.97 4r5HAvtl.net
それだよ、みちの誰かと強調することができるってのがOSのメリットやね

224:774ワット発電中さん
22/10/05 11:32:56.74 4r5HAvtl.net
うわ、タイポひで~w
未知の誰かと協調できちゃうってのがOS利用のメリットやね

225:774ワット発電中さん
22/10/05 12:08:47.83 xlVTyofB.net
>>218
>「プログラム構造を単純化する」→「開発時間を短縮する」
じゃあアセンブラとか使うなよ
書いてることが支離滅裂
シングルタスクならリソースもパフォーマンスも有利だからCで余裕じゃ?

226:774ワット発電中さん
22/10/05 12:10:42.88 xlVTyofB.net
ディスパッチャ君だよね
いまだにLEDやSWから卒業出来ないの?
万年Lチカ?

227:774ワット発電中さん
22/10/05 12:13:28.23 4r5HAvtl.net
OSイランようなちっこいプログラム書くのにCだろうがASMだろうがたいして工数変わらんやろ

228:774ワット発電中さん
22/10/05 12:14:59.54 4r5HAvtl.net
>>Cde余裕じゃ?
ライブラリ使わずに書いてみ

229:774ワット発電中さん
22/10/05 12:25:32.71 xlVTyofB.net
OS使わない=>ちっこい
って発想はヤバい
8bit/16bitマイコンでもピン数やROMRAMが大きな物が存在する
これらの使われ方を考えた事があるかな?

230:774ワット発電中さん
22/10/05 12:28:11.63 4r5HAvtl.net
>>229
ASM=工数大に対するレスだよ

231:774ワット発電中さん
22/10/05 12:33:22.26 xlVTyofB.net
アセンブラ
工数 大
保守性 最悪
可読性 最悪
移植性 最悪

232:774ワット発電中さん
22/10/05 12:35:21.67 xlVTyofB.net
>>228
仕様は?

233:774ワット発電中さん
22/10/05 12:46:55.65 4r5HAvtl.net
可読性、コメントのないソースはCでも充分可読性悪いしぃw
移植性いいのは、Cの中の人がやりくりしてくれてるだけだから
他人の作ったライブラリ使ってるのと同じよな
OS使うのも同じよな
OS否定の理由としては弱いね

というか、いつの間にかC対ASMの構図にすり替わってるのは何なんだろう?w

234:774ワット発電中さん
22/10/05 12:52:37.47 4r5HAvtl.net
あ、OS配下なら開発言語がバラバラでも共同開発できるってのもメリットじゃね?

235:774ワット発電中さん
22/10/05 12:52:51.51 HycwTigC.net
>>233
サイズ、速度、メモリ使用量なんかを突き詰めたくてASM使うのに、OS の出る幕は無いということだと思う。
他人の作ったライブラリすら避けるかも。

236:774ワット発電中さん
22/10/05 12:57:46.91 4r5HAvtl.net
>>235
ASMで冗長なソースばかり書いててゴメンねゴメンね~

237:774ワット発電中さん
22/10/05 13:09:55.84 xlVTyofB.net
>>233
8bitマイコンのソフトはC, OSレスが普通
ASMは一部では使われている
OS搭載ほぼゼロ
>>234
8bitマイコンの話だよね?

238:774ワット発電中さん
22/10/05 13:13:09.61 KSsEdLMi.net
>>220
また知らんのに書き込んでるアホがいるな。
マルチタスクなんて仮想的なもので、ひとつのCPUで動けるならシングルタスクで動いてると言える。
ちなみにどんなプログラムでもアセンブラで書ける。

239:774ワット発電中さん
22/10/05 13:13:12.38 4r5HAvtl.net
>>237
何が主流で普通とかは置いといて、ゆるっとなんか作って遊ぼうよというスレなのでイイのです

240:774ワット発電中さん
22/10/05 13:17:19.30 4r5HAvtl.net
>>232
なんか適当にペリフェラルを2つ3っつ使うようなのをライブラリ使わずに書いてみ、ASMとたいして工数変わらんやろ
逆にASMからでもライブラリ使えるんだから、こっちもたいして工数かわらんよな


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

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