_____
/ /|
/ ( ゚∀゚) /.∠フ 個人でも手軽に使える
/ /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
/ __ o/.∠フ || 中心に語るスレッドです。
∠| ̄ ̄凵 ̄ ̄|∠フ || *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
.|| |_____|/||
Atmel AVR 8-Bit RISC
http://www.atmel.com/products/avr/
6 :
774ワット発電中さん:2012/11/22(木) 23:18:12.33 ID:NKqZuOZE
ストローベリーリナックスの簡易型AVRライターキット
のことでお聞きします。
説明書に「AVRマイコンの書き込みにはクロックが必要です。新しいデバイスはクロックが内蔵(内蔵発振器)されていますが、古いデバ
イスはクロックを供給しないと書き込み・認識ができません」
とあるのですが「atmega88p」には内蔵発振があるので書き込みできますよね?
できない場合発振回路を作らなければいけないのでしょうか?
教えてくださいませ。
>>6 >できない場合発振回路を作らなければいけないのでしょうか
ターゲットに外部クロックつける必要があるってことだな。
88Pも外部クロックにしてあったらつける必要ある。
買ってきたばっかりの生ROM?なら問題ないだろうけど。
8 :
774ワット発電中さん:2012/11/22(木) 23:49:44.67 ID:NKqZuOZE
>>7さん
お返事ありがとうございます。
解りやすく教えて下さり助かりました。
ありがとうございます。
ちなみにここはsage進行でしょうか?
9 :
774ワット発電中さん:2012/11/23(金) 00:12:08.76 ID:XeTYeMJS
たった今、ケツから具が出ました。
12 :
774ワット発電中さん:2012/11/23(金) 14:33:05.08 ID:zKv1VRhZ
すみません、AVRマイコンでLEDの光量を制御するために
アナログ出力をしたいのですが、アナログ出力の方法が分かりません。。。
なんかヒントとなるキーワードでもいいので、教えていただけませんでしょうか。
AVRマイコン、アナログ出力で調べても全然情報が出てこないです。。。
Arduinoではアナログ出力できるので、たぶんAVRでもいけるとは思うのですが・・・
ちなみにパルスでの制御は考えておりません。
一般的にはパルス
14 :
774ワット発電中さん:2012/11/23(金) 14:39:50.25 ID:zKv1VRhZ
>>13 そうなんですか・・・。
てことは、Arduinoとかも純粋に出力電圧を変えてるわけではなく、
パルスでやってるのでしょうか?
15 :
774ワット発電中さん:2012/11/23(金) 15:01:32.41 ID:mDwkz3S/
AVRで検索するよりLED(ダイオード)について調べた方が良い
電圧で調光が不向きな理由がわかる
16 :
774ワット発電中さん:2012/11/23(金) 16:14:12.94 ID:Utu2S3za
便乗で質問なんだけど
AVRの8bitタイマーのPWMはOCRnxを255に設定すると完全HIになるけど、
0を設定しても完全LOWにはならないので、完全LOWにしたい場合は
PWMを切断してポート側の制御でLOWにする。(非反転出力時)
って認識で合ってる?
タイマーによって違ったりする?
タイマ切ってもいいし、OCnxレジスタ切ってもいいし、DDRレジスタで出力切ってもOK。
反転動作ならOCRnBレジスタをOCRnAレジスタより大きくすれば切れる。
18 :
774ワット発電中さん:2012/11/23(金) 22:00:58.62 ID:zKv1VRhZ
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
volatile unsigned char apb[8]={255,128,64,32,16,8,4,2};
// 割り込み関数
ISR( TIMER0_COMPA_vect ){
static unsigned char cnt=0;
int i;
unsigned char pb = 0;
// set LED palse
for(i=7; 0<=i; i--){
if(cnt < apb[i]){
// set port HIGH
pb = (pb<<1) | 0b00000001;
}else{
// set port LOW
pb = (pb<<1);
}
}
// incriment
cnt++;
if(cnt==255){ cnt = 0; }
PORTD = pb;
}
int main(void)
{
// OUTPUT
DDRD = 0b11111111;
PORTD = 0b11111111;
// Interrupt
TCCR0A = 0b00000010; // CTC mode
TCCR0B = 0b00000001; // 1MHz?
OCR0A = 0;// 毎クロック割り込み
TIMSK0 = 0b00000010; // COMPA interrupt
sei();
while(1)
{
}
}
19 :
774ワット発電中さん:2012/11/23(金) 22:07:11.41 ID:zKv1VRhZ
>>18のプログラムで、パルスでLEDの光を制御するプログラムを書きました。
グローバル変数であるapbの中にある数値が、パルスのデューティー比みたいな感じです。
1周期をMAX255として、そのうちHIGHの時間がどれだけあるかを表しています。
で、1MHzで毎クロックごとに割り込みを発生させて、
その中でapbの値を見ながら8個のポートのHIGH/LOWを制御しています。
8個のLED、なんとなく光の強さは段階的にはなっているのですが、
人の目で余裕で確認できる高速点滅をしていて目が痛いです。
この点滅をどうにか人の目では認識できないレベルにまで落とすには
どうすればいいのでしょうか?
一応クロックはTCCR0Bレジスタの値の下3桁を001にしているので、
これが最速なような気もしています・・・。
マイコンはatmega88v-10puです。
どなたか教えていただけませんでしょうか。
20 :
774ワット発電中さん:2012/11/23(金) 22:20:20.25 ID:zKv1VRhZ
>>15 なんとなく分かったような気がします。
LEDは半導体でオームの法則が適用されないから、
電源電圧を半分にしたからといって、流れる電流量が半分になるわけではなく、
つまり光量も半分になるわけじゃないって事ですね。
落ち着けよ。毎クロック割り込みって意味わかってる?
22 :
774ワット発電中さん:2012/11/23(金) 22:52:49.77 ID:zKv1VRhZ
>>21 どういうことでしょうか?
何か間違ってますでしょうか?
通常処理↓ 通常処理 普通こうなるのが
割りこみ処理↑
割りこみ処理割りこみ割り割割・・・・ こうなってるってことじゃないのか?(毎クロック割りこみ)
割りこみ処理中に新たな割りこみ処理が入ってたりして・・・
24 :
774ワット発電中さん:2012/11/23(金) 23:15:23.22 ID:zKv1VRhZ
>>23 なるほど・・・。
でもOCR0Aを例えば10とかに設定したとしたら、
今よりもっと点滅の感覚が広くなってチカチカしてしまいますよね。。。
ためしに
TCCR0B = 0b00000010; // 1/8MHz
OCR0A = 20;// 20クロックごとに割り込み
でやってみましたが、やはりチカチカは変わりません。。。
8個のポートでそれぞれパルスのデューティー比を変えて
LEDの光量を制御するのって、そもそもこういう方法で実装するのが間違っているのでしょうか?
25 :
774ワット発電中さん:2012/11/23(金) 23:40:27.93 ID:HFpmw4WB
>>24 割り込み間隔が速すぎて処理が追いつかず、
遅くなってしまってると思われる。
人間の目は100Hz位の点滅でも、連続した光に見える。
いろいろと根本的に間違えすぎててどこからアドバイスすればいいのか難しい。
>>18のプログラムはアルゴリズムレベルでおかしい忘れて落ち着いて考え直せってこと。
まず最初に目に見えないレベルの点滅って何Hzあれば十分か調べよう。
書き込んでる間にかぶったねw
100Hzもあれば十分だよ。
そして256諧調も欲しいの?
100階調くらいで十分なの?
そこから調光の設計が始まるよ
28 :
774ワット発電中さん:2012/11/24(土) 00:07:15.67 ID:lZbgwulU
>>25-26 ありがとうございます。
点滅は調べてみると100Hz程度で十分なようですね。
それで一度プログラム見直してみたのですが、
100Hzの点滅ってことは1秒間に100回点滅を繰り返せばいいという事ですよね。
つまり、点滅の周期は 0.01s 、つまり10ms。
今回パルスを使ったアナログ出力で、0〜255の値で出力したいと思っているので、
この10msを255で割って、0.039ms、つまり大体0.04msを点灯の最小単位にすればいいという事ですよね?
アナログ出力でLEDの明るさを半分にしたいときは、HIGHとLOWの時間を半分にすればいいので
128*0.04msの時間だけ点灯させて、128*0.04msの時間だけ消灯させる。
とすると、タイマ割り込みは0.04msおきにすればOKですね。
CLKが1MHzのときは1CLKが0.001msなので、OCR0Aを40に設定。
その上で、割り込み関数を下のようにしてみました。
ISR( TIMER0_COMPA_vect ){
static unsigned char cnt=0;
int i;
unsigned char pb = 0;
// set LED palse
for(i=7; 0<=i; i--){
if(cnt < apb[i]){
// set port HIGH
pb = (pb<<1) | 0b00000001;
}else{
// set port LOW
pb = (pb<<1);
}
}
// incriment
cnt++;
if(cnt==255){ cnt = 0; }
PORTD = pb;
}
これでもやはり点滅がひどい感じです。。。
何か考え方が間違っていますでしょうか?
29 :
774ワット発電中さん:2012/11/24(土) 00:10:21.94 ID:lZbgwulU
>>27 できれば256階調欲しいです。
というのも、ArduinoでいうところのanalogWrite関数を作ることが
今回の目的なのです。。。
40クロック毎に割り込み発生させてるが、その割り込み処理自体は
40クロックで終わるのかい?
31 :
774ワット発電中さん:2012/11/24(土) 00:29:55.04 ID:lZbgwulU
>>30 どうでしょうか・・・やってる処理といえば
ビットシフトとPORTDの書き換えくらいですが・・・。
これが40クロック(0.04ms)で終わらなかったら、
そもそも100Hzのパルスを作れないような気もします・・・
ひとつの解決策としては確かに
>>27さんの言うように
256階調をあきらめるという事でしょうか・・・。
しかしArduinoで出来てるってことは出来るような気もするので
あきらめるのはちょっと悔しいです。。。
32 :
774ワット発電中さん:2012/11/24(土) 00:32:58.90 ID:lZbgwulU
しかもあれですね、ArduinoのanalogWriteは490Hzとか977Hzらしいですね。
なにそれ悔しい・・・
だってArduinoは16MHzで動いてんだよ
それにタイマーのコンペア出力使ってるだけだからハードで点滅処理してるし
出力も6点しかない
10MHzになってるなら400サイクルだからどうなんだろね
アセンブラなら悩まんけどうっかりintって書くと2バイト処理になってるし
あ、20MHzだっけ?
とにかくあなたの言う「8点出力」を要求仕様と考えてればコンペア出力を
説明するわけにいかなかったんだ。足りないからね。
intっていうのは「処理系が最も処理しやすい単位」ってのが元々なのに
この辺はなぜか16bit前提になってるもんねw
今どきのコードなら「uint8_t」で宣言しよう。
37 :
774ワット発電中さん:2012/11/24(土) 00:52:27.19 ID:lZbgwulU
>>33 あ〜・・・なるほどです。
そもそも実装方法がかなりハード的なんですね。。。
ソフト側ではパルスのデューディー比を変えるためにOCR0Aとかのレジスタの値を変えてるくらいですか?
(パルス作れるならポート・ピン関係なくそういう事も出来ると思っていたので)今はPORTDを使って8点出力をしていますが、
そのコンペア出力というのでちゃんとanalogWriteが実装可能なのであれば、
OCR0AからOCR2Bまで使って6点の出力でも全然いいです!!!
ちょっとまだマイコン初めて2週間くらいなのでそこら辺は自分で調べてみて、
とりあえずやってみます。
また分からないこと出てきたら教えていただけると幸いです。
>>34 ATMEGA88は確か、
TCCR0B = 0b00000001;
で1MHzだったような気がします。
一昨日くらいにがんばって計りました。
秋月のHPには最大10MHzとか書いてありましたが・・・。
38 :
774ワット発電中さん:2012/11/24(土) 00:54:16.21 ID:lZbgwulU
>>36 uint8_tがいいんですね。
符号なしで8bitということで、
いつもunsigned charを使っていました。
>>38 タイマーにPWMの機能があるならそっちを使うべき。
普通のI/OポートのHi/Lo出力で8bitPWM x 8ch は
かなり厳しい。
割り込み使わずにアセンブラでうまくタイミング
とりながら書けば何とかなるか...な?
>>38 なぜ、単純なところから段階的にやろうとしない?
まず1個のLEDの10階調とかで成功してからじゃないか。
始めて2週間だからどこまでが簡単でどこからが難しいのかすらまだ分からないんだよ。
でも、いきなり割り込み処理ルーチンを大まかにでも理解しているところが感心したな。
別スレで初心者が割り込みは自動サブルーチン呼び出しという理解で書いた
割り込みとメインループが見事に融合したソースを見たときは目からウロコだったな
ゲーム機の処理落ちって言葉ももう死語か
どなたかAT86RF232とか、送受信機能程度の安いzigbee製品を使われている方おられませんか
AT86RF232なら300円程度なので、xbee買うよりはるかに安いんですが、私にはハードル高くてなかなか・・・
44 :
774ワット発電中さん:2012/11/24(土) 21:11:21.23 ID:lZbgwulU
>>39 高速PWMモードでハードの方でPWMを制御することで
無事6ピンの擬似analogWriteを作ることができました。
チカチカすることもなくなりました。
変に割り込み処理されることもないのでこっちの方が断然スマートですね。
明日は擬似analogWriteを使った課題考えて何か作ろうと思います。
ありがとうございました。
>>40 すみません、タイマーが8ビットなので、256階調の方が逆に単純かと思ってました。。。
処理が追いつかなくなるとか全然頭になかったです。。。
次に周期の短い処理をするときはそういう事も念頭において設計考えたいと思います。
>>41 正確に言うとArduinoは2ヶ月前からはじめたので、ざっくり単純な動きは知ってました。
2週間前にAVRをはじめて、レジスタとか色々知って、
なるほどArduinoはAVRマイコンだったんだ!AVRのこの動きを
Arduinoが単純化してるだけか、断片だった知識がつながって感動しました。
割り込み処理とかのやつはニコニコにあった解説動画がすごい分かりやすかったので、
それでスッと理解することができました。
int には最小縛りがある
mega328pでスリープモードをできるだけ省電力なのを選びたいのですが、
外部からのピン入力を使わない復帰方法だと、アイドルモードしか選択肢がないでしょうか
(パワーセーブでtimer2で周期的に復帰させようかと思ったのですが、内部クロックではできなさそうなので、、、)
>>46 32.768KHzの水晶振動子外付けでtimer2
48 :
sage:2012/11/29(木) 11:13:32.26 ID:MzY3bfsB
パワーダウンとウォッチドッグとか?
ウォッチドッグは周波数個体差がひどい
51 :
46:2012/11/29(木) 15:05:44.46 ID:E0v35G8O
回答ありがとうございます
ウォッチドッグでいろいろと試したのですが、やり方が悪いのか復帰できませんでした
水晶振動子は手持ちにないので、購入してこの方法でしようかと思います
>>50 意味がよくわからなかったのですが、PIC24Fなら出来るということ?
あとBODをソフトウェアかヒューズビットで無効にしないと
そこで20uAくらい消費するんでお気をつけを
AVRって後発だけあって高機能だよな。
>>55 4ビットマイコンか、ASICじゃないの?
57 :
774ワット発電中さん:2012/12/01(土) 11:01:20.88 ID:MsSC55b3
>>55 この程度だと4ビットCPUの可能性が高いと思うが、おもちゃにくわしく
ないので、単なる想像だが。
64180はワンチップCPUじゃないので、ROM、RAMを別に搭載する必要があり
当時だと結構いい値段がしたと思う。能力的にも過大だし、まずないな。
TK-80互換のワンボードマイコンを作っている中日電工が、昔のミニコン風の
コンピュータを64180互換のZ8S180を使って開発している。ここのホームページは
昔のことを知っている人には面白いかもしれない。量が多くて読むのは大変だが。
ttp://www.alles.or.jp/~thisida/cpm_mycom258.html 64180は、昔の日立製のZ80互換のCPU。Z80よりも高速でバンク切り替えのメモリ
拡張もできたので一時期使われた。Z80本家のZilogがセカンド・ソースになり
今でも作っているらしい。
>>56 時代を考えるとASICはないだろうな。
当時の電子ゲームは、CPU的な物は入っていなくてハードロジックをカスタムLSIにしたものが主流。
CPUを内臓するよりも回路規模が遥かに小さいのと、安い。電池の持ちも良い。
>>59 なるほど
確かに、当時の電卓は7セグ12桁+αを点灯させるI/Oがあったわけだから
LEDゲームの20個程度のLEDを個別点灯させるだけなら
電卓の技術程度で良かったわけか
ラジオの製作だったかでTTLで組んだカセットに入れる電子ゲームとかあったよね
設計だけしてお蔵入りしまくったけどw
ところでアナログ出力できるDIPなAVRってある?
それとも、必要ビット数だけピン潰してラダー抵抗しないといけないの??
XMEGA には DAC 入ってるけど DIP 品はないな。
一般的には PWM じゃないの?
>>63 ttp://www.atmel.com/ja/jp/PFResults.aspx#(data:(area:'',category:'34864[33180]',mature:!f,pm:!((i:8238,v:!(0,18)),(i:8394,v:!(0,5)),(i:8362,v:!(1,28)),(i:8282,v:!()),(i:8286,v:!(1,3))),view:table),sc:1)
66 :
774ワット発電中さん:2012/12/06(木) 02:23:13.54 ID:FiE9xL6j
ATTinyってアナログ出力2つしかないので、
基本的にフルカラーLEDの制御は無理でしょうか?
>>66 楽に出来るわけではないというだけで、3つI/Oポートあれば
良いので無理ではないよ
>>66 点灯デューティ比で明るさを変えるほうが良いと思うよ。
PWMは、ソフトでやればよい。
69 :
774ワット発電中さん:2012/12/06(木) 07:37:16.66 ID:aC//g1Xa
>>66です。色々ありがとうございます。
とりあえず今のところ、ハードの方のPWMでRとGは制御できるようにはなっています。
最後のBをどうするかで悩んでいます。
>>68さんの言うようにPWMをソフト側でやるのもありですが、
実は一度タイマーを使ってPWMでLEDを光らせてみたのですが、
処理オチしているのかLEDがチカチカ光るようになってしまいます。
RGBを細かく制御したいので、Bも256階調で変化させたいと思っているので、
PWMも256段階でデューディー比を変えたいと思っております。
その場合、処理オチせずにソフト側でPWMを作るいい方法はありますでしょうか?
8MHzで256分周タイマー動かして31.25KHz/8bit=122Hzでパタパタする
処理オチとかはソフトの書き方次第
まっ、多チャンネルのPWMが欲しいならPSoCがいい。
あ、すみません。
ATTinyは全部小さいやつだとさっきまで勘違いしていました。
小型のものを作ろうとしているので、ATTiny2313のような足の多いものは避けたいと思っております。
6本か8本足くらいで、高速PWMで4つ出力できるようなものってありませんでしょうか?
もしなければ、ソフト側と外部回路などでなんとかしようと思うのですが・・・
AVR以外なら8ピンでPWMを4つ使えるのがあるけど
tiny25/45/85なら3本出せるけど
ソフトウェアで16chやっても楽勝
>>74 PICとかですか?
>>75 それを買うのが一番早そうですね。。。
秋月になかったのでちょっと日本橋行って探してみたいと思います。
日本橋なら千石・共立・マルツで扱ってるよ
AVR以外でいいなら・・PSoCで8ピンでデジタルブロック8個とアナログブロック12個
入ったのがあるから、8ビットPWMなら8個、16ビットPWMなら4個とれるな。
(I/Oピンが6個だから8チャンネル出力は無理だけど)
プリスケーラで1つ、8ビットPWMに4つ、使うとして、残り3個の
デジタルブロックとアナログブロックはシリアルにしたり、ADC/DAC
なんかの外部インターフェースにしてもいいだろうな。
8bitAVRでできないことがあって仕方なく別会社のARMを勉強し始めたんだけど、
32bitARMでもかなり省電力にできるんだね
8bitAVRがARMに勝てるところがあまりないと思えてきてしまった・・・
8bitAVRが好きなのに、好きなのに・・・だれかARMよりAVRのいいところを俺にいっぱい教えてくれ!
適材適所だよ
TLC5940使えば?
16bitPWMだよ。
マイコンスレとは思えない展開w
87 :
774ワット発電中さん:2012/12/08(土) 01:58:05.67 ID:5yjTOcIa
タイマ割り込みがされないのですが、何か間違っていますでしょうか?
コンパイルのエラーは出ておりません。
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
// 割り込み関数
ISR( TIMER0_COMPA_vect ){
PORTB = 0b00000111;
}
int main(void)
{
// IO Setting
DDRB = 0b00000111;
PORTB = 0b00000111;
// Interrupt
TCCR0A = 0b00000010; // CTC mode
TCCR0B = 0b00000001; // 1MHz
OCR0A = 40;//
TIMSK0 = 0b00000010; // COMPA interrupt
sei();
while(1)
{
PORTB = 0b00000010;
_delay_ms(500);
PORTB = 0b00000101;
_delay_ms(500);
}
}
質問の仕方が間違ってる
品種を何も書いてないと
レジスタに代入した値が正しいのかは判断できないのだよ
89 :
774ワット発電中さん:2012/12/08(土) 02:12:57.04 ID:5yjTOcIa
失礼いたしました。
ATTINY13Vです
90 :
774ワット発電中さん:2012/12/08(土) 02:28:57.35 ID:5yjTOcIa
AVRで共通じゃないんですね。レジスタ。。。
今とりあえずデータシート見て照らし合わせてみました。
TIMSK0のOCIE0AがBit1ではなくBit2だったので、
TIMSK0 = 0b00000100;
に直しました。でも割り込みはされていないもようです。。。
ISR( TIMER0_COMPA_vect ){
を
ISR( TIM0_COMPA_vect ){
に変えて動かんかね
警告出るような気がするけど
血圧計の開発に回されたんで、マイコンの勉強したいんだが、
8bitマイコンのキットで色々学べるオススメってある??
超初心者なんでなるべく教材が一緒についてるモノがいいんだが、
教材付きのイイヤツだと3万とかだった・・・・
ぐぐりまくってるけど、コレダ!ってのが中々ないんです。
スレチだったらゴメンよm(_ _)m
>>92 古いデバッグマシンを借りるのがいいと思うよ。
ドキュメントもあるしハードウェア、ソフトウェア担当者にも質問できる。
94 :
774ワット発電中さん:2012/12/10(月) 00:44:28.80 ID:yxfgOFni
>>91 返信遅くなり申し訳ございません。
TIM0に変えたら無事動作しました!
ありがとうございます。
96 :
774ワット発電中さん:2012/12/10(月) 21:40:49.11 ID:gbdeCDO+
>>92 それ以前に、AtmelのAVRって医療機器に使っていいんだっけ?
こんなんで4495円かよ
いい商売だなw
在庫の山を抱えて…
ガ━━(゚Д゚;)━━ソ!
てなとこ?w
ハンダ付けが面倒という人もいるから売れなくはない、完売するか黒字になるかは別だが
102 :
92:2012/12/11(火) 21:24:43.41 ID:SIIWhF1s
>>95 デジットの講習会、凄い良さそうとおもって住所をみたら大阪・・・・!
埼玉なんで、行ってみたいけど厳しいです・・・・
>>93 一応自宅で勉強する予定なんで、会社のデータ持ち出すのは少し抵抗がありまして・・・
>>96 ありがとうございます。ただ知識が今とにかく不足しているんで、
もう少し調べつつ参考にしてみたいとおもいます。
>>97 1年目なんでよく分からず・・・・、AVR自体を初めて聞きました・・・・
>>102 > 1年目なんでよく分からず・・・・、AVR自体を初めて聞きました・・・・
AtmelのWebを見る限り、ARMは医療系に積極的みたいだけど、AVRのスタンスがよく分からない。
医療系ってだけで売ってくれないベンダーがあるから、まずは会社で使われているマイコンを確認したら?
「AVRマイコンは電源が不安定だとEEPROMの内容が書き変わることがある」
を昨日ようやく経験した
用途が趣味だったからいいけど医療用にこんなマイコン使ったら大変なことになるよ
>>104 それはあんたの使い方が悪いだけ
使い方が悪けりゃどのマイコンでも起こり得る
具体的には他のどのマイコン?
なんだ教えて君かよ
知らねえの?
だっせ
医療用の装置で不安定な電源ってあり得るのか?
医療用にそんな電源使ったら大変なことになるよ
>>108 ありえるよ。
例えば停電、非常用電源との切り替わりの時。
同じく停電、車のバッテリーが使えるように配慮されてんのよ。
例えばポータブル、バッテリーが無くなってきてもギリギリまで動かないと困る。
>>108 なんぼでもある。
古い病院だと顕著。こないだ某病院の端末リプレースがあったが、
新しい端末がことごとくリブートする。
調べてみたら、電圧が100V切ってた(一応定格内)
新しい端末は115Vの電源使ってた。
国産機種で入れ直し。
>>109 >>110 怖いな。規格とか法律ってどうなってんの?
そんな糞電源を使ってるのはどこのメーカーだか教えて欲しい。
電源は大事だよね〜
マイコンセクションは
瞬断に巻き込まれないように
工夫するようにしたり。
そろそろ空想で語るのは終わりにしようよ
電源が不安定でリブートするなら装置として問題ない。
そうならずにEEPROM書き換わるような動作するのは作ったやつが悪い。
ただそれだけのことなのに医療用には使えないとか寝言としか思えん。
>>114 リブートはまずかろう。
縮退してでも動いてもらわないと。
そりゃ仕様の話だ。
正常動作範囲の仕様より酷い電源ってのは前出のようにある。
その場合どうなるかってこと。
人の命に関わるようなものは誤動作するくらいなら止まったほうがいい。
リブートってのは「正常に止まった」所からのレジューム動作も含むんだから。
簡単な例を言うとBOD無効にしてりゃ普通に電源切っただけでEEPROMは書き換わる。
BOD無効にしてるのは天災か?人災か?
で実際のところ医療用には何が使われているの?
>>116 正常に止まって再開したのはリブートと呼びたくないなぁ。でもリブートなのか。
ちなみにAVRは俺も聞かない。
TIの独壇場だと思ってた。
これ、どうでもいい話だよねぇ
AVRはそれなりに組んでもEEPROMが書き換わるようなクソマイコンなのか
議論するってのはどうだい?
AVRスレらしかろ
>>120 いいと思うよ
でも試したり経験すらしてない連中がしゃしゃり出てまたグダグダになるんじゃない?
なるなるw
ただまぁロクな話題がないんだし、失敗談とかはためになると思うんだよねぇ。
知り合いのオッサンは車の燃料コンピュータを昔やってたんだが、
絶対に誤動作しちゃいけない部分なので面白い話をいっぱい聞けた。
ROMの未使用部分を無限ループで埋めるとかねw
電圧不足ならどのマイコンでもちゃんと動かない。
電源を監視して設定電圧以下ならEEPROM書込しなければいいのでは。
製品1号機は瞬停テストやノイズ試験してから出荷すると思うけど。
>電源を監視して設定電圧以下ならEEPROM書込しなければいいのでは。
テストでNGになると思うよ。
「書き換わることがある」と「書き込みに失敗する」は違うんだ。
「書き換わることがある」ですか...
それって第一世代の1バイト目だけのような
手元に第一世代じゃないヤツ持ってないのかい?
やってごらんよ。
「AVRマイコンは電源が不安定だとEEPROMの内容が書き変わることがある」
なんてウワサたてられてるんだよ。
SAM4LはAtmelのMCUだけどAVRシリーズではないよ。
0.35umよりも大きいプロセスルールじゃないと
放射線で誤動作する。
AVRは、無理。
ルネサスとmicrochipは、古い型番で出荷中のがあるよ。
>>118 > ちなみにAVRは俺も聞かない。TIの独壇場だと思ってた。
俺もその認識。
>>122 > ROMの未使用部分を無限ループで埋めるとかねw
それって、暴走したまんま? 普通、initに飛ばすと思うが。
他、NOPでアライメントを揃えるのもあった。
>>127 アトメルはAVRだけ作っている訳ではない。
Mega644PでEEPROM使ってますが自分のテストも問題なかったし苦情も無いです。
動作不安定(暴走)による書込実行なのでクロック回路に問題なければBODで防げるのでは
>>130 マイコン自体が周辺チップ全てをinitで初期化しているなら問題ない。
そうでないなら無限ループでウオッチドッグを働かせて全体リセットしないといけない。
ハード設計に依存することに「普通」が通るのかな?
>>131 >電源を監視して設定電圧以下ならEEPROM書込しなければいいのでは。
これがBODの事を言っているのなら問題ではなかった。
ソフトで電圧をチェックして書き換え実行するか判断しているようなら
暴走で不具合出るよと言いたかったのよ。
事実、消費電力削減のためにBOD無効にすることも珍しいことじゃない。
そこんとこはっきり書いとかないとね。
要するにプログラムカウンタさえ吹っ飛ばせば不意の書き換えなんていくらでも起こる。
バグや電源以外の要因で吹っ飛ぶことだってあり得る。
これはAVRに限った話じゃないってことよ。
その可能性をいくらかでも下げるために無限ループバリヤなんて涙ぐましいことを
していた世代もあるってことw
12VをACアダプタからじゃなくて1.5V 8本で電池で駆動させてみたときは
電池が力尽きた後状態を確認したらEEPROMおかしくなってた。
確かにEEPROMには頻繁に書き込むプログラムにはなってたけど書き換わらないはずのアドレスも一部変わってた。
別に、自分は大してこの現象は気にしてないけど。
殺伐としてるなぁ、AVRを叩きたい人が騒いでるだけか
保証範囲外の動作で文句言われてもな
ルネサスなら大口ユーザーに頼まれればなんとかするんだろうけど
ためになる話じゃないの
趣味と売り物は違うんだな〜って思うよ
でも聞きかじった程度のレベルだよ
医療用途と言っても色々あるからなー。
24/7の高い信頼性が必要なものから、
普通にその辺で売ってるのと変わらないのもあるし。
人工心肺くらいArduinoで十分だろw
>139の命だったらその程度でも良いかもね
ワロタw
142 :
774ワット発電中さん:2012/12/14(金) 13:10:20.79 ID:k0A4/Ct6
スペースシャトルみたいに多数決システム組んでみたいwAVRでww
>>142 バグは、全員一致。
設計やコーディングを数チームで別に作って多数決ならバグ無しになるか?
バグ「無し」は不可能。
何をやろうと確率が下がるだけ。
命令実行時に1ビット0/1が反転したらと思うと、コンピュータに命を預けるのは怖いな。
そうかといって人間に預けるのはもっと怖いし。
頭上に隕石が落ちてきて死ぬ確率も0とは言えないし
それを防ぐ事は不可能なんだから、命なんか気にしても無駄だよね
147 :
774ワット発電中さん:2012/12/14(金) 17:03:54.95 ID:uWKVDgJN
流星LEDのLチカやってみたいな。
>>146 三人で歩いていたら一人に当っても多数決で無かったことにしよう
でも、ユカタン半島に落ちたレベルの隕石かもしれないよ
うぃきによると
隕石の大きさ - 直径10〜15km / 衝突速度 - 約20km/s
衝突エネルギー - 広島型原爆の約10億倍 / 発生した地震規模 - マグニチュード11以上
生じた津波 - 高さ約300メートル / 出来たクレーターの直径 - 約160Km
白亜紀末の大量絶滅(K-T境界)の、もっとも有力な原因ってことだし
もう少し人数増やした方がいいかも
うぃきなんて嘘だらけだから信用しちゃいかんよ。
151 :
92:2012/12/16(日) 20:50:40.51 ID:qSHU568S
一応調べたところ、TLCS870ってマイコンを会社で使っていました。
http://www.h-toa.co.jp/toase/pro/pro04.html このサイトで、マイコンスターターキットという学習用のものが販売されていたのですが、
値段が2万7千円と少々お高い・・・・
まず、コイツの学習用資料がどれぐらいしっかりしているか内容かがわからないのと、値段で悩んでいます。
本当にマイコン超初心者なので、一般的に参考書がよく出回っているPICマイコンで勉強したほうが、
色々学べるんじゃないかとも考えてしまったり。
しかし、どうせ勉強するなら会社で使ってるのと同じマイコンにしたほうが とも思う・・・・
こんなヘタレに、アドバイスをよろしくお願いします・・・・・
年末から休みが取れるのでそれまでに購入をして、連休中に少しお勉強したい・・・!
>151
仕事としてやるなら会社のマイコンに合わせるべきでしょう。開発環境がぜんぜん違うでしょうし。
>どうせ勉強するなら会社で使ってるのと同じマイコンにしたほうが とも思う・・・・
会社でやっているならそっちにあわせておくほうがいい。
どうせどれを使っても一通りちゃんと理解すれば、
あとは何を使っても同じ。
>>151 多分素人がそれを買っても勉強にならない。普通、この手のは別アーキテクチャに精通してる人が、ちょこっと触るとか。もしくは学校とかでカリキュラム組んでその中で使うもの。
自分はそのマイコン触ったことないけど、ちょっと高すぎる。
はじめの一歩は、arduinoあたりでI/Oの制御とかSPIとかI2Cなんかのシリアル通信。次に同じ基板で素のAVRをアセンブラでとかやったほうが捗る。
ぶっちゃけ一つのアーキテクチャをちゃんと理解してれば別なマイコンを使うときの敷居は低くなる。
PICは単一のアーキテクチャとは言い難い感じになってきたし、癖も強いから今ならarduinoの方がいいよ。
>>151 > PICマイコンで勉強したほうが
嘘でもいいから、そこはAVRと言えよ。
でなきゃ、スレタイ100回読めの刑w
>151
8bitPIC(PIC10F,12F,16F,18F)しか使わないというなら参考書籍が多い
という理由で選ぶのも有りだけど、他のMCUも使うなら特殊すぎる
8bitPICから始めるのは、おすすめ出来ない。
TLCS870ってZ80互換のようだから、図書館でZ80の本でも
探して読んで見るところから始めてみては。
>>156 TLCS870とZ80はニーモニックが似ている所だけ、強いて言えば互換性かも。
あとは全くの別物。
会社で買ってもらえよ。
年度末予算消化に10セットくらい買うとちょうどいいだろ。
なーんたステマだったのか
>>151 会社の先輩よりWebが信用できるならAVR/PICで良いけど・・・
161 :
774ワット発電中さん:2012/12/17(月) 16:43:56.68 ID:OV5Dzl+w
AVRの参考書籍でいいのないか?
かっこうつけるわけじゃないが最良の参考書籍はデータシートだ AVRの場合は
163 :
774ワット発電中さん:2012/12/17(月) 19:40:15.91 ID:1mPATy7k
Webでググった方が有料参考書籍より最新情報が得られるよ。
総合開発環境のAtmel Studio 6.0がタダで手に入るじゃないか。
>>151 東芝マイコンは医療用に使って良かったっけ?
おまえんとこの会社、非道い会社だな。
165 :
774ワット発電中さん:2012/12/17(月) 21:21:03.41 ID:4Z3QtnZ/
確かに27Kは安くはないが、仕事絡みなら迷う必要はないな
付属マニュアルの出来にもよるけど・・・
会社で貸りてこいよ。
デバッグ用の不要になった試作ボード転がっているだろ。
レジスタがExcelなどで見やすくまとめてある表ってありませんか?
毎度毎度データシートから探すのは大変で…
皆さんはレジスタ名や各機能とかを暗記されているのでしょうか?
>>167 閻魔帳は人それぞれだからな。
自分でちょっとした時間とかにまとめた方が役に立つよ。
AVRの場合はデータシートの各機能の説明の最後に
関連する各レジスタの各ビットについての説明が載ってるからな
それをさらにまとめてどうこうしようという気にはならない
日本語マニュアルにしてくれてる有志にはマジで感謝する
その有志に対して、信じられないことに誤訳だとイチャモン付ける奴がいるんだぜ。
和訳をざっと見てからオリジナルを読む、という風に俺は使っている。
AVRってそういう意味ではかなり良い環境だよな
ハード以外はタダでできるし、癖も少なめ、日本語データシートもある
書籍では圧倒的にPICの方が多いけど、その他のマイコンに比べれば多い方だしね
>>167 データシートの最後の方に、レジスタ一覧あるけど…
レジスタ名のクリックは出来ないけど、ページはクリックできる…よね?
USBホスト機能の付いたAVRってないの?
データシートの最後の表を見ながらよく使うとこだけでもまとめてみようと思います。
ありがとうございました
OTGのやつあるでしょ
おれもUSBホスト機能を使いたいと思っているんですが、
OTGだとほとんど32bitですね
8bitAVRしか知らないんですが、同じような開発方法の延長でできるものなんでしょうか
toollchainとか、IDEとか、書込み方法とか
SL811HSつないで良く遊んだっけな。
USBで汎用性を求めると面倒だけど、
相手を決めうちで良いならそれほど難しくない。
>>178 AT90USBってやつはもうディスコンなの?
16FのPIC+純正Cで、浮動小数点演算したらsin一つ計算するだけでms以上かかって泣いてるんですけど
AVR+GCCにしたらもう少し幸せになれるでしょうか?
>>182 2^n倍してテーブル化して持っとけよそんなもん。
>>182 制御系ではsinテーブルを持つのが常識だった。割り込みの中で演算するなら特に
>>182 > 少し幸せになれるでしょうか?
少しなら、幸せになれるでしょうw
MCUやコンパイラの種類だけでなく
演算に必要な精度、許容される実行時間、持ち合わせているプログラミング能力などでも
幸福度は変わってくると思うよ。
はい、今のところはテーブル化と固定小数点で逃げていますが、
それをやりたくなくて。
変移値が限定されてるならベクトルを回せばsin自体が不用
加法定理を使えば粗いテーブルでもおk
前測定したことある
同一システムクロックでのAVR(atmega644p winavr)とPIC(PIC16F886 hitec c pro lite)の
32bit浮動小数点演算速度比較
加算 18.7(倍PICマイコンのほうが時間がかかる(以下省略))
減算 18.4
乗算 54.8
徐算 20.7
cos 75.6
sin 81.2
tan 144
>>187 やりたくないとなると、Cortex-M4, RX, SH, TI DSPの選択になるかな。
>>182 16F 以下は多倍長の加減算が遅い。(キャリー,ボローつき演算命令が無い)
16F1xxx は少しマシ(キャリー,ボローつき演算が付いた)
18F は乗算器あるので、もう少しマシ
PICで込み入った演算させるなら、24F以上が入ると思う。
>>191 この値段でFPU入りって、他にないよね。
ちょっと頑張りが必要だけど、PSoC3/5のCPLDにFPUを組むのもありそうだけど。
>>188 三角算数と指数対数だけならいいんですけど、そのあいだの演算自体が遅いのに困ってます。
浮動小数点値の単純な加減算だとか、そういうの。ループ回すと大変なことになるので。
固定小数点だと精度取れないことがあって。
>>189 ありがとうございます。AVRのほうが速いんですね。AVRには詳しくないのですが、mega128あたりでも
コア同じなのでしょうか?
>>190 今まで、そういうのはSH2使ってたんですが、どうしてもDIPで、という指定なので。
>>195 線形補完なりなんなりしたらいいんじゃないか?
固定小数点でも頑張ればそれなりに精度出そうな。基数の逆数別に持つとか。
DSP的な物なのか、制御系、測定系?
どのような演算がしたいのか目標速度も分からないから提案しても無駄
32bitのCPUならFPUなしでもそこそこ速いんじゃないかね
シフトやビット操作で折れ線処理やってるだけだし
AVR Studioのgccのオプティマイザを誰か教えて・・・。
オプティマイザ無しにしないと、
なにが消されて何が変更されてんのか・・・。
ツールバーのプロジェクト→○○のプロパティ→Toolchain→AVR/GNU C compilerのoptimization
のことでいいのかな?
>>196 それって1000個のときでしょ?
1個ならPIC32が安いよ。
>203
500円台は 1個の時。¥7500 以上買わないと送料がかかるけど。
>>205 100pinのそっちじゃなくて、STM32F372C8T6だから、44pinの安い方。
AVR32のAT32UC3C264C-A2UTも100個買えば@462になる。
STM32F372C8T6なら@391で400円切るけど
まぁUC3Cの方は64pinでちょっとだけGPIOが多いかな。
ついでに、ATMELのCortex-M4F採用品はニュースリリースからまた随分と間が開いてる?
>207
なんかもう、いろいろ駄目すぎるだろ…
まず、C8T6 は 48pin。
64pinが必要ならR8T6で、574円、100個で@420円。UC3Cより安い。
そしてAtmelのCortex-M4採用品はM4Fではなく、FPUを持ってない。
>>208 寝てるからね…
>そしてAtmelのCortex-M4採用品はM4Fではなく、FPUを持ってない。
ちょっと前に、Cortex-M4F採用品の予告がATMELのニュースリリースに出たのよ。
>>202 そう。それ。
サイズ最小モードにすると、確実にまともに動かない。(コードが消されてる)
結局は、オプティマイザは切ったほうがいいの?
おまいら、平べったいタイプのやつってどうやって使ってるの?
長方形の奴なら、ブレッドボードで楽にできるけど・・・。
DIPとブレッドボードでプロトタイプして基板を作ってSOPで完成
213 :
205:2012/12/20(木) 23:43:09.96 ID:B+OP5hbf
>>206>>207 >>196の「Cortex-M4F(つまり FPU入り)の最安値」って、書き間違いでM4Fじゃないのか… ( ゚д゚)ポカーン
顔が逆さまになるまで首ひねってしまったw
りょ〜かい、AVR32 UC3Cの負けなのね (つд⊂)エーン
>>211 どうやってって、図面一式で試作工場に依頼するだけだよ。仕事だし。
>>211 0.8mm ピッチ位までなら、リード線引き出して、
ユニバーサル基板で組める。
>>211 市販の2.54ピッチの変換基板に実装しての2階建てだよ。趣味だし。
Cortex-M4F 激安マイコンボード
LM4F120 Stellaris LaunchPad \550
http://eleshop.jp/shop/g/gC9Q361/ ●80MHz ARM Cortex-M4F CPU搭載
●オンボードのインサーキットデバッグインターフェイス(ICDI)付属
●Flash:256kB
●SRAM:32kB
STM32F4のチップ単体の値段と大して変わらないな。
>>217 マジか!無茶苦茶すごいな
俺のスキルと英語力では使いこなせない。くそ〜
>>218 AVRだってメーカのドキュメントは英語じゃん?
>>217 なにこれ?ARMってさわったことないんだけど、PIC,AVRしかやったことないけど、とりあえず買いなの?
評価版なのでコードにサイズ制限云々ってpdfに書いてたけど、サイズ制限ってどんなもんなんだろう。
サイズが制限されているんだと思うよ
>>217 俺は本家5$の時に買ったけど安いな。1割り増しで利益出るのか?
>224
当然仕入れもサービス価格で提供されてるでしょうね。
米TIから日本の個人宅にFedexの送料込みで$5で配るのに比べたら
TIにしてみれば1個\200程度で店に卸しても安くつくかも
当然、単独で見ればTIは赤字だろうけど宣伝&普及が目的だろうし
AVR(Atmel) Studioの、ダウンロードするときの住所とか、まじめに書いた?
そんなこと訊いてどうするの?
>>226 そもそもそんなこと書く必要が有ること自体知らない人が多いと思うよ。
230 :
92:2012/12/23(日) 11:40:07.38 ID:mrAUfSrf
返信遅くなりました。
皆さん、返信ありがとうございます。
取り敢えずAVR等の参考書を買って、少し知識つけてから東芝のキットを買おうかなと思います。
>>174さんの本でも取り敢えず買ってみようかな。
みんな親切すぎて嬉しかったw
サンクスコ!
>>227 おれは、まじめに書いたんだが、ネット見てると、テキトウでいいとか書いてあったので。
テキトウに書く人が大半なのかな?と思った。
>>229 ということは、付属のCDの人が多いということか。
>>231 IDEを使ってないという意味なんじゃないかな
俺もその一人
mega168で彼女作れますか?
234 :
774ワット発電中さん:2012/12/23(日) 15:10:10.42 ID:E5Krtril
>>231 住所書くなんて知らなかった、昔はメルアド入れるだけだったと思うが
それも面倒なので直リンクからコピーしている。 でも普段使うのはまだ4.19
スレチ気味なんだが、
arduino,mbed,raspberry pi
不思議と全部ヨーロッパなんだよな
なんでアメリカじゃないんだろう
日本はどした?
日本はLチカしかやらないから
日本はbabbage1号2号があった
日本には、がじぇっとるねさす(GR-SAKURA)があるじゃん。
コンセプトはArduinoとmbedを足して2で割った感じだよね
2で割って残った部分が重要。
243 :
774ワット発電中さん:2012/12/25(火) 08:01:18.07 ID:YHC2CdBE
ヨーロッパ人は価値観の異なる人の間で共同作業するのがうまい。
日本人は、少し価値観がずれても排除する傾向が強い。
みんなAKI-H8で満足してたってだけでない?
秋月で言えば、H8よりも前に有名どころがあるだろ。
俺の大嫌いなZ80系の奴が。
AVRにしろH8にしろ、68系のアーキテクチャが好きなの。
>>246 AVRにしろH8にしろ、68系関係ないじゃん
>>247 H8は68kの16bit版ようなものだよ
>>241 2で割ってないからwむしろさらに加えている。
ハード面ではSDスロットついてXBeeが直接刺さってLANもUSBホストもある。
ソフト面では開発環境がクラウドで提供され、そこがポータルにもなってる。
またそのクラウドではスマホによる開発も可能にしている。
>>251 >>241さんは機能でなくてコンセプトの話をしてるんでないの?
顔がどこに向いてるかって事だと思うんだけど。
>>247 H8はもろ68kのアーキだし、
AVRも全然違うけれども、命令セットのエレガントさや使い勝手は6809の匂いがするんです。
H8は8086をビッグエンディアンにしただけのような
C言語で開発できればアーキテクチャは、気にしない
>>253 データレジスタとアドレスレジスタの区別もなくて「もろ68kのアーキ」なわけないじゃん
レジスタの数が豊富にあってレジスタ同士での演算が自在なAVRは6809とは全然使い勝手違うじゃん
馬鹿も休み休み言え
258 :
774ワット発電中さん:2012/12/25(火) 22:57:49.20 ID:EFczDEW5
大昔の8086アセンブラ使いとしては、メモリ上の変数と即値データを
1行で比較記述できるのは便利。変数を一旦レジスタにMOVしなきゃならないのはメンドイ
>>258 それは8086がRISC以前の設計思想だから。
キャッシュマンセーな現在では
メモリーレーテンシーを隠蔽できる方が良い書き方だったりする。
(今のインテルプロセッサはアセンブラコードじゃないけどね)
その意味ではAVRの方が新しい。
>>259 メモリ上の変数との演算は、68系なら当たり前だけど?
RISCかどうかは関係無い気がする。
>>259 >それは8086がRISC以前の設計思想だから。
バカ言え。
「メモリ上の変数と即値データを 1行で比較」なんて想像しただけでバイト数がかさむ命令が
RISCの考えに合致してるわけないべや。
262 :
774ワット発電中さん:2012/12/26(水) 01:24:15.48 ID:4WrnK+CD
マイクロプログラムとかないのん?
私がAVR(90S2313)を初めて知った時に思った事は
16ビット固定語長でレジスタが32個あるのに命令の種類が多いなぁ
だった。
詳細を見たら、使用上の制限がある命令が多かったので納得したけど。
AVRのUSARTで誤差ってあるけど、これは、0じゃないと通信できないの?
通信エラーのときって自動的に再送してくれないの?
あぼーん
>>264 自分と相手のUSARTクロックの相対的誤差が5%以下なら「原理的には」通信できる。
クロック分周の時点でその許容誤差を使い切ってしまったら、
発振器のわずかな誤差で通信不能になるけど。
通信エラーの再送はない。そもそも送りっぱなしのプロトコルなので、
エラーがあったかどうかをUSARTモジュールが知る術がない。
データを受け取ったら受信側に何らかの応答をさせ、
それがなかったら再送するようなプログラムを自分で書くしかない。
>エラーがあったかどうかをUSARTモジュールが知る術がない。
パリティ付けろや
>>267 パリティつけたら送信側でエラーわかるの?
パリティーあっても、1bitだけエラーがあった時に検出できるだけ。
CRCを送るのが普通かな
だから送信側だってば
つか、非同期と無手順を混同しないようにな
273 :
774ワット発電中さん:2012/12/27(木) 00:27:13.06 ID:+1djy3Gd
>>268 パリティなしでも受信側はエラーがわかるの?
ストップビットを拾えなかったりしたらわかるんじゃない?
フレーミングエラーもチェク
UARTのどんなエラーチェックでも(オーバーラン、フレーミング、CRC、水平・垂直パリティなど)、
たとえRS485で送信信号をダイレクトに受信して監視しても、
受け手が正しく受け取ったかどうかなんて、送信側には分からないと思うよ。
USART誤差ネタついでに
3.6864MHz
7.3728MHz
18.4320MHz
の水晶やっとみつけた・・・。
USART優先でOSCCALtuneするのが好きです
>277
関東人なら水晶はaitendoおすすめ。秋月より安くて品種も多い。
その3種もある。
こないだ行ったらまさかの12.000MHzの在庫切れくらったけど...。
>>279 aitendoはよく使うけど、端数の周波数の水晶は、大量買いするやつのせいで、スグになくなる。
XBee転送で120*160*2(QQVGA*16ビット)=38400バイトの画像を38400bps設定で11秒もかかっちまう。
できれば3秒くらいにしたいんだが・・・。
なんかめっちゃいい圧縮アルゴリズムか方法しらん?
USARTには同期/非同期両方を指すけど、どっちや?
非同期でいいんだな?
>>279 秋葉店でも水晶10個入って売ってますか? 店頭には見当たらないので通販だけかと思った。
お姉さんに言えば買えるのかな。
>>283 通販も売り切れだお(;_;)
だれだー!使いもしないのに薬草やポーションを99にしとくみたいに買い漁るやつはー!
>283
模様替えしてなければ
正面カウンタ前に立ち、しゃがんで左を向くと周波数が書いてある箱が積んである。
10個入りの袋詰めになってるとは限らないので買う時はおねえさんに数を数えてもらう。
>>285 >しゃがんで左を向くと
左を向いてからしゃがむのオススメ
287 :
283:2012/12/27(木) 14:49:34.25 ID:thcEzGeE
>>285,286
左側かちょっと死角だった、今度よく見てみます。 ありがとう。
>>281 無圧縮でも38KBしかない小さな画像をテーブル込みで30%に縮めろってか・・・
超スレ違いだな
>>288 しゃがむ→左を向くの順番に重要な意味があるの!?
>>284 電気とかやってる奴らは大抵同じとこ見てる
何気ない記事や書込みに反応し、そう言えばとついで買い
今時誰も使わないような、いつもあった部品が品切れになってて
どこに行ってもなぜかないのはそんな理由だったりする
発端はこれかwww
なんてことは多々あるから気をつけろ、俺も油断してたぜ…
xべえ画像転送は俺もやりたいと思ってた。
頑張ってくれたまえ(後で報告よろしく)
JPEGとか組み込んでみたが、ATmega88じゃプログラムメモリ収まりきらない。
AVRで画像圧縮に挑んだ人いるかなぁと。
>>290 ごめん、なかったコトにして(´・ω・`)
>>281 どういう画像かにもよるし、可逆/非可逆圧縮かにもよるよ。
同一色で塗り潰されてる面積が大きいんなら単純なランレングス圧縮なんかでいけるかもしれんし、
既にある画像フォーマットを調べたいなら、PhotoShopとかGIMP2みたいな色んなフォーマットでの
画像のセーブに対応したグラフィックツールでも使って実際の画像を使って試したらいい。
>>291 秋月のAVRも注意した方がいいよ。 売れてるTiny2313,mega328P以外は
在庫補充の様子が無い。 完売終了になるものが出てくると思う。
644P,1284Pは在庫切れのまま放置だが88Pはwebから消えている。
*88Pは8月に通販在庫切れなったが秋葉店頭にはまだあるようだ、買う人が少ないのだろう。
今後mega64A,mega168P、tiny10辺りが危ないと思う。
秋月には売り切れ増えたら新しいAVRを投入してくれると期待しているがどうだろう。
>>296 今日店頭見てきたらDIPの644Pは置いてあった
1284もスポットであるのかもしれない
>>297 いや、店奥の棚からレール1-2本発見したぐらいで通販にはまわらない。
POS管理されてないので店頭在庫数量不明とみた。
>>286 ドルアーガの塔 だと、順番が違うとアイテムが出ない。
まもののすくつだとでも言うのか
>>293 > 120*160*2(QQVGA*16ビット)
16bitって、RGB565のこと? それなら画像フォーマットを変換するだけでちょっと圧縮出来るよ。
YUV422 - 2/3に圧縮
YUV411 - 1/2に圧縮
120x160ならパレットでいいんじゃね
見た目わからんだろ、半分
データ転送そのものと別の話だけど
画像って言ってたから、表示のレスポンス込みかなって。
8-16パレットデコーダ相当は外にするとさらに幸せ
過去FT2232+8pinPICで同期生成、QVGA/RGB565に戦いを挑んだ俺が言ってみる
約3fps、書いてるそばから画面が白っちゃける
今時のはモジュール内にSRAMとかずるい…
>>304 >ボーレート上げたら簡単じゃね?
XBeeでググッてみよう
さらにググると…
2x2ドットを同じものにしちゃう方式で9600byteまで情報落とす方法で解決しましたw
まぁ、相変わらずXBee転送は時間かかるけどw
エラー訂正が結構入るからね。スループットはそれくらいが限界とか。
映像伝送だったらその辺りを妥協してスループット上げる方法もありかと。
何処かに符号化率ってパラーメーター無い?
38400バイトを38400bpsで11秒ならほぼフルスピードじゃん
>>312 そんなこと言わずに教えてよ〜
言ってやったぞ。言ってほしかったんだろ?
>>313 YUV422/YUV411に変換した後、左のドットと差を取る。
すると上位ビットは0が続くからRLEで圧縮。
AVRマイコン専用のアセンブラごりごり圧縮ライブラリとかないのかなぁ。
>>315 AVRで画像処理する人が珍しいから、無いに一票。
それ以前に、アルゴリズムがダメだったらアセンブラにしてもダメに1,000票w
>>309 > 2x2ドットを同じものにしちゃう方式
それが許されるなら、誤差拡散法による減色もあるんジャマイカ
何処かでエラー訂正なしなら70kbpsとか見た記憶がある。
近くにパーツ屋の無い地方民は12MHzのクリスタルを
百均のUSBカードリーダやらハブから調達してる
離島は通販もできないからな
>>320 おまいさん、あちこちで離島アピールしとるね。DigiKeyとかの海外販社から見たら、本州だって辺鄙な離島だぜ。でもしっかり届くから強調するな。
それは俺じゃないけど、傷付けたならすまんかった
>>319 PSoCもPICも水晶レスでUSBが動くようになったから、そろそろ100均から水晶調達も難しくなりそう。
>323
そんなところから調達するより 中華DXから>308買っておけば
12MHz水晶30個で\300以下(送料込)だよ
AVRって、今ならATmega328Pが初心者には一番いいの?
>>326 Arduino化するならね。
金と実装面積に余裕があって、ASでごりごり書くなら、
FLASHもSRAMも足も多い644Pの方が高機能で使いやすいかと。
秋月で品切中だけど。
>>327 >金と実装面積に余裕があって、ASでごりごり書くなら、
初心者?
ベテランかもしれんぞ
アマチュアの立場で言えばDIPの40Pも売り続けて欲しいな。
QFPだと実装はともかくリワークがいやだ。
AVRの補助メモリとして、8MByteくらいのDIPのRAMってないの?
>>331 IS66WV51216BLL-55TLI
333 :
774ワット発電中さん:2013/01/02(水) 11:05:04.67 ID:AXBMOo6X
>>332 ・・・これつなげられるAVRってあんのw
PIN数的に。
バンク切り替えだなw
UB/LB信号があるから楽勝。
外付けシフトレジスタでアドレスとデータを(ry
外付けRAMが必要な用途にAVRを選択した訳が聞きたい。
バイクにリヤカー付けるよりも軽トラ
>>336 レジスタ外付けしてシリアル通信でアクセスするぐらいな、
SDカードをSPIアクセスする方が手っ取り早くね?w
レジスタをSRAMの間の配線多すぎて泣くww
AVRマイコンにRAMをI/O増設するの私は好きです
74HC573とか574つかってアドレスをラッチしてデータをアレするとです
ランダムアクセスで100kbyte/秒程度の速度は出る
データバスが16bitになると面倒なんだよな
>>337 部品がいっぱい載ってるとカッコいいじゃん
>>331 秋月の4MBのDRAMなら直結できるよ
バーストで1MByte/sec程度しかでないけど
8ビットバスだから丁度良い
2313で一部のエリアだけ使うとか
64MbitもののメモリだとさすがにDIPはないんじゃないか?
もう、そんなのAVRやめたらよくね?
そこにはAVR以外何もないんだねw
可哀そうに
外部ストレージ扱いかメモリ空間扱いなのとか
そういう話はないの
そんな事じゃないならスル―よろ
そうか、AVR32の時代か。
>>352 試したいっ!
パーツ屋スレのほうがいいんじゃね
>配線硬度:硬度なし ・・・
触ると崩れるって事じゃねぇのか?
使い方を理解できない人は買っちゃダメです
僕はGR-SAKURAちゃん!
>>355 ワニスでいいんじゃね
上塗りすると溶解ってのがいいな
有機溶剤の成分知りたい
可愛い基板作りたくてポリウレタン線に
マニキュア塗ったりしたんだけどいい色出ねえ
>>357 こいつのせいで…
EジスPenと同じなのかな
ちょいとワークエリア欲しいならSPI SRAMが1Mbit位まであるが
メーカーがMicrochipなんだよなあw
PIC憎けりゃROMまでってか?
結構、アナログモノとかいいの出してるよね。
低消費のオペアンプとかレギュレータはよく使ってる
>>360 Microchipを顎で使ってると思えばいいじゃん。
>>351 それ、8bitマイコンに期待しすぎ。
>>360 サイブレスにもあるよ。それも嫌ならFRAM
>>351 Mega128/64/162みたいな外部バス利用可の奴ならば
64kまでをメモリ空間扱いで接続できる。
xmega系の128A1Uなら、128Mbit(16Mbytes)のSDRAMを直結出来る。
でも、素直にAVR32にした方が良いと思うなw
>>365 ほぉ、AVRでSDRAM直結なんて、想像すらしてなかった。
> でも、素直にAVR32に
そうか? 俺なら素直にARMにするw
僕はGR-SAKURAちゃん!
mbedやGR-SAKURAなどのクラウド型開発環境のものは、サービスが
打ち切られたら終了なのがちょっと。。
もちろん、アイデアは素晴らしい
選択肢の一つがクラウドなだけでローカルでも当たり前に開発できるよ。
mbedスレってない?
おい、atmel。bit_is_set使えないぞ。廃止か?
defineはセルフサービスでお願いします
>>371 avrlibcの改定であってatmelには関係ないな
おんや?
bit_is_setマクロはavr/sfr_defs.hに入ってるし
avr/io.hインクルードしてりゃその中で入ってるな
どんなソースしてんだよ
str_defs.hか。サンクスコ
atmel studio6についてくるtoolchainのio.hではインクルードされてないっぽい
"io.h"じゃねーよ
"avr/io.h"だ
SDカードへのFAT書き込みめんどい・・・。
なにこれ。
人のソース読むのってマジでつらいな。
よくプログラマを仕事でやってたと昔の自分を誉めてあげたい。
適性がないと早めにわかって良かったね
ハード系プログラマは、ソースコード汚いからなぁ
業務系と違って可読性まで考えてない奴多い
ハード側がコロコロ変わるんだもの。
たいてい短納期だしな
仕様書のリビジョンが現場の人によって持ってるものが違ったりするしww
仕様と違う動きのハードに現場合わせしたらドキュメント更新しないよ。
費用でないのに知るかよ。
ソースには丁寧に変更点や何故謎の処理が入っているかは書いておくのでソースを見よう
>>380 可読性と言いながら、オールマン・スタイルで書かれたコードは嫌いだな。
でも最近、行数を増やしたいのかこのスタイルばっか。
行数=労賃なのか?、ソフト屋は?
オールマンスタイルは開発環境が{ }を次の行に自動的に作成するようになってから異常に増えた。
388 :
774ワット発電中さん:2013/01/08(火) 20:23:47.55 ID:EOHwv7D1
コードって人間が喋る様に目に入ってくるのが理想的だからオールマンスタイルっていいとおもうよ。
それと入れ子構造のif、else、elseifなどは人間脳は7重までしかスタックできないらしいからね。
>>384 更新しないのはいくない、後で自分が困るし。
>>386 Wikiにもあるけど、マイクロソフトの悪影響?
>>387 本当に行数を節約したいなら、ホーストマン・スタイルにするよ。
C言語はAlgol系の言語で、"{ }"は元々"begin〜end"だった。
意味は「この中に複数の文がある」という、コンパイラへの命令。当時は構文解析が未発達だったからね。
C言語は進展する前に作られたから、当時のままw
ちなみに発達後の言語はAdaだったり、AdaをベースにしたVHDL。
Verilogに"begin〜end"はあるけど、VHDLの本文中に"begin〜end"が無いのはそんな理由。
VHDLは、プログラミング言語的にも新しいのよw
さて、C言語は邪魔だから "{ }" に変えられた訳だけど、
「邪魔にされた構文で、単なるコンパイラの都合で設けられた命令を強調して何が楽しい?」
ってのがオールマン・スタイルを嫌う俺の理由。行数をケチっている訳じゃないよ。
>>388 15年ほどまえ、ずーっと動き続けるプログラムで、malloc()とかの解放漏れを防ぐために、
超複雑な入れ子(10重以上ある入れ子)をgoto(ラベル数2つ)を使って3重くらいに減らして、シンプルにエラー処理をしたら
gotoを使うな!とマジ切れされた新人時代・・・(;_;)
どーかんがえても、goto使ったほうが、そのブロックの可読性は極端なまでに高まったのに。
と、それはおいておいて。
volatileってみんな変数宣言するときは、必ず入れてる?
それとも、最適化を切ってる?
>>388 米国で電話口でコードを喋ってみて、どのプログラミング言語が最も正確に伝わるかテストした逸話があるよ。
No.1はAdaだってさ。
所詮、C言語系は… ωαγατα...φ(゚∀゚ )アヒャ
>>389 >C言語はAlgol系の言語で、"{ }"は元々"begin〜end"だった。
>さて、C言語は邪魔だから "{ }" に変えられた訳だけど、
BCPLの頃からbegin〜endなんて使ってないだろ。
>>390 エラー処理にgoto文を使うのはアリだよ。
その先輩はダイクストラに感化され杉。
> volatileってみんな変数宣言するときは、必ず入れてる?
メモリマップドI/Oには明示的に入れてる。
最適化の有無で挙動が変わる書き方はいくない。
>>392 らしいね。
ただ、それは単なる表記の違い。
意味するところのブロック文には違いない。
組み込み人ならvolatileは反射でつけるだろ
>>390 >volatileってみんな変数宣言するときは、必ず入れてる?
I/Oや割り込みで更新されるオブジェクト等必要なものには入れるが必ずは入れない。
>それとも、最適化を切ってる?
それはない。
いろんなスタイルがあるんだな。
Javaコーディングスタイルガイド経由でK&Rいまはかな。インデントにはスペースのみで、タブは使わない。
>391
それ実はAda褒めてないんじゃないか。
電話で伝わるほどストリームのエラー補正能力が高い = 冗長性が高い(高すぎるw)文面だろう。
APLあたりがドベかな。発音できない・発音が統一されてなさそうな記号だらけで。
スレチスマソ
>>398 おぅ、その通り。俺はAda、そしてVHDLが大好きだw
> APLあたりがドベかな。
あ〜、うっすら(片鱗を)覚えてる。あれはある意味ですごい言語だ。
口頭で伝えるのもさることながら、普通に印刷しても全然伝わらないwhitespace
>>390 >>393 絶対使うなとは言わないが、やはり多くの場合、gotoを使うのは負け犬。
なんつうか、gotoを使ったほうがきれいにかけてしまうような流れになってること自体、
思考が構造化プログラミングに向いてない。
新人に対してなら、goto厳禁の指示は間違ってないと思う。
>>402 goto嫌いの人の為に try、catch、finallyが出来たのだからCでは、同じ構造でコーティングするならgotoでしょ。
それと、オリジナルBASIC言語に慣れ親しんだ人のgotoグセを矯正するために、しばらくはgoto使用禁止は分るがgotoを使えばシンプルにできる部分を複雑な構造にするのは本末転倒じゃないか?
>絶対使うなとは言わないが、やはり多くの場合、gotoを使うのは負け犬。
>なんつうか、gotoを使ったほうがきれいにかけてしまうような流れになってること自体、
>思考が構造化プログラミングに向いてない。
まあ、経験少ない人ならこんなこと言う人もいるかも。
オールマン・スタイルっていうのか。Visual C++でひな形を作るとそうなる
ので、合わせてるうちに自然とそうなっちゃった。
{ }の対応が分かりやすくて元には戻れない。
>>405 初心者時代に経験する、「波括弧抜けコンパイルエラー症候群」(今命名したw)がトラウマになるのかな?
>>402 goto文を使わずに書けば、思考せずと自然と構造化プログラミングになるから、向き不向きは関係無いよ。
>>390氏が言うのはエラー処理だし、俺(
>>393)が同意するのもその一点だし、
>>403氏も同じ。
みんな諸手を挙げてgoto文を推奨している訳じゃないよ。
>>403氏が指摘している通り、今は言語が例外処理をサポートした。
それで例外処理の重要性を認識した人が、C言語でも例外処理として扱えばシンプルに書く事が出来、かつバグ混入を防ぐ事が出来ると気がついた。
それだけの事。
>>406 まぁなんでもそうだけど、
デメリットを知ってる人が使うのはかまわないが、
デメリットを知らないやつが闇雲に使うのは駄目ってことだな。
>>406 それは、順番が逆じゃないか?
C++やjavaが出現する以前から、例外処理記述目的のgotoの有用性を、
認識しているCプログラマは相当数いたと想像するが。俺自身、そうだし。
例外処理目的のgotoを使わないでエレガントに例外処理を記述できる様に、
try catchが生まれたと思ってた。
>>407 コーディング規約でgoto禁止にされてる事があるしな。
そんな規約は大抵、問答無用禁止だw
発注側(検品側)が、これは良いgoto、悪いgotoの区別がつける能力がない事が多いし
あったにしても、どれを認める、認めないという曖昧性がでてしまうし。
ところで、構造化アセンブラってなかったけ?プリプロセッサでgoto 文とラベルだけ自動生成するような奴
>>409 用途によっては速度は重要でなく安定供給と安定動作のユーザーも居るからどちらが良いとこか言えなくない?
2012年のpicとavrマイコンの売上高がほぼ互角だしね。
PICは、宇宙用マイコンに匹敵するほど放射線、宇宙線に強いのでマイクロ衛星に使ったりしている。
>>408 えっ、ツッコんじゃうの?(汗
> エレガントに例外処理を記述できる様に、try catchが生まれたと思ってた。
ごめんね、C++の例外処理の由来はまたまた Adaなの(汗
C言語系は性善説に基づき、プログラマに最大限の自由を与える言語仕様。
一方、性悪説に基づく言語もあった訳で、それがストロングタイプなAlgol68→Adaの流れ。
(C系はAlgolを祖に持つけど、途中でモノタイプな言語になった)
(でも、ANSI C, C++では性悪説に回帰しているから…)(ry
Adaに例外処理が実装されたのは、プログラマは必ず失敗するとの考えに基づき、それなら例外処理を最初っから記述しましょうという考え。
goto文を使わない為に生まれて来た訳じゃなく(ry
そんなヲな話ここでしてもしょ〜が無いので、
>>406は当たり障りの無い話にしたのにぃ
。・°°・(((p(≧□≦)q)))・°°・。ウワーン!!
>>409 >なんだこの性能差は?
性能じゃなくて得手不得手の違いだろう。
PIC18FはCで効率活かせるアーキテクチャではないってだけ。
あれ? ここAVRスレだよね?
>>412 それ、言い訳じゃない?
・PICとほぼ同年で作られたi8048、その発展型であるi8051。
そのCoreMarkは AT89C51RE2で 0.11CM/MHzと、2.8倍差
・PIC18F97J60は比較的新しいチップで、128kBのフラッシュを積む。
128kBを全部アセンブラで書くのはナンセンスな話。
・しかも60-100pinとピン数が多く、Ethernetを積むチップ。
アーキテクチャで無いって、言い訳が通じるほど小さくない。
MIPS, CISCの違いにアーキテクチャが古い云々を加えても ATmega : AT89C51の5倍差は判るとして、
ATmega : PIC18F97J60の14倍差は… (^∇^)アハハハハ!
MIPSじゃないや、RISCだ。
ベンチマークを信じちゃう人がいると聞いて
(ナンカ カンチガイ シテイル ヒトガ イル)(--;
>>413 >・PIC18F97J60は比較的新しいチップで、128kBのフラッシュを積む。
128KB全部コードに使うわけはないだろうし、プログラムはコード全体の15%の部分が処理時間の
85%を占める(10%/90%という人もいる)とかいうけど、その部分に限って高速化を計れば処理速度に
ついてはそれほど酷いことにはならない。
> 128kBを全部アセンブラで書くのはナンセンスな話。
ちょっとでも知識や経験あればこういう↑バカなことは書かないと思うけどな。
(PIC厨は巣に帰ってLチカしてればいいのに…)
>>418 ナンセンス。
その85%の処理時間を頑張って2.8倍にして、30%?にしたとしよう。
高速化しなかった残り15%を合わせて45%、つまり全体では2.2倍の高速化だ。
だが、それでもi8051には届かず。ATmegaはその遥か先。
ヤレヤレ
マイコンなんてただの道具で用途によって使い分ければいい程度のもんなのに、
ひとつの側面だけで優劣を決めたがる奴の相手はできんわ(呆
>>419 誤解があるようだから付け加えとくけど、
>その85%の処理時間を頑張って2.8倍にして、30%?にしたとしよう。
>高速化しなかった残り15%を合わせて45%、つまり全体では2.2倍の高速化だ。
どんな処理でもCPUが100%で回ってる訳はないんでこんな計算は成り立たないよ。
>>420 忘れたのかな? 俺、最初に「ATmegaとPIC18Fの値段は大差無い」って言ったのを。
使い分ける余地も無いんだよ、PICは。
>>421 あぁ言えばこう言うな、アンタは。
さぁ、PIC厨は巣に帰れw
>>422 >使い分ける余地も無いんだよ、PICは。
マイコン選ぶ理由ってスペックと値段だけと思ってる人?
>>409 >ATmegaとPIC18Fの値段は大差無いのに
秋月やdigikeyしか知らん奴はこういうこと平気で言う
わざわざ割高な店で買うのは特別な理由のある人だけでしょ?
>>422 > さぁ、PIC厨は巣に帰れw
俺に言わせれば、Arduino厨もPIC厨も同じ穴のムジナ。
最強論争はどっか他所のスレでやってくれないか
AVR最強!
PIC厨ウザ!!
8〜32bitまで各種取りそろえたMicrochipラインナップの中から
互換性やら何やらで速度的な性能を求められていないCHIPに噛み付いて
速度が遅いと文句をつける…考え方がずれてる。
美魔女w
>>もっと若い娘(ARM,PIC32)と比べろよ。
ARMやPIC32(MIPS)なんてアーキテクチャとしたらAVRなんかよかぜんぜん古いんだけどな。
集積技術が発達したおかげで32bitアーキテクチャがちっこいマイコンにも採用できるように
なったわけで、例えるなら若い娘よか整形ババアの方が近いと思う。
内臓温度センサーの校正の為にジップロックに入れて熱湯に入れると
Attiny45は動かなくなるがPIC12F1822は動く。
動作保証範囲外だが動くのはうれしい
>>432 なあ、傍目で見ててもおかしいぜ。
Dhrystoneに代わるCoreMarkという、マイコン用のベンチマークが登場して何年も経った。
今や、コンパイラベンダーのプレゼンに登場する位メジャーになった。
これまで、マイクロチップは「Dhrystoneは8bitマイコンで動きません」を逃げ口上にし、平気で「10MIPS」と謳っていた。
それはチップの性能としては事実だろう。
だが、MPLAB C18のタコのお蔭でi8051にすら水を開けられている事実が明白になっている。
CoreMarkはオープンソースだ。
ここでクダを巻いている位なら、CoreMarkを落としてコンパイルして、そのオブジェクトをPICスレに晒し、よってたかってその品質を評価してマイクロチップに叩きつけ、改善要望したらどうなんだ?
そのほうがよっぽど建設的だとは思わないのか?
>>436 >CoreMarkを落としてコンパイルして、そのオブジェクトをPICスレに晒し、よってたかってその品質を
>評価してマイクロチップに叩きつけ、改善要望したらどうなんだ?
何のために?
>そのほうがよっぽど建設的だとは思わないのか?
速度が必要な用途には別の速いチップ選んだほうが建設的だと思うが。
MPLAB-C HI-TECH CCSの比較ぐらいしてくれればいいのに
けちくさい
>>438 「何のために?」と理由を聞いてるんだが、
>
>>436 「ここでクダを巻いている位なら」
ってサッパリ意味分からんのだけど。
なんでも良いし好きなもの使えばいいが、このスレはAVRのスレなんだから。
まるでム板のようだ
あ、誤爆ったw
ARMスレに書き込んだつもりだった
まあいいやw
最初にPICの話題を出した奴が戦犯だな
445 :
774ワット発電中さん:2013/01/10(木) 23:57:59.56 ID:khEyfPHS
>436
速度的な性能アップの結果がPIC24,dsPIC,PIC32なわけだが
なぜ、そうもPIC24以上の存在を無視するの?
>ATmega 0.53CM/MHz 10.6CM@20MHz
>PIC18F97J60 0.04CM/MHz
[email protected] PIC24FJ128GA010 1.88CM/MHz 30.16CM@16MHz
dspic33FJ256GP710A 1.88CM/MHz 75.39CM@40MHz
PIC32MX795F512L 2.95CM/MHz 235.76CM@80MHz
446 :
436:2013/01/11(金) 00:05:39.95 ID:KzDexP43
>>444 俺かよw
>>445 PIC18F97J60のダメっぷりを初笑いしただけですが、それがなにか? (^∇^)アハハハハ!
PICの話題が多いスレだなw
AVRばっかり使ってあることに不安だからPICより優れていと思うところを出して安心しようとしてある奴が速度に執着する
まずは日本語を勉強しようね
>>447 お前だよ、PICとAVR比較しても面白く無いと知れよ。
>>445 > PIC24FJ128GA010 1.88CM/MHz 30.16CM@16MHz
これ、MPLAB C30の結果だよねぇ。
お前もここでクダを巻いてないで、C18の何が悪いか調べてみたら?
>>450 あなたのヤジとバカにした態度のレスで思ったのは、
あなたは、コンプレックスが強かったり、人生が思い通りに言ってないのだろうなぁと思ってしまったりもします。
PIC推しの人が面倒すぎるんだよ。
聞き流せよちょっと18Fがショボいと言われても。
tiny叩きされても何も言わないだろ。
そもそもなぜそうも24F以上を無視するのか、って
それだけマイナーな存在になってしまってるって事に気づかないのか?
PIC叩いてる奴が馬鹿すぎるんだよ。
マイコンなんて用途で選べばいいだろ。AVRと心中するつもりか?
>>455 逆だろ。PICと心中するかのようにすぐ24Fはとか、32は、とか言い出す。
その通り用途によるだろうが、そんならARM使うわ、みたいな気持ちになる。
推しすぎたらこうなるって典型。
みんな仲良くね!
>>456 >逆だろ。PICと心中するかのようにすぐ24Fはとか、32は、とか言い出す。
「microchipで比べるなら」って前提の話だろ。
RAMの話で軽口のmicrochipなんだよなぁw
ってのに異常反応したPIC厨が悪い。
>>454 それは、あなたのために用意した餌ですよ。
元気だせ
MicrochipならSPI SRAMまで憎いってやつのせいか
>>461 軽口で、またmicrochipが否定された!とキレるやつのせい。
>>451 いやいや、PICとAVRの比較は、おもしれぇ、もっとヤレw
てか軽口ってどっかの方言?
> てか軽口ってどっかの方言?
?
http://dictionary.goo.ne.jp/leaf/jn2/46458/m0u/ > かる‐くち【軽口】
> [名・形動]
> 1 調子が軽くておもしろい言葉・話。たわいないが、気がきいていて滑稽みのある言葉・話。「―をたたく」
> 2 軽妙なしゃれ。江戸時代に流行した地口(じぐち)・秀句(しゅうく)の類。
> 3 口が軽くてよくしゃべること。また、そのさまや、そのような人。「―を慎む」「―な人」
> 4 「軽口話(かるくちばなし)」の略。
> 5 淡白な味。「―の酒」
//ここから平常運行
じゃぁ新シリーズであるXmega系普及のために話題にあげようか?
DIPがないからいらねーはナシでw
で、話題は?
え・・・・ふっただけw
使ったことある機能はイベントシステム、新ボーレートジェネレータ
仮想ポート、PLLくらいしかないよ
クリスタルつなぎ忘れて正常に発信してないのに発信器異常割り込みが
発生しなかったが何をきっかけに割り込むのかねぇ?
イベントシステム使ってHDLCの通信を無理やりやったこともある
SPI使うけど、そのままならビット長が8ビットの整数倍しか出来ないからね
イベントでSPIクロックモニターして自動的に余分なクロックを殺すなんてのした
面白くなければスマン
18FはAVRと同じ16bit命令コードになったんだから
効率がよくなるようにWレジスタを使わなくていい仕掛けを入れて欲しかったな
PIC18FはFSRを3本に拡張したりアクセスBANKでBANK切り替えを多少なりとも軽減したり
後期に実装された拡張命令でFSR2を使ったリンクフレーム形成や定数PUSH、他に
FSR2限定とはいえディスプレイスメント付きレジスタ間接の演算ができる(PIC24、AVR MEGAは不可)
等と、いろいろと改良はされたようだけど元がしょぼいアーキテクチャなため効果がなかったのかと
AVRは90S1200から綺麗なアーキテクチャだったから18Fで勝負するには無理がありすぎる
つか、そもそもがPICつーのは「ちょっとインテリジェンスを持たせたI/O」
に過ぎないんだし、あんなのをマイコンだと言い張る方がどうかしてる。
>472
それイイね。
PIC32が1.65DMIPS/MHzで80MHz動作だから
Drystone MIPSが130以下は全部マイクロコントローラと呼ぼうぜ
マイコン=マイクロコントローラなんだけどw
130DMIPSだと、昔のPCで Pentium-133MHz位か
ARM Cortex-M4 が 1.25 DMIPS/MHz だから100MHz以上ないとダメ
AVR32が91DMIPS@66MHzだからダメ
ハードル高いな
AVR90S8515に外付けRAM付けてドライストーン走らせてる人のページだと
1.938DMIPS@8MHz だからAVR-MEGAの20MHzなら4.8DMIPS位か
>>476 dsPICで5V120MHzとかあったな
ヒートシンクいるらしいw
PICとAVRの比較って時代ではなくなってるとおもふ
dsPICとPICって小泉純一郎と小泉孝太郎ぐらい違うよな。
AVRとAVR32もそれぐらい違うけど。
PICってMPLABが使いづらいよね
PICってAVRに比べてどんなメリットがあるん?
スルー力が試されています
使いづらいと感じるのは慣れの問題
多くの日本人は英語が苦手だが、アメリカ人で英語が苦手って少ないでしょ
PICは品種の豊富さが命
やりすぎだと思うが
arm系コントローラーの敷居も価格もすごく下がってきてるから
ホビーではじめようかって人がAVR選ぶ理由がますます少なくなってきてるかもね
>>475 「マイコン=マイクロコントローラ」という定義には少し抵抗がある。
MCUが出現する前からマイコンという言葉は存在した。
マイコンという名前の専門誌も存在した。
時代と共に意味が変わったのかもしれないけど
俺みたいなジジー連中は混乱するだろうな。
まぁもうすぐ死ぬから475は特に気にする必要もない。
ぼくはGR-SAKURAちゃん!
え、マイコンってマイコンピューターの略じゃないの?
結局130DMIPS越えるマイコンはどんなのがあるの
AVRでいうと どれ?
内部RAMが2.5kB以上のAVRでテストすれば、もうちょっとマシかも。
>>489 AVR32のAP7000系
AP7000なら150MHzで210DMIPS。
既にAP系は廃品種だがww
AVR32のUC系はデータシートだと1.49DMIPS/MHz(メモリアクセス0waitの場合)と書いてあるから
87.25MHzで130DMIPSに到達するけど
493 :
774ワット発電中さん:2013/01/13(日) 20:51:35.61 ID:or9aKbnZ
最高のマイコンを決めるスレはここですか?
>>488 かつて、そんな名前の雑誌があったなぁ。トラ技の別冊だったっけ?
初期の号数冊は良書だったが。
MEGAシリーズは上限20MHzで1DMIPSにも満たず
AVR32(AT32UC)も上限66MHz(1wait)で91DMIPS
PIC32に劣るAVRも>472の言うとおりマイコンと言いはるのは
おかしいってことだな
最初のマイコンは薄かった
I/Oも
広告で厚くなることをトラ技効果と呼んでた
トラ技、CQ、電話帳
ネット通販がない時代、トラ技は広告に価値があった。
おまいらAVRってかマイコン自体いつからいじってんの?
AT90S1200あたりからだから12年前くらい?
ゼッパチぐらいいじってるっしょっ!
つまり最強のマイコンはARMってこと?
ただのCPUはマイコンとは言わん
>>504 うん、そうだよ
聞きたいことは其だけかな?
TMPZ84Cシリーズや 683XXシリーズは知らない世代か
>>505 NECの8080/TK80辺りが「マイコン」の始まり。
それは個人で持てるコンピュターでmy con
>>510 国産ならNECのμCOM-4辺りからだろ
軽口ってどっかの方言?
>>514 日本語。
日本の国語辞典に載っています。
>>511 >>513 >NECの8080/TK80辺りが「マイコン」の始まり。
これはマイクロコンピュータ及びマイコンピュータ含め「マイコン」と呼び始めた意。
μCOM-4でマイコンブームが起こったわけではない。
>>511 My Computerってのは安田氏辺りから提唱されて始まっている。
NECでは「My Computer」の略語として使ってた訳じゃない。
あくまでマイクロだからμ。
>>516 TK-80登場以前にもAltair 8800とかの輸入品を個人相手に販売してたショップも
日本に複数あったし、話を単純に考えすぎ。
>>518 516だが、何か誤解してないか。
>>505の"ただのCPUはマイコンとは言わん"に対していている訳で
NECがマイコン=MicroComputerの元祖であるなどと言っているつもりは無い。
昔はいわゆる「電子計算機」って奴で、やたらバカでかく
なんだかよくわからないものを総称して「コンピュータ」って括り
それが机の上に置けるくらいになり、コンパクトってイメージから
「マイクロ」って表現になった
で当時のコンピュータの認識は「使用目的ありき」
「パソコン」ってのは目的はローカル
個人に委ねられる「パーソナルなコンピュータ」
コンピュータと言ってもなんだかよくわからず
でも言葉として線引きないのも説明しにくいからイメージから言いだした
何が正しいとかないよ
スマホみたいなもん
ここってAVRの話より雑談のほうが圧倒的に多いスレだね
AVRが完成し過ぎてて質問以外ネタが無い。
みんながどんなソフト使って開発してるのか知りたい
マイコン歴2か月の俺はAVRStudio4
ずっとAVRStudio4でやってますよ
ほかの環境もないじゃないけどデバッガ使えないからね
でも、これから始める人はPCがしょぼくない限り最新の
AtmelStudioでいいんじゃないの?
>>524 AtmelStudio6も最初に使ってみたんだけど、重すぎて使い物にならなかったんですよね
PCのスペックもi7に8GBメモリで十分すぎるはずなんですけど
少し前のログで重いor重くないの話題が出てましたね
環境のチューニングにもよるんだろうけど、
私も重いと感じるのでStudio4ですw
Xmegaの一部とか未対応デバイス使わない限り問題ないんだけど
だれかAtmelStudioの設定解説やってくれないかなぁ・・・(超他力本願)
>>525 5も重いよね
重い代わりにどんな便利機能が備わってるのかきになるけど知らない?
528 :
774ワット発電中さん:2013/01/15(火) 21:43:27.04 ID:HGwOUrxq
オレもよっぽどの事が無い限り4だわ。5とかあんな程度の機能なのに重すぎて意味不明。
あんなソフト使うぐらいならあえて新しいデバイスとか使うの避けるわ。
秋月Tiny13A値下げ 価格\50
在庫処分だろうな3万個もあるし IPIみたいにならないといいな
>>527 だからマイコン歴2か月なんですってば。5の優れてるところなんて知らないです
あと、AVRStudio4は全角でコメント入れられないのも初心者としてはすごく悲しい
全角でコメントはナンセンスって話もよく聞くけど知ったこっちゃねぇ
6便利だよ。デバッグ遅いけど。
ここで一言。
「ほんとソフト屋って生き物は、資源がいくらあっても平気で使い果たす。バカじゃね?」
てな事を書くと、必死に弁解する輩が登場するんだよなw
AvrStudio4で全角コメント入れまくってますがなにか?
>>533 >>なにか?
私の環境だと全角でなにか入れようとすると固まっちゃうんだけど
何か方法があるんですか
変換途中の文字が見えなくなってるだけじゃね?
536 :
774ワット発電中さん:2013/01/16(水) 03:38:15.51 ID:00kW3YAC
え?もう6出てんの?
>>529 中の人?
在庫数量どうやって確認した?
2313Vをレール買いして
まだ消費し切れていないのに・・・
後悔してる
SAMとUC3使いとしては、Studio6は快適。 CでのOOPなんで、インテリセンスが無いと大変。
>>537 秋月スレより
55 :774ワット発電中さん:2012/12/05(水) 20:38:40.60 ID:ckibojqo
秋月のHPシステムは、ひたすら個数を総当たりに入れていくと、
在庫数が分かるんだよね。
99999→9999→999→500→300とかね。
実際店舗の方でも、在庫を持ってるかどうかの確認をしてるやり方。
>>540 まぁこれで総在庫がわかるわけじゃないけどね
そのままカートに…
>>529 こういうのってどうやって実装するんでしょうか
3mmとかだったら実験目的なら変換基板しかないだろうけど、
そうじゃなかったら変換基板使ったら負けな気がする
>>543 DIPなんで2.54mmのユニバーサル基板で良いと思います
Tiny13Aの値下げはLPC810をそのうち扱うからかな?
>>546 >1mm ピッチで配線しての手半田は厳しいだろう
厳しいならDIPのマイコン選べばいいだけの話だろ。
>>547 だから、それじゃ負けな気がするから
基盤発注か手半田ぐらいしかないのかな?って思ったわけだ
でも手半田は厳しそうだしってのが
>>546での話
0.95mmの6ピンくらいなら。私はできますよ。
無駄な労力払いたいなら空中配線でもすればいいだけのことだし負けとか訳わからん。
>>546 >ATtiny10実装モジュール (米粒AVR)
ちょっとこの写真の半田付け、あまり上手くないな
いいの?こんなんで
製品は自分でハンダ付けするからキレイにやれば良いんじゃね?
いや、秋月の製品紹介なのにこのヘタな半田付けはどうかと思って・・・
まあどうでもいいと言えばいいけど
AVRstudio5重くて使ってないけど
立ち上がるときのてんとう虫の絵かっこいいよね
>>551 基板の設計に問題があるんだと思う。穴径に対してランドが小さすぎる。
>>553 それよりも、パスコンのランド無しが気になる。
てs
去年の11月に買ったTiny13Aは120円だった、、、
PLDやDDSの入ったPIC10F322が45円だし、メモリが倍のPIC12F1822が80円じゃ
プログラムが面倒でもこっちで遊びたくなるよな
何万個も作るわけじゃないのに、数十円の差をちまちまとww
>>562には
「価格では勝負にならないから話題にしないでください」
という気持ちが込められている。
AVRマイコンからTCPかUDPでパケット飛ばしたいですが
どんなアプローチが最も安上がりですか?
物理層問わないなら内蔵のUSART使うのが安いと思うよ
>>564 システムの概要や主目的を書けばエスパー回答してやんよ。
>>549 仕事で新しいIC評価する時、0.5mmピッチのを
普通のユニバーサル基板に貼り付けたり、よくやるよ。
(pinから細い線を引き出し)
569 :
774ワット発電中さん:2013/01/17(木) 21:21:18.80 ID:b5Xl3FvS
いっそprotelかeagleで設計して、フィルムにプリントアウトして焼いた方がはやそう。
>>560 俺の感覚では、スルーホール二つも経由して、しかもこんなに長い距離はもはやパスコンと呼ばないなぁ。
裏面がベタグランドにし、Vccピンから表面のグランドエリアに落としたいとこ。
>>566 気温測定して、その結果をTCPなりUDPでサーバーに送信、という感じです
余ってるPCにシリアル接続でいいじゃない
>>572 測定対象とPCが近くて、
PCを長時間動作させても問題ない環境ならならそれでいいと思う。
>>571 無線LAN USB付けてUDP飛ばすのがいいんじゃない?
>>564 WIZ820IOなら2000円くらいじゃない
俺ならZigBee使う。
どうもありがとうございます。
サーバーとは別にPCを近くに置くことは考えてません。
>>575 おー、なんか面白そうな!
そこで検索したらストロベリーリナックスが出てきて
その中にシリアル→LANのコンバータが見つかりました
http://strawberry-linux.com/catalog/items?code=36008 ご紹介いただいたものより+1000円ですが、プロトコルを考えず
単にシリアルに出せばあとは勝手にやってくれるぽい感じなので
WIZ110SRのラインで考えてみます。
>>576 Xbeeってやつですか
調べたらシリアル→無線LANで飛ばせるみたいですね
WIZ110SRの無線版という使い方もできそう。。
ちょっと高いですが、参考にさせてもらいます!
>>578 プロトコル層も面倒を見てくれる
>>575さん紹介のほうは1680円 で
シリアル変換アプリケーションも、入ったのが
>>577 で安い、簡単の結論が出てない?
>>580 質問者は結論を他人に求めてるワケじゃないように見える。
単に安い銭で済むか、そうじゃないかは質問者のスキルとか
手持ちのパーツが活用できるかで本人が決める事だし。
>>581 質問者は、WIZ110SRにした見たいだけど
>>579 ああ、WIZ110SRはRS232Cレベルなんですね・・・
ADM3202みたいなのも要るのか
>>585 AVRじゃないけど、手ごろなのもあるんだなあ。
>>585 それも素敵ですねー
とりあえず1冊はポチるとして、追加に基板だけ買えるのかな
>>587 Interface 2008年9月号に付いていたのは
コネクタ類が付いてなかったですよ。
パルストランスやその他を買わないと試せないので、うちは、そのまま雑誌に
と共に本棚で眠っています。
部品セットが3000円
若松通商HPの中でCOLDFIREを検索すれば出てくる
AVRじゃないからスレチかもしれないけどRaspberry piなんて物もあったり。
>>590 avrや単機能部品は、食材や半加工品。
piは、ファミレス。
arduinoは、お惣菜売り場。
enbededは、ジャンクフード。
それぞれ楽しみ方はあるだろけど このスレでpiは無いかも
GR-SAKURAにXBeeをぶっさす
>>592 まあ、それ用の穴開いてるしなあ、それで?
抜いたり挿したり
あんまりやりすぎんなよぉ(笑)
>>583 WIZ820IOとのSPI通信の仕方は、Arduinoのソース読めば判ると思う
ちょうどarduinoのイーサネットシールドはW5100使ってるから
ただしarduino WIZ820IOでぐぐるとドライバに不具合があるみたいで
下手すると手段が目的化しそうだからおすすめできない
WIZ820IOはうちにも1台あるけどまだ試してないんだよね
さくっとXbee Wifiで組んじゃった方がいいかも
>>598 無印の88でいいんじゃないかな?
もしくは88vはまだ在庫あるよ。
>>598 168p/328pでもおk
88pとは微妙に違うけど、その動画の範囲なら問題なく代用できる
>>598 168Pは88Pの完全上位互換だから間違いない。データシートも同じだし。
動画内で「この欄はAtmega88Pと選択します」みたいな指示のところだけ168Pにしてやるように気を付ければok
ただ、開発環境が64bitのPCだったりすると動画の指示に従うだけでは
コンパイルの段階でつまるから調べるなりまたここで訊くなりするように
実は俺もその動画でマイコンに初めて触れたんだけど
本当によくできた講座だと思うからがんばって完走してくれ
168/328はベクタの大きさが倍だからhexに互換性はないよ
要リビルド
>>602 >>598にその説明をしても混乱させちゃうだけでしょ
88pと168pでhexを使いまわすようなことはしないだろうから
「しないだろうから」って前提はどっからきてんのかなあ
完全上位互換なんでしょ
605 :
774ワット発電中さん:2013/01/21(月) 20:15:59.91 ID:NvKYb2wk
>>598 最初はへたにケチらないで一番大きい規模の奴を選べばいい
ATMEGA328Pあたりを選んでおけば大体間違いないよ
量産しないなら328pでいいけどね。
メモリ多くて使いやすいし。
test
608 :
774ワット発電中さん:2013/01/25(金) 03:47:23.73 ID:dU9FKyrb
>>608 マイコンじゃなくて、パソコンじゃないけw
無いと思っているけど、8bit AVRでOS使っている奴いる?
>>610の画像ではAVRとPC用のmemoryを繋げていますが、
繋げるためには PIN assign が分からないと無理だと思います。
どこかで仕様って公開されていますか?
>>610 うん、ちょっと違うw これはこれで凄いけどね。
AVRにはuTRONは移植されてないんだっけ?
Z80用にUZIというUNIXクローンがあり、それをMSXに移植したUZIXってのがあるんだってね。
これがAVRで動いたら面白いなと夢想中w
ATmega328でBOD使いたい時は、VCC電圧が低い間はRESETかけてるだけの使い方なら
FUSEの BODLEVEL [2:0] を設定するだけで良いのかな?
FUSE以外に、レジスタを設定するようなコードを追加する必要もありますか?
コードでBODを禁止することは出来るけど、
何もしなけりゃヒューズ設定するだけで常にBOD有効だよ
>>614 ありがと。やってみる。
けど、きいてるか、否かのテストって面倒そうねw
PWMでFETカチカチするとか
こういう時に可変電圧源が
電子工作やるならオシロと実験用電源は欲しい。
上を見たらキリが無いけど、それぞれ4,5万円位だせば
趣味用としてはとりあえず使えると思う。
秋月オシロ
秋月可変電源+アナログメーター
合計で6000円くらいか
実験用電源は5万出せばブランド品買えるが、
オシロは割り切らないとなかなか厳しいな。
メトロニクスの電源ですね、
5万出すって気が知れてるw
金銭感覚おかしいんじゃねぇ
技術あるんだったら自分で作れよw
5千円あれば十分だろ
「知れない」じゃなくって、「知れてる」ならいいんじゃね?
技術があるから金もある、時間には限りがある
時間のために金を出すんだよ、技術無しの貧乏人
どこまで馬鹿なことをするかが、人生の楽しみなんだよ
時間を金で買うような奴に、ろくな奴はいない
実験用電源の話だぞ
回路が上手く動作しなくて、
回路のどこが間違っているか散々探してどこもおかしくなくて、
実は電源が腐ってたので誤動作してましたとか馬鹿らしいだろ
電源腐ってた事に気づかず、回路の全然問題ないところを散々調べてました。
ってのが人生の楽しみなんだ
( ´_ゝ`)フーン下らない人生だな
ライタと同じで自作は2個目からだよね。
>>623 お前さんがアマチュアで、5万円のオシロを5千円で自作できるなら、
そりゃ作ったほうがいいな。較正もちゃんとやるんだぞ。
プロだったら、どこに時間を掛けるべきか検討し直した方がいい。
人によって金銭感覚も求めるレベルも違うからな
俺は10年ぐらい前までは自作電源使ってたが今は1万ちょっとの電源だ
セックスより楽しいことなんてあるの?
電源とオシロの話がごちゃ混ぜだなぁ
面白すぎるぞ
トラ技Jrでオシロスコープの懸賞当てたったwwwwwwwww
そうだな、じゃ申し訳ないから書きなおしておくか。
お前さんがアマチュアで、5万円の電源を5千円で自作できるなら、
そりゃ作ったほうがいいな。較正もちゃんとやるんだぞ。
プロだったら、どこに時間を掛けるべきか検討し直した方がいい。
お城と電源の話は余所でやってくれよw
>>631 童貞乙w
毎回毎回単調過ぎて普通に飽きる
Avrdudeのソースを読んでるんだけどイマイチよくわからない
ISP周りの仕様をまとめた資料とか誰か知らない?
データシート
このレスは趣味レベルの人はレス禁止なの
分かってない人まだいるみたいだね
ここのプロフェッショナルな人々の社交場
ド素人は10年ROMってな
翻訳ミスってるぞ
船橋さんいらっしゃ〜い
age
88や168には普通に書き込めるのですが、328だけどうしても書き込めないです。
なぜでしょうか?
328と328Pでシグネチャーが違うからそれでひっかかってるとかない?
>>645 AVR Stuidio5 + AVR Dragonで、それにハマった事があるな。
ISPのクロック下げたら書き込めた、みたいな事が・・・
同時に色んな事やってたんで、本当にクロックのせいかどうかは定かではないのだけど
すみません。いろいろ省きすぎました。
使用しているのはatmelstudioとmkUです。
88Pで書き込みが成功したのち、88Pを168Pに乗せ替えプログラムをリビルドしターゲットを168Pに変更。
問題なく168Pに書き込みができました。
次に同じ手順で168Pを328Pに乗せ替えると、うまく328Pを認識してくれず、書き込むことができません。
ただ、eraseはできるときがあります。
プログラムを書き込もうとするとシグネチャーを表示している部分が赤くなりエラーとなってしまいます。eraseを失敗するときも同様です。
ブレットボードの上のAVRを載せ替えているので、配線が間違っているということはないと思います。
また、石の故障も疑って別の328Pでも試しましたが、同様の結果でした。
何か原因と思われることがあったら教えてください。
他にも何かあったから指摘してください
違いといえばこれくらいだねぇ
AVRに供給している電源電圧は何V?
5.0Vぐらいにしたら書き込めたりしない?
– ATmega48P/88P/168P:
0 - 10MHz @ 2.7 - 5.5V,
0 - 20MHz @ 4.5 - 5.5V
ATmega328P
– 0 -
[email protected] - 5.5V,
0 -
[email protected] - 5.5.V,
0 - 20MHz @ 4.5 - 5.5V
Operating Voltage:
– 1.8 - 5.5V for ATmega48P/88P/168PV
– 2.7 - 5.5V for ATmega48P/88P/168P
Operating Voltage:328P
– 1.8 - 5.5V
– 256/512/512Bytes EEPROM
– 512/1K/1KBytes Internal SRAM
– 256/512/512/1KBytes EEPROM
– 512/1K/1K/2KBytes Internal SRAM
もう2つ、328P用にリビルドしてるよね?
mkIIのファームを最新版にするとかは当然やってるよね?
ケーブル6本を差しっぱにしてAVRを載せ替えるのが良くないとかかな?
328Pを乗っけた後に6本全てを一旦抜いて刺し直してみたら?
書き込めました!
ISPのクロックを125kHzから32.65kHzに落として見たところうまく書き込みできました。
一度書き込みできたあとは、125kHzに戻してもなぜか書き込みできています。
ありがとうございました!
本当に助かりました!
おめ
なぜかできたで済ましちゃうと、次回も悩むことになるよ
とは言え再現しないならどうしようもない。
自分もなぜ一度クロック数を落としただけで書き込みができるようになったのか気になっているのですが、何が起きたのか検討もつきません。
658 :
647:2013/01/31(木) 16:29:03.10 ID:RyusgWL+
で、しばらく問題なく328P相手にウニャウニャ遊んだ後で、
周辺デバイス制御をこAtinyシリーズにやらせるマルチCPU構成でウニャウニャ遊んだ後で、
じゃ、ATMegaを頭にしてAtinyをぶら下げるぞ!!って
再び、168Pや328Pに繋ぎ換えた所で、168Pには書き込めるが328Pに書けねぇ、症状が再発して慌てるわけw
このころには、前回はISPクロックを下げて逃げた事はすっかり忘れてて、いろいろ、あーでもない、こーでもない
やって、328Pをレール買いなんかしてた日にゃ片っ端から交換して、玉砕して、ロット不良か!と凹むわけですよ〜www
いやーw
仲間がいて安心したww
こんな書き込みすりゃ、次回再発時には、真っ先にISPクロックを下げる事を思いだすかなwww
AVCCのPINってデフォルトではVCCと内部でつながってるんだよね?
AVCCをGNDにつないじゃったら、SHORTしてCHIPが発熱しちまうよね?
データシート読めばAVCCピンの説明書いてあるじゃない
>661
ATmega48A; ATmega48PA; ATmega88A; ATmega88PA; ATmega168A; ATmega168PA; ATmega328; ATmega328P
用のマニュアルでは
AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6.
ADコンバーター、ポートCの下位4ビット、TQFP のには付いている ADC7, ADC6 の
駆動用ということだから VCC とつながっているわけではない、と。
eclipseでATmega168pに書き込もうとしているのですが、次のようなエラーがでて書き込ません
AVRDude does not support the project target MCU [ATmega168P]
Please select a different target MCU if you want to use AVRDude.
(Properties -> Taeget Hardware
サポートしてないから、書き込めないって書いてあるw
とりあえず読もうよ
avrdude atmega168p
で検索すると色々でてくるみたいだよ
avrdude.confを新しいものにすれ
AVRの耐圧ってどれぐらいでしょうか?
久しぶりにAVRやろうと思って、誤って12Vもかけてしまいました。
それからずっとリセットが短絡してるよーって出ます。
やはりこれはAVRが壊れてしまったのでしょうか?
規格書見れば定格の電圧は書いてあると思う
しかし、実際にそれをどのくらい超えたらアウトなのかは分からないな
不具合が出てるなら捨てろよ。安いチップなんだから。
>>669 一例はこんな感じ?
ATmega168 16KB 512B 1KB 0 - 20MHz 1.8 - 5.5V
5.5Vの2倍以上の電圧かけてるから、
まあ壊したんじゃないの?
つーか、まず何使おうとしたか書け、それとdatasheetよく読め屑
>>671書き込んで考えてみて、
設計者も12Vが限界と考えて設計してるような気もした。
12Vが物理的な破壊が起こる電圧だとして、
半分の6.0Vが余裕を見た電圧、それに安全をちょっと上乗せして5.5V。
って決めたのかなぁ。Tiny系は全部5.5Vが限界っぽいわ。
ATmega系だと9.0Vや25.0Vがいたりするけどね
>半分の6.0Vが余裕を見た電圧、それに安全をちょっと上乗せして5.5V。
馬鹿すぎるw
>>669 mega168に誤って10Vぐらいかけておかしいと気付いたときにはチップはアッチチになってたので
これは完全に死んだなと思ったが5Vつなぐと一応生きていた。 早死にするかも知れないが
良くぞ生き返ったと褒めてやった。
しかし半導体一般に最大定格超えたことすると簡単に壊してしまうことに覚悟しておくことですね。
>>672 >ATmega系だと9.0Vや25.0Vがいたりするけどね
ほう、まあこんなの使うこと無いだろうけど、どうぞB787に積まれていませんように。
Tiny2313やmega88系のresetなら最大定格の許容電圧13V
パラレルプログラミングしようとして失敗したのかとオモタ。
何か前から疑問に思ってたけど、
判り切っているレベルの常識をドヤ顔で語るのって今の世代にとって当たり前なの?
定格を超えた電圧かけたら大抵は壊れる、そういうのって暗黙知であり
いちいち語るべき事ではないと俺は思ってきた。
1+1は2だよ!とドヤ顔で言うレベルの事だと思う。
オッサン世代では当たり前すぎて思いっきりバカにされた。
今の世代ってそういう感じの暗黙知ルールが無いと考えていいの?
なにか言ったら褒めるのがゆとり教育
>>675 1+1=2は数学の定義によるものであり、暗黙知とは違う。
>>675 その、現実で面と向かっては言わないけど
インターネットの世界では言ってもいいんじゃないの?
匿名でのやり取りを現実でも同じようにやってると思われても困る
ここは便所の落書き、2chですから
>>677 そうそう、そういう感じでカンに障る返し方もゆとりっぽくて良いね。
暗黙知の例を上げよ
暗黙知でぐぐったまた一つ賢くなったお!
ゼロに1を掛けたところで
って脊髄反射で書こうとしたけど1を足した場合かー
烏合の衆ってことわざがあってだな、えっと、
実は1+1=2は暗黙知だよと言ってるわけじゃないんだよな
あくまでレベルの話で
俺の経験だと低格少しぐらい超えても壊れることは少ないな
電流流しすぎて部品が光りだしたりしたときは100%死んでるがw
定格5Vの石に12V印加はアカン
前にPIC16F887で間違えたACアダプタをさして殺っちまった
あっと声を上げるまもなくバチって音がしてショートモードでご臨終w
電源逆接続に数十秒間気付かなかったときは
パッケージが触れないくらい熱くなりながらも生還したんだがな
逆電圧から生還といっても、ノイズマージンやドライブ能力が下がっていたり、
あるいは、これから少しづつ壊れていく可能性もゼロではない。
期待通りに動作しない時に悩みたくないので、俺なら廃棄処分にする。
実験用として遊ぶ分には構わないと思うけど。
過電圧は少し悩む。定格5Vで6,7V程度までなら使い続けるかな。
逆電圧から生還したやつを実験用で使ってるけどしばらく使ってないとどれがどれかわからなくなっちゃうから捨てるか印つけとくかしといたほうがいいね
>>687 糸ノコ使って、一番ピンの上に一生消えない痕付けてる
やふおくで得体の知れないIC詰め合わせ買うと、マジックで×書かれたIC混じってることあるよな
秋月のDCアダプタの5V,9V,15V,24Vをつかって、デジアナ混在であそんでると、
ジャックのサイズがみな同じだから、アダプタの差し間違えやりそうでこわいw
前に、5VのFPGA評価ボードに、15VDCプラグ突っ込んで、ボード上の電源回路ブロックを昇天させて以来、
差し間違えしないように、プラグの根元に電圧かいたビニールテープ巻いてる。
それでも、差し間違えそうで怖いw
>>690 私も24Vや±15Vなどを扱うことが多いのですが、
3.3Vや5V系の実験・評価用ボードにはブリッジダイオードと
3端子レギュレータを実装しています。
混在させるな。
100Vだけにしろ。
>>690 プラグだけ色分けしてもダメだろ。
ジャックにも同じ色のテープ貼っといたら?一目でわかるよ。
「ボード上にレギュレータ」が最初面倒だけど結局一番楽
696 :
598:2013/02/04(月) 21:36:35.10 ID:LIaIavRE
以前ここで質問をして、ATmega88Pの在庫が無かったので勧められたATmega168Pを購入し、
http://www.nicovideo.jp/watch/sm14491245 零からの電子工作マイコン編の動画通りに進めていたら、早速詰まってしまいました・・・
動画では、マイコン側に電源を供給してあげて書き込みおk状態になるとAVRISPmk2側が黄緑色に点灯するとあるんですが、
点灯せず・・・いっかい、マイコンの上下を間違えて組み込んで電源流してしまったのですが、マイコンが壊れているせいも考えられるのでしょうか?
よろしくお願いします(´;ω;`)
>マイコンが壊れているせいも考えられるのでしょうか?
その可能性はある
不安要素をつぶすために、そういうときは新しいチップを買ってしまうのが吉
>>696 逆挿しか…
88PならVdd-Vssが点対称で同じ位置になるから大丈夫そうだけど
壊れた可能性は無きにしも非ず
たかが数百円のために無駄な時間使わないためにも
新しい奴を調達してそれで確かめたほうがいいと思うよ
699 :
598:2013/02/04(月) 21:58:17.79 ID:LIaIavRE
あぁ・・・ワザワザ高い金払って秋葉原までいったのに・・・
質問ですが、単4電池2本で電圧は足りるのでしょうか?
また、AVR studioの設定による問題もありえるのでしょうか?少し悪あがきをして、ダメだったらマイコン買いなおしますw
>>696 > 点灯せず
これっておかしいんだよね。赤か緑のはずなんだ。
その動画の9:18、
乾電池の電源を切っている状態で、
緑
赤
その動画の9:42の所で、乾電池に電源を入れて、
緑
緑
と変わるけど、
>>696の試している時の
電源切、入のそれぞれの場合のLEDの色を書いてよ。
余分に何個か買っておかないと
>>695 安定化電源並べるのもお薦め。
まぁ電流ノブと間違えて壊すんだけど。
>>699 > 単4電池2本で電圧は足りるのでしょうか?
当然新品だろ?足りるよ。
ごめん、
> 点灯せず
って赤色から緑色に点灯せずって意味だった?
6本差してるよな?ケーブル。
それぞれにGND, RESET, ...のラベルを貼って現在の状態をアップしてよ。
俺はケーブルを差し間違えてる可能性の方が高いと思う。
704 :
598:2013/02/04(月) 22:39:06.20 ID:LIaIavRE
あ、申し訳ない。赤色のままだという意味です。
乾電池の電源を入れている状態でも、
緑
赤
ってなっています。
ケーブルは6本ちゃんと刺してます。
・・・・っていま見直してみたら、1箇所だけ挿す場所間違えてました本当にごめんなさい(´;ω;`)
両方緑色に点灯しました。書き込みしてみます!ほんとみんな回答してくれてありがとう・・・・
>>704 > マイコンが壊れているせいも考えられるのでしょうか?
> 単4電池2本で電圧は足りるのでしょうか?
> あぁ・・・ワザワザ高い金払って秋葉原までいったのに・・・
> また、AVR studioの設定による問題もありえるのでしょうか?
> 少し悪あがきをして、ダメだったらマイコン買いなおしますw
> (´;ω;`)
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!
>>598、この度は、
「 ⌒ ̄ | | || (´Д` ) \ 弊社の欠陥品が大変ご迷惑を
|at /  ̄ | |/ 「atmel\ |お掛けしたとのこと、是非一度
|mel | | | || || /\\ |謝罪をしたく駆けつけました。
| | | | | へ//| | | | \_____________
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
おい!
おい…
あー、ごめん
態度がコロッと変わったなと思って過去の発言纏めていったら
ホントにむかついてしまって
>>706で煽ってしまった。
>>696 の症状が発生した時に、
どのケーブルを何番ピンの何に刺していたか書いてよ。
他の初心者の人の為にも書いて欲しいな
初心者スレみたいな間抜けなことしやがって、全くもう。
401 名前:774ワット発電中さん [sage]: 2013/01/26(土) 00:16:05.33 ID:SBbm+mVs (3)
昨夜からアドバイスを頂きました皆様、ありがとうございました。
答えがやっと解りました。
3端子レギュレータは正面向いて左より IN-GND-OUTと78XXシリーズを
使った経験から思い込んでいました。
LM317はADJ-OUT-INと言うことに気が付きました。
無事完成までこぎつけました。
ありがとうございました。
402 名前:774ワット発電中さん [sage]: 2013/01/26(土) 00:29:57.85 ID:8LRyxnGt
これはひどい
403 名前:774ワット発電中さん [sage]: 2013/01/26(土) 00:33:31.71 ID:kDK2iOwB (4)
こんなとき、どんな顔すればいいのかわからないの
>LM317はADJ-OUT-INと言うことに気が付きました。
これは俺もはまったことあるなw
710 :
598:2013/02/04(月) 23:35:39.88 ID:LIaIavRE
本当に申し訳ない・・・・
実はブレットボード使うのも殆ど初めてで、結構四苦八苦してました。
何度も配線も確認したんですが、マイコンを逆に挿したりと、ほんとオッチョコチョイでして・・・・
でもココのスレの方達のおかげでミスに気づけて無事書き込み出来たので本当に助かりましたm(_ _)m
うん、うん、俺も苦労したから分かるよ。
>>706 クソワロタwww
逆差ししてもGNDが同じ位置に来るようにしてるんだなと感心したw
痛い思いをしたら絶対に忘れない
体罰は問題だがマイコン+電車賃で今後一生の糧になるからドンドンしっぱおすべし
そういえば逆差ししても動く回路の動画があったなw
回路初心者のくせにマイコンはじめる奴ってなんなの
アナログ回路勉強してから来い、もちろん実技もな
小さなAVRは回路初心者に向いていると思う。
電源入れればCPUとして動作する事が保証されているんだし、
555でLEDを点滅させるよりも回路知識は要求されない。
失礼、忘れてください
>>717 >成功したCAN通信自体は
MCP2515を使わずにでしょうか?。
>>719 いえ、コントローラーもトランシーバーも使ってます
出来るだけ少ない部品にしたいのも含めてCAN内蔵タイプを使いたいけど、日本での情報が少なすぎて残念
とりあえず、取り寄せたSTK600セットが届くのを待って色々試すつもり
Yes, we CAN!
AVRStuidio5+Dragon で、ATmega168,328に書き込めない症状発生
FUSEは書ける。FLASHROMも読み込める。だが、書き込み途中でエラー発生
読み込んだHEXファイル覗いたら途中からFFの連続
CHIP交換しても症状は同じ。ISPクロックを下げても改善せず
同時起動していた別アプリや、関係ないWindwosのサービスプロセスをかたっぱしから落としたら、トラブル解消した
どれが悪さしていたかわからないのだが、
臭そうなのは、e-mobile接続用のアプリと、VMWare Workstation 関係のサービスか・・・
結局AT90CAN買うんだけど、日本語情報少なすぎて残念
こういうときだけPICが羨ましい
CANなんて簡単。DIP28ピンでちょこっとIO作って便利に使えてる。300円強の70MIPSのDSPIC
これに限らず、AVRに勝ち目は無いな。ほとんどPICのラインナップで事足りる。
ああ、なんかこういう流れを作る奴の存在がすっぽ抜けてて余計なこと書いた
申し訳ない
誰だお前は
AVRでITRON動く?
>>727 tinyAVRにとってはuiTRONでもおおきすぎるから無い
AVR用のfreeのRTOSならAVRXとか、いろいろあるのでそちらのほうが便利かも
PIN*に1を書き込むとPORT*の値が反転するんだよね?
秋月のモジュラージャック持ってるけど、
自作したオスのジャンパーコードつけてブレッドボード接続用にしてる。
リード線付けて、配線してからホットボンドやシリコンで固めて下駄つくったほうが
ピン曲げ失敗して折り取るリスク取らなくて済むんじゃね。
AVRでラジヘリ飛ばせますか?
そんなことを聞いてるようじゃむりだと思う・・・
attiny2313なんですが、main関数呼び出し直後に
動作周波数をCLKPSで1/256に変更するコードを書き込んだら
hidspxでそれ以上の書き込みが出来なくなってしまいました
マイコンの動作周波数がhidspxの通信周波数に
満たないのだと思いますが、何か対策はありますか?
>>737 -d オプションで通信速度を動作周波数の1/2より下げてみる
それでダメならパラレルライタでリセットするしかないと思う
avrの中でいま最強のシリーズ教えてくれ
>739
AVR32のAT32UC3シリーズかな
741 :
774ワット発電中さん:2013/02/11(月) 11:19:56.63 ID:RFXSqzxX
picスレはこの板一番の盛況スレなのに、ここはのんびりだなあ。
簡単で悩むところ無いからね
Arduinoスレもあるしなぁ
初心者はそっちに行っちゃうだろうし
初心者が最初に触れるマイコンとしてPICが圧倒的に多いからじゃないかな?
知名度だけはハンパないからなあ
出版されている書籍数が、そのまま反映してるんだろうねぇ。
最近はAVRの入門書とかも発売されてないし、良くも悪くもArduino頼みかぁ...
でも結局は、ArduinoもAVRからARMに移行してしまうだろうし、
そうなると秋月のAVRの取扱量が、確実に減ってくるだろうね。
AVR買うなら最初から秋月あてにしないでしょ
PICと比べてもUSBを扱えるDIPが無いのが手軽さを欠くんだと思う。
でも、今はarduinoがあるから良いじゃんって思う。
ARMのarduinoが出たとしても、DIPで作りやすいAVRのarduinoと共存するんじゃね。
748 :
774ワット発電中さん:2013/02/12(火) 00:44:50.25 ID:q0dOiizS
UNOとかのボードは必ずしも必須じゃないよ
Arduinoで開発終わったら、水晶、コンデンサ、IC+TLC5940の乗る基板作ってそれで完成
750 :
774ワット発電中さん:2013/02/12(火) 00:55:08.06 ID:q0dOiizS
なんかアナログ出力をどこどこのピンに設定して、
クロックをたちあげてほにゃらららなのか、
TLC5940のレジスタに書き込むビットをシフトアウトしていっているのか、
なんかTLCにどういう命令を送ればいいのかが分かれば
AVRマイコンでも制御できるかなと思うのですが、
それをライブラリのコードベースで解読していくのが結構キツいなぁ・・・と。
正弦波吐き出そうとする度にDAポートほしいと思うんだけど、AVRに安くて簡単に手に入るのないかな
ソース読んでみたけどAVRのポートやレジスタ直接叩いてるし
他のライブラリと依存関係もないしで
移植ってほどの手間じゃないと思うけどねえ
>>748 Arduinoはただちょっと便利なライブラリが用意されてるだけで,ハード的にはAVRそのものだぞ
既存のライブラリ使ってプログラムを書き込んだあと,ボードからAVR外して自作基板に組み込める
ICの抜けたArduinoにはブートローダー書き込んだ別のAVRを挿し直せばいい
「Arduino 単体利用」でぐぐってみ
>>572は
>>750へのレス
>>751 周波数が低くていいならPWMで出力してLPF
高いならR-2Rラダー、外付けDAC、またはxmega
DAC付きのtinyあってもいいと思うけどねえ
>>750 直接コントロールしたいならライブラリを解読する必要はないでしょ。
TLC5940のデータシートを読めばどういう命令を送ればいいのか分かる。
xmega16A4Uを秋月の変換基板に付けたのをいくつか作っておもちゃにしてるけど、
これには12bitDACがあるよ。
32MHzで動いて300円くらいだから手元においておくと便利じゃない?
ダイセンの変換基板は変換後がデュアルラインになってて使いにくいから
秋月のETT基板がお勧めだよ。でかくなるけどw
秋月のAVR取り扱いは細っていくばかりな感。秋月ほど安くなくてもいいから
品種が豊富な部品屋さんは、どこがいい?
759 :
774ワット発電中さん:2013/02/13(水) 23:18:12.83 ID:UjluKOd8
Digi-Key
picに乗り換えるが吉
アセンブラのマクロについて勉強したいんですが、ググっても
詳しい情報が得られずに困っています。
手持ちのAVR本のAVRマイコンプログラミング入門にもマクロのことは
かかれていないので・・・
みなさん、どうやって勉強されてますか?
参考になるサイトや本があれば紹介してください。
マクロの書式は環境依存度高いからどのアセンブラ使うのか言わなきゃ
AVRasmなの?gasなの?
>>762 あ、すみません。
AVR STUDIO4.19のアセンブラです。
IO の1万円HDDレコーダをPCモニタに接続したが
付属リモコンで音量調整が効かないんで、赤外線受信データ
からアナログスイッチの切替制御をAVRで処理した。
AT90S1200でも十分だが、もはや貴重品。tny2313で代用。
はーー もったいね
>>764 ヘルプですか、一度確認してみます。
英語がダメなので日本語のリンクも助かります。
ありがとうございます!
>>761 色々だらだら書いててまとまらず、
部分部分は前後しているけど頑張って読んでちょ。
> みなさん、どうやって勉強されてますか?
AVRではないけど、Pythonなどでは、ctags使ってtag jump機能を使ったり、
gccに教えてもらって、該当箇所のmacro外したものを直読みする。
vim, emacs, ctags等の勉強をした方が良いよ。
私が使ってるのは、vim, gvim等々。
AVR Studioって中身でavr-gcc使ってたと思う。
gccのオプションはそのまま使えると思うよ。
gccだけど、ここら辺は基本だよ?
知っていると便利な gcc のオプション
http://www.unixuser.org/~euske/doc/gccopts/index.html マクロの使用とデバッグに関するオプション
特に、以下とか。
-E
マクロの展開だけをする。
-M (with -E) [知ってると便利]
ソースに include されているファイル名をすべて表示する。
$ cat def2.c
#include <stdio.h>
#define CMP(X, Y) (X > Y)
int main(void)
{
int a = 3, b = 2, cmp;
cmp = CMP(a, b);
fprintf(stdout, "a = %d, b = %d, cmp = %d\n", a, b, cmp);
return 0;
}
ここらまでgccで確認したけど、avr-gccで以下を試したら上手くいった。
AVR Studioでgccのoptionを設定している場所があるはずだから、そこを探すと良いよ。
Linuxの方が何かと便利だから、
avr8-gnu-toolchain-3.4.1.798-linux.any.x86.tar.gz
の方が、AVR Studioよりもお勧めだけど。
$ avr-gcc -E def2.c
int main(void)
{
int a = 3, b = 2, cmp;
cmp = (a > b);
fprintf((__iob[1]), "a = %d, b = %d, cmp = %d\n", a, b, cmp);
return 0;
}
$ avr-gcc -E -M def2.c
def2.o: def2.c \
.../lib/gcc/avr/4.6.2/../../../../avr/include/stdio.h \
.../lib/gcc/avr/4.6.2/../../../../avr/include/inttypes.h \
.../lib/gcc/avr/4.6.2/include/stdint.h \
.../lib/gcc/avr/4.6.2/../../../../avr/include/stdint.h \
.../lib/gcc/avr/4.6.2/include/stdarg.h \
.../lib/gcc/avr/4.6.2/include/stddef.h
AVRStudioのasmはGCCではない
avr-gcc で inline asm って使えんですの?
gccの派生系というか、gccの一般的な機能は全て継承していると思って、
何も確認せず
>>767書いちゃったんですが。。。
いや、試せば良いのは分かるんですけど。
これ、【マイコン編 1回】 零からの電子工作 第36回:後編 開発環境構築
ttp://www.nicovideo.jp/watch/sm14483389 の4:31あたりでAVR-GCC選択していて、
Atmel AVR Assemblerがもう一つの選択肢としてあるんだけど、
質問者は
>>763 で、
> AVR STUDIO4.19のアセンブラです。
って書いてましたね。。。
avr-gccとAtmel AVR Assemblerのmacroは、
一緒だと思うけどなー(後付け
せっかくの機会ですから、avr-gccの方でちょっと試してみます。
AVRStudioのデフォルトのアセンブラはAVRASM32.exeであってGCCとはなんら関係ない。
だからAVRasmなのかgasなのか最初に聞いてるんだろ。
当然マクロ擬似命令の書式も大きく異なる。
AVRasmのマクロ擬似命令なら764氏が言うとおりヘルプに説明があるし、日本語訳なら
AVR.jpにある。
長いから読んでないがマクロの説明はなさげ。たぶんお前の書き込みに
>>761が求めてる情報はゼロだろ
>>761 色々頑張ろうと思いましたが、考え直して止めました。
ごめん、悪いけど、お題を出してもらえないかな?
どんなマクロを知りたいと思ったの?
引数の渡し方などなど単純に関数(マクロ)の記述方法じゃね?
俺も今tiny2313でアセンブラの勉強してて、AVR304を見てる
例の日本語訳サイトでは
AVR Studio
AS4CHM.zip の中にある
AVRASM.CHM
そこの AVRASM2 プリプロセッサ
の項にマクロについて書いてある。
俺的にはマクロは出来れば使わない派。
マクロがあればCなんて要らない派
Cという共通マクロがあるからなあ。
マクロをガンガン使うぐらいならCを使うよ。
Cが簡易アセンブラということならそうだな
Cは大雑把過ぎて使い辛い。いい加減な人向きの高級言語。
Cは厳密過ぎる
perlくらい適当がいい
rNV3JNquさんは電気工作入門スレで大暴れしてましたね
782 :
774ワット発電中さん:2013/02/17(日) 00:29:20.52 ID:gZpnRUyI
GCC Developer Liteの画面が、ドーユー訳かデカくなって
再インストしても、同じ症状。上と下が切れて使えない。
ドーしたら、直るのでしょうかネー。
もち画面の端をつまめない。
ついでにイエローソフト探してたら、廃業だと。
あわてて、とりあえずYellowIDEをDLした。
783 :
774ワット発電中さん:2013/02/17(日) 01:36:01.01 ID:gZpnRUyI
GCC Developer Liteの画面、Mifesでグロォヴァル検索したら
Document&SettingにINIファイル見っけ。アンインストしても
消えない。これをDelして、再インストしたら、直りました。
お騒がせ。
MIFESか・・懐かしいなw
DOS時代は愛用したもんだがWINが出はじめの頃には「UNIXでvi」で
その後は統合環境しか触らなくなったわ
この板の住人の9割はジジイじゃろうて
H8とかでuITRON使って大勢で書くのが普通だしな
ワンチップマイコンのシャープのZ8使ったことがあるよ。
あのアーキテクチャは滅びたの?
785
俺も
>>784と同じ経験してるけど
団塊世代より20年くらい後の生まれだよ
Z8、懐かしいな。
CPUとしては好きな方だった。
今でもオリジナルメーカーのザイログから入手できるみたい。
4004から、♪思えば遠くに来たもんだ〜♪
俺の華麗な女遍歴(自称だが)と同じように、色々なCPUが現れては消えていった。
いつの日にかAVRもPICもCortexも思い出に変わる。
そしてついには人類はこのうっとうしいプログラミング作業から解放されるのだッ!
なんて書き込みしながら、今はtiny2313用のつまらない小さなプログラムを
アセンブラで作っている。サッパリやる気が出ない。
あーぁ、50年後くらいにワープしたいな。
死んだら終わりだ、コンピュータの行く末は見届けられない。
791 :
774ワット発電中さん:2013/02/17(日) 15:00:22.29 ID:gZpnRUyI
789
俺も
>>784と同じ経験してるけど
団塊世代より20年くらい前の生まれだよ
戦後と云っても、日露戦争だけどもな。
>>790 まだ売っているというか進化してるんだ。
買おうかな
LEDドライバが入っているので抵抗無しでLチカができる。電流モードへの切替えや設定は、レジスタで4段階
digikeyで8pinDIPタイプで175円と194円
175円のは、動作温度が0度から70度。
194円のは、動作温度が-40度から105度
型番Z8F0823PB005SGと語尾がEG
クロック5MHz flash8KB ram1KB AD uart
電圧2.7-3.6
on-chip Debugger内蔵
20PINのは、クロック20MHzで
i2cやIrDAが追加
Z8は、ramが全部レジスタとしてダイレクトに演算やコピーができるのが特徴です。
割り込みで使うレジスタを、決めておけばいちいち退避する必要がない。
簡易マルチタスクもらくらく
>>794 うん、私もZ8用の簡単なディスパッチャを作って並列処理で使うことが多かった。
AVRでも同じような使い方(並列処理)をする時があるけど何だかなぁ。
OS使ってみるとか?
>>794 でもそれって、8051の特徴でもあるよね?
>>794 >割り込みで使うレジスタを、決めておけばいちいち退避する必要がない。
どのCPUでもそうだろ。
Aレジスタしか計算に使えないとかなら別だが。
>>785 > 団塊の世代?
もう引退している。
知っている言葉を並べて恥ずかしい奴w
世代を引退したの!?
>>799 俺がなにをした?
お前に話しかけてないし消えろ
>>801 馬鹿話を撒き散らした。
アホは消えてくれていいよ。
>>798 Z8はレジスタが128個あるしレジスタファイル方式なので
割り込み処理でレジスタを退避しなくてもレジスタを使い切る可能性が少ない。
「その辺が気楽」と794は言いたかったのでは?
>>802 団塊か聞いただけで火病るの?
怖えーな、、、、チョン
>>798 >794が説明不足。
z8やavrはレジスタ空間がメモリ空間にマッピングされているってのは同じ。
avrはレジスタ空間r0〜31がメモリ空間の先頭に固定されてる訳だけど
z8はこの位置をポインタレジスタによって自由に変更できる。
だから、レジスタセットの退避や復帰が簡単、と言う事。
ま、avrには関係無いからどうでもいいことだがなww
>>805 なるほど、面白い石もあったんだ、参考になる。
複数の石把握してないと、そういう違い分からないもんなぁ。
6809のDPみたいなのかな
AT90CAN128 で遊んでるけど、情報無いから自分で手探りで CAN 通信してる
楽しいな
並列処理プログラムを自作する時、
レジスタファイル方式のCPUは有利だなといつも思う。
命令1個で全レジスタがセーブされるのでオーバーヘッドを少なく出来る。
無い物ねだりをしてもしょうがないけど、
AVRも32個のレジスタが8セットあれば良いのにな。
812 :
774ワット発電中さん:2013/02/19(火) 17:39:21.19 ID:1kjpO9ap
>>811 キットがなくてもノコギリ波のウェーブテーブル作って音階にあわせた
サンプリング速度で再生するようなもの作れば同じことできるだろ
ノコギリ波は駄目だろ
波形が肝なのに
tiny2313のPWMは4つだから4和音か。
面白いね。
1音ならわかるけど、和音どうやって出すんだろ?
単純にWAVEテーブルの重ね合わせだと各音単独で出してアナログ合成しないと
崩れるような気がするが。
同じカウンタ使ってるから同じ音程しか出ないんじゃないか
なるほど、PWMでだしてるのね。納得。
ADC4個として使うのか
メモリとの戦いだな
819 :
811:2013/02/20(水) 15:43:14.90 ID:Kqv5ChkW
>>813 無限音階にするだけなら、矩形波でもノコギリ波でもいいのかも。
発音している”ラ”の周波数の半分、2倍、3倍を同時に発音させればいいので。
>>819 >周波数の半分、2倍、3倍を
音階の仕組み勉強して出直して来い
>>820 心に余裕のない寂しい奴だな
単に2^n倍を勘違いしただけだろw
ホントだね、アラ探しを生き甲斐にしているのかな?
820が嬉しそうに書き込みしているのが目に浮かぶようだ。
それとも条件反射的に発作が起きたのか?
そういえばNHKで少し前に音階と数学の関係を放送していたね。
1バイトの上位4ビット、下位4ビットをそれぞれ+1、-1しながら音を割り当てたりとか、
円周率からメロディーを作ったり、協和音の周波数の比率とか、まぁまぁ面白かった。
無限音階はTK-80のサンプルプログラムにもあったりする
8080Aの100倍の能力を活かせば楽勝のはずだがアタマが残念orz
LKIT-16でもタイムスライス方式で3和音に聞こえる音楽を演奏していた。
昔のニーチャン(今のジーサン)も貧弱なシステムで工夫してそれなりに頑張っていたんだなぁと思う。
PWMならORするだけで和音になるんだっけ?
無限音階って何なんだって思ったんだが・・・
嫁に質問したら延々音階理論を語られるところだった。危ない危ない。
>>820 俺もそう思ってたけど
旋法によっていろいろあるのが現実。
全音階が全てじゃない、と知ったかカキコ。
/oct.と/dec.は、電気が好きな人なら馴染みがあるはず
7度の跳躍が2度に聞こえちゃうんだよな
>>828 ヒント坊がまだ生きていたとは、、、
遅れてやってきた爺さんかな?
>>824 PC-8001(Z80 4MHz)で、ビープ音で3和音出してるゲームあったな。
>>811の曲だと、終わり間際の一箇所だけ不自然
(期待より1オクターブ高い音が出たよう)に聞こえたが※、
それ以外がちゃんとしてるように感じられてしまって面白いな。
※個人の感想です
和音を出すときはいつもサンプリング方式にしてる
マイコンの品種にもよるけど、64サンプル程度のバッファを作って
複数波形の足し合わせを前計算→割り込み時に消費
平均律?純正律?中全音律?三分損益?
MEGAの乗算器は16bit*8bitの乗算を2周期では実行できない?
あと相談なんだけど、10msec毎に更新される周波数値をリアルタイムに矩形波として反映する効率的な方法知らないかな
34〜500kHzくらいの範囲で
割り算使ってたら遅くなりすぎるし、俺の足りない頭では問題解決できそうにない
>>832 インテリジェンスHDD使って効果音出してたプログラマも
今は前科持ち
>>836 矩形波ならPWMの周期を変えればいいような気が
AVRならタイマー周期毎でトグルするPWM出力があったと思うので
2倍の周波数にするだけで出来るんじゃないかなと
>>838 周波数を直接指定できるわけでは無く、たとえばCTCモードとかで割込タイミングを調節して目的の周波数を導く形になるんだよね
だから、目的の周波数を実際の周波数に変換する計算が必要
その計算を高速にやりたいのです
テーブル用意すればいい
テーブル
34 から 500,000 まで 10msec 間隔で 1 単位で変動する数字がある
これをリアルタイムに更新される矩形波の周波数としたい
これをテーブルで再現するにはどうすれば
>>839 PWMを使うのに割り込みは必須ではないね
10msの設定されたときからのレイテンシが重要な話なのか、
10msの設定の次が来るまでに変更出来れば良い話なのか
どっち?
>>842 >34 から 500,000 まで 10msec 間隔で 1 単位で変動する数字がある
仮数部+指数部に変換して指数部ごとにテーブルを用意する。
仮数部の精度はそんなに要らないことが分かるので、テーブルは圧縮できる。
>>843 次の更新が来るまでに反映できていればおk
でも、それだけ動かしてるわけじゃ無いから、そこにCPU全部持って行かれるのは困る
>>844 かなり広範囲に可変すると思うけど、そんなに効率的なテーブルくめるのかな?
どんなフォーマット使ってるのか知らんが
割り算なんて0.1msecもかからんと思うが
>>845 それならメインで計算させておいて結果だけ定期的に更新すればいい
フラグやFIFOで実現できると思う
思ったんだが、DDSが作れればいいわけよね
AVRでのDDSの作例はあるから参考にしたらいいんじゃね
俺は発想力もプログラミング力も無いから、
秋月で売っているDDSとAVRをシリアル接続にすると思う。
少し高くつくけどヘタレ代と思って諦める。
ぱみゅぱみゅ?
>>848 専用のものを使ったからといってヘタレだとは思わないなあ
あれこれ工夫するのも面白いけど
>>849 プログラマブルなロジック機能まであって面白いな
ブートローダーを消してしまって、Flipで書き換えできなくなった・・・
AVRライタで元に戻せるんでしょうか
853 :
774ワット発電中さん:2013/02/21(木) 23:56:42.91 ID:gehMkpCD
atmelのサイトを探してるのですがFlipのブートローダーが見つけられません。
ほかのサイトにあるのでしょうか?
>>854 Atmelに無くほかのサイトにあるものもあります。 mage32u4とか、探すと幾つか見つかります。
それで何を探してるのでしょうか?
AT90USB646になります。ご存知でしたらよろしくおねがいします。
857 :
774ワット発電中さん:2013/02/22(金) 09:02:38.65 ID:gUKdF9Ee
ご存じじゃないけどどうやって探した?
LUFAのDFUbootloaderを焼いちゃってもいいかもしれない。FLIPでも問題なく動くはず。
>>857 AT90USB646のページからツールやドキュメントを掘ってました。
>>858 ありがとうございます。
普段使ってるライタソフトがa90の拡張子が選択できないので、別のソフトを探してから試してみます。
参考までにどのように検索すれば、ブートローダに辿り着くのでしょうか?
>>859 調べてみます。聞いたことがある程度の認識しかなかったので・・・
>>860 a90拡張子のファイルも中身はIntelHexフォーマットです。 拡張子をhexに変えればOK。
以前はAtmelのDocumentやtool類は全部同じ/prod_documentsフォルダに置いてあるので
ファイル名が分かればレジスト要のAVRstudioなんかも直コピーできていました。
今回のBootloaderは以前コピーしていたのでAtmelフォルダ探したらまだ残っていただけです。
丹念にググればAtmel以外でも発見できると思いますよ。
>>738 ありがとうございます
-d99で復活しました
ずーーーーっと質問しっぱなしだったが、AVRでのカメラ操作関連ホムペ開いたら1日10人が見てるようだ
多少は恩返しはできたのだろうか
>>863 あれお前んとこだったのか
ありがとよ!
ナイスガイ揃いなスレだな
winavrは行番号表示がなくてコンパイルエラーでたら行番号表示のあるエディタにコピペして確認してたんだが
winavrの画面右下に行番号の現在位置表示されてるのな
君達知ってた?
おう
WinAVRってなんだ?
まだ使ってんのか?
869 :
774ワット発電中さん:2013/03/05(火) 21:23:47.42 ID:VcE62gqu
このような質問していいのか少し不安ですが、、
ATtiny861Aの書込みがうまくいかなくて困ってます。
バッチファイルを作成して書き込もうとしているんですが、
通信は成功するのにプログラムが書き込めない状況です。
バッチファイルの内容を記述します。
echo off
echo program internal 16MHz
c:\winavr\bin\avrsp -PC1 -FL11100001 -w default\○○○.hex
通信ポートはCOM1で「○○○.hex」が書込みファイル名です。
自分自身は素人で「FL11100001」の意味もあまりよくわかっていません。
どなたかその点も含めてご教授いただければ幸いです。
このスレの存在を知る前に、知恵袋でも質問してました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11103187511 どうかよろしくお願いいたします。
プログラムのミスってことはないですか?
たとえば volatileが抜けているなど
書き込めていないのか、バグで動いていないのかはっきりしませんな。
avrspはエラーがあればメッセージを返すはずなのでそれを書いてもらわないと。
ちなみにFLはヒューズ下位バイトの意味で指定された0b11100001をそこに書き込む
オプションです。
avrspはいまどきのWindows上ならDirectIOのドライバがないと動かないはずなので
後継のavrspxに変えるだけで動いてしまうかもですね。
確かにプログラムもミスってる可能性もあります。
もともと、"AVRマイコン活用ブック"を参考に、ATtiny26L用のソースを作ってたんですが、
事情があって861A用に書き換えていました。
何度かエラーがありましたが、ようやくビルドできたので書き込めるかと思ったら、
なんだか作動しないので途方に暮れてました。
もしよろしければ、どなたかプログラムに関して何かご指摘を頂ければと思います。
http://thuploader.orz.hm/miniup/upload.php?id=07928 (ソースファイルのみlzh圧縮)
宜しくお願いします。
ちなみに同じ手順で他のプログラムは書き込めるのかな?
ためしに、Lチカとか簡単なプログラムを書き込んでみたら?
>>873 そうですよね、簡単なプログラムからやるべきですよね、、
今日時間が空いたらやってみたいと思います。
876 :
774ワット発電中さん:2013/03/06(水) 10:16:42.59 ID:vMcx9sx0
ぱっと見
ボーレイトの設定がなさそう
チラ裏
xmega
確認用に適当な空きピン使用
反応なんだかおかしい、3日間思考錯誤した結果
んだよここJTAGかよ ///
x * 0.6
この解をビット演算使って高速に処理したいんだけど、何かいいコード無いかな
計算結果の小数点は切り捨てていい
>>879 x は整数で、大体 500 〜 14000 くらいの範囲
>>881 わかってるよ
厳密にはこういうことだとかそんなことはどうでも良くて、ニュアンスが通じるならそれでいい
ビット演算より高速に処理できる方法があるならそれでもいいけど、この計算式にAVRの乗算器は使えないよね
>>882 > この計算式にAVRの乗算器は使えないよね
そんなの使いようだけどね。
>>878 >x * 0.6
先ず本当に0.6倍しなければいけないのか検討はそっからするべき。
もちろん乗算器を使える形にしてから乗算させて本来求める解の形に戻してもいいけど、そんな回りくどいことをして高速に処理できるとは思えない
>>878 >高速に処理したい
漠然としてるな。要求仕様は?
>>878 0.5+0.1だけど、0.1は2進数だと無限少数になるから
要求する精度次第で割り切りが必要
0.1を2進数にすると0.00011001100110011001100〜だからな
>878
曖昧な質問だぉ。
左にひとつシフトしたら2倍だぉ。
左にふたつシフトしたら4倍だぉ。
逆に
右にひとつシフトしたら1/2倍だぉ。
右にふたつシフトしたら1/4倍だぉ。
うまく組み合わせたら0.6倍を作れるだぉ。
10クロック以内に出来たらすばらしいけど、難しいよね
1回転36パルス出力するモーターがある
これに置き換わる新しいモーターは、パルス信号を出さずにシリアルデータで回転数を出力する
その値はrpn/min
本来のパルス出力同等の信号を作るためにこれを計算し、DDSに周波数値としてシリアルデータで出力したい
これだけをさせてるわけじゃ無いから、こっちにCPUそんなに使えない
x >> 2 に x / 10 足せばいいんだけどさ
x / 10 がネック
2 ビットずらしちゃいかん
x >> 1 だ
また特許にすんの?
>>882 > 乗算器は使えないよね
使える気がする。
0.6を左シフトしてから乗算して右シフトすればどうだろう
>>878 x * 3 / 5
で行ったら?
* 3 の時に気を付ける必要があるけど。
/ 5 も頑張れw
つまり俺には何も分からんということだ
>894
x < 14000以内で x * 3/5 を誤差ゼロで計算するには * 78645 / 2^17 する必要がある。
32bit乗算になるので割算とどっちが儲かるか微妙。
安いもんだし、専用に石使えば?
誤差 +0.1% 程度に目をつむって
(x >> 2) + (x >> 3) + (x >> 7) - (x >> 5)
これより早く出来るかな
誤差 0.5% 以内なら許容範囲
>>890 >>889の言う通り、冪上で割ると以下の通りだから、
i = 0 n = 1.0
i = 1 n = 0.5
i = 2 n = 0.25
i = 3 n = 0.125
i = 4 n = 0.0625
i = 5 n = 0.03125
i = 6 n = 0.015625
i = 7 n = 0.0078125
i = 8 n = 0.00390625
i = 9 n = 0.001953125
i = 1, 4, 5を足して、
>>> 0.5 + 0.0625 + 0.03125
0.59375
だから、誤差0.00625
だけど、回転数でいえば以下の通りだし、
別に良いんでしょ?
>>> 14000 * 0.00625
87.5
ld reg2, N
rshift reg1, reg2, 1
rshift reg4, reg2, 4
rshift reg5, reg2, 5
add reg1, reg4
add reg1, reg5
mv memory, reg1
7 clock見積もりだけど、これでどうだ?
>>898 >誤差 0.5% 以内なら許容範囲
154倍して下8ビット捨てれ。
>>898 ちなみにCPUって何bit?
あと、clock up って駄目なの?
基本的な所の話なんだけどさ。
DDSのクロックを0.6倍にすれば解決
すいませんが、
>>899は
>>898を見ずに書きましたので。。。
>>898の足し算以外にないのでは?
>>902 1.33...と出ました。
誤差0.5%ではないですね、はい。
許されないのか。
>>> 500 * 0.6
300.0
>>> 14000 * 0.6
8400.0
>>> 1 / 1.666666666666666666666666666666
0.6
32bit CPUなら↓で行けるけど、
>>> (1 << 16) / 1.666666666666666666666666666666
39321.6
>>> 14000 * 39321 / (1 << 16)
8399.871826171875
>>> 500 * 39321 / (1 << 16)
299.99542236328125
>>> int.bit_length(14000 * 39321)
30
16bit CPUなら↓だなぁ。と思ったけど、
14000の時に桁溢れしますぞ。
>>> 500 * 154 / (1 << 8)
300.78125
>>> 14000 * 154 / (1 << 8)
8421.875
>>> (1 << 8) / 1.666666666666666666666666666666
153.6
>>> int.bit_length(14000 * 154)
22
○8bit CPUなら↓だなぁ。と思ったけど、
×16bit CPUなら↓だなぁ。と思ったけど、
俺もDDSのクロックいじるほうがてっとりはやいと思う。
まさかマイコンのクロックと共用じゃあるまいし。
だったら、0.数%の誤差とかお話にならない。
クロック供給をいじるのはいいなと思ったけど、正規製品に改造を施すのはやはり避けたい
ちょっと
>>904 を検討します
ちなみに、AVR は 8bit 16MHz
AB
x CD
----
BD # L1
AD # L2
BC # L3
AC # L4
----
ans = AC << 16 + AD << 8 + CB << 8 + BD
筆算で↑の通りですし、今回は、なんという偶然でしょうか。
>>> '0x{:04x}'.format(39321)
'0x9999'
なので、AC == AD, BC == BDであって、
C = D = 0x99ですので、
ans = A*0x99 << 16 + A*0x99 << 8 + B*0x99 << 8 + B*0x99
^^^^^^^^^^^^^^^^^^^^^^^^^^^
↑こいつらの上位8bitが重要なのであって、
下位8bitは切り捨てて良い。
ans ≒ (A * 0x99 << 16) + (A * 0x99 >> 8) + (B * 0x99 >> 8)
mv regA, x[0] # 1c
mv regB, x[1] # 2c
ld regC, 0x99 # 3c
ld regD, 0x99 # 4c
mul regA, regC # L4 # 6c
mv tmp1, r1 # 7c
mv tmp0, r0 # 8c
mul regB, regD # L1 # 10c
mv work1, r1 # 11c
mv work0, r0 # 12c
mv ans1, tmp1 # make AC # 13c
mv ans0, tmp0 # # 14c
add ans0, tmp1 # AC + A, L4 + L2 # 15c
adc ans0, work1 # AC + B, L4 + L3 # 16c
これで行けてない?当然に最適化する必要があるんだけどさ。
可読性を意識したから10clockは駄目だったけど、
これなら8bitCPUでも大丈夫でしょ?
6 clocks位削れると思うんだよね。
チラ見した感じ、4cは必要ないし、13cと15cは一つにまとめれる。
残り3clock削るぐらい?
あと、karatsubaだったか使っても今回は早くなんないと思うた。
>>904 計算を上位バイトと下位バイトに分ければいける
上位バイトを u
下位バイトを l として
((l*154)
>>8)+u*154;
入力 r2:r3
出力 r4:r5
破壊 r0, r1, r16
ldi r16, 154
mul r3, r16
mov r5, r0
eor r4, r4
mul r2, r16
add r5, r1
adc r4, r0
>>907 >ちなみに、AVR は 8bit 16MHz
必須な情報を後出しって、クソ質問者確定だぉ。
>>909 そうでした。簡単なことですね。失礼いたしました。
>>908は色々細かい所間違えてるな。
そのまま使うとbugで死にますので。
debugはしませんので、ゴメンですけど
使う場合は
>>909がdebug頑張って下さい。
○ ↑AD, BCの上位8bitであるA, Bが重要なのであって、
○ 下位8bitであるD, Cは切り捨てて良い。
× ↑こいつらの上位8bitが重要なのであって、
× 下位8bitは切り捨てて良い。
>890の内容を見て、バイクのスピードメーター改造かと思った。
マイル<->km変換できないかな?。
この場合、パルス入力→周波数測定→周波数x1.6→パルス出力
エンコーダ信号からRPM計算してシリアルで届くまでに10ckなんてどうでもいいくらい過ぎてる気もする
>>912 デバッグも何も
>>910 に完璧なのが出てる
さらに3クロック費やして
lsr r0
sbiw r5, r0
これを追加すれば誤差がぐんと減るかなーって程度
訂正
sbiw r5, r0
↓
sub r5, r0
sbci r4, 0
出先でID変わっちゃってるけど、いや本当みんなすごいや
自分が如何に未熟か思い知らされる
変な質問に答えてくれてありがとう
かなり参考になりました
いっそ起動したときに計算結果を全部メモリに入れて読み出すだけに.....
DSPICならDDSも含めてワンチップになる
30kBくらいflash使って豪快にテーブル引き
>>920 アドレス計算して取り出すのに何クロックかかるかやって見
コンパイラがちゃんとやってくれるか心配だな
小さい方から足して加算後のレジスタを右シフトしてくれると精度がお得
>>915 失礼いたしました。
一人でちょっと興奮してしまいまして。
スレ汚し失礼いたしました。
おまえら、どいつもこいつも
コンパイラの出力するコードを見たこと無いのか?
(x*6)/10
って書けば、コンパイラが最速に近いコードを吐いてくれると思うぞ。
除数が定数の割り算は、全部乗算に変換されるって常識じゃないのか?
FPUつきの組み込みARMやらMIPSのマイコンでも使えよ
>>921 in:r30,r31
out:r2,r3
add r30,r30 ;1clk
adc r31,r31 ;1clk
sbiw r30,-offset ;2clk
lpm r2,Z+ ;3clk
lpm r3,Z ;3clk
で10clkではないの?
>>926 自分も、(x*6)/10で、コンパイラの吐いたコード貼って。
まぁ俺もコンパイラにお任せだな。
異常ルート無視で、この程度の計算だけなら自前でゴリゴリ書くこともあるけど、
たいていは内部精度とか丸め処理とかいろいろやるから、コンパイラのほうがバグが少なくなるし、
スピードもそんなに変わらなくなってしまう。
ってかくとASM厨が反論してくるかな。
みんな頭いいのはすごいと思うんで、誤解しないでね。
>>930 >自分も、(x*6)/10で、コンパイラの吐いたコード貼って。
>まぁ俺もコンパイラにお任せだな。
「x は整数で、大体 500 〜 14000 くらいの範囲」って条件なのに *6 しちゃうの?
精度指示ができる呪文があるなら別だが÷10ならコンパイラは割り算やるしかない
>>926 >おまえら、どいつもこいつも
>コンパイラの出力するコードを見たこと無いのか?
unsigned foo(unsigned x)
{
return (x*6)/10;
}
↑を avr-gcc -mmcu=atmega32 -O3 -S foo.c した結果が↓
foo:
movw r18,r24
lsl r18
rol r19
add r18,r24
adc r19,r25
lsl r18
rol r19
movw r24,r18
ldi r22,lo8(10)
ldi r23,hi8(10)
call __udivmodhi4
movw r24,r22
ret
>>933 avr-gccが手元にないのでarmでやってみたら
-o3だとニーモニックが違うだけでほぼ同じ。
-o0 で最適化無しで、やってみると割り算をつかわない形で展開されるので効率が良いように見える。
avrでもやってみてください。
割り算を使わない形なのは当たり前
割り算命令なんてないんだから
__udivmodhi4
の先に行くと面倒なことしてるよ
遅すぎだね
>>935 バカですか?
-o3は、割り算ルーチンをコールする形。
-o0なら割り算ルーチンをコールしないで上手くやっているよ。と丁寧に書かないと伝わらなかったか、、、
>>934 avr-gcc -mmcu=atmega32 -O0 -S foo.c
foo:
push r28
push r29
rcall .
in r28,__SP_L__
in r29,__SP_H__
std Y+2,r25
std Y+1,r24
ldd r18,Y+1
ldd r19,Y+2
movw r24,r18
lsl r24
rol r25
add r24,r18
adc r25,r19
lsl r24
rol r25
ldi r18,lo8(10)
ldi r19,hi8(10)
movw r22,r18
call __udivmodhi4
movw r18,r22
movw r24,r18
pop __tmp_reg__
pop __tmp_reg__
pop r29
pop r28
ret
>>937 ウチでは割り算ルーチンをコールするんだが
>>937 の環境ではどううまくやってくれるの?
>937
対象アーキは何よ? ARMと言うだけで何かを指定した気になってるのが…
第一 "-o0" てなんだ。-O3 でも割算なんか呼ばん。
arm-*-gcc -S -O3 -mcpu=cortex-m3 -mthumb
movw r3, #26215
movt r3, 26214
add r0, r0, r0, lsl #1
smull r2, r0, r3, r0
ubfx r0, r0, #1, #16
bx lr
arm-*-gcc -S -O3 -mcpu=arm7tdmi
ldr r3, .L2
add r0, r0, r0, asl #1
smull r2, r0, r3, r0
mov r0, r0, asl #15
mov r0, r0, lsr #16
bx lr
.L2:
.word 1717986919
両者とも *3*1717986919/2^33 という計算。
なお、乗算はあっても割算がないものがほとんどのARMでは割算の乗算化が昔から良く利くが
乗算すらないものが多かったAVRではこういう変形はしない。
>>924 C言語の仕様で、どちらから式が評価されるかは決まっているよ。
右からか、左からかは忘れた。
>>926 出てきて恥をかいちゃったねw
ごめん、コンパイラオプション間違えていました
-O3のつもりで-Osにしていました。
-Osの時は割り算ルーチンをコールするのね。
SMT32F1003用のARM M3
----
-Osオプション
----
stmfdsp!, {r3, lr}
movr3, #6
mulr0, r3, r0
movr1, #10
bl__aeabi_idiv
movr0, r0, asl #16
movr0, r0, lsr #16
ldmfdsp!, {r3, lr}
bxlr
---
-O3
---
ldrr3, .L2
addr0, r0, r0, asl #1
movr0, r0, asl #1
smullr2, r0, r3, r0
movr0, r0, asl #14
movr0, r0, lsr #16
bxlr
.L3:
.align2
.L2:
.word1717986919
-------
-o0オプション
------
スタックの扱いとか変数の扱いが違うだけで-O3とやり方は同じ
>>891 > x / 10 がネック
>>907 >ちなみに、AVR は 8bit 16MHz
ってあるから、試す石は8bitCPUで統一して、
avr-gccがdiv使ったら駄目とした方が良いと思いますけど。
話は変わるが、ATtiny1634発注してみた。UART2chあるしADCあるしで、2313A/4313よりヨサげかも
945 :
910:2013/03/08(金) 20:21:49.63 ID:2S4QpKLB
上位バイト下位バイトが逆だったようなので修正
入力 r3:r2
出力 r5:r4
破壊 r0, r1, r16
ldi r16, 154
mul r2, r16
mov r4, r1
eor r5, r5
mul r3, r16
add r4, r0
adc r5, r1
>>926 >>930 のコンパイラで行ける派は、下記の要求仕様満たせるコード示してから主張して欲しい。
・x * 0.6
・x は整数で、大体 500 〜 14000 くらいの範囲
・10クロック以内に出来たらすばらしいけど、難しいよね
・誤差 0.5% 以内なら許容範囲
>>946に以下を追加、
・AVR は 8bit 16MHz
テーブルを作っておく。
y=m[x];
#include <avr/pgmspace.h>
unsigned bar(unsigned x)
{
extern const unsigned m[];
return pgm_read_word(&m[x]);
}
↑を avr-gcc -mmcu=atmega32 -O2 -S bar.c してみた↓
bar:
movw r30,r24
lsl r30
rol r31
subi r30,lo8(-(m))
sbci r31,hi8(-(m))
lpm r24, Z+
lpm r25, Z
ret
-mをsubするのが不思議(無駄ではない)
>>950 何だかすごいですね。
EEPROMの状態を確認せずに読み出しですか。
それ本当に動くと思いますか?
>>952 おっ勘違いした。EEPROMじゃなかった。間違ったことを書いてしまった。m(_._)m
テーブルアドレスの下位8ビットをゼロにしとけばあと1ck削れる
>>950 r24.r25に500~14000をセットして実行すると
Flash-ROMのテーブルから0.6倍した値300~8400(012C~20D0)を拾ってきて
r24.r25に格納するって方法ですか?
すみません、もう一つ、
「-mをsubするのが不思議(無駄ではない)」
の意味がよく分からないのですが。
10年くらい前、AT90S1200に簡単なプログラムを書き込んだことがあります。
ATTINT2313-20を使ってみたいと思おもっていますが、同じライターで、書き込むことができますか?
どのライターかわからないとなんとも言えないだろ
ホントにここは悲しくなるほどレベルが低いな
AVRが可哀想だ
書き込んでみてダメなら、ライター買い直せばいいんでね?
Tiny2313にS1200と同じ内容を書き込むオチとかありそう
自作ライターです。
お騒がせしました。
963 :
774ワット発電中さん:2013/03/10(日) 18:43:53.31 ID:ssuGH1tg
まだ書けないかな?
自作なら作った本人にしかわからないんじゃないか?
こっちはなんの情報もないからなんとも言えんぞ
このスレすげーな
>>966 ありがと
PIC16F84に書き込みプログラムを書き込み、エクセルのVBAからシリアルでHEXファイルを送るオリジナルのライターです。
書き込みのスペックとかタイミングとかそのまま使えるのかなと思って。
ATtiny2313のデータシートよく読んでみます。
このスレの結論
そういった計算が必要なら、FPUつきのマイコン使え
Cの丸め仕様はおバカだから気をつけないとトンでもないコードを吐く
970 :
774ワット発電中さん:2013/03/11(月) 03:13:18.38 ID:uWlgoTtC
>>968 思い込みの激しいやつだな
脳の病気でも患ってるのか?
>>970 大方、「俺が世界の中心だ」野郎なんだろ?
Cの仕様も知らず、思い通りにならなければ全部ツールのせいw
春だなw
春ですよ
何か不具合が見つかると「これはCの仕様です」とか、涼しい顔をしてる間抜け。
趣味なら良いが、信頼性の低いソフトしか組めずに会社の足を引っ張るだけw
「仕様」で思い出した。
以前、某有名メーカーのソフトにデバイスの初期設定関連の不具合を発見した。
俺も同じデバイスを使って同じミスをした経験があったので
(デバイスのマニュアルが分かりにくて勘違いしやすい)
親切心から電話して、
「XXという症状のバグがあります、原因はYYで、ZZとすれば解決します」
と言ったら
「バグではありません、仕様です。そのように作られています」
という予想もしない開き直りの返事にビックリした。
3ヶ月ほどして送られてきたバージョンアップ版では
俺が指摘したバグもチャント修正されていた。
>>976 2chで指摘して中の人煽ってやれば良かったのに
どうせここ見るんだろうし
>>976 普通じゃん。
誰が謝るもんかwって話だ。
そうじゃないと訴訟になった時賠償させられるからだ。
インチキ臭いのが当たり前のビジネスと、
純粋に技術的問題は違う。
事後で書き込むぐらいなら、
黙って2chとかツイッタで公表してメンツ潰してやればよかった。
あの会社はロクに手間かけてませんよwって話にしてやればよかったね。
プログラマなら理解してもらえると思うが、
「デバッグ作業、一生懸命頑張ったのですが、心ならずもバグが残ってしまいました」
というのがプログラミングだと思う。
だから、「分かりました、後で調べてみます」程度の返事で十分だったのだが、
予想外の返事だったので少し驚いただけです。
俺は担当者に謝って欲しいなんて思ってなかったし、
相手のメンツを潰す気にも、ネットで騒ぎ立てる気もなかった。
もしも、俺が作ったソフトに関して、客がバグ有りを教えてくれたら嬉しい。
さらにバグが発生する条件、そのデバッグ方法まで指摘してくれたら、
感謝状を出したい位の気持ちになると思う。
でも甘いんだろうな、場合によっては訴えられたりするかもしれないね。
この時の相手も一部上場の企業だったので、
賠償の事を考えたらバグを認めるわけにはいかなかったのだろうな。
(長文ゴメンヨ、これで終わりにする)
>>976の場合は旧版残しておけばバグが再現するから
裁判になれば嘘ついて仕様と言い張った方が不利になると思うが
しかもマニュアルに書いてある不具合そのまんまなんでしょ?
デバイスメーカー読んで証言させれば仕様で片付けるのは不可能だろうに
○デバイスメーカー呼んで裁判で証言させれば
×デバイスメーカー読んで証言させれば
>>981 必ず再現するなら「仕様です」で裁判で不利になることは無いよ
> (デバイスのマニュアルが分かりにくて勘違いしやすい)
正しい解釈と「勘違い」を説明できれば裁判で勝つじゃん
「勘違い」が仕様ですってのは技術者の理解不足だぞ?
どんな表現なのかによるから、
>>976だけでは何とも言えんが。
>>980 心情的には理解するよ。
ある事無いことで人を貶めてがんじがらめにする責任(重責)システムの弊害が
強い企業が多い限り日本製の商業ソフトのハッテンは期待できない。
不具合と称するデバイスの初期化はどんな物ですか?
例えばモーターコントローラーチップで設定したパラメーターを読み出す事が出来ないとかだとした場合に、それを使ったドライバユニット説明書に設定値を、読み出す事は出来ませんと書かれていたらそれは仕様で使用にも支障ないでしょ。
初期化時にプロテクション解除とかの設定を追加してやると読めるとかで、
次のバージョンで読めるようになったとしても些細なことだ
昔のデバイスでありがちなのは、
例えばステータスレジスタのBUSYビットを見て、セットされていなければ
(次の)コマンドが書けるといった仕様にも関わらず、最初のコマンドを
書いてBUSYビットがセットされるまでの時間が明記されていなかったり、
コマンドによってばらつきがあって、早いマイコンでコマンドを書いた
直後にすぐステータスレジスタを読むと、まだBUSYがセットされていな
くて、レディ状態と誤って判定して、次のコマンドをレジスタに上書き
してしまうとか。
あと、初期化コマンド(周辺ICの内部リセット)を書いて、デバイスがレディ
状態になるまで一定時間が掛かるのに、BUSY/READYステータスが読み出せ
ない「仕様」とか。
xmega触ってて気づいた仕様
命令一覧ではRETI命令はステータスレジスタのIフラグをセットするとされている。
実はこれは間違いで、割り込みコントローラでの禁止状態を解除するが、
ステータスレジスタはなんら変わらない。
mega用のタスクスイッチャ移植しててハマったw
しかしDragonのワンステップ実行ではIフラグが変わるんで厄介なんだよな。
デバッガがバグってるなんて・・・
ATMELに報告したいけど英語でレポート送るなんて出来ねぇ!