X



トップページ電気・電子
1002コメント334KB
AVRマイコン総合スレ Part46
レス数が1000を超えています。これ以上書き込みはできません。
0001774ワット発電中さん垢版2022/03/27(日) 03:24:57.51ID:JSxfRZmF
個人でも手軽に使えるAtmelのAVRマイクロプロセッサを中心に語るスレッドです

<公式サイト>
http://www.microchip.com/design-centers/8-bit/microchip-avr-mcus
・AVR Libc Reference Manual:
https://www.microchip.com/webdoc/avrlibcreferencemanual/install_tools_1install_avr_libc.html

<参考になるページ>
・AVRWiki: http://avrwiki.sourceforge.jp/cgi-bin/wiki.cgi?page=AVRWiki
・AVR情報多い-chanさんのpage: http://elm-chan.org/
・avrfreaks.net avrgccその他AVR関連の総本山(英語): http://www.avrfreaks.net/
・TAP-Config: http://ww2.tiki.ne.jp/~maro/
・AVR.jp 日本語のAVR資料他: http://www.avr.jp/
・ATMega168日本語データシート(翻訳中): http://awawa.hariko.com/chira-ura/
・AVR アセンブラのマニュアル(ユーザーズガイド): http://www.atmel.com/Images/doc1022.pdf
・インストラクション(命令セット)の解説: http://www.atmel.com/Images/doc0856.pdf
・条件付きアセンブルの解説(アセンブラ ver. 1.74対応):http://www.atmel.com/Images/doc2550.pdf
・アセンブラとCの連携方法: http://www.atmel.com/Images/doc1234.pdf

前スレ
AVRマイコン総合スレ Part45
https://rio2016.5ch.net/test/read.cgi/denki/1635669872/
0007774ワット発電中さん垢版2022/03/28(月) 16:25:26.61ID:BRZcmaAU
   , -‐−-、  ヽ∧∧∧ //  |
.  /////_ハ ヽ< 釣れた!> ハ
  レ//j け ,fjlリ / ∨∨V ヽ  h. ゚l; ← >>6
 ハイイト、"ヮノハ     //   |::: j  。
  /⌒ヽヾ'リ、     //     ヾ、≦ '
