AVRマイコン総合スレ Part40
レス数が1000を超えています。これ以上書き込みはできません。
みんな聴力良いんだな
12KHzくらいからもう聴こえないw
ただ聞き続けてると気が狂いそうなのは
耳と澄ましてうっすら感じる14KHz
全然うるさくないんだけど逃げ場がない感じ >>543
おお、ビンビン聞こえると思ったらPAUSEだった
耳鳴りかよ そういえばうちの新卒くん
テレビの水平同期ノイズ聴いたことないって言ってたな
ゆとり〜〜 最近、蚊の羽音が聞こえないんだよな。
蚊の羽音を検知する電子工作頼むわ。 >>548
これでも作る気か?
ttps://www.youtube.com/watch?v=AF4uMdIZqdM 高周波だと、耳の位置とか位相で聞こえたり聞こえなかったりする
首振っても聞こえ方変わらないそのキンキンは、耳鳴りだw 同じファームを焼き込んだマイコンを500個作らねばならないんだけど何か良い方法はないですか?
グダってる間に手を動かすしか無いでしょうか・・・ ギャングプログラマ買えば?
500個ならバイト雇ったほうが早そう。 1個10秒でできるとして2時間もあれば余裕で終わる >>550 高周波は耳で聞くのではない、鼻で嗅ぐもんだ…ん、口臭波 >>551
ATMELプログラマを複数PCに繋いでもシリアルナンバーで識別できるので
atprogram.exeやAVRdudeなどでバッチファイルで書き込むと少しはらくかも。
LUFAのクローンだとArduino Pro Micro互換機などに異なるシリアルのFirmを
用意すれば10個書き込みのギャングプログラマもどきが簡単にできる。
USBaspもシリアル書き込めそうだけど試したことは無い。 AVRだとあるかどうか知らんけど、
以前使ってたROMプログラマは挿抜を認識して、
差し替えると勝手に焼くモードがあった
スイッチ押す必要なくて
BEEP鳴ったら差し替えればよいという AtmelStudio6がインストールされてるんだけど
この状態からあえてver7にアップデートする必要あると思う?
ちなみにOSはWindows7。
ライターは公式のAVRISPmkII。 開発できているなら必要ない
壊れていないものは修理する必要はない
インストールしたいなら止めないが 俺もISPmkII持ってるが新シリーズ対応しないらしいな。カナシイ >>559
dd
逆にどういうひとが6では無く7使ってるの? >>560
> 俺もISPmkII持ってるが新シリーズ対応しないらしいな。カナシイ
kwsk TPIやPDIには対応してたんだからハード的にはできるはずなんだけどね。
ちな、Dragonも終了。 連投すまんが、PICKit4は対応済みらしいがソフトが追いついていない。 UPDIはmEDBGライタが簡単に作れるから問題ない500円でできた。 まあ代替手段が有るか無いかの話じゃなく、手持ちのリソースがゴミ化するのが悲しいってだけの話なんだけどね。
作れる人は勝手に作ればいいし、俺もその類の人だし、デバッガも持ってるし。
作れない人にとっては厳しい状況だなってね。
初心者に中華モジュールは地雷だしなあ。 AVRがMPLABで開発出来るようになるとLinuxユーザーが飛びつくんだろうな。
まだごく一部のデバイスしか使えないようだが。 >>551
商社にHEX渡して書き込んだマイコンを納品させる なにーdragonも終了かよ
パラレルHVはどうすんだ UPDIに対応しないってだけで使えなくなるとは言っとらん >>551
microchip directのprogramming service使えば
いいんじゃね?
500個だと(チップによるけど)インクマーキング込みで
0.2ドル程度 フラットパッケージのAVRって先にファーム書き込んでから
あとでリフローなり手ハンダなりでハンダ付けするのってあり? 書き込み済みのチップを買った場合は必然的にそうなるんだしナシでは無いな。 >>573
量産は普通そうする
FlashROMもそう 他にリッチなCPUを積んだ製品だと
空ROMをマウントして
別のCPUから自動でファームを書く
なんてこともあったり そっか、熱でファームが吹っ飛ぶ心配はしなくてもいいのね >>573
自作の場合はどうにかして書き込みたいからジャンパーつけて書き込めるように工夫する。 >>572
ってか50から10000なら、そこ一択だろ >>558
Studio6はライター周りで何か不具合があった気がする。
認識だったかな?いつかのスレで書いた記憶がある。
公式のリリースノートにあると思うよ。 ICSP端子つけて、いつでも書き換えられるようにしようよ? それは非常手段として用意すればいいからパッドを付けるだけ
スプリング式のテストプローブ使って書き込む MPLAB X v5.00でAVRがBetaサポートだと >>584
すまん、わからんw
入れた残骸があるとおもたんだがおいらは5.0から飛ばしたっぽい >>561
ごく最近AVR始めて、最新版のAtmelStudioインストールしたから7使ってるよ
ISPmkIIもdragonも入手したけど、結局使ってるのはPololuのライタ 今のAtmelStudioじゃDragon動かんなあ https://www.clarestudio.org/elec/avr/opcode.html
このサイトでLDS命令などは32bitになっていますが、このような命令はどのように実行されるのでしょうか。
プログラムカウンタで指定されたアドレスから1word分の16bit読み込んでもすべて読み込めないようにみえるのですがどうしていのでしょうか。 命令手引き書を見たら分かるがRAMPDレジスタと合わせて読み込むよ 2ワード命令でしょ
普通に1ワード目で命令を認識して、2ワード目のパラメータを取得してから実行。
だから処理サイクルが最低でも2クロック。 アセンブラ職人は2クロックを嫌ってJMP命令を極力使わずRJMPにするとか、
古い話する奴が現れる前に書いておこう。 普通のrjmpでも2サイクル掛からなかったっけ
だから単純ループでも展開したりする データシート見れば分かることをほんと面倒な奴らだ。 今日の一連の中ではLDSの質問なのにどこからRAMPDなんかに結びつくのかが一番不思議だな つぅことでAVRは純粋な16ビットコードのCPUではないのだが、
32ビットコードが許されるなら、あれも入れてくれよぉ、これも入れてくれよぉ、
と諦めの悪いオジチャンはね、未練がましく思っちゃったりしちゃったりするんだよw 命令ビット数を増やせるなら、命令対象レジスタの制限を無くして、
全ての命令をR0〜R31で使えるようにして欲しい。
(LDI命令はR16〜R31しか使えない、など)
あとはアドレッシングかな。
Cプログラマには関係無い話しだが。 呪文付けた特殊なポインタ使わないとプログラム領域のデータに触れないのがガン
普通に書くとconst付けてもRAMにコピーするからモッタイネ ハーバードアーキテクチャそのものに文句言うのかよ・・・・
最近のシリーズは改良されてROMの内容もRAMエリアにマップされてるけどな。 それはハーバード関係ない
ハーバードでも同じアドレス空間の物はいくらでもある constでramにコピーするのは大抵のcコンパイラでそういう動作じゃね? Atmel Studio 7.0でコンパイルすると4行目でエラーになります。
エラーになる理由と対処方法をご回答頂けると有難いです。
const char item1[] PROGMEM = "string1";
const char item2[] PROGMEM = "string2";
const char item3[] PROGMEM = "string3";
const char* list[] PROGMEM = { item1, item2, item3 }; >>612
普通はROMだろ
ていうか、
コンパイラ関係ないし
リンカやリンカスクリプトとスタートアップコードの役目 >>613
4行目
PGM_P const list[] PROGMEM = {item1, item2, item3};
じゃダメですかい?
出先なんで確かめてないけど… const char * const list[] ... >>617
それだとコンパイルは通るけど期待してる動作しないんではないかと…
list[I]はFRAM空間へのポインタを返さなきゃいけないはずだけど
単にchar *だとRAM空間へのポインタに解釈されそうな…
勘違いだったらスマンです const char* const list[] PROGMEM = { item1, item2, item3 }; const char const list[][6] PROGMEM = { item1, item2, item3 }; エラーメッセージにちゃんとそうしろって書いてあるのになあ >>616
>>621
ごめんなさい。
Error variable 'list' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
頭が悪くてメッセージ意味が理解出来ず・・・お恥ずかしい
const char* const list[] PROGMEM = { item1, item2, item3 };
PGM_P const aaa[] PROGMEM = {item1, item2, item3};
これらで無事に通りました。
皆様ありがとうございました! >>546
今の新卒って95年生まれなのか…
子供の頃の体験がいつから記憶に残ってるか次第だが
小学校にあがる頃ぐらいまでの覚えがなければ、ブラウン管知らないって子は居るかもな
恐ろしい時代やで…Oh… 有用性で言えば、新卒の知識の方がほどなくプラスに転じるだろな。
むろん転じない奴もいるが、そういうのがいるのは前の世代でも同じだし。 今30歳前後の奴だと二つ折りの携帯を使った経験があるから
アルファベットとテンキー打ちできそう
それ以下の世代はスマホばっかで、中のごく一部はろくにPC使ったことない奴もちらほら
同期よりキーパンチも遅くて、入社しばらくは給料泥棒そのものだったな 若い人が怖いんだな。
怖いときのありがちな行動
・その人たちをひっくるめる
・その中の悪い要素、劣っている要素を探す
・それをあげつらって安心する
新しい人たちの優れた要素を伸ばし足りないところを補って、自分たちを超える存在にしていくのが先輩世代の役目なのに。
って何のスレだよ 初代ガンダムはまだ液晶ないからブラウン管なんだぜ。 >>635
うわぁ。。。電電板の初心者の居るスレで
マウント取ろうとしまくってるな 某PICスレに比べて(内容はともかく)盛り上がりにかけるなーとか思ってたけど、やっとスレが進んだw
車のタコメータを作りたくて、ATMEGA328PからCAN通信させてSPI接続ほ液晶を繋いでみようと考えてるんだけど、なかなか良い液晶が見つからない…
大きいサイズでフルカラーで3000円くらいでおさまるやつ、ないのかなぁ?
みんなフルカラー液晶って何を繋いでる? 今はAVRは単品では殆ど使わないからでは
Arduino連中はアーキテクチャには興味無いだろうし >>646
そこは、液晶じゃなくて7セグのデカLEDっしょ >大きいサイズで
こういう、自分の脳内で物事が完結してるヤツが多いよね、最近。 フルカラーってことはグラフィック?
SPI接続だと遅くないか?
(針の絵がトロトロするような) ごめん、液晶の大きさが曖昧だったね。
3インチくらい、画素数は320x240くらいを想定してました。
そっか、SPI接続じゃあ遅いかもしれないのかぁ、どうしようかな。
7セグいいなぁ、ちょっとトキメク。 >>653
mega1281のメモリバスにILI9325搭載320x240のLCDを直結して描画した事があるけど
全画面単色塗りつぶしだけでも0.2秒くらい掛かっていた
SPI接続だと耐えがたい遅さになるんでないの? >>653
7セグのデッカイLEDはカッコいいぞ
特にアンバーはオススメ 中で使う小物の表示器でSC1602飽きたのでQVGAモジュールを
使い回してるんだけど、いつだか7セグでデモ披露したところ
「TWENTY FOURみたいでカッコイイなw」
予想外なご意見・ご感想を頂いたので、光り物処分する予定だったけど
7セグにしたことがあった。
ドラマ観たことないので、こんな感じかな?と電源投入後に外側の棒が
クルッと一周する視覚効果付き。 液晶が蔓延ってる現代社会において
7セグLEDって逆に新鮮でかっこい 7セグならVFDにしようぜwww
https://i.imgur.com/LLF4c2I.jpg
IV-18なら8桁だから左3桁で時速と1つ空けて右4桁で回転数にしよう
めちゃくちゃカッコいい >>660
これなんかのキット?
それとも誰かの作例? >>665
見てわかんないやつはわかんないと思うよ 7セグLEDが古くて新鮮な時代になりつつあるのか
言われてみりゃ確かに7セグのLEDは減ったな、液晶7セグは時計やリモコン類や電卓等々で現役だが 液晶だと遅いって動画見せてくれてありがとう、液晶あきらめました。
7セグいいですね、使ってみたいけど初体験なんですよ。
点灯の明るさを変えたくてPCA9622DR(16ch)みたいなので制御したら2個単位だからありなのかな。
ってググってたら、秋月でWS2812B内蔵7セグ見つけて心ときめいたけど、大きさ1種類しかなくてぐんにょり。
車に乗せるのにVFDとかニキシー管とかマジックアイはちょっと…
コンパネあたりに内蔵させたいんですよー。
どうしようか迷う…
色々と悩んだり考えたり探したりする時間が一番楽しいんですよね。 二機シー緩みたいに懐かしいデバイスとして復権するかもな>7セグLED >>672
SUBIがあるから、アセンブル時にどうとでもなるだろ
って事か、どうしても使いたきゃADIW使えって事じゃね?
コンパイラの最適化だとSUBIに置き換えちゃいそうな気がするけど… なんでADDIではなくてSUBIに統一するのですか? >>672
前にBCD演算ルーチンを作った時に思ったのだが、
AVRには10進桁上がりのフラグが無い。
なので設計者はせめてもの償いにw
ボローのフラグを即値減算命令で用意した
ではないだろうか? ゴメン >>672 ではなくて >>674 ね。
BCD演算ルーチンを書けば分ると思う。 ついでに書いちゃうけど、加算と減算の命令を用意しなかったのは
命令コード空間に制約があるから。
たとえば8ビット(0~255)即値系の命令(LDI R16,$FF や ANDI R31,$AAなど)を
全レジスタ(5ビット、0〜31)で使えるとしたら13ビットになり、
16ビット命令コードの残りはわずか3ビットしか無い。
これを解消して命令の種類を増やすために、AVRには命令毎に対象レジスタに制限があり、
これがAVRの使いにくさの一因ともなっている。 >これがAVRの使いにくさの一因ともなっている。
(個人的な感想です) アセンブラ使ってても、たいした問題じゃないけどな… >>683
時と場合とCPUによっては10進演算の方が有利な(早い、小さい)場合がある
10進入力→10進演算→10進出力
10進入力→16進変換→16進演算→10進変換→10進出力
選択肢は狭いよりも広い方が良い 大した利点はないからこの先も使うことは無いし、俺の周りでは(面倒が増えそうなので)
使わせないが。 10進数演算ていつの時代だよ
保守的なx86だって切り捨てたっていうのに X64でもprintfは糞遅いからなぁ
知らないってことは幸せだ printfを使うような場所で
10進16進の変換コストなんて誤差だ 機械制御用の小さなCPUで、早くて小さいプログラムをアセンブラで書きたい場合がある
そういう要求が無ければ、有っても要求に応える能力が無ければ、御自由にどうぞ 操作パネルで生産個数を指示したり・・・などいろいろ そう言えば使った事は無いけど確かPIC18には10進演算補正命令がある 弱デジなんて製品サイクル3年くらいだし
メカ制御はともかく、標準ライブラリがメモリ食い・遅かろうが
そんなこと気にして労力使い、コストと天秤かける時代じゃないと思う。 うちのローカル用語ですまんwデジタルでいいよ。
(一応ニュアンスがあり、ありものブリッジかましまくって、
IOから後ろはご自由にっていうSoCなものを指す) >>692
それが機械制御ねえ
PIDとかのフィードバック制御かと思ったよ
そんなスローな用途で
アセンブラを使わなきゃならないって
なんかおかしくないかい? なんとかマウントしたくて必死なんだよ
分かってやれよw サーボバルブを使った2軸の油圧テーブルの位置決め装置などもやったけど
位置や速度をパネルから設定したり表示する時は10進数だが?
何を言いたいのか分らないし、これ以上は時間の浪費だな
機械制御を知らないなら口を挟まない方が良い 本当に時間の無駄だな。10進数自体が不要だなんて話なんかしてないのに。
俺も表示パネルとかやるけど、人間相手の表示にマイクロ秒オーダーのレスポンスなんて要求されない。 >>701
それ、
機械制御じゃなくてただのUI
機械制御盤のプログラム、
ただのコントローラーだ >Cで書いている人には関係の無い話し
>機械制御用の小さなCPUで、早くて小さいプログラムをアセンブラで書きたい場合がある
>操作パネルで生産個数を指示したり・・・などいろいろ
>位置や速度をパネルから設定したり表示する時は10進数だが?
機械制御を知らないなら口を挟まない方が良い よぉ〜〜ぉ!!機械制御のぷろ〜〜〜!!!!!!wwwwwwwwww Cで機械の制御しまくって、BCDなんて使わないし、10進表記のUIもたくさんあるんだが、
べつに普通だよな おまえが使わないのは勝手だが、おまえが使わないことを理由に
使ってる人を全否定するのは、井の中の蛙、下水道の中のゴキブリというもの。 おまえが使うのは勝手だが、おまえが使うことを理由に
使わない人を全否定するのは、井の中の蛙、下水道の中のゴキブリというもの。 AVRで7セグLED 使う時いちいち桁データ取り出すのが今時のプログラムなんだ いちいちBCDにしない
仮に桁ごとに値が必要でその分割コストが惜しいなら
桁ごとに1バイト使う
普通は2進数で保持しておいて都度桁に分割する 昔に比べてマイコンの性能は上がってるしRAMも安い
逆に、ソフト規模は大きくなって開発期間は短い
アセンブラを使ってのんびりパズルをやっていて良い時代は終わった RTOSでUI分離して、十進表示は”遅い”printfにやらせればいいだけ >>715
AVRで足りなければ他を選ぶだけ
LEDの表示用で足りなくなるなんて
ことも無いだろうけど
>>714
AVRの規模でRTOSなんて普通はのせない
無駄にCPUパワーやROM/RAMを使うだけ じゃあ普通に割り込みとその他で分離すればいいだけ
printfでOK 7セグLEDにprintfで表示するの?
変わってるね イソップの酸っぱいブドウじゃないけど、出来ない言い訳も色々だな
AVRでキビキビ動くプログラムを書きたければ
メモリがワンサイズ下のAVRにプログラムを入れるには
ポーリングが多く割込みだけでは処理しきれない複雑な処理を各タスクに分離する時は
・・・
うーん、どうでもいいか、何だか突然に書くのが面倒になった
こんなところでは何を書いても意味が無いようだ
各人好き勝手に高級言語を使って、AVR用の自分のレベルに合った
低級プログラミングを続けてくれれば、私としては特に言う事は無い
↓では御意見の有る方は順番にどうぞ しかし掲示板の伝言ゲームは面白い
>>672 SUBIがあるのにADDIがないのはなぜ?
>>674 なんでADDIではなくてSUBIに統一するのですか?
からスタートして
>>7セグLEDにprintfで表示するの?
まで、巡り巡って ♪思えば遠くに来たもんだ〜♪ >>ID:yWUur1+M
>こんなところでは何を書いても意味が無いようだ
7分前に自分が思ったことさえ実践できないノータリン printfの先、putcとかを自分で実装するんだよ。
7セグでもUSARTでもグラフィックLCDでも、なんでも使うんだよ >>721
逆引きな入門書読んでるみたいだよね
雑談系ってノイズがあるので面白いと思うんだけど、
自治厨には嫌われる側面がある。 >>723
7セグ表示にprintfを使うやつなんて見たこと無い >>722
言葉を省略してしまったが、
自分がマジメに主張したい意見があったとしても
>こんなところでは何を書いても意味が無いようだ
誤解を招いて申し訳無い
で、 >>721 は私のどうでもいい、ただの感想コメントだ
主張などは何も無い
しかし、最悪のノータリン野郎と思っている人間からノータリンと言われると
腹が立つより何だか笑えるw 私はプログラムを設計するときに、数値データを扱う案件なら、
BCDかバイナリか、パックかアンパックかなどを
時と場合(仕様とCPU)によっては速度やサイズに大きな差が出るので、
少しでも可能性があれば追及し、納得がいくまで検討する
だから、「大した利点が無い、面倒が増えそう」だからやらない
という考えには、人それぞれとはいえ、少し驚いた 今時30年前レベルの開発が許される会社があることに驚いた >>724
ノイズというよりも、私には
「数カ所の特異点で方向を変えてジャ〜ンプ」
みたいに感じる 7セグ -> printfの流れで
流行りの忖度してみると、
単にitoaしたいんじゃない?
普通こんなの考え込まないよ
サクッと済まさないと仕事終わらないよ >>728
AVRで作るような小さなプログラムはCでやろうとアセンブラでやろうと
慣れれば手間はそんなに変わらない
アセンブラで時間が掛かるなら、もっと勉強すれば慣れて早くなる
マスターすればかゆいところに手が届きまくるプログラムが(並列処理処理なども)書ける
そうすれば、ここはAVRを諦めてARMに、なんてことが無くなるかもしれないかもしれないw
と書くと可読性が、可搬性が、移植性が・・・などと言い出すのかな?
ま、利益が上がる方法でやってくれ、会社にとっては利益こそ全てだ
意思の疎通は難しい
それでは皆様、私のいくつもの駄レスのご精読有り難うございました、サヨナラ、サヨナラ >こんなところでは何を書いても意味が無いようだ
と言い置いてからの延々6レス
しかも、誰かに精読されてる幻覚を見ているらしい
痛いヤツ Cとアセンブラで手間が変わらないって
Cをもっと勉強した方がいいぞ この人はC言語は一応知ってるけど全く使いこなせてないいつもの人だよ
とってもかまってちゃんな人 >>737
簡潔にまとめられないのは、理系として致命的だよな >>740
実社会では誰からも相手にしてもらえない引きこもりかなんかじゃないか?
そもそもこんなところで真面目な議論を期待する方がどうかしている。 >> ID:yWUur1+M
>こんなところでは何を書いても意味が無いようだ
>>ID:JLxy8gLz
>こんなところで真面目な議論を期待する方がどうかしている。
さ、こう宣言してからの連投開始です。 >>740
いじめられる方が悪い
いじめられたくなければ隙を見せるな
ゆとりか? >>741
ブログでも始めて取り巻きに囲まれて暮らすことをお勧めする
いれば な 今年に入って何時間経ったかBCD計算で出してもらおうか サマータイム導入が決定すればSE、CODER
200,%可動モード!
アベ政権を死守せよ >>742
こんなところで真面目な議論を期待したい気持ちも少しはある。 atmel studioで"sprintf"関数を使おうとしたらヘッダファイルstdio.hのインクルードだけでなく、
リンカーの指定:
Use vprintf library(-Wl,-u,vfprintf)にチェックを入れ
-lprintf_flt フラグを追記する
https://startingelectronics.org/articles/atmel-AVR-8-bit/print-float-atmel-studio-7/
をやれって言われたんだけどなんでこんな面倒なことさせられるの?
PCでC言語書いてたときはこんな面倒なことやらされた記憶が無い 前から実数を文字にしてシリアル通信でPCのコンソールに表示しても
ちゃんと表示されないので桁挙げて整数にしてたが
これやればいけるのか へー >>753
出来上がりのバイナリサイズが激増するけどな… 純正ライブラリのprintf周りは実装がヘビーだから
ライトなサブセットとか必要な機能だけ抜き出して
使うのは常識だと思ってたがな
探せばライトな実装のソースあるから探してみ アニメオタクさんのxprintfいつもお世話になってます ヒープの実装とかやってられっか!そんな暇じゃねー(ちゃんと動かす自信ない)
てことで、必要なとこだけ適当に作るわ。 attiny13に入らないものは机上の空論、絵に描いた餅。 AVRのメインストリームは50円のattiny13だろ。 オラの使用頻度は tiny2313 → mega328 → mega1284 の順。
ほとんどの場合、I/Oの点数で決る。 ATTiny44って需要ないのかな?
1個50円で4KBあってピンが14本あって
ほとんどのことが出来るんだけど、世界的に需要がないね 俺も第一選択肢は2313だったけど、最近1616に変わった。 「ほとんどのこと」って個人差が激しすぎる表現だよね。
tiny13しか要らない人もいれば、xmega128を使い切る人もいる。 それがその人間が持つ「世界」なんだろ
そっとしといてやれよ 電電板の「ほとんど」は自分の性格の悪さを競うところだからネw そもそもどこでATtiny44を1個50円で売ってるんだよ…
俺には見つけられない 少なくともattinyでCを自由に使うことはできない。メモリの制約ありまくり。 そりゃメモリの制約じゃなくて自身のスキルの制約でしょ。 ∩___∩ |
| ノ\ ,_ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ (>>773)
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
\ " / | |
\ / ̄ ̄ ̄ / >>772
BCD演算ルーチンも作れないような技術レベルの人が、
プログラム設計時にBCDとバイナリのプログラムサイズ、実行速度の比較検討も出来ないような人が、
小さくて早いプログラム、に何の興味も無い人が、
tinyのプログラミングをCで済ませようとするのは、当ったり前でしょ? 要らん苦労をすることもないからな
趣味ならやっつけ上等だ
仕事なら・・・
ご愁傷さま >>772
いつの時代だよ…
メモリのせいでCを使わないなんてtinyでも
ほとんど有り得ない。アセンブラで下手くそな
コードかくより、コンパイラの最適化で吐かれ
たコードの方が効率良いぐらい。
どうしてもアセンブラで書かなきゃ困る場面は、
1クロックが問題になる時ぐらい
その場合でも、その部分だけしかアセンブラで
書かないけど… USARTの送信緩衝レジスタ空き割り込みとSPIの送信完了割り込みって実際に送り終わってからかなり遅れて発生してる?
送信クロック8MHzで64bit送ってるんだけどもなんか思ったより通信頻度があがらない >>779
割り込みハンドラの問題じゃないの
そういうときこそインラインアセンブラ使うんだよ
該当箇所のソース晒してみ? >>779
超手抜きプログラムでUSARTの検証をしてみた
#define F_CPU ( 24UL * 1000 * 1000 )
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
ISR( USART_TX_vect, ISR_NAKED )
{
asm volatile (
"sbi 0x09, 2 \n\t"
"nop \n\t"
"sbi 0x09, 2 \n\t"
"reti \n\t"
);
}
int main( void )
{
DDRD = 0xff, PORTD = 0x00;
UBRR0 = 0;
UCSR0B = (1<<TXCIE0) | (1<<TXEN0);
sei();
while ( 1 ) {
_delay_ms( 100 );
UDR0 = '@';
}
}
https://i.imgur.com/ta8Imkt.jpg
大体、152〜153クロックくらい遅延する感じかな?
そもそも、このプログラムで遅延が測定できているかは不明だけどw >>781
ごめん
16〜17クロックくらいの遅延だね >>780
もともとCで書いてないよ
普通のアセンブラ
64bit転送するのに20μ秒くらいかかるね 割り込みで6クロックで次データレジスタに入れてるのに64bit送出に20μ秒かかる
転送は1バイトあたり16クロックで1μ秒なんだから
余計な時間が18クロック近くあることになる SPIの話なのか、USARTのSPIモードの話なのかがまず見えん。
SPIならデバイスによっては送信二重バッファ無いし。 どっちも試して
USARTのSPIモードだと20μ秒、SPIだと23μ秒かかる
SPIは送信完了しか割り込みがないのと
使わないMISOが入力モードに固定されるからUSARTの方を使ってる 3us変わってるってことは二重バッファの効果は出てるってことやね。
割り込み処理の内容が重いと思われるが、ソースが無いと何とも・・・
16MHz動作だろうが1バイト送る間にたった16CPUクロックしかないんだもんな。 余談だが、xmegaのDMA使って16MHzクロックのSPIが遅延無しで動くのには笑った。 >>788
>>784で書いたけどUDREベクターの割り込みの処理内容は6クロック分しかないのよ
ポインタをインクリメントして配列からUDRに次バイトを入れるだけだ
6クロックでデータ入れて16クロックで送ってるのに次のデータの送信が始まるのが送信終わりのクロックから18クロック後になる
つまり1フレームに40クロックかかってる
本当にUDRが空になった瞬間に割り込み処理に入ればジャンプ入れても1フレームは26クロックで済むハズ 実験だしSREGのPUSHとPOP省いてもこれなの
とにかく何故かUDREベクターにジャンプするのが遅い
CKOUT出してロジアナでXCKと合わせて監視するとわかる
シフトレジスタに投げたら転送中にUDRに次を入れたいのに
送信が始まって33クロックも後にこられても…16クロックの時点で送信終わってるのにw
これじゃ実効bpsが3.2MHzしかでないよ bpsがMHzておかしいなまぁ言いたいことはわかるからいいか
明日もうちょっと実験してみる mega328pでUDREベクタの内容をこれで試してみた。
UDRR0=0設定できっちり17クロック毎に割り込む。
何か別の割り込み無限にが動いてないか?
たった6クロックの内容ならコード出しなよ。
.global USART_UDRE_vect
USART_UDRE_vect:
nop
nop
ldi XL,0xAA
sts UDR0, XL
reti 確かに>>793のコードでnopを一つ減らすか、ベクターテーブルをrjmpで生成する
Relax Branchesオプションを指定するかして1クロック節約すれば遅延無しの実質8Mbpsになる。
安物のオシロでもこれくらいなら見れる。 > メモリのせいでCを使わないなんてtinyでもほとんど有り得ない。
w 2313でCを使っていて困ったことなどほぼ無いんだが > 2313でCを使っていて困ったことなどほぼ無いんだが
天才プログラマー現るw あなたの世界では私は天才の部類なんですか。それは光栄です。
GPS校正の7セグデジタル時計、ステップモーターの等加速度コントローラ、
フルカラーLED電子ホタル、電子ルーレットなんてのが今ぱっと思い出せる2313作品です。
もちろん処理によってはアセンブラ関数も利用していますが、ベースはAtmelStudioでGCCですね。 >>798
え?
なんか、時代に取り残されてない?
avr-gccが吐くコードを見たことないでしょ
ほとんどオーバーヘッドないぞ? >>799
なんか大海の広さは知ってるからあえて大海に出ない井の中の蛙みたいですね。 大海を知らないから井の中の蛙と呼ぶのであって
知ってて出ないなら、冒険者ではないにしても賢者かもしれんよね アセンブラなぁ
スタートアップコードとか
コンパイルした結果がおかしい時に見る位だな
後はデバッガでの逆アセウインドゥか
昔は通信で同期取るときとか命令表見てキリキリ書いたものだが
今時アセンブラ使わなきゃならない場面て何がある? >>803
あなたの趣味がより資源のチープなデバイスに無理矢理収めることなんですかね?
それも立派な趣味です。
私はあくまで「動かすこと」が趣味ですから、目的や規模に合わせてデバイスを変えてるだけです。
50円や100円程度の価格差は、私の趣味の範疇ではほぼ無意味なので。
フルアセンブラによる開発は昔さんざん「やらさられた」のでもう飽きました。
まあそのせいか、私はまだアセンブラ関数を使う方だと思いますけど。
何より複数人数で開発するのにフルアセンブラは無理がありすぎですわ。 散々アセンブラ使ってると公言しておいて今時アセンブラ使わないとか言われてもね。
同一人物だとは思いますが二人して論理破綻してることに気づいてないんですか?
やはり大海を知ってる井の中の蛙ですな。 あのぉ、私は「アセンブラ関数は」使います。「フルアセンブラ」をしないだけで。
使わなきゃいけないかはともかく、使いたい場面は私にはあります。
>>804さんとはちょっと違うのは明白じゃないですか? >>807
いつも思うんだけどさ
おサルのお前がさっさと進化して2足歩行すれば
マウントも取られずに済むんちゃうん? >>809
それ、同意。
「意識高い系?」とか「マウント取られた。」とか言ってるヤツは、
お前が低能だからだろ、アホをカミングアウトされても困るんだわ、って感じ。 SREGの全体割り込みを禁止してあって
いくつかフラグが貯まってるときに
全体の割り込み許可を出すと実行される順番ってデータシートに載って無い?
割り込みベクター番号の一覧っていうのかな フルアセンブラとCのインラインアセンブラは似て非なる物だよ。
AVRを趣味として楽しみたい人にはフルアセンブラがお勧め。
フルアセンブラだとCPUとの間に薄い膜が存在しないので、生の感覚を楽しめるw
Cではタイムスライスも出来ないし、ADDI命令が無くてSUBI命令がある意味も分らないww 私はAVRを隅から隅まで熟知したいと考えているし、
AVRが持っている性能を限界まで追及したいと考えているので、
フルアセンブラで作っている。 (以上は個人の感想です、反対意見は御自由にどうぞ) >811
一部の新しいCPUを除き、テーブルの若い番号から順に実行されるのでは?
割り込みベクター番号の一覧は資料に掲載されているよ。 優れたプログラマは
Cでもパフォーマンスが出るように記述する
アセンブラを使うとしてもごく一部 君らどうなったらもめ事やめるん?
面倒いからお互いゴメンナサイして仲直りしな。 ベクタの完全な一覧は32頁の「割り込み」 で示されます。
この一覧は各種割り込みの優先順位も決めます。
下位側アドレスがより高い優先順位です。
リセットが最高優先順位で、
次が外部割り込み要求0(INT0)です。
と書いてある、原文(英文)は確認してない 書いてスッキリするならいいんじゃないの
聞いてくれる人も誰にも褒めてもらえないんだから
おれはお年寄りの話聞くようにしてる、寂しいもんね このフルアセ爺さんまた沸いてたのか。昼間からよほど暇なんだな。
何の役にも立たん個人の感想も相変わらずで元気そうだ。 昨夜のUDREベクターの人の話が半日で流されとるw 6800とか6502をフルアセで触ってドヤッしてた世代なんやろな
直交性(笑) ファミコンみたいな低スペ機でマリオカーとみたいな3D世界を表現する原理はわからない その質問が何故AVRスレなのか(笑)
因みにスーファミの話ならば、スプライトと拡大縮小のキーワードでググるんやで
スーファミの頃はまだ擬似3Dやし
ちゃんとポリゴン計算した3DはN64以降やな ID:IatDFWpP ID:5CIPvHcX
このスレチのアホどもはなんなんだ >>831
そのノスタルジックなスーファミをAVR使って再現しましたってところまでもっていくんじゃね?
まさか関係ない話をAVR絡めないままひっぱったりせんだろ。
まさかなぁ・・・
そんな馬鹿はいないと信じてるよ。 >>829
その疑似3Dの仕組みが分からん。
どうやって遠近法を表現してるの?
画像切り出して変形? tinyAVR使ってる人あんまりいないのね
このクラスの石だとPICが多いのかな 両方とも使ったみたが
C だけ、 or Asm だけ、で使うなら大差無い(変体Archとか言われるが、実際使ってみるとそれほどでもない)
C & Asm で使うなら、 PICは駄目だね
そもそも呼び出し規約の説明すら殆ど書いて無いし(使って欲しくないという事なんだろうが)
コンパイラが吐き出すコードもまともじゃない(動かないコードを吐いたりする)
元がスタックに変数積めないArchだから、深く突き詰めてもしょうがないが・・・
I/OはPICの方洗練されてる
今手元にあるAVRは 32u4, tiny85 で、 最後に買ったのがコレ
これ以降、下位クラス(8-bit)は、PICに変えた。 >>837
何をもって“いないのね”と結論付けてるんだ? PICはって結局16F84Aあたりを指してるのかな?
最近のPICは8ビットでもスタックに変数を積めるんだけどね。 >>839
>両方とも使ったみたが
>C だけ、 or Asm だけ、で使うなら大差無い
イヤァ、久しぶりにイスからズリ落ちそうになるほど驚いた。
私は両方をフルアセンブラで組んでみて、その大きな差に驚きあきれて、
2度とPICなんか使うかと固く決心したのに、こういう人も居るんだ、う〜む。
世の中、ホントに「蓼食う虫も好き好き」だな。
まぁ16ビットPICなら一度は使って見たい気がするが、エラッタが多いそうだし・・・ >まぁ16ビットPICなら一度は使って見たい気がするが、
使ったこと無いのか…。
>2度とPICなんか使うかと固く決心したのに、
でも決心したのか…。
馬鹿っぽいな。
正しい決心
2度とPIC16F1より古いPICなんか使うか >>843
おいおい、勝手に順番変えないでくれよw
2度と使うかと決心した後で16ビットPICが発売されたんだぞ。
でも16ビットPICもあまり良い評判を聞かないのが残念だ。
8ビットPIC使うにしても、スタック領域をユーザーが自由に確保出来るものでないと使う気がしない。
なぜなら私こそは、天上天下唯我独尊、知る人ぞ知る、知らない人は誰も知らないw
「タイムスライス・マン」なのだ! チャンチャン
さて、そろそろ死んだ真似でも始めるか・・・ 色々と御不満もございましょうがw
趣味のAVRはメチャ楽しい。
ハード作業(基板の配線など)が終ってプログラミングを始めるときは、
特に新しい周辺機器やデバイスを使うときは、
なんかもうワクワクして、早くPCの前に座りたい。
止められまへんな。 俺も趣味のAVRは楽しいと思う。
CPU自体の機能はそんなに無いけど、情報の多さ、値段の安さ、手軽さなんかも魅力的。
仕事ではSPARCだけど、高機能でなんでもできちゃう反面、お利口すぎてつまらないです。
人それぞれ、感じ方、やりたい事、スキル、予算なんかも色々とあるとは思うし、拘りもあると思うんで、好きなCPUを好きに使い倒したいなぁと。 情報の多さって...
データシートがちゃんとしてれば他に不要では?
特にAVRみたいな低機能マイコンでは それはAVRに限ったことじゃねえw
日本人が何人いるか分かってんのか? アトメルが日本であまりプロデュースしなかったからね microchip傘下になったことやし
これからは日本でもガンガン売るで〜 >>858
どこいら辺が?
AT90S1200以外は何の問題もないでしょ
もしかして、でかいスタートアップが付くとか
吐出されるコードが爆発的に膨らむとか思ってる? いい加減しつこいなあ
あんたには修行並みにつらいことなのかもしれないけどさ
cで書けるってやつは自由にしていいじゃねえかよ >>860
×Cで書ける
○アセンブラすら書けない 多くの場合で「tinyをCで動かすのは窮屈だな、フルアセンブラで書こう」になるんじゃないか?
何が何でもCで書く、あるいは何が何でもアセンブラで書く、というのは
臨機応変、融通無碍、変幻自在とは言えないと思うw AVR=Arduinoみたいな捉えられ方されて
Arduinoで使いづらいATtinyの勢いが落ちちゃったのかな tiny261系にuart/spi/i2cが付くか
tiny2313系にadcが付くかすれば
それがarduinoに使われたんじゃないのかと
両方付きで汎用となるとmega328系に流れる… tinyは掛け算できないからArduinoのメインストリームにはなぁ
ただでさえ遅いArduinoコアがさらに鈍亀になるのでは…? tiny3216とか言うIOピンが少ないだけでmega328と機能的に変わらないのが出てるけどね。
でもAVR系Arduinoの後継はmega4809。 機能はtiny3216 > mega4809 > mega328 だね。
mega4809が使われるArduinoはWiFiモデルだからメジャーになるかは疑問。 MicrochipはAVRの後継モデル出してくれるの?
飼い転がしにされたらいやん むしろAtmel時代より新製品のペース上がってねえか? パッケージとフラシュのバリエーションが豊富なだけで乱造気味。
Tiny3216あれば十分、早くリリースしてくれ。 817と1616は持ってるよ、いろいろ遊んでます。
3216も1$ぐらいだから1616/816と変わらないのでこれからは3216一択です。
Digikeyみたら在庫0だが価格122円となってます。 3217は11月予定だけど3216は? 3217は出荷中ステータスになってるけど3216はまだなんだよねえ。
俺には3217はリードレスで使いにくんで、ついでがあればmega3208買おうと思ってるんだ。
つっても変換基板に付けちゃえば使いにくいも何もないけどね。0.8ピッチのQFPなら苦にならんし。 MicrochipDirectの3217出荷予定が11月20日ですが3216はサンプル出荷さえまだのようです。
Mouserを見ると3216取り寄せ中で出荷予定は来年1月14日になってました。
これがサンプル出荷かな。 3216と1616の価格差は10円ぐらいしかないですね。 新シリーズはSPIと内部のカスタムロジックでWS2812のドライバが組めるから好きだわ。 個人的に内蔵RCクロックが正確になってくれれば85で問題ないんだけどな 個人的な要望なら俺はこれかな
@xmegaのIOピンを5Vトレラントにして欲しい
Atinyの電源が3.3Vでも20MHz動作を保証して欲しい
SDカードやセンサチップ等で3.3Vも多いからレベル変換積むのめんどくさい。 RCクロックなんて校正すればuartぐらい問題ない。
1616はosccalが6bitとちょっと残念だがXmegaゆずりかMaxは32MHzまでだった。 校正『すればいい』のか
校正『しなきゃいけない』なのか・・・ >>884
校正しても揺れ幅が大きいんだよね
うねるというか
±1%ぐらいにならねーかな 電源電圧とチップ内温度をADCでモニターしてリアルタイム補正するんだよ。 OSCCAL動的に弄ってダイジョブなの?
つかテーブルでメモリ潰れてしまうがな
やったことあんのか? ネタにマジレス・・・・
uartならUBRRの方いじるだろうし、
ソフトシリアルならタイマいじるだろう。 あまりに揺らぐからピン1個潰して外部オシレーター付けるはめになったよ >>889
大丈夫だよ
I2Cマスタから0x55やAA送って校正とかよくやるし >>I2Cマスタから0x55やAA送って校正
数時間考えたがわからん。
かなり限られた状況で汎用性が全くなさそうなんだが・・・・
uartならブレーク後0x55で自動同期なんてのは理解してる。 もう、セシウム周波数標準に同期させて
内部RC発振器使えよ… 昔、AVRを始めた時、内蔵CR発振回路の周波数を個々に測定して較正していたのだが、
温度やVccによる変動も多いし、UART(私用に限るが)もエラーが発生しないので辞めてしまった。 UARTついでに一つ便乗質問
内蔵1MHzクロックから9600Hzの生成の方法教えてくれ
文周しても微妙に9600Hzからずれるらしく文字のやりとりしてても
ときどき文字化けする データシートにまんま書いてあるじゃん。
倍速動作にしてUBRRは12だよ。 ほんとデータシート読む気無いのな。
その程度のやつか >>893
ごめん正確なクロック源のマスタから
定期的に校正パルスを送るだった。
55やAAは忘れてくれ tiny1616の日本語訳データシートはマイクロチップ版とAVR.jp版の2種類あるんだな。 ここは子供たちに謝罪せねばならない。
20年前からPDFは糞だと言い続けたのに普及してしまった。おれの力不足だった。 RAMに溜め込んでから処理する癖が抜けないな(´・ω・`) >>907
PDFよりすぐれたものを普及させてから言え 8bitCPUでも特に高速なAVRですら糞重くてPDFは扱えないのだ。 >>908
readlineで一行ずつ読み込むんやで ATtinyではなくATmega48を選択するのは、ピン数が欲しい時くらい? ひとそれぞれでしょ。
ピン数だけならtiny48でも足りるんだろうし。
mega48使っちゃいかん理由でもあるのか? デフォがmegaで何かあったらtinyだな
単純コンパクトなのはPICで済ませちゃうし… IOは7ピンしか要らないが必要な周辺機能がxmegaにしかないから
xmega32E5を選択したことならあるぞ 偽物来たけどあらかじめ判ってて受け入れた
中古ICも来たことあるこれも笑って amazonですら、中華からくるヤツはヤバイぞ。
仕様通りに動かないとクレーム入れるとあっさり返金してくる。
品質は保証できないんで、とか理由つけて。
売る側は偽物だってわかってて売るんだろうなぁ。 ホビー程度じゃ問題ないことが多いので気づかない人もいっぱいいる。 明らかに相場より安いFETとか買ったら
スイッチング特性とか測ってみ >>928
ON抵抗が一桁高いやつはあったな。
まぁ、小信号用にしか使わないから放っておいたけど。 地名だから秋葉(秋葉原)で合っている
追加するなら大須 大須は電気街の名称いい加減返上しろよ。
東京から引っ越して秋葉みたいに部品売ってると聞いて行ってみればあの程度。 大須は昔から電気街ではなく、ああいう雑多な商店街の中に
電子パーツ売ってる店があっただけやし
電子パーツ的にはこの10年くらいはかろうじて息してる程度
昔からB級ファッション街やで >>939
愛知地元民に部品買えるとこないの?
って聞いたら「大須!秋葉みたいな電気街だよ!」って教わったんだが・・・
地元民は電気街で認識なんじゃないの?
愛知県民特有の見栄大盛話だったんかなw 大須は京都の寺町みたいなもんやで
東京だと町田レベル 日本の各都道府県別にAVRの主な入手先(方法)とかあったら面白そうだがなぁw >>948
Digikeyが優秀すぎるんだよな。。。
秋月全然つかってないや。 >>948
おいおいマジかw
もうちょっと膨らませてくれよ。 大阪民国だけど
マルツ共立デジットで買うより秋月通販のほうが安いから仕方ない
送料払ってもだ 俺はDigikeyを使うにしても毎回金額が小さいからマルツ経由だよ。
店頭受け取りで送料無料だもんね。 >>955
そんな事できるんや・・・
知らんかった。 納期2日増し、単価1割増し
くらいでマルツがdigikeyから買って送ってくれる
メール便もできるし送料無料も3000円から
店頭受け取りも可 デジットはVFDの流通在庫と思われるものとか安いキセノン管とかレアものも案外あるから無くならないうちに買っておいたほうがいいで tiny3216
digikey 122円
マルツ 170円
mega3208
digikey 167円
マルツ 232円 それくらい欲しいときに検索せえや
在庫ないときだってあるし ATTINY412-SSNR
マルツ \79
1個から可 おまえらって飽きずに電子工作なんかやってなに作ってんの? >>964
これDigiKey経由でくるやつかな? Arduinoとブレッドボードとセラミック発振子とジャンパ線があればライターは作れる
AVR系は5V印可だよね
最近の表面実装チップだと変換基板が必要か > まあライター製作は定番だわな
1万円程度してた時ならな
今は中華の台頭で、3000円も出せば本家コン・パチモノが買えるから
敢えて作ろうと思うヤツは少ないだろ
ネジ/釘を自作しようと思うヤツがいないのと同じで
自前で作った方が遥かに高く付くし、自作して得られるものも無い。 >>971
いつの知識だよ…
さては作るのはパラレルライターだな あまりに安いのも考えモノだよな
何かを作ろうとする
その切っ掛けとなる、動機付けそのものが無くなってしまう。 ICSPライターなら、400円あればarduino互換機で使い物になる。
https://imgur.com/gallery/2yYUE78 やっぱりこんな値段になるのね。 これじゃ買う物好きも少なかろう。 >(前スレ続き)
じゃねえよ。
先にこっち埋めろよ、カス。 ごめん、次スレ立てるの早すぎたね…
娘たちにプログラミング教えたいんだけど、どうすればいいんだろう?
一緒にAVRマイコン使いたい。 今からやるならARMのほうが役に立つんじゃ。。。。 Arduinoで5200円!? と思ったけど WIFI有のArduinoは前からそれなりのお値段だからしょうがないね
8266? だまらっしゃい! ESP32をArduino化した方が安い(違…わない 疎だねー 無線要らなきゃpromicro互換品で激安 娘に命令を教えるのって、どういう風にすればいいんかな。
昔、LoGoって言う幼稚園児でも覚えられる高級言語があったけど、今でもあるんだろうか? アセンブラで一から叩き込め
下手なお膳立てすると将来効率の悪いクソコード書きになる C言語も害悪
本質を理解せず物を作ろうとする考え自体が甘い
そういう態度で作った製品が世の中に出ては品質トラブルを起こすのである このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 246日 2時間 36分 28秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。