AVRマイコン総合スレ Part39©2ch.net [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
(()((()))())((())()()(())(())()))((()((()(())))))()))()()((()))(()()()()((()
)()())())())()()((())()()()))(()()()))()))(())((((())()()()()(()((()(())()((
)(()(()((()((()))))(((())(())()))())))(()((())())()))((())()()(()))((()()()(
(())()(((()((()))(((()(())(((())(()((()()())())))()))))()())))()))()((()(())
))()(()))()()))(()))()))()((()(())))((()))((((()))(())())()((()())()(()(((((
))((((((((((((())((())()))(())(())(())()))()))))()))())())())()((()))()()(((
))()))())(()))))(((((((())))))(((()((()))(()()(()))(()))((((()())))((())()((
)((((((()()(())()()(()))()()((()()((((()))())()()))())())())))(())()()(()())
()(())))())(()()(((())()())())()())()())(()())()))((())(()((((())()))((()(()
))())(())())(()()(())(((())()((((())))(((()((())(()()())())(())())(())()))()
))()))()())())))((()()))((((((()))((((())())()))()(((())()()()))((()()()(()(
)))((((((()())((()()()()((((()))()(()()()()()(())))()((()()()())()())))))())
(())()))((()())(()((())))))))((((()()))()(()((()(())()))(())()()(((()())(())
()()((())())())))((()())))()()()())(())))()(()()())((((((())((((())))()()()(
)))))(((())))())((((()(())))(()((())())))(()))(((()(()()(((()())))))(()()(((
()((())((((()(()()(((())())))))(())()(()()(()()))))((())(())(()())()))))((()
)())(())))((()(((()()()))(((()(())(())))()()()()())))))((()(())(())(())()(((
)()(()())()()()()))(())(())()()()()((()(()))()))(())()))(((((())(((()(()))()
(()()((((()(()(()())))(((()))())))(())()))()))()())()())()(())(((()())(((())
((()))))())(()(())(())(((())((())(()))))()()()(()))(((()((()()((()((()))))))
(())()()()()()()(((((())(())))(()())())))(())()))((())(((((((())())))()))(()
()())()(()())(()(((()))((()(()((())))((()(()(())()())()))())((((()))))(())))
))())()))((()()(())((()())(())(())()()())))(()(()()(()))())())))((()(((()(((
)(()))(()(()(((()))()(()))(())()(()())))))((()((()))())()()()()()(())()()(((
()())())()())((((((()))(((())((((()(())((((())())))))(()))())))))(())))((()(
())(())(()(()))(()(()())((()((()(((()(())()()())((())()(()())())()()))))))()
()(()((()(((()))))(())))(())(())))())((()((())))(()(()(())((())))())))(((()(
(()())(())((((((((()(()(())))(((((())))()()())())()()((())()))()))))()())())
())())())()()))))(((()())(()())))()))))))(()()((()(()(((()(((()))()()()(((((
())((()((()(())(()))(((())((())()((()())(((()))())((()))()))())))(()())())()
)(()()())())))(())()))))((()))())(())()()())(((((((()(()((()((()(()))(())())
()))((((((()))))(())()((())()))(()()()))()))(((())))())(())((())())()(()((((
()()))))()((()))((()((())())()()(((()((())()(()()))()))()(((((()))))((()))()
))()(()((()((())((()(())(()()((()(())((()))())))()))()))()())()(()()())()()(
)(()((()))(((((()))()())()((((((())()))())))))())()()))(()))())()(())((()(((
))(()()))()((()()((((())(())()))()())()))(((())()(((()()))()))()(((()()))()(
(((()())(()))))())(()))((())(((((((((()()()()((()()(((())))))()()))(()))))))
(((())()))(((())(()))(()))))((((())))()())))(((())(((()(()(()())))))))((()((
))()((()(((()()()()(()))))))()(())(()(()))()()()()))(()(())(()(())(())))((((
()()))())(()()))()(((()()())(()(()))())(())()))(()(())()(()(())))((())((()((
(())(()()))(((()))))))()(((()(((((()()())(())))))))()))())(((())(()(()(()()(
()(((()((())(((()())((())))(())(())()())))))(((((()()())())()()))()(())))(()
))(()(()()))(()))((()()(())((())()(((()()))(()(((()))(()))))))))(()))(()((((
)))()(()(()(((()(())(()()()))(()))())))(())(((()((()()()((((()()()))())))())
))((()((())))))))()()()(()))((()())))))()()()))(()()((()()))((((((()()(()(((
()((((()())(()())))(((()(())(()((((()())()))((())()()()(()()))))())((())))))
)()()()()(()()(())()))((()()(()))))(())()())())))()))(((((())()())(((()(()((
(()()))))())(()))()(()(())))))(())()(())())((())()((())((())((()))((())(((((
())(())((((()(((()()(()((())(())((()()))))(())())()())(())))())()()))()(())(
(()())(((((()()(()))))()))(()())()((()()())((())()())(((())()()()(()))())()) #define hoge 0b11000000
fuga = hoge | 0b00001100;
piyo = hoge + 0b00001100;
これって2行目と3行目どっちが早いとかありますか?コンパイルしたら一緒ですか?
使い道としては2行目が明らかに正しいのだけど同じビットが1になることがない仕様ならどっちでも結果は同じだよね? >>6
それ、どちらも
mov reg,0xcc
になるだけなんじゃ? リスティングファイル出るのになぜ自分で確認しないのか。 >>7
やっぱりそうですか
ありがとうございます
>>8
全く以てその通りです
ビット論理和で記述します
>>9
コンパイル語のマシン語?を確認する方法があるのですね
知りませんでした調べてみます
ありがとうございました むう、ライタでhex書き込みして、直後はちゃんと動くのに、一回 ソケット 抜き差しすると異常に遅くなるのは何故だ ATTiny13a ってば 自分がやっちまった「異常に遅くなる」の原因は、
1、Fuse設定ミスって1MHzのつもりが128kHz
2、PinChangeやらTimerに割り込まれまくる
でした >>12
空きピンがHiZのまま放置したせいで、
割込がかかりまくりってのは経験した 11だが、Cで書いたのは問題ない。
アセンブラでかいたやつだけなるので、
きっと何かが激しく抜け落ちていると
思ってる。
割り込み処理手抜き過ぎなのかも >>15
やってる。というか、邪魔な部分が多いので面倒くさくて飽きてきた (ぉ iPhoneのイヤホンから信号を出すとして
そのままAVRのADCに繋げばいいのです?
iPhoneの音声信号は音みたいに交流信号ではなく
0V〜1.5Vの矩形波をイメージしてます 米粒ATTiny10でGPIOやろうとしてます
ヒューズビットでリセット無効にすることで、GPIOが4つになると思います。
PB0〜PB3、4つとも出力 とか 4つとも入力、って出来ますか? もちろんできますよ。
ただしリセットピン無効にするから、高電圧プログラミング使うなら回路に気を付けて。 日本語訳のデータシートのほう(10〜12共用?)を読んでたら混乱しまして。。
ありがとうございました。
普通に
DDRB |= 0b00001111; で4つとも出力
DDRB &= 0b11110000; で4つとも入力
で大丈夫ですね? PB3:
ADC3: ADC Input Channel 3
PCINT3: Pin Change Interrupt 0, Source 3
RESET: Reset Pin
データ・シート見る限り、PB3は入力だけじゃないか? 交換ポート機能が入力しかないだけでIOとしては入出力ができる。
ただし駆動能力は低い。
リセットピンをPB3ポートの出力とした場合の特性もちゃんと代表特性に書いてある。 >>18
全部入力ピンにした場合の使い道が思い浮かばない。
ロガーにはなるか。 >>23
純粋に信号入力として使うのでなく、OPEN にしたい目的でした。
出力だと PUSH/PULL になり、VCCかGNDのいずれかになると思います。
ピンを入力にしてプルアップ無効にしたら、OPEN と等価になりますよね?って使い方を予定してます。 ならリセットピンはリセットピンのままでいいような気が・・・・ それの何が問題なのかさっぱりわからないけど、弱プルアップされてるよ。
何が目的で入力をフローティングなんてイレギュラーな事がしたいのかな? そうすることが消費電流を最小に出来ると思い込んじゃってるのかしら。 何も繋がないなら
入力ピンにして内部プルアップするか
普通に出力ピンにしなさいな
もしかして物理的に切り離されると思ってるのだろうか…? ハードロジックやらずにソフト経由でいきなりこっちを始めるとやらかしそうなところ。 誰も望んでいないしケチも無いシリーズ第2弾 (Arduino板から)
UART/I2C〜LCD変換器を作った後、そうだ、ついでにと
4桁7セグメントLED数字表示器(秋月の青色OSL40562-LB等)用の
http://akizukidenshi.com/catalog/g/gI-04449/
UARTのTxD3線式(電源込み)変換器を作った。
http://i.imgur.com/tYOfIpZ.jpg
(基板裏面に見えている白色パーツがLED)
3PジャンパーA:LED基板アドレス1〜7(7枚28桁まで接続可能、アドレス0は全ボード共通コマンド)
3PジャンパーB:ボーレィト設定
輝度調節が可能、数字以外のパターンも点灯可能など。
メモリがいっぱい余ってもったいなかったので、
電源オン時のセグメント点灯試験の表示パターンをナイトライダー風など何種類か作り、
それでも余っているので、4桁の数当てゲーム(Hit and Blow)も作った。
(PCのターミナルモードで送信して操作する)
1KWプログラムメモリって結構あるな、と実感した。
これも5年経つけど、一度も他の機器で使った事が無い。
まぁ趣味の電子工作では有りがちだと思う。
未使用は残念だけど作る過程は十分に楽しんだ。 ATTiny10ですが AVR Studio でコンパイルすると
undefined reference to `__fixsfsi'
ってエラーが出るんですが、どういうときに出ますか? いやそんなはずは・・・
hoge って関数を使ってとして
void hoge(float a)
{
うんたら
}
んで、それを呼ぶところ
hoge(4.3);
のときは成功して
float a = 4.3;
hoge(a);
だと先ほどのが出るんだ attinyのlibmはfloating pointのhelper functionをサポートしてなかったと思う。 8ビットcpuだとlong(int32_t)の使用すら極力避けるのにfloatってあんた
どうしても整数では無理なのか 掛け算できることをたいにーちゃんに自慢しまくるめがちゃん
少数の計算で頭いっぱいいっぱいになるたいにーちゃん 書き忘れたけど、この回路ではI/O(ジャンパーやLED、通信など)を20点使っている。
tiny2313では不足するのでダイオードでI/O点数を拡張した。 >>43
helper function ってなに? >>48
君はモグリか。。その質問はハード屋さん? 誰も望んでいないしケチも無いシリーズ第3弾
興味が無い、とにかく理由も無く腹が立つ、という人は読み飛ばしてくれ。
秋月の音声合成IC「ATP3011F4-PU」の存在を知って、「面白そうだな」と買ってきた。
http://akizukidenshi.com/catalog/g/gI-05665/
何を作ろうかと悩んだあげく、テスターの測定値音声読み上げ装置を作った。
http://i.imgur.com/CyM6Byz.jpg
テスターはLinkmanのLDM-86D(写真中段左)
テスターとフォトトランジスタの差し込み接続部は差し込みやすいように、
また簡単に抜けないように、アクリル板の形状を工夫した(写真中段右)
外部電源以外にも、電池駆動でポータブルにした(写真中段左)
持ちやすいようにテスターの裏側に固定できるようにした(写真下段左)
うーん、横から見た重なり方が何だかちょっとヒワイw
通信データの解析に少し時間がかかったが、
プログラムは
「読み取り値をUARTで受け取って、少し細工して音声合成ICにSPIで送信するだけ」
という単純なもので、なんと割込みさえも使用していない!
ここに書くべきような特徴や工夫はな〜んも無い。
完成後は、予想していた通りの音質(女性の声)の悪さにガッカリし
(甘い声で囁いて欲しかったナ)w
音声で読み上げてもらうよりも液晶画面を見た方が早いし、準備が面倒だし
結局、この読み取り器も他の制作機器と同じく、動作チェック終了後、
すぐに棚にしまい込んで、以後、出番は無い。
でもAVRの電子工作は楽しい。
秋月の該当商品ページを見ると、新しく「女性の音声明瞭版 ATP3021F6-PU」が出ているけど、
音質を確かめる気にもならない。
苦情が殺到するといけないし、私も飽きたし、以上で早くもシリーズ最終回。
ではまた会う日まで皆様ご機嫌よう。 こうやって見ると、けっこう長いね。
とりあえずスマン。 >>48
Cコンパイラが自力でコード生成がやっかいな場合、ライブラリの関数を呼び出す。その関数のこと。
詳しくは「Cコンパイラ ヘルパー関数」とかでググレ。 >>38
gccでfixsfsiという関数は、単精度浮動小数を整数に変換するという内部関数。
これがlink時に見つから無いって言われてる。
エラーが出なかった方は、コンパイラがコンパイル時に整数に変えちゃったからこの関数呼び出しがオブジェクトに出なかったんだろう。
サポートライブラリに無いのはavr gcc側の問題だね。 ATtiny85のライブラリにはある。ATtiny10の1kb flashではサポートしても入りきらんだろうし。 >>54
それがtiny85に入れても1kb超えないんだよ。
レジスタの下半分が無いシリーズだけダメなんじゃないかな。
レジスタのせいじゃなくAVR-Libcでサポート対象のシリーズから外されてるんだろ。
実はAVRってコアによって結構細かくシリーズ分けされてるし。 >>50
女性の「かわいい音声」じゃなくて、「かわいい女性」の音声なのだな >>50
うちのは調子悪くなってATMEGA328に戻ってもらいました、南無阿弥陀仏 ちょっと詳しい人教えてくだされ
AVR_studio4でAVR_ICE_BASIC(秋月で販売しているアレ)は使えますか?
使える場合
AVR_STUDIO4のtools上で選択できるどのツールとして見えるのでしょうか? >>60
もう諦めろよ
AtmelStudio6以上入れないとそもそもドライバすら当たらん 7を回避したい気持ちはわかるが6.2は良いバージョン いまだに4系使ってる人はどういう理由で使ってんだろう
更新めんどくさいだけ?
4→6と使ってきたけど、VSベースの6以降のほうが断然使いやすいよ
起動時が少し重いぐらい >>63
起動がねぇ…
立ち上がっちゃえば快適なんだが…
作業中に間違って終了させちゃうと
再立ち上げにイラッとする。 >>63
過去に作った保守用とかかな?知らんけど
VSベースはいいよね。馴染みあるとかなんだろうけど。
重いといってもeclipseに比べたらw ただ、コンパイルできればいいだけだから〜〜
4でも十分じゃない????
書き込みは、いろいろな方法があるから別に困らないしね
AvrToolchainだって自分で好きな物入れればいいだけだし >>60は現に困ってんじゃん
新しい開発モジュール使えなくてさw AVR STUDIOだって今後どうなるか分からんし ARM系PIC32の開発には必須だから名前を変えても続くんだろう。
最新のAS7にはわりと深刻なバグがあるのに数か月放置してるから、ガラッとパッケージ変えてるのかもしれないな。
8bitAVRがPIC19シリーズになるなんてソースのわからん噂もあるし。 開発環境がMPLABに統合しようとしているらしい
ASFなんて要らないからVSベースを維持して欲しいなあ はいちょっと質問
AVRマイコンの割り込みベクタはRjump**が前提となっているようだが
相対ジャンプはプラマイ11bitアドレスまでしか指定できない
コード領域の先頭からコードをバリバリ書いて2047byte使い切りその後ろの領域に
割り込みルーチンを書いたらアセンブラはオプティマイズするんすかね リンカがなるべく射程圏内に配置してくれるが、だめなら中継地点を作ってjmpでもう一度ぶっ飛ばす。
ベクタテーブルが4バイトあるチップなら問答無用でjmpにされる。
この境目にいるのがmega88とmega168なのでバイナリ互換がない。 >コード領域の先頭からコードをバリバリ書いて2047byte使い切り
私はベクタテーブルのすぐ後ろに割り込み処理、その後ろにリセット・スタート後の処理、
という順でプログラムを配置している。
割込み処理のサイズが相対ジャンプ命令rjmpの範囲を超えるほど大きくなることは無いので、
0番地のリセット・ジャンプもrjmpの範囲内に収まる。
>この境目にいるのがmega88とmega168なのでバイナリ互換がない。
一度はまったことがある。ベクタテーブルを共通にしてくれれば良いのに、と思った。
>だめなら中継地点を作ってjmpでもう一度ぶっ飛ばす
ブランチ命令(brneなど、範囲±64)で届かない時にrjmp命令で中継、は時々使う。 なぜmega88のベクタテーブルはrjmpしか置けないのか?
それはrjmpだけでプログラムメモリ8KBすべてをカバーできるからである。
rjmpだけでカバーできないものはjmpを置けるテーブルになっている。
(もしかすると例外なチップがあるのかもしれんが)
よって、>>76の心配は杞憂であり、アセンブラで飛び先を書けないなら単なる知識不足である。 >>79
プログラムROM32KBのmega328だって、ベクタテーブルでrjmp命令を使う事ができるし、
その場合は届かない領域が出てくるけど、実行速度が1クロック早くなるw
(誰もがjump命令を使うと思うけどね)
過疎のAVRスレで論理的な話題を提起してくれた 76 に対して
知識不足と言うよりも、とりあえず感謝したい。 AS使ってるけど基本Relax Branchesのチェックは入れてる。
rjmpで済めば1クロック速くなるもんなw
ついでにsrecファイル出力のチェックは外してる。Sフォーマットなんて使わんし。 メモリがリニアに配置されてるから使いやすいAVR。
なんで過疎ってるのか? 馬鹿でも分る。将来性がない。
アップルに採用された68kの気分。 >>84
なるほど、馬鹿でもわかるのか。俺が理解出来たのも理解できる。 馬鹿でもわかるが猿にはわからないんだ
無理ぽいしやめとこ >>82
代理店の怠慢か、書籍が少ないせいか未だに日本はPICの天下
挙句の果てにmicrochipに買収されるとか、過疎る要素しかないですわ >>87
わりかし明白にPICの天下なのはアマチュア層ですよね…
>書籍が少ないせいか未だに日本はPICの天下
逆じゃないですかね。PICの本が多いんですよ。といっても書籍の発行部数でいえば後閑さんの功績が大だと思いますが。
AVRだけじゃなくて、他の沢山のマイクロコントローラもアマチュア層ではPICほどの存在感がないでしょ? PICユーザーでもあるが五感の本なんか立ち読みすらした事ない。 >>89
そういう人も多数いるのももちろんなのですが、
そんな人でも、PICユーザーが多いから、という恩恵は受けてるでしょうね。 ChaN氏がいなければAVRはもっとマイナーだったかも 私が過去にPICからAVRに乗り替えたとき、ChnN氏の存在を全く知らなかったし、
その後もチラと覗いた事がある程度で、そんなに影響力があるとは思えない。
AVRにもいくつかの改良して欲しい点、不満な点はあるが、
AVR、PICのどちら使っても構わないなら、AVRを選択するし、実際、選択し続けている。
趣味の電子工作でどちらを使っても構わない状況で、
PICを選ぶ人の判断材料は何なんだろ? PICの利点、書籍もそうだけどUSBとかCANとか?
自分はたまたま先にAVRを知ったからって理由で使ってるけど
乗り換える人ってきっかけはなんだった? モデルが変わってもアーキテクチャが殆ど変わらんところかな PICもAVRも遅いよねえ。
ArduinoでもARM版が\320で売ってるんだからそっちへ流れるんじゃないの。
https://www.amazon.co.jp/dp/B01CZL6RGC/ >>88
後閑さんの著作量が半端ないですから、PICで入門する人が多いんでしょうね。私はPICで入門しましたが、開発環境がしょぼいのに気づいてAVRに乗り換えました。
C言語のシリアル制御アプリをPICに移植した時にバンクメモリの境界を越える方法が分からなく挫折してAVRに乗り換えたってのもあります。
マシン語が分からないのでC言語に優しいAVRはいいと思うんですがねぇ。 ■ このスレッドは過去ログ倉庫に格納されています