AVRマイコン総合スレ Part45
レス数が1000を超えています。これ以上書き込みはできません。
前スレのリセットの方法、RESETピンを内部から L に落とす次のアプローチはだめでした。
cli
cbi PORTB, PB_RESET
sbi DDRB, PB_RESET
HALT:
rjmp HALT
RESETピンが外部リセットピンとして設定されてる場合はそもそも出力ピンに切り替えられないんだね。
WDT かけてタイムアウトさせるアプローチが正攻法か。 WDT使ってリセットかけるならこんな感じだったけど、
cli
wdr
ldi R16, 1 << WDR
out WDCSR, R16
HALT:
rjmp HALT
これでリセットがかかっても WDT は生きたままになるんだね。
なので初期化ではこんな感じでリセットフラグのクリアと WDT の停止の両方をしないといけない。
wdr
ldi R16, 0
ldi R17, 0xd8
out RSTFLR, R16
out CCP, R17
out WDCSR, R16
しかも外部リセットかけても WDT は生きたままみたいで、これは初めて知った。
そして WDE を落とすだけじゃだめでリセットフラグもクリアしないとだめというのも、その必要性についてはよく読めばデータシートに書いてあったけど、いろいろ見落としてたわ。
結構きれいにリセットするの大変ね。 2桁の整数を上位と下位にばらして、格納するルーチンをかいてんだけど
いいネーミングが思いつかない、アイディア募集 ついでに書いちゃおw
dgt_sprtr:
mov r17,r16
swap r17
andi r16,$F
andi r17,$F
ret ちなみに、グーグル翻訳してみたら
ディスアセンブル ザ デジット で、いや長いわってw
しゃべらせてみたら ヂサセンボー ザ デジット って聞こえた >>17
ネーミングとは関係無いが、本体処理が 4クロックなのに rcall と ret で 8クロックかけるのもなぁ
使用レジスタも固定化されちゃうし、サブルーチンにするのは割と悪手な気がする。
あちこちに登場する処理ならワード数的なメリットはありそうだが、繰り返し処理の中に登場するならクロック数的に使いたくない。
おれならマクロにするな。 あ、ちなみに元ネタは10進二桁で
複数桁にたいして処理すんので
>>17みたいに短くなんないです >>21
0~99(0x63) を 0~9 2つに分ける感じ? >>23
なかなかどう書くか燃える処理だね。
面白そう BCDなら、そもそも分かれてるので楽なんですけどねw
みんな横道それるの好きねぇ >>25
速度と引き換えにメモリーを大量消費して実に単純なコードで実現してます(表引き)
計算だけでもできるんだろうけど、めんどくさかったのでw >>27
テーブル処理ね。速度が必要ならそうなるかも。
計算する方法なら、とりあえず思い当たるのは10ずつ引くループ処理かなぁ
clr R17
LP1:
subi R16, 10
brcs LP1_END
inc R17
rjmp LP1
LP1_END:
subi R16, -10
クロック数的には 80、40、20、10 と引けば短くなると思うけど、煩雑になりそう。
テーブル作るよりは小さくなると思うけど。 割り算ループをテーブルすればいいかもですね
って言うのは簡単w clr R17
cpi R16, 80
brcs NEXT1
subi R16, 80
subi R17, -8
NEXT1:
cpi R16, 40
brcs NEXT2
subi R16, 40
subi R17, -4
NEXT2:
cpi R16, 20
brcs NEXT3
subi R16, 20
subi R17, -2
NEXT3:
cpi R16, 10
brcs DONE
subi R16, 10
subi R17, -1
DONE:
最速13クロック、最遅17クロック clr R17
cpi R16, 80
rol R17
sbrc R17, 0
subi R16, 80
cpi R16, 40
rol R17
sbrc R17, 0
subi R16, 40
cpi R16, 20
rol R17
sbrc R17, 0
subi R16, 20
cpi R16, 10
rol R17
sbrc R17, 0
subi R16, 10
17クロック一定 >>33
ごめん間違い、キャリーの論理が逆だ。
R17 の初期値を 0xFF にして最後にR17 をビット反転する必要がある。 すなおにApplication Note AVR204を使っちゃいかんのか? >>35
探して見てみた感じだと、BIN2BCD8 なら >>28 と一緒かな?
やっぱどっかにあるもんだね。 >>28
$FF
ldi R17,$FF
LP1:
inc R17
subi R16,10
brcc LP1
LP1_END:
subi R16, -10 ゴメン、送信してしまった
$FFから始めるのはどうでしょうか お、DDシリーズの14ピンと20ピンのサンプル出荷始まってるじゃないか。
買っちゃおうかなあ・・・・ ではBINからBCD0〜99変換への最少命令数は5個という事で。
BCD0〜9999への変換は? 車輪の再発明って、のめり込んでるときは楽しいんだよな。
勉強になるしいいんじゃない?
ただ、AVRならではにしてほしいな。 AVRならでは、う~む
ほかなら「、簡単にできることを
いちいちコーディングせなあかんとことかw? 単なる汎用アセンブラネタなら「よそでやれ」って言われそうだろ?
俺も見ててつまらんし。
AVRのペリフェラル使って「こんな変なことしちゃったぜ」みたいなさ。
俺は何も出せないけど・・・・ AVRに他にはないペリフェラルって有ったっけ?
車輪の再発名とかって、すぐバカにす人いるけどさ
すでにある技法を、なぞったり改造するのを、再発名とは言わないよね どうした?
少なくとも現時点で誰もバカにしてないじゃないか。
しかし「すでにある技法を、なぞ」るのは再発明と言われても仕方なかろうて。
それこそ水掛け論だ。
心を柔軟にな。 とりあえずその汎用アセンブラコードで。
入力 VAL1:0 出力 VAL3:0
ser VAL3
LP1:
inc VAL3
subi VAL0, LOW(1000)
sbci VAL1, HIGH(1000)
brcc LP1
subi VAL0, -LOW(1000)
sbci VAL1, -HIGH(1000) - 1
ser VAL2
LP2:
inc VAL2
subi VAL0, 100
sbci VAL1, 0
brcc LP2
subi VAL0, -100
LP3:
inc VAL1
subi VAL0, 10
brcc LP3
subi VAL0, -10
>>37 の延長でしかないけど、17命令。
AVRらしいテクニックと言えば、subi を使った多バイト加算だと言ってみる。 >>47
車輪の再発明ってのは、調べりゃすぐ、
過去に誰かが解決してくれている事が
わかるのに、無邪気にも
「ボクすごい事、考えちゃった」
って言ってしまう行為
まずは最初に調べろよ…という戒め
悪いとかでは無く、恥ずかしいに属する
既にわかっていて、それをなぞるのは
「学習」だから推奨される行為
ただし、オリジナルを出さずに「ボクの
成果」と言い出したら剽窃行為 AVR初学者だけど
ザイログニーモニックに馴れてるので
まだちょっと間違えやすいね
モトローラ「系よりはいいけどw
ldiとldsが頻繁に出てくると、逆に書いてても気づきにくい
一日はまったw >>52
ザイログ風マクロ作れと?
いいかもしんないw 10で割りたいなら6554掛けて下位16ビット捨てるだけ >>49
最適化、2命令削減
ldi VAL3, -1
LP1:
inc VAL3
subi VAL0, LOW(1000)
sbci VAL1, HIGH(1000)
brcc LP1
ldi VAL2, 10
LP2:
dec VAL2
subi VAL0, LOW(-100)
sbci VAL1, HIGH(-100)
brmi LP2
ldi VAL1, -1
LP3:
inc VAL1
subi VAL0, 10
brcc LP3
subi VAL0, -10
LP2 を終える時に VAL1 が必ず 0 になることを利用できるといいんだけどな。
>>57
お題に合わせて実際のコードにしてみてよ。 ご高説をご披露なされたら思いもよらない返しを受けてガチギレなされたぞ! >>58
私も同じような手法でこれまでに何回か、いくつかの桁数でBCD変換したことがある。
いつもFFで始めてたけど、-1の方が数値演算ルーチンらしくてオシャレだなw
桁数が多くなると、(泥臭い方法だな、もっとオシャレな方法があるんだろうな)、と思うんだけど、
(それはまた時間があるときに)、で、そのまま放置プレイになってしまい、進歩しないw 数値演算やると、16ビットでも8ビットに比べてビット数が多いという有り難みがよぉく分る。 全スレで名前が出た AVR Application Note、とりあえず AVR204 について、こうしてみるとあんまり詰められてないように見えるね。
サイズもクロック数も汎用性もどの面で見ても劣ってる。 世の中には、特に遠慮というものが存在しない電電板には色々な人がいる。
前に「プログラムの実行速度が速いとかサイズが小さいとか何の興味も無いわ」とレスされて、
早い、小さいはプログラムの普遍的な目標だと思っていたので、
ビックリした事がある。
その時は、女の子が美人とか性格が良いとか何の興味も無いわ、と言われるよりも驚いたw
>>64
そういえば昔のAVR204(だったと思う)バグがあって改編されたような記憶が。 アルゴリズムが分かりやすいほうがいいかな。コードの書き方も含めて。 >>65
んまあAVRのようなワンチップマイコンだと、コードが収まりさえすれば外から違いなんて分からないから、ただ何かする部品が欲しい人にとってはコードを必要以上にオプティマイズする必要は無いのよね。
コードを書くことそのものを楽しむとか、下のグレードのモデルで同じ事を実現して悦に入るとか、そういうことする人とは目的が違う。
スレではどっちのスタンスも好きに書いていければいいと思う。 >>66
AVR204 は分かりづらいw
なんでこんなにややこしいことして、しかもコード長もクロック数も劣ることやってるんだろって内容だぞ。
>>49 は 1000を引ける回数、100を引ける回数、10を引ける回数を数えるという、至極単純なアルゴリズム。
>>58 は引き過ぎ分の補正を次の位のカウントと統合して補正コードを減らしてて若干ややこしいけど、AVR204 ほどじゃない。 avr204ってなにと、さがしてみたら、見たことあったわ
AVRにBCD演算ないんか?とググったときに出てきたやつだ
しかもフローチャート」だけとかwちょっと笑った
最速追及とか突き詰めていくとコードがどんどんトリッキーになっていって
自分でもわけわからんようになっていくから、なるたけやらないようにしている >>69
え?ソースあるけど?
初期の頃はアプリケーションノートの
ソースで書き方のお作法を学習。 >>70
あれ?そうなの?、こっちで見つけたやつにはコードついて無かったよ あ、そういうことね、文書のほうしかDLしてないわ、ぐぐってでてきたやつって
本来セットなもんがばらけてたりするんやね >>67
AVRのようなワンチップマイコンでは
メモリ容量が少ないから・・・プログラムサイズをできるだけ小さくしたい
機械制御などに使うから・・・実行速度を早くしたい、あるいはリアルタイム性を向上させたい
外から動作状況を眺めてプログラムの良し悪しが分る場合もあると思うよ。
AVRが、ただ何かする部品、では寂しい、
システム・コントローラとしてマルチタスクでも動かしてやってくださいw avrとかC言語でやるのが当たり前みたいな感じだからか
メモリでかいの有るよね、そんなに要る?みたいなw ふつーに考えてさ
16ビットアドレスを超える苦労してまで128KBのROM使うとかさ
考えられない?
じゃあなぜメーカーはそんなチップ出すんだろう?
32bitマイコン使えやって思うかい?
儲からないもの出してバカなメーカーだなあって思うかい?
世界は広いねえ ちょっと前にも出てたけど
AVRの場合
命令ROMに関しては16bitワード単位でのアドレッシングになってるんで
16bitアドレスで128kバイトまでが素直に扱える範囲になりますですよ~ 今、新規で相応に高度なことをするプロジェクトを立ち上げるなら第一選択肢は32bitマイコン
あえて8bitマイコンを使用するメリットはほぼない >>74
個人的な話をすれば1バイト1クロックを削るコーディングか好物だよ。最適化スレなんかあったら居座るね。
でも、ボタンを押したら LED をトグルするとか、チャイムを鳴らすとか、たかだかそんなことに使うこともできるでしょ。50円位からラインナップされてるんだから。
ヘタすりゃディスクリートで組むより安いのよ。
単にそれだけがやりたい人に最適化の面白さを語ったところで通じるわけが無いというもの。
C で書いて LED のトグルするだけでメモリ一杯であろうと 50円で実現できることには変わりないし、最適化して9割以上メモリ余らせたところでクソの役にも立たないからな。
50円のマイコンじゃ無理で100円のを使ったって、プロならともかくアマチュアなら些細なことなんだよ。
やれるかやれないかにしか関心が無くたって、理解できないことじゃない。 バイトアドレスの話を無理やりワードアドレス限定の話にしたり、
高度なプロジェクトの話に限定したり、
いやいや、活気があってよろしい。
揚げ足取りも知ったかぶりもここでは自由さ。
現実として8bit市場は伸び続けてる。
終わる終わると言われ続けているのにね。 32bit になればメモリの使用効率は悪くなるからなぁ
使い分け住み分けはできるよね 8bitチップでもいいから16ビットの加減算くらいはできてほしいなw 今時8bitマイコンよりメモリ利用効率の悪い32bitマイコンなんて
まず無いのにコイツは何言っているんだ
タダの無知?議論の発散を狙った荒らし? >>84
同じ Lチカのバイナリが 8bit CPU と同等程度になる 32bit CPU 教えて >>76
ところでこれは何が言いたいの?
メモリは 64KB あれば充分って主張?
32bit CPU 使え or 使うなということを言ってる?
文脈がよく分からん。 >>85
1Hzで点滅させるとしてウエイトする
カウンターは10Mカウントとか必要だから
32bitプロセッサのほうが効率いいんじゃないの?
CPUクロックが10Hzとかなら別だけど。 >>87
カウンタ単体はそうだろうけど、出力ピンを反転させたりI/Oの初期化をするコードまであらゆる命令のサイズが大きくなって、結局メモリの使用効率は悪くなるんじゃないの?
さらに細かいことを言うと 10MHz を 1Hz に分周するのに必要なカウンタは 24bit で足りるし、32bit では過剰だよね。
結局そういう効率はアプリケーションによるものではあるけど、扱う値のほとんどが全て 32bit ならそりゃ 32bit プロセッサの方が効率いいだろうが、実際は加減や係数なんかで 8bit に納まるような値を使うことは多いからね。
単純な話、ファミコンのゲームだってそれなりの処理をしてるけど、スーパーマリオだって 32KB だし、数KB のゲームだってある。
その今時の 32bit CPU とやらで同じ仕様で同等のサイズで作れるかな? メモリの利用効率の話をしているのにあえて差が出にくいLチカみたいな極単純な処理に
限定しその意義も説明しない時点で重箱の隅を突いているようにしか見えない ハード的な部分もだけど
ちょっとしたモノ作りたいって時に、32bit系はダルいわ
ってか、I/O足らないから、もう一本使おう…ってなった時、
8bitAVRはDDRとPORTのトコだけで簡単だけど、32bit系の面倒くささと言ったら… >>87
一番簡単なLチカを32ビットCPUで書いてみてくれ。
8ビットのAVRでは9命令だった。
***** 前スレなので再掲 *****
フト、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 ;次の周期へ
>>88
LチカはそのCPUのビットI/O制御の能力を示すための「ただの」サンプルだよ。
機械制御では省電力でコンパクトなビットI/O制御能力は重要。 数値演算をやらせたら、ほとんどの場合、8ビットCPUは不利だな、それは間違い無い。
数値演算で負けてたら、32ビットCPUの存在する意味が無いw ま、使い分けて仲良く共存共栄、適材適所でいきましょw Lチカの進化系で赤外線リモコンならどうだろう
最初のマークコードとビットデータはサブルーチンにして
コードは32bitの並びだよな >>90
bit数が多いプロセッサのメモリ使用効率の悪さの原因は、命令サイズが大きいからだよ。
それでも32bit値を多用するならその代償を払って命令数を少なくできるけど、全体からすればそういう場面は僅かでしょ。
小さい命令沢山か大きい命令少しかの勝負を思い浮かべるといい。
Lチカはその一例としてのカウンタもI/Oも使うアプリケーションだよ。
もちろん多少チャカしたような意図が無かったわけでもないけど、そういう物言いなのは
32bitプロセッサはむしろコード効率より処理効率を取ったものであって、コード効率が悪いなんてのは一般論として突っかかるような話ではないからな。
ARMだってその効率の悪さを意識した上で Thumbモードを設けてるわけだし。
ただ、本当にその辺の効率を 8bit並みに高めたアーキがあるなら、ぜひ教えてほしい。 >>98
赤外線パルスは 1T あたり 20個前後だし、32bit データを送信するカウンタ値も 32 でしかないし、コマンド長だって数十バイト規模だから、小さな数もたくさん扱う。
だからあんまり 32bit プロセッサ向けじゃなさそう。
でも逆に 8bit プロセッサのそれより 32bit で同等コードサイズで作れたら、コード効率が悪いというのは撤回してもいいかもしれない。 ちょいと上位の仕事やらせようとするととたんに8bitでは役不足になる
ひたすらインタフェース周りのことをやらせておけばOK >>94
そうなるとプロセッサじゃなくて周辺回路の問題だろ。
555なら流行りのノーコードだぜ! >>97
タイマカウンターの出力にLED繋げばいいじゃん >>93
命令数というなら32bitのほうが出来ること多いな。
「32bitは8bitの4倍使う」ってことかと思ってた。
まあ、AVRは8bitなのに16bit使うけど。 >>103
実際にやるとタイマーを動かすまでのコードが長い上、多分その処理は 32bitプロセッサにとって不利。
けどタイマーでやればプロセッサは sleep したり他の処理できるし周期は正確だしでメリットも多いね。さらに逸れた話だと、
>>102
555 に抵抗コンデンサ付けるより tiny10 でも使った方が安かったりして ポート設定も入れて3インストラクションだな
555で作った4HzをExt clkにして… 32bitマイコンは周辺がリッチ過ぎて初期化面倒くさいよね。
周辺毎にクロックのON/OFFだけでなく分周比設定しなきゃとか。 CISC系のISAは1バイト~だし、Cortex-Mですら2バイト~
AVRは2バイトだなんだから32biだからコードがでかくなる理由にはならない attiny45系のUSI
I2Cモードの場合4bitカウンタの加算トリガと送受信レジスタのシフトトリガソースを
外部クロックにするとシミュレータでは動作確認不能 アホかとHi-zとHiを律儀に区別すんじゃねえ
じゃあってんで擬似的に等価動作させようとI2Cクロック強制トグルビットを操作しても
カウンタアップはするがシフトレジスタがシフトしない
8bitカウンタのサブセット的な使い方しか検証できない摩訶不思議な仕様になってる
ということでUSI二線・外部クロック設定で4bitカウンタの加算と送受信レジスタのシフト
ちゃんとできるか知ってる人いる??? 正直、32bit系に良くある
I/O設定レジスタが、イネーブルとディセーブルとステータスの3レジスタに別れてる奴はメンドイわ…
>>99
arm系機械語だとレジスタへの即値ロード、イミディエートに制限があるから初期設定値をズラズラ~ってなると余計に効率下がる…
メモリに配置した設定定数を読み込む形にした方がってなる
アセンブラで書いたらメンドイわ…
#アセンブラには、任意の値をレジスタに設定する為の疑似命令(マクロ)あるけどね! >>108
8ビットマイコンで任せられるのはせいぜい釣銭の勘定くらいまでな >>111
AVR0 の I/Oレジスタも使いづらいね。
無駄に分かれてたりアドレス大きくてアクセスに 2ワード 2クロックの sts lds が必要だしで効率も良くない。
>>110
シミュレータ、クセがあるよね。
シングルステップ中はタイマ割り込み入らなかったりコードから Iフラグが降りて見えたり。
簡単なコードでめちゃハマったことがある。
オープンソースにしてくれればいいのにな。 >>109
PCなんかだと同じアプリケーションの32bit版と64bit版ではまず後者の方が大きいけど、なんで? 仮に8bit版と64bit版とで 一致する命令のみだけで構成された
アセンブラ時点で同じステップ数の同文面ソースコードによるプログラムだとしても
機械語時点のプログラムをバイト単位で計数したら、
単純計算で8倍になるだろうからじゃね?しらんけど;^p^) >>115
PCのアプリは一般的にサイズ最適化ではなく速度最適化だろ
AMD64の最適化マニュアルでは32bit命令の使用を推奨しているし
IA-32と比べたらレジスタファイルも増えている 8ビットと32ビットの両方が販売されているのは、両方に存在する意味があるからだろうし、
父親と母親みたいに、どちらが大事、重要、役に立つなんて決められないと思う
ま、皆様方には色々と御不満もおありでしょうがw
ここはAVRスレだし、頑張ってAVRを使っていき、みんなに役立つ情報をレポートしましょう。 たまには AVR32 のことも•••
よし、真ん中取って16bitを使おう。 >>93
レジスタ2本、減算2回、条件付き分岐2回、分岐1回だけど8bit故に冗長になっている例じゃね
しかも旧AVR限定で新AVRだともっと長くなるよね
32bitならレジスタ2本(内1本は間接アドレッシング用)、減算1回、条件付き分岐1回、分岐1回で書けるはず アセンブラ使うなら本家本元 8bit PICの 16Fとかのほうが
情報も多いし 品揃えも豊富で おすすめ
AVRはポイしてOK >>112
何を指摘されたのかわかってないみたいね >>120
それ書くのに何バイトになるのかって話でしょ。 つーかLチカでコードサイズを比較って
Hello worldでファイルサイズを比較くらい意味ないよな
適当なライブラリでもコンパイルして出来上がった
コードのサイズをでも比較した方がまだ実践的 >>125
同じコードをコンパイルしても 32bit より 64bit の方が大きくなるでしょ。
そういや、丁度上の方で 4桁 BCD変換のコードが出てたから、32bit CPU のコードで何バイトになるか実例を出してみるのが早いかもね。 ぶっちゃけDhrystoneでコードサイズ見れば良くない? そういやこんなのがあったな
Memory Usage - FatFs Module Application Note
ttp://elm-chan.org/fsw/ff/doc/appnote.html#memory マイコンの能力は演算能力だけじゃないから
そこばっかりこ、だわってもしょうがないんだけどな
H8なんか出力のドライブ能力低すぎてAVRの、ばか力って素敵っとかw
そういうのもあるんだよね >>128
32bit プロセッサでのサイズが小さいのは、ファイルシステム上で扱う数値はほぼ全てが多バイトであることと乗除算数命令を持ってるからだろうね。
8bit用は C の汎用演算ライブラリをリンクしてたりで、基本的に大きいんだろう。
アセンブラで特化して書けばずっと小さくなるんじゃないかな。もちろんそれは 32bit向けのコードについても言えるが。
CP/M は OS 機能込みワークメモリ込みで 16KB(+BIOS)で動くものだったし、ファイルシステムモジュールだけで 12KB ってさすがに作りが大雑把過ぎだと思う。 ちょっと、いんたあらぷと
AVRの水晶端子の浮遊容量が10ピコ前後あるみたいなので
みんなやってる20ピコ接続、無くても行けんじゃね?とやってみたら
今んとこちゃんと動いてる
4MHzでの実験でした
RETI 同じ容量のCを使うとして
C/2 + C浮 = C負荷
になればいいわけだけど、負荷容量が10pFぐらいの水晶はあるしね…
それにしても「AVRの水晶端子の浮遊容量が10ピコ前後」とは、わりとでかいね。 >>130
…32bitプロセッサなら乗算、割り算命令あって当たり前!と思っていた時代がありました…armを実際に触るまでは…
…arm7tdmi…cortex-m3…
割り算出来なくても良いんだよ! よりによってここでFatFsを知らず技術資料すら読まず
「作りが大雑把過ぎだ」とかどう見てももぐりだろw
マイコンの違いを議論できるレベルの知識を持っていないのは
明らかだし、完全にシッタカしている荒らし FATは昔自分で作ったライブラリを使ってるからfatfsは使った事ないわ >>136
どうしてそういう書き方するかねぇ・・・
低レベルの常識さえ持っていない、荒らしはお前さんのほうだと思うけど 異なる時代、異なるプロセッサ、異なるファイルシステム、ソースの移植性、いろいろ違うしね。
非匿名の他人の作品を、匿名の立場で批判するのも感心しないな。
絶対に自分の作品と比較して、批判も反論もされることのない、安全な位置にいるわけだし。 FatFsは国内だけでなく海外でも知名度と利用実績のある数少ない日本製ソフトウェアの一つだよな
日本はソフトウェアが弱いと言われて久しいけどFatFsは知名度、利用実績ともに上位組だろう
そこまで言うなら130はFatFs以上の知名度と利用実績を有する自身のプロダクトを挙げるべきではないのかな
あと自分はMS-DOSからなのでCP/Mは詳しくないんだが、ググったらCP/Mのファイルシステムは
FATではないと出てきた。超古いFATドライバではない物を引き合いに出して現役バリバリのFATドライバを
作りが良くないなどと批判しているって事? >>140
DOS1.25まではCP/Mと同じじゃなかった?
ディレクトリを階層化できなかったし
fatは2.0からだったような… >>140
すまん、CP/M を引き合いに出したのは完全な間違いだ。
元々は MSX-DOS を引き合いに出そうとしたんだけどあまり知られてないと思って、それとある程度の互換性がある CP/M を引き合いに出した。
実際の互換性はシステムコールレベルのことで、ファイルシステムではないね。
ちなみに MSX-DOS は FAT12 でディスクドライバまで含めて 16KB の ROM に入ってる。
>>139
大雑把と言ったことを批判捉えられたならそれは誤解。
別に FatFs の出来の良し悪しではなくて、同じことをするものをアセンブラで最適化するなどすればずっと小さくできるだろうと言ってる。
C でコンパイルしっぱなしの汎用ライブラリまでくっついているであろうバイナリをポンと出してきてることを大雑把と言ってる。元々メモリの使用効率の話なんだから、その点においてポテンシャルを余らせた状態での比較じゃ不充分でしょ。
もちろんそう使うことが多いんだろうからその状態での比較に意味が無いと言っているわけでもない。
不快に思ったならごめんな。 >>142
FatFsの説明を読むつもりは無いのね
メモリ消費の比較に使用されているビルドオプションだとFAT12/FAT16/FAT32はもちろん
サブディレクトリもサポートされているんだが?
あと今のご時世に実用的なコードをフルアセで書き直しても1割減とかがせいぜいだろ
現役の最適化コンパイラはそこまでバカじゃないし、フルアセで半分になったりはしない
それにCortex-M3:AVR=1:2程度とされているが、これもフルアセで書き直したところで
この差が大幅に縮む事はないだろう >適当なライブラリでもコンパイルして出来上がった
>コードのサイズをでも比較した方がまだ実践的
という意見に対して出てきた>>128なので「方がまだ実践的」の要求には十分応えていると思う。
それもFatFsは、標準的C言語という制約のもとで作られたものなので、
(結果的にそれしか許されなかったのだとしても)アセンブリ言語で組むことが許された特定CPUと
結びついたシステムと並べるのもおかしいと思う。 CP/MよりはMSXのほうが知名度はあると思うけどな
え?そこじゃないって?w 上の方で32bitだとでかくなる旨の主張をする人が出てきてそんなこと無いだろって流れからの>>128だからな アセンブラ爺の8biマイコンの効率化と比較するために
32ビットマイコンがあるわじゃないからなw コンパイラが良く出来てるからな
何クロックかかるかを厳密に意識
するような場面じゃなきゃアセン
ブラは出番無し
その時でさえ、部分的に使うだけ ねえアセンブラじい?
AVRはコンパイラに最適化されているて知ってた? >>148
もちろんコンパイラはよくできてる。
CPUによって存在する演算順序やレジスタの選択の最適化ルールなんてもはや人の手には追えないしな。
それだけじゃなく、驚くべきことに
x = (x << 1) | ((x >> 31) & 1);
をちゃんとローテート命令にすることさえする。
ただ、そういう凄さは C の文脈で書いたものをコンパイルする時の話で、最初からアセンブラの文脈で書くならまた違ってくるよ。 >>149
最適化のためにやってんじゃねえから、どうでもいい 今8bitが優位な用途は小ピン(電流を取れるI/Oドライバを活かしやすい)や超ローパワー用途くらいじゃね
ただ超ローパワーは32bitでも超ローパワー品が出てきているのでちゃんと比較検討した方が良い
多ピンになると1ピンあたり流せる電流が大きくてもチップ全体で制限されてしまうからメリットとしては薄れるし
価格差も小さくなってくるし
5V対応も少ないながら32bitにも5V対応品があるし、特にモーター制御とかの計算能力が必要な場合は
8bitには不利な条件になるのでちゃんと比較検討した方が良い
というか大した根拠無く8bitやアセンブラを推している人って井の中の蛙大海を知らずに見えるよ
今風だとArduinoしか知らずにマイコンを語る人みたいな物か マイコンにせよ言語にせよ得手不得手があるんだから、適切に選択するってのは大前提だね。
そこを否定してる人はいないと思う。 >>149
イミフ
CPUはマシン語で処理するしか能がない
きれいなマシン語に最適化する作業はコンパイラの仕事であって
CPUがやることでもなんでもない MCUではまず見ないけどMPUになるとアウトオブオーダ実行は珍しくないよね
これはハードウエアによる実行時最適化と呼んで差し支えないんじゃないかな
PCとかの高性能プロセッサでは標準的な機能だし >>155
x86 の例ではスタックフレームを作るためのベースポインタ BP ってのがある。
これによって関数コールのインタフェースを統一できる上、柔軟な引数を扱える。
もちろんコンパイラのためだけにというわけでもないけど、こういうのはコンパイラによる機械的なコード生成を意識したものだと思う。
AVR のどの辺をコンパイラ向けと言ってるかはよく分からないけど、インデックスレジスタに相対オフセットを与えられるあたりかな?
構造体のメンバアクセスに使いやすいし、上述の BP の代わりにもなるし。
後はそういうインデックスレジスタを何個持ってるのかとか?
例えばこれが 1個だけだと、コンパイラも活用しづらいでしょ。 MCUでもインオーダだがスーパースカラになっていて特定の条件下で1クロックで2命令飲み込む物があるね
これを最適化と呼んで良いかは議論の余地がありそうだけど VLIW なんかはコンパイラ前提のアーキテクチャだと言っていいかな 私がAVRのプログラムをASMで書く三つの理由
AVRのアーキテクチャの面白さに密着したい
小さくて早いプログラムを書きたい
マルチタスクを使いたい
Cプログラマの皆様、こんなジジィでごめんね、ごめんねぇw どんなにコンパイラが最適化しても
アセンブラで作られたものより最適にならないのは自明
AIが進化して人間よりいつも最適な手法で書ける時代になれば別だがな
それを判断するには多言語のコンパイラを比べるだけでいい
もしすべての面で最適化が優れているならば、どの言語使っても同じ容量と同じ実行速度の物が出来るはず。
現実は雲泥の差
そして最適化が優れたものほど、結局低級言語である
すなわちマシン語アセンブラがまだまだコンパイラにとっても変換しやすく最適化しやすい
高級言語をコンパイラが解釈しきれてる段階ですらない BOD止めるといろいろとめんどくさいな
BOD止めてる勇者おる? >>165
書いた内容をマシン語に落とし込む点についてはコンパイラは相当優秀だと思うよ。
x64 のコードなんて最適化ルールが多過ぎて、並の人間じゃ太刀打ちできない。
アセンブラで勝てるのは、C じゃ表現しづらいとか、処理の意図に基づいて都合のよい選択をできるところだな。
特に C ではプロセッサのフラグを意識する処理は書きづらい。
Hフラグ前提で書けばスマートなのにその書き方ができないから、そもそも別のやり方で書くとか。
それをコンパイルしたものはそのやり方での最適であったとしても、そもそも最適じゃないということ。
割り込みルーチンでは Cフラグを壊さないように書き、主処理では Zフラグを使わず Cフラグだけ使うようにすればステータスの保存を省略できたりもする。
他の言語由来の制約では、24bit 計算できればいいのに実質 32bit で計算せざるを得ないとか。
汎用だからこその制約では、特定の数で割ることだけに特化してればいいのに、どんな数でもきちんと割れるでっかい除算処理が付いてきちゃう。
値の特定のビット範囲だけが正確でありさえすればいいという特殊な意図があるとき、C ではせいぜいコメントで書くくらいしかできないけど、人はその意図を組んで一番都合のよい命令を使うこともできる。
手書きアセンブラは単にコンパイラと命令の削ぎ落としを勝負するということではなく、言語の表現上の制約を越えることに意味がある。
ただ、個人的にこの手の説明の最たるものとして出してたローテートの文脈、C じゃ rol を使えないでしょとドヤ顔できたのに、今は普通にコンパイルしてくるからな。
コンパイラの進歩はまじすごいぞ。
アセンブラで書くことの意味を最適化して定義し直すと、それが面白いから、だな。 >>166
消費電力削減でBODはいつも切ってるけど、不具合とかどんなの? 不具合じゃないよ めんどくさいといってる
6clk(+4clk?)+4msとか6clk(+4clk)+64msとか
復帰時間のペナルティー大きすぎだろ SLEEP_MODE_PWR_DOWN中で25μAぐらい リチウムボタン電池で何年か動かす装置を作るなら問題になるね。 ふと思って余所のを見てみた
RX140 - Renesas
>表42.10 DC特性(7)
>条件:1.8V≦VCC≦5.5V, 1.8V≦AVCC0≦5.5V, VSS = AVSS0 = 0V, Ta = -40~+105°C
>LVD0 ILVD 0.04μA(typ) ←電源電圧が閾値を下回るとリセットする機能
タダの電圧監視でもえらい差があるんだな。製造プロセスの違い? へ〜
BOD有効にするとスリープからの復帰が遅くなるんだ。
知らんかった。 >>170
それはリセットからの付加時間だろ
SLEEP_MODE_PWR_DOWNからはそんなにかからないよ 新シリーズならスリープ中のBODはサンプル動作にしたら消費電流下がるね。 これか
Electrical Characteristics - AVR128DA28/32/48/64
>Table 37-6. Peripherals Power Consumption(1)
>IDD_BOD Brown-out Detector (BOD)
> 17(typ) 25(max 85℃) 27(max 125℃) μA Brown-out Detect (BOD) continuous
> 1.6(typ) 10(max 85℃) 12(max 125℃) μA Brown-out Detect (BOD) sampling @128 Hz, including IDD_OSC32K
> 0.95(typ) 10(max 85℃) 12(max 125℃) μA Brown-out Detect (BOD) sampling @32 Hz, including IDD_OSC32K >>176
これを訳してみ
When the BOD has been disabled, the wake-up time from sleep mode will be the same as that for wakeing up fromRESET. >>179
確かに難儀な仕様だね。
なんでそんなことになるんだか。 >>179
何故、例外的な品種から引用するの?
他は違うよ >>181
他がどうであれ今使おうとしてる品種の仕様がそれなんだろ。
何故もなにもないでしょうよ。 なるほどね328pでは60μsに改善されとるわ
てことはさらに新しいデバイスだとさらに改善されている可能性があるわけか ATtiny13でWGM02=1のPWMを使うとOC0Aピンはデューティ比50%の交互出力しかできなくなるけど
デューティ比を自由に設定、かつPWMとそのPWMの逆位相のPWMが欲しい場合は
OC0Bピンを例えばPB0ピンのPCINTで読み取って、読み取る度にPB2・PB3ピンの出力を切り替える(PWM出力直前にPB3だけHIGHにして逆位相にする)方法しかないかな?
周波数は1000Hz程度で精度も大して必要ないんだけど、できるだけマイコンだけで完結させる必要がある >>187
PWM の周波数の自由度は減るけど、WGM02~0 = 011 の TOP値 $FF 固定の高速 PWM モードにして、OCR0A と OCR0B には同値のデューティー比 0~$FF を設定するようにして、
COM0A1~0 = 10、COM0B1~0 = 11 にするとかはどう? >>188
サンクス
CS02〜0の分周設定だけだとどうしても目的の周波数にできないんだよね… >>187
どうしても TOP値を任意にしないといけないなら、PCINT とりはオーバーフローと比較一致B割り込みを使うのがスマートな気がする。
そして OC0A出力と OC0B出力の両方を自分でトグルすればズレも出ない。 >>191
○PCINT よりは
×PCINT とりは >>191
PCINT使うより直接的でピンも節約できていいね
サンクス >>193
品種を変えるという選択肢は無いのだと思うけど、attiny10 は TOP値と比較値A, B を個別に設定できるよ。
出力に 2ピン使ったらあと 1ピンとリセットピンしか残らないけど。 8ピンSOICならtiny0シリーズ以降は遥かに高機能。
14ピンの足を間引けば変換基板要らずのSOIC8ピンに化ける。 パラメーターいじっても反映されないので、どこ間違えてんだと一日ハマって
ふと見ると、パラメーター取り込むルーチンがコメントアウトされてた orz >>196
コンパイラにアセンブラソース吐かせて追いかけて該当コードが無いことを確認して、コンパイラの最適化バグだと騒いだ後で、
コメントの閉じ漏れに気付いた俺が通りますよ ではAVRの初心者向けASMプログラムの演習問題を。
CPUで機械をコントロールするときにビットI/O制御は必須になります。
たとえばスィッチオンでモーターを駆動し、リミットセンサを検出したら停止するとか。
AVRのポートDのビット2と3が入力、ビット4が出力の時、
それらのAND出力、OR出力、ExOR出力はどう書けばよいでしょうか?
(Cプログラマ、熟達プログラマ、興味の無いプログラマは無視してください) ブログでやるべき内容だな
「へ〜スゲー」とか言われたいの? 他のピンを使ってるかどうかでも違うしな。0シリーズなら出来ることとか。 >>201
少しでもAVRを始める(知る)キッカケになればと思って。
他のCPUと比較して欲しい。 >>200
お題の内容がよくわからない。
たとえば、それらのAND出力ってなんのこと?
PD2 と PD3 の AND を PD4 に出力するということ? >>206
この動作なら
in TMP, PIND
subi TMP, -(1 << 2)
andi TMP, 1 << 4
out PIND, TMP
でいかが。 >>208
サイズもクロック数もこっちの方が分かりやすいかな。
in TMP, PIND
subi TMP, -(1 << 2)
sbrc TMP, 4
sbi PIND, 4
OR のパターンならこう。
in TMP, PIND
subi TMP, -(3 << 2)
sbrc TMP, 4
sbi PIND, 4 >>209
ああ、へんな文になってた。
サイズもクロック数も同じだけど、こっちの方が分かりやすい、ね。 ビットパターン作るときビット2を立てるで、つい値を2に設定とか、たまによくやるよね >>215
それ興味深いね。
どう使えるかあんまりアイディアが出ない。
なんか面白い例、あったら出してみてよ。 SPIからデータ送信するだけでCCLがWS2812Bの波形に変換してくれるやつとか? CCLってなんぞ?、というわけでググってナナメ読みしてきた
外部でやってたロジックを内部に取り込めるけど真理値表で
表現できるものだけ、で合ってる?
、それでも便利っちゃあ便利かも、ためになるわあ 「ブログでやれ」と主張するのも自由だし、ここでやるのも自由よ
賛同した人はブログでやれば良いし、ここでええやんと思った人はここでやればええ(´・ω・`) ちょうど外部にロジック追加しようとしてたんで
渡りに船とばかりに調べたら
mega328には無かった、orz ちょうど1ゲートロジック欲しいところに使ったわ。
小規模量産で細かいIC1個無くせるのは助かる。 >>218
FFも使える
ごく小規模なFPGAが入っていると思えばわかりやすい
これでOPAやSCが入れば…PSoCになっちゃうな VHDLとC言語のMix環境が欲しいな
VHDLがあれば論理デバグも完璧だ >>217
この使い方は面白いね。
ソフトでやることもできるけど、まさに使いどころって感じ。
>>187 こんなので単純に逆相が欲しいなんて場合にも使えそうだね。
他には、簡易昇圧回路も作れるかも。他デバイスのプログラミング電圧 12V 生成とか。
出力電圧を分圧して入力ピンにフィードバックして、それでスイッチングクロックをゲートする感じ。 PICの話題で盛り上がっているところを申し訳無いが、
AVRに話を戻して、AVRのExORのサンプルを。
レジスタ(R0〜R31)を使った処理も書けるけど、
ここではAVRらしくI/Oビット検査命令、I/Oビット操作命令だけを使ってみた。
とは言っても、入力チェックと出力オン・オフをベタッと並べただけで何の工夫も無いがw
sbis PinD,PD2 ;ビット2は1か
rjmp PD_EOR1 ; No 0, bit3検査へ
sbis PinD,PD3 ; Yes 1, ビット3は1か
rjmp PD1_EOR ; No 0, 1出力へ
rjmp PD0_EOR ; Yes 1, 0出力へ
PD_EOR1:
sbis PinD,PD3 ;ビット3は1か
rjmp PD0_EOR ; No 0, 0出力へ
PD1_EOR:
sbi PortD,PD4 ; Yes, 1出力へ
ret
PD0_EOR:
cbi PortD,PD4 ;0出力へ
ret
長いねw >>228
in TMP, PIND
subi TMP, -(1 << 2)
sbic PIND, 4
com TMP
sbrc TMP, 3
sbi PIND, 4
AND や OR に比べると長くなっちゃうね。
ちなみに CCL の話は PIC じゃなく AVR の話よ。AVR0系とか。
このお題も CCL でやれると思う。 AVRのAND、ビット制御版
sbis PinD,PD2 ;ビット2は1か
rjmp PD_AND1 ; No,0出力へ
sbis PinD,PD3 ; Yes,ビット3は1か
rjmp PD_AND1 ; No,0出力へ
sbi PortD,PD4 ; Yes,ビット4に1を出力
ret
PD_AND1:
cbi PortD,PD4 ;ビット4に0を出力
ret
ORはもう省略 >>230
スキップをうまく重ねると rjmp をひとつ削除できるよ。
sbic PinD,PD2
sbis PinD,PD3
rjmp PD_AND1 >>229
スミマセン、0系とか使った事がありません。
TMPというR0〜R31ではない単語を見て条件反射してしまいました。
いやぁそれにしても、思わぬ所で私の無知蒙昧ぶりがバレ、
化けの皮が剥がれてしまいましたね。
蟄居して勉強します。(それにしても言葉が古い!)w >>232
ああ、すまん
TMP はリテラルで操作できるレジスタ(R16~31)ならなんでもいい。
.def TMP = R16
みたいにしておく。
これはこれまでの AVR を念頭に置いたコードだよ。 >>231
なるほど、ではビット制御ANDは最少7命令という事で。
>>233
私もレジスタに固有の名前を付ける事は普通にやっています。
熱さで集中力が無くなっていたのかな? AVR触り始めて、もう数日
subiとsbciは有るのに
addiとadciはなんでないんだろう
逆ならまだわかりやすいんだが
1足すために-1を引くとか、嫌すぎ >>235
不思議だよねぇ
アセンブラでのループカウンタはカウントダウンの方が都合がいいからかな?
dec r だと Cフラグ動かないし。
でもそれより、eori が無いのが納得いかない。
そして cpse がなんとも使いづらい。
cpne だったらと思ったことが何度あるか。 >>235
「どうせコンパイラがマシンコード吐くんだしどうでもいいや」ってことらしい。
+1と-255は動作同じだし、フラグの違いもコンパイラが吸収してくれる。
アーキ設計は数十年前なんだぞ。 >>217
ちょうど最近調べながらお世話になったやつです。
概念分かったけど、理解は浅くて。
チャタリングキャンセルとかパルスカウント、パルス周期測れると助かります >>237
どうでもいいにしても、addi と subi のうち何故 subi を取ってのかってことでしょ。
subi r, -n
は加算の表現として遠回りな印象だけど、
addi r, -n
なら減算の表現としても妥当な気がしない?
本当にどっちでもいいなら addi を取るんじゃないかなぁ >>238
チャタリングキャンセルも1クロック幅限定だから、チャタリングというよりは組み合わせ回路のデグリッチに使う感じじゃないかま。
カウントや周期は CCL じゃ計れないと思う。 QTouch使うようになってから
チャタリングとかスイッチ寿命とかで
悩まなくなった 電池使ったセットでQTouch動かねえ・・・
スマホとかどうやってんだ?
机において指先だけチョンとやっても完ぺきに動きやがるのに。 バッドの絶景が悪いんじゃね?
スライダーもボタンも電池、アダプタ
どちらでも問題なく動いているが… >>237
どうせコンパイラがやってくれるからはよく言われるんだけど
そのコンパイラは人が書いてるのになあとは、思わない? どうせ [何か人工物の名前] がやってくれる。(あるいは があればできる)
でもその [何か人工物の名前] は他人が作ってるのになあとは思わない?
ふつうにそういうことはあるのでは。
他人が作っているものを自分もできるようにならねばならんとしたら、
才能も時間も環境もたいていの人には足りないものばかり。 思わないな。
コンパイラを作るのに若干ややこしかろうが、
それでデバイス構造がシンプルになるし、コンパイラを「使う人」にはデメリットは無い。 そういやトースターを自作しようとして挫折した話が本になってた。 RISCでの商品開発は高級言語が当たり前って時代に作られたのに、
なんでアセンブラ趣味の人間を考慮したデバイス作らにゃならんのだ?
マーケティング的に全く無意味だろう。
おかしいと思うならAVR使うのをやめればいいだけだ。 誰もそんな極端言ってないんだがw
最初のコンパイラは誰かに書いてもらわんといけないんだから
人間を無視していいって訳にはいかないと思うけどね
もしかしてアメリカ人にとっては、+ -1より - -1のほうが自然だったりするのかな?w 8bit系としてはAVRはかなり素直なISAじゃね?
80系なんて被演算レジスタが基本Aのみだし
AVRで文句言っていたら発狂しそうw yacc とか lex がある程度やってくれるんじゃね? 自分が知っているISAでアセンブラが書きやすいのはRXかな
Thumb2(Cortex-M)は短縮命令を使おうとすると面倒 >>237 >>239
即値減算命令SUBIを使う理由はキャリ-、ボローの違いでは?
10進演算の加算、減算を自分で書いてみればその違いが分ると思う。
CPUを設計する人が、どうでもいいや、と適当に決めたりするわけが無いw >>247 >>249
再掲するが、
> 私がAVRのプログラムをASMで書く三つの理由
> AVRのアーキテクチャの面白さに密着したい
> 小さくて早いプログラムを書きたい
> マルチタスクを使いたい
Cユーザーにデメリットは無いのか?
Cでは実現できない仕様があるが、どうする?
https://pastebin.com/hZ4EiF7m
https://pastebin.com/ZYFYsR3S
必用に応じて使い分ければいいんだよ、頭を柔軟に適材適所 >>256
どういうこと?、もうちょっと詳しく解説してほしいぞ >>251
z80は16bit演算器も有ったか
レジスタ少ない割には、使い勝手よかったよ Cできないことが無いんなら、インラインアセンブラの存在意義は? Cでできないことはない、ってことはない。
現実問題、アセンブリ言語だけですべてができる(あるいは、やっていいい)、ってこともない。
ひとりが広範囲なプログラミングという技術すべてをカバーできるわけではない。
適材適所とか、分業でいい話。
必要なときに必要なことを学んだり、できる人に委託すればいいこと。
ともかく、自分がやっていることこそ、ほかのことに比べて尊いこと、価値があることと言うのはおかしいよ。 >>262
Cはアセンブラの機能も含んでいるって事 >>265
インラインアセンブラはcだって、ちょっと無理筋だよねw プログラムを書き換えながら実行させるという大技はアセンブラオンリーでなければ無理 >>256
addi で減算を行った場合のボロー、subi で加算を行った場合のキャリーは本来の意味の反転が Cフラグ(およびHフラグ)に設定されるだけで、それが分かってればどっちでも問題なく書けるよ。
キャリー、ボロー有りの多バイト演算だってね。
ようするに、使う方から見れば addi と subi どっちか一方があれば実質的な違いなんて全く無いのに、なぜあえて subi を取ったんだろう?というのが疑問点だよね。
10進演算では addi じゃ効率が落ちるケースがあるの?書いてくれる方が早いと思う。
ただ、もしかすると cpi と演算器を共有してたりするのかもと、今思った。 >>268
何が疑問って言うと、レジスタ同士は加算も減算も有るのに、なんで直値は減算だけなんだろう?ってとこだね >>269
オペコードのサイズは有限だから、リテラル演算のためにもういくつかの演算を割り当てることができなかったんでしょ。
その結果代替手段のある命令は削られたというだけ。
eori すら無いんだぜ。
eori があれば andi や ori はどちらか一方でも 1命令増で代替できるけど、eori は andi や ori じゃ代替できいのに。
まあレジスタひとつ潰して 1命令増で対応できるから、使用頻度的な観点で eori を見送ったのだろうけど。 >>270
そんなところだろうとは思うんだけれども
なぜ減算のほうを取った?だよね
で、英語圏だと減算のほうが自然?っとかって疑問が湧いたりする
どうでもいいっちゃどでもいいけど、まあレジスタ使っておくれよというメッセージかもしれないw
eoriはあればよく使うよね、ほんと 時代についていけない
アセンブラ原理主義爺ウゼェ
勝手にお題作って勝手に回答
ドヤ顔しようと思ったら、
聞いたこともないCCL出されて
ご機嫌ナナメ >>272
最新の話題を提供すればみんなついてくるぞ そういえば昔は
Cは高級アセンブラなんて言われてたなあ(遠い目
みんな同じ穴の狢よ、仲良くしようぜw >>274
そんな言われ方は知らないが
インラインアセンブラばかり使ってる人の揶揄かね?
>>272
CCLでご機嫌ナナメの人ってどれ? >>275
>>CCLで
CCLでドヤろうと思ったらサラッと流さrてしまったので
>>272がご機嫌斜め >>261
じゃ口先だけではなくて、実際にサンプルのtiny2313+LチカをCで書いてみて、
SWのチャタリング除去とLED点滅と簡単なゲームだけだから、
2,3時間もあれば書けると思う?
まだCプログラマの誰も書いてくれないんだよね。
多分、興味無いとか、時間が無いとかレスするんだろうなw
しかしなんでそんなにアセンブラを嫌うかなぁ?
親の敵とか、彼女を取られたとか、カーチャンが全財産寄附して破産したとかなら分るけどw
あっ、もしかしたらアセンブラが嫌いじゃなくて私が嫌いなのかな? あれ? 抜けてる
2,3時間もあれば書けると思う?
→2,3時間もあれば書けると思う、多分? 事あるごとに絡んでくるとか
嫌いどころか大好きだろうw >>271
前に10進の加減算ルーチンを作った時、
(2進加算キャリーフラグは9からではなくてFからだから10進演算には使えないなぁ、
2進減算命令なら0からのキャリー(ボロー)だからそのまま10進にも使えるぞ、
9からのキャリー増設は2桁分が必要で、フラグレジスタを2バイトにしなければいけない、
コアを設計した学生たちも悩んで妥協したんだろうな)
などと思ったのです。
何か根本的に間違えているかもしれません、私の考えは正しいでしょうか?
そういえば遠い昔、私が勉強したCの説明本のインライン・アセンブラの章の最初に、
「CPUが持つ機能を余すところなく発揮できるのはアセンブラだけです。
Cプログラマといえどもアセンブラな熟知していなければいけません」
みたいな事が書いてあったナ。
私もDMAなど追加して欲しい機能はいくつかありますが、
では今週の私の標語
「無いものを欲しがるよりも、今あるものに感謝しよう」w
(・・・オチは難しい) >>281
その発想はなかったよ
bcd演算ない時点であきらめて
バイナリーのままぐりぐりしちゃってるから >>281
仮に subi が無く addi を使ったとしてもコード長もクロック数も手順も変わらなくない?
単に Cフラグと Hフラグの論理が反転するだけだし。 >>277
CCLの具体的な実装でも出してドヤってくれれば参考になるんだけどな。
何より、ここで具体的な実装出してくるのはアセンブラーしかいないってのは何故なんだろう。
コードの話じゃなくても作ったものの話も楽しそうだし、実践してる感のある話が欲しいね。
みなさんそういうのはブログでやっちゃってる感じ? 爺さん、煽られ耐性のなさが異常
もうちょっと上手くやれよwww >>241は自己容量型
>>242は相互容量型
この違いじゃね? >>278
しかしなんでそんなにCを扱えないのかなぁ? c,c,c,cうるさいなあ
それ自体じゃほぼ何もできん言語cがどんなに素晴らしい言語か語っていただこうじゃないか ここで価値を議論してもたいして意味がありません。
たまたまここにいる議論の強い人が議論に勝つだけで、
価値が高いものが価値が高いという結論を導けるわけじゃありません。
アセンブリ言語にしかできない例、アセンブリ言語の方が有利な例で比較しても
アセンブリ言語の方が良いという結論にしかなりません。
高級言語のメリットは「それしかできないことがある」だけで語られるわけでもなく
経済性を含めた広範囲な条件で語られるべきことです。観点に多様性があれば、結論にも
多様性が出てくるので、一つの結論にもなりえません。
長くなりそうなので下記一行にまとめます。
アセンブリ言語とC言語。条件なしにどちらが優れているかという結論が得られると思う人はあほです。 なんか勘違いしてるようだが
C対ASMなんて議論してない
cでやれcでやれうるさいから
cの素晴らしさを語ってもらおうと言っているのだ >>284
実践スレはある。脳死状態だから、「あった」が正しいか。
>>289
プロならどちらがより金儲けできるか
アマならどちらがより楽しいか
でいいのでは? >>290
Cの素晴らしさをここで語らせても仕方がないのは同じ。
Cでやれと言ってる人が、あなたが納得するCの素晴らしさを語れなかったとして、何が得られるのかね?
客観的に見てみるといい。「相手が先に煽ってきたから煽りかえすんだ」になってる。 Cでやれとは俺は言ってないぞ。
ただ、なんでいいとこどりで使い分けられないのかなとは思った。
アセンブラを使う理由って、単にCを使いこなせないだけなんだろ。
新しいことを学ぶことなく加齢が進んじゃったんだね。 >>291
>プロならどちらがより金儲けできるか
そんな単純なものではない。
それを言い出すと、
収益がイマイチな電子の世界でプログラミングをしているのはダメで今はプロの社会人なら経営だろう(無茶むちゃ)
みたいな話になる。
アセンブリ言語でこそできる部分もあるだろう(ここでそれが何かを結論づける意味はない)
仮に99.99%の人が必要としないものでも価値がないということはない。
取り組む人の数の大小や全体の傾向で「どちらがより」と考えるのはあほです。 asmやってんのはasmのほうが面白いからだが、なんか文句ある?
いちいち余計な一言つけてくるやつって人間としてクズだと思うわ >アセンブラを使う理由って、単にCを使いこなせないだけなんだろ。
>新しいことを学ぶことなく加齢が進んじゃったんだね。
憶測に基づく煽り。なんて不毛。また髪の話をしている(AA略 アセンブラは楽しい、アセンブラで書くとこんなメリットがある、
Cでは実現できない仕様もアセンブラでは実現できるって書いたら、
♪そりゃもう大騒ぎさ、アンタCの何なのさ♪
もしかしたら騒いでいるのはごく一部の人間かな?
さぁ昼食兼用朝食を食べたら、今日も楽しくASMしまくるぞw アセンブラ爺さんは敗戦を認められずにジャングルを彷徨う旧大日本エレクトロニクス戦士
そっとしておいてやれ
ここは爺さんのジャングルでもあるのだ 敗戦とpか何言っちゃってんの?
韓国人かよ、戦ってないのに我々は戦勝国だとか言っちゃうのな >>293
お前がアセンブラ使えないってのがわかるレス
新しくアセンブラを学んだら?
学べるはずだよな?自分で言ってんだから 聞いてくれ
昔PICスレで>>257さんと仲良く??なりたくて(*´з`)チュー
自動車の模擬ライトがCで出来ちゃった??って発言したんだけど・・・
なんかスルーされちまった(;´・ω・)
このモヤモヤした気持ちどうしたら良いのやら・・・
\(^o^)/ < もしかしたら恋なのかもしれない >>303
そりゃもちろん、
申し分けない、私が悪かった、ごめんね、許してください、
と平身低頭して謝るしかない。
マルチCPUかと思った。
PIC18では可能かな、PIC16では難しいなという思い込みもあったし。
貴君は優秀で実力があるので、可能ならtiny2313のCで書いて、
どこかにプログラムを上げてくれ。
期待している。これでもう無益な論争を終わりに出来るし、私も安心して死ねるw すまんね、オチをつけたいという欲望にどうしても負けてしまう・・・ マクラを一つ
え〜、他人のレスをちゃんと読まない人や
人の話をちゃんと聞かない人って世の中にいますな
そんな人間が二人揃うとこんな具合です
「オイ、八公よ、向こうから来るのは与太郎じゃ無いか」
「何言ってんですか熊さん、イヤだな、あれはどう見たって与太郎ですよ」
「そうかい、しかしそっくりだな、世の中には似た奴が3人いるっていうからそれか」
:・・・
「ナンですか、熊さん、八っあん、無視して通り過ぎるの止めてくださいよ」 技術を持ってる人はその技術を持っていることでにっこりしていれば、
その技術が必要なときに求められて、敬意を捧げたいと思う人からは敬意を受ける。
技術を持ってる人が異なる技術をクサしていれば争いが起きるし、頼れば解決することでも
互いにけったくそ悪い思いもあって頼れない。
同じマイコンで異なる技術を持ってるなら普段から仲良くやってほしい。 >>305
AVRのスレにPICのコードを貼ると!みんなに虐めてもらえる\(^o^)/
https://pastebin.com/q4cxhf0R (コード)
https://i.imgur.com/49IFiMB.png (回路図)
PIC12F1572(8pin)使ったのよ
・電源電圧による明るさの変化の低減
・インダクタ使用による電力効率アップ
・FALSH自己書換での設定保存
・オートパワーOFF機能
・割り込み未使用
正直なところROMが足らなくゲーム機能が一部のみ(;´・ω・) >>309
まあこれよね。
普段 C でやってる人が解決策を探していて、それがアセンブラなど別のテクニックで解決できたなら、聞いた方も教えた方もハッピーで超有意義だよね。
ただ今時のマイコンはパワフルだしクラスアップして対処してもそれほど高くないしで、C じゃ不足するケースがなかなか無いというのも事実だろうね。
であれば結局、AVRスレでは各々が好きなテクニックを披露して自己満してるのが平常運転ってことでいいんじゃないのかな。 選択肢が一つになること自体がいろいろなミスや不運の積み重ねの結果でしょうね。
現実問題として、半導体の入手が不安定になってる今は、回路設計からやりなおさないと
生産を継続できないケースだって増えてます。基板をアップデートすることに以前よりは
抵抗はなくなっていると思います。(個別の組織の事情は別として、世間全体で) ミスしないひとなんていないんだから、
それをカバーすんのも、?技術屋の、お・し・ご・と デバイス変更となると C の方が有利だね。
普段アセンブラで書くけどそこは認める。
アマだから作り直す、というか量産とかしてないけど、プロだとそういうメリットは見逃せないだろうね。
この間はどうしても ROM が足りず違うモデル使って盛大に書き直したよ。
コードじゃなくデータが大きかったから最適化じゃ無理だった。 データが収まらないだけなら某氏よろしくSDカードを繋げば良いじゃない >>323
外部ストレージ使うにもそれをロードするメモリが無いからねw
シーケンシャルアクセスだけなら可能性はあるけどそういうものじゃないし、データがでかいと言っても 1KB ちょいくらいなのよね。
それで元々 1KB ROM だったのを 2KB ROM のにした。
秋月で買えた手頃なのが attiny 202 で、旧来の AVR と I/O の扱いが大幅に変わってて難儀したよ。 さすがにデータ容量ミスるってのは、ないような
プログラム容量どうやって見積もってます?
経験値? 書き込み器用にUSBの延長ケーブル買ってきたら不良品だったでござる
もっかい行くのめんどうだったんでジャンクひっくり返したら前に買っておいたのがでてきた
けど長げ~、2~3mはある、邪魔だ >>327
自分の場合は経験則だけど、>>320 のケースは既存のを転用しただけ。
元々はデータが 500B くらいだったんだけど、少し細かいことをやりたくなってね。
やることはシンプルだったから足んなきゃ足りるモデルに変えりゃいいくらいの気楽な感じよ。
データのエントロピーは低いからフォーマット変更して 1KB ROM に押し込めるかもと思ったりもしてたんだけど、RAM も潤沢じゃないから複雑なフォーマットの展開は難しかったな。 足りなきゃ増やせばいいという環境で育つと
プログラム技術が全く向上しなくなり競争力を失う アマチュアなんでね。大抵一点ものだから、その都度使うものを選んでるだけよ。
それに、最初から余剰なスペックでモノ作るのもどうかと思うでしょ。 >>330
狭い観点からの煽りはかみ合わない喧嘩にしかならないよ。 そういう観点で伸びる力もあるし、違う観点で伸びる力もある。
みんなが同じことを学ぶ必要もないし、そんなことをしていたら取り組む時間も有限だから
同じような到達点が限界になる。
電子産業は、分業が進んで大きい産業になっている。
たぶんこれからも同じように進んでいく。
すくなくとも、アセンブリ言語であれ、C言語であれ、
自分ができることは他人もできるべき、
自分ができることの能力で他人の能力を評価する、
というのは、分業が進んで大きい仕事ができるようになること相いれない。
もっと自分がしていないことの価値を認めて、それをしている他人を認めよう。 設計時にROMもRAMもマージンがほとんど無いって時点でオナニーやろw >>335
足りない時はどうやって対処してるの?
あと一息の不足で安易にモデル変更するならもう少しがんばれよって所だけど、5割オーバーはなかなか厳しいなぁ
メモリがあればデータの簡易圧縮もできそうなんだけどね。
ちなみにモデルは attiny10 だよ。
それを attiny202 にして、今度は ROM が余るから仕様をリッチにしてコードも 500B弱から 900B ほどに増やしちゃったけどね。
増やしたといっても、そのまま移植するだけで 700B になるという予想外もあった。
2ワード命令の効率の悪さは侮れないな。 >>337
オナニーだよ。そもそも手段ではなく目的が attiny10 を使うことだったりするし。
これで何ができるかを考えて目一杯詰め込む感じ。
だからいつもいっぱいいっぱい。 俺はもうスキル上がらなくていいから、短時間でチャチャっと作りたい
潤沢なメモリでチャチャっと作りたい あ、風俗はじっくりネットリ楽しみたいです。まだ行ったことありません。 積算能力が大事なんだよ
どれだけの容量が必要か、プログラム組む前に電卓叩いて弾ける力 もうちょっと具体的なこと言ってくれるとみんなよろこぶ それが大事といっても要求される精度はまちまち。
世の中のプログラムで、そういう力が必要とされることもあれば、低い精度での見積もりですむこともある。
10なのか100なのかと問われることもあるし、10なのか11なのかと問われることもある。
それにしても、パソコン使ってても電卓使うよね…。
Excelが16進数をもうちょい簡潔に使えればいいのに。 ウィンドウズの電卓が進化してる
プログラマーモード便利ええわあ >>346
すごく進化してるね。
通貨モードなんて知らなかった。使うときにネットでレートを更新するんだ。 >>343
実際どうやって計算するの?
使いそうなライブラリのサイズを積み上げる? macの計算機も随分昔からそういう機能はあるよ
標準モード、科学計算モード、プログラマモードや各種換算機能とかかなり充実してる CANONのF-502ってプログラマー電卓を30年以上も愛用してるな プログラマーモードで一番便利なのはビット反転キーパッド 自己解決した、オペランドが必要系だった
シフト記号 シフト数 イコール
これでいけた
個人的にはシフト記号押した瞬間に1ビットズレのほうが使いやすい気がするなあ 秋月にQFPの328の在庫が復活してた。
100個しかないけど。 >>286
その辺ちゃんと解説している技術資料ってある?特に相互容量方式は難易度が高いわりに資料が少ない気がする
自分が知るかぎりだとRenesasとMicrochipあたりのアプリケーションノートがマシそうだけど
俺得仕様の相互容量方式タッチセンサを設計&実装するのに十分には見えない
LTspice等の回路シミュレータでシミュレーションしようにもモデルの組み方もよく判らないし 見たことない。
ATMEL時代からのドキュメント全部読んでもQmatrixの設定パラメータに関してはロクに説明していない。
実装に依存するから自分で調べろってことだと理解してるよ。
ただ、相互のほうが周囲の影響少ないみたいなこと書いてあるけど、
大地と縁遠い電池セットだと相互は安定しない印象はある。
数種類作っただけで、偉そうに言うほどの実験はしてないけどね。 AVRで時計作って日差0.5秒くらいまで煮詰めて
にやけてたら、今朝から数時間で1秒くらい進み始めた
机から3回くらい落としたから、それで水晶が狂った?
それとも連続通電でAVRの発振回路の特性が変化したのか?
う~ん、謎だ
水晶くわしいかたいませんか? >>358
ディスッテもいいから、理屈も合わせてたのむ >>361
100ppmも動いちゃってるから温度特性じゃないと思うんだよね 恒温槽は高いけど そのAVRマイコンで ヒーターをON/OFFして、
一定温度になる様にたもてばいいんじゃね? しらんけど >>363
それはすでに検討してる、日差1秒以内になってくると、そろそろ温度の影響が目立ち始めるから >>365
それなw、考えたよ
でも校正マップ作るのに恒温槽が要るよねってことで
どうせ作るなら発振器を恒温槽に入れたほうがいいんじゃね?ってなった >>366
水晶でやるのやめて、AC の 50/60Hz を数えてみるとか。
あるいはそれで校正マップを自動作成させるとか。 ん? もしかして外部水晶駆動?
ありえない
にせものつかまされたのでは?
水晶のメーカー晒せ >>367
AC電源の周波数は長期的に帳尻が合ってるだけで、短期的にはめっちゃ狂ってるので
日差1秒なんかの校正には、めちゃめちゃ長い時間が必要で、使いにくいです
生活時計に日差1秒とか無くてもいいんですが、もはや技術的興味でやってますw >>368
日本電波工業ってことでしたが、水晶単体で送られてきたので
くわしいことは、わかりません うん、水晶とは思えない精度の悪さだね。
使い方が悪いとしか思えないなあ。
・コンデンサがF特性
・負荷容量の不整合
・パターンの引き回し
あとなにがあるだろ >>371
それって、周波数が突然変わっちゃうって形で現れるんですか?
その辺が原因なら、逆に解決しやすいのかな PTCヒーター使うと恒温層も簡単に作れそうだね。
でも少なくとも気温より高い温度を設定しないといけないから、40~50℃くらい必要なのかな。
電気食いそうだね。 >>373
夏場冷房かけてないと室温45度くらいくので45度くらいの恒温槽いるかなってとこです
極寒時に45渡まで上げるのも大変そうですよね、どのくらいのヒーターが要るのか
熱抵抗の計算とかふだんやらないからぜんぜんピンときてません >>375
高性能な断熱材ってなかなか無いんですよ
基板からも逃げちゃいますしね、え?立体配線?w 良い断熱材を、良い物性をもった物質(+)を探すのも手だろうけど
逆(−)に考えるんだ 真空ポンプ買って、真空断熱しようぜ(^p^)
AVRの石自体の放熱も問題になるかもだけど…まぁそこは基板とスタッド経由で; >>380
真空ポンプなら有るけど
ちっこい真空容器作んのめんどすぎ アメリカ人は同時に出せないそうだ、若い頃に米国留学したあるTVタレントが
信じて貰えないからトイレでアメリカ人に見て貰った、と言ってた 水晶とAC100Vパルスを組み合わせて、短期と長期の精度を高めるっつうのはどう?
具体的にどうやったらいいのか分らんけど、互いの傷口を舐め合うみたいな。
・・・舐め合うって、もうイヤラシいなw 1年前に校正したRTCモジュール引っぱり出したら
1.5秒しかずれてなかった。
0.05ppmか >>389
んとね、基準にするものはGPS受信機がすでに乗ってるんですよ
なので今の精度でも時計としては成立しちゃいます
あとは素の時計として、どれくらい行けるのか技術的興味だけです >>391
基準があるなら温度センサ乗せて校正マップ作っちゃえばいいじゃん。 おや、千石電商でAVR64DB32の基板付きが出てら。 >>291 >あとは素の時計として、どれくらい行けるのか技術的興味だけです
水晶で精度を追求してみたいってことかな?
金をかければかけるほど精度は上がるんだろうね。 >>395
そんなとこですね~、ただし金をかけずにw
100ppmジャンプみたいなことが頻繁に起こるなら無駄っぽいですが 温度ドリフト-40度→80度10ppm以下レベルの水晶買ってきて付け替えて切り分けだな 発振子自体が腐っているのか元々の性能が足りないのか
切り分けしなきゃ先へは進まないなあ
秋月にトヨコムのよさげな奴売ってるよ
イマドキは表面実装品でないとお高くなりますが 並行してイロイロググってみた
温度ドリフトのなかで周波数が連続せずジャンプするとい現象は60年代から知られていたらしい、ただ10ppm代のようだった
原因は水晶の加工精度にあるらしい、ということは、現在ではかなり改善されてるんでしょうね
加工精度の問題なら、ハズレを引いたという可能性も濃厚ですねw イマドキはMEMSでプログラミングの時代だからなあ 非水晶で時計用の精度が出る発振デバイスってあるの? 高級腕時計だとクォーツ自律でも年差1秒のがあるみたいね。すげーな。 前に年差10秒に惹かれてセイコーGS買ったけど、
結局、カシオの電波腕時計リニエージに落ち着いた、
正確、電池不要、漢字表示、安い。 >>407
年差10秒の精度なんて不必要なものだけど、そこに注ぎ込まれてる技術に惚れて買うものだからな。
一方で高機能を安く詰め込む技術もまた奥深いから、そっちにも惚れちゃうよね。 年差15秒の高級時計買ったら
4年後に30秒進んでいたので初めて調整した 掛け時計5分進んでるけど直そうと思わない。
急に直すと混乱するから年末にでも合わせる。 引っ越したときに合わせたAC100V電源の数字パタパタ時計、
15年後に新築して出ていくときに、取り外そうとして見たら合ってたので驚いた。
秒表示は無いので、もしかしたら何十秒も狂っている可能性はあったかな?
tiny2313でJJYの時刻表示&ブースター(リピーター)を作ったことがある。 あれは 50Hz/60Hz を間違えなければ
停電しない限り調整入るだろ マトリクス=ダイナミック点灯じゃないから
ダイナミック点灯やらなきゃ、320倍ながさなきゃとか考えなくていいからね レジスタの全ビットが0だったとして、ビット0だけ1にしたい場合
「レジスタ = 0b00000001;」と「レジスタ |= 0b00000001;」で実行速度に(極僅かでも)違いは出ますか? レジスタのアドレスにもよるし
AVRコアによっても違うから一概には言えないかな。
後者はI/Oレジスタならcbiにしてくるから1サイクルか2サイクル。
前者は内部レジスタなら1サイクル、I/Oなら2サイクル。でも1という値が他で使われてて使い回せればI/Oでも1サイクル追加で済むかも。 >>417
初期化なら前者
それ以外ならレジスタが全部0の保証がないだろうから後者 マイコンでデフォルト値なんか期待しちゃいかんでしょ デフォルト値が毎回決った値になるなら(たとえばリセットで)利用しても構わないと思うが。 リセットで初期化されるのはレジスタ関連だけじゃない?
メモリーは放置でしょ? コンパイラの設定によるが、基本的にはメモリも0で初期化されるな。
わざわざ初期化されない指定をしているなら、プログラムもそれ前提で書いてるでしょ。 コンパイラが初期化コードを吐いてくれるってのは、
リセットで初期化してくれないからデフォルト値は期待できないってのを
言い換えてるだけなんでは? SRAMの .bss 領域を初期化するのはC言語の仕様 >>427
Cの仕様じゃなくてスタートアップルーチンでしょ?
嫌なら書き換えればいいだけだし… >>428
グローバルとstaticのゼロでの初期化はC言語の仕様だったはず。 .bssセクションは初期化される。
.noinitセクションは初期化されない。
意図して設定しない限り全部.bssに放り込まれる。
だから>>425の言う通りオプション次第だし、
初期値指定無しでのデフォルト動作なら0に初期化される。 >>429
Cは初期化されない
0初期化はC++とDebugオプション付けたときだけ >JIS X 3010:2003
>静的記憶域期間をもつオブジェクトを明示的に初期化しない場合,次の規定に従う。
>a) そのオブジェクトの型がポインタ型の場合,空ポインタに初期化する。
>b) そのオブジェクトの型が算術型の場合,(正又は符号無しの)0に初期化する。
>(ry
仕様通りなら自動的に初期化される >>432
ISO/IEC 9899:1999(C99)の6.7.8 Initializationの10でも同様
If an object that has automatic storage duration is not initialized explicitly, its value is
indeterminate. If an object that has static storage duration is not initialized explicitly,
then:
— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or unsigned) zero;
— if it is an aggregate, every member is initialized (recursively) according to these rules;
— if it is a union, the first named member is initialized (recursively) according to these
rules.
ISO/IEC 9899: 1990(C90)にはないからC99で追加されたっぽい
ただし、C90でもC99でも6.7.2 External object definitions(C99だと6.9.2の2)に
こういう記述はあるから、C90の時点で>>429は正解なはず
If a translation unit contains one or more tentative definitions for an
identifier, and the translation unit contains no external definition for that identifier, then
the behavior is exactly as if the translation unit contains a file scope declaration of that
identifier, with the composite type as of the end of the translation unit, with an initializer
equal to 0.
みんなちゃんと規格書を読みましょう そういういみじゃなくて、マイコン用のcなんかにも適用されてんの?って 変数に初期値を明示的に指定しないのは初心者のデフォ。
それを初期値0前提でコード書いちゃうのも初心者のデフォ。
なのに「なんで初期化されてないんだ!」という無限ループは発生していない。
そういうことだろ。 >>436
初期化しないとまずいでしょ
コンパイラがやってくれるからいいんだよ
やってくれないのもあるよ
規格ではやってくれることになってる
その企画は全Cが守っているいるのか? ←今ここ スッキリでシンプル、AVRのプログラムは単純、明解なアセンブラで。 >>437
K&Rの時代から初期化される言語仕様。
オレオレC言語なら分からないけどね 昔読んだcの本では、初期化はされなてないからじぶんでするようにって書かれてたけどなあ >>440
ローカル変数は初期化されない、グローバル変数はされる、じゃないかな。 >>436
わがままは男のせい
それを許さないのは女のせい 初期化されててもされてなくても、動くようにはしてますね。
やるべきことはやってるんだから、問題は起こした奴が悪い、って思想は苦手 コンパイラのバグもチップのエラッタも全て許す広い心 マイクロソフトのVC++でデバッグやってると未使用の変数が0xCCで満たされてるんだよ。
これは半角カナの"フ"だからダンプすると"フフフフフフフフ"と表示されて不気味なんだよな。
コンパイラの仕様にかかわらず自分で初期化するのが安全だと思って全部初期化してるけどね。 >>445
それはローカル変数やヒープの話でしょ。 >>445
デバッグモードでヒープは0xCDで初期化されるみたい。
リリースモードでは初期化されない。 まじか・・・デバッグモードでのビルド品で納入するのも手やな(本末転倒座衛門 昔、ビルドするたびに実行ファイルのチェックサムが違うというのでハマったことがある 最初はリセット後のレジスタ初期値は
信用できるか?
だったのに、なんでCが変数を初期化
するかの話になってるんだ? >>451
あるある。どのコンパイラだったかな。
Solaris かなんかだったような。
このケースでは、内部シンボルがランダム文字列で作られてて、コンパイルの度に変わってることが発端だった。
コンパイルオプションでは回避できなかったな。
なんにしてもこれは初期化とは関係無いな。
>>452
な。
ハードの仕様としてデフォルト値が明示されてるならそうなんだろとしか言いようがないし、その前提でコード書いても問題無いわな。
移植性云々の観点で意見するとか、ソフトウェアリセットの考慮ならまだ分かる。 PICのデータシートには各レジスタ、表の規定位置に
リセット状態の初期値が明記されてて、
それを疑ったことや 初期値表記間違いの
エラッタには見覚えがないけど
AVRってのはそんなとこまで疑わなかならん石なのか・・・たいへんやな; >>452
最初はレジスタかメモリかわからん式から始まって
メモリは初期化されてないよ からの流れ >>454
何ややこしいこと言ってん
メモリーの初期化にまつわる話しかしてないやん おまいらグローバル変数は忌み嫌うのに
こういうときはダブスタ持ち出すんだな >>457
嫁さん詰めたら皿が飛んでくるのとおなじw ローカル奥様にアクセス対象が限定されないグローバル嫁さんへのアクセスがバレたのか・・・ >>453
そういうのもあるんだ
こっちのはcですらなく
宣言したら初期化されるタイプの言語で
なのになぜ?って
しばらくハマった後で、バイナリーエディタで覗いてわかった
ワードアライメントでできた穴が初期化されてなかった
わかってみれば、めちゃあたりまえ ワードアライメントでできた穴に従属した(挙動を換える)コードって・・・却って凄いかもな >>454
AVRのデータシートには各レジスタ、表の規定位置に
リセット状態の初期値が明記されてる
誰もそこまで疑ってはいない >>461
コピープロテクトが流行ってた頃ならそういうの有ったかもね 8bitの時代は逆アセすると一見普通のコードに見えるけど実際は1バイトずらすと本当のコードになるとか嫌らしいプロテクトチェッカー書く人とかいたな >>462
1ライン毎に4byteアラインしないとダメとか面倒臭いしな。 >>454
PICも良いけどAVRやればいいのに。
それも嫌いなんて言ってないでASMで。
目眩く歓喜の世界が待ってますよ。 横目でチラチラと見ながら「あっちのほうが良さそうだな」などと思っても
人間は慣れ親しんだものから離れるのは簡単では無い な〜に、飛び込んでしまえばマイコン沼よ
違うマイコンで同じ物作ってみたりw > 違うマイコンで同じ物作ってみたりw
なるほど、それなら違いがよく分るね
もっとも、その違いが大きいか小さいかなんて人それぞれか 目的が達するならどのマイコンでもええ
ただここはAVRスレなんだから他所のマイコンのことは基本どうでもええ 私が新しいCPU(メーカーが異なるもの)の資料を見るときは、まずレジスタを見る。
次にI/O、メモリ、最後に命令かな。
AVRのようにレジスタが沢山有ると嬉しい。Z8のように複数組み有るともっと嬉しい。 最初にAVRを見たとき、
レジスタ32個で5ビット、即値$00〜$FFで8ビット使うから、
コード16ビットの残りは3ビット、つまり即値命令(LDI R16,$FF、ORI,R31,$88など)なら
8種類の命令しか持てないぞ、どうなってんだ?
と不思議だった ベリーロングインストラクションワードって厨二感があってすこ(´ω`)
っていうかコンピュータアーキテクチャの用語ってほぼほぼ厨二感がすごい(小並感 「くらえ!VLIW(ベリーロングインストラクションワード)!!!」
「ふっ、まだまだだな。OoO(アウトオブオーダー)」ドゥーーーン
・・・みたいな(´ω`) すまんこ、ちょっと興奮してしまいますた(´・ω・) AVRは命令がフラットになっておらず、色々と制約が多い。
そこにアセンブラで組む面白さ、楽しさがある。
プログラムを頭の中で組んで(入浴中や散歩中にも)、
全体と細部のズームアップ/アウトが自由にスムーズに出来るようになれば(グーグルアースのように)
プログラムの完成で、後はそれをキーボードからPCに流し込む。
趣味のプログラミングは良いが、コレを仕事にするのはちょっと迷うw そんなもんが仕事になるわけないだろう
どこにニーズがあるんだ? プログラミングが仕事だと納期があるのがイヤだなw
ところで、音楽でもスポーツでも釣り(漁業)でもプロとアマの差はメチャ大きいと思うけど、
AVRやPICのプログラミングはどうなんだろ?
プロ顔負けの実力があるアマチュアとか、
よくそんなんで金が取れるな、なんてプロとかいるんだろうな。 >>487
音楽家やプロスポーツと比べる様な物じゃ無いだろうに、要求通りの品質コスト納期を継続して満たせるならプロだよ。
貴方だって仕事で糧を得ているのなら何らかの分野のプロでしょ、素人さん比べてどう?差がメチャ大きい? 何をもって実力とするかは結構難しいと思うよ。
とりあえず、いろいろなプロアマがいるのは事実だね。 >>489
在野の人は意外と手強いと思ってる。
素人と言ってもプロじゃないってだけで初心者ではないし、
趣味に生きてる分仕事では知らなくてもいいことまで知ってたりする。楽しんでる分深い。
業務やらせたら勝てるかも知れないけど、知識勝負だと正直わからないって感じ。 「仕事」に必要なのは専門スキルだけじゃないだろ。
そういうオタクっぽいの何人もいたけど「仕事」はできなかったなあ。 >>489 490 491
それぞれに深く納得した
自分の考えの浅さを反省した ID:8KWRsTS4より中国の野良業者の方がビジネスの才がありそう >>487
歌が下手な何十人のグループもいるし
Youtube からいきなりミリオン出しちゃう素人もいるよ。 >>494
フリーランスでそれなりにビジネスしててスマンな 典型的な煽りと典型劇な返しでワロタ
自称フリーランスの言う事は一切当てにならんしw 客が満足してたら対価をくれる、それがプロよ
上手下手じゃないのさ >自称フリーランスの言う事は一切当てにならんし
じゃあ仮に>>497が自称サラリーマンだとして、どれぐらい>>496に比べて当てになるんだ、って話なんだよな。
ID:8JUNTbyqは少なくともこのスレで初出のID。遡ってどんなことを書いた人なのかもわからない。
だいたい世の中に「一切」って言いきれることなんてめったにない。
憶測や個人の経験値ぐらいで「一切」と言っちゃうような人って、まあそういう人なんだろう。 ひねくれた底辺って見苦しいなあ。
見下そうと一生懸命マウントしてる。 >>500
キミの様な腐すだけで内容の無いレスが一番痛い まぁまぁそう言わずに。
みんなそれなりの理由があってAVRを選んだんだろうな。
たとえば出力電圧が安定しているから、とかw
それにしても熱いね・・・エアコンは偉大だ、エアコンに感謝! つまり
ガンガン稼いでいる米中は優秀なプロ
さっぱり稼げていない日はプロ(笑)
と言うことか 稼ぎ終わったw
日本のようにガスや原油を年間に何十兆も輸入している国から見ると、
エネルギー産出国は地下から札束が湧いてくるようなもので、羨ましい限りだな。
プーチンみたいに勘違いしてマウントする奴も出てくるわけだ。
しばらく前に話題になった常温核融合や高温超伝導、大いに期待したのに、
♪ゆれて悲しや 夢と散る♪ (美空ひばり) >>508
>年間に何十兆も輸入している国
適当だな。
あ、単位がウォンか。 検索画面URL丸々はるバカがこの令和にまだいるとはおもわんかった AVR32DD14が届いた。
DIP-8と同じ大きさのSOIC-14にワクワクが止まらない。
ジャンパー頑張れば変換基板もいらないし、盆休み引きこもろう。 90S2313が秋月で安くなってるから、たくさん買おう!と思ったが
外付けクリスタル必要でメンドイし、そこまで必要じゃ無かったw
同じく秋月で特価になってるmega128のデートコード古い奴買おう!と思ったら
そっちは売り切れ…orz 90S2313はどうせ遊びにしか使えないから発振子も8Mセラミック10個50円の処分品あたりがお似合いかな 発振子が必要な分、割高&手間じゃん。
もう新しいデバイスの環境作れない、死にかけの爺さん専用だが、
それでも年金がもったいないぞ。 秋月のtiny202が値上げしたなあ。しかもまた売切れてやがる。
個人だがtiny214の要望出したら置いてくれるかな? >>522
しばらく前から60円じゃなかった?
その前はいくらだったの? ちょっと前に出たSOIC14ピンを間引いて2.54ピッチの8ピンにするのが目からウロコでさあ。
変換基板不要ってうれしいよ。
ハネあげた足もジャンパすれば使えるんだし、いい裏ワザだわ。 2.54ピッチにしたいのはユニバ使うから?
ユニバのランドをPカッターで真っ二つにすれば、1.25ピッチ乗るよ、 Tiny10も値上がりしたなあ、10個360円のパックがなくなって単品45円→50円になっとる 秋月でやたら安いのはディスコンで次入ってくる予定の無いやつの処分特価やろ HPDL1414をI2Cスレイブデバイスにするとかの使い捨て用途にちょうど良いと思うけどな うおーーーーーー
8pin14pinはPORTMUX.CTRLCなのに20pinはなんでPORTMUX.TCAROUTEAなんじゃあああああああああああ
ksg そういえば今思い出したけど、大昔に2313でUART/I2Cインターフェイスの4桁7セグ液晶表示器を作った。
コマンドで輝度調整も出来るし何桁でも拡張できるし、ナイトライダー風流れる表示やゲームも組み込んだ。
https://i.imgur.com/tYOfIpZ.jpg でも作っただけで1回も使わなかったw
アマチュアらしいよな、作っている時間がプライスレスw 今見たら、笑っちゃうほどのミスをしているな、ま、画像見れば分るけど
4桁7セグ液晶表示器 → 4桁7セグLED数字表示器
コレが私の「初めてのI2C」で、作った最大の目的はI2Cの勉強。
この後、続けてI2C/SPI通信モニタ装置を作って勉強終わりにした。 すみません、128DA32のTCD0.FAULTCTRLの値が変更できないんですが、どうやれば良いでしょうか?
TQFP32のPF2,3からTCDのPWM出力しようとしたら上手くいかず、障害情報を見たらTCDがあったので、CCPにIOREG書いてから書き込んでも値が変更できなくてやり方間違ってますでしょうか? CCPにIOREG書いてから4クロック以内に間に合ってないのかもね。
_PROTECTED_WRITEマクロ使うのがセオリーだよ。 あ〜、WOCとWODの代替位置か。
エラッタあるからダメだね。
WOA出力だけを有効にしてみな。出てくるけどPF0〜PF3まで全部占有される。 質問なんだがatmegaってスタート時にレジスタ初期化される?I/Oレジスタが入力に初期化されるのは書いてあった気がする
ほかがわからん >>536 >>537
エラッタでダメなんですね。2つ出したかったんですが。
WOAだけ有効ってのは、TCD0.CTRLCのCMPxSELでPWMBを指定しない、ってことで良いんでしょうか?(出なくて
何を見てそこまでわかるんですか?
_PROTECTED_WRITE知らなかったです!これから全部それにします、ありがとうございます!
ただ、これ使わせてもらっても書き替えられなかったです。書き方間違ってますかね。
_PROTECTED_WRITE( TCD0.FAULTCTRL , 0xFF );
_PROTECTED_WRITE( TCD0_FAULTCTRL , 0xFF ); >>539
ちゃんと出力代替位置選択してる?
PORTMUX.TCDROUTEA = PORTMUX_TCD0_ALT2_gc;
WOAの比較許可するだけでWOAからWODまで全部出力する。
_PROTECTED_WRITE(TCD0.FAULTCTRL, TCD_CMPAEN_bm);
もちろんこれも動く
_PROTECTED_WRITE(TCD0.FAULTCTRL, 0xFF); >>540
細かくありがとうございます!
選択してる、、、つもりではいるんですが。レジスタ周りです
PORTMUX.TCDROUTEA = PORTMUX_TCD0_ALT2_gc;
TCD0.CTRLA = TCD_CLKSEL_OSCHF_gc | TCD_CNTPRES_DIV4_gc | TCD_SYNCPRES_DIV8_gc;
TCD0.CTRLB = TCD_WGMODE_ONERAMP_gc;
TCD0.CTRLC = TCD_CMPCSEL_PWMA_gc;
_PROTECTED_WRITE( TCD0.FAULTCTRL , 0xFF ); // FAULTCTRLに変化なし(0x00のまま)
TCD0.CMPASET = TCD0.CMPACLR = 2500;
TCD0.CMPBSET = TCD0.CMPBCLR = 2500;
while( !(TCD0.STATUS & TCD_ENRDY_bm) ){
;
}
TCD0.CTRLA |= TCD_ENABLE_bm;
TCD0.CMPASET = 1200; >>540
なるほど、CMPBCLRが無いから周期設定が完了していないよ。
データシートのONERAMP動作のところ見直して。 ごめん、今見直したら設定してたね。ハズカシ
さてなんでだろうな。 >>542 >>543
いえいえ、そんな。気になったとこをすぐ突っ込んでもらえるのがとてもありがたいです!
この並びだと脳がスルーしちゃうかもです。
調べながら他の方法も探ってみます! てことで、マジメにじっくりソース見た。
・CTRLCのAUPDATEビットをセットしていない。
・TCD_ENABLE_bmセットした直後にステータスも確認せずにCMPASET書こうとしてる。
・しかもその後にCMPBCLR書き込んでないから更新内容が確定していない。
この3カ所を直したらちゃんと実機で動作した。 人にATMegaへの入力お願いしたらいくらくらいが相場なんだろう
プログラム作成込みで
ここか、なんちゃらワークスで募集してみようかと思ってるけど相場が プロの人件費相場はザックリと100万/月。(←安い方)
月20日計算で5万/日
何日かかるかは内容次第。
食うに困ってる個人事業主ならこの半値でもやるやつはいる。
だが出来上がったものの品質はお察し。
(時間チャージ安いやつは工数長くて結局安くないのが日常) AliExpressで春ぐらいからATmega328とか8ビットAVRが高騰したけど、
「ロシア軍が兵器を作るときに買い漁った」ってどこかで見たけど、ホントかな? ありがとうございます。プロの方の料金はそれでも安いほうなんですね。
5日計算で30万くらい見積もっておけば話つくかなーと思いましたが
品質の判定は素人には出来ないので・・
スイッチング関連の制御なんですが
https://www.shindengen.co.jp/products/electro/files/images/p_dccdi_03.jpg
制御回路が今ATMEGA8-16AUがついてて
①Aから点火信号を受信したらBへの電力を遮断する。これがベースになります。
②Aからの信号受信間隔が速くなるにつれて、Bへの電力遮断タイミングを先読みで徐々に速くする。
というもので後からタイミングの数値を自分でいじってライターで書き込めるように納品してもらうとなると
どんなもんでしょうか。
参考にさせて頂いてるブログ
https://kazuikazui.dreamlog.jp/archives/52454108.html 頼まれてもやらないから無責任見積もり。
・書き込み機は自分でUSBASPでもSNAPでも買ってね♪で済ます。
・Microchip Studioでプロジェクト作る。ソースはもちろん渡す。
・ユーザーには100rpm刻みで進角値を設定してもらう。
・それをEEPROMファイル化&書き込みのバッチなりマクロを渡す。
さして難しいものじゃないし、パルスジェネレーターで簡単にデバッグできるし、実働最短2日かな。
見積もりにはリスク費込みで6日の30万で書くだろうか。いい読みしてると思います。 >>550
バイクのイグナイターかな?
プログラムの難易度的には簡単にできるのだけど
バグ → 点火タイミング異常 → ノッキング → エンジンブロー → 後輪ロック → 事故 → 「死」
責任感強い人は十分な金額でも受けたがらない案件だと思う 確かに化石みたいなもんですが、現役で売ってますし開発環境もサポートし続けてます。
すでにそのデバイスを積んだハードが存在するのなら使い続けるのに問題は無いでしょう。
私だって自分専用に加速度計付きデジタルスピードメーターなんて作って車に積んでますし。
興味を持ってやってくれる人いますよきっと。 >>554
どうやって安全側に壊すかとか
本来の機能より、そっちに神経も
リソースも使うよね ビビリーマンの発想。
そもそも正常動作でも過剰な進角値設定で同じことが起こるのだから余計な心配。
ターボでブースト値あげすぎてブローさせるのと同じ。ユーザー責任。
バグでもっととんでもないタイミングで火花出してもそもそも点火しない。
一般販売しないものでそんな責任は負わない。 マイコンのソフトにもPL法(でよかったっけ?)適応されるの?
しらんけど >>552
完璧な見積もりで素晴らしいです。
まさにその流れでした。
パルスジェネレーターは持っていませんがaliexpressで適当にこしらえればよいですかね~。
その前に人を見つけないといけませんが・・
バイクの点火装置ですね!
難易度は易しめの安全面でプロ意識の人はお断りなんですね。
わかる気がします。基板修理屋さんでも自動車関係の基板は全部断ってるみたいですので。
自分で勉強して組む道も考えたほうが良さそうですね。
>>555さんみたいに加速度付メーター作るレベルでいけるのかわかりませんが。 >>548
本気で作るならもっと高コスパ高性能なESP32とか買い漁るんじゃね? >>550
単気筒なら入力1 出力1 しかないし、20000rpm くらいまで回しても 333Hz ほどだから attiny10 でもできそうだね >>562
壊れて動かなくなるのも困るから、同じの 3つ使って多数決回路でやるとかっこよさそう 4気筒だと計算が大変そうだけど
数学に精通しているとそうでもないのかな 現物見たら大変というか頭良い人じゃないと計算できないんじゃ
http://iup.2ch-library.com/i/i022142355315874511235.jpg
突起してるところがセンサーに近づいた時に磁界が発生して信号を送るんだよね
23と14のマークのところで点火すればいいんだろうけど
180度回転するごとに来るタイミングを23か14か判定するために
途中に小さい突起とでかい突起がある
右回転に一方通行だから長い時間信号がきたら
今23の手前ですよーって判断するんだろうけど
計算に組み込むには天才の発想が必要なんではないかと思う >>566
バイクのこと詳しくないけどこの23と14があるっていうのは4気筒用ってことを意味してるの?
エンジンの回転角度検出(つまり制御回路への点火信号)は1つ、制御回路からイグニッションコイルスイッチング信号は気筒数分あるっていうことか? >>566
単純に、長いやつの立ち下がりが 1 を点火させたら、残りの突起の立ち下がりで 2 3 4 と順に点火させればいいだけじゃね?
実際の順番はともかく。 いや待てよ、4st は 1気筒当たり 2回転で 1回点火だから、>>566 の円盤だけで点火すべきタイミングが分かるのかな?
2回転で 1周するようになってる? >>545
おお、できました!すごい、ありがとうございます!
書かれたとおりにやって動いたけど、2重緩衝されるレジスタのあたりとかが全然わからなかったんですが、データシート読み続けてようやく少しわかった気がします。
・CMPxSET,CMPxCLRはダブルバッファでこちらから見えるものはあくまで入力用で、まだ処理には反映されておらず、AUPDATEをセットすることでCMPBCLRHが書かれる度、ダブルバッファが同期される。
・STATUSのCMDRDY,ENRDYが解除されていないと、レジスタに書いても動作が保証されない。
・AUPDATEを立てたので、CMPASETに書いたのならCMPBCLRも書いてダブルバッファを更新する必要がある。
って理解であってますか?
WOCからWOAを、WODからWOBの出力もされてました。
CMPBCLRによる更新をしたくない場合は、AUPDATEを立てず、更新したい時にCTRLE.SYNCを立てるんですね。
助かりました!流石です! 排気してる時にスパークしても点火しないから、毎回転スパークしてもいいんだよ >>569
4気筒ですね
日本のバイクは簡略化されているので
イグニッションコイルは4気筒に対して2個しかありません。
http://www.synapse.ne.jp/s-hara/bandit/p_data2/plug-20.jpg
14のタイミングの時は14両方に火花が出ていますが
実際に爆発するのは片方で(逆側は燃料と空気が来ていないので)
1243の順番に爆発していきます。
お察しの通り制御回路への点火信号は1つだけです。
この円盤自体に磁性があってセンサーの中にはコイルがぐるぐる巻いてある感じです。
突起部分がセンサーに近づくと電気が発生してそれが信号として送られる単純な仕組みです。
>>571
すごいですね。720度(2回転)で1243の爆発一週分です。
違う分野の内容でも閃いて気づくところに才能しか感じませんw >>574
なるほど面白いね
だと円盤のセンサー入力 1 でイグニッション 2出力なら、やっぱ attiny10 でもやれそうだな。
3つ使って多数決回路でやってみたい。 フリーランスとのマッチングサイトは、仕事取り合いでげろ安
(いっぺん登録してみたが、そんな安値でできるかーっていう案件ばっかり)
それでも、小さい仕事拾ってんの居るから、頼む側としては安くあげられる可能性はあるが
スキルもまちまちなので、どう見抜くかだね 入力が1個で出力が2個と…
ザックリと
1.長い突起のパルスが来たら次に2|3用の点火信号が来るのを待機する
2.次に入力された信号は2|3用なのでそこからあるタイミング(*1)で2|3イグニッション用の出力を出す
3.短い突起用のパルスを待機する、短いパルスが来たら次に来る1|4用の点火信号が来るのを待機する
4.次に入力された信号は1|4用なのでそこからあるタイミング(*1)で1|3イグニッション用の出力を出す
5.長い突起用のパルスが来るのを待機する
6.「1.」へ戻る
で、この「あるタイミング(*1)」を色々変えてエンジンの燃焼具合を変えたいと
ただしこのタイミングは固定した時間(msやμs)じゃなくて角度、つまり同じ角度でも点火信号の周期が短くなる(回転数が速くなる)と時間も短くなるってことかな?
で、その角度っていうのをテーブルでいくつか持っていていろいろ設定を変えたい、もしくは点火信号の周期によって角度も何段階かにリアルタイムで(動的に)変化させたいと?
設定したい角度の分解能はどれくらい必要なんだろう? ちょっと間違った。4.は1|3じゃなくて1|4だね >>578
角度は結局時間で扱えるでしょ。
まず長いパルスを 1番目のパルスとして、円盤1周で 4パルス出る。
んで基準となる点火タイミングは 2番目と 4番目のパルスの立ち下がりだと思う。
でもこのパルスよりタイミングを早めたいからこのパルスを待つんじゃなく、実際には 1番目と 3番目のパルスの特定時間後に点火するようにする感じだと思う。
この特定時間の基準は直近のパルス間隔で、それを速さによって短くする。
短くする量は速さによるテーブルにする。
テーブルの中身は時間でいい。
人間向けに元ネタは角度のテーブルにしたとして、ROM に焼くときにはこれを時間のテーブルに直せばいい。 >>562
点火しなけりゃ安全サイド
その仮定に無理があるよ 点火しない場合の挙動はどうなるか、ガス欠と一緒じゃね? >>586
バイクが加速したい時に加速できなけりゃコケかねないし、ガス欠タイミングは予想できることだからそういうヘマはそうそうしない。
やっぱ多数決回路だよ。
3つのマイコンの出力を同値の抵抗で束ねてCMOSバッファで受けるだけだから簡単だよ。 >>588
単気筒なら一速で80km/hぐらいまで引っ張ってたらヤバイでしょうね。 >>575
現代で自作できたら凄いですね。
1900年代とかこの辺のプログラムは海外の真似だか流用だったみたいですし。
4気筒プログラムが1024Byteに収まるかわかりませんが。
>>578
天才ですね!?
点火タイミングは正に固定ではなく
同じ角度でも回転数に応じて徐々に早くしていって先読みで点火ですね!
テーブル的なものですとこんな感じになっていきますが
https://clicccar.com/uploads/2020/11/30/glossary_Ignition_09-20201130093522.jpg
一番パワーが出る回転数に到達した後は
今度は遅くしていく山グラフです。
なので>>552さんの
・ユーザーには100rpm刻みで進角値を設定してもらう。
がベストですが計算が大変と考えていたところ
>>581さんの角度は時間で扱う で解決なのかなと思いました。
メーカーがどういうプログラムになっているかはわかりませんが
最初の始動のキュルルルの時には
とりあえず点火せずに一回転させてみて
今どの角度か判定しているんでしょうね。
4回信号をもらってから
一番長かったやつを基準にset→点火プログラムスタートと。 だらだらと続いてるが、書き込んでるのはバカばっかりだな。
永久に完成すること無さそう。 ハードウェア的にどこまであるか次第じゃない?
作るのが単にマイコン部分だけなら自作の方が安いし何より面白いと思う。
でもこれ、スロットル開度なんかは制御に取り入れないのかな? >>590
そうか?やった事ないからなんとも
まあ交差点とか低速カーブだと転けるけどね 一速で80km・hまで引っ張って低速カーブなんですね サーキット走行走行したことないんで聞きたいんだけど、ハングオンしてる時にエンストしたらコケる?
起きられない? >>598
80km/hの話は知らんがな、低速だと転けると言ってるだけ
でkm・hて何なの?積算? ちゅうか、バイクのエンジンて自動進角ついてない状態で製品になってんの?
しらなんだ >>596
失火でコケるのは交差点を攻めすぎだろw >>599
ビビったらコケる
慣れてればまあ何とかなるけど団子になってると逃げ場はないかもね >>602
チョイノリとかは固定だった気がする
原付とかは自動でもアイドリング付近と2段階くらいだったりするから
回転に合わせて進角するcdiが1000円くらいで売ってる >>605
なるほどね、だから自動進角装置が欲しくなるのか
でもチューンアップしたいんなら、燃料と空気いじったほうがいいよな >>595
古い車体なのでスロットル制御ないですね
p+ p- =円盤ピックアップコイルの信号
IG1 IG2 =コイル1番 2番
http://iup.2ch-library.com/i/i022144777715874711277.jpg
http://iup.2ch-library.com/i/i022144788715874811278.jpg
噂のATmega
http://iup.2ch-library.com/i/i022144799715874911279.jpg
NPNトランジスタ1個につき1コイル 計2個
裏側のチップ抵抗 2012サイズ多すぎて回路起こしが???
ATMEGA8-16AU
8ビットマイクロコントローラ - MCU
CD4016BM
アナログスイッチ IC
78M05
レギュレータ
EAS8.000 水晶 8MHz >>608
自分で回路作るわけじゃなく、それはそのままでソフトだけ書き換えるという話なんだね。
じゃあその回路図を起こしておかないとソフトも書けないね。 >>610
そう考えると最初から作った方が良さそうですよね。
でも結局お手本として現物の回路図起こすことになるので近道なんてなかった・・
昨日の天才の方の指針から手探りしていくのが良さそうです。 >>608
4016 じゃなくて 40106 6回路シュミットトリガインバータじゃない?
しかし、なんでそんなに細々いろんな部品が付いてるんだろ。
ノイズ対策?
回路図見てみたいなぁ 普通にパッと見てコンデンサはこれしかない
・リセットの時定数
・電源のバイパス
・AREFのバイパス
・クリスタルの負荷
インバータICのバイパスは無いし、特別ノイズ対策している風でもない。
これのどこが多いってんだ? >>613
基板中央くらいにあるパルス入力のフィルタ?が 2系統くらいあるのかな?
その部分で R 7個 C 4個、ケミコン 2個、トランジスタ 2個、ダイオード 2個で総計 17個もあるじゃん。
出力もパワートランジスタドライブする前に多分 2個 x 2組とそれらの周辺 R に、その前段には CMOS のバッファまで置いてる。
なんでそんなに必要なんだろうと思わない? いや違うか。
Q5 Q6 がパワートランジスタのドライブで、Q3 Q4 はまた別の回路か。 コード的なもの書いてみたけど、どこかに貼れるかな? >>621
どーも
http://uproda.2ch-library.com/lib1108378.zip.shtml
DLキーはデフォルト、zipパスは avr。
模擬コードなのでコンパイルは通らないのと、これはアセンブラでループクロック数を合わせる前提なのでコンパイル通したところで期待する動作はしない。
見ての通り直滑降で、ループ数でタイミングを取ってるだけの至極単純なもの。
でもタイマー使ってないから、どんなマイコンにも乗せられるはず。
attiny10 大好きなので自分ならそれに乗せる。
マップ込みで 1KB に収まるでしょ。 ソースコード貼るならCodepadとかPastebinとか…
それ以外はここに何種類かある
https://qiita.com/tttamaki/items/2b009aa957cfa4895d50
>>617
他人事だから半分は楽しんでやってるようなものだな、もう半分は単純に技術的な興味
回路とかアルゴリズムとか考えたり実製品の中身(実装とか)見るのも好きだし(←ここにいる連中はたいていそうじゃない?)
書き込むとこまで行くかどうかわからんけど一応ISP用端子はこうだろう
https://i.imgur.com/oJcl0k3.jpg 面白そうなことやっているなぁ。。
>>622
横から失礼
// 初期状態の検出と確定
ここ綺麗な構文ですね。
私はロングパルス部を0としてセットした後は
もう一度0を待つ計算しか出来なかったです。
セット後にすぐに二つの点火ポイントの
いずれかが来た瞬間にONするのが正解ですね。
最大2周空周りすることになっても差はなさそうですが。 すべてのエッジを同じだけシフトすりゃいいんじゃない? >>624
なんとなくだけど、始動直後というか低回転域ではマップを使わずバイパスするような制御の方がいいかもね。
回転変化が大きそうだから、1パルス前の周期に基づく点火時期じゃ害が出ることがあるかも。
通常回転時も似た理由で、特に加速過程では点火時期が遅れるように見えてしまうはずだから、加速度ともしかしたら加加速度あたりまで見て周期を補正するのが良さそう。
それ入れても大したコードにはならないはず。
でも重ねて言うけど、このコードはアセンブラで書くのが前提だから、万人に仕上げられると言えないのが難点だな。
タイマー使うにしても、低速から高速までカバーするのに 16bit じゃ足りなそうだから、タイマーも使いづらいのよね。 だからそういうスレでやれや。
進角無しならスルーってのは当たり前なんだよ。
そんな当たり前も知らない業界外の素人なんだろ?
ここはAVRスレだぜ。 2つのサイドローラーがピストン/絞り/うねり/グラインドを再現!!
更に先端のイボローラーの回転が未知の刺激を与える絶頂マシーン!!
音声のリズム同期、FFT解析による声質変化に対応した動作パターンの変化で
従来のランダム動作では得られない映像音声との一体感をお楽しみ下さい。 ATENGA8かぁ
VtuberのASMR耳舐め配信と連動させたらよさそう https://i.imgur.com/V6RI7W9.png
TENGAの材料たりない \(^o^)/「高圧用のトランジスタとかコイルとか」 >>626
確かにそうですね。
処理速度的には足りてはいるのでまずなさそうですが
実際に使うとなると回転上昇率によっては
0地点を間違えたり一周程見失う場合があるかもわかりません。
徐々に速くしないといけない理由は
電気的には処理は間に合っていて
点火してから炎が広がる速度の方がが
間に合わなくなっていくからなんですね(なるほど面白い)
>>629
あれれ?秋月ですか?明日行こうと思っていたらw >>637
Yes〜 秋葉の秋月に行ってきました\(^o^)/
秋葉に向かってるとき点火時期チラチラ見ながら走行してた(もちろん前は見てない!)
上死点前30度(高回転低負荷)位から上死点後5度(低回転高負荷)位まで幅広いのよね >>636
「陰部刺激部」なんて書くな、オイラの無限の想像力が刺激されちまうだろうがw
できれば、もう少し過激な言葉責めで頼むw >>629
ネタで、なんて言ってないで、この際、是非、何か作って下さい。 >>626
所詮一回転60Hz-200Hz程度の世界の話だからCでもいけるでしょ 周波数てか、要るのは角度やろ
20000rpm回せば一度あたり、ざっくり8マイクロ秒くらい
クロック数えるみたいなのはCだろうがASMだろうが、同じようなコードになるから、どっちでもいいんじゃね >>641
アセンブラである必要があるのは、中身が微妙に違ったり時によって処理量が違うループの中身を全て等クロックに揃えないといけないから。
ループするときと抜けるときでも普通に書くとクロック数が違うから、こういうのも合わせないといけない。
全体的な処理速度の問題じゃないから、これは C じゃ厳しいでしょ。
C でやるならタイマーみたいなハード的なカウントを利用するのが無難だと思うよ。
>>642
周波数はともかく角度は結局時間で考えることができるよ。
そして進角したいのは火炎の速度による事情だから、むしろ時間で表すのがいいかもよ。
ところで進角を考えないとき、円盤の突起を長いのを 0 として 1 2 3 と振ったとき、トランジスタの OFF は 1 と 3 の立ち下がりだと思うけど、ON はいつなのかな?
0 と 2 の立ち下がり?
1 と 3 の立ち上がりだと短すぎるよね? >>643
だから時間で書いてるや~んw
点火タイミングごときに等クロック制御なんかいらねえと思う >>644
ああすまん、一般論的に書いておきたかった。
等クロック制御しなくて用を成すならそれで全然構わないけど、>>622 で言うと IN を条件とする同じような計測ループが 6箇所あるけど、インクリメントする変数がひとつ多いだけで影響大きいと思うよ。
多分このカウンタは 16bit じゃ足りず 24bit は使うと思うから、インクリメントするのに 3クロックは必要。
24bit規模のカウントがループ1周で 3クロックも違ったら、ちょっと無視できない。
ignite() のクロック数に至ってはそれどころじゃないし。
ちなみにクロック合わせの方法としてはループの通過クロック数を揃える他に、カウンタをインクリメントするんじゃなくループに必要なクロック数の加算にしてCPUクロックカウンタにする感じでもいい。
24bit のカウンタなら 8MHz でも 2秒を数えることができるから、この方がスマートかもね。 >>646
うん、特に C ならその方法をおすすめする。
タイマー値を取得して、前回との差分を取って計測カウンタに加算して、でやれると思う。
これだと 8bit タイマーでもいいから、広く適用できると思う。
けどそれだと最低クロック数がかさみそうなので単純なループ数カウンタにした。
処理イメージを単純に表したかったというのもある。 タイマー値取得なんて要らんだろ
必要値セットして割り込み→点火バチコーンでいいだろ
、 >>648
点火用と計測用に 2ch 取れるならそれでいいと思う。
でも 16bit で低回転から高回転までそれなりの分解能で対応するには、プリスケーラを切り替えたりと結構面倒なことになるんじゃないかなぁ
なんにしても、実現できるならそれでいいんじゃね。 ほんとのとこは知らんけど
低回転域とか、かなりテキトーでいいんじゃね?
パワーバンドのあたりだけカッチリ出しときゃ 自分のスクーターに乗っけてみようかと思ったけど
無段変速で定速回転なんで固定進角で何の問題もなかったw ピークパワー以下を使う場合はスロットル絞ればいいだけだから、いじってもしょうがない
ピークパワーが欲しいときは、どうせスロットル全開だし あ、アイドリングで進角したままだと問題あるか、2段進角になってるて話でてたけど、そういうことか Cでも泥臭くかける
nopマクロでnop挿入して機械語レベルでタイミング調整なんて普通にやってる 安物CDI はサーキット用というのは建前でリミッタ外しが目的でしょ
1万チョボチョボ回ればok牧場でしょ >>640
なにか作ろうにもAVR初心者なんよ
書き込み手段すらよくわかってない
Lチカすら苦戦するレベルだよ\(^o^)/
まあ、今日中に何か作るよ(Lチカとか?) >>662
書き込み器もってる?
もってなかったら、書き込み器を作るんだw 期待してますよぉ、あなたがAVRをマスターすれば「鬼に金棒」ってやつです。 >>658
回路起こすのも必要だけど、ピックアップコイルからの入力とトランジスタへの出力波形を取れないかな。
円盤の突起のどのタイミングでトランジスタを ON/OFF するのか明確にしとく方がいいと思う。 オレも久々になんかやってみようと思って部品箱の奥を漁ったら昔買ったっきり手を付けてなかった2313が出てきた
購入履歴調べたら5個610円で買ったtiny2313、10個290円で買った90S2313おそらくどっちも新品ではないな(Aliで買った)
Arduino - USBaspで書いてみたけどtiny2313のほうは外部クロックになってたけどLチカ確認
90S2313のほうはavrdude直でちょっとやってみたけど何もできない、 タダ ノ シカバネノヨウダ… ATMEGA8使った何か(Lチカ)ができた\(^o^)/
https://youtu.be/2OS5RjN2HQM (全体)
https://youtu.be/Wi9v-JcqlTs (拡大)
もうねATMEGAがATENGAにしか見えない
ローターの形状が(>>658)違うけど出来たからヨシ! >>666
dp/B07KT96N3Tで出てくる100万するアナライザーが12万だったみたいですごい悔しい
安物中華オシロスコープでいけますかね!
dp/B077D3XWHX
>>668
これはすごい!!
バイクカテゴリの動画でもここまでやってる人見たことないですよ!
そのまま教材ビデオになりますよ(なんの教材)
\(^o^)/がずっとぐるぐるしてるだけでも楽しいですね。
同じキット揃えたいですw >>669
測定するというより円盤の突起とトランジスタのON/OFFの関係を見るだけだし、トランジスタはどっちか一方が見られればいいから 2ch あればなんでもいい。
抵抗でレベル合わせて PC の LINE IN に繋いで録音するんでもいいと思うよ。 >>670
ありがとうございます。
ピックアップコイルからの入力信号は
カプラーの根元側からピン差し込んで当てれば取れると思います。(道具は何を使えば)
トランジスタへの出力波形は
ベースとコレクタピンどっちから見ていくのが正しいですかね
それと繋がっているatmega側の端子側に当てれば取れますかね(自信ない)
https://i.imgur.com/Mu8JO15.jpg
円盤には点検窓があるので開ければ動きはある程度見ることは出来ます。
https://i.imgur.com/n8GByUJ.jpg
ノートPCはあるのでお外でも録れそうですが
色々道具が足りていないので
これ揃えてこうしなさい!と指示があると操られるままにそのまま動きます。
ど素人ですいません。 イグニッションコイルを駆動するトランジスタ(D1071)のコレクタは数100Vの電圧になるみたいだから気を付けた方がいいと思う
イグニッションコイルの二次側はさらにそれの何倍も高いし >>671
トランジスタはマイコンの出力でいいと思う >>671
ヤッホーブログのころは紙ヒコーキさんが
自作のイグナイターを開発されてる過程を
記事にされてて面白かったんだけどな。
ヤッホーブログがサービス終了でなぁ・・・ CDIのパラメーター調整で、どんだけパワーアップすんの? あ、厳密な意味のCDIじゃなくって、点火装置って意味でね パワーのアップはしないだろうけど回転の上限が、
ノーマル状態での安全装置を兼ねたおだやかな頭打ち(回転速度の限界)が失われて、
ホントにエンジンのパワーと 風圧やら回転抵抗やらのロスとが バランスする、
そんな限界に向かってスロットル次第で回ろうとする危険なエンジンになるんじゃね?しらんけど 空ぶかしの様な無負荷状態ではエンジンが
破損するまで回転加速を続けることになりかねず
相当に自己責任が重くのしかかる危険なマシーン、ということ。 おまえのカーチャンでーべそ!! ← 悪口しか言わない奴
おまえのカーチャンでべそだけどでもいいケツしてるし、なにより意外に名器だよな・・・← なぜ知っている!!
>>681 頭悪くてすまん、後学のために教えて欲しいんだけど、軽負荷で高回転なのか、重負荷で高回転なのか 何処で見分けるん? >>683
負荷はスロットル開度ないし吸気圧で見る 負荷が重けりゃ回転上がらんでしょ、オーバーレブ防止なら、回転数だけ見とけばいいんじゃ? そういう配慮、親切心とか思い遣りなのかもしらんけど
そういうのが余計なお世話だと思う人が
自作イグナイタを欲するんじゃねえんかな、しらんけど レブリミッターに軽負荷も高負荷も関係ないし
回転数見る必要もない
点火回数を制限するだけで済む
20000回/分点火なら、3ms経過後でないと点火不可能にする条件だけ付けりゃいいのだ
それとは別に、回転数見てオーバーしたら1秒間は点火しない条件つけたり
いろいろやれる 機構的動作に伴うタイムラグが高回転時に
追いつかなくなるのを相殺するための機構、
電子制御になる前は負圧使って進相角変えてたらしいけど
電子制御なら細やかというか変化率を多段階で替えたりしやすそうですな。
>>684
スロットル開度だと空ぶかしの軽負荷を重負荷と誤認するだろうし
負圧はどこのかワカラン;
>685
結局走ってて回転数配慮で頭打ちになるならノーマルいじるひつようないんじゃね? >>688
純正の頭打ちが低いからCDIチューンするんでしょ 逆もありか。
・純正よりも低く頭打ちしてほんとうに30km毎時なんて出せない原付に改造
・ちゃんと30km未満しかレンジのない速度計に置換して分解能を向上 >>683
馬鹿→fool
カバ→Hippopotamus
チンドン屋→dingdong band
お前の母ちゃん→Your mommy
でべそ→protruding navel
うむ…全くわからん >>688
arduinoを使った内燃機ecuにspeeduinoがあるから、そこのマップ見たらわかるよ。 原付と元祖自転車でツーリングしてたら、原付だけスピード違反で捕まるのは何か不条理だよな~ >>695
未来カーみたいに速度に合わせて音が鳴るようにしてみたら? 凄いワクワクすることにチャレンジしてますね。
2stの原付とかのイグナイタ改造は見たことがありますが
バイクの4stの4気筒の自作は初めて見ました。
4気筒でコイルが2つしかないのは何故だろうと感じていましたが
こんな工夫があったとは驚きですw まあ点火タイミングとかはサービスマニュアルに普通に書いてある 4st4気筒なら誰がどう設計しても
点火点は0度と180度の2点しかありえないわけだが BMWの水平対向エンジンのにしか乗ったことがない
ブルジョアの703殿下におかれましては想像もつかなくても
しょうがないことだ、と思うけど
実は(今思いついた設定だが)意外にも(^p^)は若かりし頃
生意気にも昔ナナハンに乗っていたんやが、僕が乗ってた
ホンダのアメリカンバイクはV字型だったよ。←ひんと >>704
それは機械的な話
コイルが2つしかないという話の流れで無意味なレス たしか72度ぐらいの角度で、振動の抑制に成功していたと謳っていたとおもうので
「意味あるの」の意味はあると思うけど、それはともかく、
水平対向以外のエンジンもクランク形状の工夫とかで吸収して0度180度位置での点火が普通なの?にわかには信じがたいような・・・
そういう構成ではコイル二個の可能性は皆無なの? >>701
その2つの点火タイミングで2気筒ずつだとそれぞれのどちらか1気筒は空打ちになるけど、それを良しとしたところが工夫だという話でしょ。
なんとなく電力もったいないなーとかスパーク弱くなりそうだなーとか思うけど、コイルの数減らす方が実用的なんだろうと思った。 >>706
等間隔じゃなくてもコイル2個にすることはできるんじゃね?
点火時期を迎える気筒と空打ちできる気筒をペアにすればいいんだから、4スト4気筒でその組み合わせが無い点火タイミングは実用できる範囲に無いでしょ >>695 ぱっと思いつくところでは
1)ハブダイナモの導入
2)コイル数などの分析
3)タイヤ径と角速度から速度算出
4)ゴーグルとかヘルメットの風防に
速度の数値+グラフを映写
5)ブレーキランプの実装
6)ブレーキランプ点灯中のみ、回生制動的に
外付けしたモバイルバッテリーへ給電して充電
とかどうよ?(^p^)
ぼくはむかし自転車通勤してたんだが、
電車賃相当だった通勤手当をやめるといわれて辞めた; >>708
なんで空うち前提なん・・・
同期とるための一個、逆回転検知用に
180度以外の位置で二個目、
回転モーメントも慣性で急変はしないだろうから
直前値を前提に中割して位相角相当の時刻推定で発火してるんじゃないん?制御回路部で。 >>711
いや、コイルを2個にできるかどうかの話だろ?
4個使うならなんも考える必要無いじゃん。 単気筒か2気筒なら逆回転はできそうだな。
車体に組み込んでから逆回転させるのは結構な条件がありそうだけど。
わざわざ検出する必要は無さそうだけど、電子制御なら検出したところでコストはそう変わらないだろうな。 4st逆転したら排気から吸って吸気へ吐くから燃料来なくて続かんやろ
ディーゼルだと燃料来ちゃうから回っちゃうらしいけど >>717
肝心の燃料のこと考えてなかったわw
だよな、回らんよな 自転車でもネタとしては十分活用できる話じゃないかな
ペダル角度と点火タイミングは似てる
ピストンをペダルに見立てるイメージ。
ピストンが下がり始めた瞬間に爆発するのが効率が一番いい。
ペダルも下がり始めた瞬間が効率が良いだろうから
そのタイミングをLEDチカチカで
右足!左足!今だ!今だ!ってお知らせしてくれるのとかどうだろう
自転車素人が最高のタイミングでペダルを踏める養成システム的な
世界初の開発ですよ。さあ貴方も波に乗りましょうpq ロードの場合、タイミングより
踏み込みと引き上げと両方使えるように練習したほうが2倍力 >>720
適切なタイミングで踏んでるか検出して ECOランプ点けたりな >>720
LEDで教えるより脚の筋肉に直接電流を… シックスパッドなんたらの応用で勝手に漕いでくれるのかw それ 例の 超人仕様半田ごてホールディング画像(そこもつのかよ!!)な
自称 高品質と低価格 な 写真素材サイトじゃないんかね・・・
まぁ 見つかったというのは嘘ではないのだろうが
下手に注視する物をつけるとカーナビと同じ運命になるぞ
音の方が視線の移動が無いから良いよ 刺激する箇所はもう少し工夫する方がいいな。
快感をもたらすようにすると習得の大きなモチベーションになるぞ。 >>724
サイバーフォーミュラのアルザード思い出した
人はメカの部品 >>731
最中に中折れして萎む僕でもギンギンにオッキしますか? >>734
おそらく、おっきしないで気持ちよくなっちゃうんでは? 血液で発電できたらインプラントできるな。
微力な発電電力をチャージしてAVRが動作可能になるごとに気持ちよくなっちゃう感じ。
米粒AVR買い占めるか。 #if defined(__AVR_ATtinyxy2__) が *.cppで効かねえええええええ
ksg バスの最後尾にあるボタンを押さないとブザーが鳴っちゃうやつ
誰か作れ 既に
https://www.yodobashi.com/product/100000001004838049/
最後尾にしか座った事が無いのでは?
あれ押さないとブザー鳴るんだっけ、「降りる人は押してくれ」のトーキー流れるんじゃないのか
がきんちょの頃、発車してすぐ押す早押しを競ったなあ ボタン押せというアナウンスは入ってなかった
左サイドボタン・アナウンス:発車します。走行音
左サイドボタン・アナウンス:走行中事故防止のためやむを得ず急ブレーキをかける場合がありますので充分ご注意願います。
左サイドボタン・クラクション
右サイドボタン・アナウンス:お降りの際はバスが止まってから席をお立ちください。
右サイドボタン・アナウンス:お客様にお願いいたします。発車、停車時にはお立ちの方はお手近のつり革などにおつかまりください。
右サイドボタン・アナウンス:次は終点でございます。どなた様もお忘れ物のございませんようご注意願います。ご乗車ありがとうございました。
降車ボタン ・ピンポン アナウンス:つぎとまります
降車ボタンを押すと「とまります」と点灯します。 最近のバスは、乗降する人が居ないと、停留所をパスするから
降りる人はボタンで知らせろってアナウンスあるよ 昔からそうだと思うんだけどもうバスなんか何年も乗ってないしなあ
「最後尾」ってのが俺を混乱させる >>743が言ってるのは、
幼稚園バス3歳児置き去り死、防ぐには? 「スクールバス王国」アメリカ 安全策は意外にアナログ でも確実
というタイトルのニュースにあった、
「通園バスのエンジンを切ったらブザーが鳴って最後尾のスイッチを押さないとブザーが止まらない」
という仕組みの話では。路線バスの降りますボタンの話じゃないと思う。 最後尾まで行きゃいいってもんなんだろうか?
高速バスなんかはサービスエリアで休憩するとき頭数数えてるな なるほど、こういうことがあるとIDチップインプラントの声が大きくなるな 「そうすればいいというものなのか?」はどんなアイデアも意欲も斜めに捨ててしまうパワーワード。
ひとつで完璧をめざすと、穴の見つけあいの末に、結局、完璧なものは出てこなくて「気を付けよう。そうするしかない」になるよね。 会議でいやらしいアイデアの潰しあいになったら、本当に「穴の見つけあいはやめましょう」って言ってる。
微妙な雰囲気を伴うけれど、わりと効くよ。
あ。「いやらしいアイデア」の潰しあい
ではなくて
いやらしい「アイデアの潰しあい」
だからね。 「穴の見つけ合い」ってやってみたい気もする
体勢としては69? 素人のAVRライター購入です。
ソフトはAVRStudioに対応してるものにしたいのですが
ATMEL MK2 にしようかと考えています。
B07L3DT86R
https://i.imgur.com/Fug4lvh.jpg
ただ、こちらの緑のキット組み立て済みのマウンタが便利そうで
併用できたらいいなと思っていますが無理でしょうか。
https://i.imgur.com/2ac4Ven.jpg
(ライターの方はAVRStudio非対応)
MK2の出力6ピンをこんな感じで
https://i.imgur.com/BhuP1ET.jpg
対応するピンに接続すればいいのかなと考えていますが
何か遠回りしてる気がして相談させて頂きました。
ここまで書いて
頭の中ではブレッドボードに挿すのだから意味ないだろとかよぎっています。 MK2はとっくの昔に生産終了だしあっても高価。
中華コピー品があるのかな?
USBASPでいいじゃん。 おれも AtmelStudio で USBASP 使ってる。
UPDI なやつは USBシリアルに抵抗とダイオード付けたやつで。
外部ツールとして avrdude を使う感じ。 ありがとうございます。
MK2はアリエクスプレスで中華コピー品です。
2000円くらいだったのでソフトが使えるならと思いました。
USBaspではAtmel Studioというものが使えるのですね。
日本語解説のサイトもあってこちらも取っ付きやすそうです。
教えて下さってありがとうございます。
一式うまく揃えられそうな方を探してみます。 AVR StudioがAtmel Studioに名前が変わったんだよ。
同じもんだ。 シナから送られてきたUSBaspつかえないとおもたら盛りハンダしてやらないといけなかたのね
https://youtu.be/a3XDacgX1Ec >>766
あるあるでしょ
10pin/6pinのISPアダプター買ったら
片面ハンダ忘れとか有ったし ああ、逆だ
盛りハンダを外さないと使えなかった
多分、ROM焼きっぱで送ってくるからだとおもふ AVR Studio(当初)
↓
Atmel Studio(改名)
↓
Microchip Studio(買収) 一方日立の組み込み機用開発環境がHEWっていうんだけどルネサスに統合されてからも
ヒタチのHがハイパフォーマンスのHになって なまえはHEWのままだった >>768
そだな、SJVCCはISP→ターゲットに電源を供給するときのジャンパー
SJFABは別のISPを使ってこのtinyISPのファームを書き換えるときのジャンパー
前に安く買えたときにUSBの付いたマイコンボード代わりに使って何か作ってもイイかなって思ってた
(Pin11:PA2とPin12:PA1もどっかに引き出せるようになってればなあとか思った) 重ね重ねありがとうございます。
改名していただけとは知らず。。
あとはATMega8 が載っている
USBaspを二つ用意すれば Arduino として使えると。。
Arduinoそのまま買うと3000円くらいしてなかなかのお値段ですね。
間違えずに揃えられるか心配になってきましたがよく調べますね! あっちゃ〜
AVR128DA28までメーカー在庫無くなりやがった。
まだあまり使われてないと思っていたのになあ。
補充の見込みのないmega0からみんな逃げてきたんだろうか・・・・ >>773
わざわざ Microchip direct で買ってんの?
DIP 品は在庫あるみたいだけど。 directのほうが安いからね。SOIC使ってんだわ。
TQFPのDA32もヤバイ・・・・ AVR128DA28
AVR128DB28
PIC18F27Q43
の違いがわからん
だれか教えて アセンブラで EEPROM のデータはどう定義するの?
Atmel Studio + USBASP + avrdude の環境なんだけど、.ESEG に .db でデータを定義すればアセンブルはできるんだけど HEXファイルには含まれてこない。
SRAM については .DSEG に定義すればそのラベルにはデータ領域にマップしたアドレスが振られるけど、.ESEG のデータに付けたラベルにはマップされるアドレスじゃなく 0x0000 からのアドレスになってる。
そういうものなのか何か間違ってるのかもよく分からなくて困ってる。 EEPROMのデータはhogehoge.eepじゃなかった?
出力されてないかい?
EEPROMデータのアドレスは0x00から始まるよ。
SRAMにマップされたアドレスでアクセスするなら自分で変換する。
Cでライブラリ使うならそんな苦労要らないけど。 HEXファイルじゃなくてELFファイルを使えば苦労ないよ。
全部一つのファイルにまとめられるから。ヒューズ設定すらね。
avrdudeはELFファイルを扱える。 >>778-779
.eep は出力されてないなぁ
全部入る ELFファイルというのに興味津々だけど、出力ディレクトリにあるのは .hex .lss .map .obj .tmp だけだ。
開発環境が古いから更新してみるかな。
とりあえずありがとう! .eep は出た!
プロジェクトのプロパティに出力設定があった。
ELFはまだわからない AVRアセンブラプロジェクトだとELF出力は出来ないな。
GASなら出来るけど。 抵抗に置き換えて実験してみれば、なるほど~ってなるかも 秋月90S2313 50円→100円いつのまにか値上げ 円安の比率からして 二倍はおかしいだろ
というツッコミはありかも ディスコンにしないが値段を変えないとは言ってない。
マイクロチップの定番じゃないか。
テキサスはディスコンと言わず無かったことにしてしらばっくれるが。 >>785
処分特価解除されたね
安くなった辺りの>>518の時はタダでもいらねぇとか酷い書かれ様だが
元に戻るとコレwww >>788
90Sはディスコンだろ?
流通在庫のみ >>789
一部の価値がわからない人が言ってただけだろ
I2Cスレイブデバイスが簡単に作れていいと思うけどな
俺は29円で買ったのがたくさんあるからいらないけど 秋月処分特価と言えば
忘れてたけど
AT32UC3…AVR32ならまだ一部、特価継続中でちょっと残ってるんだぜ!
誰か買ってやってくれww
…昔買ったNGW100、まだ捨てずに残してある… AVR32って何で流行らないんでしょうか?
検索しても検索仕方が悪いのか日本語のページが全然ヒットしない DA/DB/DDって何で秋月に無いんだ?
ホビーユーザーには人気無い? 誰も要望を書かないからだろ
そしてDxシリーズを使いこなせるようなホビーユーザーがほとんどいないんだろ
俺はマルツで買えるから困らん AVR128どころかSTM32ですらロクに扱っていないし
ルネなんて国内小売りを縮小している有様
コピペ出来ないマイコンなんて売れないんだよ Dxシリーズに「使いこなせる」なんていうほど機能多くないじゃん
とりあえず要望は書いておく 自分が多数派なんて思っちゃいけないよ。
たかがAVR8なのにレジスタセットがちょっと変わっただけでパニック起こすのが大多数なんだぜ。 >>799
grbl
arudinoのAVRで書かれたオリジナルは
タイマーのカウントレジスタに直接書いてる部分があって
32bit系に移植してる人々は苦労してるしなw
#arm系だとタイマーペリフェラルはカウントレジスタ書込み不可が多い
grblHALでちょっと整理されたけど 今のホビー界隈はマニュアルを読まないのが当たり前だし 使いこなせていると自認する人に贈る、葛飾北斎90才臨終の言葉
「あと5年長生きできれば本当のAVRプログラマになれたのに」w >>801,803
そのような作業を行える人ってArduino登場前と比べて増えているんだろうか?
昔はそれが出来ないとマイコンを使えなかったが 昔から扱える人数は同じでしょ
Arduinoでピラミッドの裾野が増えた
いいことではないか AVR128DA28まで1年待ちになったか。ユーザー増えてるなあ。
DB28が残ってるうちにストックしておかなきゃ。 AVRのファンページっぽいところに
64kB以上なら素直にARMを買いましょう
って書いてあった 電子工作に限った話じゃないが今は取れ高偏重
技術的な見所の無い作例で溢れかえっている つべで曲検索したら歌ってみたしか出てこないみたいな なんとなくAVR128DA28でググったらこんなクラファンページ見つけた。
https://camp-fire.jp/projects/view/594885
支援者少ねぇw
AVRのプログラム本を書いてる人でもこんなもんか。 Arduinoで十分な人はターゲットから外れるし、そこからステップアップしてAVRに手を伸ばせる人はこんなプロダクトに魅力を感じない もう学習終わってるからいろんなマイコンがぶっ刺せるライターが欲しいわ >>814
ISR(PORTA_PORT_vect){
if (PORTA.INTLAGS & (PIN0_bm)){ //SW1: 押下
flag_INT0 = 1; //判定フラグをセット
_delay_ms(1); //チャタリング対策
while(!(PORTA.IN & (PIN0_bm))); // 指が離されるのを待つ
PORTA.INTFLAGS = PIN0_bm; //割込みフラグ解除
}}
割込み内でdelay・whileか・・・大変勉強になります\(^o^)/ >>814
純正のデバッガ付きの評価ボードで良くない? >>819
低レベルにもほどがあるぞwww
ロクなもの作ってない証左だな。 今の基準はArduinoだしそこまで低レベルってほどでもないのでは?
もっとレベルの低いのが素人相手にマウント取っているのは珍しくないし いや、割り込み処理は最小限にとどめなるべく
割り込み処理内では可及的速やかに処理を終え直ぐ通常処理に戻すべき、という
組み込みプログラマ界隈での常識なんてものは、実はそれを必要とするような
シビアな使い方をしている連中にだけしかその必要や価値はないわけで、
コピペして使うだけのド素人相手のコードなんて 鼻くそほじりながら書いてもいいんだよ?
おまえらそんなこともしらなかったの? はずかしーぞ? いや 俺も今知ったが(^p^;
ほんま目からウロコやな ちょっと狭い思い込みにとらわれ過ぎていたと海より深く反省した。 買わないでコードただ見する人に向けて
おとりとしてのクソコードを貼っている可能性もあるだろう?
while(!(PORTA.IN & (PIN0_bm)))
; // 指が離されるのを待つ
この空文にをちどぐたいま のクリアを入れればいいかと思ったが
delay命令んとこでやばいのか…ていうか あれか。
割り込み中にdelayって使える実装なの?>AVRの環境 色んな所が影響しあっちゃう糞コードの典型
受信取りこぼし
LED点滅異常
外部の監視抜け
... Lチカが初心者の第一歩なのはタイマーの使い方を知るためだと思うんだが、
delayはその学習機会を奪う害悪だと思う。
>番犬はタイマー割込みでリセット
意味無いことするなら番犬使うのやめろよw >>830
delay()はタイマー使ってるけど
_delay_ms()はループで暇つぶして戻ってくる
チャタ除去は俺50msにしてるわ1msあんま意味なくね
つか、割り込みルーチンで変なことしてるとコードがでかくなってくると手に負えないバグを生むんですよ なるほどありがとう こんかいは_delay_msの方だから動きはするんですね;
割り込み処理じゃないところで読むならループさせて安定を待つのも手だとは思います;
割り込み処理を用いてキー入力処理するならば
レベルでてくと と 立ち上がり限定 と 立下り限定 とを指示出来るかどうか
割り込み優先度を設定できるのか、など環境の都合でも定石は変わるとは思います;
そういうノウハウを安売りしたくない心理が働いてしまわれたのかもしれませんな;しらんけど 素人に毛が生えた程度のドヤ顔ユーチューバーが出来る人扱いされ教材になるご時世だし ノウハウってほどのもんじゃないと思うけどな。
むしろ基本に近いと思う。 Arduinoにもあるじゃない。millisってのが。
あれ一つあればdelayなんてほぼ要らないよ。
1msのティックカウンターなんて新人時代の初期に教わったわ。 なんでこういうサンプルって
実用性がある普通のコードにしないんだろうねえ
簡単なのに そのカウンターが使えるようになれば、ポート入力のデバウンスもめっちゃ簡単。
Xms毎に必要なポート入力見て、過去Y回一致でステータスデータ更新するだけ。
アプリはそのステータスをさもスイッチ入力のように扱うだけだ。
スイッチ1個でいちいち止まる必要などない。 昔、AVRを始めたばかりの頃、割り込み処理の最初と最後で外部DOをセット、リセットして
オシロで実行時間を実測し、問題無いかをいつも確認していた
今は図々しくなって、実行時間がシビアなときにしかやらないw switch割り込みは緊急switchなどには有益だけど
通常の操作スイッチにはむしろタイマ割り込みを使う、という事か…なるへそ勉強になる(^p^ Z80でも割り込み2000行でFM音源操作当たり前なんだが
割り込みでどれだけ時間食うか計算するのも当たり前 スイッチみたいなスローでいい処理は割り込みなんか使わんでやれ >>832
コンパイルが通って書きこみもうまく行く環境が整ったことを確認するためのものじゃないかな。
だから割り込みなんて使わず誰がやっても詰まらず動くものがいいと思うよ。 割り込みは応答性が必要な処理に使う
割り込みでの処理は最低限にする
これが基本
許容遅延時間、遅延した場合の影響、ソフト規模、開発メンバーの質などによって判断する
(もちろん割り込みを使わないと実現出来ない機能なら判断するまでもない) 教材なら
まずはフリーランカウンターを使った基本的な処理の書き方を教えるべき
これを使ってキー入力やLEDインジケーターを実装する
割り込み処理の書き方はもっとずっと後でいい そんな有益な情報が、ゴミに等しいArduino情報に埋もれてしまって
見えなくなっちまってるよな。 だーれも残す必要を感じてない情報こそゴミなのでは?
言っている自分も何かしたくなるほどではないでしょう >>852
すまん、意味が分からん。マジで
逆説を自分に問うてみな。 教育の場があれば
万年初心者のディスパッチャ君を正しい方向に誘導出来たと思うんだ Arduinoは遅いって言われるけどネイティブ実装との差を認識している人は少ないよね
ttp://elm-chan.org/works/rsm/report.html
これは極端かもしれないが、Arduinoは遅い、Arduinoは遅い言っているあなた
マイコンが遅いのではなくあなたの書いたプログラムが遅いのではないですか? >>855
(1)AVRだと遅い→C++ではなく、アセンブリ言語でやろう
(2)AVRだと遅い→もっと速いマイコンを選ぼう
今は(2)で良いのでは。
AVRを骨まで愛する人なら前者だろうけれど、感情を他人に強要はできないしね。 毎秒それだけ演算できるか?とか考えたことあるんだろうか?
それで遅いっつってもね >>858
1秒なんて長すぎて考えてられないかな。
割り込みで1msで終わるかとかは考えるけど。 tiny10でサーミスタ成魚のPWMファンコン作ったわ
常にフルパワーでぶん回すシナマザーのためになっ!!
余計な手間かけさせやがって 光の速さなんて他人ごとやん。。。もっと等身大で物事考えようぜ?
1日[day]=24[h/day]*3600[sec/h]=86400[sec]
トンキンの緯度は35.69度、地球半径約6368km
自転軸からとんきんまでの距離は半径*cos(35.69)=6368*.8122≒5172[km]
トンキンでの地球自転での周回距離2πr=2*3.142*5172≒32497[km]
ぼくらとんきんしみんが一秒で自転で移動している距離は0.3761[km]
400mに満たないんやな・・・しらんけど(^p^; 光の速さが他人ごとなんて、特殊相対性理論を少し勉強したほうがいい。 >>863,864
そんな難しい話やめて「動く猫耳」について真剣に考えようぜ \(^o^)/
https://i.imgur.com/Htgw6YO.jpg
人類にとってどちらが重要か・・・賢い僕らならわかるはず 慣れると「ここの筋肉を動かせばいい」ってのが分かってくる。
あんま脳波関係ない。 >>863
地球の自転の速度より公転の速度の方が大きく
それよりも銀河系の回転による速度の方が大きく
それよりも銀河系自体の移動速度の方が大きい AVRってDA/DB以外はパッとしない感じだけど
DA/DB以外で何かオススメとかある? 8ビットAVRでできることはSTM32F0でほぼできる
逆はたくさんある
以下 結論が並ぶ 逆 : STM32F0に出来て8ビットAVRに出来ないこと
でしょうか >>873
お前が論理学を知らない事はよくわかった 命題:「8ビットAVRでできる」⇒「STM32F0でほぼできる」
逆:「STM32F0でほぼできる」⇒「8ビットAVRでできる」
裏:「8ビットAVRでできない」⇒「STM32F0でほぼできない」
対偶:「STM32F0でほぼできない」⇒「8ビットAVRでできない」
間違ってる?
>>870 は、「『STM32F0でほぼできることは、8ビットAVRでできる』ことが多い」って言ってるんだよ。 >>868
>公転の速度の方が大きく
えー まじ地動説信者? 地球が太陽の周り廻ってるって信じてるの!?
地動説が赦されるのは小学生までだよねー ぷーくすくす(キャハハAA略 AVR8と比べる32bitマイコンは5Vで使えるRX/RAの一部やCH32の一部とかが適切なんじゃね?
STM32は必要に応じてレベルシフタを用意する必要が出てくるし今やコスト的なメリットもない
>>857
問題は開発言語の選択ではなくイベント駆動や割り込みなどの基本を理解していない低効率な実装
その結果、8bitマイコンで十分な物に32bitマイコンを使い、ちょっと良い32bitマイコンを用意すれば
作れる程度の物にLinux SBCを使って消費電力10倍&起動時間長い&もっさり動作だったりするわけだ
趣味ならそれで良いかもしれないが、エンジニアやマーケッタの育成でそのような判断は良くない >>876
その解釈だと>>870が何を言いたかったのかさっぱりわからない
1行目からAVRに否定的な意見が書いてあると思った 「電気工学なんて時代遅れ。今は情報工学でしょ。」
【2022年10月11日OA】fmいずみ サンドウィッチマンのラジオやらせろ
https://youtu.be/rnwrN6IY7uE?t=1571
ジジイしかいない電気工学・・・ AVRスレでこんなことを言うと顰蹙だろうが、
AVRマイコンの勉強して関連技能や知識を習得しても
すぐに新たな機種が発表されて30年後には
今現在のZ80関連の知識保持者のような扱いになってしまうのだろうけど
同期機とか誘導電動機みたいな枯れた技術は
30年経ってもそんなに変わってないと思うから
長い目で見るなら電力畑の方が潰しが効くんじゃね?
つっても、そこでいう情報工学ってのはAVRとかは該当せず、
おそらくAIだとかビッグデータとかディープラーニングとかを
指しているのだろうけれども;しらんけど(^p^; 情報工学専攻だけどさ
…オイラーの定理とか必要な現場なんか存在しないし…
…一応、互いに素がなんちゃらってのはRSA暗号の基礎理論がぁ!とかで使うんだけど… >>879
DDも仲間
じゃあDA/DB/DDから選んどきゃいいよね これからだけどEAとUSB内蔵のDUが出るらしい。 80円の時買ったTiny1604が大量にあるわ、1614は既に入手難であわてて押さえた コンピュータの基礎は過去数十年変わっていないしこの先10年、20年程度で変わるとも思えん Z80で勉強したからこそ、大した苦労もなくH8も68KもAVRも扱えた。
ARMはちょっと苦労した。 現行の量子コンピュータは所詮アクセラレータでしかなく汎用的な問題をシリコン半導体以上の効率で解く能力はないし
それを解決出来る目処も立っていない もうジジイだからハードや言語のの違いより、開発環境の違いの方がキツイわ… NetBeans系はつらいわ。PICとかルネサスとか。
MicrochipStudioはいつまで続けてくれるだろう。 寿司はあさって食べに行きます
かわいい女の子と (娘) うおっ 目が 目がぁああ(>p<;) (直前のレスが眩しすぎたようです) MicrochipStudioはWindows11対応は行わない。
したがって公式には2025年で終了することになる。 >>906
スレ読めねえのか?
MicrochipStudioはいつまで続けてくれるだろうってお題だよ。
それまでにMPLAB X IDEの完成度が上がればいいなって願望。
>>907
MPLABはlinuxでも動くよ。 コンパイルだけならそうだな。
統合開発環境って言葉知ってるか? Arduinoのアレは統合開発環境と言っていいものだろうか… フレームワークがArduinoで良いのなら
PlatformIOでよくね? >>910
make なんて書かなくても全コンパイルすればいいんじゃね? 統合開発環境ってデバッガくらいしか使っていないわ。コードの編集はvscodeだし マイクロチップテクノロジィ社提供のものはCPU(AVR)しか使ってないので
あっしには関わりのないことでござんす もんじろうさんは子供の間引きでコンニャクで窒息死されそうになったからコンニャクが食べられないんだよ (市川崑氏に確認をとったわけではないが)行間を読める俺様に言わせれば、
たぶんそれは対外的な言い訳で たべられない本当の理由は 昨晩その蒟蒻を言えないようなことに使ったからだと思うぞ?
※個人的な見解です。何ら保証するものではありません(^p^; 俺、おでんのコンニャク好きなんだよ、そんな下品な話は止めてくれw
2番目に好きなのは大根で3番目は玉子ね
・・・うむ、寒くなってきたし、今夜はおでんにしようかな
市販のおでんだと、つゆが2袋に別れているのが美味い AVRデビューしようかと思うんだが
今秋月に売ってるのでオススメ3つくらい教えて
デバッガはPICkit4にする PIC16F84A
DSPIC33CH64MP202T
PIC32MX370F512HT
この辺抑えれば完璧 PICは
PIC10F200からPIC32MZ2048EFH144まで
いろいろ使ったのでお腹いっぱい ごめん、AVR だった。
PiCKit 言うから間違えた。 >>922
先輩のみなさま
よろしくおねがいします ありがとう!
tiny202売り切れ
それ以外は買った
計 約1.5万円 >>930
作例が多いから入門用として最適だと思うよ >>930
atmega328はネットの情報量も一番多いと思うし、
AVRを初めて最初の取っ掛かりは良いと思うけど・・・ダメですか >>931
貴族かよw
avr32ddが100個買えるなあ PICkit4が高い
ちょっと前5千円くらいだったよねえ SNAPは持ってたんだけど壊れた
もう買わない
AVR64DU28が出たら買う予定
Digikeyかな
いつ出る?
コンカフェに2.5万使ってしまった コンカフェ5時間
ヤバい
5時間で2.5万なら安いとは思うけど...
わからないことがあって質問するかもしれないけどよろしくね しらねえ。
マイクロチップは何も言わずにある日突然出荷開始するから。
SNAP3台を数年前から酷使しているがまだ1台も壊してないな。
壊したのはAtmelICEのUSBコネクタを物理的にもいだくらいか。 SNAPなにか思い当たるふしは無いんだけど
MPLABから復活させる手段とかいうのでも復活しない
2台のPC(Win10, Win11)で試した
もうあきらめた 12Vに間違えて16Vかけたらレギュレータ壊れてSNAP も焼けたぜ!
バッファが壊れただけっぽいけど付け直すの大変そう。
予備があるからいいけど。 AvrfreaksもMicrochipサーバーに移動か。 あなたにとってどういうところが「ゴミ」なんでしょう? たとえば PIC16F18857 (230円) と比較 まあ旗艦であるmega88登場から20年近くたってるから、いろいろ古臭いけどね。
いまさらPIC16F84Aや16F877持ち出して「ゴミ」って言ってるようなもんだろう。 >>948
内蔵だと20MHzで動作出来ない
>>949
オススメらしいけど どの部分に着目するかで評価は変ってくる
ある人にとってはゴミでも別の人にはお宝かもしれない
まぉ私も100M位のAVRがあればなと思う時はある
でも100MのAVRが実現したら、1GのAVRがあればなと思うだろうなw 俺なら今さらクラシックAVRなんかオススメしないけどなあ。
純真な>>950を惑わせた>>928は罪だね。
まあ、なんの条件も言わずにオススメ言わせて後でケチつけるのは人としてどうかと。 ぶっちゃけ自分で何が必要か判断できない奴に20MHz動作は全く必要ない
本当に必要な要件がわかってるなら自分でデータシートを確認するからな
ただのスペック厨 何に使って(使おうとして)ゴミだと思ったのかは聞いておく必要があるな >>954
1GhzでRISCであれば0.5-1W/コアじゃないの?
x64のデスクトップでも1コアあたり8-10Wでしょ
もちろん、ZEN4/AlderLakeの前の世代までだけど 1GHzいかなくても500MHzぐらいでヨクネ?
それぐらいなら、発熱キニシナイふつーのマイコンだしな
Teensy4.1で600MHzだっけ
SAM4S(120MHz)や、SAM S70(300MHz)も使ってるけど
発熱はあまり気にした事ない… 単にいじって遊ぶだけなんで
特に何が必要ってことも無いんだけど
PIC10F322 (65円)
PIC16F18313 (160円)
PIC16F18857 (230円)
PIC18F27Q43 (310円)
STM32L010F4T6 (95円 ARM M0+)
この辺と比べてしまう
PICよりコアが高速で命令がきれいという特徴は知ってるけど
他に何かありますか?
DBの2電源は(使うかどうかは別として)非常に面白いと思った
AVR128DB28は買うつもり (DigiKey売り切れ)
AVR64DU28も出たら買う
いろんなコードを移植するから
ROM/RAMは多い方が良いし当然速い方が良い
省電力、作例は興味無し 今時外付け発振子はイヤだなあ
USB Device対応でも不要なのが多いのに
>>951
8bitで1GHzは効率悪すぎ
ARMでいいじゃん 高速なMCUってコスパとか使い勝手とかあまり良くないんだよね
ワンボードPCの安くて小さいのがいろいろ出てるんで 起動時間やシャットダウン問題があるけど
個人で遊ぶにはそれほど問題にはならないかな AVR128DA28が売り切れてたからDB残ってるうちに確保したわ。売り切れ原因の一人は俺です。
2電源は便利に使ってるよ。
シリアルフラッシュとか無線モジュール、LANモジュールは3.3Vインターフェースが多い。
俺の場合、5V系と3.3V系が混在せざるを得ない製作がちょくちょくあるんだ。
メイン3.3VでVDDIO2が5Vなんてパターンもある。
水晶無しでもUARTくらいなら問題の無い内臓クロックもお気に入りだし、
電源2Vくらいでも24MHzで動くってのもうれしい。 読み返してて気づいたけど、PIC16F18857って32MHz動作でも
マシンサイクルで言えば8MHzだよね。
328Pの内蔵8MHzと同等じゃん。 PICはクロック数詐欺アーキテクチャだから
PIC18F27Q43 (310円) なら64MHzだからCPU速度は同等と思う >>967
そこだけ見れば同等なんだけど
実際使ってみると処理能力は2倍以上違うんだよね
PICは16bitか32bitのを使ったほうがいい AVR128DA28とPIC18F27Q43
公式では全く同じ値段だった
スペックも非常に似てる
>>968
>>924
>>969
高速フィードバックでdsPICを使ったりもしたけど
基本的にPICは8bitと思ってる
処理速度が必要ならARM
最低ランクのSTM32L010F4T6(95円) でも
AVRより圧倒的に速い PICはチープな領域が強いから (他は弱い)
AVRも流行ってないと思う AVRのコアは8bitとしては良く出来てると思うけど
16bitには勝てないし使い所が微妙
ARM(32bit)も安いのあるし AVRはFab増やしても足りなくてTSMCにも出して、それでも1年待ち。
日本に来るのは後発のタイFabが多いかな。
マーキングが違うから偽造品扱いされることもあるかわいそうなFab。 AVRとPICの売上比率とか出してくれると思ったのに
何もデータないんかいな
----簡単に得られるデータの比較----
新製品の数 PIC > AVR
検索数 PIC > AVR
掲載順 PIC > AVR そもそもAVRがPICよりメジャーだったらPICの傘下になってない もうちょっとAVRの良い面を聞けるかと思ったのに
民度的にPICスレと大差なかった AVRのぉ〜
ちょっと いいとこ みてみたい〜 (^p^) まともな奴はおすすめを聞くとかいうバカな質問をしないという好例 おすすめの、AVR擬人化娘を紹介してください!!!(^p^*) 毎回思うんだがこの人は朝から酔っ払ってるんだろうか 常に酔っぱらってます
毎回?
そんな何度も書いてない 本当にオススメ無いの?
じゃあ良く使ってるCPUの紹介でもいいや
>>994
PICもRL78もMSPもSTM32も使ってる
本当はこれらに無い特徴や機能が知りたい >>960
>>964
こういうお話、初心者としては聞いてて面白いです オススメ聞くのは動画ブログでマウント取りたいアフィカスだろ 特にAVRならではって機能は無いだろう。
PIC18酷似だし。
切り捨てるのは惜しい市場規模だからどうやってPICに移行させるか悩んでんだろ。
Atmel買収の時からそんなに変わってないベ。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 366日 21時間 1分 18秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。