. {   j`ー' ハ      // ヽ∧∧∧∧∧∧∨/
  k〜'l   レヘ.   ,r'ス < 初めてなのに >
  | ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!>
.  l  \ `ー‐ゝ-〈/´   / ∨∨∨∨∨∨ヽ
  l     `ー-、___ノ
  ハ   ´ ̄` 〈/‐-、
    ↑
   >>5
0009他人なので憶測だがおちんちんに刺戟はありそうやな垢版2022/03/28(月) 17:25:33.19ID:BRZcmaAU
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、

 釣り師 ↓     
.            /| ←竿
     ○  /  |
.    (Vヽ/    |
    <>     |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
             |
  餌(疑似餌)→.§ >゚++< 〜
                 の組み合わせだと思ってたんだけど、

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)

かと思うんだけど、どうよ?
0011774ワット発電中さん垢版2022/03/29(火) 20:30:01.92ID:ftAP+BpP
>>10
はて?
何年間もAtmel Studioでxmega128A1Uやxmega32E5に数えきれないほど書いてる俺ガイル。
0013774ワット発電中さん垢版2022/03/29(火) 21:39:43.44ID:ftAP+BpP
ISP mkIIはUPDIに対応してくれないからクビにしたけど、
xmegaのPDIで書き込むのは何も問題なかった。よく働いてくれた。
0015774ワット発電中さん垢版2022/03/30(水) 10:44:25.64ID:CYwMz9Zd
>>14
しかしsnapのファーム更新とAVRモードへの切り替えにMPLAB X IDEが必要という罠が。
UPDIで使うなら小改造も必要。
0017774ワット発電中さん垢版2022/04/03(日) 01:58:12.47ID:fnWUwKbD
割り算やら掛け算やらさせてUSBで取りたいんですが乗算命令のないAT90USB162じゃ無理ですか?
おうちにいっぱい余ってるのでできれば使いたいのですがATmega32U4買わないと厳しいですかね
0018774ワット発電中さん垢版2022/04/03(日) 04:30:47.28ID:saH+e5D0
AT90USB162で乗除算が無理かって?
そんなわけあるか!
乗算器があれば高速ってだけだ
0021774ワット発電中さん垢版2022/04/03(日) 08:12:21.92ID:4UdektVI
私は昔、「アセンブラによる高速演算技法」(Don Morgan著、アスキー出版局)という本で
数演算を勉強して、例題として使用しているCPUの演算パッケージを作ったことがある。
この本の各章の内容は
 数字、整数、実数、浮動小数点計算、入出力と変換、
 初等関数、疑似乱数テーブル、数値データテーブル
古本屋にいけば見つかるかもしれない。もちろん別の本でも構わない。
0022774ワット発電中さん垢版2022/04/03(日) 08:54:08.96ID:+m2gYyi0
整数ならなんとかなる。
掛け算は結構簡単。
仮に R16 x R17 を R18 に求めるなら、

LDI R18, 0 ; 答えを初期化
LP1:
SBRC R17, 0 ; 掛ける数の 1bit目 が 0 なら次をスキップ
ADD R18, R16 ; 答えに掛けられる数を加算
LSL R16 ; 掛けられる数を 2倍に
LSR R17 ; 掛ける数を半分に(2進数で桁をずらして 1bit目に次の桁を持ってくる)
BRNE LP1 ; R17 が 0 じゃなったら繰り返し

みたいな感じ。
2進数で筆算をしてる感じ。
R16 と R17 は壊れる。
↑はロジックを示すため答えが 8bit に収まる場合のみのコードだけど、多バイトになっても考え方は一緒。
割り算も筆算式でやることになると思うけど、もうちょっと面倒。
0023774ワット発電中さん垢版2022/04/03(日) 10:06:18.91ID:saH+e5D0
Cで書けばいいだけだろ。
XXX * YYYとか
XXX / YYYとか
だれでもやってるわ。
0024774ワット発電中さん垢版2022/04/03(日) 14:56:02.23ID:4UdektVI
必用な桁数(ビット数)の演算をアセンブラで作れば、小さくて早い演算ルーチンが出来る。
場合によってはBCDで演算するのも、メモリが少ないCPU、制御用のCPUには有効。
0025774ワット発電中さん垢版2022/04/03(日) 15:20:32.86ID:4UdektVI
思い出したけど、残念ながらAVRにはBCD演算(補助)命令が無いんだよね。
たとえばADD(バイナリ加算)とDADJ(10進補正)の2命令で済む2桁の10進加算が、
なんとAVRでは19命令(AVR204:BCD Arithmetics)も必用になる。
ツライ・・・w
0026774ワット発電中さん垢版2022/04/03(日) 17:47:53.20ID:saH+e5D0
ど〜でもいい。
AVRでキツイならARMでも何でも行け。
そんなスペックの要らない用途もいっぱいある。
フルアセンブラじゃないと処理速度やメモリが足りないんなら選定時点ですでに間違ってる。
0028774ワット発電中さん垢版2022/04/04(月) 01:06:07.98ID:Gyn+E33D
なんかあっちこっちのスレでルネサスマニアが荒らしてる気がしてならない
0031774ワット発電中さん垢版2022/04/04(月) 04:23:49.07ID:Gyn+E33D
だいたい、今時10進演算なんてするのか?
表示装置なんて遅いんだから
2進で計算して、表示するときに10で割って各桁計算すればいいだけだろ
0032774ワット発電中さん垢版2022/04/04(月) 07:15:55.28ID:NWKpsqSY
10なんて定数で割るのも乗算器があれば高速だしな
最近のtinyは乗算器積んでるし
0033774ワット発電中さん垢版2022/04/04(月) 10:35:54.49ID:4D3sAuSH
いろいろ間違ってる点
・そもそも乗除算器の無いコアでの話をしている
・計算アルゴリズムの話に C だのアセンブラだのの話は本質ではない
・ポテンシャルを引き出せずにスペックを上げるのは勝手だがポテンシャルを活かす話を否定することはナンセンス
・小さなアプリケーションだからこそフルアセンブラでも手に負える
・そしてフルアセンブラで書けという話でもない

んまあ一番目の出発点から間違ってるんだからなんともってところだな。
0034774ワット発電中さん垢版2022/04/04(月) 10:42:54.59ID:4D3sAuSH
間違ってない点
・Cで書けば必要なコードが組み込まれ結果的に乗除算できるんだからそれでやれや
0037774ワット発電中さん垢版2022/04/04(月) 11:56:24.41ID:kzXVaRTx
>>36
そういうときに ARM に行けというやつと、計算方法を工夫して対応しようというやつがいるだけのことだよ
0039774ワット発電中さん垢版2022/04/04(月) 12:57:09.42ID:PvAQol7e
FPUあるからと安易に浮動小数点を使うと遅くなるまである
加減算や乗算でも2〜3サイクルを消費するからな
0041774ワット発電中さん垢版2022/04/04(月) 13:03:53.90ID:qieAG/qB
>>37
> 計算方法を工夫して対応しようというやつがいるだけ
そうだね、BCD計算なんか専用命令なくたってちょっとした工夫でどうとでもなるよね。

>>38
AVRにFPUなんか無いよ?
0042774ワット発電中さん垢版2022/04/04(月) 13:13:45.14ID:Fk68JXpq
>>41
お前って何と闘ってるの?
ぼくちんの使えないあせんぶら使うとかなまいきなんだよー
みたいな?
0043774ワット発電中さん垢版2022/04/04(月) 20:26:30.13ID:Gyn+E33D
10進演算は遅い、特に乗除算は時間かかりそう
計算は2進演算で行い表示するときだけ10進に直した方が速いのでは?
小数点を使うなら100倍、1000倍、10000倍して計算すればいいだけ
0045774ワット発電中さん垢版2022/04/05(火) 00:06:40.63ID:2+rIYxAz
>>37
まあ、Cortex-Mくらいだと安いのもあるしな。
ARMな環境を作っておけば将来共々御役立ちではあるだろう。
0047774ワット発電中さん垢版2022/04/05(火) 08:03:54.26ID:H0b/inLI
M4Fは身近になったよな
STM32Nucleoでもラインナップ多いし
Arduino公式でもArduino Nano33BLEがM4F
0049774ワット発電中さん垢版2022/04/05(火) 08:13:04.84ID:UZ2WXCJB
>>43
入力時の10進→2進、出力時の2進→10進変換作業が不要になるけど、
AVRには10進演算命令が無いから、最終的には遅くなると思う。
ま、演算内容によるか。10倍するのに×10の数値計算をする人は居ないだろうし。
疑問に思ったのだが、10進の4則演算命令を持つCPUなんて存在するのかな?
速度はともかく、データメモリ効率は確実に悪くなる。
ところでAVR使うならフルアセンブラをマスターしておいたほうがいいだろうな。
フルアセンブラなら書けるけどCでは書けないような仕様もある事だし。
色々と意見の食い違いはあるだろうけど、
「AVRは楽しい、面白い」では一致しているよね?w
仲良くやっていきましょう。
0052774ワット発電中さん垢版2022/04/05(火) 18:42:21.58ID:vLDKF5c6
BCD演算のサポートなんて無かろうとファミコンはちゃんと10進数で数字を表示してたんだから
0053774ワット発電中さん垢版2022/04/05(火) 19:41:51.55ID:gFvcBlYU
10進演算機能って2進や16進が理解できない低能向けゴマスリ機能じゃないの?
高級言語でサポートされる?
0054774ワット発電中さん垢版2022/04/05(火) 19:55:21.53ID:cesRidC6
>>53
16進は十進の0.1すら表現出来ないから計算を繰り返すと誤差が蓄積する
一般的な使用なら16進でも大抵は問題ないけど一切の誤差を許さない金融計算とかは10進を使う
0055774ワット発電中さん垢版2022/04/05(火) 20:18:18.49ID:gFvcBlYU
ごめん、金融系の話は知ってる。
最近の8ビットワンチップマイコンでってこと。
まあ昔は8ビットマシンで運用してたからそのころのにはあるんだろうけど、
組み込み制御向けマイコンで必要なん?
0057774ワット発電中さん垢版2022/04/05(火) 21:33:55.64ID:gFvcBlYU
うん、その具体的な用途を一つでも知りたいなあと思ったの。
BCD演算機能が無くてツライとか言ってる人がいるからさ、
なんでツライのか理解できる人がいるかと思ってね。
0061774ワット発電中さん垢版2022/04/05(火) 23:09:26.53ID:gFvcBlYU
それも期待していないが期待している(どゆこと?)
だれかツライ実例教えてよ
0062774ワット発電中さん垢版2022/04/05(火) 23:15:38.17ID:f3yLbPuh
>>61 クロック数もバイト数も余計にかかるんだから、ある場合に比べれば無いのはつらいんじゃないの?できるかできないかの話ではないんだし。
BCDサポートがあれば簡単にできることでも、無いなら代わりのロジックでBCD計算するかバイナリで計算して割り算するわけでしょ。
単純に面倒じゃない?
何故BCDを使わなければならないかというか、それは手段であって目的ではないでしね。
0065774ワット発電中さん垢版2022/04/05(火) 23:48:06.73ID:f3yLbPuh
x86 での話だけど、BCD補正命令を本来の用途で使ったことは無いけど、特定の値を得るために単に短い命令として使ったことはあるな。
ちょっと特殊なことしてて、プリンタブルなマシンコードだけを使ってできるだけ短いコードを作る必要があった。
このケースでは無いとつらかったかもw
0066774ワット発電中さん垢版2022/04/05(火) 23:50:00.74ID:UtWuNbCE
・同じチップ
・既製のライブラリ等を使わずフルスクラッチ
・フルアセンブラ
みたいな条件限定じゃね?
面倒なだけでCortex-M7やRXv3みたいな多段パイプライン&スーパースカラで
武装し高クロックで回る最新のコア相手に性能面の優位性を示せるとは思えないわ
0068774ワット発電中さん垢版2022/04/06(水) 11:27:24.58ID:498t5W/l
>>67
んなことは百も承知だけど、そういう使い方を念頭に置いたものであっても中身は特定の条件で値を加工してるだけだから、たまたまその加工で欲しい値が得られるなら全然関係無いことに使うことだってできるって話ね。
>>65 のケースでは、x86 プロセッサで例えば AX レジスタの値が 0xEBAA だったのを 0xEC00 にするために AAA を使った。
見ての通り BCD と関係無い処理だけど、目標の値の 0xEC も 0x00 もそのまま即値代入するとマシンコードがプリンタブルにならないから何らかの演算によって目的の値を得る必要があった。
そんな時 x86 の AAA はマシンコード 0x37 で "7" だから選択肢として都合が良かった。

ということを、BCD補正命令が無いとつらかったこととして挙げてたのね。
0069774ワット発電中さん垢版2022/04/06(水) 11:51:15.70ID:Lj2sL6Oz
そんな事言い出したら掛け算も割り算もいらない
足し算あれば引き算もいらないなってなるだろう
0071774ワット発電中さん垢版2022/04/06(水) 12:14:10.15ID:O4xhE+et
>>69
あるものなら何でも使えばいいし、無ければ他の方法でやればいいんじゃね?
命令セットだけじゃなく内蔵ハードウェアについてもそうだよね。
ADC が無い製品でも条件によっては少しの外付け部品とソフトウェアで二重積分型ADCを構成できるかもしれないし、USART無くてもソフトウェアで書いたりするしね。
それを、そこまでして使うかと思うのも間違ってないし、それでやれてるなら充分と思うのも間違ってない。
0072774ワット発電中さん垢版2022/04/06(水) 12:18:47.72ID:HqWaSFe0
さて、そろそろ「BCD演算機能なんて無くても特にツラくない」ってことでよろしいか?
おかしいなあ・・・ツライって言ってた人がいたのに・・・・
0073774ワット発電中さん垢版2022/04/06(水) 12:26:48.59ID:O4xhE+et
>>72
おれは USART 無くてつらいって思ったこと無いけど、辛いと言うやつがいても何とも思わんよ。
お前は BCDサポート無くても辛くないなら、それで良くね?
0075774ワット発電中さん垢版2022/04/06(水) 15:06:44.41ID:RHywqmXt
>>74
意図は単なる難癖だろ?
何のコンプレックスに触れたのか知らんが、くだらん
0076貧乳教徒的視線垢版2022/04/06(水) 16:11:13.19ID:4rMt7DUb
コンプレックスか・・・
Bかっぷ
Cかっぷ
Dかっぷと、成長に伴いみなさまサポートが必要になるなか、
A「サポートなんて必要ない!(;∀;)」という悲痛な叫びだったのかもしれませんな(違
0080774ワット発電中さん垢版2022/04/06(水) 17:33:39.08ID:M4PMgXHl
私は数値データをバイナリにするかBCDにするかパックするかしないか等は
プログラム設計時にデータ構造をどうするか検討して決めている。
この前、過去のAVRのプログラムを調べたら、BCD採用は10本に1本程度で少なかった。
理由として、多分、AVRには10進演算命令が無いせいもあると思う。
10進演算命令はキャリー/ボロー・フラグを3個も追加しなきゃいけないし、
コアを設計したニーチャン達に切り捨てられても仕方がないw
0081774ワット発電中さん垢版2022/04/06(水) 19:43:59.22ID:HqWaSFe0
自分の無知ゆえに有効な使い方を知らないだけかもと思ったのに冷たいなあ。
テクニック教えてくださいってのがくだらんか。
やっぱここには有能な人はいないんだね。
盛り上がらなくて申し訳ない。おしまい
0084774ワット発電中さん垢版2022/04/07(木) 07:53:53.82ID:BVhEypm4
 常にバイナリ演算のほうがサイズが小さくて処理速度が早いなら、
BCD演算命令なんか残っていない。
BCD演算の方が早い場合もあるからこそ、
主に制御用に使われることが多い、BCD演算命令が無かった8ビットPICにも
上位CPUで追加されたのだろう。

 バイナリ/BCD演算の比較の実例になるかどうか分らないけど、
まだAVRを始める前の大昔、
 PCからRS232Cで4桁の数値を受信したら、
 操作パネルの4桁のサミールスイッチの数値を加算して送信する、
というプログラムでBCD演算を採用したことがある。
(ASCIIコードのままで1バイト1桁づつ加算したので、 正確に言えばASCII演算か?)w
2進演算のプログラムを書いて両者の速度やサイズを比較、というのはしなかったけど、
多分、BCD演算命令を使った方が小さくて早いと思う。
0086774ワット発電中さん垢版2022/04/07(木) 08:42:50.24ID:psQ+Z81g
AVRはRISCなんですけどね
RISCの設計思想を考えればBCD演算が搭載される訳がない
0088774ワット発電中さん垢版2022/04/07(木) 11:27:19.19ID:2fZ2lBP6
>>85
徐算命令があってしかも1クロックでやれちゃうならBCD専用命令などいらんってだけだろ。
0089774ワット発電中さん垢版2022/04/07(木) 11:33:59.75ID:2fZ2lBP6
つうかなんでBCDでこんなに燃え上がってるの?
BCD命令なんてアセンブラでしか使わないから、アセンブラアレルギーのやつがヒステリー起こしてる感じ?
0090774ワット発電中さん垢版2022/04/07(木) 13:19:11.97ID:4xUtgbX7
BCD命令が無いってヒステリー起こしてるやつにみんながやさしく付き合ってる。
0091774ワット発電中さん垢版2022/04/07(木) 17:05:31.81ID:cvBU5/Fy
そう言えば、前にどこかで「プログラムが小さいとか早いとか何の興味も無い」とレスされて
エーッ!と驚いた事があったw
ま、プログラミングで何を大事にするか、人それぞれか。
ところでAVRに対する要望として<レジスタ群を複数組み欲しい>というのもある。
ソフトは上位コンパチに出来ると思うけど、これも見果てぬ夢だな。
0092774ワット発電中さん垢版2022/04/07(木) 17:38:55.03ID:Jpydtid3
>>91
自分は1クロック 1バイトに心血注ぎたい方だけど、
んまあ焼いてしまえば中は見えないから、Lチカを 1KB で書いても数十B で書いても結局 Lチカするワンチップマイコンがそこにあるということに何の変わりも無いよね。
でも例えばワンチップでオルゴール作ったとして、同じマイコンで単音ビープで精一杯の人とPWM で音色や和音再現できる人とじゃ、やっぱ後者の方がすげーって俺は思うよ。
0093774ワット発電中さん垢版2022/04/07(木) 18:55:00.52ID:PGCxOs+t
程度問題とは言え、桁レベルで冗長なのは開発者の怠慢だと思う
他人に使ってもらう物ならなおさら
0095774ワット発電中さん垢版2022/04/07(木) 22:14:43.91ID:XeNmE41V
>Lチカするワンチップマイコンがそこにあるということに何の変わりも無いよね。
その通り。
あるとしたら、「これよりも小さい(早い)プログラムを書ける人は他にいないだろうな」
という自負、プライドかな。
ホントに最速(最小)かどうかは、調べたことが無いので分らんけどw

AVRに関して自信を持って言える事は、AVRのプログラミングは楽しい、だ。
AVRのレジスタは命令によって色々と使用上の制限があるので、
プログラム設計時にレジスタをどう使うか考えないと、後で困ることになる。。

レジスタで思い出したけど、AVRを始めたばかりの頃、
複数のレジスタでUARTのリングバッファを作ったことがある。
最高通信速度が9600から38.4kまでアップした。
面白いCPUだなと感心した。

長文、多投、まことに失礼しました。
これで終わりにします。では皆様おやすみなさい。
0098774ワット発電中さん垢版2022/04/07(木) 23:09:43.41ID:g6TNJi9Y
1.ベアメタル+ワンチップ
2.Arduino IDE+Arduino board
3.Python+Raspberry Pi board
どれもLチカに違いはないが応用(実用性と置き換えても良い)を考えるなら無視できない差がある
1ならプラモデルに組み込んで電飾に応用できるが、3はサイズ的にも電力的にもかなり厳しい
2でNanoを前提としても1と比べたらサイズや電力面の差はかなりある
「Arduinoしか書けません」とかだと応用の範囲は当然制限される

>>96
デジキーでボード買ってみたけど積んでいる
0099774ワット発電中さん垢版2022/04/08(金) 00:07:29.53ID:dWVzeUjZ
>>97
ここってID勝手に変わらない?
ちょっと時間が経つだけで勝手に変わっちゃう
0100774ワット発電中さん垢版2022/04/08(金) 00:12:20.35ID:tJc2K2/+
DA/DB使ってるけど何が中途半端なん?
mega128より安くて速いだけでも十分メリットあるやん?
0101774ワット発電中さん垢版2022/04/08(金) 00:24:51.99ID:YLF66LKT
>>99
スマホとかだとコロコロ変わる気がする
自宅回線だと当日に変わったことは無い
0105774ワット発電中さん垢版2022/04/10(日) 15:30:10.96ID:Gk+cbcYJ
>>92
そういう高度なことを他人が作ったライブラリで簡単にできるのがArduinoなんだろうな
Arduinoは自分で全部書く場合はあまりメリットはなくて
あくまでライブラリが充実してるというエコシステムが重要なんだよな
0106774ワット発電中さん垢版2022/04/10(日) 16:18:24.32ID:CSCffVHM
Arduinoはお手軽だけどコードが肥大しがち
io命令とか基本関数も重いけど、ライブラリも
Adafruit_SSD1306は無意味にロゴマーク読み込んで1.5kも無駄になってたとかあちこちある
0109774ワット発電中さん垢版2022/04/10(日) 18:27:25.35ID:7rB14zcr
Arduinoは、非エンジニアのアーティストたちがちょろっと、自分の作品に電気仕掛けを取り入れるとか
そんな感じの使い方を想定して作られたものだから、とにかく簡単に使えることを目標にだなうんぬんかんぬん
0110774ワット発電中さん垢版2022/04/10(日) 19:23:31.19ID:Gk+cbcYJ
>>109
美大のホームページでArduinoの解説があったりするよね
NeoPixelみたいなRGB LEDを使いこなすのにはマイコンの知識よりも
芸術的なセンスの方が重要だと思う

プログラミングネタとしてはRGB LEDをライブラリ使わないで
自分で制御すると結構大変だったりするので面白い
0111774ワット発電中さん垢版2022/04/10(日) 20:22:55.96ID:7rB14zcr
電気シローとのアーティストがものづくりすると、まあ300Wくらいで動くんじゃね?
みたいなものを動かすのに必要な電力が5kwとか、面白いもの作って来るよw
現場の電気屋さんは悲鳴あげてるけど

やることが、予想外すぎて、ある意味面白い
0112774ワット発電中さん垢版2022/04/10(日) 20:46:06.50ID:Gk+cbcYJ
RGB LED用のコントローラも市販されてるようだし
もう電子工作関係なくなってきてるかもね
0114774ワット発電中さん垢版2022/04/10(日) 21:46:30.85ID:Il0xSwon
対応するチップやボードが増えすぎて分かりにくくなってるよね。
純正と完全互換ボードだけにしとけば良かったのに。
0115774ワット発電中さん垢版2022/04/10(日) 22:03:44.34ID:7rB14zcr
>>113
他の選択枝はいくらでもあるから、そうなったら使わなけりゃいいだけ

むしろ、プログラミングさえ不要ってとこまで突き進んでほしいw
0116774ワット発電中さん垢版2022/04/10(日) 22:20:19.68ID:b5cXisk+
>>115
それを認識してArduinoベースのシステムを使っている人って少なくね?
Arduinoから入ってきた人だとなおさらだ
Arduinoベースだとそうでないシステムより効率悪いしな(おそらく一桁以上)
0117774ワット発電中さん垢版2022/04/10(日) 22:44:18.42ID:7rB14zcr
そんなに効率悪いか?
気になんないけど
所詮avrだし、cコンパイラだし
ライブラリがタコすぎると思ったら、そこは自前で作ればいいわけだし
0118774ワット発電中さん垢版2022/04/10(日) 23:18:17.09ID:b5cXisk+
>>117
Arduinoライブラリを使わずにプログラムを書けば処理効率の悪さは解消するけど
サイズや消費電力は専用に組まれたボードと比較したら勝ち目はない
0119774ワット発電中さん垢版2022/04/10(日) 23:26:46.58ID:Il0xSwon
>>118
サイズってのは、実行コードの話なのか?ボードサイズの話なのか?
実行コードはブートローダ除けば変わらないだろ。
基板サイズなら小さいのもあるし、専用に作った基板が必ずしも小さいとは限らない。
0120774ワット発電中さん垢版2022/04/10(日) 23:29:26.24ID:7rB14zcr
>>118
そんなことを使う人が、かんがえなくていいんだよってのが
Arduinoスタイルだから、いいんでね?

ライブラリも試作機完成までの時短だから、存在することに価値があるわけで
0121774ワット発電中さん垢版2022/04/10(日) 23:59:53.72ID:b5cXisk+
>>119
物理的なサイズ。これは一般的なArduinoの仕様を踏襲する限りどうしようもない
専用のボードだったら書き込み機能が不要になるし、電源も用途に応じた物を搭載できる

>>120
その結果、ダウンサイジングの限界が大きいって話
0122774ワット発電中さん垢版2022/04/11(月) 00:23:31.43ID:JgYrZ0OB
サイズは有志が作った小さい互換機があることだし、あれ以上小さくできるんかね?

arduino流用で困るのはそこじゃなく、cpuから引き出されてない端子があることかな
0123774ワット発電中さん垢版2022/04/11(月) 03:56:45.74ID:sLmqOY36
一般人はATmega以上しか使わないから気にしなくてよろし
逸般人はATtinyでアセンブラごりごり書いていればよろし
0125774ワット発電中さん垢版2022/04/11(月) 06:57:07.85ID:kSn74rnM
Arduino の話をするとソフトの開発環境の話なのか、ボードの話なのか混乱するんだよ。
基板サイズならArduino互換で小さく作ることも出来るし
だいたい、pico とかより小さくなんてしたくない。
0126774ワット発電中さん垢版2022/04/11(月) 12:23:21.20ID:0a9TUIkj
最終的にはプログラムされたマイコンは何かをする部品に過ぎないわけで、それをやりたいことの手段として作るのか、それを作ること自体が目的なのか、それによって見方は変わってくると思うよ。
ただ特定動作する部品が欲しいだけなのに、中身のあれこれを把握してレジスタや I/O を適切に初期化してクロック数数えて、なんてやってられないでしょ。
この条件では 1秒周期で、そうじゃなければ 2秒周期で Lチカしたいと、端的にそう書ける方が便利。
どんなに冗長であろうとそのコードがマイコンに収まりさえすれば部品は動作して値段も変わらないんだから。
0127774ワット発電中さん垢版2022/04/11(月) 12:29:29.44ID:0a9TUIkj
そしてちょうど tiny10 にちょっとハマってる自分としては、その制約がむしろ楽しい。
8pin あるマイコンを使うことですら邪道に思えてくるw
0129774ワット発電中さん垢版2022/04/11(月) 13:00:32.53ID:0aZ3T0ib
1/144ガンプラをマイコン使って電飾しようとするとtiny10あたりの小ささは圧倒的に有利
0130774ワット発電中さん垢版2022/04/11(月) 13:05:39.48ID:a0QsVdw6
記述型の言語よりも
パズルのようにブロックを積み上げて動作を完成させるGUIツールを開発して
スマホで簡単に開発できるほうがご時勢にあってるとおもう
0132774ワット発電中さん垢版2022/04/11(月) 13:18:51.16ID:EDdfWtsu
>>129
あの小ささは代えがたいものがあるけど、電飾だと出力ピン数が欲しくなってきちゃうかもな。
まあワンチップでがんばらず何個も使う方がむしろ便利かもしれないけど。

ちなみに入力の数は結構カバーできる。
ADC 積んでるから 1ピンで多値入力できる。
今作ってるのは tiny10 使った 16ボタン赤外線リモコン。
16個までのスイッチと、同数の同値抵抗で構成できる。
これはいろいろ応用効きそう。

ちなみに 16個というのは、今の回路構成で精度5% の抵抗を使ったとき閾値が明確に分解できる限界。
0134774ワット発電中さん垢版2022/04/11(月) 13:41:57.58ID:EDdfWtsu
>>133
ボタン使う時点でそれなりのサイズになるけど、ボタン 1個に抵抗 1つだから、チップ抵抗ならボタンの裏に置けるしリード付きでも 1/6W 抵抗ならボタンのとなりにひっそり置けてサイズには影響しないよ。
0135774ワット発電中さん垢版2022/04/11(月) 13:46:37.56ID:vhjNFKhR
>>134
おわ、ちょと予想外だった
ボタンが基板に載ってる前提なのか
ボタン類は基板の外にあるもんだと思ってたわ
0136774ワット発電中さん垢版2022/04/11(月) 13:49:50.98ID:EDdfWtsu
>>135
そんなもん作り方次第だよ。
ボタンと抵抗群で構成するキーボードはワイヤー 3本で引き出せるから、線で外に引っ張り出したっていい。
0137774ワット発電中さん垢版2022/04/11(月) 13:54:23.93ID:vhjNFKhR
>>136
引き出しPAD3個分」でか、なるほどね
ところで、同時押しとか連打とかは対応可能?
0140774ワット発電中さん垢版2022/04/11(月) 14:28:36.57ID:vhjNFKhR
>>139
連打は、普通の人なら指の動きが0.1〜0.2秒はかかるから、分解能的には0.05秒あればいけるのかな、しらんけどw

tynyを使うわけじゃないんだが、まあ入力がどうしても足りなくなったときに使ってみようかと思ったけど、同時押し不可はつかいにくいね
0141774ワット発電中さん垢版2022/04/11(月) 14:35:11.51ID:a49HBXlM
>>140
抵抗値を 1:2:4:8… みたいな比率にしてパラに並べれば、4〜5本くらいの同時入力はいけるかもしれないね。

>>139 はリモコンに使ったからそれで充分だったのと、リモコンであるが故に普段はキーボードへのアイドル電流を抑えマイコンもパワーダウンして、ボタンでウェイクアップするためにピンを 2本使ってるけど、
原理的にはピン1本で多値入力できるから、同時押ししたいキーを別ピンに振り分けるなんてことも選択肢としてある。
0143774ワット発電中さん垢版2022/04/11(月) 15:29:14.62ID:Lf9qw4zn
>>142
そりゃなんでも構成次第だよ。
ただ入力に関しては、tiny10 でも ADC 積んでるから多値入力に活用しやすいけど、デジタル出力は 1pin 1出力にしかならないから逃げ道が少ないってこと。
ただデジタル出力ピンでも、ハイインピーダンス状態を利用してデジタル 2出力にできるケースもある。
外付けのシフトレジスタ使ったとき、それで HZ と H の切り替えでクロックを、L に引き下げでリセットをかけるようにできた。
けどそれでもせいぜい二重化が精一杯だと思う。
0145774ワット発電中さん垢版2022/04/11(月) 15:44:08.76ID:hJ1tAsDa
>>144
それは方法のひとつでしょ。
相手がシリアル理解できるようなデバイスならそもそもこっちの入出力を物理的に増やす必要の無い構成にすりゃいいんだから。

>>143 で言ったのはこういうこと。
https://i.imgur.com/3lcHy8q.jpg

物理的に出力を増やす方法。
使い方は限られるけど、これを使う前提で周辺回路を組むこともできるから、最初から知ってれば選択肢が豊富になる。
0147774ワット発電中さん垢版2022/04/11(月) 18:28:13.25ID:vhjNFKhR
>>145
方法の一つを言ってみただけだから、気に入らんかったら流しておくれ
シリアル信号だからってシリアル専用デバイが必要なわけでもないよ
0148774ワット発電中さん垢版2022/04/11(月) 18:44:04.83ID:a8Vr0Ynk
tiny10程度のフットプリントでより足の多いマイコンもあるようだ
足が不足していて縛りプレイでないならマイコンを変更した方が良いのでは
tiny10だって劇的に安いってほどでもないし
0151774ワット発電中さん垢版2022/04/11(月) 19:24:42.43ID:vhjNFKhR
tyni10とかで、ひ〜ひ〜言ってるのはパズルを楽しんでるんだろうから
止める気はない
0153774ワット発電中さん垢版2022/04/11(月) 19:28:27.24ID:a49HBXlM
>>149
表面実装のタクトスイッチ使えば面積自体は広大だから何でも乗るだろうけど、そんなパターンおれには描けないからな。
1.27mm ピッチがおれの手描きの限界だわ。

しかし、ID 変わらない人もいるんだね。
うちは IPアドレス変わってるわけでもないし他の板ではこんな覚えも無いんだけど、なんでだろ?
0159774ワット発電中さん垢版2022/04/11(月) 20:32:45.07ID:QIu3dETj
EAGLEやKICADで書いて中華に発注。
10枚で500円+送料2500円ってとこ。
専用スレッドで聞いてみな。
0162774ワット発電中さん垢版2022/04/11(月) 20:47:35.82ID:QIu3dETj
爪楊枝でクリームはんだ載せてトースターで焼くんだよ。
クリームはんだがキラキラしたら終了。
0163774ワット発電中さん垢版2022/04/11(月) 21:28:09.49ID:kgsmULQx
SMD使う人ならオーブンなりホットエアなり持っているんじゃ
小さい物作るならなおさら
0164774ワット発電中さん垢版2022/04/11(月) 21:32:42.26ID:QIu3dETj
まあほとんどコテでできるんだけどな。
QFNでもランド引っ張り出せばいいし、腹パッドにはでかいスルー開けて流し込めばいいし。
部品が多いとトースターのほうが楽だ。
0165774ワット発電中さん垢版2022/04/11(月) 21:40:21.18ID:vhjNFKhR
QFPで、こてで付けてたら、ちょっとこじる力がかかった時に一瞬でランドはがれてオシャカ

やっぱ、リフローか〜とクリームはんだの値段見てびびる

あれ、使わなかった分は、どれくらい置いとけるの?
0166774ワット発電中さん垢版2022/04/11(月) 21:47:32.77ID:vhjNFKhR
あ、そういえば、中華で作ってもらった基板、viaのところから、じわじわ腐食が進んでるんだけど、レジストで埋めてもらっといたほうがいいんですかね
0167774ワット発電中さん垢版2022/04/11(月) 21:53:50.16ID:QIu3dETj
>>165
固まったらフラックスやアルコール足して練る。
ホビーならいつまででも使えるよ。

ハンダレベラーしてたら腐食なんてしないけどな。
ま、腐食環境で使ったことないけど。
0169774ワット発電中さん垢版2022/04/11(月) 21:58:50.71ID:vhjNFKhR
>>167
それがハンダレベラーなんだよね、大丈夫だろうと思ってたんだけど
最近未使用の基板をふと見たらジワジワきてるんよ
レジスト埋めオプションとかあったっけ?、次で試してみる
0170774ワット発電中さん垢版2022/04/11(月) 21:59:52.48ID:QIu3dETj
>>165
ブリッジなんか気にせずとりあえずはんだ付けする。
フラックス塗ってきれいな小手先で触れればブリッジが取れる。
吸い取り線当ててもいいが取れすぎるので付いているのか不安になる。
0173774ワット発電中さん垢版2022/04/11(月) 22:10:04.36ID:vhjNFKhR
>>171
そっか、オプションじゃないのか、だったら値段変わらんし、やってみない手はないね
0176774ワット発電中さん垢版2022/04/12(火) 16:15:45.00ID:9ZoyriF+
今までスルーホールしかやってない人が1mmピッチ未満のICを練習なしに付けるのはかなり難しいと思うよ。
でも他人のやってるのを見て、捨てICや基盤で練習すれば0.65mmピッチぐらいまでは普通にいけると思う。
スルーホールとはやり方が変わる。だからやり方を覚える必要がある。
0178774ワット発電中さん垢版2022/04/12(火) 16:31:36.42ID:RAzPDAst
だからあ、みんながみんな職人になんなくていいんだっつうの

はんだ付け職人に向かって、回路設計くらいできるようになっとけとか言わねえだろ
0179774ワット発電中さん垢版2022/04/12(火) 18:42:25.72ID:40vwqptr
現状だと(不適切な道具や作業、ガーバーを棚に上げて?)中華基板が悪いって主張に見えるよ
0180774ワット発電中さん垢版2022/04/12(火) 19:52:39.56ID:OCojyAyF
https://akizukidenshi.com/catalog/g/gP-04399/
これを買ってATMEL-ICEでLチカ実験しているんですが
RESETボタンが10回に一回くらいの頻度で効かないんですが何が悪いんでしょうか?
効かない場合にはLチカも開始しません。どういう状態になっているのかよく分かりません。
2〜3度押せばRESET出来るので実用上は問題ないのですが原因が気になります。
何かヒントが有れば教えて下さい。
0182774ワット発電中さん垢版2022/04/12(火) 20:17:50.91ID:T13+ILOb
debugWIREにしてるかとも考えたが、
それだとそもそもRESET効かんか。
0183774ワット発電中さん垢版2022/04/12(火) 23:36:43.12ID:i/HXLfwe
ライターが/RESETを強く引っ張ってる

…て言うのはないか(よほどインチキなライタじゃない限り)
0184774ワット発電中さん垢版2022/04/13(水) 01:23:36.87ID:j8GCa0CN
とりあえずリセット端子の電圧観測
指でゆっくり変化せるだけだからオシロとかいらねーから
0185774ワット発電中さん垢版2022/04/13(水) 10:44:28.22ID:50N0c7hT
リセット線でLED点灯させようぜっ!(ドライブ能力大丈夫か?知らんけど
0186774ワット発電中さん垢版2022/04/13(水) 16:37:20.90ID:50N0c7hT
J4あたりで3.3Vと短絡説(^p^;)
0187774ワット発電中さん垢版2022/04/15(金) 17:19:45.32ID:mvmjBC1a
秋月で売ってる tiny13 と tiny202、それぞれ 110円と 60円だけど、どうみても tiny202 の方がスペック上だよね?
あえて tiny13 を使う理由ってあるの?
0189774ワット発電中さん垢版2022/04/15(金) 17:26:57.33ID:mvmjBC1a
>>188
なるほど
せめて tiny13 がちょっとでも安ければ選ぶこともあったかもしれないけど、なんか高過ぎだよね
0190774ワット発電中さん垢版2022/04/15(金) 17:29:59.96ID:bXNH6GQ+
あまりにも古くて時代遅れになったものは値下げ、更に福袋行きで、仕入れたものは破棄しないと思う
AT90S2313は2002年のものだけど200円→100円に値下げして未だに売ってる
0191774ワット発電中さん垢版2022/04/15(金) 17:37:31.30ID:sqGNOT+p
自分で設計できる人ばかりじゃないんだよ
昔の制作記事をトレースすることしか出来ないとか…
0193774ワット発電中さん垢版2022/04/15(金) 19:04:11.91ID:iSkdzEFe
tiny0やtiny1が補充されては即売り切れを繰り返しているな。
まだ広がっていないはずのtiny2まで売り切れてるのは代替用だろうか?
0194774ワット発電中さん垢版2022/04/15(金) 22:57:51.96ID:mvmjBC1a
前スレで今 Aliexpress に溢れてる USBasp は ATtiny10 に書けないのか質問して、さも書けて当然のような回答をもらってたんだが、やっぱり書けない気がする。
そもそも対応デバイスのリストから tiny10 はじめいくつかのデバイスが省かれてたから質問してたんだが、どうやら TPI のデバイスが省かれてるっぽい。
ファームは TPI 対応版に更新したが、事前に吸出しておいたファームと比較するに元々対応版が入ってたらしい。
本家の回路図と比較すると、Ali版はピンヘッダの 4, 6番が GND に落ちてるという違いがあることは分かったけど、これは TPI にはあんまり関係が無い気がする。
エラーとしては target doesn't answer で、-v いっぱいつけて観察すると 初期化時にシグネチャ取りに行ってるのに応答が無いということみたい。
Slow SCK や avrdude の -B 20 オプションを試してもだめ、Vcc は 5V で間違いなし、ターゲットを回路から切り離して単体にして接続してもだめ、同じ USBasp 2台とも同じ、ということだから、やはり製品の問題なり仕様なりなんだと思う。
ちなみに 2台の USBasp は相互に書き込みしてるけど問題なし。
という感じなんだけど、この辺の事情とか試すべきことの心当たりは無い?
自分はもう少し回路を追っかけてみる。
0195194垢版2022/04/16(土) 01:25:15.05ID:AAG/4Zm2
>>194
部品剥がして回路図起こしてみた。
https://i.imgur.com/d6gzmfv.jpg

回路は変わらないね。
本家の回路図が 28P のパッケージで混乱したけど、まあ一緒だね。
じゃあ TPI がうまくいかないのは別の原因だね。
すまんかった。
0196774ワット発電中さん垢版2022/04/16(土) 01:40:23.11ID:JCCvW+nS
そのエラーメッセージ、aitendoで買った中華USBASPv3と1MHz動作中等の低速なデバイスと通信しようとして通信できなかったときにも見た
USBコネクタ付近の低速ジャンパをショートしたら通信できた
0197774ワット発電中さん垢版2022/04/16(土) 01:44:50.93ID:JCCvW+nS
>>196
あ、それがslow sckか
上記の時には毎回ランダムな識別ID返してたんだよなあ
同じことになるんだろうか
0198194垢版2022/04/16(土) 02:02:16.90ID:AAG/4Zm2
>>197
あ、識別ID はランダムだわ。
ただデバッグメッセージの通信状況では全部 0x00 が読めてるっぽいから、そのランダムな識別ID は変数の未初期化バグみたいのがあるんじゃないかと妄想してる。
ランダムといっても何パターンかしかないみたいだし、avrdude のバージョン変えるとパターンが変わるし。
ちなみに -B も通信速度を変えるオプションだけど、これでうまくいったというケースもあるみたいで。

こうなったらパラメータとかいろいろ探るしかなさそうね。
0200774ワット発電中さん垢版2022/04/16(土) 03:16:58.49ID:AAG/4Zm2
>>199
ちょうど解決した。
ダメパターンは PB0 にライタの MISO を繋いだ場合。
成功パターンは PB0 にライタの MOSI を繋いだ場合。
単純ミスっぽくてごめん。

でも、AVRasp mkII で書き込む時は PB0 に MISO を繋いでたんだけどな。
MOSI を繋ぐのが正しいってことで合ってる?
0201774ワット発電中さん垢版2022/04/16(土) 03:19:50.60ID:YL397l2P
>>194
中華USBaspのFWはほぼ本家2007年V1.02をAutoSCKに改造したもの。
TPI対応FWは本家最終版2011年V1.04以後なので中華製はV-upするしかない。
中華FWは-Bオプ未対応だけれどAutoSCKなのでslowJPも必要ないので
不要なワーニングを無視して使えば初心者向けです。
0202774ワット発電中さん垢版2022/04/16(土) 03:48:13.95ID:SqFHxDQd
>>200
ぐぐったら
MOSI -R220- PB0
MISO-R220- PB0
Rは200-1kだった
おそらくクロックの立ち上がりで送信、立下りで受信みたいな感じじゃないの
両方繋いでないと送信か受信しかできないと思われ

AVRasp mkII は1つのピンを送信と受信に切り替えてるから1本でいいんじゃないの
しらんけど
0203774ワット発電中さん垢版2022/04/16(土) 03:57:45.24ID:AAG/4Zm2
>>201
なるほど、中華の改造ファームのこともあるのね。
ただ今回は本家のTPI対応版(2011-05-28版)が入ってたっぽい。
いろいろ試す中で本家のを書き込んだんだけど、その前に吸出しておいた中身と比較したら同一だった。
Slow SCK のジャンパはスルーホールだけ開いてて実装は省略されてるね。
自分でジャンパーピンつけちゃったけど、使わなくても問題は無さそう。

とりあえず動かせたので、はっきりさせたいのは TPIDATA に繋ぐのはライタの MISO なのか MOSI なのかかな。
今までは MISO 繋いでたんだけど、結果的に今回はそれでハマってたわけだし。
0204774ワット発電中さん垢版2022/04/16(土) 04:08:56.50ID:AAG/4Zm2
>>202
TPI のプロトコルとしてはまずはライタ側が送信で、送ったコマンドによってその後のデータをどっちが送信するかが決まる完全な半二重通信だね。
ライタとターゲットが同時にデータを出しちゃった場合の衝突検出方法とその回復手順も決められてて、少なくともプロトコル上はデータ線は 1本だけになってる。
んで USBasp は MOSI と SCK だけ繋いでればそれで半二重通信する。
一方で AVRasp mkII は MISO でやってる。
そのどっちでも行けるようにする繋ぎかたがその抵抗を挟んで両方繋いじゃうやり方なのかもね。
0206774ワット発電中さん垢版2022/04/16(土) 14:10:44.60ID:AAG/4Zm2
あとついでに分かったことだけど、tiny10 は Vcc 3V でも書けるね。
AVRISP mkII は電源供給してくれないけど、電池 2本で動かす機器ではその電池電圧で書けそう。
0209774ワット発電中さん垢版2022/04/25(月) 08:33:10.67ID:JN/03Eff
ATmega32U4でUSB通信使わないときはVBUSとUVCCには電源供給しなくても動きますか?
0210774ワット発電中さん垢版2022/04/25(月) 16:08:36.49ID:EOUdA74t
データシート見る限りコアには関係なさそうだし動くんじゃないの?
知らんけど
0211774ワット発電中さん垢版2022/04/25(月) 19:11:37.51ID:JN/03Eff
ありがとうございます試してみます
できるだけ消費電力減らしたいので…
0212774ワット発電中さん垢版2022/04/27(水) 10:16:45.85ID:Tqhr5pzV
128DAに限らないと思いますが、アナログ関係使わない時はAVCCはオープンで良いんでしょうか?
0214774ワット発電中さん垢版2022/04/27(水) 19:45:48.60ID:YA3NsVg9
「中でつながってるのか、じゃあ片方でいいや」
 ↓
「ごくまれに誤動作するなあ」
 ↓
「AVRってノイズに弱いね」
ここまでがテンプレ
0215774ワット発電中さん垢版2022/04/28(木) 08:54:12.98ID:2jFin0MF
>>213
内部で繋がってます、くらいで特に記載は見つからなかったです。

>>214
繋がないとノイズ乗りやすくなるんですね!なら繋げておきます!
0216774ワット発電中さん垢版2022/04/28(木) 09:02:40.34ID:4Ey++JBe
ADCって下は何mVから読めますか?
80mV〜2Vくらいまで読みたいと思ってるのですが
0217774ワット発電中さん垢版2022/04/28(木) 09:29:27.17ID:Ggz9Akxg
2.048VをVrefにすれば、
8bitADCで分解能8mV
10bitADCで分解能2mV
12bitADCで分解能0.5mV
オフセット誤差や直線性誤差はデータシート見て使えるかどうか判断しな。
0218774ワット発電中さん垢版2022/04/28(木) 09:46:32.84ID:4Ey++JBe
誤差ではなくて読める範囲を知りたいのですが…
例えば0mVと8mVはちゃんと読めますか
0219774ワット発電中さん垢版2022/04/28(木) 10:00:41.36ID:Ggz9Akxg
「分解能」って何なのかググれ
それが読めなきゃ「8bit」の意味ねーだろが。
しかもAVR関係ねえ。
0222774ワット発電中さん垢版2022/04/28(木) 14:44:30.15ID:T7dVOGX2
(説明されてるのに自分の頭の理解力の限界を超えて)だめだこりゃ…
0224774ワット発電中さん垢版2022/04/28(木) 15:40:47.63ID:ZUcs3w/k
tiny10 ならデータシートには GND〜VREF(= Vcc) と書いてあるな。
実際の変換の底が 0V から浮いてるかどうかは書いてないから、気になるなら自分で測ってみるしかないんじゃない?
0225774ワット発電中さん垢版2022/04/28(木) 16:00:44.67ID:ZUcs3w/k
そうそう思い出したけど、ADCクロックと変換精度の関係はよく分からないね。
最大分解能を得るのに 50〜200kHz のクロックが必要って書いてあるけど、その中でどこが一番いいのか、それを外れるとどうなるのかは見当たらない。
実際どうなるの?
0226774ワット発電中さん垢版2022/04/28(木) 16:04:20.80ID:Ggz9Akxg
データシート読めないやつがまた一人増えた。
墓穴掘るの好きな人っているのね。
0227774ワット発電中さん垢版2022/04/28(木) 16:07:19.52ID:GKSfMNNi
1人のサスケが2人のサスケに
3人に 4人に えいえいえいえいおー
忍法影分身だー
0228774ワット発電中さん垢版2022/04/28(木) 16:07:19.60ID:ZUcs3w/k
ん、おれのこと?
確かに読めてないのかもしれないから、どの PDF でもいいから書いてあるページ番号とか教えてもらえるとありがたい。
0229774ワット発電中さん垢版2022/04/28(木) 16:15:12.03ID:Ggz9Akxg
tiny10のデータシート見たんだろ?
PDF開いてCtrl+F押してADCっていれてEnterしていけよ。
それっぽいとこ全部読め。
確かに不親切なデータシートだから想像力が必要なことは認めるよ。
0230774ワット発電中さん垢版2022/04/28(木) 16:21:33.44ID:ZUcs3w/k
>>229
avr.jp の tiny10.pdf で言えば、仕様としての ADC の変換特性については P78 の表16-8 にまとまってるものだけだよね?
ADCクロックの範囲ももちろん書いてあるし、P57 13章からの ADC についての詳細でも最大分解能を得るためのクロックについての言及はあるけど、そのクロックの範囲の特性すらグラフになってないじゃない?
どこ見たら分かるの?
0231774ワット発電中さん垢版2022/04/28(木) 16:26:58.96ID:ZUcs3w/k
もっと端的に聞く。
明示されてる 50kHz 〜 200kHz の ADC クロックについて、50kHz でも 200kHz でも分解能は一緒なの?
違うならどっちがいいの?
0234774ワット発電中さん垢版2022/04/28(木) 21:39:45.49ID:LDXqMQSs
>>224
そうですそういうことです!
データシートからは分からないんですね
試してみます

マイコンはプログラミングの側面が強いから電気には疎い人が多いのかな…?
0235774ワット発電中さん垢版2022/04/28(木) 22:09:57.61ID:hDDEb6Zx
読めないもの同士、疎いもの同士共感したか。ヨカッタヨカッタ
がんばれよ
0237235垢版2022/04/29(金) 01:46:25.63ID:UfDqUDoZ
え?
俺ちゃんとデータシートのElectrical Characteristics読めるんだけど。
ADCの一番下がどこから読めるかくらい余裕でわかるわ。
てかそれが俺だけでなくここにいる奴の大多数だろ?
余りの底辺さにみんなドン引きで沈黙しちゃってるじゃない。

xmegaはモードによって下にオフセットあるんだよね。
でもちゃんとデータシートで説明されてるから試すまでもない。
0239774ワット発電中さん垢版2022/04/29(金) 02:47:32.71ID:UIIDhDzy
データシート読めないやつ vs 質問と関係ない回答をする文盲
まるでアンジャッシュのコントだな笑
0241774ワット発電中さん垢版2022/04/29(金) 07:56:35.57ID:qw6Pou+i
データシート見てたけど、ATtiny102のADCのOffset Errorがよくわからない。
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42505-8-bit-AVR-Microcontrollers-ATtiny102-ATtiny104_Datasheet.pdf

P216
Int VREF = 1.1V, VCC=4.0V, ADC clock = 200 kHz
の条件で、
min -54LSB, typ 9.1LSB, max 2LSB
これはどう解釈するべき?
他の条件では min<typ<max となっていて飲み込めるのだけど。
0243774ワット発電中さん垢版2022/04/29(金) 11:37:55.91ID:vx1O2Gay
>>241
自分も少し前にそれ見て理解できなくて困惑した
そのリストに載ってる他の条件での数値を見ると誤記である可能性が高いと思う
0245235垢版2022/04/29(金) 11:45:24.40ID:UfDqUDoZ
いや〜オレ疎いんでぇ〜
ROMっときまぁ〜す
0246774ワット発電中さん垢版2022/05/02(月) 21:56:04.85ID:6D+d1DUH
1秒に10回のfloatの掛け算は可能ですか?
0247774ワット発電中さん垢版2022/05/02(月) 22:14:27.08ID:MgX/B1KY
MicrochipStudioで使いたいデバイスを選んでシミュレーションしてみなよ。
実行に費やしたクロック数出るよ。
乗算器の無いtinyでザックリ1回400クロックってとこかな。
0249774ワット発電中さん垢版2022/05/03(火) 07:53:06.48ID:aT5842ol
半精度はWikipediaによると仮数部10ビットで実質11ビットだから、
整数相当が格納できるのは±2047までになるのかな?
0251774ワット発電中さん垢版2022/05/08(日) 22:18:49.52ID:T9SAAah+
アトメルやマイクロチップは完全に無関係の「(ロシアの偉大な技術力による)国産化AVR」というのが
アメリカ製を嫌うロシア軍向けに供給されているらしいが、

実はロシアの半導体メーカーが本物のAVRを輸入してきて、
樹脂を溶かしてベアチップを取り出し、軍用のセラミックパッケージに封入し直してたんだと。

かくして再設計したはずなのにスペックが本物と一致する「完全互換のロシア製AVR」のできあがり。
顧客であるロシア軍はそれに気づいてなかったとのことである。
0254774ワット発電中さん垢版2022/05/09(月) 00:19:52.38ID:DniH7emE
>>253
いやいや、紛れもなく本当の話だよ。ロシアメーカーの製品ラインナップには
(彼らにとって)設計・製造が困難であるはずの欧米製デバイスの互換品が多数存在しており、
そのからくりを知る前は感銘を受けたものだった・・・とのこと
0258774ワット発電中さん垢版2022/05/10(火) 00:31:32.45ID:vj5H5YR6
まもなくDDシリーズが出荷開始されるみたいだけど、
14ピンや20ピンがあるのはいいとして、機能的にはDBのダウングレードでしかない。
なんでこんなに大同小異なバリエーション出すんだろう?
モノ不足で貴重なウェーハをそんなことに使ってる場合なのかなあ。
0259774ワット発電中さん垢版2022/05/10(火) 09:30:17.09ID:HD4dolZj
複数chからAD変換したいのですが下記のようにしても数字がおかしいのですがどこが間違っているのでしょうか

ISR(TIMER1_COMPA_vect, ISR_NOBLOCK){
unsigned int i0,i1,i2;

ADMUX &= ~0b00000111; //ADC0を使用
ADCSRA |= _BV(ADSC); // ADをスタート
if (ADCSRA & _BV(ADIF)) { // AD変換の終了を確認
i0 = ADC; // ADCは16bit幅で、8bitずつ2回に分けてアクセスされるので、
// 変数アクセス中に割り込みが発生しないように注意すること
}

ADMUX |= 0b00000001; //ADC1を使用
ADCSRA |= _BV(ADSC); // ADをスタート
if (ADCSRA & _BV(ADIF)) { // AD変換の終了を確認
i1 = ADC; // ADCは16bit幅で、8bitずつ2回に分けてアクセスされるので、
// 変数アクセス中に割り込みが発生しないように注意すること
}

ADMUX |= 0b00000100; //ADC4を使用
ADMUX &= ~0b00000001; //ADC4を使用
ADCSRA |= _BV(ADSC); // ADをスタート
if (ADCSRA & _BV(ADIF)) { // AD変換の終了を確認
i2 = ADC; // ADCは16bit幅で、8bitずつ2回に分けてアクセスされるので、
// 変数アクセス中に割り込みが発生しないように注意すること
}
}

int main(void)
{
//AD変換設定
ADMUX |= _BV(REFS0); // 電源5Vを使用、データ右詰め
ADCSRA |= _BV(ADEN) | _BV(ADPS2) | _BV(ADATE);
// ADEN, ADSC, CK/16(125kHz)
0260774ワット発電中さん垢版2022/05/10(火) 09:33:40.81ID:3hnrsunY
if (ADCSRA & _BV(ADIF)) { // AD変換の終了を確認

AD変換中だとお手できないので、待ても覚えよう
0261774ワット発電中さん垢版2022/05/10(火) 10:00:19.12ID:HD4dolZj
>>260
loop_untilなんちゃらというのを使うんですね
やってみますありがとうございます
0262774ワット発電中さん垢版2022/05/10(火) 10:46:33.34ID:VKb1oG45
他にすること無く変換完了を待つなら、C でどう書くかは知らないけど AD変換雑音低減スタンバイモードが便利だよ。
このモードを設定すると、sleep と同時にAD変換が始まり、その間プロセッサは眠っていて、変換が終わると目覚める。
正確に言えば何かの割り込みで目覚めるから、AD変換完了の割り込みは許可、それ以外は不許可にしてないとだめだけど、割り込みルーチンで何かをする必要は無い。
0265774ワット発電中さん垢版2022/05/11(水) 01:33:56.85ID:XnlRKkNB
スケッチならそのままAVRのコードに書き換えられるんでは
何を求めてるか知らんが
0266774ワット発電中さん垢版2022/05/11(水) 06:53:19.73ID:/E1657HS
arduinoとして使う場合とCとかで直接使う場合とでの速度差ってどんぐらいなん?
0267774ワット発電中さん垢版2022/05/11(水) 07:26:34.83ID:wqLebhJ/
>>266
コンパイラが同じgccなら、最適化などの条件を揃えれば、同じコードなら結果に大きい違いはないのでは。
文字列の処理をchar配列ではなくstringを使うみたいに、arduinoの便利な機能を多用してたら差はでるかもだけど。
0269774ワット発電中さん垢版2022/05/11(水) 07:41:23.28ID:IEtEcAZk
Arduinoの記事は
・データシートを理解していない事が多い
・パラレルに実行できる処理もシングルタスクで実装される
0270774ワット発電中さん垢版2022/05/11(水) 07:51:39.89ID:loYzH5+j
Arduino Lチカでぐぐると制限抵抗なしでIOにLED直結の記事が上のほうに出てくるんだよな
あと赤外線受信素子の記事でもやたら到達距離短いなとデータシート見るとフィルタCRが省略されてたり
電気的な知識が欠落して危険だったり性能が出てない事も多い
中華以下の印象
0271774ワット発電中さん垢版2022/05/11(水) 07:55:20.62ID:loYzH5+j
>>268
俺も速度よりサイズ重視だな、Arduino用ライブラリを書き直すと大体半分以下になるわ
といっても玉石混交でこれはすごいと思えるようなもんもあるからね
0272774ワット発電中さん垢版2022/05/11(水) 08:40:48.13ID:O2byha33
Arduinoは知的障害者の職業訓練ツールスレ
あったのにもう落ちたか
0274774ワット発電中さん垢版2022/05/11(水) 11:08:05.39ID:ZX1kN/Wk
>>270
I/OポートドライバのON抵抗が大きかったり、LEDのVFが高い、VDDが低いケース等で
電流制限抵抗なしで各仕様を満足する可能性があるけどそこまで解説しているサイトはほとんどないね
0275774ワット発電中さん垢版2022/05/11(水) 13:01:03.77ID:uvpLcJFI
Arduinoが遅いのはわかりやすさ優先?のためにタスクのブロックを多用するからでしょ
analogReadにしろdelayにしろ従来の実装なら割り込みで実装される所だろうし
あと初期化コードも各所にあって無駄が多い
0276774ワット発電中さん垢版2022/05/15(日) 23:02:41.24ID:wo5fHHz7
ここにもAVR…
こういうお馬鹿は大好き。もうちょっと安けりゃ買うんだが…
ttps://ascii.jp/elem/000/004/091/4091408/
0277774ワット発電中さん垢版2022/05/17(火) 16:14:02.70ID:VETuXRus
DDシリーズ出荷開始
100個時単価で
AVR64DA28-I/SO \155
AVR64DB28-I/SO \167
AVR64DD28-I/SO \142
さっさと14ピンパッケージ出してくれぃ
0280774ワット発電中さん垢版2022/05/17(火) 23:47:31.62ID:3AqfXml/
すごい久々にマイコン工作する事になり当時使っていた共立のAVRWRT3という
ライターをひっぱりだしてきたんだけどWin11はおろかWin8までしか対応していないとのこと。
当然とっくの昔に終売になっているし・・・

という事で代わりの物を買おうと思っているのですが、上記ライターにはクロック出力という
機能が付いていて重宝していましたので同等の機能があればなぁと色々見てみたのですが
見当たりません。

現行Win11で動作可能なライターでクロック出力が可能な機種ってありますか?
0281774ワット発電中さん垢版2022/05/18(水) 01:14:49.27ID:PGJ0qWI0
>>280
クロック出力ってどんな機能なの?マイコンの外部クロックとして供給するの?
0282774ワット発電中さん垢版2022/05/18(水) 06:01:48.65ID:ng2wuMGf
>>280
1MHz出力付いてるhidaspxはwin11でも一応動くがもはや共立ライター同様終わってるし対応デバイスも古い

クロック出力は本来ヒューズミスった時の救済機能だしそれ必須で考えると選択肢狭いぞ
CMOSのオシレータでも載せとけば?
それか、新品の米粒tiny10にCKOUTヒューズだけ焼けばプログラム書かんでもクロック出る
0284774ワット発電中さん垢版2022/05/18(水) 08:56:31.82ID:vbC+lecL
>>281
クロック有り基板から引っこ抜いて書き換えるときとか重宝する感じの機能でした。
付属ライティングアプリ内から1MHz,2MHz,offのコントロールできたり。

>>282
そんなに世の中変わってしまったんですねぇ。
言うとおり内蔵は諦めて外部クロック用の工作考えながらなんか近代的なライター買います。
0287774ワット発電中さん垢版2022/05/18(水) 11:12:57.18ID:KpNtPSan
水晶発振器買った方が安いのではと思ったけどマイコン買うほうが安いのか…
0288774ワット発電中さん垢版2022/05/18(水) 11:43:08.59ID:BHdOxmMf
水晶発振器は30円からあるけど
3V/5V併用考えるとマイコンのほうが汎用性があると思う
5Vオシレータは3Vでうまく発振しないケースが多い
0289774ワット発電中さん垢版2022/05/18(水) 12:26:59.12ID:PGJ0qWI0
精度いらなければRC発振器で充分じゃん
それでもそういう部品集めるよりマイコン1個使う方がメリット多そうだけどさ
プログラム組めば任意クロックも出せるしな
0290774ワット発電中さん垢版2022/05/19(木) 00:00:41.34ID:GlKOm4jx
水晶をAVRから離れた場所に置きたい場合、どれくらいまで離せるもんですかね?
0292774ワット発電中さん垢版2022/05/19(木) 05:39:24.84ID:iwvyarQT
たかだか20MHzくらいだろ。
好きなだけ離せばいい。
クロック線を差動にするとか工夫はいるけど。
0294774ワット発電中さん垢版2022/05/19(木) 07:38:15.57ID:8Cn8Bnjf
発振器出力と、水晶振動子を混同してるんじゃ?
水晶振動子を10cmの配線でつないだら
まともに動かない。
運よく(運悪く)発振してもスプリアス発振
0296774ワット発電中さん垢版2022/05/19(木) 10:02:37.04ID:RCF7vSl9
timecap[timecap_cnt] = (PIND & 0x02) ;

AVRのgcc
timecap[ ]はint型 これコンパイラがwarningも返さずに
右辺に存在しないはずの上位8bit分も演算して代入してくれるんだけど
timecapの下位8bitのみに代入するコードを生成させる場合どう書いてます?
0297774ワット発電中さん垢版2022/05/19(木) 10:15:30.74ID:ECKKQHDG
元の値の上位8bitと下位8bit orして変数に代入とわかりやすく書いてる
構造体ならunion使う事もあるけどマイコンではまずやらないな
0299774ワット発電中さん垢版2022/05/19(木) 13:47:50.94ID:40KZImk/
>>296
右辺が左辺のintに型変換されるのはC言語の仕様、
AVRのgccだからと言う事では無い
0300774ワット発電中さん垢版2022/05/19(木) 14:17:28.37ID:RCF7vSl9
返答どうも
勉強になるなー
どうも無理っぽいのでint型やめるわw
0301774ワット発電中さん垢版2022/05/19(木) 14:37:56.83ID:Hx58niis
timecap[timecap_cnt] = timecap[timecap_cnt] & 0xFF00 | (PIND & 0x02) ;
じゃないの?
0302774ワット発電中さん垢版2022/05/19(木) 14:39:30.12ID:40KZImk/
>>299
>>300
訂正、16進リテラルの0x02がintだから論理積の時点で右辺がintになります。

下位8ビットだけ変更したい場合はこうかな。
timecap[timecap_cnt] &= ~0xff; // 下位8bitを0にする
timecap[timecap_cnt] |= (PIND & 0x02); // ORで下位8ビットに代入
0305774ワット発電中さん垢版2022/05/20(金) 09:13:35.78ID:4Ks9oQhg
>>304
アナログ放送時代にマスプロのアンテナのCMで
おねいちゃんが困るって言ってた(^p^)
0307774ワット発電中さん垢版2022/05/20(金) 14:52:01.37ID:k7qIiDbM
昔まだ東横線が地上を走ってた頃
渋谷の手前で大きくカーブしたときに
いつもわくわくして見え過ぎ君が見え過ぎてた
良い思い出
0309774ワット発電中さん垢版2022/05/22(日) 10:07:15.53ID:i2tKIFPo
しゃばだばだ~♪
おれが昔とうよこせんだったころ
弟はてんはませんだった
親父はどげんかせんで母はあかせんだった
わかるかな~わっかんねえだろうなあ
0312774ワット発電中さん垢版2022/05/22(日) 10:48:56.66ID:ZDVAG+2N
60~70近いだろなw
少ないけど10代20代もいると思うから
幅広いといえば幅広いw
0313774ワット発電中さん垢版2022/05/24(火) 08:06:29.06ID:88n9YP1U
少ない年金で遊ぶしかないPIC爺がAVRに押し寄せてきたから高齢化は必至
0314774ワット発電中さん垢版2022/05/24(火) 08:44:53.51ID:hmFijGu6
年金かー
俺は期待できないから今のうちに貯蓄するしかない
けどここ数年はAliのおかげで楽しかったな、何円かぶりに電子工作再開できたし
でもそれも終わりだな
0315774ワット発電中さん垢版2022/05/24(火) 09:03:01.28ID:zyaS5nYM
俺年金もらってるよ
老齢年金じゃないけど
まだAVRには手を出してない
0318774ワット発電中さん垢版2022/05/25(水) 12:36:03.80ID:TIlLCVyk
timer0 1msで7セグを駆動、timer1 100msで演算をしてます
timer1の処理が長いので、演算のタイミングで7セグがチラつきます
timer1の処理は時間を含むのでNOBLOCKにはしたくないのですが、NOBLOCKにするとチラつきは無くなります
関数とかで正確な時間を取得する方法はありますか?
0319774ワット発電中さん垢版2022/05/25(水) 13:31:52.17ID:OIZUgJ2E
60fpsあれば人間の目ではチラつき気にならないはず
1ms x16桁=16ms =62.5fpsってことなんかな
演算部分を区切って表示に時間を与えるとかしないと無理じゃね
大昔にテレビに表示しながらROMからFont読んで展開というのを書いたけど大変だった
MAX7219やTM1637使うかもう1つAVR追加してi2cスレイブな表示デバイス作るほうがより早く目的達成できると思う
0321774ワット発電中さん垢版2022/05/25(水) 13:52:17.20ID:LxGrXIkw
タイマーではフラグセットするだけにしておいて、
割り込み処理以外のメインループ内で フラグ見ながら
ゆっくり演算すりゃええんとちゃうん?

AVR使ったことないからよーしらんけど;^p^)
0322774ワット発電中さん垢版2022/05/25(水) 14:11:28.58ID:OIZUgJ2E
フラグだけ立てても
スケジュールにマルは付くけどまとまった休みが取れなくて海外旅行なんてもう8年も行ってないよだれ係長みたいになるよ
0323774ワット発電中さん垢版2022/05/25(水) 14:23:01.99ID:o4hLAJDJ
根本的なプログラムの構成から間違ってんだろうなあ。
がんばれ若者よ!
0326774ワット発電中さん垢版2022/05/25(水) 17:28:33.30ID:aXLPn93x
「よだれ係長」いいねw
0327774ワット発電中さん垢版2022/05/25(水) 19:11:38.71ID:TIlLCVyk
>>324
>>325
まさに74LS247使ってるんですけど16ケタ表示してるので1ms間隔で切り替えないとチラつくんですよね…
0332774ワット発電中さん垢版2022/05/25(水) 22:17:58.31ID:ajYSRHse
>>318
時間カウント用にタイマを回すとか。もうタイマ残ってないとかです?
シビアなことやってそうですね
0333774ワット発電中さん垢版2022/05/25(水) 22:21:02.77ID:o4hLAJDJ
元を書いている人がバカ。
それPWMモードじゃなくピントグルモード。
0335774ワット発電中さん垢版2022/05/25(水) 22:55:21.65ID:89haxl8e
>>325
7447 のほうがフォントがレトロで好き。
ってか、LS なんか使ってるんか。
14511じゃないのか。
0337774ワット発電中さん垢版2022/05/26(木) 00:43:15.03ID:eLZb02rA
>>331
phase corrected PWMの場合、
up(0→255)→down(255→0)で1周期となるから
up(0→255)→clearのFast PWMに比べて周期が倍になる
0338774ワット発電中さん垢版2022/05/26(木) 03:03:00.39ID:rw2g2GWU
>>332
やっぱそれしかないですよね
タイマーではフラグだけ立ててwhileループに処理を移動してみます
精度は落ちてしまいますが…
0340774ワット発電中さん垢版2022/05/26(木) 08:07:40.73ID:rj5lb9K/
割り込み処理で時間がかかる処理をやってはダメ
フラグ立ててメイン処理でやらないと
0341774ワット発電中さん垢版2022/05/26(木) 08:09:23.14ID:rj5lb9K/
割り込みタイミングでのADの値やポートの値等が必要ならそれも保存しておく
0342774ワット発電中さん垢版2022/05/26(木) 12:32:49.52ID:0iKiaGON
>>338
やっぱ精度求められるんですね。
表示する値の元を取得してから表示までの時間も限られてて、処理分割や別マイコンで表示も避けたい、とかもあったりします?
0343774ワット発電中さん垢版2022/05/26(木) 12:40:48.74ID:mU0ziQMF
仮にLED表示が10mSズレたとして何か問題あるのか?
人間にそのズレは認識できるのか?
0344774ワット発電中さん垢版2022/05/26(木) 12:53:43.71ID:3yCqdK4X
最初からチラつかせておけ
7セグなんざ一個当たり16fpsで充分

それから割り込みで計算データをFIFOに積むだけして
計算はメインでやれ
0345774ワット発電中さん垢版2022/05/26(木) 12:56:05.02ID:HArCIx6J
まさか100msの演算が終わるまで表示停止になってるんじゃないか
前の結果を保存しておいて演算中はそれを16ms周期で表示するんだよ
新しい結果がでたら表示用バッファを更新する
0346774ワット発電中さん垢版2022/05/26(木) 12:58:13.77ID:3yCqdK4X
多重割り込み禁止状態で使ってるんだろw
0347774ワット発電中さん垢版2022/05/26(木) 13:00:01.03ID:sTegja8i
ペリフェラルやCPUの使い方やアルゴリズム等が不適切なだけに見えなくもない
20MHzとしても1msあれば2万ステップを実行できる。何を計算しているんだろうね
安易に浮動小数点で演算していてステップ数を浪費しているだけだったりして
0348774ワット発電中さん垢版2022/05/26(木) 13:00:52.22ID:HArCIx6J
演算じゃなくADCやパルスカウントのようなサンプリングやってそうだ
0350774ワット発電中さん垢版2022/05/26(木) 15:37:42.05ID:SmFSRYb8
質問すると無能者呼ばわりされるのか?w
愛の鞭だと思って赦してやって下さい >>318
決して愛の蝋燭や愛の縄ではありませんw
0351774ワット発電中さん垢版2022/05/26(木) 16:00:23.56ID:ojlK84WI
無能者呼ばわりじゃなくて
質問だけ投げて詳細不明、あげくに後出し連発でもやもやするんじゃね
みえそうでみえない、ほらほーらきいろい錯乱坊
0352774ワット発電中さん垢版2022/05/26(木) 16:19:06.92ID:WjT/cDKv
アカウント制でもないこういう掲示板だからしょうがない
質問者も回答者も肩の力を抜いて行きましょう
0354774ワット発電中さん垢版2022/05/26(木) 17:04:29.22ID:rTKNnaGR
7セグはなにげに、
長辺とドットとで定格電流が違ったりするからややこしや− ややこしやー
0356774ワット発電中さん垢版2022/05/26(木) 17:20:47.93ID:0/UOGEs1
>>351
回答に必要な要因が最初から分かっていて質問時に記載できるぐらいなら、自力で回答に辿り着く事が出来るんじゃ無いの?
確かにワザと小出しにしてそうな質問も見かけるがね。
0357774ワット発電中さん垢版2022/05/26(木) 18:49:06.20ID:Z6LLXRwQ
初級者でもなさそうなのに理由なく情報を出さないのは
アフィブログやアフィ動画のネタかと疑われてもしょうがない
0360774ワット発電中さん垢版2022/05/26(木) 21:42:15.97ID:4vd7joS+
むむむむ、見えるぞ!

キミは電子工作が好きだな
そして、好きな色は黄色!
好きな食べ物はカレーだっ!!
0362774ワット発電中さん垢版2022/05/27(金) 01:31:59.83ID:MkRLh7yg
滑る滑るよ時代は滑る
喜び悲しみ繰り返し
今日は倒れたBBS戦士たちも
生まれ変わって叩き合うよ
0363774ワット発電中さん垢版2022/05/27(金) 05:17:52.93ID:qP+rm/YL
AVRrcコアで、NVM領域に対する LD reg, X+ は大抵 2クロックなんだけど、たまに 3クロックになる(-X でも Y, Z でも同様)。
RCALL も大抵 4クロックなんだけど、たまに 5クロックになる。
この 1クロックが挿入される条件って知らない?
割り込みが入ってるわけでもないし、1クロック挿入される場所では毎回必ず挿入される。
同じような処理で同じような命令の並びでもこんな感じで挿入があったり無かったりしてよく分からない。

LD R23, X+
LD R19, X+
RCALL SUB1

:

LD R19, -X
LD R23, -X ← 挿入あり
RCALL SUB2 ←挿入あり
0365774ワット発電中さん垢版2022/05/27(金) 11:11:46.33ID:QxYWOEOV
クロックの数え方が悪いのかもよ。
実は全部データシートどおりでした〜なんてオチ。
0366774ワット発電中さん垢版2022/05/27(金) 14:35:35.01ID:89JKM+uN
>>365
そのデータシート自体、クロック数に幅を持たせて書いてあるんだよねw
でもその条件ははっきり書いてない。
NVMアクセスに関しては、実行コードとのフェッチと LD が競合すると 1クロック挿入がある的なことが書いてあるけど、ほとんどのケースでは挿入されてないみたいだし。
検証はまずはシミュレータでやってるけど、挿入のあるところでは必ず挿入があるし、実機で確認しても挿入があるっぽい感じ。
アドレスのアライメントによるのかと nop 挟んでみても変わらないし、プリスケーラの周期によるのかと思ってもそこへはいろんな周期で到達してるから、バラつかないのはおかしいし。
0368774ワット発電中さん垢版2022/05/27(金) 20:14:43.77ID:eMkYjmUI
>>367
NVM のアクセスについての注記のことで合ってる?
そう、NVM アクセスでは追加クロックがかかると書いてあるのに、ほとんどのケースで追加されないのよね。
追加されないとことでは何万回ループしても追加されないし、されるところでは必ず追加される。
つまり確率的な内部状態じゃない条件で追加の有無が決まってるようなんだけど、なんとも法則を見出だせないんだよ。
0369774ワット発電中さん垢版2022/05/27(金) 22:42:25.48ID:yX/rEnhe
>>368
他のCPUの話だけどワードアライメントまたぐと余分のクロックがかかるというのがあるけど、そんな感じ?
NOPで位置調整してみたら?
0371774ワット発電中さん垢版2022/05/27(金) 23:16:29.81ID:yX/rEnhe
念のため、位置調整してみたのは、プログラムコードとデータと両方?、片っぽだけ?
0375774ワット発電中さん垢版2022/05/28(土) 12:08:12.24ID:KHRH54rK
>>371
位置調整はコードの方だけだけど、データの方はループで X がバイト単位で変化するから全てのアライメントをなめてる。
今のところはシミュレータで確認して挿入があればそれに合わせてクロック調整して対応できてるから致命的な問題じゃないんだけど、コード書く段階で判別できたら効率いいんだよね。
ゆるゆると研究します
0376774ワット発電中さん垢版2022/05/31(火) 15:58:00.08ID:nEbzlMb2
>>375
該当箇所のだいぶ前に原因があって、そこまで来たときに競合が起きて1クロック入ってるってことでは?
0377774ワット発電中さん垢版2022/05/31(火) 17:07:58.29ID:6uh/t19U
>>376
アセンブラソースで行数がかさばるので気が引けるけど、現象の出てる部分を引用するとこんな感じ。

SOUNDX1_LP2:
ld ARG, X+
ld PULSECNT, X+
rcall SUB_TONE17
cpi XL, LOW(ADDR(SOUNDX1_TBL_END))
brne SOUNDX1_LP2

WAIT 39 - 12
cbi PORTB, PNO_SOUND
WAIT 2061 * 4 + 13

SOUNDX1_LP3:
ld PULSECNT, -X
ld ARG, -X ; +1 clock
rcall SUB_TONE19 ; +1 clock
cpi XL, LOW(ADDR(SOUNDX1_TBL))
brne SOUNDX1_LP3


途中に入ってる WAIT はマクロで、こんな感じに展開される。
ちなみにクロック単位で待つマクロで、rcall の先は単純ループ。

(WAIT 39 - 12)
ldi TMP, 5
rcall WAIT_3X_11

(WAIT 2061 * 4 + 13)
ldi TMP, 0x20
ldi TMP2, 0x34
rcall WAIT_4X_11

LP2 と LP3 は X の進む方向は違うけど同じループ処理。
でも LP3 の方だけ +1 clock とある2箇所でクロック挿入がある。
別のケースも鑑みると、単純に X がデクリメント方向だからというわけではなさそう。
LP3 に入るまでに原因があったとしても LP3 自体がループなので、それ以前の影響がループ後にまで残るというのも考えづらい。
どう、なかなか謎じゃない?
0378774ワット発電中さん垢版2022/05/31(火) 17:13:13.62ID:6uh/t19U
ごめんマクロの展開間違えた。
こう。

(WAIT 2061 * 4 + 13)
ldi TMP, 0x0d
ldi TMP2, 0x08
rcall WAIT_4X_11
0379774ワット発電中さん垢版2022/05/31(火) 17:38:23.61ID:nEbzlMb2
ありがちなパターンを考えてみただけで
他人のコードをデバッグする気はないんだがw(スマソ)

まあ、おれも、イミフな現象をここで聞いてみたことあるが
自分の知らqないことは全部嘘君がうるさくて、なんも解決しなかった
まあ、頑張って
0380774ワット発電中さん垢版2022/05/31(火) 18:29:55.53ID:OcBSvAMn
あああああTiny2シリーズからADC_STCONVなくなっとる
細かく違ってめんどくせー
0381774ワット発電中さん垢版2022/05/31(火) 18:58:20.18ID:nSlsKBA1
NVMへのアクセスが気まぐれで1クロック増えようが頻繁にアクセスする物じゃないしどうでも良い
って思っているのは自分だけかな
0382774ワット発電中さん垢版2022/05/31(火) 19:24:27.89ID:uK24mL85
>>381
気まぐれだというなら別にいいのよ、それはそれですごく困るけど。
でも気まぐれじゃない条件があるようだから気になってるんだ。
幸い気まぐれじゃないからこそ、クロックが増える箇所を特定できれば調整して対応できるんで、結局完成品の動作には問題無いんだけどな。
NVM のアクセスが頻繁かどうかってより、タイミングの厳密さがどの程度かだよね。どうでもいいかどうかは。
ちなみに rcall が 1クロック増えたのは今回初めて遭遇した。
0385774ワット発電中さん垢版2022/05/31(火) 19:53:44.28ID:nSlsKBA1
そもそもデータシートのブロック図を見ても
ATmega328→CPUコアから伸びているデータバスにEEPROMを接続
AVR128DA→バスマトリックスにEEPROMを接続
もっと言えば物理的な接続や詳細な優先順位、割り込み条件なんてメーカーにしか判らないだろう
更に明文化されていないということはビジョンアップなどで変わる可能性すらある

自分だったらアクセスクロック数が保証される内蔵SRAMやレジスタファイルを使うな
0386774ワット発電中さん垢版2022/05/31(火) 20:13:31.63ID:jufP61gE
>>385
クロック数に幅のある命令は NVM と関係無いものにもあるし、NVM 使わなけりゃ済むかどうかも分からんけどな。
今回は rcall まで延びてるしね。
そしてシミュレータでもきっちり延びてるから、仕様としては固い部類なじゃないのかな。
もちろんそのスタンスを否定するつもりも無いよ。
0388774ワット発電中さん垢版2022/06/02(木) 07:23:19.76ID:JnZePBBE
ぐはっTCAもTiny0と1/2シリーズで微妙に違うぞksg
あーあーあーもう#ifだらけだよ
0389774ワット発電中さん垢版2022/06/02(木) 09:13:20.73ID:C4ZIOS+c
MicrochipになってからPIC同様に行き当たりばったりでバリエーション増やすようになったよな。
0391774ワット発電中さん垢版2022/06/02(木) 11:33:17.41ID:C4ZIOS+c
基本的にそうだけど、hexは168用にビルドし直さないとそのままでは使えないよ。
0393774ワット発電中さん垢版2022/06/02(木) 22:29:38.64ID:kRVbxv8p
>>388
データシートの誤植やった…
一日無駄に終わった…
avr.jpが悪いんかmicroなのか…
パアトラッシュもう…つかれたよ…ねる…
0394774ワット発電中さん垢版2022/06/02(木) 22:39:04.38ID:T28Ts9ns
日本語データーシートを信じてはいけません。
まして avr.jp なんて・・
0396774ワット発電中さん垢版2022/06/03(金) 23:07:20.05ID:wMfRa3Dx
あのデータシートなぁ
戦時中のカタカナ語狩りを独りでやってるんか?
0397774ワット発電中さん垢版2022/06/03(金) 23:51:29.46ID:EANLzaaE
意訳したらしたで文句言われるからわざと機械風にやってんだって。
0398774ワット発電中さん垢版2022/06/04(土) 00:07:39.27ID:yS7VoU5/
TCA8bit分割したらプリスケーラきかねえええええええええ
TCA0_HUNF_vectも呼ばれねええええええ
0400774ワット発電中さん垢版2022/06/04(土) 01:21:13.77ID:tgwUdUWM
TCA8bit分割してもプリスケーラ効くし
TCA0_HUNF_vectも呼ばれるなあ
うん、tiny1616は問題無し。
0401774ワット発電中さん垢版2022/06/04(土) 01:22:23.09ID:tgwUdUWM
TCA0_LUNFとTCA0_HUNFを同時に有効にしてもちゃんと両方呼ばれるわ。
うんうん、問題無し。
0402774ワット発電中さん垢版2022/06/04(土) 01:42:10.08ID:yS7VoU5/
おおお、検証さんくす
俺のやりかたがどっか悪いんやね、とりあえずねる
0403774ワット発電中さん垢版2022/06/04(土) 03:19:11.56ID:yS7VoU5/
INTFLAGクリアしてなくてずっとベクターさんのターンだったというオチ
もうなんかイヤイヤやってるので変なミスばっかしてるなあ、ねるっ
0404774ワット発電中さん垢版2022/06/04(土) 09:54:06.69ID:+xChzPdc
いろいろな作例見てると水晶の足にぶら下げてるコンデンサ、だいたい20ピコあたりがぶら下がってんですけど
データシート見ると浮遊容量含めて20ピコちょいくらいまでとのことで20ピコ接続するとと大きすぎるんじゃね?って思うんですが、どうなんでしょ
0405774ワット発電中さん垢版2022/06/04(土) 10:08:55.41ID:5Kx8s6br
デジットのランダム部品箱に27pF(実測33pF)のセラコンが大量に入ってたんで
1Mhz・4Mhz・8Mhzの水晶で使ってるけど普通に動いてるよ
0406774ワット発電中さん垢版2022/06/04(土) 10:12:05.42ID:+xChzPdc
現実に動いてるのはわかってるんですが
なんでデーターシート無視ってるような作例が多いのかな~って
0407774ワット発電中さん垢版2022/06/04(土) 10:42:35.04ID:oSwSG5Zp
>>404
水晶に2個コンデンサついてるじゃん22pFとかの
水晶から見た負荷のコンデンサ分の容量は(22*22)/(22+22)=11pF
これに基板やICの寄生容量が足される3~10pF位?
結果14~21pFの負荷容量になる
たぶん\(^o^)/
0408774ワット発電中さん垢版2022/06/04(土) 10:58:47.79ID:+xChzPdc
>>407
データシートのほうだと合算値じゃなくて片側の容量最大値が20ピコちょいみたいにかいてるんですよ
で、両方の容量を同じにしろみたいな
0409774ワット発電中さん垢版2022/06/04(土) 11:07:20.00ID:+J9M+qds
発振周波数測ってみたら?
公称より低かったら容量が大きいんじゃないかな。
0410774ワット発電中さん垢版2022/06/04(土) 11:10:02.30ID:suu8dI/R
前に実験したら32kと4M以上で全然違ったなあ
データシートのリファレンス回路だと発振ギリギリのが多かったよ
コンデンサ容量増やすと安定したり起動早くなったのもあった
0411774ワット発電中さん垢版2022/06/04(土) 11:18:37.87ID:+xChzPdc
ふ~む、いろいろと腑に落ちないものの
ちょっと大きめにしとくのが安全パイ的なかんじですかね
0416774ワット発電中さん垢版2022/06/04(土) 11:51:19.19ID:P11Ay1U0
手持ちのデータシートだと27p-30pだな
4MHz以上ならテキトーでも発振すると思うけど
0417774ワット発電中さん垢版2022/06/04(土) 11:54:59.00ID:+xChzPdc
>>416
およよ(古)
まさに4MHzで使おうとして、20ピコでいいの?って調べ始めたのがきっかけです
データシートによって書いてることが違うって罰ゲームかいなw
0419774ワット発電中さん垢版2022/06/04(土) 11:57:49.62ID:oSwSG5Zp
>>414
マイコン側のデータシートは推奨容量だから・・・・
水晶を誤差の少ない周波数で発振させるなら水晶側から見た負荷容量を適切設定する必要がある
0420774ワット発電中さん垢版2022/06/04(土) 11:58:54.65ID:tgwUdUWM
昔ながらのリード型クリスタルと最近のSMD型だと適正負荷容量がまるで違う。
そこを無視して作例比較しても意味無いよ。
本来時計用の32kなんて消費電力を抑えるために適正負荷容量はめちゃくちゃ低い。
AVRだと32kにはコンデンサ不要な場合もある。
公式にクリスタル選定方法のアプリノートがあるから読んでみればいい。
リファレンスボードだと2個のコンデンサの容量が違うこともざらにある。
0422774ワット発電中さん垢版2022/06/04(土) 12:08:35.33ID:tgwUdUWM
でかいクリスタルと消費電力気にしてない発振回路だと、発振余裕度がでかくて適当でも動くな。
中心周波数ずれるけど。
経験したことないけど発振パワーのありすぎる回路だとクリスタル壊れることもあるんだってさ。
0424774ワット発電中さん垢版2022/06/04(土) 12:25:36.32ID:+xChzPdc
>>422
時計用の32khzはデカイ奴用の回路で発振させると、かち割れるって、複数のサイトで見た
0425774ワット発電中さん垢版2022/06/04(土) 12:28:37.27ID:P11Ay1U0
>>420
昔ながらのリード型でインバーター発振回路組むと5V12mAくらいで
328マイコンボード全体で7mAくらいだからなあ
32kはなかなかシビアなんだけど
余ってるインバーターでループ発振させてそれを注入する回路(俺はクロックインジェクターと呼んでいる)でめっちゃ安定するわ
04でも14でもだいたい150MHz付近で発振するもよう
発振のきっかけをつくるって動作らしい
けど消費電力は倍になるw
0426774ワット発電中さん垢版2022/06/04(土) 12:41:54.99ID:oSwSG5Zp
>>423
その位の負荷容量だと使うコンデンサは24~36pF位の容量になるとおもう
逆にデータシートに合わせて12~22pFの範囲にしたいならもっと負荷容量の低い水晶を選ぶ
0427774ワット発電中さん垢版2022/06/04(土) 12:45:09.83ID:+xChzPdc
>>426
データーシートによって書いてる容量ちがうっぽいし
もう、なにがなんだかw

まあ、水晶のほうの都合優先でいいってことなんですかね
0428774ワット発電中さん垢版2022/06/04(土) 12:59:34.50ID:oSwSG5Zp
>>427
手元に水晶が既に有って変更しないなら水晶に合わせて設計する事になると思う

少しぐらいなら
水晶から見た負荷容量が大きければ周波数は低い方へシフトして
負荷容量が小さければ周波数は高い方向にシフトする

どのぐらいの周波数精度を求めるかによって設計は変わると思う
0429774ワット発電中さん垢版2022/06/04(土) 13:06:45.72ID:+xChzPdc
>>428
時計的なものというか時計なので
安定度はほしいけど、周波数自体の正確性はまあまあでいいのです(ソフトの強味)
0430774ワット発電中さん垢版2022/06/04(土) 13:20:54.46ID:Fnv4r3YK
厳密にやりたいならデータシートの計算式で求める
面倒なら発信器
0431774ワット発電中さん垢版2022/06/04(土) 13:35:55.43ID:P11Ay1U0
TinyシリーズのRC20MHzだと時計が1日5分も狂うので
しかたなくオシレータつけたよ1日5秒くらいの誤差になった
0432774ワット発電中さん垢版2022/06/04(土) 13:47:54.30ID:oSwSG5Zp
>>429
ソフトで補正するなら
CL=20pFなら33pFのコンデンサで制作して
誤差測定して修正すれば良いと思うの

もしくはESP8266,ESP32でNTPから時刻を・・・
0437774ワット発電中さん垢版2022/06/04(土) 21:13:38.07ID:8Rln9kNM
年取ると脳にインプットより、脳からアウトプットする方が大事らしい
しょーもないダジャレの親父ギャグも、思いついたらすぐ口に出すのがその一例

だがな、ここはそんな場所じゃないんだよおお!
0438774ワット発電中さん垢版2022/06/04(土) 22:18:14.08ID:f4dzGba5
火にAVRを注ぐ(へQへ)
0439774ワット発電中さん垢版2022/06/04(土) 23:02:11.30ID:Qyl8DZhW
https://www.excite.co.jp/news/article/Prtimes_2022-05-31-81631-8/
設計・材料選定プロセスにおけるAI活用の最新動向レポート[2022]を発表。データドリブンな材料開発の裏側と、設計・材料選定プロセスにおける工程時間を55%削減するヒントについて解説 PR TIMES 2022年5月31日
株式会社SUPWAT(本社:東京都渋谷区、代表取締役CEO:横山卓矢、読み:スプワット)は、この度、設計・材料選定プロセスにおけるAI活用の最新動向レポート[2022]を発表しました。データドリブンの材料開発は、大学や航空宇宙系研究機関でも活用が進んでいます。本レポートではデータドリブンな材料開発の裏側と、設計・材料選定プロセスにおける工程時間を55%削減するヒントについて解説します。
資料DL:https://note.com/supwat/n/nb3a9ec3b318c

https://spioenkopjp.blogspot.com/2022/05/blog-post_18.html
Oryx Blog - ジャパン 2022年5月18日
未来戦に備えよ:トルコが無人機による空戦技術の礎を築くための手法
 トルコは「アクンジュ」や「クズルエルマ」といった無人戦闘機の開発に加え、いつかそれらの後継機を設計したり、先端技術を特徴とするその他の分野において働くであろう優秀な人材の確保にも入念に注意を払っています。
 この国は、世界でも類を見ない規模で、子どもたちや若者の間でテクノロジー分野のあらゆるものに対する関心を高めることを通じて、その目標を達成することを試みています。
 これを成し遂げようとする方法の1つとしては、毎年開催される「テクノフェスト」などのハイテク関連のイベントが挙げられます。
 「テクノフェスト」を純粋な航空ショーや軍事的な性格だけのイベントと誤解することは許されますが、実際のところ、
このイベントはAIを活用した農業プロジェクトから電気自動車の設計までのあらゆるものを含む、30以上の技術コンペが開催されるテクノロジーの祭典なのです。

https://wired.jp/article/to-win-the-next-war-the-pentagon-needs-nerds/
AIによる戦争が現実化する時代 米軍での「高度IT人材」の不足が深刻化 WIRED 0531
この国は変えられる AIの活用 JDSC/4418テンバガー候補
https://jdsc.ai/news/ シニアマーケティング ゆこゆこ JDSCのAIを導入CVRが平均2.4倍 電力データとAIによるフレイル検知の実証を開始/中電
0442774ワット発電中さん垢版2022/06/05(日) 07:46:38.99ID:ExlB2oex
gpsの時刻で補正できるから、実は安定度もそこそこでよかったりします
完全自立で動くのは、gps受信機が壊れた時ぐらいかな
0450774ワット発電中さん垢版2022/06/05(日) 20:17:35.92ID:ExlB2oex
秋月から届いた荷物を開けたらなにか違和感が・・・・
なんだろう?と思ったら、袋にパーツだけ入ってんのが多数
前は必ずペラ紙でデータシートなり注意書きなりが付いてたと思うんだが
あれなくなったら秋月で買う意味半減だなぁ~
0451774ワット発電中さん垢版2022/06/05(日) 20:37:06.80ID:4zN8ZOsY
そんなのwebに記載してくれたら充分だ
人件費もタダじゃないんだぞ
たったそれだけの事で1個30円の部品が50円になったら200個で4000円も値上がりしてしまうぞ
0453774ワット発電中さん垢版2022/06/05(日) 22:17:35.68ID:MNUrb8U4
昔PIC買った時はそのマニュアルが付いてたような気がするな。
マイコンのハードの説明、インストラクションマニュアル、プログラミングインタフェースまで一式。
それでプログラマーやらアセンブラ(アセンブリ言語でコードを書いたという話じゃなく、まさにアセンブラそのもの)やらを作って使ってたよ。
当時インターネットもやってなかったから、それが無かったら資料の入手の仕方も分からずマイコン工作はできなかったな。
0454774ワット発電中さん垢版2022/06/05(日) 22:41:55.83ID:QFrCA8PV
A「紙が入っていない部品だけの袋が多数。秋月で買う意味半減」
B「1個30円の部品が50円になったら200個で4000円も値上がりしてしまう」
A「200個のうち199個は、紙が入っていない部品だけの袋でいい」

ナニコレ。

どうであれ、時代が違うんだ。
メーカー資料でも、秋月のオリジナル商品の資料でも、ダウンロードできれば済む話だし。
0456774ワット発電中さん垢版2022/06/05(日) 23:25:11.27ID:ePZsZjc6
入荷したらすぐに10個入り袋を作りはじめる
200個注文すると10個入り袋が20個届く
それが秋月
0457774ワット発電中さん垢版2022/06/05(日) 23:27:22.46ID:ExlB2oex
んなことはない200個も注文が来るようなもんンは100個入りとか200個入りとあがある

次あほなこと言ったらアボ~ンするぞ
0458774ワット発電中さん垢版2022/06/05(日) 23:36:21.18ID:fMVdMEwX
表面実装の電池ホルダー100個頼むと、リールテープなのに1個ずつ切られてる・・・
マウンターに使えないじゃん。
LED100個だと10個カットが10個だしさあ・・・
0459774ワット発電中さん垢版2022/06/06(月) 06:37:54.99ID:gdYJjlQd
トランジスタなら両面1ページで済むけど
PICのすんごい要約した奴を紙もらって嬉しいかな?
また別にダウンロードした奴を読む事になるんだが。
0460774ワット発電中さん垢版2022/06/06(月) 06:50:28.01ID:JkHCZDtZ
>>459
長い説明書が無いと使えんようなもんは、昔は、縮小コピーで1枚に何ページぶんも入ってて、
説明通りに折りたたんでホッチキスで止めて切り開くと冊子になるくらいのが付いて来てたんよ
ネットで探す必要なしだった。初心者にやさしい店だったのだ
時代っちゃ時代だけどねえ
0461774ワット発電中さん垢版2022/06/06(月) 07:30:54.77ID:tgokPWxS
液晶には説明書が入ってたけど結局捨てるから、PDFでダウンロードの方が便利。

秋月ネタが続きそうなら、専用スレが有ったはずなので、そちらへどうぞ。
0462774ワット発電中さん垢版2022/06/06(月) 08:46:37.04ID:bVZv99WL
>>454
かがくぎじつ は日進月歩っていうし、
常識という名のcommonなsenseも、
その三レスの間に進歩というかupdateしたんじゃね?しらんけど;へQへ)
0463774ワット発電中さん垢版2022/06/06(月) 09:00:09.28ID:xOWvk6Xo
かつて大量に買い込んだぷりんとごっこがようやく弾切れしただけじゃね
0464774ワット発電中さん垢版2022/06/06(月) 09:40:31.00ID:RJDlUIkV
単品でも袋詰め作業してくれる秋月は神
秋月の頑丈なパーツ袋は再利用価値がありすぎて重宝してる
0466774ワット発電中さん垢版2022/06/06(月) 13:36:01.84ID:rxa592bJ
秋月のパーツ袋は材質がPEじゃなくてPPだからガスバリア性能が高いからね。
0467774ワット発電中さん垢版2022/06/06(月) 13:40:31.80ID:JkHCZDtZ
ppなんか知らんかった
peって結構ガス通るよね、中でなんか腐らすと外まで匂ってくるし
0469774ワット発電中さん垢版2022/06/07(火) 09:18:37.10ID:MKQbisVX
内蔵オシレータ校正レジ:OSCCALて読み書きできる風に書いてあるけど
0固定値しか返ってこないやんけ
今現在の設定値をどうやって知るのかね?
0471774ワット発電中さん垢版2022/06/07(火) 11:37:27.98ID:ZozCjC3l
>>469
あんたのプログラムのバグだろう。
デバイス名も言わないしそんなに困ってないのかな?
ただのグチか。
0472774ワット発電中さん垢版2022/06/07(火) 13:27:04.88ID:MKQbisVX
メガ328pだよ
おまいらのメガ328pは愛想いいかい?
0473774ワット発電中さん垢版2022/06/07(火) 14:04:23.59ID:TXxJNjZ5
ソース見たわけでもないのにバグ断定とか何様
そういうこと言ってたらなんも書き込めないっての
ばぐだろうがなんだろうが話のネタなんだか別にいいじゃんよぉ
0474774ワット発電中さん垢版2022/06/07(火) 14:14:20.40ID:72YAqvkZ
カスタムbootloaderでOSCCALのセットを行えるようになっていてそこの値が0になってるくらいしか思いつかないな
Tiny202とかの新シリーズはプロテクト外して変更するけど旧シリーズにはそんなもの無い、生でいつでもさわれる
0475774ワット発電中さん垢版2022/06/07(火) 14:31:36.72ID:8BJdW5oc
makeする際にOSCCAL_VALUEというオプションがあってわからないからとりあえず0に設定したというのを忘れているんじゃないか
0476774ワット発電中さん垢版2022/06/07(火) 14:33:24.50ID:8BJdW5oc
まあそれでも最初にセットするだけだから他の値にすればそれが返るよな
0477774ワット発電中さん垢版2022/06/07(火) 14:53:06.80ID:j1EaEw8d
ところで校正レジスタの値って、初期値は何が設定されてるの?
工場出荷時にちょうどいい値が書いてあるの?
控えずにそれ書き換えちゃったら、もう元には戻せない感じ?
0478774ワット発電中さん垢版2022/06/07(火) 15:24:36.77ID:8BJdW5oc
>>477
<引用
工場出荷時、8.0MHz±10%となるOSCCALの値を測定して、その測定結果を「キャリブレーションビット」に書き込んであります。キャリブレーションビットは、普通のレジスタとは違って、CPU命令ではアクセスできません。
ヒューズビットなどと同様にして読み出すことができます(ユーザは、キャリブレーションビットには書き込みできません)。
リセット中自動的にキャリブレーションビットに記録されたデータがOSCCALレジスタに転送され校正された8.0MHzで発振します。
/引用>

Nanoでみたら173(0xAD
)がセットされてた、100に変更できた、リセットすると173に戻った
0479774ワット発電中さん垢版2022/06/07(火) 15:39:40.76ID:ZozCjC3l
読めて当たり前なものが読めないんだから、脳かプログラムのバグだろうさ。
データシートすら読めないんじゃ話にならんよな。
0480774ワット発電中さん垢版2022/06/07(火) 16:05:44.42ID:j1EaEw8d
>>478
おお、ありがとう。
じゃあ間違ってプログラミングして 0 になっちゃうってことは無いのね。
0481774ワット発電中さん垢版2022/06/07(火) 16:21:24.35ID:8BJdW5oc
>>479
レジスタ読むだけなんだからバグの入る余地が無いと思うんだけど
余程の初心者か奇天烈な事してなきゃ
たったこんだけだもの

void setup() {
Serial.begin(115200);
Serial.print("osccal=0x");
Serial.println(OSCCAL,16);
}

void loop() {
}
0485774ワット発電中さん垢版2022/06/08(水) 00:51:09.50ID:kfzoWmjz
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\print.h
#define HEX 16
0490774ワット発電中さん垢版2022/06/08(水) 06:13:12.27ID:TEVyon/f
他にすばらしいものがあるという信念を持っているなら当人にとってそれが真実であり別に侮辱では無いと思うが
残念ながら彼は行動が伴ってないので残念な子になってる
0491774ワット発電中さん垢版2022/06/08(水) 07:42:09.18ID:NF1d8QXR
フト、AVRでLチカ作ったら最少で何行のASMファイル、
何個の実行命令があればいいんだろ?と興味が湧いて、
8MHzのmega328で1秒周期のものを作ってみた。
     ;<<< Lチカ mega328 >>> 周期1秒(システムクロック8MH)
 C:000000 9a55      SBI  $0A,5  ;ポートDの第5ビット(11番ピン)からLEDへ出力
 C:000001 e3d2 Loop1: LDI  R29,50  ;R29レジスタで0.5秒ディレイ(10ミリ秒を50回)
 C:000002 e5f0 Loop2:  LDI  R31,80  ;Zレジスタ(R31:R30)で10ミリ秒のディレイ
 C:000003 9731 Loop3: SBIW R30,1  ;Zレジスタ-1
 C:000004 f7f1      BRNE LOOP3  ; ゼロになるまで繰り返す
 C:000005 50d1     SUBI  R29,1  ;R29レジスタ-1
 C:000006 f7d9      BRNE LOOP2  ; ゼロになるまで繰り返す
 C:000007 9a4d     SBI  $09,5   ;0.5秒経過したのでLEDのオン・オフを反転する
 C:000008 cff8      RJMP LOOP1  ;次の周期へ
良い子の皆さんには薦められないかな?
上級者のマウンタの方々が、ま、うんと気にするようなものではありませんw
0492774ワット発電中さん垢版2022/06/08(水) 08:19:13.32ID:wnCmGFUo
ディレイ使うなんて糞の役にも立たん
0493774ワット発電中さん垢版2022/06/08(水) 08:21:33.23ID:zk9kHVg+
>>491
mega328 使ったこと無いんだけど、SBI $09, 5 で ON/OFF が反転するの?
単に High になるだけのような。
というか、IO の $0A は DDRD で $09 は PIND で合ってる?
出力を変化させたいなら PIND じゃなく PORTD($0B) だったりしない?
0494774ワット発電中さん垢版2022/06/08(水) 08:46:23.70ID:Y7L9kcQt
>>493
ちょっとマニュアル確認した。
PINx への 1 の書き込みはポートの出力反転なんだね。勉強になった!
0495774ワット発電中さん垢版2022/06/08(水) 09:51:47.15ID:naO/Rg57
内蔵オシレータを観察していると3.3Vのほうがバラつきが大きいな
温度変化に対する感度が5Vより高いからか
電気特性の表どおりの傾向を示している

工場出荷値は5v/3.3vに合うように低めに調整してるが
CAL値の感度は5Vの方が高いからむやみにあげるのも考え物だな
0497774ワット発電中さん垢版2022/06/09(木) 06:38:22.04ID:DC27bIRU
Visual Studio 2019ベースに移ったりしないのかな。
0498774ワット発電中さん垢版2022/06/09(木) 07:24:28.72ID:uc++foa+
>>494
出力反転命令のニーモニックがSBI(Set Bit in I/O Register)というのは問題だよねぇ
分りやすいのに、なんでTBI(Toggle)などにしなかったんだろ
たとえば、「TBI 9,5」とい文字列からアセンブル変換すれば済む話なのに。
0500774ワット発電中さん垢版2022/06/09(木) 09:29:36.92ID:pVS/hStm
>>498
言ってることは分からんでもないけど、インストラクションの問題じゃなくIOレジスタの振る舞いの話だからなぁ
x86 の分岐ジャンプなんかでエイリアスがいっぱい用意してあるようなのとはちょっと違いそう。
もしその TBI案の場合、IOレジスタを限定する必要が出てくる。
でもそういう制約がきちんと実現されたエイリアスならあってもいいかなという気もする。
0501774ワット発電中さん垢版2022/06/09(木) 09:54:57.94ID:sZjqlfne
アセンブラが文字列「TBI 9,5」を16進数「9a4d」に変換してくれ、という簡単な話です。
もちろんオペランドの数値チェック込みで。
昔だったらアセンブラを自作したけど、今はもうそんな元気は無い・・・
0502774ワット発電中さん垢版2022/06/09(木) 10:05:20.11ID:FLfxUfow
これは釣りである
絶対反応するなよ?するなよ?
0504774ワット発電中さん垢版2022/06/09(木) 10:06:59.39ID:ZAFtKZ2p
うーん・・・カタカナばかりで何言ってるかわからん!!(^p^)
インストラクションは命令の事だろう、
レジスタは知ってるぞ、抵抗器だな(違)
分岐ジャンプは論理演算条件分岐のことだろう、
エイリアスというのが絶望的にわからんなぁ・・・

よし、(^p^)がこの異世界に転生したときに女神様から頂いた
特殊チートスキル「ぐぐる」発動!!
  エイリアス【alias】とは、偽名、別名、通称などの意味を持つ英単語。
  ITの分野では、ある対象や実体を、複数の異なるシンボルや識別子で
  同じように参照できる する仕組み

なるほど通名ってことか! なんという在日テクニック。つまり、
『x86 の条件分岐命令等で通名が潤沢に確保済の状況とは些か違いが予想される。
TBI案下では入出力用途に用いる置数機は限定する必要性が生じるが、左様な制約が
徹底された通名なら破綻しない可能性もありそうだ』ということか。

よし、なに言ってるかわからん!!(^p^)
0505774ワット発電中さん垢版2022/06/09(木) 10:21:41.76ID:sZjqlfne
>>503
基本的で重要な命令だから、アセンブラがちゃんとサポートしてほしいんだよね。
意味不明、ワケワカメ、何それ?がイヤなんだよね。

>>504
調子悪いのか?ちゃんとオチてないぞ。
書き込み禁止の影響か?無理するな。
0506774ワット発電中さん垢版2022/06/09(木) 10:28:20.21ID:p4Xzo3Y9
>>505
それ言ったら割り込み要求フラグのクリアも特殊だから、専用の記述を用意するの?
それに IO のトグルにせよフラグにせよ sbi で 1bit 単位でやるばかりじゃないから、やっぱ微妙だなぁ
0507774ワット発電中さん垢版2022/06/09(木) 10:53:32.13ID:sZjqlfne
>>506
I/Oレジスタと割り込み等の制御レジスタは異なるものだし、
「反転する」と「セットする」、「リセットする」も異なる動作だと思う。

SBI命令の対象ビットはビット番号の0-7で、1ビットしか操作できません。
複数ビットを同時に反転するときは別の手順になります(当然ですが)

これから病院に行くのでこれで。 by もうすぐ棺桶に両脚をつっこむジジィ
0508774ワット発電中さん垢版2022/06/09(木) 12:38:29.25ID:ZAFtKZ2p
へー。他マイコンでは ビットセット命令が 実態が read modify write だったりして他ビットに
不本意にもアクセスしちゃう副作用があったりもしましたが、AVRでは
ちゃんと単一ビットだけのアクセスが用意されているだなんて
洗練された石なんですなぁ・・・ ごいすー
0509774ワット発電中さん垢版2022/06/09(木) 13:32:39.34ID:7T+2HPky
>>507
SBI 使ったら 1bit 単位だけど、OUT で複数bit まとめて反転もできるでしょ。
そしてそのピンの反転動作はそれが単なるレジスタではなく I/O の機能としての実装であり、割り込み要求フラグに 1 を書くとその値とは裏腹にクリアされるのといっしょ。
TBI案はプロセッサのインストラクションにではなく I/O の動作にニモニックを与えることになるから、レイヤーが違うというか、やはり異質だよ。
PINx を操作するためだけのニモニック、TIFRx を操作するためだけのニモニックとか、そんなのあったらややこしくなるだけでしょ。
だから I/O の挙動を踏まえた記号が欲しいなら、マクロが妥当だと思うよ。
別の例だと、同じインストラクションにローテート ROL Rd と加算 ADC Rd, Rd の異なるニモニックが付けられてたりするけど、これは至極妥当だと思う。
0510774ワット発電中さん垢版2022/06/09(木) 14:52:38.68ID:SArBEQS6
ニーモニック云々はおいといて
mega328とか8ビットそろって出てないとか出てても他の機能と共有で
全ビット使えねーじゃんってなって、うなってたら
一ビット操作命令があるの知ってほっとした
1クロックだし
0511774ワット発電中さん垢版2022/06/09(木) 19:35:50.97ID:W1NJBC9G
>>509
あなたと私の間にはとんでもなく深くて暗い川がありますね。
命令とは何か、アセンブラとは何か、というレベルの認識や理解度の違いだと思う。
書かれている内容も抽象的で私はついていけません、ゴメンネ、ゴメンネェw
0512774ワット発電中さん垢版2022/06/09(木) 19:47:28.16ID:RQX/IANA
>>509
ADC Rd, Rd はキャリー0とした演算を期待するけど
ROL Rd はキャリーを含めた回転になってるな
LSL Rd ならキャリー0としたシフトなんだけど
ホントにADCとROLのコード同じなん?
0513774ワット発電中さん垢版2022/06/09(木) 22:58:40.82ID:49TjHu7m
>>512
1f00 ADC R16, R16
1f00 ROL R16

ちなみにこれは AVR のインストラクションマニュアルに書いてること。

>>511
抽象的も何も、プロセッサの挙動なのか I/Oデバイス固有の挙動なのかの話で、I/Oデバイス固有の挙動に対してニモニックを定義するっておかしいでしょと言ってるだけよ。
0517774ワット発電中さん垢版2022/06/10(金) 13:26:10.51ID:L8wFsOO+
ニモニックを自分用に読みやすく変えるだけなら
適当にdefなり書いて最初に読ませとけば済む
0519774ワット発電中さん垢版2022/06/11(土) 07:27:46.65ID:hE3gJs+j
つまりLSL命令は冗長(無くても構わない)ってことだな
プログラムの流れによって適切に使い分けて下さい、というアセンブラ(CPU)メーカーの思いやり
他にもある
0520774ワット発電中さん垢版2022/06/11(土) 09:56:20.87ID:v5Ffgb+6
3ビットシフトとかどうすんの?
ADD Rd, Rd
ADD Rd, Rd
ADD Rd, Rd
で出来るか。
0521774ワット発電中さん垢版2022/06/11(土) 12:49:40.74ID:AYvRikcp
>>519
すくなくとも AVR では LSL は ADD Rd, Rd の別名としてしか存在してないな。むしろディスアセンブラを作るときに悩みそう。
ところで、AVR のローテートが必ずキャリー経由というのはちょっと使いづらいよね。
ROL を ADC で代用してる都合でもあるんだろうけど、それならせめて BLD のキャリーフラグ版が欲しかったな。
0522774ワット発電中さん垢版2022/06/11(土) 14:46:12.27ID:Jq34x0w7
逆アセンブラ、オプションでどっちで表示するかきめればいいだけやん
0524774ワット発電中さん垢版2022/06/11(土) 19:28:58.52ID:ds+pjQH+
AVRプログラミング最近始めました。
良く分からないままネットで見付けたソースを適当にコピペして
組み合わせるとだいたい動くんですが、そんなやり方で上達するでしょうか?
みなさんどんなふうに勉強しています?
0526774ワット発電中さん垢版2022/06/11(土) 20:14:51.34ID:Jq34x0w7
うわ、脱字がw
まあ、美味しい惣菜を買ってきて適当に盛り付けてると、みんなおいしいねってほめてくれるんですが
これで料理がうまくなるでしょうかって言ってるみたいなもんだw
0527774ワット発電中さん垢版2022/06/11(土) 20:31:29.20ID:e3/fO6rm
そのうち「ここはこうしたいな」とか出てくるから、その時ちゃんと学べばよい
0529774ワット発電中さん垢版2022/06/11(土) 21:22:09.93ID:13oI0k6P
上達というのはやってるうちについてくること。
目下のこととして、コピペでもなんでもやりたいことがやれてるなら立派なもの。
0530774ワット発電中さん垢版2022/06/11(土) 22:07:56.41ID:Jq34x0w7
やってるうちに付いてくること、すなわち、やらないのに付いて来ません
0531774ワット発電中さん垢版2022/06/11(土) 22:16:13.47ID:7u2aCjIO
他にもたとえば NOP と MOV Rx,Rx は同じ動作になる(機械語は異なる)
つまりNOPは不要で、MOVで代用できる命令だが、
プログラマとしては無操作を MOV R0,R0 などと書くのは心理的に少し抵抗があるw
代わりにアセンブラが文字列NOPをたとえば MOV R0,R0 の機械語$2C00に翻訳してくれるなら
それは勝手にどうぞ、になる。
0534774ワット発電中さん垢版2022/06/11(土) 22:25:29.55ID:7u2aCjIO
命令MOVはNOPと同じくフラグは変化しません。
空いたNOPのコード$0000を他の用途に使えます。
0535774ワット発電中さん垢版2022/06/11(土) 22:25:50.61ID:Jq34x0w7
NOPは機械語が全ビット0になるのがいいところで
間違ったところをNOPで上書きするということができる

今どきは毎回アセンブルなりコンパイルなりして、全部書き換えちゃうから意味なくなっちゃったけど
ハンドアセンブルしてた頃の名残ですねえ
0536774ワット発電中さん垢版2022/06/11(土) 22:36:18.72ID:v5Ffgb+6
フラグが変わるのは68系だっけか。
そもそも MOV R0, R0 自体意味がないんだったら
それに別の命令を割り当てればいい。
0537774ワット発電中さん垢版2022/06/11(土) 22:43:10.49ID:Jq34x0w7
>>536
その辺はハードウエアで構成されてるから意味のある命令を実現した結果無意味な命令も存在してしまうってだけのことで
ソフトウエアとちがって、他に割り当てるってのは簡単じゃないのよ
0539774ワット発電中さん垢版2022/06/11(土) 22:56:12.51ID:Jq34x0w7
じゃあ、無駄な命令コード判定して他の機能に飛ばすデコーダー設計してみてよ
0541774ワット発電中さん垢版2022/06/11(土) 23:40:31.93ID:rkhy7aZO
>>526
多くの完成品を見るだけでもレシピや処理方法の幅が増えるじゃないか
プログラムの場合も環境やライセンスの問題で最良と思える方法が使えないのはよくあること
実装手段が増えるとそこで頭を抱え込まずサっ別案出せる
0542774ワット発電中さん垢版2022/06/11(土) 23:44:31.22ID:gyij39ef
無骨な書き方でガシガシコーディング
他人のソースみて洗練された書き方に置き換えていく
細かい文法の理解なんて後付でかまわん
0543774ワット発電中さん垢版2022/06/11(土) 23:46:36.63ID:Jq34x0w7
サッカーオタクが、いくらプロサッカー選手の素晴らしい試合を見たところで
一流の選手には、なれませんて
0544774ワット発電中さん垢版2022/06/12(日) 00:27:28.06ID:LMw5tv0k
しかし、他の選手を一切見ることも分析することもナシに一流になった人もおらんだろうな。
0547774ワット発電中さん垢版2022/06/12(日) 01:20:31.64ID:6lhM49Y0
あら探ししかできない奴は良い所を取り入れる事ができなくて
いくらコピペしても進歩っしないんだろうなとお前ら見ててそう思うわ
0548774ワット発電中さん垢版2022/06/12(日) 01:21:31.54ID:2n5CmaqY
まっ、半年放置してから見直してすぐやっていることが理解できるなら
それほど悪いコーディングではないだろう。
0550774ワット発電中さん垢版2022/06/12(日) 02:47:57.93ID:AVGYvCNs
ついつい、トリッキーなの書いてしまうから
翌日すでにわからないw
0551774ワット発電中さん垢版2022/06/12(日) 08:27:44.11ID:0IFNUoB7
機械語$0000のNOPが代用できるなら、BCD演算(補助)命令 にでも変えてくれ。
8ビットPICにもあるんだし。
なんて書くとCプログラマから、BCD命令なんか要らん!、と猛烈な反対意見が来るけどw

あるいは、コード1ワードでは足りないが、複数のレジスタ組みの中から
一組みを選ぶSRB命令select register bank とか。これは強力だぞ。
ついでに書いちゃうけど、tinyにもDMA欲しいw
0553774ワット発電中さん垢版2022/06/12(日) 09:30:38.50ID:iQ8gzRD/
1ゲートは血の一滴・1byteは血の一滴
そんな時代もあったよねー
8bitでチマチマ貧乏くさくやりくりするのは時代に逆行している
0554774ワット発電中さん垢版2022/06/12(日) 09:34:35.82ID:cdhjGl/K
>>543-545
サッカーでは下部団体でも選手になれない(たぶん一般人はこういう人を三流未満のサッカーと考える)ような偏差値でも、エンジニアなら給料をもらえている。
エンジニアの学びは一流になれるかどうかの人から、十流から九流にステップアップする人まで幅広い。もっと多様にとらえたらいい。
0555774ワット発電中さん垢版2022/06/12(日) 09:54:08.90ID:WBX4hWsk
CPUやメモリが貧弱だったころならBCDもメリットあったが
多倍長演算ライブラリで楽勝なんだから今時BCD使うマゾなんておらん
0556774ワット発電中さん垢版2022/06/12(日) 10:18:07.35ID:nqsUptT8
BCD演算より EORI を用意して欲しいな。
ADDI ADCI は SUBI SBCI で代用できるけど EORI はどうにもならん。
0557774ワット発電中さん垢版2022/06/12(日) 10:39:10.44ID:iQ8gzRD/
演算効率なんて言い出したらキリがない
16bitや32bit逝った方が良いやんけ
あっちは乗算器完備や
8bit2KBの世界でチマチマ貧乏くさくやるから楽しいんだろ?
0558774ワット発電中さん垢版2022/06/12(日) 10:43:20.59ID:ODZxPSkg
>>552
あれは CISC だからマイクロコードで例外的なデコードなんかもやれただけじゃね。
RISC はマシンコードの特定のビットだけで行う演算を確定できるようなシンプルな設計が基本でしょ。
命令がレジスタの組み合わせまで見ないと決定できないのはデコーダにとってそこそこのコストを強いると思うけどな。
もちろん回路規模増やせばできるだろうけど、そのために消費電流増やすのもね。

>>557
そうだよ、ある種の縛りプレイを楽しんでる。
だからこそこの命令があったら 1クロック 1ワード減らせるのにって思うんだし、そういうことを言うこと自体も楽しいんじゃないの。
0559774ワット発電中さん垢版2022/06/12(日) 10:50:44.90ID:iQ8gzRD/
だ・か・ら・そ・れ・は・縛・り・だ
0561774ワット発電中さん垢版2022/06/12(日) 10:54:02.73ID:fdR0I5vL
>>558
Z80でマイクロコードとか何を言ってるんだ?
そもそもCISCとかRISCとか意味あるんか?
8051はRISCか?
0562774ワット発電中さん垢版2022/06/12(日) 10:55:37.31ID:iQ8gzRD/
BCD演算にトランジスタ使うくらいならタイマの本数増やしたほうが余程有益だ
0563774ワット発電中さん垢版2022/06/12(日) 11:04:19.44ID:ldz83g1a
>>528
長く続けても全く上達しないことはどのジャンルでも沢山あるので、その中で何に焦点を当てるかを伝えた方が聴く側としては得るものがあると思います
0564774ワット発電中さん垢版2022/06/12(日) 11:06:08.50ID:iQ8gzRD/
結局ねレジスタファイルの数だけですよ
せや!スタック使わなくても済むくらいレジスタファイルの数を増やせばいいんや!
0565774ワット発電中さん垢版2022/06/12(日) 11:06:46.29ID:FA/CdpmG
>>561
Z80 はマイクロプログラム式だろ?
それでブロック転送みたいな複雑な処理や DJNZ のような複合命令を実装してるんだろ?
0566774ワット発電中さん垢版2022/06/12(日) 11:12:48.02ID:RWKjduV6
まだ、その手の技法を積極的に取り入れて設計出来る様な集積度の時代では無い
試行錯誤しながら頑張ってゲート数減らしていた時代の話

マイクロプログラムとかは、当時のミニコンや大型の技法だな
0569774ワット発電中さん垢版2022/06/12(日) 11:40:42.31ID:fdR0I5vL
>>565
djnz も jr z も2/3サイクルだぞ。
もしマイクロコードで
DEC B
JR NZ, hogege
ってやってたらサイクル数違うはずだが。
ちなみにDJNZは8051にもある。
0570774ワット発電中さん垢版2022/06/12(日) 12:57:29.82ID:qQ1yfDwA
z80なつい
時間稼ぎに、レジスタもフラグも変化せずクロックを激しく消費する命令とか探して使ってたなあw
AVRなんか、ほとんど1クロックだもんなあ
0571774ワット発電中さん垢版2022/06/12(日) 17:19:44.46ID:iQ8gzRD/
そんなことよりMC68000_DIPパッケージのでかさに驚くべき
0572774ワット発電中さん垢版2022/06/12(日) 17:58:14.72ID:JUCGMALQ
>>531
x86とかそんな感じだったけど、
x64になったら動作が異なるようになったから、機械語分けなきゃならんくなったんだけど、
NOPはそのまま居座って、本来の方が別の機械語に左遷されたりw
0573774ワット発電中さん垢版2022/06/12(日) 18:54:16.70ID:rVDb5SRO
>>557
AVRのビット処理は簡単で速いぞ、>>491
AVRは機械のI/O制御に向いている。
演算はしょうがないな、なんせ8ビットだから期待する方が間違っている。
0574774ワット発電中さん垢版2022/06/12(日) 19:04:56.07ID:rVDb5SRO
軽トラとF1カーを比べるようなもんだな。
軽トラはスピードは出ないが、農道で収穫物を運べるw
0575774ワット発電中さん垢版2022/06/12(日) 19:07:35.59ID:rVDb5SRO
そうそう、アメリカではメチャ古い軽トラが人気あるんだって。
(詳細は検索して)
0577774ワット発電中さん垢版2022/06/12(日) 19:40:35.83ID:YxQ2ZYwx
>>575
25年以上前の車は輸入税軽減があって
何エーカーもある広大な個人の庭や畑をゴルフのキャディーカートのように乗り回してたり
ミニカーのように集めてたりしてるのディスカバリーでみたわ
0578774ワット発電中さん垢版2022/06/13(月) 08:04:45.75ID:PWgMsiGo
プログラミングが趣味なら演算処理プログラムをAVRのアセンブラでチマチマ書くのもまた楽しからずや
0579774ワット発電中さん垢版2022/06/13(月) 09:30:50.75ID:OJKPqwsJ
秋月でも AVR の値上げ予告が出るようになってきたね。
この円安進行じゃしょうがないな。
0580774ワット発電中さん垢版2022/06/13(月) 11:07:33.15ID:XL6ZldsN
あまりAVR関係無いけどマイコンの外部バスに自作のベリフェラルを繋いであれこれするのってもう失われた技術なんかな
ググってもZ80とかの解説ばかりだし、最近主流の32bitマイコンの高速外部バスを活かす解説や作例はほとんど出てこない
0584774ワット発電中さん垢版2022/06/13(月) 15:09:46.83ID:uqasXd8O
バスはメモリやI/Oを接続するためのものだから、
それらを内蔵しているワンチップCPUには本質的に不要なものになる。
CPUメーカーは需要に応じて何種類も製造しないといけないので大変だと思う。
たとえばエラッタが残ってしまうとか。

Z80の時代を思えば、完成品で動作が保証されているハードを入手できるのは嬉しい。
「あ〜今回もUART使わなかったなぁ、もったいないなぁ」なんて思ったりするけどw
0585774ワット発電中さん垢版2022/06/13(月) 15:09:55.79ID:9D0e4oY9
枯れた技術なんで誰も話題にしないだけでしょう。映えない。
けど実際は使ってる。Z80の頃より便利。
0586774ワット発電中さん垢版2022/06/13(月) 15:55:04.53ID:mvKtiPn0
>>575
そういや、つい先日も米国で軽トラがパトカーとカーチェイスしてて受けてたっけ。

ミッドシップの四輪駆動を舐めるなよってか?
0587774ワット発電中さん垢版2022/06/13(月) 16:52:18.65ID:ktJ0X5qR
ノートPCとかだと裏面に拡張用のコネクタ剥き出しになってたりするけど
仕様も公開されてないしメーカーどころか機種毎に仕様違いそうだし
失われた技術というより現役で使われまくってるけど一般人にはメリット無い技術ってことじゃね

ラズパイのGPIOの方がはるかにまし
SPIもI2Cもあるっちゃあるけどちょっと意味が違う
0588774ワット発電中さん垢版2022/06/13(月) 17:13:35.58ID:uqasXd8O
今時、自作I/Oとか使う人いるのかなぁ、と思ったら私がやっていたw
今時とは言っても、もう何年も前の話だけど、
50芯フラットケーブル用のケーブルチェッカ(コネクタのピンが正しく接続されているか)を作った時に、
CPUのI/O点数が不足したので、出力6ビット使って外部にマトリクスを組んで対応した。
・・・純粋なI/O拡張とは言えないかな?
0589774ワット発電中さん垢版2022/06/14(火) 06:47:51.22ID:jiZvkZ6a
大抵の用途はSPIで間に合う
0590580垢版2022/06/14(火) 07:38:47.65ID:aYd36Cyk
ttp://www.picfun.com/partdigit.html
ttp://elm-chan.org/docs/avr/avrdma_j.html
この辺の話
前者はZ80想定って事でせいぜい数MHz・・・昨今の32bitマイコンなら10倍くらいは出るし
ウェイトを増やすかTC74VCXみたいな超高速のICを使うかFPGA or CPLD?
後者はSHのハードウェアマニュアルで紹介されていた。これ専用のモードがあるらしい
0591580垢版2022/06/14(火) 08:14:08.43ID:aYd36Cyk
>>581
MCUのつもりで書いたけどその辺のPC系インターフェイスをやっている人も少なくない?
その中だとEthernetをたまに見るくらいで次点でUSB FS?
USB SSやPCIe弄っている人はほとんどいないような
USB FS/LSだってEZ-USBが流行ってた頃の方が活発だった気も・・・
0592774ワット発電中さん垢版2022/06/14(火) 08:33:38.47ID:nHwlG1bt
今はメモリー(EEPROMやFlashとかだけど)はI2CやSPI接続普通だし
I/O拡張やリアルタイムクロックICも勿論、イーサネットだってSPI接続出来る訳だし
簡単な拡張はI2CやSPIで良い
なんなら595とかで3wire,2wireでやるんだし

パラレルバスは、高速な奴とか古い奴
FPGA/CPLDでSPI実装するのメンドイ時とか…
0593774ワット発電中さん垢版2022/06/14(火) 09:38:48.19ID:VFnfbtCm
>>591
USBは変換チップが色々出てるからやりやすくなったよ。
EZ-USBとか使わずにすむし。
AVRで言えばArduinoとか。
EthernetはRaspberry Piなんかで使うじゃん。
0594774ワット発電中さん垢版2022/06/14(火) 09:46:50.41ID:svbH7khX
AVRといえばやっぱしv-USBじゃないの
Tiny85が有名だけどもTiny44とかのもっとプアなチップでもできるところがすごい
0595774ワット発電中さん垢版2022/06/14(火) 14:42:23.23ID:sDnV8whb
>>594
tiny44でvUSB実装すると、本来の目的に
使うリソースがほとんど無いって事態に
ならない?
0596774ワット発電中さん垢版2022/06/14(火) 15:28:40.61ID:UVXGSula
USBって通信してないときでもCPUパワーを食いつぶすほど、
のべつ幕なしに、なんかしてないと、いけないものなの?
0598774ワット発電中さん垢版2022/06/14(火) 16:14:27.25ID:5n8yjeKJ
CPUパワーのほとんどはUSBデバイス応答のためのポーリングが占めるから
空いてる数ミリsecだがの間に分散して処理を割り込ませないといけないよ
0599774ワット発電中さん垢版2022/06/14(火) 16:15:21.22ID:UVXGSula
>>597
あ、べつに反論してんじゃなくて、素朴な疑問だからね
USBいじったことないから、そんなにCPU食うのか?って思っただけね
他に何が必要?タイマー割り込み必須とか?
0602774ワット発電中さん垢版2022/06/14(火) 18:19:43.69ID:jRPllYVy
Implementing USB 1.1 in Firmware - V-USB
ttps://www.obdev.at/articles/implementing-usb-1.1-in-firmware.html
0603774ワット発電中さん垢版2022/06/14(火) 18:40:48.44ID:jRPllYVy
てかmouserとか見るとtiny44って300円以上するけど
この価格帯ならUSBコントローラ付きのマイコンを買えね?
0604774ワット発電中さん垢版2022/06/14(火) 18:48:12.68ID:sDnV8whb
>>601
そっちよりもRAMがなぁ…
残り100byteくらいになっちゃうから
うっかり関数コールや割り込みすると
ヒープ領域がとれずに一番嫌らしい
タイプの不具合が出る
0605774ワット発電中さん垢版2022/06/14(火) 19:02:33.50ID:DmqJ8YHc
>596 の流れはV-USBの話しな。
チップ内に乗ってれば全然負荷少ない。
0606774ワット発電中さん垢版2022/06/14(火) 19:04:36.00ID:DmqJ8YHc
DIP8ビン主義の人と同じ匂いがする。貧弱マイコンでV-USBとか。
0608774ワット発電中さん垢版2022/06/14(火) 21:09:14.10ID:UVXGSula
ジョイスティックを作りたいと思ってるんだけど
まだ何も調べてない、ちょうどV-USBの話題が出たので
ジョイスティックにもつかえるかな~とちょい期待
avrがジョイスティックになるにはどうすればいいんだろう
参考になるサイト知ってたら教えてたもれ
0612774ワット発電中さん垢版2022/06/14(火) 23:55:02.99ID:P/NgrZMQ
ロースピードだと1パケット8バイトまでじゃなかったっけ
アナログ軸がいくつもあるようなコントローラは難しそう
PS4 DS4のレポートパケットは64バイト。もちろんフルスピード
0613774ワット発電中さん垢版2022/06/15(水) 00:03:19.42ID:sSiH8GfB
ラジコンのプロポをジョイスティック代わりに使えるようにしたっけな
(遠い目)
0615774ワット発電中さん垢版2022/06/15(水) 02:06:59.91ID:0E4IKOwn
簡単な回路だし、ユニバーサルでいいかと、久しぶりにユニバでゴニョゴニョしてたら
デバイが応答しません的なエラーが・・・・・
久しぶりのユニバだし配線まちがえたかな~とチェックしてみても合ってるし
電圧計ると来てない ヲイ
ISPコネクタ抜いてコネクタ側計ると来てる・・・・

ん~~どっかショート?、がそれらしいところなし
結局書き込み機の電圧切り替えのジャンパーピンの接触不良というオチ
ジャンパーピンやばいね、スイッチに交換するかな
0618774ワット発電中さん垢版2022/06/15(水) 02:47:01.21ID:0E4IKOwn
>>617そうなん?、コストダウンかと思ってたわ
どっちにしろ接触不良起こすことわかったから収穫
0619774ワット発電中さん垢版2022/06/15(水) 03:01:58.00ID:0E4IKOwn
というわけで、そのままでテストボタン追加するか
スイッチに換えるか
電子スイッチ化するか
考えながら、もう寝る
0621774ワット発電中さん垢版2022/06/15(水) 11:31:27.29ID:V3w/XrE5
いちいち喧嘩売ってくるやつってバカなの?あほなの?
あぼーんするけどw
0622774ワット発電中さん垢版2022/06/15(水) 11:55:49.92ID:tX+KuYgA
収穫を得るなら すけーぷごーと を決める事よりも
その不具合の内実にもちッと踏み込みませぬか?

ピンヘッダー側の異常なのかショートプラグ側なのか
ショートプラグ買い替えで改善するものなのかピンヘッダー側の清掃で解消する問題なのか
更に欲を言えば改善策を試す前に現状・問題の掘り下げをした方が同種問題の再発回避には有用でしょうし
指で触れた皮脂酸化による絶縁なら利用者側の落ち度に分類されると思いますしお寿司
0623774ワット発電中さん垢版2022/06/15(水) 12:08:05.79ID:V3w/XrE5
>>622
頻発するもんでじゃないから、ほぼ検証不能なんよ
むしろ、頻発してたら、「またか」ってことで、
なんの疑問も持たずに、即行抜き差しで復旧して、あれこれ悩まずに済んでるw
0624774ワット発電中さん垢版2022/06/15(水) 12:17:06.36ID:V3w/XrE5
いつ買ったか忘れてるくらいだから、数年はノントラブル
そんだけもったら充分だともいえるね。

とはいえジャンパー抜き差しに、いちいちケースの蓋開けるのもあれなんで
スイッチにして、外からパチパチできるようにするわ
0625774ワット発電中さん垢版2022/06/15(水) 12:23:46.59ID:V3w/XrE5
スケープゴートって、無関係な物に濡れ衣着せて、非難と攻撃の標的にすることでしょ
そんなことしてないと思うけど?
0628774ワット発電中さん垢版2022/06/15(水) 12:40:16.82ID:kohL5tnB
ジャンパーはショートプラグを挿すときの指に伝わる感覚が大事。
抵抗なくヌルッと入るのは要注意で、
少し抵抗というか引っかかりを感じるようならOK。
具合の良さが何かと似てるなw
0629774ワット発電中さん垢版2022/06/15(水) 12:49:01.35ID:V3w/XrE5
手触りてきには何の問題もなし
おそらく酸化膜的な物だと思う
5vデバイスしか使わなかったから
数年間抜き差し無かったねえ
あ、なら、直結でもいいかw
0630774ワット発電中さん垢版2022/06/15(水) 13:00:13.64ID:xppMKWpO
USBってサンプルを動かすだけなら簡単だけど特定の目的に合った物を作ろうとするととたんに面倒になるイメージがある
ゲームのコントローラと言っても流派が複数あるし、動けばいいでなく仕様準拠を目指すなら更に手間がかかる
0631774ワット発電中さん垢版2022/06/15(水) 13:14:54.60ID:LMDV5iZg
>>608
最初は悪い事言わんからちゃんとペリフェラル載ってる奴を選べ
どっちがダメなのか曖昧になっちゃう
2作目からは好きに白。
0632774ワット発電中さん垢版2022/06/15(水) 18:49:33.21ID:pDMLOdOT
上手く動かなかったらD+/D-波形とUSB仕様書をにらめっこになるんだからどっちもどっちじゃぁ
0638774ワット発電中さん垢版2022/06/15(水) 22:28:58.39ID:lLQUBdST
2コンのマイクはどういう仕組みでゲームは何を検出してたかはしらないんだけど当時はすごいテクノロジーだと思った
0640774ワット発電中さん垢版2022/06/15(水) 23:52:08.71ID:V3w/XrE5
接触不良その後、うわ、また出た再発?って思ったら
今度はIDCのほうだった、う~ん、定期的に抜き差ししろってか
0641774ワット発電中さん垢版2022/06/16(木) 00:10:46.62ID:TqgFZbLs
スイッチもそうだけど、ある程度電流流しつつ
オンオフしてないとダメになるね。
0642774ワット発電中さん垢版2022/06/16(木) 00:22:15.50ID:uMkVjrgK
とはいえIDCなんて差しっぱで使うもんだよね
まいったな、IDCで配線した奴作ったけど、数年後にトラブルのが見えた
0643774ワット発電中さん垢版2022/06/16(木) 10:52:33.57ID:4SF3OB7K
イリソさんの金メッキ仕様のピンヘッダ+ショートプラグを採用した製品を、
長年 納入しつづけて使ってもらってるけどさ、
今のところ そこでのトラブルの話は うちにははいってきてないけどな。変更指示も無いし。
そんなとこでトラブル頻発するひとおるんけ? 世界は広いんやな。しらんけど;^p^)
0644774ワット発電中さん垢版2022/06/16(木) 11:17:59.36ID:EBKUxgZt
tiny85のカウンタ2個じゃ全然足らん!
どうにかしろ禿げ
0647774ワット発電中さん垢版2022/06/16(木) 13:29:49.49ID:dA3miANo
某サウンドドライバは8bitTimerで62.5kの割り込みして8chの波形作ってたな
0648774ワット発電中さん垢版2022/06/16(木) 17:26:29.07ID:R9jMvJqI
avrネタじゃないんだが
gps受信機買ったら通信速度が違ってたんで、変える方法と問い合わせたら、何の交渉もなく、代わりの送りますってなった
で、代わりの来たら、コールドスタートの時間過ぎても、1ppsLEDが点滅しないし時刻データーが取れない・・・
これもナンカおかしいって言った後で1じかんくらい経過した時点で突然動き出した

衛星ロストしてたんか?っておもってごめんなさいメールしたけど、あれ?でも測位データは来てたぞ???

大丈夫か?この受信機
0649774ワット発電中さん垢版2022/06/16(木) 17:33:09.55ID:cyoNDCQV
1個のカウンタを使い回す方法もある。ってレスは抽象的すぎるな、
足らん!、だけでは分らん!w
0650774ワット発電中さん垢版2022/06/16(木) 17:48:38.27ID:iAUUHi18
>>648
センテンスは来ていてもまだfixしてなかったんじゃ無い?
0653774ワット発電中さん垢版2022/06/16(木) 18:30:17.19ID:R9jMvJqI
いやちゃうわ、今見てみたら
fixしてないと測位データが空のセンテンスが飛んでくるわ
0654774ワット発電中さん垢版2022/06/16(木) 19:19:05.37ID:ux4F8L+O
ファミコンだって60Hzの垂直同期割り込みだけで音楽やら変化する効果音も鳴らせばいろんなキャラのタイミングを取ったりしてるんだから、タイマーなんて1個あれば充分なんだよ。
0655774ワット発電中さん垢版2022/06/16(木) 23:11:57.35ID:R9jMvJqI
タイマー下手に複数使うと、タイミングがお互い干渉してなかなかカオスなことになったりする
0656774ワット発電中さん垢版2022/06/17(金) 01:00:00.18ID:R1s9TYAl
書き込み機のトラブルを乗り越えさあやるぞと・・・・
あれ?文鎮?
ヒューズまちがえたか?orz
0657774ワット発電中さん垢版2022/06/17(金) 09:04:17.09ID:UVGFCRMH
1MHzで動かすことを信条としているからタイマの分解能をあげてタイマを使いまわす手が使えないことが多いのだ
わっかるかなー? わっかんねーだろうなあ
0658774ワット発電中さん垢版2022/06/17(金) 09:26:26.21ID:kJMQFehK
>>657
500kHz で動かすことが多いけど、クロック数の関係でタイマー割り込み自体が使いづらくなってくるな。
0659774ワット発電中さん垢版2022/06/17(金) 10:58:46.27ID:We9yGxyK
タイマー割り込みは一つありゃ充分
その割り込み使ってすべてのタイマーのカウント処理しとけ
0660774ワット発電中さん垢版2022/06/17(金) 12:31:11.48ID:Q419sMtI
ヌルいのしかつくってないんですねw
0661774ワット発電中さん垢版2022/06/17(金) 12:38:33.08ID:EC5+tWrb
何がヌルいだ
ゲームで何1000キャラのアニメ処理や
裏でFM音源演奏してんのも全部一つのタイマー割り込みでやってんだよ
0663774ワット発電中さん垢版2022/06/17(金) 13:03:33.02ID:UVGFCRMH
PCのゲームなんて極端な例をあげられても困る
その高度なゲームは1MHzでカウンタ2個のプアな状態で動いているのかと
0664774ワット発電中さん垢版2022/06/17(金) 13:09:53.04ID:5ehxeTz7
>>663
661が言ってるのはファミコンとかの話だから
そまさにの程度のプアさだでw
0666774ワット発電中さん垢版2022/06/17(金) 13:12:08.51ID:EC5+tWrb
何言ってる
CPUが生まれた時からある普通の技だ

カウンタ2個しかないとか、タイマー割り込み4つしかないとか
嘆く奴が間抜け
0667774ワット発電中さん垢版2022/06/17(金) 13:17:10.82ID:UVGFCRMH
その時代ハードの支援もない232Cは300ボーの世界やないか
画面はどうにでもなるが通信のタイミングはそうは行かない
0669774ワット発電中さん垢版2022/06/17(金) 13:32:21.76ID:+KWN7m1x
んで結局何がやりたくてタイマーが足りないんだよ?
それ言ってみ?
0670774ワット発電中さん垢版2022/06/17(金) 13:39:23.12ID:9mgqPNwd
文句言いたいだけだろ

4kしかないTiny44でもV-USBできるよっていったら、それじゃフリースペース残らないとか
だったら8kのTiny84にすればいいだけなのに
目的もなくぐだぐだ言いたいだけなんだよ
0671774ワット発電中さん垢版2022/06/17(金) 13:50:20.47ID:UVGFCRMH
Uart-SMbusブリッジですがなにか?
まあボーレートめっちゃ遅くすりゃタイマ割り込みスライスでどうにでもなるからとりあえずやってみるが
0672774ワット発電中さん垢版2022/06/17(金) 14:53:49.79ID:7UWSpQS0
>>664
ファミコンはキャラ何千個も動かせないよ。
FM音源なんてずいぶん後の時代だしね。
0675774ワット発電中さん垢版2022/06/17(金) 15:27:05.10ID:2AkYlKBp
>>674
すごいよな。
正確に言えばタイマー割り込み的というか、ただ 60Hz で割り込みが入るだけで、カウンタは必要な数メモリ上に取って自分で数えるんだけど、メモリもそんなに潤沢に使えなかったしな。
1個の割り込みで全部やるから、キャラが増えると割り込み処理内で処理を完結できなくなり、次の割り込みを取りこぼして全体的にテンポが半分になってしまったりしたな。
あとラスタースクロールまでさせてたな。走査線割り込みも無いのによくやるよ。
0676774ワット発電中さん垢版2022/06/17(金) 15:50:57.74ID:UVGFCRMH
1MHzを256分周して1tickとするやん?
※256ステップ以下にはしたくない
こいつを使いまわして同期タイミングをつくるとすると
4800baudで誤差max58.5%でアウト
2400baudで27.1%
内蔵オシレータ誤差10%割り込み応答遅れを見越すと2400baudがせいぜいてとこか
1200baudだと12.7% 600baudで5,2%
0679774ワット発電中さん垢版2022/06/17(金) 16:16:49.07ID:vnbyAPKj
>>676
1MHz を 256分周だと割り込みは 3906Hz でしょ。4800baud で誤差 58.5% ってどういう計算なの?
のっけから 256分周以下を避ける事情は分からんけど、208分周なら 4808Hz の割り込みにできるのに。
割り込み処理に飛んできて iret するだけで 14クロックくらい取られたと思うけど、差し引き 196クロックあったら割り込み処理としても結構なことできない?
0680774ワット発電中さん垢版2022/06/17(金) 16:28:55.77ID:gawP5fR1
スライドswでボーレート変えてるパソコンもあったな
0681774ワット発電中さん垢版2022/06/17(金) 16:36:52.92ID:5ehxeTz7
シリアル用の分周期はだいたい2の累乗分の1しか設定できんからそれの思い込みじゃね?
0683774ワット発電中さん垢版2022/06/17(金) 16:47:47.11ID:UVGFCRMH
1カウンタUartにミートさせるなら最初から割り当ててしまったほうがいいし
制御線の変化割り込みをカウンタ値でぶった切っていったほうが精度が出る
とにかくUartのタイミングとTickの相関はなしで
ステップ数の確保のほうが大事でーーーす
0684774ワット発電中さん垢版2022/06/17(金) 16:51:02.29ID:UVGFCRMH
208分周とか。。。誰でもまず考え付く発想はやめてくれよ(´・ω・`)
0685774ワット発電中さん垢版2022/06/17(金) 17:13:20.91ID:UVGFCRMH
>>683
>制御線の変化割り込みをカウンタ値でぶった切っていったほうが
                ↓
カウンタ値を制御線変化割り込みでぶった切るほうが
0686774ワット発電中さん垢版2022/06/17(金) 17:31:46.58ID:dGfU8znL
LQFP100な32bitマイコンのタイマが2本じゃ足りない→判らないでもない
DIP8なAVRのタイマが2本じゃ足りない→そんなに何に使うんだ?
0690774ワット発電中さん垢版2022/06/18(土) 00:04:55.40ID:AGNS7ad5
ゲームショーが刑務所に聞こえたり
会社という場所柄でのストレス溜めすぎは毒だわ
0691774ワット発電中さん垢版2022/06/18(土) 07:58:51.17ID:xR9a4ybX
DIP8なAVRのタイマが2本じゃ足りない→必用な数だけDIP8ならべる。
→全体の管理用にもう1個追加する。
どう?w
0693774ワット発電中さん垢版2022/06/18(土) 14:38:07.12ID:M/3jHe43
タイマーじゃないけど、60ほど出力足りんからシフトレジスタでって図面書きかけて
シフトレジスタてんこ盛り・・・・・・
もいっこmega8乗っけりゃいいじゃんですっきり
0695774ワット発電中さん垢版2022/06/18(土) 20:54:48.90ID:M/3jHe43
あら、送っちゃった

慎重にやれば、ヒューズなんて間違わんだろうと思って、基板直付けで組み立てて慎重にやったはずだけど
文鎮になちまった、応答しないから、どういう値が書き込まれてしまったもわかんねえw
というわけでZIFソケットを用意してヒューズ設定まではこっちでやることにした
で水晶発振モードにするとき、周波数帯によってヒューズ設定違うみたいだけど
これ違う周波数の水晶繋いでもとりあえず動いちゃったりしますかね
合わせとかないと発振しないということだと水晶も交換できるようにしとかなきゃだし
設定する間ぐらいなら、なんとかなっちゃうようなら適当に直付けするんだけど
0698774ワット発電中さん垢版2022/06/19(日) 02:10:46.38ID:GYn4bvtC
>>697
想像は付いてなかったけど、なるほど理解した。
少ないピンで点灯させる方法はいろいろあるけど、マイコン足すのが結局簡単で安上がりになりそうだね。
0699774ワット発電中さん垢版2022/06/19(日) 02:18:18.81ID:Uy6V61cE
>>698

値段的には、びびるほどじゃないけど、かさばるのがねえ、それに
ハードでやっちゃうと、こうしかできませ~んになるけど
プロセッサだと、あとからいろいろできるから気が楽
まるちぷろせっせだぜ、いえ~い  ヲイ
0700774ワット発電中さん垢版2022/06/19(日) 07:07:06.47ID:sNCobQT1
LED点灯するだけならマトリクス組む方法もある。
PWMで明るさを変えながら、複数LEDを流れるように点灯するとか、
周囲の明るさをセンサーで検知してLEDの明るさも変えるとか、
CPU使えばアイデア次第で色々出来そうだね。
0701774ワット発電中さん垢版2022/06/19(日) 07:29:05.00ID:qJLP03Pl
60点なら高価なマイコン使うより8x8のMAX7219でよかったんじゃないの?
俺はアリエクで28円で買ったのいっぱいもってる
0703774ワット発電中さん垢版2022/06/19(日) 07:41:07.57ID:sNCobQT1
そういうトゲのある言い方はよくないと思いまぁす。
それに1円を笑う者は1円に泣く、というじゃありませんかw
0704774ワット発電中さん垢版2022/06/19(日) 10:41:13.11ID:Ypc4dpUx
7segで秒無しで設計
ハード組み立て
やっぱ秒ほしいかも
追加しよう
秒表示部設計←今ここ

MAX7219の存在自体知らなかったので(汗
次があれば使うかも
0705774ワット発電中さん垢版2022/06/19(日) 10:45:55.79ID:QUuRhbBX
LED円周でならべると駄菓子屋にあったコインがn倍になるルーレット思い出すな
0706774ワット発電中さん垢版2022/06/19(日) 10:49:10.55ID:MOKfjiw9
モーターにLED付けてタイミング取って点灯させれば、LED用に1出力、同期用に1入力でやれるな。
0707774ワット発電中さん垢版2022/06/19(日) 11:12:31.21ID:Ypc4dpUx
>>706
できるできないで言えば、なんでもできるさw

機械式時計は、深夜音が耳についてしょうがないことがあるので、選択肢から外してます
0708774ワット発電中さん垢版2022/06/19(日) 13:31:13.30ID:Ypc4dpUx
あ、7SEG時計だから丸くないのよね~
丸いの想像しちゃった人ごめんね~|

時計といえば、普通丸いと思う罠~
0709774ワット発電中さん垢版2022/06/19(日) 18:30:20.80ID:qgl9LVax
Neopixelでマトリクスでいいじゃん。
0712774ワット発電中さん垢版2022/06/19(日) 20:13:13.40ID:t7vFgaBd
NTSCならやれるかもね。
ずっと昔にPICでブロック崩し作った人いたよね。
0714774ワット発電中さん垢版2022/06/20(月) 13:56:53.78ID:599ckz7b
演奏側
ドラムの音が気に入らね~
俺が求めてるのは、そんな音じゃない
スタジオにあったいろんな物を叩きだす
「これだ」「この音だ」
その時たたいていたのはイショウケース
無事レコーディング完了しましたとさ


オーディオ屋
イショウケースをすぴーかーぼっくすにしたら、とっても気に入った音が出たんだが
こんなもの認めるわけにいかね~、なかったことにしようw
0717774ワット発電中さん垢版2022/06/20(月) 14:52:40.71ID:599ckz7b
>>716
ここって、IDで検索して人の発言集めてる人が住みついてるから
きっとその人が、おしえてくれるんじゃない?w
0718774ワット発電中さん垢版2022/06/20(月) 15:01:20.75ID:599ckz7b
フューズ設定器その後
一個もレスつかんかったので
とりあえず水晶交換できるようにしようと、ソケットを探したら
ジャンクに転がってたコネクターがちょうどよい大きさだった

で、さっき水晶が届いたのでさした・・・・・あれ?刺さらない

うーむ、プランプランするのを止めるため接着剤で固めたら
接着剤が先まで染みてきてしまってるようだ

毛細管現象恐るべし

一分硬化型とかじゃないと間に合わねえですかそうですか
0720774ワット発電中さん垢版2022/06/21(火) 09:45:04.75ID:Y104c+IE
>>716
初心者系スレで
フィルムコンデンサの話題から
ピュアオーディオ系話題に
連鎖していった文脈があって、そのなかで
その投稿を見かけた気がする。

>>704
2^6=64>60だから
6個のLEDで二進ヒョージはドデスカチュチュポリン
0722774ワット発電中さん垢版2022/06/21(火) 13:35:19.30ID:s65k/NCr
2進直読は、私の勘ピューターオーバーヒートするので、いたしません
0725774ワット発電中さん垢版2022/06/21(火) 19:04:02.90ID:s65k/NCr
アセンブラで遊ぼうってことで
テストコードを、適当にでっちあげアセンブルして
リストファイルをみてみたらコードセグメントのアドレスが?????

ぐぐってみたら、2バイト毎に1増加だとか・・・

コードセグメントのデータ参照でラベル値をそのまま使うと明後日のアドレスを引いてしまうとか

んわ、凶悪
0726774ワット発電中さん垢版2022/06/21(火) 23:46:50.99ID:bfxUy0o8
>725

それって、AVRコアが世に出てから四半世紀
AVRコアの特徴上当たり前なのでは?
0728774ワット発電中さん垢版2022/06/22(水) 08:25:39.84ID:niZnhnAG
attiny85のピンが2本多かったら世界の歴史は変わってた(´・ω・`)
0729774ワット発電中さん垢版2022/06/22(水) 15:00:51.73ID:XK73Kp7U
ケースにちょうどよい大きさの2バイ材の端材があったので、ホジホジしてたら
ん?なんか、節が飛び出してきている
裏側は面一だし、もしかして成長してんの?ほえ~

あ、このスレでケースの話題はまずかったかなw
0730774ワット発電中さん垢版2022/06/23(木) 03:26:48.36ID:tItKSVUL
>>729
水入れた皿に入れておけば端材が取れ放題。tiny13もブレッドボードに刺しとけば85になったりせんのかのう。
0733774ワット発電中さん垢版2022/06/23(木) 12:33:49.38ID:bpOztCZr
ドラえもんのビッグライトで大きくしてからハンダして、スモールライトで元に戻したいと思う今日この頃
0736774ワット発電中さん垢版2022/06/23(木) 12:43:28.63ID:fgS4ECYK
>>735
ああ、あれは読めないなw
小さいからというより、単純に見えづらいよねあれ。
切り欠きが無いパッケージの向きの判別にめちゃ苦労する。
0738774ワット発電中さん垢版2022/06/23(木) 12:47:48.92ID:bpOztCZr
ここだったかな?、片栗粉で見える様になるって聞いて
片栗粉無かったから、白ペインをなすりこんだら見やすくなったけど
いちいち全部やってられんのよねw
0739774ワット発電中さん垢版2022/06/23(木) 12:53:30.62ID:bpOztCZr
>>737
若いときにシールの文字の向きを信じてp-rom交換したら、逆向きに貼ってあって
rom潰して酷く起こられたことがある、www
0740774ワット発電中さん垢版2022/06/23(木) 13:33:08.63ID:zzpcLSp9
片栗粉つかうんか・・・
「タイト気味の熱収縮チューブ装着」するときなんぞに
タルク(滑石粉)としてのベビーパウダーは便利に思う事はある。
ジョンソンアンドジョンソンのは香料がすきじゃないのでお勧めは和光堂(の紙の容器の奴、まじ良い香り)。
0742774ワット発電中さん垢版2022/06/23(木) 15:00:41.68ID:bpOztCZr
アセンブラで遊ぼう2
ちょっくらタイマーを使いたかったんでデーターシートを見るが
なんで一か所にまとまってないんだ~~で、めんどくさくなって
きっとどっかにコピペできるソースがおちてんじゃないかと探すけど
無いね~
でも、一つ収穫が有った、カウントアップして即座に0に戻らず、次のクロックで0に戻らしいので
一個余分にカウントするらしい、タイミングチャート見ればわかるだろと言う話ではあるが
結構みんな、やらかしてるみたいね
0743774ワット発電中さん垢版2022/06/23(木) 15:00:41.79ID:nsk8h7G3
見にくいマーキングはエレクトリックフラッシュ付きのデジカメで撮影
0744774ワット発電中さん垢版2022/06/23(木) 17:08:05.77ID:zzpcLSp9
デジカメだと接写どれくらいまで効くんだろう・・・(^p^;
老眼にはUSBマイクロスコープの方が いろいろやさしい可能性も微レ存
0746774ワット発電中さん垢版2022/06/24(金) 10:49:41.73ID:oLc9Z2nv
ATtiny202 の内蔵オシレータって、買ってきた状態では 16MHz と 20MHz のどっちになってるの?
これってヒューズで設定する以外、プログラム自身で切り替えたりはできないよね?
0747774ワット発電中さん垢版2022/06/24(金) 11:18:14.38ID:FUMQ3hBo
つかその前に、ATtiny202 って USBASP じゃ書き込めないのね?
アセンブラでコード書いてるけど、同じようにタイマーを使うだけでもかなり書き換える必要があるし、すごく別物感があって使いづらいなぁ…
0748774ワット発電中さん垢版2022/06/24(金) 11:23:54.45ID:e3Xoc7uw
>>742
ソースくれ
割り込みが何クロックか遅れるてはなしだろ?
でないとOVF割り込みは使い物にならんて話になってしまうま
0749774ワット発電中さん垢版2022/06/24(金) 11:47:14.74ID:wGHLoBSJ
>>748
742 じゃないが、割り込みが遅れる話じゃなく、カウントが比較値やTOP値に到達してもフラグが立つのは次のクロックってことを言ってるんじゃない?
0750774ワット発電中さん垢版2022/06/24(金) 12:21:27.01ID:zl7bf3Eu
>>748
あ、CTCモードの話ね、他のモードは、まだ見てないけど

データーシートのコンペアマッチのタイミングチャート見れば意味はわかります

カウントアップしてコンペアマッチした瞬間に0に戻るんじゃなく、つぎのクロックで0に戻る

つまり、1,2,3と数えるんじゃなくて、0,1,2,3と数えてるって話
0752774ワット発電中さん垢版2022/06/24(金) 13:08:50.52ID:zl7bf3Eu
で、ソース書き上げて、up、あれ動かね~
ソースけずって、LED点けるだけにしても点かない(うそ~~ん)
自信なくすわぁ
0753774ワット発電中さん垢版2022/06/24(金) 13:13:45.63ID:e3Xoc7uw
同期系回路ではあたりまえの動きをしているようにしか思えんのだが
誰か
>>750が何を言いたいのか解説頼む
0754774ワット発電中さん垢版2022/06/24(金) 13:30:58.57ID:hyJdDfEU
750 はインド人より数千年遅れで 0 を発見して嬉しくて仕方がないんだろう
0755774ワット発電中さん垢版2022/06/24(金) 13:51:51.72ID:zl7bf3Eu
そのあたりまえを、間違えてるのを気づいてない人が結構いますねえってはなしだよ
0757774ワット発電中さん垢版2022/06/24(金) 14:26:36.63ID:zl7bf3Eu
h8だとマッチと同時に0クリアみたいに書かれてるから、当たり前ていいかたも、あってるのかどうか?
0758774ワット発電中さん垢版2022/06/24(金) 14:59:09.63ID:zl7bf3Eu
>>757は、タイミングチャートが手元に無いので、ググって出てきたアプリケーションノートにかいてたことなんでタイミングチャート持ってたら見てみて
0759774ワット発電中さん垢版2022/06/24(金) 15:05:38.96ID:ukgZpk2Q
>>746, >>747
tiny0系はxmegaの流れをくむものなので別物と思った方がいい。
起動時は基本的に20MHzの6分周。
ヒューズであらかじめ16MHzにできるが、プログラム自身ですべてを起動後に設定する前提。
したがってあとから自由に変更できる。
0760774ワット発電中さん垢版2022/06/24(金) 15:08:12.84ID:ukgZpk2Q
USBaspがUPDIに対応した話は知らない。調べたことないから。
SNAPでも買えば?
0763774ワット発電中さん垢版2022/06/24(金) 18:05:17.46ID:Qw8d1+vJ
UPDIならATtiny416-XNANOをライター
代わりに使っちゃうのが安上がり

…と、思ったらずいぶん値上がりしてるな
0764774ワット発電中さん垢版2022/06/24(金) 18:13:16.49ID:rTaYsfH1
>>759
>プログラム自身ですべてを起動後に設定する前提。
どのビットで変えられるの?
データシート見たけど分からない。
0765774ワット発電中さん垢版2022/06/24(金) 18:34:41.31ID:lq8hqRjF
>>764
ちょうど俺もそれ聞こうと思った。
データシートもなんか見慣れないというか、なーんか読みづらいなぁ

あと UPDI での書き込みは USB-シリアル変換に抵抗とダイオード足せばいけるみたいね。
秋月で FT234X モジュール買ってきてみた。
うまく書けるといいけど SOIC DIP 変換基板買い忘れてなんか面倒になってきたw
0766774ワット発電中さん垢版2022/06/24(金) 19:31:24.01ID:rTaYsfH1
>>765
202 は良く使うけど、20MHz と 16MHz を
ソフトで変えるなんてやったことないし
コードも見たことないんだよね。

ID:ukgZpk2Q は詳しいみたいだから教えてくれよ。
0767774ワット発電中さん垢版2022/06/24(金) 19:51:53.11ID:dPzq8VZf
4809のコードだけど
void setCPUSpeed8MHz()
{
uint8_t oldSREG = SREG;
cli(); // suspend interrupts
PLLCSR = _BV(PINDIV); // dissable the PLL and set prescale for 16MHz)
CLKPR = _BV(CLKPCE); // allow reprogramming clock
CLKPR = 1; // set clock divisor to 2 (0b0001)
PLLCSR = _BV(PLLE) | _BV(PINDIV); // enable the PLL (with 16MHz prescale)
SREG = oldSREG; // restore interrupts
}
#endif
0768774ワット発電中さん垢版2022/06/24(金) 19:57:02.59ID:GTKVb9YN
>>767
それってプリスケーラの設定してるだけじゃなくて?
202 にはオシレータが 16MHz と 20MHz の 2つが入ってて、ヒューズでどっちを使うか選べるみたいなの。
で、動き出してからそのクロックを切り替える話ね。

ところでプリスケーラの設定変更には CCP の操作はいらないんだっけ。
0770774ワット発電中さん垢版2022/06/24(金) 20:20:51.58ID:rTaYsfH1
例も何も、全く的外れだよ。

>>768
厳密に言うと、発振周波数を選べる OSC20M というオシレータ。
プリスケーラの設定には CCP 不要。
0771774ワット発電中さん垢版2022/06/24(金) 20:43:25.92ID:zl7bf3Eu
ddrd=4
portd=4

でpd2がハイにならんのだが
だれかエスパー頼むw
0774774ワット発電中さん垢版2022/06/24(金) 20:53:55.69ID:zl7bf3Eu
asmなのでこうだけど・・・わからん
なんか根本的にまちがえてる?


ldi r16,$04
sts ddrd,r16
sts portd,r16
loop2: rjmp loop2
0775774ワット発電中さん垢版2022/06/24(金) 22:46:08.07ID:GHSko3x2
tiny202 に書けた!
USBシリアルの RxD と TxD 間にダイオードを TxD側が K になるように入れて、RxD に 470Ωの抵抗入れてそれをターゲットの UPDI に繋ぐ。
誰かがパッチ当ててくれた avrdude で comポートを指定して書けばすんなりいった。
0777774ワット発電中さん垢版2022/06/25(土) 07:23:55.86ID:aVr40MOO
>>774
こんなんまちがうわけあるかいというわけで、ハードをチェック
ハハハ、書き込み終わったあとリセットがローにおちたままやんかw
書き込み機壊れてます orz

USBASPでも作るかな(汗
0778774ワット発電中さん垢版2022/06/25(土) 12:27:53.73ID:QFlsuDGD
tiny10 で動かしてたのを tiny202 に移植しようとしてるが、想像以上に面倒だな。
タイマーで割り込みとPWM使ってるだけなのに、何かとうまくいかない。
つか、割り込みで OVFフラグが自動解除されなくなったのはなんでだ。
それ以前に PER に値がうまく設定できなかったり、TEMP がいつの間にか更新されてたり、勝手が違い過ぎて上手く動く答えを見つけるのに苦労する。
そして I/O操作が増える分コードサイズは増えるね。アセンブラで書いてるけど。
0779774ワット発電中さん垢版2022/06/25(土) 14:32:32.38ID:RNrqUGEU
tiny45のI2Cはマルチマスタに対応していないやんけ
チェック項目大幅に減ったwwwwwwwwwwwww
0780774ワット発電中さん垢版2022/06/25(土) 15:13:52.84ID:rlRa5kCW
tiny202 の割り込み時は Iフラグが自動的に禁止されないんだな。reti で有効にもされない。
自分で cli や sei しないといけない。
なんでこうなった??
0781774ワット発電中さん垢版2022/06/25(土) 16:23:16.05ID:RNrqUGEU
AVRのINC命令てあるやん?
あれ0xFFまでいくと0に戻る?
0785774ワット発電中さん垢版2022/06/25(土) 18:33:52.82ID:UQ7j1/Lg
>>780
tiny202は割り込みコントローラがあるから
割り込み中に同レベルの割り込みはかからんよ。
レベル0割り込みを使ってないなら排他制御はいらん。
0786774ワット発電中さん垢版2022/06/25(土) 18:59:02.63ID:RopyfU1A
>>785
ありがとう
割り込み処理のとこ読んで分かった。いろいろ高度になってるんだね。ここはあんまり真面目に読んでなかったわ。
んでついでに簡易割り込みベクタを見つけた。これいいね。

でも、16bit レジスタアクセスがなんかイケてないなぁ
Lバイト書いて Hバイト書き込みで適用だと、もっぱら下位バイトばかりを更新したくても必ず 2バイトアクセスが必要になっちゃう。
sts は 2クロックかかるから省略したいのに。

tiny10 なんかに比べるとやっぱりまどろっこしいな。

でも動き出していろいろ見通し立ってきた。
0787774ワット発電中さん垢版2022/06/25(土) 23:01:03.44ID:RNrqUGEU
CRY立つんだから0に戻るに決まってるよな
わい疲れてるかも
0789774ワット発電中さん垢版2022/06/25(土) 23:05:03.69ID:RNrqUGEU
と思ったら >788 の言うとおりだった
0790774ワット発電中さん垢版2022/06/26(日) 11:23:59.05ID:baa1+R08
書き込みがやたら失敗すると思ったらIDCコネクタの接触不良だった
そういえば、なんか緩い、ピンが細いのか、受けが広いのか?・・・・
メーカー間の相性ですかね?
0791774ワット発電中さん垢版2022/06/26(日) 12:42:56.71ID:BPUFW4J7
旧tinyのポンコツI2Cはマルチバスマスタ対応可能だよ
ポートを細かくおまいらで記述しろて突き放した仕様だから
SDAコンフリクトもセンス可能
0792774ワット発電中さん垢版2022/06/26(日) 20:56:27.60ID:DMQQHgwC
tiny202 の RESETピンを L に落としてもリセットがかからないんだけど、どんな理由が考えられる?
ヒューズは買ってきたまま、コードはアセンブラで書いてて、初期化時にはRESETピンをプルアップしてる。ハード的にはピンには何も繋いでない。
UPDI でプログラムはできる。
そもそもいろいろ不安定で、プログラミング後しばらくはパワーON で動き出すんだけど、電源切ったまま数十分放置すると再び電源に繋いでも動かない。
RESETピンを L に落としてもだめ。もちろん H にしても変化なし。
でもプログラマ(USBシリアル)繋ぐとリセットされて動き出す。
いろいろ分からないんだけど、なんにしても RESETピンを L に落としてリセットがかからないというのが一番分からない。
ヒューズ以外の初期化の仕方によって、RESETピンを殺せたりする?
0794774ワット発電中さん垢版2022/06/26(日) 21:31:23.98ID:AXQQxE/+
そりゃデフォルトのピン設定をいじってないんならUPDIピンになってるわな。
RESETピンとしては機能してない。
データシートPDF内で「RESET」を検索しようとかひらめくようになりなよ。
0795774ワット発電中さん垢版2022/06/26(日) 23:25:18.37ID:zBhMSAx2
>>794
おー、RESETピンはデフォルトではRESETピンじゃないのか。でもヒューズで設定するのね?
もしピンの動作を RESET に変更したら、普通には UPDI できなくなるってことね?
それだとあんまりいじりたくないなぁ…
実はヒューズの書き方がよく分からないし。
アセンブラソースでヒューズの値も記述できるの?

それはともかく、パワーオンリセットがかからないのもよく分からないんだよ。
プログラム後しばらくはブレッドボードから引っこ抜いて差してもちゃんと動くのに、しばらく時間が経つと電源入れただけじゃ動かない。
電源のコンデンサに電圧が残ってるとかそういうことでもないはずなんだけど、この挙動も UPDI と関係ある?
0796774ワット発電中さん垢版2022/06/27(月) 00:14:47.48ID:tvfvShEc
似たようなことと言えば、電源切ってもポートからの流れ込みでブラウンアウトしてて
リセットしなかったことはある。
USB-シリアルブリッジなんか繋いでるとよくある。
ソースにヒューズ設定書けるかどうかはアセンブラ/コンパイラ側の仕様。
何使ってるかによる。gccやxc8なら書ける。
0798774ワット発電中さん垢版2022/06/27(月) 05:19:18.19ID:wfvP5wKl
>>796
回路自体も電源と PA3 くらいしか繋いでないし、まだブレッドボードで組んでるからそこから引っこ抜けば何も繋がってないマイコン単体になるんだよ。
そうすれば内部状態もすっかり忘れてくれそうなものだけど、なんか不安定なんだよね。

ところで UPDI 端子はオープンにしておきたいんだけど、この場合はプルアップをイネーブルにすべき?
tiny10 の時は RESETピンをプルアップするようにしてたから同じようにプルアップしてるけど、これが悪かったりする?
データシートでは UPDIピンは内部プルアップ抵抗を持つって書いてあるから何もしない方がいいような気もするんだけど。
0804774ワット発電中さん垢版2022/06/27(月) 22:18:58.84ID:MwnBfpDM
容量1KBだからな
arduino化したら残容量はすずめの涙
0805774ワット発電中さん垢版2022/06/27(月) 22:23:24.31ID:pdvmOj9/
リセットかからんとか言うレベルで、容量がぁとか、なにを贅沢な。
0806774ワット発電中さん垢版2022/06/27(月) 22:36:09.18ID:MwnBfpDM
リセットなんてマニュアル読めよてはなしだが
容量はどうにもならんからな
てかarduinoを薦める時点でもはやAVRにこだわる必要ないし
新しいCPUならメモリ腐るほど乗せてるから贅沢も糞もない
0809774ワット発電中さん垢版2022/06/28(火) 08:06:05.39ID:9gaKIojW
小さいメモリのマイコンにブートローダを載せる価値があるかどうかは別にして、
ブートローダの応用は、ユーザーによるファームウェアアップデートにも使えるしね。
「ライターを持っていれば、ブートローダは不要」とは必ずしもならないよ。
0810774ワット発電中さん垢版2022/06/28(火) 08:50:05.39ID:PsGtt6ji
> ユーザーによるファームウェアアップデート
絶対これ言うやついるよね。
0811774ワット発電中さん垢版2022/06/28(火) 09:00:13.38ID:6EoCrCUX
最近はどうか知らんけど、ちょっと前は
ユーザーにTFTPとか、やらしてたからなあ
めんどくさいちゅうねん

USBからアップデートできるのは有難いわ
0812774ワット発電中さん垢版2022/06/28(火) 09:13:58.68ID:WlpBlR6h
ユーザーにArduino IDE入れさせるのかね。
まあ、書き込み専用のアプリとか作れるだろうけど。
0813774ワット発電中さん垢版2022/06/28(火) 10:42:19.24ID:1q2WaOzx
>>804
202 は 2KB あるよ。

202 で結局モノは完成して、安定して動いてる。
起動しないことがある問題は多分電源の品質。電源の立ち上がりがよくない感じだったかも。
微妙に解せないけどそういうことで納得してる。
使った感想としては、tiny10 は 1KB でそれで足りず 202 使ってみたんだけど、メモリは倍になってもコード効率が悪くて単純に倍の規模が作れるわけではなさそうなのが残念。
tiny10 は全ての IO や SRAM アクセス命令が 1ワードだけど、202 はほとんど 2ワードになっちゃうからね。
当然クロックも 1クロック余計にかかるから、速度的にも不利。
16bit IOレジスタも上位8bit アクセスを省略するような技が使えないから必ず 2バイトアクセスが必要。
でもかけ算命令や高度なインデックスアクセスが使えるから、tiny10 と別のアプローチで最適化できる余地はある。
単純に倍と見ることはできないといってもやっぱり 2KB あるし汎用レジスタもSRAMも多いから、間違いなく tiny10 より凝ったことができるね。
今回はファミコンの APUもどきを実装してファミコン風オルゴール作ってみた。
ROM や RAM が多いから、エンベロープのパターン増やしたり LFO かけたり、曲の音譜数も増やせたりで満足行った。
LED演出も追加してみた。
これがやれるマイコンが 60円ってのは本当に素晴らしいね。

でもやっぱり tiny10 の良さも捨てがたいんだよな。
メモリが倍になった tiny20 とかあればいいのに。
もちろん60円以下で。
0814774ワット発電中さん垢版2022/06/28(火) 11:22:50.68ID:sKtkjn7W
細けえことはいいんだよ
132MHzデュアルコアでブラックボックスのライブラリ使ってガンガン回せ
0815774ワット発電中さん垢版2022/06/28(火) 18:36:30.77ID:SR72agKg
細けえことはいいんだよ
240MHzデュアルコアでブラックボックスのライブラリ使ってガンガン回せ
なお謎通信
0816774ワット発電中さん垢版2022/06/29(水) 16:46:57.51ID:igqdMtlV
多分とか、解せないけど納得している、はちゃんと調査、解決した方がいい。
0817774ワット発電中さん垢版2022/06/29(水) 17:40:13.53ID:A1DhJQdk
mega328でtimer1で、はまってます
なんか抜けてます?
ほかにハマリがちなところもあれば、教えてくださいやし



;tccr1a ctcモード  pinout無効
ldi r17,0
sts tccr1a,r17

;tccr1b 分周なし ctcモード
ldi r17,9
sts tccr1b,r17

;ocr1a 7999 $1f3f(8000 )
ldi r17,$1f
ldi r16,$3f
sts ocr1ah,r17
sts ocr1al,r16

;ocr1b $fffff 絶対踏まない
ldi r17,$ff
ldi r16,$ff
sts ocr1bh,r17
sts ocr1bl,r16

;timsk 一致割り込み許可
ldi r16,2
sts timsk1,r16
0822774ワット発電中さん垢版2022/06/29(水) 18:40:56.19ID:zGIV9qJd
Cで書いてから最適化すればいいのに。
良く分からずに使ってんだろうな。
0823774ワット発電中さん垢版2022/06/29(水) 18:42:21.47ID:A1DhJQdk
ほんとにどこにでもいますね、自分がわからないこと聞かれると質問者をディスり始めるバカ
0827774ワット発電中さん垢版2022/06/29(水) 19:33:49.82ID:3pRuDSEZ
>>823
せめてデータシートぐらい読もうぜ…
7810D-AVR-01/05のp. 92あたりに
ズバリの解答がある

あと、他の人も書いてるが、右も左も
分からずに、アセンブラに挑戦する
なら、まずはCで書いてlssを読む
0828774ワット発電中さん垢版2022/06/29(水) 19:39:38.07ID:A1DhJQdk
そのデーターシートはもってないリンクくれるとうれしい

あとアセンブラむつかしいみたいな言動がいろんな人から出るけど
アセンブラってめんどくさいだけで、めちゃ簡単よ、(とくに今回みたいなレジスタ設定に関しちゃ)なんか勘違いしてると思う
0829774ワット発電中さん垢版2022/06/29(水) 19:46:29.43ID:3pRuDSEZ
>>828
せめてググってくれよ
328/pの最新データシートだよ
最新版のデータシートを手元に
置くのは必須だと思うぞ
0830774ワット発電中さん垢版2022/06/29(水) 19:46:32.55ID:A1DhJQdk
あ~、後出しとか言われる前に書いときます、私cプログラマーじゃないので、cでやれって言われると手も足も出ません
0832774ワット発電中さん垢版2022/06/29(水) 20:03:26.67ID:H6TXZqyl
>>827
オフィシャルの最新は
DS40002061B
だよ。該当ページは123-124
(microchipの形式よりatmelの形式の方が
データシートのデザイン、カッコいいと思う…)
0834774ワット発電中さん垢版2022/06/29(水) 20:13:35.83ID:A1DhJQdk
え~と。AVR.JPのですね、これ、これなら手元に有るのですが123-124pは通信関係になってるので、やっぱり違うものを見てるのかも?
0836774ワット発電中さん垢版2022/06/29(水) 20:22:48.49ID:A1DhJQdk
いやググったらでてきただけですが、オフィシャルでサイト内検索しろってことでか、了解しました
0837774ワット発電中さん垢版2022/06/29(水) 20:50:50.39ID:A1DhJQdk
オフィシャルで DS40002061B を検索しても出てこないですね
mega328pで出てきたやつをとりあえずDLしましたが
私、英語ネイティブじゃないので(ちゃちゃっと読めないので)、当分レスないかもしれません、ではでは
0839774ワット発電中さん垢版2022/06/29(水) 21:58:11.42ID:A1DhJQdk
>>838
いやいや、AVRはこれからです、習作作ってるところです
z80とかH8は、だいぶいじりましたけどねえ
こんなところで、はまるとは思いもよりませんでした
0840774ワット発電中さん垢版2022/06/30(木) 03:21:09.12ID:8fmlRRp1
データシートをざっと眺めた感じではavr.jpのと、違うことが書いてあるようにもみえないのでちゃんと訳すなりしないと先に進みません
オフィシャルオフィシャル言うのはavr.jpのは内容がおかしいってことなんでしょうか?

でaruduinoでなんと偶然にもctcモードのコードを見つけてしまったのでチートしちゃおうということでuno だということにしてコンパイルして書き込んでみたら
あっけなく動いてしまったので、HEXを逆アせしてみました。
なんでこんな長いんだというリストが出てきて意気消沈してますが、とりあえず動くコードが手に入ったのでなんとかなるかも(ほんとか?)
0842774ワット発電中さん垢版2022/06/30(木) 06:46:38.43ID:qFamfxQD
AVR.jp はサラッと呼んで内容掴んだあと原本読んで
「えぇ?ここ意味違うじゃんw」って笑う為のサイトだよ。
0843774ワット発電中さん垢版2022/06/30(木) 07:48:35.44ID:za3k4qdP
>>841
チラ裏までにしてほしい
この手の定年爺はドヤ顔でデタラメを書くから
デタラメが拡大再生産されてしまう
0844774ワット発電中さん垢版2022/06/30(木) 08:21:44.80ID:fWKflDSA
ASMでしか書けないジーチャンとCでしか書けないニーチャンの共通点、と掛けて何と解く?
・・・
・・・
・・・
どちらも未来が無いでしょうwww
0845774ワット発電中さん垢版2022/06/30(木) 08:40:38.41ID:E5Qx2iXg
>>844とかけて
出汁を取るのが下手な蕎麦屋ととく
どちらも、かけがクソ不味いでしょう
0848774ワット発電中さん垢版2022/06/30(木) 09:17:22.22ID:MOX92Qdq
データシート持たずにマイコンいじり?
ありえない
さてはお前人工無能スクリプト「アセンブラおじさん」だな?
0849774ワット発電中さん垢版2022/06/30(木) 11:12:02.81ID:5TIyh9Ws
>>817
mega328 のデータシート見てないけど、16bit レジスタに書く時に下位と上位どっち先にするかは合ってる?
tiny10 は下位バイト書き込みのタイミングで、tiny202 は上位バイト書き込みのタイミングで 16bit値確定だったよ。
0850774ワット発電中さん垢版2022/06/30(木) 11:26:48.24ID:MOX92Qdq
カウンタがうごかねーパタンは大抵初期化と割り込み解除の順番がまずいてことが多い
0852774ワット発電中さん垢版2022/06/30(木) 11:36:12.65ID:5TIyh9Ws
マイコンの取り扱いを一から始めるなら、多分アセンブラの方が簡単じゃね。
IOレジスタについてはどっちでやっても覚えること変わらないし、むしろ何かするのに C ではどう書くことになってるのかを知る必要がある。
アセンブラなら単純にそれをする命令を置くだけで、非常に直感的。
いちいち自前でレジスタ操作しないでありもののライブラリ使っとけということで C を勧めるのは分かるけど、言語は本質じゃない。
0853774ワット発電中さん垢版2022/06/30(木) 12:39:40.46ID:bx2/TFja
開発カンキョー様が整えて用意してくれてた諸々の初期化処理の数々を
いちいち自前で工面する手間を考えると
簡単と言えるのか大いに疑問といわざるをえないんじゃね?しらんけど;^p^)
0854774ワット発電中さん垢版2022/06/30(木) 13:24:59.80ID:8fmlRRp1
ライブラリ云々なら、別にASMから呼んだってっていいんだから、本質じゃねえわな
0855774ワット発電中さん垢版2022/06/30(木) 14:52:51.70ID:8fmlRRp1
え~と、いろいろでてますが
最初に出したコード部分については、動いてるコードと一致しましたので
原因は他の部分にあるようです
データシートも見ずにうんたらかんたら言ってる人もいますが
データシートなしにあんなレジスタ名わかんないですからね
的外してますよ
0856774ワット発電中さん垢版2022/06/30(木) 14:55:53.19ID:vbtaX0ke
マイコンのレジスタを使ってみたい人と
マイコンで何かを動かしたいあるいは処理したい人とでも、何をもって簡単とするかは違ってくるな。
そこを見ないでどっちが簡単と断じることができるのは、自分の観点しかないからだろう。
0857774ワット発電中さん垢版2022/06/30(木) 15:39:51.73ID:8fmlRRp1
ごちゃごちゃ言わんでも、普段使ってる物のほうが簡単ってことよ

日本人は日本語、中国人は中国語のほうが簡単にきまっとるわい

ちなみに日本語の習得難易度は各言語の中で唯一、「悪夢」だそうな
0858774ワット発電中さん垢版2022/06/30(木) 15:46:41.50ID:omjC7hD8
>>849
書き込んで一回だけ動作するようなレジスタ以外は書き込み順は関係ないよ。
UARTの送信データくらいじゃね?

sei してないから割り込み来ないとかじゃないよね?
0860774ワット発電中さん垢版2022/06/30(木) 15:53:38.50ID:8fmlRRp1
>>858
seiはしてるよ
念のため最初にcliして設定終わって無限ループ入る前にsei
そこらへんは基本でしょ、てか、同じ機能の設定に使うビット群が複数レジスタに分散してるとかで
データシートが読みづらい、これがriscあるあるか~ってw
0861774ワット発電中さん垢版2022/06/30(木) 16:05:27.54ID:z4HzI4/0
>>858
データシートで16bitレジスタアクセス手順を確認した方がいいよ。
8bit プロセッサで 16bit値の上下バイトを同じクロックで確定するため、内部では TEMPレジスタを使ってる。
tiny10 では上位バイト書き込みは TEMPレジスタに書かれ、下位バイト書き込み時に TEMPレジスタの値と合わせて 16bit を一息に適用する。
だから上位下位の順で書かないといけない。
0862774ワット発電中さん垢版2022/06/30(木) 16:15:57.06ID:8fmlRRp1
>>861

先に出したコードは動いてるのと一致したから、そこもOK

なんか見逃してるんだろうけどなあ
0863774ワット発電中さん垢版2022/06/30(木) 16:38:09.55ID:omjC7hD8
>>860
「そこらへんは基本でしょ」とか言われても
>>817 に書いてないだろ。コードの一部分だけ出してその言い草か。


>>861
>データシートで16bitレジスタアクセス手順を確認した方がいいよ。
そこらへんは基本でしょ
0865774ワット発電中さん垢版2022/06/30(木) 16:41:28.42ID:2X8+NCv/
>>862
出したコード動いてるなら
動いてないコード出さないと意味ない
簡略化してスタートアップコードから全部出した方が話が早そう
0866774ワット発電中さん垢版2022/06/30(木) 16:43:08.33ID:8fmlRRp1
>>863
>>その言い草か。

べつにやしめてるつもりは無いんだが
そううけとれちゃったんなら、ごめんな
0868774ワット発電中さん垢版2022/06/30(木) 16:53:59.77ID:2X8+NCv/
>>867
だから 簡略化してって

つか、どこまで動いてて、どこから動いてないか
理解してる?
0869774ワット発電中さん垢版2022/06/30(木) 17:01:37.38ID:8fmlRRp1
行大すぎで書き込みできんかった
分割するわ

.device atmega328p
.equ tccr1a = $80
.equ tccr1b = $81
.equ tcnt1l = $84
.equ tcnt1h = $85
.equ ocr1al = $88
.equ ocr1ah = $89
.equ ocr1bl = $8a
.equ ocr1bh = $8b
.equ timsk1 = $6f
.equ sreg = $5f
.equ portd = $2b
.equ ddrd = $2a
.equ pind =$29
0870774ワット発電中さん垢版2022/06/30(木) 17:02:19.89ID:8fmlRRp1
.cseg
rjmp start ;RESET 電源ON, WDT, BOD等の各種リセット
reti ;INT0 外部割り込み要求0
reti ;INT1 外部割り込み要求1
reti ;PCINT0 (PCI0) ピン変化0群割り込み要求
reti ;PCINT1 (PCI1) ピン変化1群割り込み要求
reti ;PCINT2 (PCI2) ピン変化2群割り込み要求
reti ;WDT ウォッチドッグ計時完了
reti ;TIMER2_COMPA タイマ/カウンタ2 比較A一致
reti ;TIMER2_COMPB タイマ/カウンタ2 比較B一致
reti ;TIMER2_OVF タイマ/カウンタ2 溢れ
rjmp int_500 ;TIMER1_CAPT タイマ/カウンタ1 捕獲発生
rjmp int_500 ;TIMER1_COMPA タイマ/カウンタ1 比較A一致
rjmp int_500 ;TIMER1_COMPB タイマ/カウンタ1 比較B一致
rjmp int_500 ;TIMER1_OVF タイマ/カウンタ1 溢れ
reti ;TIMER0_COMPA タイマ/カウンタ0 比較A一致
reti ;TIMER0_COMPB タイマ/カウンタ0 比較B一致
reti ;TIMER0_OVF タイマ/カウンタ0 溢れ
reti ;SPI0_STC SPI0 転送完了
reti ;USART0_RX USART0 受信完了
reti ;USART0_UDRE USART0 送信緩衝部空き
reti ;USART0_TX USART0 送信完了
reti ;ADC A/D変換器 変換完了
reti ;EE_RDY EEPROM 操作可
reti ;ANALOG_COMP アナログ比較器 出力遷移
reti ;TWI0 TWI0 状態変化
reti ;SPM_READY SPM命令 操作可
reti ;USART0_START USART0 フレーム開始検出
reti ;PCINT3 (PCI3) ピン変化3群割り込み要求
reti ;USART1_RX USART1 受信完了
reti ;USART1_UDRE USART1 送信緩衝部空き
reti ;USART1_TX USART1 送信完了
reti ;USART1_START USART1 フレーム開始検出
reti ;TIMER3_CAPT タイマ/カウンタ3 捕獲発生
reti ;TIMER3_COMPA タイマ/カウンタ3 比較A一致
reti ;TIMER3_COMPB タイマ/カウンタ3 比較B一致
reti ;TIMER3_OVF タイマ/カウンタ3 溢れ
reti ;CFD クロック障害検出
reti ;PTC_EOC 周辺機能接触制御器 変換終了
reti ;PTC_WCOMP 周辺機能接触制御器 窓比較動作
reti ;SPI1_STC SPI1 転送完了
reti ;TWI1 TWI1 状態変化
reti ;TIMER4_CAPT タイマ/カウンタ4 捕獲発生
reti ;TIMER4_COMPA タイマ/カウンタ4 比較A一致
reti ;TIMER4_COMPB タイマ/カウンタ4 比較B一致
reti ;TIMER4_OVF タイマ/カウンタ4 溢れ
0871774ワット発電中さん垢版2022/06/30(木) 17:03:06.63ID:8fmlRRp1
start:

cli

;pd2出力
ldi r16,$04
sts ddrd,r16
sts portd,r16 ;点灯

;tccr1a ctcモード  pinout無効
ldi r17,0
sts tccr1a,r17

;tccr1b 分周なし ctcモード

ldi r17,9
sts tccr1b,r17

;ocr1a 7999 $1f3f
ldi r17,$1f
ldi r16,$3f
sts ocr1ah,r17
sts ocr1al,r16

;tcnt1=0
ldi r16,0
ldi r17,0
sts tcnt1h,r17
sts tcnt1l,r16
;timsk 一致割り込み許可

ldi r16,2
sts timsk1,r16


sei

loop: rjmp loop


int_500:

ldi r16,0
sts portd,r16 ;消灯、一度でも割り込まれれば消えるはずだが・・・
reti
0872774ワット発電中さん垢版2022/06/30(木) 19:13:16.67ID:1i4HGX75
>>871
シミュレータで動かしてたみたら?
レジスタやフラグの動きも全部見られるよ。
0873774ワット発電中さん垢版2022/06/30(木) 20:01:34.00ID:E5Qx2iXg
だから、なんでSRAMに書き込むんだよ
何一つ前進してねぇ…

ってか、本質的なことを理解せず、つまみ食い
しては「分かった気」になって、うまくいかないと
アラシさながらに書き込み、揶揄されると逆ギレ
0874774ワット発電中さん垢版2022/06/30(木) 20:07:47.84ID:za3k4qdP
ページまで教えて貰ったデータシートを読んでないのか、
読んでも理解する能力がないのか…
0875774ワット発電中さん垢版2022/06/30(木) 20:10:02.76ID:NuG2D9Tn
>>873
汎用レジスタもIOレジスタもSRAMもNVMも sts/lds でシームレスにアクセスできるでしょ
0876774ワット発電中さん垢版2022/06/30(木) 20:29:38.48ID:jtJRhqGJ
例えばPORTDがIOアドレスで定義されていたらSTS/LDSではアクセスできない。
メモリアドレスで再定義しないと。
0880774ワット発電中さん垢版2022/06/30(木) 20:51:34.10ID:8fmlRRp1
>>879
まあまあ、一部だけ見て反応するのはネラーの特徴だから、しょうがねえよ
資料云々言ってる人も居るけど、入手出来てないって書いてるの読んでくれてないみたいだしw
0882774ワット発電中さん垢版2022/06/30(木) 21:02:21.71ID:9lrpcowf
割鋳込み → 割り込み
CPUはmega328だよね
0883774ワット発電中さん垢版2022/06/30(木) 21:09:21.04ID:8fmlRRp1
>>881
あ、ほんまや、でかいねこれw
でもベクターの位置は12番目で合ってるから、メモリ食ってるだけと思います
0885774ワット発電中さん垢版2022/06/30(木) 21:15:45.83ID:2X8+NCv/
>>883
ソースが出たから誰かが解決するのは時間の問題だと思うけど
あと出しでもめないように

1. マイコンの動作クロック ?
2. 書き込んだフューズの値
3. アセンブルするときのコマンド全部
4. 逆アセンブルリスト startから int_500まででOK

もあると安心
0886774ワット発電中さん垢版2022/06/30(木) 21:20:46.47ID:8fmlRRp1
>>882
328ですよ~
328系の資料しか開いてなかったはずなんだけど
どっからコピったんだ>俺w
0887774ワット発電中さん垢版2022/06/30(木) 21:34:29.11ID:8fmlRRp1
では、後出し行きますw

クロック4mhz

ヒューズ
h D9
l E6
e FF

コマンド
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exe" -fI -l 0list.txt -m 0map.txt clock.asm


リスト
start:

00002d 94f8 cli

;pd2出力
00002e e004 ldi r16,$04
00002f 9300 002a sts ddrd,r16
000031 9300 002b sts portd,r16 ;点灯

;tccr1a ctcモード  pinout無効
000033 e010 ldi r17,0
000034 9310 0080 sts tccr1a,r17

;tccr1b 分周なし ctcモード

000036 e019 ldi r17,9
000037 9310 0081 sts tccr1b,r17

;ocr1a 7999 $1f3f
000039 e11f ldi r17,$1f
00003a e30f ldi r16,$3f
00003b 9310 0089 sts ocr1ah,r17
00003d 9300 0088 sts ocr1al,r16

;tcnt1=0
00003f e000 ldi r16,0
000040 e010 ldi r17,0
000041 9310 0085 sts tcnt1h,r17
000043 9300 0084 sts tcnt1l,r16
;timsk 一致割り込み許可

000045 e002 ldi r16,2
000046 9300 006f sts timsk1,r16


000048 9478 sei

000049 cfff loop: rjmp loop


int_500:

00004a e000 ldi r16,0
00004b 9300 002b sts portd,r16 ;消灯、一度でも割り込まれれば消えるはずだが・・・
00004d 9518 reti
0889774ワット発電中さん垢版2022/06/30(木) 22:04:12.90ID:9lrpcowf
昔作ったプログラムを見たら、TIFR1レジスタにも設定してた
あまりに昔すぎて内容をよく覚えていない、参考になればいいけど
;----- setup timer#1:CTC 0.5S inteval for time base
 clr ZL        ;not output, OR1A_CTC
 sts TCCR1A,ZL   ; WGM1,0=0,0
 ldi ZL,0b00001101 ;prescale 8M/2/1024 (125nS to 256uS)
 sts TCCR1B,ZL   ; WGM3,2=0,1 CS2,1,0=1,0,1
 ldi ZL,HIGH(3906) ;19531 * 256uS = 0.5S
 sts OCR1AH,ZL
 ldi ZL,LOW(3906)
 sts OCR1AL,ZL
 ldi ZL,0b00000010  ;OCF1A flag
 sts TIFR1,ZL    ;enable int.
 sts TIMSK1,ZL    ;set mask flag
0890774ワット発電中さん垢版2022/06/30(木) 22:54:57.32ID:8fmlRRp1
>>889
ありがとうです
TIFR1設定追加してみましたが変化無しです

TIFRってなんぞ?と見てみたらすでに見てましたw
マッチした後に設定されて、割り込みが発生するとかで
ユーザーがいじらなくてもいいとこみたいな感じだったので
意識に残ってなかったですね、まあavr.jpの資料ですけどw
そっからまた、他のレジスタにも波及するようなので、
そっちが、なんか関係あるかもしれません
0891774ワット発電中さん垢版2022/06/30(木) 23:18:00.05ID:cyt307Ia
>>849
横からですが、そういうのあるんですね。
考えたことなかったです。気にしてみます!
0892774ワット発電中さん垢版2022/06/30(木) 23:20:28.97ID:cyt307Ia
>>857
日本語を習得した英語圏の人でも、難しいのは英語。という声もあるので諸説あるようです
0898774ワット発電中さん垢版2022/07/01(金) 07:59:44.34ID:f95IkACE
というかシミュレータ便利だよ。
Atmel Studio だか Microchip Studio 入れれば使えるしタダだし。
フラグ変化のタイミングやクロック数とか、実機じゃ確認しづらいことも確認できる。
全部の割り込みベクタにブレーク張っとけば割り込みベクタの間違いにも気付けるし。

まあ、いろいろ変な挙動も多いんだけどね。
CPUステータスレジスタを読むコードをシングルステップで実行してしまうと Iフラグがおちちゃったり、シングルステップで流していくとタイマー割り込みが入らなかったり。
power down な sleep は実質ハングアップするから、そういうのを含むコードはすごく追いづらいってのもあるし、周辺IO によってはクソの役にも立たないと思うけど。
でもそれを差し引いても便利過ぎる。
実際に見てみないと分からないデータシートから読み取りづらい挙動が多いよ。
0900774ワット発電中さん垢版2022/07/01(金) 08:20:16.49ID:f95IkACE
>>899
プロジェクトのプロパティ、Tool のタブでデバッガとして Simulator を選択。
F9 でブレーク張って F5 で実行だけど、Debugメニューの中見れば操作方法は分かると思う。
ちなみにディレクトリパスにマルチバイト文字が入ってるとうまく動かない。
0901774ワット発電中さん垢版2022/07/01(金) 08:23:12.45ID:Vf83u1x2
>>900
マイクロチップスタジオのプロジェクトとして作っておかないとだめな感じですか?
0902774ワット発電中さん垢版2022/07/01(金) 08:27:30.82ID:f95IkACE
>>901
それ以外でやったことないけど、まだ実験コードなんだからコピペしちゃえばいい。
アセンブラプロジェクトを作ると main.asm ってのが自動的に出来上がるから、そこに。
プロジェクトが自動的に include するデバイス毎の定義と自前の equ が被る場所はちょっと調整する必要があるけど、これから作るものは標準の定義に合わせていくといい。
0904774ワット発電中さん垢版2022/07/01(金) 09:59:32.96ID:Vf83u1x2
いきなりEQUかぶってんで詰まりますね
スタジオがデフォで読み込んでる定義を抑制できればいいんですが・・・
EQUを全部コメントアウトすればとりあえず先へ進めるけど
デフォの定義はメモリーアドレスなのか、IOアドレスなのかすらわからない
この件でキレてた人居たからIOですかね?
うん別名で定義しなおしますか
0905774ワット発電中さん垢版2022/07/01(金) 10:41:22.31ID:Vu/9z4cE
>>904
in/out でアクセスできるレジスタはそっち使う方が命令長も実行クロックも短くなるよ。
sts/lds は 2ワード命令
0906774ワット発電中さん垢版2022/07/01(金) 10:49:58.28ID:Vf83u1x2
>>905
outだと、大きいアドレスが来ると届かなくてASMに怒られるんで
めんどくさくないようにメモリアクセスで統一してます

あと数バイトたりね~とかになったら、削ります
0907774ワット発電中さん垢版2022/07/01(金) 11:39:18.71ID:r6MXzqY0
I/Oアドレスの問題もそうだけど、命令の対象レジスタの制限、即値の制限など、
AVRには色々と制約が多い。
生まれて初めてAVRでアセンブルしたときに
エラーメッセージ(この命令はR16〜R31でしか使えません)が一杯出てきた。
「なんだよぉ、コード16ビットにしちゃ命令の種類が多いなと感心したのに
 そういうカラクリだったのね、詐欺みたいなCPUだな」
と思ったw

でも3回ほどプログラムを作った後は、
「良く出来たPUだな、プログラミングが楽しいCPUだな
 これからも使いつづけよう」
に変り、今に至るw
逆に3回ほど使って「二度と使うか!」と思ったのがPIC。
(PICファンの人、ゴメンね、相性です)w
0908774ワット発電中さん垢版2022/07/01(金) 11:41:44.28ID:Vf83u1x2
あるあるw
16ビット加算ないのぉ?って命令表見てたら、あるじゃ~ん
もっとよく見るとオペランド6bitってwww、こけたよ
0909774ワット発電中さん垢版2022/07/01(金) 11:58:06.54ID:cNCsUukh
>>896
少なくともMicrochip Stadio7.0+中華328P(16MHz)では意図したであろう動作はしてるよ
リセット -> PD2(High) -> 8ms -> PD2(Low)
たぶん\(^o^)/
0910774ワット発電中さん垢版2022/07/01(金) 12:16:27.43ID:Vu/9z4cE
>>909
ほんとだ、TIMER1 COMPA のベクタアドレスは 0x16 だった。
同じデータシートに複数モデルのベクタ表があって見間違ってた。
0912774ワット発電中さん垢版2022/07/01(金) 12:39:47.35ID:Vf83u1x2
>>910
まあ、アップした表も間違ってんだけど
ベクター位置は合ってるからまあいいかで放置w
複数モデルのベクター表載ってるデーターシートがあるの?
そこからコピったのかな>俺w
0918774ワット発電中さん垢版2022/07/01(金) 13:32:52.44ID:r6MXzqY0
ベクタ、2バイト確保してる?
0920774ワット発電中さん垢版2022/07/01(金) 13:59:10.35ID:Vu/9z4cE
>>919
アドレスの単位はバイトじゃなくてワード。
メモリアクセスのためのメモリマップ上のアドレスはバイト単位でポイントできるけど、それはコードのアドレスの2倍が基準。
0921774ワット発電中さん垢版2022/07/01(金) 14:07:24.35ID:Vf83u1x2
アセンブラでcsegに直配置すると、ワード単位でしか配置できないので2バイト確保できてないなんて心配は要らないと思いますが?
0924774ワット発電中さん垢版2022/07/01(金) 14:45:42.98ID:Vf83u1x2
>>923
その表は初めて見ました
ん~、4バイトごとに配置しろってことですか?
試します


動きました
LED消灯したので、交互にオンオフするように書き換えて
ばっちり点滅してます



感謝感激

あり豪ございます
0925774ワット発電中さん垢版2022/07/01(金) 14:55:46.02ID:Vu/9z4cE
>>924
program address と言われたら、バイトじゃなくワードアドレスってことに留意ね。
アドレス 0x0000 の次の命令のアドレスは 0x0001 ね。
0926774ワット発電中さん垢版2022/07/01(金) 15:02:58.16ID:Vf83u1x2
>>925
私がcsegアドレスって言ってたのがそれなんで
そこに見解の相違は無いと思います
なにはともあれ、たすかりまし、ありがとう
0927774ワット発電中さん垢版2022/07/01(金) 15:15:58.43ID:Vu/9z4cE
>>926
そっちじゃなくデータシートの読み方だよ。
ベクタ12 のアドレスは 0x0016 って書いてあったでしょ。
これはバイトアドレスじゃなくワードアドレスね。
ともかく動いてよかったね。
0929774ワット発電中さん垢版2022/07/01(金) 15:21:04.92ID:Vf83u1x2
これ下位のCPUだったら、全然気が付いてなかったかもですね
ベクターサイズ網羅した表ほしいですねえ
0930774ワット発電中さん垢版2022/07/01(金) 15:49:04.61ID:Vu/9z4cE
>>929
ちなみに番号歯抜けもあるからね。
少なくともオフィシャルのデータシートにはアドレスも書いてあるよ。
秋月に貼られてるデータシートにも書いてあるから見ておくといいよ。
0931774ワット発電中さん垢版2022/07/01(金) 16:18:51.95ID:Vf83u1x2
>>930
avr.jpのにも書いてありました
物自体が他のcpuのだし
謎な所から拾ってしまったのが敗因ですね
改めてコピペしようとしたら、すんなりコピーさせてくれなかったので
あ、なるほど、これでwebに探しに行って、変なの拾っちまったわけかと納得
0932774ワット発電中さん垢版2022/07/01(金) 16:58:15.58ID:/u9l3TD8
そういう違いを吸収して移植性を高めるために
MPU毎に定義マクロ(.inc)があるのに、
なぜ使わないんだろう

何が何でも、車輪を再発明しなきゃ気がすまない
タイプの人?
0938774ワット発電中さん垢版2022/07/01(金) 18:04:21.03ID:/u9l3TD8
>>937
だとすると、わざわざプロジェクトの
プロパティを編集してatmel studioが
用意してくれたアセンブラオプションを
毎回削除してるわけ?
0939774ワット発電中さん垢版2022/07/01(金) 18:09:06.16ID:Vu/9z4cE
>>938
え、どういうこと?
普通にプロジェクト作ると main.asm の中身んてただの無限ループひとつでしょ?
0940774ワット発電中さん垢版2022/07/01(金) 18:10:26.44ID:Vu/9z4cE
>>938
いいからマクロ定義使ったベクタ定義見せてくれよ。
もしかして全部のベクタに org 付けるって話?
0942774ワット発電中さん垢版2022/07/01(金) 18:23:30.29ID:r6MXzqY0
そんなものが無くてもアセンブラで書けるけど(サンプル>>491
取りあえず言える事は、<マニュアルは眼光紙背に徹するほどいちいち叮嚀に読もう>
ベクタが2Wであるのはマニュアルを見さえすれば気が付くし、納得する。
0943774ワット発電中さん垢版2022/07/01(金) 18:36:52.11ID:Vu/9z4cE
>>941
ベクタ以外の実処理の org はどう書くの?
ベクタの最終アドレスの定義がある?

まあ実際全部のベクタを org で指定すればどのプロセッサにも適用できそうなコードにはなるんだろうし、それなりのメリットはあるんだろうね。
でも多分自分はやらないなぁ
よく空きベクタに別のコード置いたりしてクロックやらサイズやら節約してるってのもあるし、どのプロセッサでも動くようなものじゃなくターゲットが明確なことが多いからな。
アセンブラで書くのは1クロック1バイトを削りたいからという目的もあって、中途半端な移植性のために無駄の出る書き方するなら本末転倒だ。
もちろん個人のスタンスの話で、一般論を語るつもりではない。
0945774ワット発電中さん垢版2022/07/01(金) 18:40:32.97ID:/u9l3TD8
>>943
あの?なんでコードサイズに影響すると思ったの??
もしかして、まるで理解できてない?
0946774ワット発電中さん垢版2022/07/01(金) 18:43:37.12ID:Vf83u1x2
とりあえず、べくたーを修正中
4バイト間隔にするために、とりあえずnopで埋めたけど
なんかかっこ悪いな~
0947774ワット発電中さん垢版2022/07/01(金) 18:45:05.34ID:Vu/9z4cE
>>945
空きベクタの領域にコードを書くなら、そのアドレスを強く意識する必要があるでしょ。
そのアドレスを隠蔽する書き方じゃ目的を果たせないよね?
0949774ワット発電中さん垢版2022/07/01(金) 21:05:33.05ID:48afCI/l
>>898

これ
外部ピンを互いに任意に接続できるようにしてくれるともう無敵なんだがなあ
0951774ワット発電中さん垢版2022/07/01(金) 21:32:32.67ID:Vf83u1x2
>>902
使い方がだいたわかってきたところで、答え出ちゃったので使う機会がなくなっちゃいましたけど
ありがとう
0952774ワット発電中さん垢版2022/07/01(金) 21:35:34.31ID:Vu/9z4cE
>>948
例えばタイマの CMP0A と ADC変換完了割り込みしか使わないなら、その2つのベクタの間には別の処理を置くことができるでしょ。
それで数ワードの節約になるし、割り込みルーチンへの定型的な rjmp を省略できれば 2クロックの節約になるわけだけど、そういうコードかくなら隙間が何ワードあるか把握しないといけないでしょ。
この間は 13クロック周期の割り込み処理書いたけど、そういうタイトなコードを書くにはアドレスを隠蔽してられないし、そういうコードを書きたいからわざわざアセンブラを引っ張り出してくるんだよ。
別にタイトなコードじゃなくても、小さなテーブルとか小さなウェイト処理とか、隙間に押し込めるものはいろいろあるよ。
0953774ワット発電中さん垢版2022/07/01(金) 23:40:36.92ID:4IEPQIp8
>>952
そういうこそ普通は定義済みマクロを使うでしょ?
なんか、頭に血が上ってキャラの使い分けが変になってますよ?
0954774ワット発電中さん垢版2022/07/02(土) 00:06:34.14ID:XHMG2hC0
>>953
そういうこそってどういうことだ??
たとえばさ、OC0Aaddr と ADCCaddr の間に何ワード詰め込めるか、定義値を見ないでどうやって知るの?
基本的の定義を使うと言うことは、その中身は「知らない体」にするものだろ?
アドレスの差どころか代償にすら依存するコードの書き方はできなくなるんだぞ?
0955774ワット発電中さん垢版2022/07/02(土) 00:08:32.78ID:XHMG2hC0
>>954
いろいろtypoがひどい

そういうことこそ
基本的に定義を使うということは
アドレスの差どころか大小にすら

読み替えてくれ
0957774ワット発電中さん垢版2022/07/02(土) 00:17:06.99ID:tktFCX1i
>>954
一度、プロが書くコードをじっくり読んでくれ
話しはそれからだw

間違っても個人ブログとかを参照してドヤすんなよwww
0959774ワット発電中さん垢版2022/07/02(土) 01:21:57.97ID:+lYSYXa6
>>956
どう受け取っていただいていいんだけどさ、じゃあこのコードを org と定義マクロ使ってまともに書くとどうなる?
見ての通り、空きベクタに割り込み処理そのものを書いてる。
ベクタ番号6 が入り口な。

.ORG 0
rjmp RESET
reti ; 2 INT0addr

NEXT_TICK:
out TCCR0A, ARG ; 3 PCI0addr
mov PULSE_TIMER, TICK_WIDTH ; 4 ICP0addr
reti ; 5 OVF0addr

dec PULSE_TIMER ; 6 OC0Aaddr
breq NEXT_TICK ; 7 OC0Baddr
reti ; 8 ACIaddr
reti ; 9 WDTaddr
reti ; 10 VLMaddr
reti ; 11 ADCCaddr
0961774ワット発電中さん垢版2022/07/02(土) 17:29:52.35ID:3PHPuk7e
いきなりレスが減ったな
一人何役か知らんけどauの回線使ってたか?
0963774ワット発電中さん垢版2022/07/02(土) 18:04:36.40ID:vfbWpDu6
きっかけの問題(プログラムが動かない)が解決したからね。
みんな、「なぁんだ、そんなことが原因か」、と力が抜けちゃったんじゃないか?
ベクタテーブルの大きさを間違えるなんて・・・とあきれただろうな。
その後の言い争いについては、当事者以外は誰も興味無いと思う。
0964774ワット発電中さん垢版2022/07/02(土) 18:24:14.84ID:jd1wFhWG
ID:Vu/9z4cE だが >>953 あたりにはぜひずっと説明していた >>959 こういう時こその書き方を教えてもらいたかったけどね。
0965774ワット発電中さん垢版2022/07/02(土) 23:15:42.86ID:tLnpJ50Z
>>965
.org 0
rjmp RESET
(bad_vectorの処理は省略)
.org INT1Addr
NEXT_TICK:
out TCCR0A, ARG
mov PULSE_TIMER, TICK_WIDTH
reti
.org OC0Addr
dec PULSE_TIMER
breq NEXT_TICK
reti
でいけるでしょ。推奨されてないけど
ベクターテーブル内にrjmp / reti以外のインストラクションを書くのは一般に
非推奨だよね。昔のリソースぎりぎりの時にはよくやった手だけど絶対に飛び
込まないようにコーディングする必要があるのと,使うチップを変えた時に
移植できなくなる可能性あるし
0967774ワット発電中さん垢版2022/07/02(土) 23:36:33.78ID:igGQxtZD
>>965
非推奨どころかBad Idea扱いだなAVR assembler
のチュートリアルだと…

わざわざ書くぐらいだから「ボク凄い事思いついたお!」
ってやる例が多いんだろうね
0969774ワット発電中さん垢版2022/07/03(日) 07:49:41.66ID:WD2ybBvB
そもそも
中の人がせっかく2ワード命令のスペースを用意してくれたんだから
べクタテーブルには素直にJMP命令を使えばいいんだよ
RJMP+NOPに比べれば見た目もきれいだし、入力文字数も少ないしw
+1クロックなんか気にしてもしょうがない、
それよりも他にもっと気にしなけれないけない事があるだろ?
0971774ワット発電中さん垢版2022/07/03(日) 08:36:54.50ID:iApNGZUJ
>>965
それが成立するのは各アドレスを明確に把握してる場合だけだけど、わざわざそう書くとどんないいことがあるの?
目的を見失ってませんか?
0973774ワット発電中さん垢版2022/07/03(日) 08:58:25.41ID:iApNGZUJ
ところで、推薦ってだれの推薦?
英語難しくてわからんわ。
>In case the program never enables an interrupt source, the Interrupt Vectors will not be used and, consequently, regular program code can be placed at these locations.
0976774ワット発電中さん垢版2022/07/03(日) 09:54:25.99ID:pL1j+27Y
In case the program never enables an interrupt source,
the Interrupt Vectors will not be used
and, consequently,
regular program code can be placed at these locations.

割り込み入力を使わない場合は、
割り込み割り込みベクターは使われません、
その結果として
通常のプログラムコードをここに配置できます。

この文章には推奨(できればやりなさい)か非推奨(やるべきではありません)かは書かれてなくて、
できるかどうかだけが書かれていると思う。

推奨=できればやりなさい、非推奨=やるべきではありません
とあえて書いたけれど、推奨、非推奨の意味や雰囲気の捉え方は人によって異なるかもしれない、
そこを先にすり合わせないと、推奨か非推奨かの議論は成立しない。

あと、公式ドキュメントも単一の思想のもとで書かれているとは限らない、
本当に非推奨の意図で書かれているものもあるかもしれない。(だとしたら、公式でも意見が
分かれるものの可能性があるわけだから、ユーザーからみればどっちでも良さそう。
あとは、所属組織のコーディングルールとかに従えばいいと思う。
0977774ワット発電中さん垢版2022/07/03(日) 10:07:03.99ID:xpKZB1/y
>>976
うん、できると書いてあることをやるかやらないかはポリシー等の問題。
>>943 のような条件の中で >>965 のような結果に行き着くことについて、目的を見失ってると言ってるのな。
その上非推薦だからと言うから、その根拠を確認してるんだよ。
いいのよ、オレオレ縛りで非推薦だから非推薦なんだって回答でも。そしたらそうなのねって言うだけ。
0984774ワット発電中さん垢版2022/07/03(日) 16:29:07.32ID:Otz15zan
>>972
RETI命令があるところ(割込み処理の終わりとか)にジャンプさせる。
 JMP reset_start
 JMP int_ret
 JMP int_ret
 ・・・
 JMP int_ret
int_ret:
 RETI
reset_start:
0985774ワット発電中さん垢版2022/07/03(日) 16:47:02.66ID:Otz15zan
遊びならともかく(>>491
通常のプロフラムでベクタ領域に実行命令なんか置きたくないな。
やはりベクタテーブルは見た目が整然としてないと気持ち悪いw
0987774ワット発電中さん垢版2022/07/03(日) 17:42:58.31ID:EcVQSq6g
>>984
avrgccはコンパイル後のリスト見ると使ってない割り込みは
rjmp __bad_interrupt
で埋められて、行き先で
__bad_interrupt:
rjmp RESET
なってる。retiせずに最初に戻る。
どっちがいいんだろう?
0989774ワット発電中さん垢版2022/07/03(日) 20:18:54.72ID:1iL669o8
>>988
リセットにジャンプしても、スタックがほったらかしだから、最初にスタックポインタの設定を書いて置けばいいんでない?
あと、電源オン時のデフォルト値を期待しないように書いておく
0990774ワット発電中さん垢版2022/07/03(日) 21:11:38.59ID:9wPE4ZSh
>>989
意図しないベクタに割り込みが来てるようなレジスタの状態になってるわけで、元々初期化が怪しいよねぇ
ソフトウェアリセットかけられりゃいいけど、それができないモデルなら出力ピンひとつ潰してRESETピンに繋いどけばいいのかな。
と書いたところで思い付いたが、RESETピンを出力に切り替えて L にするコードでハードウェアリセットがかけられるかな?
0991774ワット発電中さん垢版2022/07/03(日) 21:15:14.03ID:1iL669o8
>>990
開発中ならそうでしょうね
完成後なら、おそらくハード異常だから、haltさせちゃってもいいような気がする
ってHALT無いんか
0992774ワット発電中さん垢版2022/07/03(日) 21:28:07.21ID:BagT7/Tx
ブラックボックスのライブラリ使って132MHzデュアルコアでガンガン回す時代になにやってるの?
0996774ワット発電中さん垢版2022/07/03(日) 23:28:25.49ID:akt32fKC
>>995
リセット後にリセット理由で対処すれば???
1000774ワット発電中さん垢版2022/07/03(日) 23:59:52.11ID:pL1j+27Y
静電気などによる偶発的な暴走もありうるので、からなずしも
変なアドレスにアクセスしたから、システムが永続的に壊れていると考える必要はないですね。
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 20時間 34分 55秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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