AVRマイコン総合スレ Part38©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
デバッグするのにヒューズビットを書き換えるのが鬼門
picは普通にできるのに
avr-gdbも単独で動いてほしい
手軽にデバッグする何かよい方法無いですか? C言語では、グローバル変数を定義した際、自動的にstaticになると認識しています。
例えば次のような場合
--------------------
<file1.c>
#include "file2.h"
uint8_t data = 10;
void main(void)
{
uint8_t i = 0;
func2();
for(i = 0; i < data; i++);
}
<file2.c>
uint8_t data;
void func2(void)
{
data = 5;
}
<file2.h>
void func2(void);
--------------------
main関数のforは10回繰り返されると思うのですが、間違っていますか?
開発環境はAtmelStudio7.0です。
似たようなプログラムを書いたところ、file1とfile2のdataが同じアドレスに定義されているような結果になってしまったので、
勘違いなのかこれが正しいのか…。 その書き方だとdataは同一アドレスになるのが普通。
単一のファイルでのみしか公開したくないならstaticをつけないといけない。
静的って意味とスコープを勘違いしている模様。 >>102
マジでか!?リンカエラーで落とされると思ってた。 まじですか…。数年ぶりにプログラム書いてますが、色々と忘れちゃったなあ。
この場合dataの実体はfile1にあって、file2では外部参照していることになるんでしょうか?
記憶ではその場合、externを使って宣言しないといけなかったと思うのですが。
--------------------
<file1.c>
#include "file2.h"
static uint8_t data = 10;
void main(void)
{
uint8_t i = 0;
func2();
for(i = 0; i < data; i++);
}
<file2.c>
static uint8_t data;
void func2(void)
{
data = 5;
}
<file2.h>
void func2(void);
--------------------
こうすればfile1のdataとfile2のdataは別々の場所に作られ、それぞれのファイル内でしか参照することが出来なくなりますか? >>103
file1とfile2でそれぞれ宣言時の初期値を指定しているとエラーになる。
>>104
それでいいです。
単純な例でですね、
<file0.h>
uint8_t data;
を定義してfile1とfile2の両方でインクルードしたとすると
初期化が無いことを除いて>>101と同じです。
これで同一アドレスじゃなかったら怒られませんか? おもしろそうだな、↓だとどういう結果になるのかな?
<file0.h>
uint8_t data;
<file1.c>
include "file0.h"
data = 0;
<file2.c>
include "file0.h"
data = 1;
<file3.c>
include "file0.h"
int main(int argc, char * argv[])
{
printf ("%d\n", data);
return 0;
} そこまで書いたんなら自分でビルドしてみればいいのに・・・・ インスタンスはソースのどっか1箇所に宣言して
他は頭にexternつけないとリンカエラーになるだけだよ
数年ぶりとか言い訳しるが全く理解してないだけ mcuからの入出力についてどうしてる?
74541、74244とか、fet、抵抗をいれたり、バッファはするべきでしょうか? 表面実装のarduino uno( ATmega328p )なんですが、
ヒューズビット書き損じでisp出来なくなりました。
基板から外さないと高圧プログラミングで書き込めないですか? 高電圧かかるのはリセットピンだけだから、そこだけ浮かせばいいんじゃないかな。
ライターわざわざ買うの?
リセッター作るの?
本体買い替えた方が早くないか? Arduinoってヒューズビット書き換える機会あるのか 水晶でなくセラロックが付いてるのがあった気がする
そういうのの交換でいじったりするのかも >>110
Dragonかなんかでデバッグワイヤ実行してそのまんまにしちゃったとかじゃなかろうな? 空プロジェクトをビルドしてデバッグワイヤでのデバッグに入ると
debugメニューのdisable debugWIRE and closeが選択できる。
そうするとヒューズを戻してくれる。
高電圧プログラミングなんかいらない。 xmegaの使い手ってこのスレに居ますか?
I2Cについてよくわからないので質問です。
MASTER.CTRLBのQCENとSMENって具体的にどういうときに使うんでしょうか?
QCENはなんだかあってもなくてもあまり変わらないような気がします。
SMENはいちいちCTRLCのCMDでBYTERECを書かずに済む程度でしょうか? 何年も前からxmegaでI2C使ってるけど、そのビットは使ったことが無いです。
たぶんどちらもDMAとかハードで処理させるため、あるいはその前処理のトリガとして必要になったんだと思う。
普通に割り込み駆動する分には大したメリット無いんじゃないでしょうか。 >>116
リセット端子のコンデンサ除去でデバッグできました
リンク先の通り、
arduino IDEでの書き込みでリセットボタン連打が必要となります
ありがとうございます おつおめ
ちょっと不安定な面はあるけどデバッグワイヤは便利だぞ。 >>121
あ、そうなんですか。
SMENはなんだか便利なのかなーとも思ってましたけど、そんなこともないのですね。
CTRLBは無視してI2Cプログラムを組んでみます。
ありがとうございました。 >>120です
あれから、I2Cのプログラムを書き始めたのですが、どうも上手く行きません。
1バイトの書き込み読み込みは出来るのですが、2バイト以上となると上手く動いていないようです。
どなたか添削していただけないでしょうか?
ソースファイル
http://fast-uploader.com/file/7032170651588/
ヘッダファイル
http://fast-uploader.com/file/7032170798549/
両方共パスワードは「xmega」です。
開発環境はAtmelStudio7でチップはATxmega64A3Uです。
よろしくお願いします。 私もそうなんですが、ほぼASFからのコピーですよね。
ざっくり見たけどわかりません。
何をもって1バイトはいけて2バイト以上はだめとわかりました?
デバッグ方法の問題で実はちゃんと動いているのかも。
動作終了時の結果を格納するところにブレークしかけてみたりしました? >>126
AVR1308を参考にプログラムを書きました。
コピペやそのまま使ったりすると後で自分で動作を理解できなくなったりするので、避けたいところですが…。
AVRをもう一台(88P)用意してI2C通信をデバックしていました。
あれから色々と試行錯誤していたら、原因は88Pの方にあったみたいで、88Pのプログラムを修正したら動くようになりました。
どうもお騒がせしました。
とりあえず>>125にアップしたプログラムは動くっぽいので消えるまで残しときます。
参考にしたい人が居ればだけど、どうぞ。 >>120
おお、おつかれさん。よかったね
アプリノートのコードは冗長であることが多いので、
自分で目を通して理解してリファインすれば、それはもうコピペではないと思う。
よくできたコードを読むのもプログラムの勉強と言うし。
xmegaは複数のTWI持ってるから、私は一組のi2c.hとi2c.cで複数ポート開けるように
改造しましたよ。COMポート用もね。
xmegaA1Uで4COM,2TWI,1USBなんて変態的なの作る必要に駆られて・・・・ 8bitマイコンについてはどう読んでも「現在製造中の製品をすぐに終了させることはないけど
AVRについては新製品を出すことはないよ」としか読めんなwwwww 資料では
「Atmelのマイコン「AVR」ファミリーへのサポートおよび投資も続けていく」
と書いてある。
マイクロチップとしては8ビットではAVRの、32ビットではARMの力を借りたいんだろ。 >>132
あのさぁ
願望フィルタは結構だけど、資料をちゃんと読み取る能力は必須だよ
>完成させたが、8ビット製品への取り組みは縮小するのか。
>そのようなことはない。(略)
>当社は、現在のマイコンのような複雑なデバイスをビット数だけでクラス分けすることを
>妥当とは考えていない。適切な周辺モジュールを内蔵することが、最も重要である。
需要に応じて周辺モジュールの組み込みバリエーションを増やせるPICは重要だけど
そうじゃない8bit AVRは以下略、って意味だよ microchipにしてみればARMコアのatmel製品はともかく8bitのAVRは正直
どうでもいい存在だろ。プレスリリースからはそういう空気が溢れてる
サポート云々についても
>Atmelのオンラインツール「START」は、8ビットAVRもサポートするようになるのか。
>回答 サポートするようになる。
この程度のことだろうし まぁ正直
あくまで8bitを続けるって回答な訳で
8bit-avrの名前は出ない時点でお察しください、って感じではある 新製品は出ないにしても、生産終了することはないんだろ
何も困らんわな >>137
次に出てくるのは「ディスコンになっても買い溜めしてあるから何も困らんわ」、だなw アホなCPUを使い続けていると人間までアホになるのだろうか? 技術者が性格悪くなるのは分かるがここまで病んでるとはな…
大丈夫か?明日会社行けるか? アンチとかファンとか思い入れとか、悪い方向に働くととことんダメになるな。 Windows vs. Mac, PS vs. XBox, iOS vs. Android, etc.
2chはどこでもこんなだよ。自分の選択に不安があるので選択しなかった方を貶めて心の安定を得ようとしてる 別に新製品が出るかどうかとか生産が続くかどうかなんてどうでもいいわ
自分がAVRを使って何を作るのか?ってだけの話だしたいした金額じゃないんだから
買いだめしておけば済む。明日生産終了が報じられてもなんも困らんわ 自分が使っているチップがdisconになった所で
中身を正しく理解してれば然程手間取らず他のtechnology にmigration 出来るんでないの?
「わーいサンプルが動いた〜」で終わっちゃうような人はそこまでだよ。 実際、初めて使ったマイコンがたまたまAVRだったからAVR使ってるっていう俺みたいなのも多いだろう
特別こだわってはないが、困りもしないから使い続けているだけ いまいちパッとしないSAMシリーズのテコ入れとしてPIC32MXとのピン互換、PIckitでの開発が可能な品種を要望する 願望は持ってもいいんでは?
もし出来上がったものがコレジャナイ感だったら悲しいだけだよね arduinoIDEでPICも対応とかになったら段々と移行もしやすいのにね。
用が足りるかは別として環境的に。 >>154
んー??
下の4つのリンク先は Arduino IDEで対応してるわけじゃなくて、
Arduino IDE ライクな開発環境がある、って話ですよね? >>139
元々ロジックIC の代用、見たいなコンセプトのマイコンに負けてるのがAVR >>155
Pinguinoについてはそうだけど、chipKITの方は、
Arduino IDE に chipKIT core というプラグインを
導入して使う形に変わった。
本家IDEがARMやインテルなどAVR以外のアーキテクチャに
対応するようになったので、その仕組みを利用しているらしい。 現在AVRmkUとAtmelStudio7.0で開発を行っているものです。
秋月で売られているICE-BASICの導入を考えているのですが、
これはattiny,atmega,atxmegaといったAVRシリーズ全てのマイコンのデバックができるのでしょうか?
逆に、これがないとデバック(ステップ実行や実行中にレジスタの中身を覗く等)は出来ないのですよね?
秋月にはbasicしかないですが、いろいろ種類が有るみたいで。
どなたかICE BASICで出来ること、出来ないことを教えていただけませんか?
使ったことがある方がいましたら、使用感なども教えていただきたいです。 >>158
デバックするなら、atmel iceやavr dragon等が必要
atmel iceには基板のみ、ケース付き、変換基板付きと数種類ある
ピンがハーフピッチなので1.27mmから2.56mmに変換する必要がある
ベーシックにはその変換ケーブルが付属する
avr dragonは更に高電圧ppなどの書き込みができる
ネット上では、電源用icとバッファが弱いとなっていて、usbから直接5vをとる 方法や、isp、jtagを強化する方法が公開されていて、ドラゴンレイヤー2と言われている
誤配線に注意し、ターゲットは必ず別電源を使用していれば心配ない >>158
arduinoをデバッグするときは、リセット端子のコンデンサを切断する
デジキーも送料無料になれば、秋月より安い場合があるかな 毎度¥7500以上買えばいいじゃないか古事記 >>157
>Arduino IDE に chipKIT core というプラグインを
>導入して使う形に変わった。
それはいいな。 デバッガを自作すれば最強だよ。
まぁそれなりの別の問題が発生するけどw ATATMEL-ICE(フルキット)とATATMEL-ICE-BASICの違いは
オプションのケーブルや変換コネクタが含まれているかどうかだけで機能に違いはない。
ユーザーマニュアルに写真付きで説明がある。
まあ、BASICで十分。
ICEもドラゴンも長いこと使ってるが壊れたことないなあ。 オシロあれば十分デバッグできるでしょ
PWMの出方とかステップ実行なんてやっても判らないし そりゃあんたがデバッガを必要とするような事をして無いからでしょ。
世の中にはもっと難しい事してる人がいっぱいいるんだ。 すまん、ちょっと勘違いがあったようなので修正する。
そりゃあんたがデバッガを使いこなせないからでしょ。
PWM出力の遷移にブレークポイントしかけりゃどんなタイミングの波形になってるか分かるし。
それにオシロの方が高価なんだが。 外部との通信やI/O制御やるならオシロがあったほうがいい。
デバッガはどうかな?仕事だとブレークポイント設定して放っておくとかあるけど、趣味ではそこまで必要としない。 FFTとかファイルシステム組み込んだりフィードバック制御とか色々あるでしょ ソースコードデバックってアンブラの場合は凄く強力なツールだと思うけどC言語の場合は微妙じゃない? >>172
アンブラって何だよ・・・
アセンブラの間違いね なんだ、AVRとPICってもうちょっと拮抗してるのかと思ったら8bitの製品に関して言えば
話にならない位PICのほうが圧勝してんのか >>176
マイコンのコアとしては必要最低限を狙ったPIC に、性能で戦いを挑んだAVR 。 性能がとんとんしか無い上にIOが貧弱で勝負にならんかったw 次は、【PIC】Microchipマイコン総合スレ【AVR】かな アセンブラでAVRと8ビットのPICとAVRのプログラムを組んでみ
コアの違いがよ〜く分かって面白いぞ
DIOの処理をさせると処理速度の差が出すぎて・・・(PIC厨が発作を起こすので謹んで略)
もっとも実際に仕事をするのはもっと複雑な周辺I/O処理なので
PICが周辺処理専用機種=多機種の方向を目指したのは正しい選択だろうな
AtmelがYmegaやZmegaを出せば話は変わるかもしれないが、買収されてしまったし
将来のことなんて神様でも無い限り誰にも分からない
ただ一つ確実に言える事はいつかはPICもAVRもARMも、そして君も僕も終るってことだけだ アセンブラで書くとPICでなんの不自由もないのがよくわかる。
3桁とか6桁の速度差があるなら話は別だが、所詮どんぐりの背比べ程度の
差しか無い。その程度の速度で頑張ってソフトでUSBを実装しても、安定性が無いし
他の処理がまともに出来ないんじゃ意味がない。学生のオナニーみたいなもん。
インテルVSモトローラの時もそうだったが、頭でっかちでは生き残れないって事だな。 趣味で使っている人には分からないんだろうけど
PICの強みは
「デイスコンしない」
これに尽きる ディスコンにかこつけて他の軽い変更もやっちゃうから
一概に悪とも言えない。 >>183
お前wそんなこと書くとwAVR厨様がw
「買い溜めしてあるからディスコンになっても別に困らないし(キリッ」
ってw言い始めるぞwww 「ディスコンしない」ということと
「いつまでも趣味レベルに人にも供給する」ということは違うよ。 製造業としては古すぎるものは適度にディスコンして欲しい。
メーカーとしても生産量縮小とかで原価アップされても困るからやっぱりディスコンしてくれた方がいい。
取り巻く環境で「ディスコン」の良し悪しもいろいろだ。
で、ここはAVRスレだが誰かAVRで困ったディスコンがあったか教えてくれないか。 未だに16F84とかの作例がWebにあるし、
16F88で今年書かれた作例見たときはびっくりした どうしてもAVRでなきゃってユーザーはPICほどにはいない印象
ここにいるのはアンチAVRだけで、当のAVRユーザーはもう他に行ってたりしてw 確かに、ディスコンではないが、性能比でずいぶんと割高にはなる。
にしても、入手できないよりはずいぶん助かる。
くっそ高い84Aが、1827のすぐ後につけてるという事実は否定できない。
http://akizukidenshi.com/catalog/c/cpicr_spop/ 累計販売数順に並べれば昔から扱ってる品種が上位に来るのは当然だと思うが?
たとえ最近の売り上げがそんなにないとしても
むしろまだ取り扱いを初めて日が浅い16F1827や12F1822が早々に上位に来てる
ことを見ても、この人気順ソートが殆ど意味が無い事は確定的に明らか >>192
1827や1822が売れてるってこと。
現に、最近84Aは1827に抜かれた。
何も矛盾点は無いし、意味が無いことはない。 >>183
お前ホントにプロか?
CPUボードをユーザーに提供しているなら
適当な間隔で世代交代してくれないと困るだろ?
CPUボードはCPUだけで出来ているわけでは無い
うちの客に困ったチャンがいてな・・・(前にも書いたので省略)
>>118 製造業としては古すぎるものは適度にディスコンして欲しい。
の言う通り いや製品の能力がバラつく事の方が困るだろ。
設計製造、いや一番困るのはサービス部門かも
客も用途によってはそんなの嫌がるよ。 プロなら製品の能力がバラついたりはしない
要求される仕様は必ず継承する
追加した便利な機能に客も泣いて喜ぶw 脳内プロは黙ってて
あんたの製品ってMCUが一つポツンと載ってるだけなんだろ? ■ このスレッドは過去ログ倉庫に格納されています