AVRマイコン総合スレ Part18

このエントリーをはてなブックマークに追加
1774ワット発電中さん
           _____
         /       /|
       /   ( ゚∀゚) /.∠フ   個人でも手軽に使える
     /       /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
   /  __    o/.∠フ ||    中心に語るスレッドです。
 ∠| ̄ ̄凵 ̄ ̄|∠フ ||     *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
 .|| |_____|/||

Atmel AVR 8-Bit RISC     http://www.atmel.com/products/avr/
2774ワット発電中さん:2010/03/06(土) 23:33:14 ID:aRS20fto
3774ワット発電中さん:2010/03/06(土) 23:34:32 ID:aRS20fto
<参考になるページ>
・AVR-wiki  http://avrwiki.jpn.ph/wiki.cgi
       もう一つのリンク先
       ttp://himitsu.jpn.ph/avrwiki/wiki.cgi

・AVR情報多い-chanさんのpage
  http://elm-chan.org/

・avrfreaks.net avrgccその他AVR関連の総本山(英語)
  http://www.avrfreaks.net/

・レディオテクニカ有志による 翻訳版 AVRデータシート・AVRツールの解説書
  http://homepage1.nifty.com/radio_tech/

・TAP-Config
  http://ww2.tiki.ne.jp/~maro/

・自分で作ってしまえ!電子工作スレッドテンプレート集
  http://jbbs.shitaraba.com/bbs/read.cgi/study/3329/1067910158/

・HERO'S Download(暫定) 有志による日本語のAVR資料他
  http://moon.gmobb.jp/hero/
4774ワット発電中さん:2010/03/06(土) 23:36:17 ID:aRS20fto
いつまで待っても立たないようだったので立てました
5774ワット発電中さん:2010/03/07(日) 00:33:55 ID:L0w1szCW
>>1
6774ワット発電中さん:2010/03/07(日) 01:07:21 ID:qaXSi6eD
乙!
7774ワット発電中さん:2010/03/07(日) 09:56:49 ID:IvLQLjuC
>1

褒美にこれをあげよう
つ Tiny2313
8774ワット発電中さん:2010/03/07(日) 18:08:19 ID:tMC+BbYA
Xmegaに手を出した人はいるかな?
まだ高くて手がでないけど面白そう
9774ワット発電中さん:2010/03/07(日) 18:42:54 ID:ag1QXYQ/
ごめん。間違って同名スレ立ててしまった。
もうすわけない。
10774ワット発電中さん:2010/03/07(日) 18:56:36 ID:WqYjkCEN
とりあえずこっちが目立つようにあげておこう
11774ワット発電中さん:2010/03/07(日) 19:05:37 ID:qaXSi6eD
>>9
ドンマイ、削除人に依頼してくださいな
あげ
129:2010/03/07(日) 19:30:51 ID:ag1QXYQ/
すまん。よくわかんないけど削除依頼出した。
131:2010/03/07(日) 21:04:42 ID:WqYjkCEN
>>7
すでに持ってるorz
14774ワット発電中さん:2010/03/07(日) 21:53:31 ID:1Nrmhi+H
>>8
てをだすなざんき
しぬぞ
15774ワット発電中さん:2010/03/08(月) 00:16:23 ID:WqsqiEqp
xmegaはJTAGICEで使えるからいいね
16774ワット発電中さん:2010/03/08(月) 00:50:11 ID:Lsxqkthc
mega系なら大抵はJTAGあるだろ…
ピン数使うし使いたいとは思わないが。
17774ワット発電中さん:2010/03/08(月) 18:56:27 ID:Kho2zpuE
AT90USBKEYについて質問なのですがボードの写真を見るとポート引き出しの
ピッチ幅が狭いように見えるのですが具体的な幅とか分かれば教えてください。
JTAGに比べるとかなり小さく見えるのですが。。。
18774ワット発電中さん:2010/03/08(月) 19:15:57 ID:ZZXbEmbK
>>17
ttp://www.atmel.com/dyn/resources/prod_documents/doc7627.pdf
にマニュアルがあるぜ
21頁のリストには "1.27 mm Dual header"  となってる。
19774ワット発電中さん:2010/03/08(月) 20:42:00 ID:Kho2zpuE
>>18
こっこれは恥ずかしい。。。
丁寧に教えていただきありがとうございます。
あんまり見ないなと思ってたら千石とかで普通にピンヘッダ売ってました。今度買ってチャレンジしたいと思います。
20774ワット発電中さん:2010/03/09(火) 06:34:21 ID:t56ajpN+
AVRWRTってまだmega328対応してないのね orz...
21774ワット発電中さん:2010/03/10(水) 21:28:31 ID:HQlt5AZz
さすが総本山。このまま一冊の本にできるぐらいのチュートリアル発見。
ttp://www.avrfreaks.net/wiki/index.php/Documentation:Tutorials_gcc_AT90UsbKey
22774ワット発電中さん:2010/03/12(金) 00:28:27 ID:KhFl1sRr
AVR 事始めに開発環境をインストールし、とりあえずここのプログラムをコンパイルしてみました。

ttp://homepage.mac.com/keinsoft/archive/hardwares/090112-avr1ststep-avrispmk2/090112-avr1ststep-avrispmk2.html

まあコンパイル自体はうまくいった(と思う)のですが、ここで公開されている LED チカチカ用の
プログラムが不可解です。なんでポートの入力レジスタに書き込んでいるんでしょう?
シミュレーションで動かしてみると、確かにポートはパタパタしています。AVR の基本テクニックなんですか?
23774ワット発電中さん:2010/03/12(金) 00:31:53 ID:nqK8tMnt
fuse bit は正しいのか?
24774ワット発電中さん:2010/03/12(金) 01:10:01 ID:ojDT0y8i
>>22
PINxのビットに1を書くとPORTxのビットが反転する、っていう機能がAVRにはあるのよ。
と言うことがwikiに書かれている。
http://avrwiki.jpn.ph/wiki.cgi?page=Getting+Started+Notes+%2D+Ports#p8

H/Lを反転させる目的なら、いちいちPORTxの目的のビットを見て条件分けしなくても
PINxに1を書き込むだけで出来るから場合によっては便利。
25774ワット発電中さん:2010/03/12(金) 01:20:53 ID:6ZZ+/Ngp
>>22
PINnを書き込むとPORTnの値が反転になる仕様ですね。
AT90Sシリーズでは使えませんし、
PORTB ^= _BV(PB0); とするのが普通だと思います。
26774ワット発電中さん:2010/03/12(金) 01:25:00 ID:ojDT0y8i
ああ、XOR使う手があったのね
27774ワット発電中さん:2010/03/12(金) 01:25:11 ID:Od5B+JgU
>>22
2313のデータシートに
Toggling the Pin
 Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of
DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port.
と書いてあった、
PINxに書き込むとビットを立てておいたピンのPORTの値が反転するようだね。
それがDDRで出力に設定してあれば、ポートがパタパタすると。

これが基本テクニックかどうかは知らん
28774ワット発電中さん:2010/03/12(金) 01:26:41 ID:Od5B+JgU
あう、調べているまに既に回答が(^^;
29774ワット発電中さん:2010/03/12(金) 01:41:39 ID:6ZZ+/Ngp
>>24さん
リロードせずに回答してしまい済みません。

PINxで出力変更する方法は「PORTxで文字検索して全部確認した」ときに
見落としてしまうのでお勧めできないですよね。
30774ワット発電中さん:2010/03/12(金) 01:56:52 ID:KhFl1sRr
レスありがとうございます。
なるほど、やはりそういう機能があったんですね。
私もあまり特定のデバイス特有の裏技を使うのは好きではないので、
たぶん使わないと思います。
31774ワット発電中さん:2010/03/12(金) 02:00:12 ID:KhFl1sRr
ちなみに、デバイスを atmega8 にするとポートはパタパタしませんでした。シミュレーションですけど。
tiny シリーズ限定かな?
32774ワット発電中さん:2010/03/12(金) 02:44:44 ID:gSrap3gU
>>31
http://avrwiki.jpn.ph/wiki.cgi?page=Getting+Started+Notes+%2D+Ports#p8
>*PINxnに1を書き込むとPORTxnの値が反転するMCU (2005-09-23現在) ATtiny13/2313以降のすべての新型MCUがそうなっているようです。
33774ワット発電中さん:2010/03/12(金) 09:15:25 ID:X91866F4
なんでデータシート読まないんだろう・・・
AVRのトグルアクションなんて普通に使う機能だしデータシートにもハッキリ書いてあるのに・・・
34774ワット発電中さん:2010/03/12(金) 10:40:01 ID:KhFl1sRr
必ずこういうレスくれる輩がいますね。
まあ、そう言われるとそうなんですが、まさかポートにそんな変な機能があるとは思わないし、
ポートの機能なんか共通だろう(番号はともかく)と思って、mega8 のデータシートばかり見てましたよ。

で、日本語訳読んでると言ったら英語の最新版読めとくるんでしょうが、やっぱり最初は
日本語訳見て感じをつかまないと。
35774ワット発電中さん:2010/03/12(金) 10:50:48 ID:VUTqphYn
ここは質問者の前提無視で自分のいいたいこと言いたい人達ばかりだからね
お気の毒に思います
がんばって下さい
36774ワット発電中さん:2010/03/12(金) 11:35:33 ID:/nsLnbOg
>ポートの機能なんか共通だろう(番号はともかく)と思って、mega8 のデータシートばかり見てましたよ。
37774ワット発電中さん:2010/03/12(金) 11:45:28 ID:OI4nfhCj
データシートも読まないでそれはいくらなんでもないだろうよ
38774ワット発電中さん:2010/03/12(金) 12:02:52 ID:Od5B+JgU
さすがにmega8は古いよ
39774ワット発電中さん:2010/03/12(金) 13:02:46 ID:7HPrD/WB
日本語訳か英語か以前に
関係ないデータシート読んでどれでも同じだろうとか思ってるのが変
それで何の言い訳してんのやら
40774ワット発電中さん:2010/03/12(金) 13:10:44 ID:X91866F4
あぁスマンスマン

俺様が想定しない機能=変な機能

そんな考えの人に何言っても無駄だったね
41774ワット発電中さん:2010/03/12(金) 14:17:50 ID:lEpLZhiQ
>ポートの機能なんか共通だろう
またまたご冗談を
42774ワット発電中さん:2010/03/12(金) 14:51:38 ID:+8Sefd3G
つーか2chなんだしちょっとしたことでも聞いてよくね?
43774ワット発電中さん:2010/03/12(金) 14:58:10 ID:gSrap3gU
聞きたきゃ聞けばいい、答えが出るかどうかは別だけど
トグルの件に関しては日本語訳の方にも書いてあるぞ
44774ワット発電中さん:2010/03/12(金) 22:28:43 ID:RDqeubVV
1レジスタ1サイクルでマスクも考慮せずに反転できるから
クロック生成みたいな処理はコード量が半分ぐらいになる
45774ワット発電中さん:2010/03/12(金) 23:59:16 ID:NYGaUU3P
>>44
なるほど、2313のソフトクロックSPIなんかに使えるな
46774ワット発電中さん:2010/03/13(土) 01:08:05 ID:xPKhLyP8
>>39
どっかの酷いインターネッツにマニュアルもろくに見もしないでネットの記事だけあてにして
「USARTの動かし方数か月間わからなかった!」とかほざいてたアホな教育者のこと思い出した…
47774ワット発電中さん:2010/03/13(土) 05:11:54 ID:wohUQyY2
数か月もねばったのはすごいなw
48774ワット発電中さん:2010/03/13(土) 12:26:05 ID:cPhnc4qi
UART関係の設定レジスタに設定可能な全ての組み合わせをプログラムで生成
し、総当りで書くような人海戦術的なやり方でさえ、数ヶ月も掛かるどこ
ろか、数時間で動かせる気がする。

肝心の設定値を生成するプログラムがバグってたり、結線がクロスとスト
レートで逆だったりしたらムリだけど。
49774ワット発電中さん:2010/03/13(土) 22:22:02 ID:6ThEK/+/
デバッグの難しさは、どこが間違いか分からない所にある

2010 オレ
50774ワット発電中さん:2010/03/15(月) 06:06:11 ID:CNShu2LL
AVRマイコンってどこで作ってるんだろう
手持ちの644pにはTAIWANって書いてあるけど他も台湾なのかな?
51774ワット発電中さん:2010/03/15(月) 22:26:57 ID:+n4l3osd
FATFSを使いたいと考えています。makefileが付属しているので、WINAVRを
インストールして、コマンドプロンプトからmakeすると問題なくビルドできるのですが、

AVR Stuidoからどうやってビルドすれば良いのか全くわかりません。
AVR Stuidoでソースレベルデバッグしたいのですが。

ヒントがのっているサイトは無いでしょうか。

52774ワット発電中さん:2010/03/15(月) 22:33:20 ID:FvFJlgli
「AVR Stuido 使い方」でググるとか、普通やれるはずだけど。
53774ワット発電中さん:2010/03/15(月) 22:35:08 ID:WmnjmyF3
>>50 いろいろなところのFABで作ってるらしい。韓国もある。
54774ワット発電中さん:2010/03/15(月) 22:37:24 ID:WmnjmyF3
winAVR入れると、新規プロジェクトでgnuCを作れたはずだけど。
空のプロジェクト作って、そこにファイル追加したらいいんじゃね?
55774ワット発電中さん:2010/03/15(月) 22:51:43 ID:+n4l3osd
ありがとう。

前回、どうしても分からなかったんだけど、もう一度がんばってみます。

できたら報告します。
56774ワット発電中さん:2010/03/15(月) 23:21:37 ID:Mtj8clEq
>>55
makeもいいけど、サンプルプロジェクトをダウンロードして
そこのファイルを全部プロジェクトに追加してコンパイルすれば普通に通る
57774ワット発電中さん:2010/03/15(月) 23:22:34 ID:Crg+yWNJ
おまいらマイコンは仕事で使ってるだけ?
趣味でやってる奴は何作ってる?
58774ワット発電中さん:2010/03/16(火) 04:35:35 ID:ylMnGqLj
>>56

それ、やったんですけどうまくいかなくて。
シンボルが解決できない?とかいうエラーがでてしまいます。
よく分かっている人なら一瞬で解決できるようなことがだと思うんですが・・・。


59774ワット発電中さん:2010/03/16(火) 06:31:55 ID:2agQfrzB
誰かに見てもらうか
スクリーンショットを上げるとか
試行錯誤してみるとか

もうちょっと努力が必要だと思う
俺もなんも教えてもらえずに現場投入されて
3年経ってようやく大体のものが作れるようになったレベル
60774ワット発電中さん:2010/03/16(火) 08:30:51 ID:h8d8ThnZ
>>58
とりあえず、チップの種類をサンプルと同じにすればコンパイル通ると思う
チップの種類が変わると当然足の数も変わるしレジスタや割込みも変わる
あとエラーは全文無いとどんなシンボルなのかとか分からないよ
61774ワット発電中さん:2010/03/16(火) 20:33:19 ID:Q03r8qv4
>>58
メッセージコピペで貼れよ・・・
こういう世界にいるわけだしそれくらいの事もしないでってのもあれだぜ
62774ワット発電中さん:2010/03/16(火) 22:44:50 ID:2agQfrzB
AVRは神のような日本語翻訳データシートがあるから
楽だと思うぞ。本家より見やすいというのは本当素晴らしいな。

何よりEEPROMを内臓してるのが俺には有難い。
63774ワット発電中さん:2010/03/16(火) 23:12:55 ID:RqMTT7ml
A/D のあるデバイスが欲しいんだけど、主力製品(?)ぽい tiny2313 に A/ Dはない、
tiny13A はピンが少なすぎる、mege88 シリーズは新規開発にはおすすめできないときたもんだ。
もしかして AVR 始めるには時期が悪い?
64774ワット発電中さん:2010/03/16(火) 23:15:26 ID:2phjoXzL
日本語版は確かに見やすいけど、意味不明な翻訳が多いので、原本を見て確認することが多い。
65774ワット発電中さん:2010/03/16(火) 23:38:49 ID:ruvSwCjN
>>63
なんでそんな古いやつばかり見てる?
(tiny2313は現行品で安いから使っているやつはいるが)
ATMega88P/168P/328Pとかはどうよ
66774ワット発電中さん:2010/03/16(火) 23:41:48 ID:h8d8ThnZ
>>63
tinyだと26の後継で261とか無かったっけか
てか、88シリーズは新規開発ダメなの知らんかった
一体何を使えと
67774ワット発電中さん:2010/03/16(火) 23:43:31 ID:ruvSwCjN
>てか、88シリーズは新規開発ダメなの知らんかった
P付きに移行しろと
68774ワット発電中さん:2010/03/17(水) 01:01:14 ID:XKRxKqR9
>>65
とりあえず秋月で売ってるやつ調べてた。

>>67
これP付きだけど、推奨されませんって書いてある。
ttp://moon.gmobb.jp/hero/PDF/mega88P.pdf
69774ワット発電中さん:2010/03/17(水) 01:17:22 ID:PFJOV4ca
新しいのは88PAやね
秋月は安いけど新しいのが無いな、古いから安いんだろうけど
70774ワット発電中さん:2010/03/17(水) 01:30:48 ID:REWnWwuY
>>66
ATMELは型番最後のサフィックスがPとかPAとかAとか結構マチマチで
どれが新しいのか判りにくいので、迷ったら本家で確認。
Mega88系は48PA/88PA/168PA/328Pが同世代だったりする。
かと思えば、Mega128系はMega128Aが最新だったり。
71774ワット発電中さん:2010/03/17(水) 02:10:38 ID:cd+sNjdD
趣味or使い方の勉強で使うんなら別に多少古くたっていいじゃん。
mega88系の無印とP/PAの違いは省電力機能の有無くらいじゃないの?
72774ワット発電中さん:2010/03/17(水) 02:41:00 ID:9V/A19+v
>>68
328だっけな、秋月で異様に安いやつ。
あれはROMの量が値段の割に半端無いからプログラムで楽できそう。
とりあえず無難にそれ選んでおいて、その後ダウンサイズするといいと思う
73774ワット発電中さん:2010/03/17(水) 21:20:26 ID:b/klF6Ap
秋月の328は確か32kのクロック駆動に問題があるんじゃなかったっけか
それさえ無視する用途なら安すぎワロタなので愛用してる
でも32kも使う用途って少ないなw
74774ワット発電中さん:2010/03/17(水) 23:39:00 ID:fT4OdW/M
秋月の激安328Pで、クロック精度重要なもの作ろうとしてるんだけど…
何が問題なのかな。回避方法とかあるの?
75774ワット発電中さん:2010/03/17(水) 23:45:07 ID:/XcB/9jE
これか

34.4 Errata ATmega328P
34.4.3 Rev B
? Unstable 32 kHz Oscillator
1. Unstable 32 kHz Oscillator
The 32 kHz oscillator does not work as system clock.
The 32 kHz oscillator used as asynchronous timer is inaccurate.
Problem Fix/ Workaround
None
76774ワット発電中さん:2010/03/17(水) 23:49:16 ID:Nr4Vdj1C
>>74
データシートのerataによるとRev. A, Rev. Bは

32kHz発振回路が不安定
・システムクロックとして動作しない。非同期タイマーとして使用すると不正確になる。
・対処法:なし

って書いてあるね。まぁ、事実上32kHz発振回路は使えないと思った方が・・・

(このerataにエラーがあって、ACMEビットをセットとアナログマルチプレクサが落ちる件も
「Unstable 32 kHz Oscillator」になっているのはご愛嬌w・・・erataのページにエラー入れるなよww)
77774ワット発電中さん:2010/03/18(木) 00:03:03 ID:fT4OdW/M
ああびっくりした。32kBと32kHz混乱した。
水晶使ってるから大丈夫ってことだよね。
安心して眠れそう。THX
78774ワット発電中さん:2010/03/18(木) 06:03:49 ID:18YTDXSP
>>74 >>76
erataにRevが書いてあるが、手元のデバイスがどのRevなのかは
どのように確認したらいいんだろう?
デバイスから読み出せるの?
どこかにdate-codeとの対応表とかがあるの?
79774ワット発電中さん:2010/03/18(木) 08:13:08 ID:KQd55Rjs
たいていチップの後ろに書いてありますよ
文字がつらつらと並んでるけど末尾のアルファベットがRevコード
80774ワット発電中さん:2010/03/18(木) 09:20:33 ID:nCf0ZEyY
AVR-LibC 1.6.5(WinAVR 20080610添付) document 日本語訳 (作業中)
ttp://www11.ocn.ne.jp/~akibow/AVR/

古河渚攻略チャート.mht ←ワロタw
81774ワット発電中さん:2010/03/18(木) 11:49:05 ID:18YTDXSP
>>79
>文字がつらつらと並んでるけど末尾のアルファベットがRevコード
手元のCHIPにはそんなの書いてないな〜
もしかして ATMEGA88 ATMEGA88P ATMEGA88PA の P,PAの意味?
それはRevではなく、品番の一部だから・・


82774ワット発電中さん:2010/03/18(木) 11:53:17 ID:tltsFyJt
ところで、秋月で売ってるmega88Pは32KHzの問題はないという認識でおk?
83774ワット発電中さん:2010/03/18(木) 12:05:44 ID:z75ut4RD
なぜにデータシートのeratumを見ない?
84774ワット発電中さん:2010/03/18(木) 12:51:02 ID:j/XGCChw
>>81
>手元のCHIPにはそんなの書いてないな〜
ICの裏側ですよ
85774ワット発電中さん:2010/03/18(木) 12:54:13 ID:tltsFyJt
エラッタにエラッタあるみたいだしねえ
ま32k水晶なんてmegaで使うことはないから
どうでもいいけど
データシートに書いておきながらテストしてねーんだもんなあ
86774ワット発電中さん:2010/03/18(木) 17:37:43 ID:9r4XL3kh
シューティングゲーム作ろうと思うのですがどのマイコンがいいですかね?
87774ワット発電中さん:2010/03/18(木) 17:41:14 ID:ZkaNRyRi
試作段階だと安定してたけど実際の生産だと個体差で不具合って所か?
88774ワット発電中さん:2010/03/18(木) 18:12:43 ID:jCZ6Qhre
>>86
tiny2313
89774ワット発電中さん:2010/03/18(木) 18:21:01 ID:c+TKUMw2
>>85
エラッタの嵐で商品とは思えないものを販売するMicoChipよりはかなりマシ
90774ワット発電中さん:2010/03/18(木) 18:44:31 ID:AVsEEHF9
>>86
SH
91774ワット発電中さん:2010/03/18(木) 22:11:25 ID:18YTDXSP
>>84
>ICの裏側ですよ
見落としてました。
一応裏側(腹)も見てたんですけど、何も書いてないように見えてました。
コメントで改めて見直してみると、レーザーマーキングで書いてあります。

ありがとうございました。

92774ワット発電中さん:2010/03/18(木) 22:12:45 ID:ZkaNRyRi
レーザーマーキング厄介だよな
コーティングで埋められちゃうと自動検査装置で読めねぇ
93774ワット発電中さん:2010/03/18(木) 22:39:37 ID:BLfD2NNJ
自動検査装置どころか肉眼の性能が最近やばい
まだ30代なのに・・・
94774ワット発電中さん:2010/03/18(木) 23:17:18 ID:mdP1drzC
LEDのライト当てるとクッキリ見えるよ
95774ワット発電中さん:2010/03/18(木) 23:46:42 ID:AVsEEHF9
ルーペとライトは必須だな
96774ワット発電中さん:2010/03/19(金) 00:34:37 ID:Qk0qJfTO
>>94-95
これ、安いけど結構造りも良くてイイですよ。

ttp://www.aitendo.co.jp/product/1923
97774ワット発電中さん:2010/03/19(金) 00:39:40 ID:mbtbYO17
>>96
これは画期的。ライトも点いてる。
98774ワット発電中さん:2010/03/19(金) 00:42:46 ID:5Zds8s60
それを使えば俺の電子工作余命が10年くらい延びるかも
99774ワット発電中さん:2010/03/19(金) 23:40:02 ID:Peq87I41
ライト付マイクロスコープならずいぶん前に作った覚えが
関係ないが40ピンのDIPってあらためてみるとでかいな
http://p.pita.st/?p56vmix7
100774ワット発電中さん:2010/03/20(土) 00:50:31 ID:wywQtdWw
なんか最近ネタ切れだ
何か作りがいのあるものはないものか
101774ワット発電中さん:2010/03/20(土) 10:36:42 ID:ikf9OcL7
ポストに何か届いたらメールに通知するやつ作ってくれ
102774ワット発電中さん:2010/03/20(土) 10:44:43 ID:ks35fKRk
PICで組もうと思ってたんだが・・・

簡単なサーバーをAVRで作って、出先から家電製品を制御する。
家電製品とのインタフェースは赤外線。要するにリモコン。

学習リモコンとTCP/IPスタック、HTTPプロトコルを実装すればいけそう。
103774ワット発電中さん:2010/03/20(土) 11:51:41 ID:eCiG2mLS
AVRでイーサネットの機能内蔵した奴ってありましたっけ?
104774ワット発電中さん:2010/03/20(土) 12:17:06 ID:H+GTkwLA
>>103
残念ながら現行のAVR(mega)とXmegaマイコン単体でLAN内蔵(MACのみを含む)
はないですね。ARM系のシリーズにはあったかもしれません。

でも、ARM系でLAN付きなら、TIに買収されたLuminary Microのやつが、内蔵
ROM/RAMが大いし、内蔵シリアルもPCと同じ16550コンパチだからなぁ。

mega64/128のI/Oポートを2つ半潰して外部にバス出し、373/573と外付け
SRAMとLANコントローラを付けたら、コスト的にかなり微妙。
105774ワット発電中さん:2010/03/20(土) 17:07:46 ID:XyhhAb6X
>>100
なんか、もう凄いとか、超絶とか、ありえねぇって感じのライタ
106774ワット発電中さん:2010/03/20(土) 17:53:16 ID:IGCP/wdD
無線ライタ
107774ワット発電中さん:2010/03/20(土) 18:07:18 ID:LfcQ5r0f
じゃあBluetoothライタでも作ってみるか
108774ワット発電中さん:2010/03/20(土) 18:07:29 ID:tbvn56Q6
俺は328Pで熱電対温度計作ることにした
多桁の補正演算が必要だからatmega向きだろ
作ってもはんだごての先っぽの温度測るぐらいしか使い途ないけどね
109774ワット発電中さん:2010/03/20(土) 20:45:45 ID:H+GTkwLA
>>108
AVR内蔵のADCを使って、冷接点補償付き、トリミング済み熱電対用アンプ

ttp://www.analog.com/jp/sensors/analog-temperature-sensors/ad595/products/product.html

を使うという手もあるが、実のところ既に世の中には ...

冷接点補償も含め、熱電対用のリニア補正付きアンプと12bitのADCを内蔵し、
SPI準拠のシリアルインターフェースでマイコンに直結できるICがあったり
する。

ttp://japan.maxim-ic.com/quick_view2.cfm/qv_pk/3149/t/al

ちと高いのと0℃以下の温度測定ができないのが欠点だが、再現性とか考え
ればアリかと。 やる気をそいでしまうかもしれないけど。(w
110774ワット発電中さん:2010/03/20(土) 20:52:31 ID:rqQ5dE8C
103AT でやってみる
111774ワット発電中さん:2010/03/20(土) 20:52:33 ID:X4aMTOeh
PICエミュレータでも作れ
112774ワット発電中さん:2010/03/20(土) 21:36:07 ID:/s58/OhA
炊飯器の制御回路自作して、ノーマルよりうまく炊けるようにする
いや、ヒーター含めて自作がかっこいいな
113774ワット発電中さん:2010/03/20(土) 21:36:42 ID:CSpdrOkX
CPLD上のAVRクローンでも
114774ワット発電中さん:2010/03/20(土) 22:17:52 ID:ks35fKRk
AVRのIPコアか・・・

是非頂きたいな。PICのIPより使いやすそうだ。
115774ワット発電中さん:2010/03/20(土) 22:42:52 ID:IXxhczsQ
2313を100個つないでなんかやるとか言ってたのは実行したのか?
116774ワット発電中さん:2010/03/20(土) 23:23:29 ID:LfcQ5r0f
>>112
炊飯器のソース見てみたが以外に複雑な処理してて驚いたわ
117774ワット発電中さん:2010/03/21(日) 03:05:52 ID:mIj3VOOE
本日AVRマイコンデビューしました
某動画をきっかけに始めたのですが
とりあえず基礎的な操作とLED8個のが順番に点滅する所まではできました。

次は何を作ったらいいんでしょうか?
というかC言語も今日から始めたのでさっぱりなのですが何か勉強になるようなものがありましたら
お願いいたします
118774ワット発電中さん:2010/03/21(日) 03:53:08 ID:QhX9q8VO
LEDがあるなら格子状に並べてダイナミック表示で絵でも出してみるとか
俺はLEDチカチカのあとはUARTでテキストをPCに送って
それとタイマを組み合わせてRTCもどきを作った
119774ワット発電中さん:2010/03/21(日) 09:57:27 ID:N7FskLKE
データシートにのってる機能、一個づつ試していったら?
A/DがのってるならA/D変換させたり、PWMでもわーんってLED光らせたり
120774ワット発電中さん:2010/03/21(日) 10:13:22 ID:4RaGbRwt
PICと違って、電子工作入門者向けの本がないのは痛いな。。。
121774ワット発電中さん:2010/03/21(日) 12:53:23 ID:MIJsQNBK
やっぱ1機能ずつ小物を製作しながら使い方覚えて行くのが王道だよなぁ
とりあえずLED点灯させたら、スイッチ付けてスイッチと連動させてみたり
タイマ割込みで点滅させてみたりとか
あとはPWMで輝度調整もいいね
UARTでPCとつないでPCから点滅指示とか
アナログ入力値をAD変換して、それをLEDの輝度を対応させるとか
スリープしてスイッチで復帰とか
面倒なのは通信関係の機能でデバッグも大変だけど
それ以外はLEDとスイッチだけで結構遊べる気がする
122774ワット発電中さん:2010/03/21(日) 13:39:34 ID:ANZOSlKt
AVR入門者でCの勉強もこれから、次は何をやれば、
って言ってるくらいならこの本が向いてると思う。>117どうよ。
「試しながら学ぶAVR入門」http://shop.cqpub.co.jp/detail/587/
123774ワット発電中さん:2010/03/21(日) 18:59:59 ID:ul3lhaBS
>>116
何を制御してるのか教えて。
温度プロファイル的なものだけ?
124774ワット発電中さん:2010/03/21(日) 19:08:42 ID:eQj8p/qz
初心者の質問で申し訳ないのですが、ATmega88と、ATmega88pでは、インクルードファイルは同じなのでしょうか?
125774ワット発電中さん:2010/03/21(日) 19:35:41 ID:eQj8p/qz
タイマがスタートする瞬間は、初期値(CTCだと比較値)をセットした瞬間ですか?
それともタイマ割り込みを許可した瞬間ですか?
126774ワット発電中さん:2010/03/21(日) 19:51:05 ID:N7FskLKE
分周期をセットした瞬間
127774ワット発電中さん:2010/03/22(月) 00:13:55 ID:MyoMdJXn
はじめまして
今までPICの12や16をアセンブラでやってた程度の者ですが
AVRにも興味が湧いてきました。
ここで初歩的な質問させていただいても答えていただけますか?
「オマエのくるところじゃ無い」という事であれば素直に去ります。
レスください。
128774ワット発電中さん:2010/03/22(月) 00:17:04 ID:ksoEZnoa
おまえに教えることはもう何もない
129774ワット発電中さん:2010/03/22(月) 00:34:57 ID:pONZR0sP
AVRしか使った事ないんだけど、他のマイコンの経験があれば
AVRは使いやすくて楽勝!って感じだったりするんだろうか。
130774ワット発電中さん:2010/03/22(月) 00:48:06 ID:S7tv9cqj
んなことない。
AVRも他のマイコンもどれも同じように使いやすい(PICを除いて)。

あ、Cレベルの話ね。アセンブラレベルでは知らん。
131774ワット発電中さん:2010/03/22(月) 02:21:58 ID:Ajhwzkuh
>>130は、129の何を否定しているんでしょうか?
132774ワット発電中さん:2010/03/22(月) 02:54:45 ID:4LgNxT/B
バイク用のデジタルタコメーターを作ってみた
雨でやられましたとさ
133774ワット発電中さん:2010/03/22(月) 04:54:20 ID:RUuGul9J
>>132
バイクの回路みたいに、筐体に収めた後シリコンシーラントで埋めときゃいいんじゃ?
134774ワット発電中さん:2010/03/22(月) 05:07:03 ID:4LgNxT/B
>>133
バイク用の防水パテでしっかりやったつもりなんだがなあ
多分湿気でやられたんだと思う
水自体は進入してなかったが液晶がショートしてたからな
135774ワット発電中さん:2010/03/22(月) 05:30:22 ID:KWZl2Qis
>>134
パテってそれで箱を囲っただけとか?
たぶん素人がやるんだったらシリコンシーラントで全部埋めちゃうのが一番なんだろうな
振動にも強くなるし
136774ワット発電中さん:2010/03/22(月) 06:46:33 ID:4CM3wU3i
シリコンシーラントって銅腐食しない?
137774ワット発電中さん:2010/03/22(月) 07:21:57 ID:xIOXQTBQ
中に湿度センサー入れとけば精神安定剤になるかも
138774ワット発電中さん:2010/03/22(月) 09:44:51 ID:K5YOeSCb
AVRじゃないけど、GPS表示器を作って14年程バイクに設置してた。
初期に水晶発振子の周波数が狂ったらしく通信がうまくいかなっかったのと
操作スイッチの接触不良ぐらいしか、トラブルなかったなぁ。

水晶はバイクの振動でやられたらしく半年でイカれてたが、
わざと配線を長くしてスポンジでくるんで取り付けたら以後トラブルなし。

ケースは防水性が全く無いアルミケースをシリコンでシールしてただけが問題無し。
ただ完全密閉じゃなくて、水抜き用にケースの隅に1.5mm程の穴を開けてた。
139774ワット発電中さん:2010/03/22(月) 10:11:18 ID:MyoMdJXn
>>127です。
質問させてください。
@ 書き込み用ライターはまずは安価に製作出来そうなRS232C(Dsub9pin)用の物に
しようと思いますが、お勧めの物をお教えください。
A 上記に対応した書き込みソフトと入手法、操作法のサイトをお教えください。
B PICの場合、アセンブラソフトにてアセンブラ命令語からHEX機械語に変換し、
書き込みソフトを使ってライターから書き込みをしていましたがAVRも同じ手順で
良いでしょうか?
C PICの場合アセンブラソフトはメーカーから出ていましたがAVRも同様でしょうか?
D 初心者向けのAVRの型式をお教えください。
E お勧めのサイト、初心者の相手をしてくれそうな管理人さんが運営しているサイト等
ご存知であればお教えください。

以上 わかる範囲で結構です。お教えください。
(自分でも調べましたが ある基準に達している人を前提にしたサイトばかりで初心者の自分では
難解でわかりませんでした)
140774ワット発電中さん:2010/03/22(月) 10:14:34 ID:ksoEZnoa
PICやっててなんでここまで素人なのか
素人は
http://www.nicovideo.jp/watch/sm7775003
を見るべし!
141774ワット発電中さん:2010/03/22(月) 10:28:21 ID:d/oG8eMP
PICも挫折したんじゃね?
AVRライターはAE-UM232Rが万能・鉄板だと思う
そのままUSBシリアルになるし
8PINデバイス使うんでもない限り専用ライタなんて揃える必要ない
142774ワット発電中さん:2010/03/22(月) 10:29:42 ID:NKifLbT7
>>139

1.AVRISPmkIIを使うべし。ライタ作りが目的じゃないなら純正を買え。
 できればJTAGICEmkIIが望ましい。高いけど。
2.純正のAVRstudio4で書ける。入手は公式。使い方は直ぐわかる。
3.Cで書いてコンパイルして出来たROMイメージを書き込むだけ。
4.そう
5.mega324 (全部入りだから一通り汎用機能はすべて試せる。まじおすすめ)
6.他所に迷惑かけんな
143774ワット発電中さん:2010/03/22(月) 10:33:04 ID:ksoEZnoa
あっ
こっちのほうがいいかも。完璧に手順がわかる。
http://www.nicovideo.jp/watch/sm8610312
144774ワット発電中さん:2010/03/22(月) 10:50:01 ID:4CM3wU3i
>>142
>5.mega324 (全部入りだから一通り汎用機能はすべて試せる。まじおすすめ)
秋月の644pの方が安くね?
145774ワット発電中さん:2010/03/22(月) 11:20:02 ID:Zm45BxPN
tiny2313なんすけど、フューズバイトに書き込んだ値は
プログラムから参照できないんでしょうか。

具体的には、8分周プリスケール(CKDIV8)のプログラム有無と
クロックソース(CKSEL3-0)が、内部クロックの8MHzか4MHzかそれ以外か
が分かれば助かります。

CKDIV8は、リセット直後にCLKPRに設定された値から判別つきそうなんですが、
CKSELはプログラムから判別するには、どのIOレジスタを参照すれば、よいでしょうか。
146774ワット発電中さん:2010/03/22(月) 11:43:56 ID:7dlzS5y/
>145
データシートに

ソフトウェアからのヒューズビットとロックビットの読み出し

というそのまんまな項がある。
147774ワット発電中さん:2010/03/22(月) 12:01:12 ID:Zm45BxPN
>>146
ありゃ、本当だ。フラッシュメモリの章に....マジすまん。
IOレジスタばかりに目が行っていたようです。

なんにせよ助かりました。thx!
148774ワット発電中さん:2010/03/22(月) 12:04:07 ID:NKifLbT7
>>144 mega164,324,644はROM容量だけの違いだから、644pならなおよしだよ。
149774ワット発電中さん:2010/03/22(月) 12:07:11 ID:NKifLbT7
クロックソースの判別をしても
AVRはプログラム中で内臓RCと外部OSCの切り替えを
ルネサスのように出来ないから、何に使うのかと思ったり。

CKDIV8をセットしてても、分周期の初期設定が1/8になるだけで
1/1に再設定したらまた8Mに戻るよ。
150774ワット発電中さん:2010/03/22(月) 16:56:39 ID:9a+Wgn8w
クロック調べてウェイトを調整するとか
151774ワット発電中さん:2010/03/22(月) 18:24:42 ID:AxMF8h8h
だれか>>124をおねがいします・・・
152774ワット発電中さん:2010/03/22(月) 18:31:36 ID:9a+Wgn8w
>>151
たしか違ったと思うけど、普通はコンパイルオプションでチップ名を与えてやれば
ヘッダファイルが勝手に適切なやつを読むでしょ
io.hを読めとか書いとけばいいのでは?
153774ワット発電中さん:2010/03/22(月) 18:42:10 ID:NKifLbT7
>>124 別。picoPower用のレジスタしか違いはないけど。
シグネチャバイトも別。というか先にコンパイラを書け。
154774ワット発電中さん:2010/03/22(月) 18:47:28 ID:ezin5tPq
>>151
iom88.hとiom88p.hがあるから別ファイル。
ヘッダファイルの場所は(WinAVRのインストールフォルダ)/avr/include/avr

>>152のやつは、プロジェクトのオプション→Deviceで使うチップを選んで、
ソースの冒頭に #include <avr/io.h> と書けばよろし。

コンパイラを書くってなんぞ。
155774ワット発電中さん:2010/03/22(月) 18:49:02 ID:HFB177xP
>>154
コンパイラに何を使ってるのか書けって意味じゃないか?
156774ワット発電中さん:2010/03/22(月) 18:51:07 ID:NKifLbT7
自分はIARしかつかってないから、winAVRだと同じ立ったりするのかもしれないと思った。
レジスタは9割同じだからそういうこともあるかなと考えただけ。
157774ワット発電中さん:2010/03/22(月) 19:47:55 ID:mFg/YZW9
ANSI-Cみたいな標準があるわけじゃないから、コンパイラやバージョンを
示さないと、的外れな回答になる可能性が高いわな。 標準以外のヘッダ
ファイル名なんて、それこそファイルを区別するためだけの違いでしか
ないし。

> プロジェクトのオプション→Deviceで使うチップを選んで、
> ソースの冒頭に #include <avr/io.h> と書けばよろし。

というやり方も、WinAVRでMAKEファイル使ってる可能性だってあるから、
必ずしも正解とは言えない。質問者に逆切れされても困るしな。

>>150
外部発振か内部オシレータか判っても、外付け水晶の周波数までは判ら
ないのでは? 最大16MHzでも12.288MHzで動かしたりするし。
158774ワット発電中さん:2010/03/22(月) 20:06:27 ID:E5sutQz/
>>157
きっと、外部クロック入力か水晶以外が指定されていたら
「USBヲ ツカウニハ セイド ガ タリマセン!!」とメッセージを出すに違いない。
159774ワット発電中さん:2010/03/22(月) 20:56:07 ID:kHei/FBJ
>>151です。
AVRStudioで、アセンブラで書いています。

たとえば、ATmega88の場合、
/AVRTools/AvrAssembler/Appnotesというフォルダに
m88defというファイルがあるので、これがインクルードファイルだろうと予想ができるのですが、
同じフォルダにはATmega88pに対応するであろう、m88pdefのようなものはありません。
しかし、
.include"m88pdef.inc"とコマンドをうっても、エラーは出ません。
元のファイルがないのにエラーが出ないというのも変だな、と思っているのですが・・・。

また、インクルードファイルはどこかからかダウンロードできたりするのでしょうか?
160774ワット発電中さん:2010/03/22(月) 21:56:17 ID:5cXQrdAf
>>159
自分も初心者なので詳しくは知らないのだが、assembler1はもうメンテ
されていないのでは? AvrAssembler2/Appnotesの下なら
m88Adef.inc, m88def.inc, m88PAdef.inc, m88Pdef.incがあるよ
ProjectメニューのAssembler Optionsでどっちを使ってるか確認しては?
161774ワット発電中さん:2010/03/22(月) 22:03:35 ID:NKifLbT7
俺もインストしてみた。
winAVRの使い方よくわからん。
誰か教えて・・・elfってなに妖精

とりあえず<C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes>
にレジスタ定義ファイルらしきものがあるんで、ここにパスが通ってるのでは。

162774ワット発電中さん:2010/03/22(月) 22:17:45 ID:NKifLbT7
便乗して教えてほしいのですが、winAVRで
セグメントで名前を与えた領域にメモリを配置する方法と
スタックのサイズと開始番地を決める方法を教えてくれませんか?
163774ワット発電中さん:2010/03/22(月) 22:38:33 ID:RUuGul9J
・・・
164774ワット発電中さん:2010/03/22(月) 22:42:24 ID:9a+Wgn8w
>>162
プロジェクトのオプションのメモリセッティングから色々できる
165774ワット発電中さん:2010/03/22(月) 22:50:31 ID:mFg/YZW9
>>161
elfは、AVR限定ではなくgnuデバッガのシンボル形式ですな。でも、
シンボルデバッグなんてやらんので詳しくは知らん。(w

デバイス定義のヘッダは、別に付いてくるヤツを使わず、自分で書いても
ええのんで。

>>162
> セグメントで名前を与えた領域にメモリを配置する方法と

ATMELの統合開発環境「AVR Studio 4.0」を使っているとして...

まず、適当なプロジェクトを作成した後、メニューから「Project」
-「Configuration Options」で「(プロジェクト名) Project Option」
ダイアログで、左側のリボンから「Memory Setting」を選んで、
「Memory Segments」の「Add」ボタンで追加。

> スタックのサイズと開始番地を決める方法を教えてくれませんか?

「Memory Segments」を選ぶまでは同じで、「Stack Setting」の
「Specify Initial Stack Address」をチェックして、右のエディット
ボックスにスタックの初期アドレスを指定。

スタック領域のサイズは指定不可。(一般的にはDebug用ライブラリ
では、関数呼び出し時にヒープの使用量と比較するチェックルーチン
を呼ぶ処理が勝手に入る)

AVR Studioを使わず、makeを使っているなら、たぶんリンカのドキュメント
のオプションの項目に記述があるかと。
166774ワット発電中さん:2010/03/22(月) 23:08:09 ID:NKifLbT7
分かりました。IARのように領域のサイズを決める必要がないようで。
デフォルトでRAMENDから積み上がると判ったのでもういいです。
167774ワット発電中さん:2010/03/22(月) 23:15:41 ID:NKifLbT7
>>165 サンキューです。
IARではリンカ設定ファイルにメモリセグメントに名前を与えると
たとえば 0x1000-0x2000のFlashに"CONTDATA"という名前を与えると

__flash unsigned char table[100]@"CONSTDATA" = {初期化};
または
__flash unsigned char temp@0x9FF; と書くと絶対番地設定
__eepromだとEEPROMに配置してくれたりします。

のように書けるんですが GCCでは別の書き方が必要のようですね。
スタックの消費量の自動計算もしてくれると助かるけれど、
これは0でRAMを初期化してから書き換わる範囲をチェックするしかないですね。
168774ワット発電中さん:2010/03/22(月) 23:52:07 ID:mFg/YZW9
セグメント配置は、Memory Settingに登録したセグメント名で、ソース中
の変数に属性を付ければいける気がする。 H8用のgcc(KPIT)ではやった
ことがあるけど、AVRはメモリ自体少ないのでやろうとしたことがない。

AVRで使えるかどうか知らないけど、gccスレでgcc用の関数単位でスタック
消費量を計算するプラグインだか、ユーティリティだかを見た気がする。

マップファイルかリストファイルに出力されるのだったかも。
169168:2010/03/23(火) 08:24:00 ID:2xBONa58
>>167
AVR Wikiの雑談ログに詳しい説明があったので貼っておきます

「外部RAM - TREX (2006年03月30日 00時54分46秒)」
ttp://avrwiki.jpn.ph/wiki.cgi?page=%BB%A8%C3%CC1#p11

> avr-gccを使うのですよね?使用するメモリの配置によって設定の仕方が変わり
> ます(.dataセクション/.bssセクション/スタック領域/ヒープ領域の配置)。
> セクションの定義は [Project]->[Configuration Options] の [Memory Settings].
> [Memory Segments]で指定します。スタックも同じ画面で指定できます。ヒープ
> 領域を外部にするのであれば [Custom Options]->[Linker Options]で__heap_start
> や__heap_endのシンボルの値設定が必要となります
> (例えば、-Wl,--defsym=__heap_start=0x802000,
> --defsym=__heap_end=0x803fff)。またheapは使用せずに
> 単純にバッファとして使うだけ等の場合は、例えば
> [Memory Settings]で .xdata=0x801100と設定して
> プログラム内で
>
> char buffer[256] __attribute__ ((section (".xdata")));
>
> とすればbufferは外部メモリに配置されます。(.xdataはgccで使用して
> いない適当なセクション名)ただしこの場合はgccのスタートアップルー
> チンで初期化されません。
170774ワット発電中さん:2010/03/23(火) 17:43:31 ID:9sZQP1aE
あれ?
heapやstackに外部RAM使用の場合は
外部RAM関連レジスタ初期化って何処に書くんだっけ?
171774ワット発電中さん:2010/03/23(火) 23:02:03 ID:qp/ZxT3r
Hidaspx経由の赤外線リモコン送信、学習リモコン
ほぼ完成したので記念カキコ。
172774ワット発電中さん:2010/03/25(木) 19:49:56 ID:1Bss+ukg
>>132
自分は初心者なのでまだまだそこまではいきませんが、いずれ同様のものを作りたいと思ってます。
パルスの検出とカウントの仕方どんなふうにしたかアイディアだけでも教えてもらえませんか?
173774ワット発電中さん:2010/03/25(木) 22:23:40 ID:/wxYsWZI
加速度センサーでできる
174774ワット発電中さん:2010/03/25(木) 22:39:57 ID:1va7XGIQ
175774ワット発電中さん:2010/03/26(金) 06:34:07 ID:hxIpz5+p
回転数ってオルタネーターの出力(交流系)から取れないの?
やろうとしてたのにバイクぶっ壊してできなくなっちゃった
176774ワット発電中さん:2010/03/26(金) 09:12:12 ID:qLaswW3V
どっちにしろ、電源の取り方とショートには気をつけろよww
177774ワット発電中さん:2010/03/26(金) 15:41:26 ID:trBRTOW9
>>172
点火パルス測ってるだけだよ
すんごく単純
178774ワット発電中さん:2010/03/26(金) 18:27:12 ID:Ly8bSiwm
at90usbkeyでいろいろやってとてもよかったのでそろそろきちんとしたライター欲しいなと考えてます。
純正で最も安いAVRISP mkIIを買おうと思っていたのですが、少し予算を足すだけでJTAGデバッグ可能な
AVR DRAGONというものがよさそうな気がしてきました。ただ情報があまりないのが不安です。
使っている人がいましたら使い心地を教えていただけるとありがたいです。
179774ワット発電中さん:2010/03/26(金) 18:31:47 ID:Cl4x/QEI
何だかんだで純正が良いよ
マイナーなのだとトラブルが増えるだけだし
あの価格でJTAGデバッグ可な辺り他でトラブルが出そう
180774ワット発電中さん:2010/03/26(金) 20:39:21 ID:RGnI6BkF
181774ワット発電中さん:2010/03/26(金) 21:03:04 ID:hxIpz5+p
GPSモジュールからのデータをLCDに表示させるだけって機能を2313でやってたがプログラムメモリもSRAMも足らん
ついに放置されてたATmega328の出番がやってきたようだなhahaha
182774ワット発電中さん:2010/03/26(金) 21:21:29 ID:4eY53wjP
>>177
その点火パルスはどうとるんだよっていう話じゃね?
オシロでみたことある人なら面倒って分かると思うけど
183774ワット発電中さん:2010/03/26(金) 21:35:24 ID:7uLa7vzl
>>180
純正じゃないコピーものや独自のライターは避けるた方が賢明だろうという意味
184774ワット発電中さん:2010/03/26(金) 21:40:22 ID:EqrdY2F7
>>181
2313から328に変えたらメモリが広すぎて迷子になるぜ
もとい、今度は余りすぎて不安になるぜ
185774ワット発電中さん:2010/03/26(金) 22:14:34 ID:4eY53wjP
こんなに豊富にメモリあって何に使えばいいんだろ。
DSPとかオーディオ帯域ならADのサンプリングレート足りるのか?
186774ワット発電中さん:2010/03/26(金) 22:17:42 ID:zG8hTa0m
足りなくて困るよりはいいと思う
187774ワット発電中さん:2010/03/26(金) 22:27:10 ID:EqrdY2F7
>>186
世間のエンジニアは貧乏性だから、性能+αまで無駄な機能を詰め込むのだ
ハードウェアの進歩に合わせて無駄を追加してきたソフトウェアの歴史が証明してる
詰め込みも、性能−αまでなら皆幸せなのに・・・
188774ワット発電中さん:2010/03/26(金) 22:31:53 ID:9eDLlzzH
>>182
コードにコイル巻きつけて出てきたEを矩形波にしてサイクル測るだけ
某HPに書いてあったのをそのままやってみた
189774ワット発電中さん:2010/03/26(金) 23:17:34 ID:WCoqyaWE
速度計は難しいけどタコメータは笑うほど簡単
190774ワット発電中さん:2010/03/26(金) 23:40:25 ID:s1nhyFkS
イカリングもたのしいよ
191774ワット発電中さん:2010/03/27(土) 01:00:18 ID:OLj8WwRZ
みなさんどうもありがとうございます。
>>174
ピックアップコイルの出力を整形して外部割り込みで取り込むんですね。波形整形のあたりがまだよくわかりませんがとても参考になります。
>>176
気をつけます
>>177,182,188
プラグコードから電磁誘導で取り込んだんですね。どこから取るにせよちゃんとやるにはオシロがいりそうです…。
>>189
まだ先の話ですががんばります
192774ワット発電中さん:2010/03/27(土) 01:15:28 ID:JjBWnbRC
>>191
横やりレスだけど、>>174みたいな信号を取り出すなら>>174のオペアンプの回路図はちょっとまずい。
オペアンプをコンパレータとして使って、なおかつオペアンプに供給する電圧をAVRマイコンと同じに
しておかないと、AVRマイコンが壊れるかもよ?

これぐらいの波形なら、ダイオード1本とツェナー1本でAVRにぶっ込めば何とかなるんでは?
193774ワット発電中さん:2010/03/27(土) 01:36:57 ID:7ICzxgU0
>>192
電源電圧以外にも、ゲイン調整が入力側の抵抗を可変してたり、ツッコミ所が
多い回路ですね。 コンパレータというか、一応100kΩで負帰還を掛けてある
ので、一応はアンプかな。

まぁ、微弱入力のリニア増幅しているわけじゃないのので、動けばいいと
いった感じか?

プラグコードに数回巻いて拾った信号はレベルが低く、マイコンのポート
でロジック入力として受けるには電圧増幅は必要だと思いますが、5V単一
電源で動作するOPアンプで十分かと。 1Vを超える程度の振幅があれば、
オープンコレクタによるレベルシフタでもいけそう。

あるいは、5Vに比べてしきい値の低い3.3V動作のマイコンを使うとか。

注意点としては、ポート入力に適当な定数のCRフィルタを付けるのと、過電圧
入力でマイコンやOPアンプが壊れないよう、逆向き直列のツェナーDiを、入力
〜GND間に入れておくくらいで桶か?
194774ワット発電中さん:2010/03/27(土) 02:59:31 ID:PXb1AgYn
>>192 >>183
>174のオペアンプの回路図ってあくまで「擬似信号を作るジグを製作」
マイコンに入れる信号は、これより後のページの波形整形のところで
ダイオードクランプ+シュミットバッファーの構成にしてる。
きわめて正常、全然問題なし。
195192:2010/03/27(土) 10:19:26 ID:JjBWnbRC
http://touring.fc2web.com/electronics/tacho-03.htm
ココですな。見ていなかったw
196774ワット発電中さん:2010/03/27(土) 11:11:16 ID:BaQyE489
ピックアップコイルの出力って、高回転時に100Vくらい出てた気がするぞ、対GNDで
197774ワット発電中さん:2010/03/27(土) 16:07:40 ID:MWOTEVEx
自作のピックアップだからドレだけ出るかはお楽しみだろ
198774ワット発電中さん:2010/03/27(土) 17:11:04 ID:MWOTEVEx
I2CとSPIどっちが好き?
個人的にはSPIのが簡単で好きなんだけど、バスに沢山ぶら下げるとツラい・・・
ネット見てるとI2Cのが人気な感じ
AVRのI2Cも更に速いモードで動きゃいいんだけどなぁ
199774ワット発電中さん:2010/03/27(土) 17:17:06 ID:qMZRMJOo
線が2本で済むっていうのは魅力だなぁ・・・
200774ワット発電中さん:2010/03/27(土) 17:48:05 ID:/b5sOYUe
適材適所としか。
201774ワット発電中さん:2010/03/27(土) 21:47:37 ID:Se16sarQ
2本と、アース線で3本必要
202774ワット発電中さん:2010/03/27(土) 21:51:43 ID:ho8kU1SP
2本で通信するならデータ線は1本じゃなきゃだめ。
差動だとGNDなしでも一応通信できた。
203774ワット発電中さん:2010/03/27(土) 22:00:01 ID:Se16sarQ
2本と、アース線と、クロック線で4本必要
204774ワット発電中さん:2010/03/27(土) 23:29:07 ID:YKAiX+EP
そこで非同期ですよ
205774ワット発電中さん:2010/03/27(土) 23:41:10 ID:nJ+t/uB0
誰か電力線で通信する1WireとかAVRでやってよ。
http://ja.wikipedia.org/wiki/1-Wire
206774ワット発電中さん:2010/03/28(日) 00:26:30 ID:EW177L1f
>>198
たった1本で速度が全然違うからなぁ。
207774ワット発電中さん:2010/03/28(日) 01:37:11 ID:9p42mt96
速度が100倍くらい違うからね。用途からして全く違う。

100kbps以上の通信ICならSPI以外考えられないけど、
ICの機能設定やごく小容量のデータ通信ならI2Cで十分。

オレはSPI派かな。信号駆動をプルアップに頼るI2Cはどうも好きになれない。
208774ワット発電中さん:2010/03/28(日) 01:43:59 ID:Q4FMDrl0
SPIにしろI2Cにしろスレーブ側もマイコンだと電子工作として楽しくない
面倒すぎて
209774ワット発電中さん:2010/03/28(日) 06:09:20 ID:o4rSTSPs
面倒というか難しいのに挑戦するのがいいんじゃないか
210774ワット発電中さん:2010/03/28(日) 06:47:40 ID:KdsEOn7S
質問です。
2313でアセンブラで書いてます。
R32以上使いたいとき
SRAMの領域を使えばよいのですか?
命令はどう書けばよいですか?

.DEF TM1 = 0x60
ではだめでした。
親切な方 どうか教えてください。
211774ワット発電中さん:2010/03/28(日) 09:07:49 ID:e1tJhqpl
>>205 どっかの会社の規格はつかいたくない
オープンじゃないと
212774ワット発電中さん:2010/03/28(日) 11:06:02 ID:WYBxn0WU
>>210
SRAMのアクセスにはXレジスタでアドレスを指定する
.equ TM1 = SRAM_START + 0

clr XH

; write
ldi XL, TM1
ldi Rnn, <値>
st X, Rnn

; read
ldi XL, TM1
ld Rnn, X
213774ワット発電中さん:2010/03/28(日) 12:16:07 ID:7mTHUlXi
その使い方ならインデックスを使わなくてもlds/sts
でいいのでは。どのみちレジスタと同じに使えるわけではないけど
214774ワット発電中さん:2010/03/28(日) 13:57:15 ID:KdsEOn7S
>>212
ありがとうございます。
TM1、TM2、TM3を0x60〜62へ設定しました。
R=26の内容が 0x60、0x61、0x62と変化し
それぞれの数値のwrite,read共出来ました。

またまた質問です。
@0x60等の数値はシュミレーターには表示されないのでしょうか。
Arcall先で行うとretでプログラムの先頭へ飛んでしまいます。
もしヒントがありましたらお教えください。
(TM1〜3をR=20付近に設定すれば問題ありませんでした)
 Bデバッグでプレークポイントへ到着する時間が長いのですがこんな物なんでしょうか。
 Cプロセッサー欄のレジスタは00010001という表記にはならないですよねえ。
親切な方どうかお教えください。
215774ワット発電中さん:2010/03/28(日) 15:16:09 ID:KdsEOn7S
>>214です。
うろうろして申し訳ありません。
A、B解決しました。
シュミレーターの使い方の問題(かも?)でした。
@、Cのアドバイスと何卒よろしくお願いいたします。
216774ワット発電中さん:2010/03/30(火) 22:46:05 ID:qCqPr75R
(1)View-MemoryでDataを選択
(4)View-Registerで右クリック->Binary
217774ワット発電中さん:2010/03/30(火) 23:17:52 ID:rVUvuB1u
>>216
ありがとうございました。
確認しました。バッチリであります。
これで大変見通しが良くなりました。
AVRプログラム歴4日目の新米です。(朝から晩までやってるわけではありませんが)
今後ともよろしくお願い致します。
218774ワット発電中さん:2010/03/31(水) 01:01:58 ID:NehXEFVt
3.3⇔5の双方向・非反転のレベルシフトをしたいんだけど
DIPパッケージで手ごろなチップが見当たらない

で、ふと思いついたんだけどAVR自身の電源電圧を、自分で切り替えとかってやっても問題無いかな?
そったら、SDカードとの通信は3.3V、LCDは5Vとかダイナミックに切り替えできて回路すっきり
経験者がいたらコメントお願いします
219774ワット発電中さん:2010/03/31(水) 13:12:00 ID:PEpv17Vm
>>218
そりゃ無茶だ。
LCDなら・・・と言うかTTLレベルなら3.3vでも十分のはずだから、3.3v駆動にするとか、
抵抗をかませるとかした方がいい。
220774ワット発電中さん:2010/03/31(水) 14:00:11 ID:20WS2IHv
>>218
問題ないんじゃないの。やってみたら。回路構成に無駄が多い気もするけど。
221774ワット発電中さん:2010/03/31(水) 18:37:43 ID:OyQDBzRd
どっかに安い有機ELパネルないかな?
222774ワット発電中さん:2010/03/31(水) 19:33:22 ID:bvRTpcO7
ヤフオクで流れてるよ
223774ワット発電中さん:2010/03/31(水) 20:52:30 ID:i62gP2hX
>>221
coconetっていうか液晶工房とかにあるけど。
高解像度はコントローラ無いとね〜
224774ワット発電中さん:2010/03/31(水) 21:02:53 ID:lhC9fBK0
コントローラ内臓だとSHとかになるのかな?
225774ワット発電中さん:2010/03/31(水) 21:36:37 ID:lhC9fBK0
データシート日本語翻訳のHEROさんのところが。。。
どうにかならないものか。。。
226774ワット発電中さん:2010/03/31(水) 21:44:51 ID:NehXEFVt
これはキツいな・・・
一式3000円くらいなら金払って購入できるけど
月額3万と言われるとオレはちょっと無理

残念だけど仕方ない
善意で今まで貴重な公開してくれていたから大感謝
227774ワット発電中さん:2010/03/31(水) 22:18:04 ID:A/0/czYC
これはむしろAVRユーザの激減を招くだけではないのか。
本来、アトメルジャパンが日本語訳を出すか支援すればいい気もするが。

しかし、いきなりここまで高圧的なページを作る作者も大人気ない。
「これ以後のアップデートは有料ページだよん」でいいんじゃねえの?

多分皆ルネサスに流れると思うぜ。俺もそうすることにした。
あよならアトメル。
228774ワット発電中さん:2010/03/31(水) 22:27:01 ID:UL0HWXd+
日本語訳がないからやらないなんて厨なこといわないほうがいいよ
英語版あれば十分

229774ワット発電中さん:2010/03/31(水) 22:30:28 ID:A/0/czYC
また上から目線か。

あれば便利だろうが。公式版よりも色つきで体裁も見やすいのに。
そういう玄人気取りの意見しないほうがいいよ、俺もプロだかた言うけど。
230774ワット発電中さん:2010/03/31(水) 22:31:18 ID:lhC9fBK0
オリジナルで分からないところ日本語でよく確認させてもらいました。今まで本当にありがとうございました。
CCライセンスとかで翻訳を公開することってできないのかな?
ちょっとずつでもWikiとかに翻訳版を書いていけば役に立つと思うんだ。
231774ワット発電中さん:2010/03/31(水) 22:34:29 ID:A/0/czYC
俺も勉強させてもらったから感謝してる。
でも3万は無理だ。

今は8ビットから16ビットへの過渡期だから
そろそろAVRのアーキテクチャは苦しくなってきたし
資料は全部捨てて、後は今使ってる分のリピートだけにするわ

新規採用することはない。
危機感感じるならアトメルが何とかすることだ。

著者には良い仕事の縁があることを祈ってるよ。
232774ワット発電中さん:2010/03/31(水) 22:37:43 ID:fHt4uhz+
極端から極端だな
この業界特有の現象なのか
233774ワット発電中さん:2010/03/31(水) 22:40:08 ID:A/0/czYC
電機と半導体はブレが激しいと思う
そこで働く人間も同じだけど

でもちょっと今回のはちゃぶ台返しみたいで気分は悪いな
234774ワット発電中さん:2010/03/31(水) 22:43:28 ID:Vzyi888b
見てきた。ナンダカナ〜。結局のところ善意の押し売りだったと。

GNU一般やWebブラウザにも言えるけど、最初から適正な対価を提示・請求
して、自身で受け取る必要がないと思えば、慈善団体に丸ごと寄付するなど
していれば市場での競争原理が働くのに、無料で公開するから、結果として
他の有料(優良)サービスが生まれる芽をつぶしてしまう。

個人的には、IT業界の冷え込みの一因は、リーマンショックの影響だけで
なく、GNU等の偽善的無料サービスが生み出した人為的なものも含まれると
思っている。

そもそも、ATMELから正式に許可を取ってたのか知らないけど、もし許諾なし
で他人の著作物を翻訳しておいて著作権を主張しているなら、まるで同人誌
の二次創作的ノリだよ。

で、いざ金に困ったから金払えって、他人に法律の講釈たれる前に、本人が
人としてどうなのかねぇ? まぁ、いいけどさっ。
235774ワット発電中さん:2010/04/01(木) 00:01:48 ID:/muhXX1e
>>234
賛否はあるが少なくとも押し売りでは無いだろ
236774ワット発電中さん:2010/04/01(木) 00:34:03 ID:Dwx/dT1/
GNUソフトもなぁ。成功しているのはほんの一部であとは糞の山。

優れた製品は有償ソフト・ライブラリに多いけど、やはりピンキリ。
客にデバッグさせるようなのもあるし(w
237774ワット発電中さん:2010/04/01(木) 00:50:45 ID:B5/5IS1y
エイプリルフールだからだよね???
HEROさんの告知では
>元々直接閲覧のみで保持を認めていませんが、利用規定に反して該当資料を保持している場合は、速やかに該当資料を消去してください。
というのが書いてあるけど、どこかに書いてあったのかな?知らなかった。
「利用規定詳細」の中には記述がないんだけど。
個人的な閲覧ならダウンロードも可みたいなことかいてあるけど・・・
238774ワット発電中さん:2010/04/01(木) 06:13:13 ID:+mD40GHK
まあ12時までが4月馬鹿の有効期間だから午後には直っている
と、思いたい。
239774ワット発電中さん:2010/04/01(木) 06:40:07 ID:nk9Ekx+L
>>234 少なくともかなり早い段階から色々なチップのデータシートを翻訳してたから
無断じゃなくて協力関係にはあっただろうとおもうよ。

売却先がアトメルだったらいいのにね。つーか雇ってやれよ。データシート翻訳要員として。
240774ワット発電中さん:2010/04/01(木) 09:47:39 ID:VBc0Ntnr
データシートに限定しなくても、WEBの日本語化も含めた翻訳要員で売り込めないかね

ところで、Atmel日本支社って代理店営業だけなの?
日本で少しでも市場開拓する気があるのか、MICROCHIPのサイトでも見て猛省してほしい
241774ワット発電中さん:2010/04/01(木) 11:46:57 ID:JTyaQzEE
見てきたけど、残念なことだな。

それはともかく、気になることはいくつかある。
二次著作物だからアトメルとの取り決めがあったはず。たしか商業利用禁止とか。それは自分自身も守らないといけないのではないかな。
売るなら売るで、アトメルとちゃんと話しておいたほうが良い。

あと、一度配布したものの利用規定をあとで変えることはできない。ただし、改版して違う利用規定にするなら話は別。
あと著作権にも制限はあるから。個人利用とか大学図書館での保存のためのコピーとか、教育目的の利用とか。

アトメルへの売却というのが一番良いと思うけど。無理なら商業利用できる翻訳権を獲得して企業への販売とか。

242774ワット発電中さん:2010/04/01(木) 13:30:45 ID:giJh8xoi
実はエイプリルフールネタとかw
243774ワット発電中さん:2010/04/01(木) 13:59:45 ID:nk9Ekx+L
そうだったら見事な釣り針
244774ワット発電中さん:2010/04/01(木) 15:42:13 ID:FykV24/U
つーか金になってなかったのか
IPAみたいな助成金受けるような仕組みはないなのかね
245774ワット発電中さん:2010/04/01(木) 18:45:35 ID:+mD40GHK
あらまだ直ってなかったか
月30kでの利用と言うことはいくらで売るきなんだろうな。

社会が悪いから自分が不幸だと言う考えからでたっぽいけど、
正直残念だな。
246774ワット発電中さん:2010/04/01(木) 19:37:47 ID:nk9Ekx+L
貧すれば鈍するとはまさにこのこと

余裕無くなってこの有様よ
247774ワット発電中さん:2010/04/01(木) 19:46:44 ID:+UKkyH1c
AVRでテレビのリモコン作ったんですけど
本物のリモコンって電池で何年も持つじゃないですか
マイコンで作ったものはそんなに持たないですよね?
248774ワット発電中さん:2010/04/01(木) 19:47:52 ID:iHOozzmX
本物はボタン押してるとき以外はスリープ状態
249774ワット発電中さん:2010/04/01(木) 19:59:36 ID:+UKkyH1c
スリープってどうやるの?
250774ワット発電中さん:2010/04/01(木) 20:11:28 ID:MtRmW1zF
寝る
251774ワット発電中さん:2010/04/01(木) 20:12:09 ID:iHOozzmX
ポート入力の割り込みを許可に設定した上で
スリープさせるコマンド実行してボタンが押されたら割り込みが発生して
スリープ状態から復帰してダミーの割り込み処理やったあとに
通常状態に復帰してリモコンの動作するとかじゃねーの
AVRではスリープ機能使ったことないからよくわからん
252774ワット発電中さん:2010/04/01(木) 20:13:24 ID:+mD40GHK
>249
どのMCUかによって微妙に違うけどデータシートのPower Management and Sleep Modes
みたいなセクションがrからそこを読んでみればやり方はわかると思うよ。
253774ワット発電中さん:2010/04/01(木) 20:14:52 ID:iHOozzmX
AVRのスリープ機能は段階がありすぎてむかつく 使いたくない プンプン
254774ワット発電中さん:2010/04/01(木) 20:19:16 ID:+UKkyH1c
ありました。
http://arms22.blog91.fc2.com/blog-entry-212.html
さんくす
255774ワット発電中さん:2010/04/01(木) 21:14:07 ID:uNwtimGQ
スリープもしかりだが、動作電圧、クロックもできるだけ最低にするべし。
計算するとびっくりするぐらい差があるよん。
256774ワット発電中さん:2010/04/01(木) 21:45:45 ID:giJh8xoi
2313のフューズビットのエラッタはやばいな。スリープ絡みの
257774ワット発電中さん:2010/04/01(木) 22:24:51 ID:CpMhWpx4
>>254に貼られている所の資料を持っていると請求書が来るって事なのかな?
258774ワット発電中さん:2010/04/01(木) 22:35:25 ID:nk9Ekx+L
横のものを縦に直して、後出しの請求書ってのは
ありえないな。カスラックレベル。
259774ワット発電中さん:2010/04/02(金) 00:19:22 ID:DIJXhPyO
HEROさんどうしちゃったのかな(´・ω・`) 色々書いているけど、心が荒んでいるような感じだ。
4/2の今でもそのままだから、エイプリルフールじゃなさそう。

なんかでも、善意で公開してくれていたのをこんな事書き倒して有料化してしまうのは、今まで
無応援だけど感謝しつつ見ていた私のような人まで嫌悪感を与えてしまう。それとも嫌悪を抱く
私が変なのかな?
260774ワット発電中さん:2010/04/02(金) 01:01:03 ID:/bmlb88H
お金があるうちは、余裕を持ってられるけど
無くなれば、なりふり構ってられないだろうな

貧乏になるのは怖い。
261774ワット発電中さん:2010/04/02(金) 01:36:12 ID:wA/gac2s
メーカが出している無償オンライン資料の翻訳版が、出版社から有料の
紙書籍として市販されるケースはあるようなので、それはそれでアリかな。

訳があると概要を掴むのに便利だし、とっつきやすいから、書店にあれば
買うと思う。

それでも原文を読んでおく必要がある、という状況はあまり変わらない。
262774ワット発電中さん:2010/04/02(金) 02:28:19 ID:NvdRks4a
なんか大人げない対応だよなぁ。
まぁ、2chごときに呼応している時点でもうアレだけど。

でも、こういう豹変ぶりはハード・ソフト関連の有志には珍しくない展開だな。
263774ワット発電中さん:2010/04/02(金) 02:31:17 ID:N0eZGGjz
>>259
色々とあるんだろ。
察してやれ。
264774ワット発電中さん:2010/04/02(金) 03:27:52 ID:XGlAvOyi
まぁ色々あるって事は分かるけど、大人げないというのも否めなくはある
265774ワット発電中さん:2010/04/02(金) 06:54:26 ID:VRBcADCY
これだから半角カナを使う人間を信じることが出来なくなるんだよね。
266774ワット発電中さん:2010/04/02(金) 07:14:31 ID:PUXD4bHl
出版社からまとめて出してくれるのは助かるね
ついでに添削もしてくれると有難い。

AVRコア自体は枯れてきてるから、いいタイミングじゃないの
重複するレジスタの説明を省けば
普通の厚みに収まると思うよ。
267774ワット発電中さん:2010/04/02(金) 10:49:45 ID:FMSOHICl
>>265
なぜか、そうなんだよな。心が狭いから字も狭いのかしらん。
268774ワット発電中さん:2010/04/02(金) 11:45:36 ID:Lj2sBZsH
>20年近くに渡って技術情報の提供を行ってきましたが、
>現状ではこの先の生活が成り立たなくなり、
>また、関係方面の協力も得られず、
>本格的な求職(就職)を目指さざる得ない状況となりました。
今までどうやって食いつないできてたんだろう?

バナー広告を設置した上で、BBSで翻訳リクエストを受けて
日々更新・公開していればHit数稼げると思うんだが。
269774ワット発電中さん:2010/04/02(金) 13:22:42 ID:PUXD4bHl
バイク便やら仕事を転々としながらも
ブログを毎日更新してくれるような人もいるのに
もうちょっと元気がほしいところだ

無理強いするつもりはないから
止めるならやめればよし。
金寄越せってのはどうにもおかしい。
270774ワット発電中さん:2010/04/02(金) 13:27:09 ID:VvDO8v3i
同情するなら金をくれ

いたってスリランカ いやセイロンでございます
271774ワット発電中さん:2010/04/02(金) 13:58:15 ID:9wIQ2RI4
技術文書の翻訳って、かなり需要あると思うけどな
翻訳業って年齢あんま関係なさそうだし
ちゃんと就活すれば良い所入れるんじゃないかな
272774ワット発電中さん:2010/04/02(金) 15:09:57 ID:XGlAvOyi
せっかくここまでやってきたんだから、3万で→誰も使わない
なんて努力が無に帰るようなことにならないよう、しかるべき所に渡して欲しい
273774ワット発電中さん:2010/04/02(金) 17:09:08 ID:qzjCm+oq
月30kというのは「絶対こんな奴いない」という事が前提だろ。仕事で
言えば「お断り見積もり」みたいなもんで。
274774ワット発電中さん:2010/04/02(金) 21:16:30 ID:hv3/ugKG
従って、同情もしないし金もやらん。

てか、あそこのデータシートが有って良かったと思った経験が無いからどうでもいい。
275774ワット発電中さん:2010/04/02(金) 21:51:51 ID:NTP1hGU0
金の切れ目が縁の切れ目
276774ワット発電中さん:2010/04/02(金) 22:37:44 ID:qT/dLGld
>>274
どうでも良いならなぜそういう発言するかね。
窮地のときのこういう対応は、恨みとして残るものなんだよ。

俺はありがたかった。視覚的な配慮もあって、ナナメ読みできるし。
権利を売ったりしないで、ダウンロード販売とかでなんとかならないものか。


277774ワット発電中さん:2010/04/02(金) 22:45:44 ID:p81IKZsb
持ってると有料になるデータ全部セットをうpってみて
278774ワット発電中さん:2010/04/02(金) 23:21:08 ID:Lj2sBZsH
>>276
>>241 でも指摘されているけど、ATMELの許諾無しに商用は無理かと。
翻訳権を安価で得て、同人販売のルートに乗せるのは可能だったと思うが、
追い詰められ具合を見るに、中の人にそんな対応は無理だったと思う。
279774ワット発電中さん:2010/04/03(土) 00:53:06 ID:csHq/rCk
余裕が無くなったということはわかった、そして自暴自棄するという流れも理解した。
成果物はもうどうでもよくなったのだろう、おつかれさま。


個人的にはスイッチを切り替えて欲しかったところだが、片切スイッチだったようだ。
280774ワット発電中さん:2010/04/03(土) 00:55:59 ID:1F/gDRpY
金になる算段が付いたから後始末を開始したんじゃなくて、
これから金にしようと思ったのでとりあえず邪魔になりそうな要因の排除を始めたんだな

方法や認識はすごく間違ってるし、買ってくれるとこも現れてないのに
281774ワット発電中さん:2010/04/03(土) 05:33:41 ID:9b/rc58J
AVRから日本語データシートなくなったのか、ほかのマイコンを使うかな
282774ワット発電中さん:2010/04/03(土) 06:21:18 ID:039d14Yh
こりゃ下手にAVRを勧められなくなっちゃったな
今後はarduinoみたいなしょぼい用途でしか見かけなくなるのか
283774ワット発電中さん:2010/04/03(土) 08:06:53 ID:6ZtS8CMI
ATMELの本社あたりからクレームがついて「勝手に翻訳してんじゃねーよ,
やるなら金払え」みたいな事を言われてお怒りの有償化というなら
なんとなく納得できたり
284774ワット発電中さん:2010/04/03(土) 08:59:06 ID:VoZVZ8/P
AVRを初心者に勧める理由がまた1つ減った
今の俺ならためらいなくR8Cを勧める。

理系の堅物は追い詰められるとすぐに暴走するな
社会性に問題があるんじゃないか。
285774ワット発電中さん:2010/04/03(土) 09:13:50 ID:u8O4PSx1
本厄ねーと 使えないやつらは消えろ


286774ワット発電中さん:2010/04/03(土) 10:46:41 ID:VoZVZ8/P
選民意識丸出しの厨がきた
287774ワット発電中さん:2010/04/03(土) 10:49:58 ID:Dwx91ZYF
>>285
好奇心に目を輝かせて必死にがんばる中学一年生にそれが言えるか?
別に厨房がAVRで電子工作できなくなっても構わんと思うかもしれんが
結局そういう裾野が狭くなって、草の根レベルの活動が衰退するのは
長い目で見れば大きな打撃だと思う
288774ワット発電中さん:2010/04/03(土) 11:14:25 ID:xbBAo39W
AVRもArduinoも解説ページなり書籍なりは、沢山あるから厨房の入門者レベルの資料は大丈夫じゃないか?
289774ワット発電中さん:2010/04/03(土) 11:15:20 ID:uLCH4A4l
とりあえずあーだこーだ言わないで、代替のデータシート翻訳版作るっていう人はいないのかな
他力本願で申し訳ないんだけれど、データシート作るって言うなら申し訳程度に協力する
確かに高校の英語+専門用語さえあれば英語データシートはほぼ理解できるんだけど
英語を読むと言う苦労を趣味に費やしたくないのは本音
290774ワット発電中さん:2010/04/03(土) 11:21:34 ID:1F/gDRpY
別に電子工作する中学生は減らないけどな
PIC勢力がさらに増えるだけで

βvsVHSみたいな、いい物なのに流行らないもどかしさを
さらに加速する動きだから過剰反応している
291774ワット発電中さん:2010/04/03(土) 11:32:25 ID:xbBAo39W
>>289
ノシ
世間の需要と自分の実益(そのチップにたいする関心度)が
バランスとれるなら、ある程度続けられると思う。
一番、日本語化の需要があるのって、どのデータシートですかね。
292774ワット発電中さん:2010/04/03(土) 11:36:29 ID:6mL+Dard
アトメルは日本市場プライオリティ低いのかね
293774ワット発電中さん:2010/04/03(土) 11:43:31 ID:uLCH4A4l
>>291
ATTiny2313とATMega168あたりが入手性もよく日本でよく使われているんじゃないんでしょうか
これらをベースにしてあとは機能とかレジスタの違いとかを記述していけば大丈夫ではないかと
こういうのをデータベース化して参照することが出来れば本家のデータシートよりよっぽど使い勝手が
よくなると思う
294774ワット発電中さん:2010/04/03(土) 11:48:15 ID:VoZVZ8/P
>>292 アトメルは日本には興味なさそうだな
中国とかそのあたりが好きそうだ



295774ワット発電中さん:2010/04/03(土) 11:57:34 ID:vpw5SBXm
>>287

英語嫌いでもいいけど 日本語じゃないといやだという発想はだめのもと

毎日のようにやってれば わかるよ。

マニュアルがないから くれといったら 
ホイと渡されたときにフランス語だったのにはまいったが・・















296774ワット発電中さん:2010/04/03(土) 12:05:10 ID:VoZVZ8/P
はい苦労自慢きましたー
297774ワット発電中さん:2010/04/03(土) 13:01:33 ID:2P+aeYDC
こんなPICスレにいられるかっ
298774ワット発電中さん:2010/04/03(土) 13:12:16 ID:xbBAo39W
>>293
把握。

自分ではarduinoしか使ったことないので、週明けくらいから
ATmega168(doc2545.pdf)あたりをボチボチやってみます。
299774ワット発電中さん:2010/04/03(土) 14:24:24 ID:uLCH4A4l
では俺はAVRのデータシート検索用システムをいろいろ検討してみます
現行Wikiに載せてもいいけれどほかに使いやすい仕様書のシステムとかある?
PDFだとお手軽に見れないんだよね……
300774ワット発電中さん:2010/04/03(土) 16:22:35 ID:i7Fq7A9s
>>287
同意。
慣れてる人にとっては、データシート内で注目すべき点が分かってるから別に言語は問わない。
問題はそうじゃない人、特に経験のない人にとっては日本語になってるってのは大変敷居を下げるものだし
301774ワット発電中さん:2010/04/03(土) 17:14:10 ID:yEP7oR1C
>>300
言ってる事が矛盾してないか?
慣れてない人間は日本語で読んだってチンプンカンプンだぞ。日本語だから敷居が下がるという
のはあんまり正しくない。

それよりも「とりあえずココを読め」的な抜粋(Summaryじゃなくて・・・あれは、チップ選択の時の
参考だから)があれば良い。本当の初心者にとっては、この抜粋が母国語であれば最高なんだけどな
302774ワット発電中さん:2010/04/03(土) 17:39:41 ID:e1PeOsA6
日本語ってだけでだいぶと読みやすいが
それだけじゃダメなのか?
303774ワット発電中さん:2010/04/03(土) 18:02:52 ID:R3qRnhWb
3万/月ってイヤラシイなwww
304774ワット発電中さん:2010/04/03(土) 18:15:56 ID:VoZVZ8/P
>>299 チップ毎に機能一覧がでて、その機能を選ぶとレジスタとサンプルコードが出るといいな。

あとできればブートローダを一緒につくらないか。
mega88のようなリセットベクタを移動できるタイプ用と
tinyのようなできない用の2つで。俺はアセンブラできないから、手伝ってほしい。
305774ワット発電中さん:2010/04/03(土) 19:37:29 ID:uaDJFxvW
>>299
GoogleDocsとかどうよ?
306774ワット発電中さん:2010/04/03(土) 19:42:23 ID:uLCH4A4l
>>304
そんな感じのを想定している
やるならWebフレームワークかCMSで作りこまないと
余裕が出来たらやるかな
>>305
既存のPDFを共同で翻訳していくならそれでいいと思う
そこからメタデータに結び付けていくのは難しいかと
307774ワット発電中さん:2010/04/03(土) 19:51:11 ID:9b/rc58J
できればオフラインでも使えるといいな
308774ワット発電中さん:2010/04/03(土) 20:30:46 ID:VoZVZ8/P
オンラインでいいわ。常に最新版になると期待して。
ただ印刷はできるようにしてほしい。印刷禁止だと面倒。
309774ワット発電中さん:2010/04/03(土) 21:35:42 ID:i7Fq7A9s
オフラインのデータシートは凄い金額になるからなぁ
310774ワット発電中さん:2010/04/03(土) 22:23:30 ID:9b/rc58J
オンラインで全員で編集できたら営業妨害だとか言って消したり嘘書いたりして荒らされそうな予感
311774ワット発電中さん:2010/04/04(日) 01:29:10 ID:4tjjfbDE
まあ徹底バックアップは必要だろうな
でないと悲惨なことになるorz
312774ワット発電中さん:2010/04/04(日) 10:14:11 ID:vxumBffN
ID必須にして、全バージョンに戻せるようにしとけばいい

それより、図はどうするんだ
313774ワット発電中さん:2010/04/04(日) 10:48:53 ID:sY82Btcj
こういう時こそAVR-Wikiを活用すべきだな
ちょっと考えてみる
314774ワット発電中さん:2010/04/04(日) 19:38:58 ID:CbL728G8
だいたいこの手の事は取りまとめ役がいないと収拾つかなくなるんだよね
315774ワット発電中さん:2010/04/04(日) 19:53:29 ID:QELyaK3e
こうなったら日本のAVRの権威に頼むしかないな・・!
316774ワット発電中さん:2010/04/04(日) 20:28:13 ID:o2Ul9EYv
英語と日本語だったら日本語のが読む労力少ないのは当たり前だしなぁ
317774ワット発電中さん:2010/04/04(日) 20:37:55 ID:sELNJBKq
>>316
そう?英語が達者なわけじゃないけど、マニュアルやデータシートに限って言えば、
書き方がパターン化されている分、英語の方が読むの楽だなぁ・・・
日本語の場合、訳者のレベルによっては酷いのがあるし。(結局原文見ないと
意味不明とか・・・)
318774ワット発電中さん:2010/04/04(日) 21:02:18 ID:MvKgmzLk
tiny2313でメモリが足りなくなったのでmega328使い始めた
すごい、空きメモリが減らない。標準ライブラリ関数とか普通に使える。なんだこれ
319774ワット発電中さん:2010/04/04(日) 21:21:41 ID:4tjjfbDE
>>317
横の+をクリックしたら原文が出るとか
320774ワット発電中さん:2010/04/04(日) 21:43:57 ID:l+FvLwiE
>>317
そう。その点では国産デバイスは時間の節約になる。最初から日本語で書かれて
いるから意味が通じにくい部分が少ない。
321774ワット発電中さん:2010/04/04(日) 22:42:55 ID:vxumBffN
ネットで公開されてるのだと、マウスオーバーで原文が出たりするな

単語をカタカナにするだけにするか、日本語の定訳があるかのガイドラインが要る
どっちかというと、不必要に日本語化し過ぎて意味不明になる
例: 直列プログラミング
322774ワット発電中さん:2010/04/04(日) 23:14:46 ID:d8mKSgxt
>>318
さぁ早く浮動小数点で三角関数を使って計算してLCDに表示してみるんだ!
323774ワット発電中さん:2010/04/04(日) 23:25:11 ID:2fUyyfx4
>>322
それ、遅くね?w
324291:2010/04/05(月) 00:23:56 ID:3nNz7sWY
>>321
> 単語をカタカナにするだけにするか、日本語の定訳があるかのガイドラインが要る

そうなんですよね。
ちょっと今日の空き時間に、わかりやすそうなI/Oポート(13章)とタイマー(14章)をみてみたんだけど、
いざ日本語にするとなると、結構迷う用語はいっぱいありますね。
読者の立場に立って、カタカナと意訳とどっちがわかりやすいかとか・・・

技術翻訳の正しい工程としては、まず用語集作りを念入りにやってから、翻訳者に作業分担して
粗訳→推敲→校正と進むんだろうけど、個人的な興味も勝って、泥縄的にやってみる。
一応、後の修正のこと考えて、翻訳用語集(簡単な辞書みたいなもん)は作っておきますね。

今日はとりあえず、寝ます。ノシ
325774ワット発電中さん:2010/04/05(月) 17:05:14 ID:jLGyOa3p
そのうち誰かさんが翻訳したものが紙媒体になって出版される
という筋書きだろ?
326774ワット発電中さん:2010/04/05(月) 19:55:53 ID:DtY3JTt4
紙ってったら
ttp://www.cqpub.co.jp/hanbai/books/37/37301.htm
のことも忘れないでやってな。

チュートリアル用なら「試しながら学ぶ〜」のほうが出来が良いせいで
データシートの日本語訳があったときは間に挟まれて微妙に出番なかったが
今なら用語の叩き台にもなるだろ。
327774ワット発電中さん:2010/04/05(月) 21:22:58 ID:tzd6By4A
PICの本を読み込んで、マイコンとはこういうものかと理解した上で
AVRのデータシートを読むとよく判る
328774ワット発電中さん:2010/04/05(月) 21:30:44 ID:0HpzZQ5L
AVR使ってからルネサスのR8Cを使ったら
実に細かく制御できることに感心。
同時にAVRのシンプルな構造にも感心した。

どっちを勧めるかといわれれば、日本人にならルネサスだな
Hewの無償体験版は高性能だから
329774ワット発電中さん:2010/04/05(月) 21:53:25 ID:aHRJDEL2
AVR推してる人ってちょっと変な人が多いしね
330774ワット発電中さん:2010/04/05(月) 21:59:58 ID:hXKtjzsP
マイコン入門者にはどこにでも売ってて簡単に買えることが重要だと思う。
PICとAVRしか選択肢がないのでは。
331774ワット発電中さん:2010/04/05(月) 22:12:29 ID:zWoQJJO6
>>330
それは賛同できないな。
購入できるところが少なくても、買えるのならば問題はない。
それより大切なことは、知りたいことを調べやすいことだな。
332774ワット発電中さん:2010/04/05(月) 22:44:34 ID:0HpzZQ5L
>>330 ルネサスのICなんてどこでも買える

それに下手にチップだけ手に入れても
周辺の電源やらを手で作ったら
余程なれた人でないと高くつくよ
333774ワット発電中さん:2010/04/05(月) 23:20:44 ID:HSBowyqP
オレは「始めるならAVRがいいよ」、なんて言ったことはないな。
「AVRならこんな楽しいものが作れるよ」、とは言ってるけど。
334774ワット発電中さん:2010/04/05(月) 23:28:21 ID:xqw7J7Px
つまりDIPのAVRでArduino最高って事だw
335774ワット発電中さん:2010/04/05(月) 23:34:29 ID:tzd6By4A
マイコンを使った電子工作という世界が楽しいのであって、
PICを使うかAVRを使うかは瑣末な差でしかない
仮想の初心者に敢えてAVRを勧める積極的な理由は何か
336774ワット発電中さん:2010/04/05(月) 23:46:42 ID:xqw7J7Px
>>335
本当に1から始めなければならない初心者だと言うのなら、
それこそ学研Japaninoの様なトレーニングキットを薦めるだろ。
JapaninoがMega168だから薦める訳じゃないよww
337774ワット発電中さん:2010/04/06(火) 00:17:30 ID:9XL3vLM+
自分330だが、なるほどな。
ちょっと視野が狭かったかもしれない。
338774ワット発電中さん:2010/04/06(火) 06:06:46 ID:FrN4Fw/T
>>335 レジスタやRAMが多くて、EEPROMもあって
アセンブラもCも環境が無料で用意できて、アーキテクチャが簡単
外部部品も極端にいえばVCCとGNDさえ配線すれば動くし

それとhero氏のデータシートも参考にできると書きたかったが
それは選択肢から落ちたな
339774ワット発電中さん:2010/04/06(火) 08:19:10 ID:I4b2ar5y
むしろavrを進めない理由がない
340774ワット発電中さん:2010/04/06(火) 13:44:46 ID:SKS/fUR/
PICはROMとRAMが細切れなのが勧められないんだよなぁ
AVRはヒューズの設定ミスったら使えなくなる罠が初心者泣かせだし
341774ワット発電中さん:2010/04/06(火) 15:06:37 ID:ZvIBvDs+
>>340
初心者の導入教育ではヒューズを書き換えさせない(ヒューズの書き換えを教えない)
342774ワット発電中さん:2010/04/06(火) 20:33:11 ID:VH1dU/sm
AVRやPICはRAM上のコードを実行できないんだよな
JITコンパイルみたいなことができない
343774ワット発電中さん:2010/04/06(火) 21:30:41 ID:+CREXv5s
>>342
それがデメリットになったことがある? ないよな。言ってみただけだよな。
344774ワット発電中さん:2010/04/06(火) 22:08:16 ID:qftDn62C
H8なんかは、フラッシュの書き込み保証回数が少ない(100回とか)
よって RAM上で実行できないと開発中にCPUチップを何度も交換する羽目に
345774ワット発電中さん:2010/04/07(水) 01:09:28 ID:jlpGMbwu
>JITコンパイルみたいなことができない
そんなことはない。100万回くらいJITコンパイル出来る。
コードの差し替えはそんなに回数要らない。
ダウンロードはシリアルかUSBで可能。
プロファイリングはホストPCのエミュレータでやったほうが良い。
346774ワット発電中さん:2010/04/07(水) 01:48:22 ID:3K+EaPRo
>>343
外部バスにRAM付けてもほとんど意味がない
>>345
フラッシュ書いてる間に電源落ちたら動作保障できないし
そもそもRAMに比べて遅すぎる
寿命も確実に縮む
RAM上で実行できた方がいいに決まってるだろアホ
347774ワット発電中さん:2010/04/07(水) 02:53:11 ID:po9NWC4P
H8とかスレ違い
348774ワット発電中さん:2010/04/07(水) 09:18:39 ID:j5h2skIq
>>346
RAM(データメモリ)上のデータをコードとみなして実行できることの
デメリットを考えたことある?そうすればAVRの合理性が理解できると
思うんだけど・・・
349774ワット発電中さん:2010/04/07(水) 10:46:54 ID:bhgBy78g
>>344
実際のところ、1件の開発に100回も書き換えないで済むだろう。

同じデバイスを色んな作品に使いまわして 「10種類の作品を作ったけど所有している
デバイスは1個だけ」 とか、そんなことないよな。
350774ワット発電中さん:2010/04/07(水) 11:52:14 ID:62DKhXBa
そうなんだけど利用者の心理からいってその差は大きいよね
とくに学習者にとって大きい(きっと自分はいろいろ試行錯誤するだろうと思って)
また買えばいいのに、たいした出費や手間でもないのに
いっぱい使える方が良いなとか思っちゃう

でマイクロソフトなんかがアカデミック版を安価に供給してることからもわかるように
現在の学習者のシェアは将来の市場のシェアを予言することになる
海外でAVRがヒットしたのは学習や開発環境の用意さ
とかのおかげだと思う
351774ワット発電中さん:2010/04/07(水) 11:52:20 ID:t8+blIbB
デバッグのためにアーキテクチャを変えるとか本末転倒だな
352774ワット発電中さん:2010/04/07(水) 19:14:13 ID:PXux6R2z
>H8なんかは、フラッシュの書き込み保証回数が少ない(100回とか)
書き換えていくと駄目になるかというのは確率的に決まるような
部分もあるのだけど,国内はお客さんとなる側の品質保証がかなり
うるさいところが多くて,回数をうたうとその回数を完全に満たす
ことを要求されることもあって,社内での規定もかなり厳しいんで
数値は相当控えめ。
公称値がやたらと多い海外メーカ品と比べても実力値では大差
なかったりする。
353774ワット発電中さん:2010/04/07(水) 19:28:53 ID:v7TCL4+L
大学に書き換え限度で死んだH8何個かあったな
354774ワット発電中さん:2010/04/07(水) 21:20:55 ID:ihWwOAqF
>>352
すごいね!!
355291:2010/04/07(水) 23:32:55 ID:DALkzpeH
>>326
これ、注文しました。(近くの図書館で借りようかと思ったけどなかったorz)
用語・訳語の参考にしてみます。情報どうも。

中間報告:
適度な難易度のタイマー/カウンター0の章(14章)を半分位、粗訳しました。
今は、べたテキストで翻訳文を書いています。
週末には、テキストかPDFで公開できるといいな、という感じです。
明日は、比較的時間取れそうなので、一気に進めたい。次は、13章ポートに行く予定。
この二つが、一番使いでのありそうな章なので、翻訳品質や使い勝手のフィードバックを
もらった上で、その次からは文書の頭からガリガリ行ってみようかと考え中。
356774ワット発電中さん:2010/04/08(木) 09:29:10 ID:b6yOpjlE
5年前に90S2313と90S8535に大ハマリしたものの仕事やらで中断してしまい、
5年ぶりにこの世界に戻り、浦島状態でスペックだけ見てMEGA88買ってきました。

さぁ日本語マニュアルみて楽しむぜ!
と思ったら翻訳の作者がヘソ曲げちゃったのか、これは残念だ・・・

たたかれるのを承知の上で・・・どうかお願いですから、
どなたか、mega系を固めてUPお願いできませんでしょうか。
本当に日本語マニュアルは有難かったので、ないと悲しいです
357774ワット発電中さん:2010/04/08(木) 10:33:22 ID:Qs9JJHYH
AVR 導入しようか検討してて購入寸前までいってたけど、今回の件で思いとどまった。
でも USB ホストつきで入手が容易なのは AVR だろうしなあ。悩むところ。
358774ワット発電中さん:2010/04/08(木) 12:42:56 ID:C0D3dyls
>>353
すごいな。さすが大学。

輸出仕様で、SHからAVR32に切り替えたが、命令の直交性は同じぐらいだね。
むしろ使いやすいかもしれん。
359774ワット発電中さん:2010/04/08(木) 21:53:53 ID:I1OsUGOR
AVR32を解り易く語ってくれ
360774ワット発電中さん:2010/04/08(木) 22:09:33 ID:/W3se2iN
おーい
361774ワット発電中さん:2010/04/08(木) 22:27:54 ID:X8ltpesA
お茶
362774ワット発電中さん:2010/04/09(金) 00:06:29 ID:C0D3dyls
>>359
熱くかい。冷ややかにかい。www
使用しているのは、AT32UC3A3256だが、魅力を関しているのは48QFPだな。
32ビット系で少ピンは少ない。
クロックは60MHzだが、実行サイクルは1、2。 DIV命令で今回はかなり助かった。
ARMの条件命令のようなコンパイラ特殊機能はないが、そのかわり素直で解りやすい。SH相当だ。

デバッグは、AVRmkUでOK、コンパイラ、デバッガーを含めた開発環境が無料というのが魅力。
フレームワークに関してSHは論外だが、ARMのようにどのスタイルを選択するかなんて悩む必要もなく
(Atmelだけだから当然か)Eclipse環境で使用ペリフェラルを自由に追加削除できるのも魅力だ。
かなり開発環境に力を入れているようだが、前回のMICROCHIP買収劇以降、ちと熱が冷めているようだ。

ま、使ってみた感じは悪くはないが、SAM3Uも販売開始になる事だし、Atmelが軸足をどこにもっていくかで
状況は変わるだろう。
個人的には、SAM3UのハイスピードUSBとDMAに魅力を感じている。



363774ワット発電中さん:2010/04/09(金) 01:16:41 ID:9dvQcMVk
>>362
続き

軸足の話は、AP7000の二の舞になるかの話。
フレームワークの使い勝手は、開発環境のなかでピカイチでないかな?
Eclipseが嫌いな人も多いようだから人それぞれだろうが。

当然クセもある。
RTCのDS3234に接続したのだか、SPIのCSコントロールに悩まされ、バースト転送を
あきらめた経緯がある。

//-----------------------------------------------------------------------------
// disassert CS after transfer data.
// single transfer only.
static void cs_disassert(void)
{
DS_SPI->CSR0.csnaat = 1;
}

他には、多ピン限定だが、外部メモリアクセスが楽なのも良い。
ATMeaga8515の流れだ。ATmega8515は、MKY40では御世話になった。

まぁ概してAVRの流れを汲んだ使いやすいMPUだ。一度使ってみてくれ。


364774ワット発電中さん:2010/04/09(金) 01:42:18 ID:9dvQcMVk
>>363
あっとそれから、このスレで日本語マニュアルが話題になっているようだが、
AVR32では、和訳の期待はできない。
最新のマイコンを使用する者は、それが障壁ではどうにもならないと心得よ。
俺のAVR32開発環境は、英語版Windowsに入っているぐらいだから、
押して知るべし。
365774ワット発電中さん:2010/04/09(金) 10:33:23 ID:7bIJmL/m
押して知るべしってどういう意味ですか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1123033751
366774ワット発電中さん:2010/04/09(金) 13:00:51 ID:7vsSynC2
>>365
マウスのボタンをクリックしてみりゃわかるよ
って意味じゃない?
367774ワット発電中さん:2010/04/09(金) 13:09:03 ID:SnXvsCdr
締め切りが迫ってきて初めて真面目に調べるって意味じゃない?
368774ワット発電中さん:2010/04/09(金) 14:06:42 ID:ByQTWeA0
駅のホームで…(以下略
369774ワット発電中さん:2010/04/09(金) 14:23:02 ID:cWWgs7Kj
AVR32はいいな。あとは値段の問題。
XMEGAもやすけりゃ量産で使いたいんだが
アトメルジャパンは売る気がぜんぜんないらしい。

設計で採用しなきゃ、自然に機種消滅したら終わるんだが
わかってんだろうか
370774ワット発電中さん:2010/04/09(金) 16:31:13 ID:Xz1ZH8EV
アトメルジャパンのやる気のなさは異常
371774ワット発電中さん:2010/04/09(金) 16:48:57 ID:gyOp66+H
ほんとだ、「アトメルジャパン」でググっても全然活動している情報が出てこないね

372774ワット発電中さん:2010/04/09(金) 23:49:48 ID:iLPGdGLx
今USBの使えるPICに習熟して、AVRライターを作る準備をしてるとこ
373774ワット発電中さん:2010/04/10(土) 00:04:23 ID:1iV9nXVL
>>372
昔と違うんだからPICにせよ、AVRにせよ、メーカの純正ライター買うほうが手っ取り早いと思うんだけどなぁ
374774ワット発電中さん:2010/04/10(土) 00:18:11 ID:szcEyCCH
翻訳の件、Atmelに確認しました?
375774ワット発電中さん:2010/04/10(土) 00:24:16 ID:wJS7kf18
はあ?
376774ワット発電中さん:2010/04/10(土) 00:40:43 ID:NuNqLsqr
AVRのpickit2相当って何?
377774ワット発電中さん:2010/04/10(土) 00:42:56 ID:1iV9nXVL
>>376
AVRISPmkII かなー 秋月でも売っているし(4000円)
378774ワット発電中さん:2010/04/10(土) 00:49:36 ID:RF4XLnVU
俺もAVR始めるとき328p 644p tiny2313限定のライタをPICで作ったぞ
なぜならそういうことが好きだから
379774ワット発電中さん:2010/04/10(土) 01:32:16 ID:yvxz6e/r
初心者にライタ作りは薦めないな。最初でやる気なくす。
380774ワット発電中さん:2010/04/10(土) 05:33:37 ID:IDeTMvG7
メーカ製ライタはデカくていや。
おれのは、USBメモリサイズ。
381774ワット発電中さん:2010/04/10(土) 06:56:30 ID:tlthC7ZR
>>374
いちおうATMELに「あんたのとこの著作物利用してこういうことしてる奴が居るんだが」
みたいな内容でメール投げといた。あとはATMELがどう動くかだね。

いまHEROのページ見直したら4/1に時と比べて余計に敵増やすような文章に変わってるな…
382774ワット発電中さん:2010/04/10(土) 08:25:00 ID:NuNqLsqr
・半角カナの積極的使用について
383774ワット発電中さん:2010/04/10(土) 08:46:04 ID:sFxeGnTC
>>380
メーカー製ライタは外黒人サイズ。
俺のはポークビッツ

まで読んだ。
384774ワット発電中さん:2010/04/10(土) 09:39:41 ID:lZAXLnn3
ふるいPC探してきてパラレルとかCOMに繋ぐしょぼいライター作るが王道じゃね?
そしてLED点滅させるのとかつくって飽きる
がんばりやさんは小さいナイトフラッシャーとかラーメンタイマーつくるくらいまで行く、そして飽きる
385291:2010/04/10(土) 10:21:09 ID:cCVCL63v
>>374
今新しく翻訳しているのについては、リファレンスとして、ある程度軌道にのったところで、アトメルに連絡してみようかな、と思います。
なんにもないところで、許諾の返事くれ、っていっても難しいだろうから。

アトメル側に著作権・決定権がある(けど、内容についての保証はしない)ことを前提に、
二次著作物としての無償での公開許諾(というかお目こぼし)をなんとかもらえないかと考えていますが、
どう判断されるかはなんとも。
386774ワット発電中さん:2010/04/10(土) 10:26:13 ID:oaopgNhO
ユーザーが増えるんだから禁止にするほうがどうかしてる
387774ワット発電中さん:2010/04/10(土) 10:48:56 ID:NuNqLsqr
お目こぼしすることをオフィシャルに示すなんてことは絶対にあり得ない
何も言わずにやるのが吉
うっかりつつくとはっきり禁止されるのがオチ
388774ワット発電中さん:2010/04/10(土) 11:08:02 ID:cCVCL63v
そうすね。とりあえずやっちまって、ビジネス上のめんどくさいことは後から考える。
389774ワット発電中さん:2010/04/10(土) 11:31:14 ID:1iV9nXVL
http://web.archive.org/web/*/http://reef.path.ne.jp/~hero/hero.htm
2年前のアーカイブしかないなー
390774ワット発電中さん:2010/04/10(土) 12:41:19 ID:DJQgjOCj
>>381
どこか変わったの?
391774ワット発電中さん:2010/04/10(土) 12:43:42 ID:yvxz6e/r
一応仕事でつかってるから、そこそこ何か書けるけど
この手の情報って、使う側が傲慢であることが多いのは昔からだしな
hero氏に突貫した馬鹿は視ねといいたい
でも、いきなり公開を止めるってのは大人気ないな

放置して以後更新分は全部別でやります
のほうがいいとおもうわ
全部CDに焼いてくれるなら買うし
3万じゃ買わないがな
392774ワット発電中さん:2010/04/10(土) 12:48:53 ID:AgV+zV4I
幾らなんでも以前のを消さないと云々ってのは無理だろ
そもそもダウンロード禁止とか書いてあった?
これが通るならグーグル先生から幾らでも金引っ張れる
393774ワット発電中さん:2010/04/10(土) 12:57:12 ID:mZF46N3U
AVR32の使い分けの立ち位置を知るために、SH-2、ARM7と比較して語ってもらえると嬉しいかも
394774ワット発電中さん:2010/04/10(土) 14:00:02 ID:rcDgKLSF
>>385
情報そのものは著作物でははない。翻訳だと著作物になる。自分の表現にしてしまえば自由にできるようになって良いと思うのだがどうだろう。
許諾が必要だと、いつか今回のようになる可能性もあるし。
395774ワット発電中さん:2010/04/10(土) 14:57:42 ID:Kfu+K4ru
>>393
AVR32自体はCortex-M類似。
Uファミリはメモリ管理もMPUでCortex-Mを意識してる。
特にATMELのCortex-M3ファミリは充実度がまだこれからと言う事もあって
Cortex-Mより上位の位置付けかと。

ATMELのARMなSAMより周辺が色々付いてお得なのが売りだろうけど
製品的にもARM7より高速でARM9よりお手軽、MAC付きも安いよ!
という事で。
396774ワット発電中さん:2010/04/10(土) 19:10:21 ID:szcEyCCH
確認して損はないと思う。。。
もしかしたら、奇跡が起きてリンクはってくれたりしたりして。。。
397774ワット発電中さん:2010/04/10(土) 19:21:04 ID:szcEyCCH
知ってるかもですけどこんなページがあります。
http://www.atmel.com/general/legal_information.asp
内容一切眼を通してないので誤爆したらスマソ
398774ワット発電中さん:2010/04/10(土) 19:33:39 ID:O3+YSg4H
公認してしまうと何かあったときAtmelにも責任が及びかねないで公認することはまずない
ただし不利益を被る要素は何もないので、文句を言ってくることもまずない
黙ってやるのが一番だと思うが・・・
399774ワット発電中さん:2010/04/10(土) 21:53:13 ID:rfOiXt46
>>394
>情報そのものは著作物でははない。翻訳だと著作物になる。
>自分の表現にしてしまえば自由にできるようになって良いと思う

例えば、CQ出版社からトランジスタ規格表が発売されているが、
載っているデータ(耐圧・電流・速度等)そのものは著作物ではない。
 但し、あの表の構成や分類はCQ出版社が編集したもので、
編集著作物となる。
然らば、章構成も変えず翻訳しただけのアレは二次創作物と同様に、
オリジナルの著作権を侵害していると訴えられるリスクがある訳で…
(ATMELロゴはもろアウトだと思われ…)

ロゴを外し、本当に「自分の表現」で書き綴るとこまでやらないと
グレーゾーンから飛び出すのは無理だが、労力的に採りえる選択肢は
>>398だね
400774ワット発電中さん:2010/04/10(土) 22:04:21 ID:NuNqLsqr
>>397
Any other distribution to third parties is strictly prohibited unless you obtain the prior written consent of Atmel.
あなたがアトメルの文書による事前承諾を得ないなら、第三者へのいかなる他の分配も厳密に禁止されます。

だから、確認すれば「承諾すればok、さもなくばNG」という明快な回答が来るだけ
承諾を得る方法については、普通に契約なので、多分すごく面倒だし、
個人に対して承諾なんかしない
401774ワット発電中さん:2010/04/10(土) 22:06:05 ID:Nl3BsGKX
ある意味敷居が高い方が、変な人(含みナシ)が増えなくて良いと言えば良いんだけれど
そのスレッショルドでの問題点がモロにHERO氏の問題点でもあるんだよな。(送り手受け手双方で)

ATMELの日本法人が仕事をすれば、解決という話ではあるのだが。



まぁ今更無理か
402774ワット発電中さん:2010/04/10(土) 22:34:49 ID:mZF46N3U
>>395
すげえ分かりやすかった。へーかなり興味深いな。
CortexMを意識してるのは結構つかいやすそう
403774ワット発電中さん:2010/04/11(日) 11:54:02 ID:LrrND4q/
>>400
その前のセンテンスが抜けてる

You may distribute free copies of the documentation available at this website
only to customers and prospective customers of Atmel's products.

あなた達はこのウェブサイトにあるドキュメントを自由に配布してよい
ただし、Atmel製品の顧客もしくは顧客になる見込みのある者に対してのみ

「Any other third parties」はAtmel製品顧客以外の、って意味では
404774ワット発電中さん:2010/04/11(日) 11:56:26 ID:LrrND4q/

×Any other third parties

〇Any other distribution to third parties
405774ワット発電中さん:2010/04/11(日) 13:57:27 ID:zb38mDre
そのまんま丸ごとコピーして興味ある人に渡すことだけが許可されている

You may not modify in any way any of the Materials contained herein
あなたはいかなる方法でもここに含まれたMaterialsのいずれも変更できません。

modifyには当然翻訳も含まれる
406774ワット発電中さん:2010/04/11(日) 15:39:55 ID:ikcheNa5
再配布はオリジナルに限るってことですね。
しかし、HEROさんの利用規定に「現在、原作著作権者との取り決めによって、
再配布、営利目的または類する行為での使用、二次使用は禁止されております。 」
と書かれている。なぜ、本家は再配布を許可して、2次には許可されなかったのかが気になる。
407774ワット発電中さん:2010/04/11(日) 15:43:17 ID:1rcoGI7p
もうどうでもいいよ、さよなら
408774ワット発電中さん:2010/04/11(日) 16:29:13 ID:oDffxhXo
感情論やらはさておき、仮にAtmelから非公式なりで承諾を得ていたとしても、
『レディオテクニカ有志による 翻訳版』とあるので、もし業務時間内にやった
作業の成果物であれば、法的には翻訳物の著作権者はレディオテクニカが保持
していると判断されるかもしれない。

また、会社が関与や権利を放棄しても、少なくとも「有志」が複数なら、取り
分でもめる可能性があるし、実際に分担作業でタッチした文書毎に著作権を主張
してくる可能性がある。

そして、もっとも問題なのが、誰がHEROってペンネームで活動していたのか
世間的には周知されていないので、成り済ましの危険はおろか、たとえ本人
でも、それが本当か確認する手段がない。
409774ワット発電中さん:2010/04/11(日) 16:37:28 ID:R6xm2G3N
マイクロチップ テクノロジー ジャパン 株式会社 ⇒ Webあり

アトメルジャパン株式会社⇒ Web無し。

勝負あり!!
410291:2010/04/11(日) 17:19:30 ID:NScvkEES
今週は、14章の8bit timer/counter0 だけですが、HTMLでの公開準備出来ました。
訳語は、CQの書籍が届いたときにはほとんど完了していたこともあって、自分の独自訳語のままです。
「とりあえず、やってみた」という感じのチラシの裏ですが、ご意見など頂ければ助かります。

ttp://awawa.hariko.com/chira-ura/index.html
411774ワット発電中さん:2010/04/11(日) 17:23:32 ID:NScvkEES
補足。いちばん、下に小さい広告がでちゃいますが、
今借りている無料レンタルサーバー屋さんによる自動挿入なのでご勘弁。
どこかもっといい場所あったら教えてください。
412774ワット発電中さん:2010/04/11(日) 17:59:15 ID:ikcheNa5
http://www.atmel.com/dyn/careers/career_location.asp
ここ見ると東京と大阪に営業があって、東京では開発もやってるらしい。
413774ワット発電中さん:2010/04/11(日) 18:00:58 ID:ikcheNa5
>>410
乙です。
414sage:2010/04/11(日) 22:26:25 ID:cGBASXP+
>410

キレイですね。HTMLのほうが見やすくて好きです。
ただ、本文では「102ページを参照してください」のように
参照先をページ番号で指定してますが、
そこはどうやって解決するんだろう。
415774ワット発電中さん:2010/04/11(日) 22:54:08 ID:KOa5ok6j
ハイパーリンクでアンカー指定すればよかろ。
416774ワット発電中さん:2010/04/12(月) 19:49:09 ID:6365ISZS
今日から2313で遊んでるとこ
スイッチとLED付けてみた
プルアップ抵抗要らんかったのかー
417774ワット発電中さん:2010/04/12(月) 20:37:36 ID:xpOIDE1+
俺も昨日から秋月で買った一番やすいやつtiny13aで遊んでんだけどwinAVRって最適化で時間稼ぎの馬鹿ループを消すのな
最適化だから消しても良いんだけどそれが立ち上げたときのデフォの設定ってのはどうなの
こういうもんなの?
短いソースなのにLEDが点滅しなくてめっちゃ悩んだ
418774ワット発電中さん:2010/04/12(月) 20:43:02 ID:BzN+3czX
>>417
答えるの面倒だからここで聞いて

GCCについて part9
http://pc12.2ch.net/test/read.cgi/tech/1246059290/
419774ワット発電中さん:2010/04/12(月) 20:48:40 ID:MzWUst3l
いやGCCが最適化で無駄ループ消すのは知ってるよ
俺が言いたいのは 
何もそのオプションにして置かなくても良いだろ マイコンの開発なんだから
って話だよ

それも強固に主張してるわけではなく
「それともそんなもんなのかねぇ」 くらいでw
420774ワット発電中さん:2010/04/12(月) 20:58:41 ID:318kvrnY
マイコンだからこそ最適化してもらわないとプログラム領域が足りなくなるんだが
・無駄っぽいけど意味があるかもしれないから残して大きなバイナリに
・無駄っぽいのは明示的に示さないと消して小さなバイナリに

どっちが良いかは人それぞれかも知れないけど、少なくとも作者は後者を選んだだけじゃね
421774ワット発電中さん:2010/04/12(月) 20:59:49 ID:BndBY9Cp
オプションで抑止すれば
422774ワット発電中さん:2010/04/12(月) 21:08:55 ID:SAm/rOSW
時間稼ぎ用ループのカウンタ変数にvolatileを付けておけばいいんじゃね
423419:2010/04/12(月) 21:15:22 ID:QxeEX2u0
>420-422

みなさまのご意見まさに正論 
私が間違っておりました 
スレ汚し申し訳有りませんでした
424774ワット発電中さん:2010/04/12(月) 21:36:07 ID:QdJZeryF
組み込みは始めたばっかりかな?
PC アプリじゃ volatile なんてまず使わんしねえ。
425774ワット発電中さん:2010/04/12(月) 22:35:54 ID:/Aec4tpR
C言語においてGCCはおそらく最も最強なコンパイラだと信じてる。
426774ワット発電中さん:2010/04/12(月) 22:56:40 ID:UGcnypI3
Web系やPCアプリじゃ許されても、組み込みでvolatile知らないのは許され
んだろ。volatile指定してるのに最適化でループ消したら、gccでも何でも
叩いていい。
427774ワット発電中さん:2010/04/12(月) 23:07:19 ID:SAm/rOSW
とりあえず叩いておこうか
http://www.jpcert.or.jp/sc-rules/c-dcl17-c.html
428774ワット発電中さん:2010/04/12(月) 23:20:30 ID:8RLHcaBr
>>423
まぁそうイジけるなよ
と言うのも、自分も最初同じ理由でハマッたから叩けないw

とりあえず #define nop __asm__ volatile("nop") で省略されないNOPを定義しとくと便利
あと、割込みでピンを読み込んで、メインループで処理しようと思った時に言うこと効かなかったのも困った
結局>>424 が言うように volatile なんて知らねーよ・・・ってことだった

組み込みなりの面白さはあると思うよ
住人も組み込みなりの人種が多いけど
429774ワット発電中さん:2010/04/12(月) 23:42:57 ID:MZi8OaQR
>>426
割り込みでフラグ立つのをループで待つときも
volatile必須ですよね。
430774ワット発電中さん:2010/04/13(火) 00:15:30 ID:mOmKzxLV
Wikiの「ここからはじめよう」は上から全部読んでおいたほうがいい。
ただ、古い情報と新しい情報が混ざっているので鵜呑みにはしない方がいい。軽く怪我するからw
431774ワット発電中さん:2010/04/13(火) 00:17:04 ID:WZJv/CYn
割り込み待ちとかwait関数とかはRTMで多少は解決するので
WinAVRとかAVR Studioとかで簡単なRTMを標準サポートして欲しいとか思わなくもない。
432774ワット発電中さん:2010/04/13(火) 06:57:21 ID:AZpeTGJE
winavr無くてもavr studioでgccが選べるけど、winavrは何の為に入れるの?
433774ワット発電中さん:2010/04/13(火) 07:13:55 ID:WI7DoE2W
avr studioにはプラグインは入ってても
gcc本体ははいってないんだぜ
434774ワット発電中さん:2010/04/13(火) 07:56:51 ID:5Xl/Uo2k
volatile と言えば、Delay用関数に付けなくてハマったことがある
435774ワット発電中さん:2010/04/13(火) 08:19:43 ID:qxBQzm16
>>427
単なるバグなのか、例によって gcc が勝手な拡大解釈で実装されている
可能性もあるけど、volatile とconst を併用した場合の挙動って、案外
言語仕様上は未定義だったりしないのかな?

#define HOGE_STAT_REG     (*(volatile const char *)0x12345678)

なんて定義をして ステータスレジスタ等、Read Only レジスタへの書き込み
コードを書くとエラーを出す気を利かせたつもりが、肝心のステータスレジ
スタ読み出しで最適化の禁止が無視される可能性があると。

自分では直接書かなくても、コンパイラ添付のレジスタマクロ定義で使われ
る可能性があるから使うヘッダに目を通したほうがいいね。
436774ワット発電中さん:2010/04/13(火) 09:37:24 ID:cHOqW9iB
ヴァラタルって発音するが、脳内ではボラタイルと言っているw
437774ワット発電中さん:2010/04/13(火) 09:54:30 ID:VOQBSuwF
>>427
volatileの使い方がまちがってるような
438774ワット発電中さん:2010/04/13(火) 13:24:39 ID:qxBQzm16
>>437
volatile はNVRAM(Non Volatile RAM == 不揮発性RAM)の「V」と同じで、要は
自分のコードで書き込まなくても、変数値が変化する可能性があることをコン
パイラに知らせるための修飾子。

だから、割込処理ルーチンや別スレッドなど、自分のコードが関知しない
プログラムで書き換えられる変数だけでなく、メモリ空間上にマップされた
SIOの受信完了フラグや、外部I/Oポートの状態を読むポート入力レジスタ
などに対しても、volatile修飾子を使うし、これらのレジスタは読取専用
で書き込みできないので、誤ったコードを書かないよう、同時にconst修飾
子を併用する使い方は現実のプログラミングとしてはありうる。

#define HOGE_STAT_REG     (*(volatile const char *)0x12345678)

と定義しておけば、

  HOGE_STAT_REG=0x55; /* 値(0x55)を読取専用レジスタに書き込む */

というコードは、コンパイル時にエラーではじかれる。 constを付けずに、

#define HOGE_STAT_REG     (*(volatile char *)0x12345678)

と定義したら、上記のコードはエラーにはならないが、実際のハードウェア
では期待通りには動かない。(書き込みできない)
439774ワット発電中さん:2010/04/13(火) 15:08:32 ID:EV+XeMAi
Google Docs刷新 リアルタイム共同編集機能を搭載
http://www.itmedia.co.jp/news/articles/1004/13/news019.html
新たに加わった図形描画ツールは同日、ドキュメントと表計算のβ版は近日中に公開する。
440774ワット発電中さん:2010/04/13(火) 15:38:34 ID:PugUfCSM
なんだ、オンライン統合開発環境GoogleAVRが出たのかと思った・・・
441774ワット発電中さん:2010/04/13(火) 16:31:10 ID:dGL0CRw5
>>423
汎用コンパイラからすれば、コンパイラがコンパイルしたプログラム以外で勝手に変数変えられるとか
思っても見てないことだからそれが当たり前。
442774ワット発電中さん:2010/04/14(水) 20:07:40 ID:w9OylvdM
PWMでLEDでももやもやさせようと思って調べ始めたら、
思った以上に複雑だった
0Aだけ特別扱い?
443774ワット発電中さん:2010/04/14(水) 20:38:16 ID:Fc/hjJNB
そんなに複雑じゃなかったような気がするけど、0Aってことは第3世代のAVR?
せめてチップ名うp
444774ワット発電中さん:2010/04/14(水) 21:20:18 ID:EBlxClQn
>>442 ぜんぜん複雑じゃないとおもうけど

タイマー1を高速PWMモードで出力ポートにLEDつないで
OCR1Aの値を、カウンターリセットの時にちょっとずつ増やしたり減らしたりすればいい。
445774ワット発電中さん:2010/04/14(水) 23:00:26 ID:4jGPPPZy
tiny2313辺りでTOPがOCR0AになるPWM系モード(Mode5/7)でOC0AからPWM出力しようと
したとか?
446774ワット発電中さん:2010/04/14(水) 23:22:44 ID:w9OylvdM
2313なんだけどね
TOPをFFにしてdutyを0Aで決める設定はあったような
まだ読んでるだけでコードすら書いてないんだけど
コンペアレジスタは2つあるから、タイミングはてきとーでいい筈だと認識してた
まあ、対象がLEDだからズレてもいいんだけど
447774ワット発電中さん:2010/04/15(木) 11:51:55 ID:yzJnzXFu
もやもやLEDはやったことないなー。
Fast PWM ModeでDCDCコンバータでしか使ってないな。
他のモードも試したけど、どう違うのって感じw
448774ワット発電中さん:2010/04/15(木) 20:08:22 ID:AtBkSe4I
AVR Studioのエディタには
タグジャンプついてないんですか?
449774ワット発電中さん:2010/04/15(木) 20:35:51 ID:QEjWhcUW
winavrで配列のインデックスの変数にchar型を使うと
コンパイルでwarningが出るけど、出ないようにできる?
とりあえずは(int)付けてる
450774ワット発電中さん:2010/04/15(木) 20:56:52 ID:0cmhbB71
>>449
どんな警告か出るのか知らないけど、charだからではなくunsigned (値は
0以上)だからではなく、signed(負の値をとりうる)だからでは?

char cBuf[10]='0123456789';
char nIndex;
char cData;

nIndex=-1;
cData=Buf[nIndex];

みたいに。
451774ワット発電中さん:2010/04/15(木) 21:14:50 ID:/cJgTkEA
みたいに、というか無茶苦茶だな
酔っ払いか?
452774ワット発電中さん:2010/04/15(木) 21:24:01 ID:BzThgFqn
2313ってタイマーにエラッタあったっけ。
453774ワット発電中さん:2010/04/15(木) 21:52:59 ID:9jhQSTX9
>>447
基本的にはFastPWMで問題ないのだけれど、モータとかの場合は位相が狂うと困ることがある。
FusePWMでは比を変えても位相が狂わないようになっている。
>>448
タグジャンプはあったような気がする。むしろ、行番号が表示できないorz
エラーメッセージダブルクリックで飛べるのになぜなんだ。。。
454774ワット発電中さん:2010/04/15(木) 22:58:05 ID:moKyeiKo
>>450
signedどうたらの話ならint型もunsigned明示しなきゃだめってことだろ。
コンパイラとしてはインデックスは整数型想定してるんだから
型が違うとwarning吐き出すのは正しい。

castするなりコンパイルオプションでwarningレベル変えればいいだけ。
455774ワット発電中さん:2010/04/15(木) 23:32:42 ID:QEjWhcUW
実際みんなchar使ってるでしょ?
我慢してるかキャストしてるか抑制してるの?
456774ワット発電中さん:2010/04/15(木) 23:39:54 ID:K3kN9sU1
warning出るのってそんなに嫌?理由がハッキリしていて、実害の無いことがわかっているんだったら、
気にすること無いと思うんだけど・・・
457774ワット発電中さん:2010/04/16(金) 00:07:04 ID:QEjWhcUW
直さないといけないwarningが埋もれるから
458774ワット発電中さん:2010/04/16(金) 00:20:28 ID:3q2wXvHn
warningを ワーニングとかウォーニングとかって書かないあたり、
みんな対応が大人なんだな、と思うw
459774ワット発電中さん:2010/04/16(金) 01:22:08 ID:Ikqc6alQ
たかがプログラムになに我慢するんだか。
キャストがいやならint使えよ。
460774ワット発電中さん:2010/04/16(金) 08:07:31 ID:otkGvUnc
ウォーズニアック
461774ワット発電中さん:2010/04/16(金) 08:44:02 ID:xlZc1itN
>>457
warning 番号を指定して、出す出さないを指定すればいいよ。
462774ワット発電中さん:2010/04/16(金) 09:11:16 ID:OxQsm8SR
警告を気にしてたらWordで文書なんか書けネェ・・・

と、逝ってみるテスト
463774ワット発電中さん:2010/04/16(金) 09:58:48 ID:IeexDDM9
>>454
charって整数型じゃないの? short や longは?
464774ワット発電中さん:2010/04/16(金) 10:53:38 ID:dvoOOPt3
ああ、PWMはモーターだとHブリッジが貫通とかあるからか。
少しくらい大丈夫?w
465774ワット発電中さん:2010/04/16(金) 11:47:19 ID:waVgMx6P
昔、ICE200でデバッグ中にブレークボタンを押したら
偶然、最悪のアドレスで停止し、HブリッジのFETパッケージが破裂したことがある。
ハード処理とソフト処理の切り分けの大切さを学んだ
466774ワット発電中さん:2010/04/16(金) 15:07:02 ID:xlZc1itN
>>463
(一般的な、ただの)整数型 って意味だろ。汲んでやれよ。
467291:2010/04/16(金) 15:51:45 ID:ewMLAwhK
ちーっす。ATmega48/88/168 チラ裏翻訳
13章 I/Oポート追加しました。
ttp://awawa.hariko.com/chira-ura/index.html
468774ワット発電中さん:2010/04/16(金) 19:43:39 ID:KXd7UpYq
解消できない理由を説明できないwarningが一つでもあると
品質管理で不合格になる…と言って怒られたことがある。

初心者向けの書籍に書くまでもないレベルの常識だそうな。
469774ワット発電中さん:2010/04/16(金) 20:05:56 ID:Khox16t3
winavrって文字列の扱いって特殊なの?

char buf[17] = {'a', 'b', 'c', 0};
みたいにして
print(buf);
と渡すと通るけど、
print("abc");
みたいなことをすると、うまく動かないどころか暴走する
470774ワット発電中さん:2010/04/16(金) 21:36:17 ID:BBwuUG+T
>>468
Linuxカーネルとかwarningだらけの奴は製品に積めないな…

>>469
まず、そのprintなる関数を疑えよw
せめてプロトタイプ宣言ぐらい晒せ。

ついでにprint(PTR("abc"))だとどうなる?
471774ワット発電中さん:2010/04/16(金) 22:07:58 ID:Khox16t3
実はprint()ではそのポインタを使ってなくても暴走するのだ

void dummy(char *buf) {
sub();
sub();
}

みたいな関数をdummy("test") みたいに呼ぶと、
2回目のsub()を呼んだところで暴走する
訳が判らん
472774ワット発電中さん:2010/04/16(金) 22:27:20 ID:BBwuUG+T
>>471
それだとsub()の中身を疑うべきだな。
まぁchar *をuint8_tに代えてみるとかあるかもしれないが。

仮に、char *が駄目だとすると
string.hの関数全滅になってる筈だぞwww
473774ワット発電中さん:2010/04/16(金) 22:29:33 ID:BBwuUG+T
>>471
一応、void dummy(const char *buf)で宣言してみる価値はあるかも知れんが。
474774ワット発電中さん:2010/04/16(金) 22:34:33 ID:BBwuUG+T
後、メモリ使いすぎでスタック等を破壊している可能性もあるな。
475774ワット発電中さん:2010/04/16(金) 22:45:25 ID:xlZc1itN
破戒!
476774ワット発電中さん:2010/04/16(金) 23:23:09 ID:Khox16t3
sub()では(っていうかdummy()自体が)ポインタにノータッチなんだから、
sub()側に原因があると思えない
でも本当に無罪かどうか月曜に試してみる
477774ワット発電中さん:2010/04/17(土) 01:13:18 ID:LlSom/1y
環境すら書いてないけど、tiny13A辺りのRAMが貧弱なやつだと、
ちょっとした関数呼び出しすらまずいことになるよ。
RAMが潤沢なmega328pや644p辺りで試した方がいいね。
あと壁があるとすればprog_charの扱いかな。
まあ最初はがんばれとしか。
478774ワット発電中さん:2010/04/17(土) 06:28:31 ID:K4pT+pbU
まさにそのへんなんだけどね
ターゲットは2313で、関数を呼び出した瞬間に暴走するあたりから、
スタック絡みっぽい雰囲気はすごくあるんだけど、
そのへんってコンパイラがきっちり管理してくれないの?

呼び出しの段数は
main -> print -> putc -> send -> send4 -> _delay_us
で5段くらい
多過ぎ?
_delay_usは呼び出しじゃなくて展開だっけ
479774ワット発電中さん:2010/04/17(土) 09:04:17 ID:tDSFiUC3
avr-gccで使えたかどうか知らないけど、gccって関数毎のスタック消費量
を計算してくれるオプションかツールってなかったっけ? 案外、割込許可
のタイミングや、割込処理がマズくて死んでいるとかないの?

普通は、もっと簡単で確実に動く処理だけで固めた無限ループを廻して通信
モジュールをデバッグして切り分けとかすると思うけど。

例えば、

  for(;;)
    putc('A');

とか

  char c;

  c='A';
  for(;;)
  {
    putc(c++);
    if(c>'Z')
      c='A';
  }
480774ワット発電中さん:2010/04/17(土) 10:03:30 ID:c4LfXPbV
char buf[17] = {'a', 'b', 'c', 0};
print(buf);

print("abc");

だと,文字データが置かれてる場所が違ったりするからな
481774ワット発電中さん:2010/04/17(土) 10:08:02 ID:Qn/nFB1E
>>479
悲しそうなAAに見える
482774ワット発電中さん:2010/04/17(土) 10:28:58 ID:KDBPgG10
なんだかんだいって実はそのprintやsubがおかしかったですに一票
avrstudioのシュミレーションでスタックオーバーフローとか
わからんもんなの?
483774ワット発電中さん:2010/04/17(土) 10:41:40 ID:hjDxhXw3
>>478
スタックが溢れると、静的変数やヒープに確保したメモリ領域が壊れるから、
不可解な動作をするようにみえるよ。
C言語はメモリ管理についてはプログラマ任せだから自分でやるしかない。

以前ATtiny2313で作ったものにstatic変数を少々多めに使ったものがあるけど、
関数呼び出しの階層は2段階以下に制限してた。
(ローカル変数をあまり使わない関数でも3段階くらい)
プログラム領域が無駄になるけど静的関数にして呼び出し階層を減らしたりとか。

ちなみにそのプログラムはchar型の静的変数をあと4つくらい追加すると
動作がおかしくなるのでもう拡張できない。
484774ワット発電中さん:2010/04/17(土) 13:13:53 ID:K4pT+pbU
シミュレーションでどんな風にスタックを使うのか調べてみないとな
単に戻りアドレスを記録するだけじゃなくて、他にもいろいろ保存してそう
変数も大して使ってないから領域は有り余ってる筈なのに
485774ワット発電中さん:2010/04/17(土) 13:16:08 ID:tDSFiUC3
>>483
そういうのって、コンパイラやライブラリのバージョンを変えたら、
もうダメポになったりしない?
486774ワット発電中さん:2010/04/17(土) 14:02:56 ID:F14XF3Un
>>485
だめになるからバージョン指定付き。makefileのコメントに書いてる。
WinAVRのバージョンを上げてないのでまだビルドできるはずだけど、
書き込むときにはテスト済みのhexファイルしか使ってない。

というか、ソースファイルの中に開発環境の情報をコメントしておくのが
普通じゃない? AVRに限らず、PC用のプログラムでもそうしてるけど。
487774ワット発電中さん:2010/04/17(土) 16:35:46 ID:Lo12N2gN
>>484
ATtiny2313のメモリは、128byteしかないからね。
スタックに使える量=128 - 静的変数すべて
ローカル変数はスタックに置かれるから、main関数と
mainから呼び出した各階層の関数内ローカル変数分減算。
(実際はレジスタに置かれるけど、その分のレジスタがスタックに
退避されるから同じ)

それから、呼び出した関数1つごとに、引き数の変数分+α
レジスタが退避されたはず。どの範囲だったか思い出せないけど、
関数を呼び出すごとに必ず退避されるレジスタがいくつかあるんだ。
あとは戻り先のアドレスね。

実際はレジスタ上に割り当てられたままの変数もあるから
もう少し使えるんだけど、上のは大ざっぱな計算だからね。
2313はメモリを節約する書き方をしないとすぐに空きがなくなるよ。
488774ワット発電中さん:2010/04/17(土) 17:02:17 ID:LlSom/1y
>>478
正確なところは.init3でRAMをデバッグ文字で埋めて、
実行時にRAMを全てダンプしてみれば判る。
関数毎のスタック消費量は.lssファイルで見積もれる。
最低限スタック消費量は見積もれないと、
少メモリのAVRでまともなプログラムは作れない。
重要なのはgccの出力結果を確認すること。
ノウハウとしては、可能であればインライン修飾子を付けて
関数呼び出しによるメモリ消費量を減らしたり、
ローカル変数を使わず、変数は可能な限り外に追い出すとか、
スタートアップを自作するとか、ライブラリ化は避けて
マクロ化するとか、昔のローテクが有効なんだよね・・。
AVRのアセンブラは簡単だからすぐ覚えられると思うよ。
最初はpushやcallの数を数えてけばいい。

>487
レジスタがスタックに退避されるのは、
基本的にローカル変数が関数を跨ぐ場合だけだよ。
何も考えずに書くとほとんどの場合当てはまるけどね。
489774ワット発電中さん:2010/04/17(土) 20:05:11 ID:K4pT+pbU
なるほどー
なんかわくわくしてきたぞ

つか、プログラム用のメモリとスタック用のメモリの大きさを決める設計段階では、
あんまりC言語の使用は意識してなかったのかな
適当にコンパイルしてみればバランスがおかしいことに気付いただろうに
SRAMをだいじに、のモードでソース全体を見直してみる
490774ワット発電中さん:2010/04/17(土) 20:11:24 ID:E3QDru9s
てか、組み込み用CPUのファームを、特にCみたいなコンパイラを使って
PC用プログラムを書く流儀で書いたら破綻するのは当たり前・・・
491774ワット発電中さん:2010/04/17(土) 20:13:12 ID:3FPvdyi/
>>468
常識だね。
なんか具体例がどっかで示されてたが普通に
問題があるプログラムでもWARNING1つでコンパイル通ってしまってたからやばい
492774ワット発電中さん:2010/04/17(土) 20:20:49 ID:hguE5Dzq
>>488
ローカル変数を外に追い出すのはどうだろう
スタックはともかくプログラムメモリサイズも速度も不利では?
493774ワット発電中さん:2010/04/17(土) 22:46:53 ID:K4pT+pbU
>>490
そかな
そうじゃない組み込み用の方が圧倒的多数な気がするけど
494774ワット発電中さん:2010/04/18(日) 01:07:19 ID:t0P0iA1b
mega328pすげーな
ChanさんのFatFsがフルスペックで楽勝で動く
こんなんあると音楽プレーヤーとか作りたくなってしまう
ちっちゃくて軽くて少ないピンでドライブできる液晶モジュール無いかな?
495774ワット発電中さん:2010/04/18(日) 01:09:47 ID:hT5Mhgfp
i2cのLCDがストロベリーリナックスにあった気がする。
496774ワット発電中さん:2010/04/18(日) 08:27:38 ID:RsVBy3Z+
>>494
aitendoによりどりみどり
497774ワット発電中さん:2010/04/18(日) 09:23:02 ID:rmEb1ifs
AVRってどこの国のマイコン?
498774ワット発電中さん:2010/04/18(日) 12:15:00 ID:QHTStd8Y
AVRWRTが何時のマニかmega328pに対応してる。アップデートヽ(´ー`)ノマンセー
499774ワット発電中さん:2010/04/18(日) 19:30:43 ID:kr/ir0JR
>>492
初期ののマイコンだと、ローカル変数の方がクロックがかかった
グローバル変数にしておけばアドレス固定で読み書きできるが、
スタックを使うとスタックポインタの操作の分だけ重いようだ

AVRはどっちも2クロックっぽいから、スピードは変わらないと思う
500774ワット発電中さん:2010/04/18(日) 20:43:50 ID:t0P0iA1b
>>499
まぁ何度もスタックに逃げてるようなのは外部に追い出せば効率いいだろうし
レジスタ占有してるようなのは逆効果だし
ケースバイケース、もしくはアセンブラで書けってことかな
501774ワット発電中さん:2010/04/19(月) 12:01:39 ID:Df/NJryL
bluetoothを使ってPCからAVRの制御なんか手軽に出来ないかなと調べ中で
安く簡単に出来るようなこと紹介しているサイトないですかね
502774ワット発電中さん:2010/04/19(月) 12:24:32 ID:xClvxA3E
avrwrt、もうバージョンアップされないのかと
半分あきらめていましたがこれはうれしいですね。

503774ワット発電中さん:2010/04/19(月) 12:59:01 ID:Vq73VKKs
>>499
AVRの場合、レジスタが多いからローカル変数にしておくと
RAMを使わない場合が多いよ

504774ワット発電中さん:2010/04/19(月) 16:25:53 ID:Zn35fnaL
まあリーフ関数ならね
505774ワット発電中さん:2010/04/19(月) 20:22:34 ID:Phu41tEu
シミュレートしてみると、変数がinvalid locationだらけで、見るからに異常だった
原因は、deviceが違ってた
atmega128になってた

そんなんで中途半端に動いて、ちょっと追加したら暴走するという
微妙な不具合になる方がむしろ不思議
506774ワット発電中さん:2010/04/19(月) 22:36:14 ID:CqPc1HxM
I/Oレジスタのアドレスやレジスタのビット割り当て、割り込みベクタなどに
下位互換性がある部分しか使っていなければ、ごく普通かと。

実デバイスならメモリ容量不足になるコード量でも、mega128なら余裕が
あるから、リンク時(実際はlssだっけ)にもエラーにもならない。

328p指定のコードでも、ROM使用量16K以下でRAM使用量1KB以下なら、168で
も動く。
507774ワット発電中さん:2010/04/19(月) 23:27:40 ID:Phu41tEu
変数のSRAMへの割り付けは互換性が無いみたいで、
一つだけ使ってたグローバル変数のアドレスは異常だった
それでも何故か動いてた
その後にコード中に文字列を埋め込んでさらにSRAMを使うと暴走
508774ワット発電中さん:2010/04/20(火) 01:39:16 ID:XDzZTPVS
ところで、なんでtinyシリーズってtiny2313にしかUARTないんだろう。
逆に、なんでtiny2313だけADがないのか不思議。
それに、tiny8313はなんで出さないんだろう。出たら馬鹿売れなのに。
tiny4313は名前だけで売ってないのはなんでだろう。別にいらないけど。
tiny8313ならRAM512ByteでSDカード使えるのに。
509774ワット発電中さん:2010/04/20(火) 05:35:32 ID:GDWR7hWg
>494>496
aitendoでこれ買ってきた。小さいけど面白そう。
ttp://www.aitendo.co.jp/product/1239
ttp://www.aitendo.co.jp/product/1707

あと>96のルーペも買ったが、想像以上に明るくてビビった。
見える範囲がちょっと狭い気もするけど結構いいじゃんこれ。
店頭にサンプル品あり。点灯も確認できる。
510774ワット発電中さん:2010/04/20(火) 05:39:08 ID:GDWR7hWg
aitendoは通販で、実店舗はCoCoNet液晶工房の名前だったな。
一応訂正。
51196:2010/04/20(火) 17:21:32 ID:LPgmH/3H
>>509
値段から考えたら、想像以上に良くできてるよな? ただ、思ったより
デカくて、全金属製で出来が良い分ズッシリ重かった。

ところで新アイテムも出ているようだけど、こっちを試した香具師いない?

ttp://www.aitendo.co.jp/product/2118
ttp://www.aitendo.co.jp/product/2161
512774ワット発電中さん:2010/04/20(火) 19:48:01 ID:6RQpyZNf
2313いきなり飽きてきた
PIC16Fあたりにない特徴って何だろう
とりあえずスピードかな
513774ワット発電中さん:2010/04/20(火) 21:59:42 ID:0ZDkNwBa
16Fと比べたらもっともあるだろ。。。
つられてしまったorz
514774ワット発電中さん:2010/04/21(水) 00:39:21 ID:ZI3r4rcp
>>509
上のいいな
さっきポチった
515774ワット発電中さん:2010/04/21(水) 01:31:18 ID:bzU6UcbT
CSTNだから見難いよ
516774ワット発電中さん:2010/04/21(水) 06:42:46 ID:nxzhA/3D
マイクロスコップ?
517774ワット発電中さん:2010/04/21(水) 19:28:42 ID:jWkRe8y4
>>511
45倍の方買ったよ。半田ブリッジのチェックとかにいいかもしれない
51896:2010/04/21(水) 19:46:33 ID:Vo7a6V3m
>>517
スコップの使い心地はどうですか?LED照明の角度とか。
519291:2010/04/21(水) 20:03:43 ID:op6/SmKa
これって、アキバの店頭で売ってる?
金曜あたりにいってみるかな。
520774ワット発電中さん:2010/04/21(水) 20:09:15 ID:bzU6UcbT
平日休みだったりするから
営業時間だけは確認した方がいいよ
521774ワット発電中さん:2010/04/21(水) 22:40:33 ID:xZmIxE37
mega168pをやっているのですがPWMが取り出せなくて困っています。
以下のプログラムを動かしています。しかし、実際にはポートからの信号がでません。
Low出力になってしまいます。タイマー1で普通の割り込み(CTC)はできたのでPWMだけがだめです。
アドバイスよろしくお願いいたします。

/* TARGET:atmega168p Clock:8Mhz */
#include <avr/io.h>
#include <avr/interrupt.h>
int main(void)
{
DDRB = 0xFF;
DDRC = 0xFF;
DDRD = 0xFF;
PORTB = 0xFF;
PORTC = 0xFF;
PORTD = 0xFF;

/*Timer1 fusePWM mode8*/
TCCR1B = _BV(CS12)|_BV(WGM13); /* クロックソースを256分周 */
TCCR1A = _BV(COM1B1)|_BV(COM1A1);/* PWMをピンから取り出す */
ICR1 = 0x00FF;

for(;;){
}
return 0;
}
522774ワット発電中さん:2010/04/22(木) 00:43:07 ID:e1GRWn4U
>>521
OCR1xは?
523774ワット発電中さん:2010/04/22(木) 01:39:43 ID:7V7CTYi2
OCR1A = 0x007F
OCR1B = 0x007F
で試してみるとかな
524774ワット発電中さん:2010/04/22(木) 12:55:12 ID:pf1BYLhJ
>>521
あれ、PINレジスタってデフォルト入力になってなかったっけ。
PWMするときは出力にした記憶があるが勘違い?
525774ワット発電中さん:2010/04/22(木) 16:15:43 ID:e1GRWn4U
>>524
>あれ、PINレジスタってデフォルト入力になってなかったっけ。
この表現もおかしいけど・・・
>DDRx = 0xff;
で出力に設定してますよ。
526774ワット発電中さん:2010/04/22(木) 17:43:17 ID:EAkrUW0Z
>>467 お疲れ様です

なかなかいいですね。できれば表が図でないとうれしかったのですが。
527526:2010/04/22(木) 17:55:18 ID:EAkrUW0Z
>>291 仕事ではmega88を使ってます。コストパフォーマンスが良いので。
最初に訳の候補にしたのは良いセレクトだと思います。

特殊な周辺装置はないと考えたら、あとはmega164/324/644pと
高速PLLを持ってるtiny261/461/861なんかが翻訳にはいいんじゃないでしょか

Hero氏もあまりやっていなかった事に取り掛かるなら
アプリケーションノートの翻訳と移植がいいんじゃないかと思います。
528774ワット発電中さん:2010/04/22(木) 19:28:11 ID:yuGyMpuk
仕事で使うマイコンってどれくらいの値段で仕入れてるもんなの?
digikeyと同じくらい?
529774ワット発電中さん:2010/04/22(木) 19:40:32 ID:O1A0PXGB
5年以上前の経験だが、Atmelは、5000以下だとどの代理店に頼んでも
秋月の半値以下にもならず、わりと高い印象。

ほかのチップなら、秋葉原価格の2割、3割くらいで入手できたが。
530774ワット発電中さん:2010/04/22(木) 21:34:42 ID:zMIdaTW4
531774ワット発電中さん:2010/04/22(木) 22:50:26 ID:KEOOH/Yl
中国は何でもあり
532774ワット発電中さん:2010/04/22(木) 23:43:18 ID:EAkrUW0Z
528 それは秘密です
533774ワット発電中さん:2010/04/22(木) 23:47:13 ID:+uhAkcA4
>>522-525
アドバイスありがとうございます。
今日は別のことをやっていたので明日検証させていただきます。
534774ワット発電中さん:2010/04/22(木) 23:49:11 ID:EAkrUW0Z
ダンボール肉まんに通じたものがあるな
535774ワット発電中さん:2010/04/23(金) 00:03:44 ID:+Ph95x8u
大体だな、上海万博会場入り口の所にある建物、どう見たってビッグサイ(ry
536774ワット発電中さん:2010/04/23(金) 00:17:22 ID:WH0YnEVa
537774ワット発電中さん:2010/04/23(金) 00:34:30 ID:m6AFhKmc
原文よく見てないけど、動か無いから分解してみたら
コアが入ってなかったって感じ?

リフローはんだの濡れ特性試験用のダミーICが流出したとかだったりして
538774ワット発電中さん:2010/04/23(金) 00:55:45 ID:uorjyPME
マーキングだけ変えて、他のICのバッタもんも作ってるんだろうな・・・こわいこわい
539521:2010/04/23(金) 21:41:36 ID:RJUn6jgG
まず、PWMはOCR1AでTOP値を決定するためモードを9に設定しました。
そしたら、波形が出ました。よくわかりませんが、モード8はだめみたいです。どうもありがとうございました。
540774ワット発電中さん:2010/04/23(金) 21:48:11 ID:m6AFhKmc
インベーダーが大ブームのとき、AY-3-8910がないがために製品を出荷できず、
そのとき8910の偽造品を製造した人は、あとでバレて東京湾に沈められた
541774ワット発電中さん:2010/04/24(土) 04:05:37 ID:O02QP4yJ
ok
542774ワット発電中さん:2010/04/24(土) 04:26:07 ID:Ke0pfxFl
プラスチックを溶かしてみたら、ただの銅の板がでてきた。ってことかな。
売ってるページのRelated Productsに
本物の328が並んでるのがなんとも言えないな
543291:2010/04/24(土) 09:43:55 ID:Q/u1jHrv
>>526
時間が取れたら直してみます。
ご意見どうもありがとうございます。

今週は、いろいろと時間が無くて更新なしです。
来週はできるかな。
544774ワット発電中さん:2010/04/24(土) 11:36:47 ID:oakbRMOn
>>291氏、お疲れ様です!
影ながら応援しています。AVR Wikiもなんとか使いやすくしたいですね
545774ワット発電中さん:2010/04/26(月) 23:22:09 ID:652IxHto
マイコン初心者です。
先日、千石電商でポケットAVRプログラマというライタを買ったのですが、
グーグル等で使い方を調べても、よくわからなくて困っています。

ドライバはダウンロードして設定もすんだのですが、肝心の書き込み方が
わかりません。

AVRstudio、WinAVRはインストールしてありますが、
ポケットAVRプログラマは使えないのでしょうか。

ポケットAVRプログラマでの書き込みかたを教えていただけると助かります。


よろしくお願いします。
546774ワット発電中さん:2010/04/26(月) 23:27:01 ID:jLuyCBBs
>>545
ttp://www.sparkfun.com/commerce/product_info.php?products_id=9231

まずは、ここを読め。全てはそれからだ・・・
547774ワット発電中さん:2010/04/26(月) 23:42:59 ID:uPVw6uWp
よくわからないものを何故買うのか
548774ワット発電中さん:2010/04/26(月) 23:52:26 ID:yWSvLs57
そんなレスはいらねえんだよ
質問者が困ってるんだから教えてやれ
549774ワット発電中さん:2010/04/26(月) 23:58:27 ID:652IxHto
>>545

ここは読んだのですが、結局ところ
どうしてもわからなくてこちらで質問することにしました。


>>547

もともと純正品を買うつもりだったのですが、値段の安さにつられて
買ってしまいました(ToT)
せっかく買ったのだから、しっかり使いたいです。


どうかよろしくお願いします
550774ワット発電中さん:2010/04/27(火) 00:02:34 ID:WlGq0NgB
よくわからんががんばれ。俺はmkII買っちゃったが、がんばれ。超がんばれ
551774ワット発電中さん:2010/04/27(火) 00:10:45 ID:5of1zRsP
わかりません、わかりません、って書いても、なにをやったらうまくいかなかったのか、
どこでつまずいたのか、質問者が書かない限りどうしようもないだろ。

それすら書けないような状態で、公共の掲示板に質問を出すことは
迷惑になることを自覚したほうがいい。
552774ワット発電中さん:2010/04/27(火) 00:42:17 ID:5Q8R+NU2
すみません。
もう少し具体的には、

・AVRstudio、WinAVRなどでポケットAVRプログラマを使う設定ができない

・どのような設定の仕方をすれば使えるようになるのか、はたまた、
 他にソフトが必要なのかがわからず身動きがとれない


といった感じで、検索等をしても解決策が見つからず、
失礼とは思いつつこちらで質問したしだいです。

自分はこういったところで質問するのは初めてなので、
おかしなところがあれば注意をしてくれるとたすかります


553774ワット発電中さん:2010/04/27(火) 00:45:32 ID:5of1zRsP
何を試して「設定ができない」という結論になったのか
ひととおりの設定を開いてみたのか

全部書いてみろ。

どうせ面倒だからなどの理由で全部試してないんだろ
554774ワット発電中さん:2010/04/27(火) 00:53:46 ID:aKOXrWRn
>>549
> To use this programmer, attach to a Windows machine and install the drivers listed below.
> Open a command prompt. Assuming WinAVR (and therefore AVRDUDE) have been installed, type:
> avrdude -c usbtiny -B 1 -patmega328 -U flash:w:main.hex

このぐらいは試してみたんだよな?
555774ワット発電中さん:2010/04/27(火) 08:12:28 ID:tKJr0JmB
>といった感じで、検索等をしても解決策が見つからず、
前例踏襲しか出来ないレベルなのに新しいものに手を出して
俺様の想像したとおりに動かないとか,前例が見つからないから
使えませんなんて言われてもな。
今後のこともあるし,前例がたくさんあるものを買い直
したほうが良いんじゃねぇの?

千石サイトに「メーカサイト」リンクがあって,
その先のメーカサイトで>>554の指摘のように目立つように
きちんと書いてあるものさえ読まないというのでは話にならんな.
556774ワット発電中さん:2010/04/27(火) 14:06:28 ID:cm+nexuV
多分、「ライティングのソフト」というものがあることを知らないんだと思う。
AVRDUDEが何か分かっていないから、書いてあっても何のことか分からない。
そういうレベルの初心者なんだろう。
557774ワット発電中さん:2010/04/27(火) 15:46:43 ID:9Iny4wLc
>>540
インベーダーはSN76477だったような。
558774ワット発電中さん:2010/04/27(火) 23:28:50 ID:5Q8R+NU2
<<545です。
やはり純正を買おうと思います。

ご迷惑おかけしました。
559774ワット発電中さん:2010/04/27(火) 23:59:33 ID:cm+nexuV
>545
>546のサイトに
>Based on Dick Steefland's USBtiny and Limor Fried's USBtinyISP.
と書いてあり、さらにリンク先USBtinyISPのサイトにSTK500 Compatibilityと書いてある。
AVR Studioで書き込めるっぽいし、試してみたらどうだ?

AVR Studioの[Con]や[AVR]のアイコンで[STK500 or AVRISP]を選択。
Portはとりあえず[Auto]で。ダメならCOM番号を順次試す。

もちろん書き込むべきhexファイルとターゲットのAVRは用意できてるよな。
560774ワット発電中さん:2010/04/28(水) 00:02:22 ID:YAlppqba
でもこの手の分野って入るのが一番大変だよね。
561774ワット発電中さん:2010/04/28(水) 01:11:19 ID:P0f40GmY
ポケットAVRプログラマは他の人が書いているように
コマンドプロンプトから
avrdude -c usbtiny -B 1 -patmega328 -U flash:w:main.hex
みたいな感じで書き込む。

ハード的にはHIDaspxと同じくTiny2313だけでUSBしているのでSTK500互換は
むずかしいと思うけど。
562774ワット発電中さん:2010/04/28(水) 07:48:49 ID:QQBIJikK
>>560
PICと違って、アトメルがジャップを相手にしないからな
563774ワット発電中さん:2010/04/28(水) 23:22:55 ID:PxEkETrO
書き込み端子に ISP と JTAG がありますが、メリット、デメリットはあるのでしょうか。
564774ワット発電中さん:2010/04/29(木) 23:40:16 ID:gXyzAOXS
>>563
JTAGの方が使うピンが多いっすよね。
565774ワット発電中さん:2010/04/30(金) 00:08:04 ID:9SNMBmlR
ピンの配列は秋月が正解な気がする
566774ワット発電中さん:2010/04/30(金) 01:25:03 ID:xgOnABd2
ISPはほとんどのデバイスでサポートしている書き込み方式。6ピン
JTAGはデバッグすることを目的としている。書き込みもできる。あまり対応デバイスが多くないのと10ピンがデメリット。
基本ISPでおk。JTAGで遊んでみたいなら純正でAVR dragonというのがあるからググってみて。
567774ワット発電中さん:2010/04/30(金) 16:03:09 ID:aOlP9oD9
V-USBを328P-PUで動かせている人いる?
2313-20PUで動いたんだけど、コード量が溢れたので手元にあった328Pに
差し替えてみたところ動作しない。

AVRStudio + WinAVR + AVRDUDEの環境で、
コンフィグのDevice指定を2313から328Pへ変更してコンパイルした(エラーなし。)
ピンを一致し直して、hexファイルのFTDI BitBangでの書き込みまではうまくいった。

ttp://hp.vector.co.jp/authors/VA000177/html/2009-10.html#af0e7fb1
>#define USB_INTR_VECTOR INT0_vect
コンパイル時エラーは変わらず出ないが、不明なデバイスとしてWindowsから認識される。
568774ワット発電中さん:2010/04/30(金) 16:28:04 ID:QkTSqiKu
v-usb 328-pでぐぐる
569774ワット発電中さん:2010/04/30(金) 18:15:46 ID:ZseUgAv7
>>568
V-USB 328Pでググったら先のページが出て、
usbconfig.hにある
#endif /* __usbconfig_h_included__ */
の直前に、
#define USB_INTR_VECTOR INT0_vect
を追記したのだが、それ以外にもあるってこと?

ググって出てくる
ttp://avrwiki.jpn.ph/wiki.cgi?page=%BB%A8%C3%CC5#p5
のiom328p.hの書き換えでは、
#define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */
が見つからなかった。
これのコメントを見ると、代替案としてusbconfig.hへの追記を提案してる。
570774ワット発電中さん:2010/04/30(金) 21:39:47 ID:6tjIUYxH
>>569
328P(20MHz)+VUSBでちゃんと動いてますよ。 USB信号の配線(D+/D-)とI/O
ピンの割り当てとusbconfig.hの定義はちゃんとあってます?

うちは、PD3(D-)とPD2(D+)に割り当てているんで以下の通り。プルアップ
は1.5KΩで3.3V Reg出力へ直結。

#define USB_CFG_PORT_IOPORTNAME D
#define USB_CFG_DMINUS_BIT 3
#define USB_CFG_DPLUS_BIT 2

クロックがデフォルトの12MHzじゃない場合、usbconfig.hの定義を変更
しないとダメ。

#define USB_CFG_CLOCK_KHZ 20000 // 20MHz
(or)
#define USB_CFG_CLOCK_KHZ (F_CPU/1000)

それと、出荷時状態では、動作クロックが内部発振になっているので、
まずはヒューズの設定から変えないと。

「#define USB_INTR_VECTOR INT0_vect 」は、SIG_INTERRUPT0が328Pの
ヘッダで定義されていないため必要ですが、あくまでINT0外部割込(328P
の場合はPD2)をUSBのD+に割り当てている場合。

別のピンに割り当てたら、割り込みベクタも変更する必要があります。
例えばD+をPD3にした場合は「#define USB_INTR_VECTOR INT1_vect 」等。
他にもソースや定数を変更しないとダメかも。
571774ワット発電中さん:2010/05/01(土) 01:57:46 ID:gu+jCRmW
>>570
レスありがとう。動いてますか。

USB D+ -> PD2と接続
USB D- -> PD3と接続

#define USB_CFG_IOPORTNAME D
#define USB_CFG_DMINUS_BIT 3
#define USB_CFG_DPLUS_BIT 2
ですね。

2313も328Pも12MHzのクリスタル使用しています。
Arduinoに乗ってたのを外したのでヒューズは、
h:DA l:FF e:05
です。
これだと8MHz以上のクリスタルを使えるはず。

>「#define USB_INTR_VECTOR INT0_vect 」は、SIG_INTERRUPT0が328Pの
>ヘッダで定義されていないため必要ですが、あくまでINT0外部割込(328P
>の場合はPD2)をUSBのD+に割り当てている場合。
ピンはあっているようです。

2313で動いていて328Pで駄目なので、
何か手違いを起こしているのかもしれません。
動作していると聞けたので、もうちょっと粘ってみます。
572774ワット発電中さん:2010/05/01(土) 08:25:27 ID:+Zz1akYD
ISP端子にJTAG-ICE MarkIIをつないでステップ実行等のデバッグはできますか?
それともJTAG端子のみ可能でしょうか。
573774ワット発電中さん:2010/05/01(土) 08:31:48 ID:Y+HvZbuf
ISPはかきこみだけ、JTAGは別。
JTAGがついているAVRにはISPは別についている。

リセット端子をつかっデバッグするのがdebug-wireだがやたら不安定
正直mega88のdebug-wireは使用に耐えない
574774ワット発電中さん:2010/05/01(土) 09:26:52 ID:gu+jCRmW
ttp://vusb.wikidot.com/troubleshooting
>8.- Don't compile for 'P' series chips - There is an issue in the driver where some interrupt tables are named in a way that isn't compatible with chips that have a 'p' after their name - i.e. ATmega168p, ATmega3280.
>This is tricky, since the code will compile, but just won't work.
>However, the 'p' series chips are binary compatible with their non-'p' cousins, so if you're working with an ATmega168p, compile for a regular ATmega168.
>The ATmega328p has no non-p variant, but it's binary-compatible with the ATmega168, so compile for the ATmega168.
Pと名前に付くチップは正常にコンパイルできたように見えるが実際には動かず、
この場合は、Pが付いていないチップとしてコンパイルすればよい。
ただし、328PにおいてはPがないチップがないのでバイナリ互換の168としてコンパイルを行うこと。

と読める(と読みたい。)
ええと、AVR StudioのExternal Dependenciesには
iom168.hがあるので168としてコンパイルされたと思うが、
はやり不明なデバイスとなる。
575774ワット発電中さん:2010/05/01(土) 12:46:35 ID:qiD/oouc
>>574
DEVICE=mega168(pなし)であれば、動くバイナリが生成されるし、DEVICE=mega168p
でも「#define USB_INTR_VECTOR INT0_vect 」さえ定義すれば、ちゃんと動くバイ
ナリが生成される。 生成されたバイナリは、どちらもクロック周波数が同じなら
328pに書いても動く。VUSBのリファレンスプロジェクト「PowerSwitch(2008-02-28)」
で確認済み。

依存するヘッダを追っていけば判るけど、実際に使われるヘッダは、

#include <avr/io.h> の中でDEVICE=xxxxxの定義によって選択され、


DEVICE=mega168 ......... iom168.h
DEVICE=mega168p ......... iom168p.h
DEVICE=mega328p ......... iom328p.h

になる。「iom168.h」は、更に「iomx8.h」をincludeしていて、この中で、

#define INT0_vect _VECTOR(1)
#define SIG_INTERRUPT0 _VECTOR(1)

の双方が定義されているが、「iom168p.h」と「iom328p.h」では「iomx8.h」
をincludeしておらず、それぞれのヘッダ中で直接、

#define INT0_vect _VECTOR(1)

のみが定義されているだけで、SIG_INTERRUPT0が定義されていない。
576774ワット発電中さん:2010/05/01(土) 14:10:32 ID:/8C0CiR9
AVRStudioでAVR-GCCを使っています。
16ビット定数を8ビットレジスタ2つに上位、下位それぞれ書き込みたいのですが、
定数の上位や下位8ビットのみを取得するマクロは定義されていないのでしょうか。
アセンブラだとhigh()やlow()があるのですが、Cではどのように書けばいいのでしょうか。
577774ワット発電中さん:2010/05/01(土) 14:19:28 ID:qDAOOTiD
(定数>>8)&0xff とか 定数&0xff とかじゃないの
578774ワット発電中さん:2010/05/01(土) 14:29:15 ID:/8C0CiR9
レスありがとうございます。
調べたところ、16bitレジスタは16bitの即値代入ができるようです。
TCNT1やOCR1Aなどは、TCNT1L、TCNT1Hに分割せず、
TCNT1 = 10000;
のように書いてよいのですね。
579774ワット発電中さん:2010/05/01(土) 16:31:19 ID:acp4fcF/
むしろそう書いた方が、保障されるのでおすすめです。
>>572
Debug-wireはあれはおまけに近いかななんて思う。
ISP,JTAG,Debug-wireはすべて別物です。マーク2がそれぞれ対応してるというだけです。
ISPは書き込むためのもの、JTAGはデバッグするためのもので書き込みもできる、Debug-wireはリセット端子だけで何茶ってデバッグができるというもの。
580774ワット発電中さん:2010/05/01(土) 19:36:11 ID:Y+HvZbuf
R8Cはほとんど同じ値段なのにE8aエミュレータの機能が
debug-wire以下のコストで実用的

AVRを見限る1つの理由がこれだな俺にとっては
581774ワット発電中さん:2010/05/02(日) 15:47:36 ID:hNP5bjUB
日本語でおk
582774ワット発電中さん:2010/05/02(日) 18:34:29 ID:pdAPv1zc
そんなに安いのかとおもったらけっこうするじゃん < E8a
583774ワット発電中さん:2010/05/02(日) 20:51:11 ID:Gfr+GiPF
R8Cは、E8aを使わなくても、UARTで HEWを使ってROMコードのデバッグができる。
モニターも自動的に書き込んでくれるんで、シリアルケーブルさえあればデバッグできる。

他のCPUでROMコードをICEなしにデバッグできるのははあまり聞かないんで、個人的には
ポイントが高いと思うんだが。 R8Cに限らず国内のCPUはライブラリーがあまりないのがネックだが。
584774ワット発電中さん:2010/05/02(日) 21:48:09 ID:PIUm4U2h
R8CとAVR 8Bitって競合しないと思うんだが・・・
585774ワット発電中さん:2010/05/02(日) 22:21:56 ID:KO/V048y
R8は知らないが、H8はx86より後発なのにトレース機能(シングルステップ
割込)すら持っていないから、モニタを書く気がおきなかった。

基本的に1命令実行毎に割り込みを発生できる機能さえCPUに用意されて
いれば、あとはブレークポイントとか、逆アセンブル付きトレースとか、
ソフト的に追加できるんで。ただ、モニタにそんな機能付けても、これ
までデバッグに活用したことは一度もないが。(w

組込系ソフトの場合、大抵はリアルタイム応答が重視されるんで、デバッガ
のブレークやトレースが使えない場合が多い。通過ポイントや、内部状態で
異なるASCII文字を1文字だけコンソールに出すとか、ソフトの動作を止めず、
極力実行時間に影響を与えない方法でデバッグするしかない。

ルネサスの将来はR8含めて混沌としているから、新規に使う気になれん。
586774ワット発電中さん:2010/05/02(日) 23:48:50 ID:tglxdUf2
>>581
俺的な解釈だと>>580の言いたい事は
ATMEL何か使ってんな、ルネサス使え!!!
587774ワット発電中さん:2010/05/03(月) 09:55:27 ID:Q+2X9lsh
JTAG-ICE MarkIIを使ってATMEGA64にプログラムをISPで書き込んだんですが、えらい長い時間(3分くらい??)
かかりました。こんなもんでしょうか?
もっと早いプログラマはあるのでしょうか。
588774ワット発電中さん:2010/05/03(月) 09:58:17 ID:tfOttmoX
>>587
USB使ってる?
AVRstudio使っているのあら、書き込み時間調整スライダがあるはずだが。
589774ワット発電中さん:2010/05/03(月) 09:59:35 ID:Q+2X9lsh
はい、USBで接続しています。

> AVRstudio使っているのあら、書き込み時間調整スライダがあるはずだが。

おー、それには気づきませんでした。確認してみます。
590774ワット発電中さん:2010/05/03(月) 10:04:30 ID:tfOttmoX
>>589
http://labs.karappo.net/interact/index.php?itemid=227
>また、Programming Modeは、ISP mode、ISP Frequencyは、125kHzなどに設定。

このあたりね
591774ワット発電中さん:2010/05/03(月) 13:09:08 ID:mHDmTlpv
システムクロックの4分の1以下に設定すればおk。
592774ワット発電中さん:2010/05/03(月) 15:59:27 ID:1a6BhSI2
正確には 1/4未満だよ。 それと AVRの動作周波数によっては 1/6未満を要求される。
あと、内蔵RC発振駆動の場合、精度が悪いから 例えば、1MHzを鵜呑みにして
水晶発振器由来の 250kHzにすると、動かないことがある(実体験済)。
125kHzなのはそのあたりの理由がある。
593774ワット発電中さん:2010/05/04(火) 14:18:07 ID:3chmm7lH
AVRの純正ライタの赤く光るところがパソコンに接続しても光らないんですがわかる
けど原因が分かる人いますか。
594774ワット発電中さん:2010/05/04(火) 14:18:33 ID:qhCABmcA
>>587
とりあえずTiny2313にファームを書き込んで
HIDaspxを千石店頭180円のブレッドボードで
組んでみる。MEGA64でも動作するとの報告あり
予算500円、書き込み速度1〜3秒
千秋ゼミのサーバーは重いのでこちらを紹介
http://homepage2.nifty.com/denshiken/AVW021.html
595774ワット発電中さん:2010/05/04(火) 14:21:27 ID:3chmm7lH
すいません。AVRの純正ライタの赤く光るところがパソコン二接続しても光らないんですが原因が分かる人いますか。
596774ワット発電中さん:2010/05/04(火) 17:40:03 ID:2LhwCkPO
エスパーじゃないんだからさぁ・・・
今まで動作していたものが動作しなくなったのか、それとも、買ってきたものを始めて使おうとしたら動作しなかったのか、
動作させようとした環境とか・・・
個人的にはライタが壊れている可能性より、3chmm7lHのコミュニケーション能力(マニュアルやデータシートを読むのも
コミュニケーションだよ)不足が原因である可能性に100tiny
597774ワット発電中さん:2010/05/04(火) 19:37:33 ID:+7eRV/Le
100tinyってたった9000円だろ
598774ワット発電中さん:2010/05/04(火) 21:26:28 ID:8xP9nSIX
9000Yenはでかいよぉ
599774ワット発電中さん:2010/05/05(水) 02:23:44 ID:LLmdpT5y
Wiki落ちてる?
600774ワット発電中さん:2010/05/05(水) 11:29:08 ID:FMpqdULt
>>594
久しぶりに使ってみるかと 2313 でボード組んでみた。
PCも買い換えたから AVR studio を入れて ISP のチェックをしようと
思ったら、2313 なんて、対応してなかった。orz

とりあえず、IC ソケットを使ってたから良かったものの、
Tiny2313 を買いに秋月まで行くのも面倒だなぁ・・・
601774ワット発電中さん:2010/05/05(水) 13:33:15 ID:AWAf/Zmj
なんか、おもしろいことないかなぁ・・・。
602774ワット発電中さん:2010/05/05(水) 13:47:05 ID:/+k6d0cP
AVRで、IDE-HDDをUSBのマスストレージに変換するような回路&サンプルってありますか?
ATAバスの研究をしたいだけなので、AVRチップ問わず、転送速度も問わずです。

EZUSBには、まんまなサンプル回路がありましたが、
AVRは探し出せませんでした。
603774ワット発電中さん:2010/05/05(水) 14:27:25 ID:BkDeOURp
>>602
IDEは、転送速度さえ気にしなければ、汎用I/Oポート経由でアクセスできますよ。
SCSIみたいにバスのタイムアウトないから、アクセス中にブレークポイントで
プログラムを止めても、勝手にデバイスがセレクト状態を解除したりしないし。

HDDセクタ長が512バイトだから、リードとライト用のバッファを別々に確保
し、さらにUSB用のバッフなども別に確保するとなると、内蔵RAMは最低2KB
以上、できれば4KB以上あるデバイスがいいかも。 ロースピードにしか対応
できないVUSBでは速度的につらいので、USBコントローラ内蔵の90USB646や、
90USB1287、mega32U4あたり?

レジスタ構成やバスの幅は違うけど、PIOモードでアクセスする場合、インター
フェースの制御信号はキャラクタ液晶とあまり変わらない。DMAモードを使う
なら、外部メモリバスI/Fを持つデバイスで、擬似DMA。

IDEドライブではないけど、確か、90USB646やUSB1287あたりのアプリケーション
ノートに、USBマスストレージクラスのサンプルコードはあったかと...

っと、これだな。

AVR273: USB Mass Storage Implementation on megaAVR with USB
ttp://www.atmel.com/dyn/resources/prod_documents/doc7631.pdf
ttp://www.atmel.com/dyn/resources/prod_documents/AVR273_USB_Mass_Storage.zip

AVRにIDE/ATAPIデバイスを繋いで制御している例は、探せばネット上に幾つかある。
ttp://www2p.biglobe.ne.jp/~t_ueno/DAC/atapi_ctl/
ttp://www.mi-take.biz/atapi_history/atapi_start.html
604774ワット発電中さん:2010/05/05(水) 14:31:22 ID:PyWyynoH
>ATAバスの研究をしたいだけなので
だったら別にAVRでやらなくてもいいじゃん.
605774ワット発電中さん:2010/05/05(水) 14:37:20 ID:/+k6d0cP
>>603
ありがとうございます。とても参考になりました。
あとでゆっくり見てみます。

>>604
ソースに改変を加えて、HDDやATA機器の動作がどう変化するか調べたいのです。

それをするためには、知らないプラットフォームで右往左往するよりも、
慣れたAVR上でやりたいな、と。
606774ワット発電中さん:2010/05/05(水) 15:27:40 ID:pua7JJV4
>>605
そういう用途なら、USB変換機能は邪魔になるだけだ。

素直にATAコマンドの挙動をみれるようシリアル接続のモニタを作るべき。
607774ワット発電中さん:2010/05/05(水) 22:11:35 ID:OUoM8Aiy
>>602
IDE、例えばChan氏のFatFsをRead ONLYかつPIOモードで動かすだけなら
ReadSector(0x20)だけ使えれば大丈夫だったり。
通常はIdentify(0xec)して使えるモード見てから
SetFeature(0xef)で適切なPIOモード設定してから使うんだけどね…
勿論f_mkfsするならIdentify必要。

それよりも、5VのAVRで適当に動かすだけならともかく
高速になってくると仕様通り終端抵抗いれないと駄目だったり
3.3Vバスバッファでの動作で悩んだりする…
608774ワット発電中さん:2010/05/05(水) 22:34:23 ID:liW+RF4A
ATmega8でADCを使おうとしているのですが、うまく値が取れません
VCCから1kΩの抵抗とBカーブの2kΩの可変抵抗を直列についないで可変抵抗の
真ん中のピンをGNDに落とし、これらの抵抗の間を23ピンに繋いでいます。
23ピンはADC入力1ですので、これをADCで変換し、UARTで読み取りたいです。
ですが、ADCの結果が可変抵抗の値を変えてもいつも"23"で固定されてしまいます。
AVRStudio+WinAVRで書いており、ADC関連のコードをは以下のとおりです。

void adc_init(void) {
ADMUX = (2<<REFS0);
ADCSRA =(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(0<<ADPS0);
}
volatile uint16_t vreg1;
SIGNAL(SIG_ADC) {
vreg1 = ADC;
}
int main(void) {
char buf[4] = "0000";
sei();
for(;;) {
int2str(vreg1,buf);
usart_sendStr(buf);
for(volatile int j=0;j<10000;j++) {
j = j;
}
}
}
usart_sendStrとint2strは正しく動作することが確認できています。
また、割り込み無しでフラグを見て動作するタイプも作ってみましたが結果は同じでした。
何が原因なのかご指摘をお願いします。
609774ワット発電中さん:2010/05/05(水) 22:35:28 ID:liW+RF4A
あと、書き忘れていましたが、Arefは0.1uFのパスコンでGNDにつないでいます。
またAVccはVCCに繋いでいます。
610774ワット発電中さん:2010/05/05(水) 22:44:33 ID:r9gGup/o
>>608
いきなり二行目おかしくない?
あとUARTはOKなんだよね?
611774ワット発電中さん:2010/05/05(水) 22:45:42 ID:T/7QFz97
>608
いろいろ努力はしたみたいだが、そもそも23ピンの電圧は測ってみた?
ほぼ0V (= 23/1024 * 5V) 一定なら ADCの中の人的には文句いわれる筋合はないぞ。

出力ピン設定で L になってたりしないかなと思うわけで。
612774ワット発電中さん:2010/05/05(水) 22:54:28 ID:r9gGup/o
>>608
ごめん、UARTはOKなんだね
スマソ・・・
とりあえずビットシフトがおかしい
あと、これだとワンタイムしかA/D変換しないのでは?
613774ワット発電中さん:2010/05/05(水) 23:27:39 ID:OA+46f4s
>>612のゆう通りだな。
割り込みのたびにADSCに1立てろ。
614774ワット発電中さん:2010/05/05(水) 23:54:12 ID:liW+RF4A
おっしゃるとおりでしたorz
割り込みいれるたびにADSCを立てるとちゃんと動くようになりました
助言ありがとうございました
615774ワット発電中さん:2010/05/06(木) 02:13:53 ID:V8e4zK4h
>>575
ありがとう。iom328p.hを見て確認した。
usbconfig.hに、
#define USB_INTR_VECTOR INT0_vect
を追記して328Pとしてコンパイルするよ。

Community ProjectsにあるQuick Launch Keysを2313で作れたが、
これを328Pに換装できていない。
http://denki.world3.net/quicklaunch.html

D-、D+のピンの接続ポートや動作クロック12MHzは変えていないが、
その変更がなくても、328Pへ換える時に変更する箇所はあります?
616575:2010/05/06(木) 08:37:31 ID:Aa0Pj2rK
>>615
ダウンロードしたZIPファイルを解凍してAVR Studioでプロジェクトを開き、
AVR Studioの「Project」-「Configuration Options」で、Deviceを「mega328p」
へ変更。手元の328pボードが20MHzだったので、同時にFrequencyを「20000000」
へ変更。 プロジェクトのツリーから「usbcobfig.h」を開いて、

#define USB_INTR_VECTOR INT0_vect

行をファイル終端の「#endif」手前に追加。

以上の変更をした後、「Build」-「Rebuild All」でHEXファイル生成。

Program:1974バイト, Data 60バイト。

これをデバイスに書き込んだところ、ちゃんとHIDデバイスとして認識され
ました。 ヒューズ設定は、Low=0xFF, High=0xDA, Ext=0x05 です。

参考までにAVRGCC(WinAVR)は2008-12-08、AVR Studioは、Ver4.18(Build 692)
です。リンク先の回路は、電源やプルアップを簡略化しているので、それが原因
かもしれません。

うちで動かした328pの環境は、USBから電源を取っていますが、328pはポリ
スイッチ+逆流防止のショットキーDi経由の5V電源で動かし、そこからLDO-
Regで3.3Vを生成して、D-信号を1.5kΩで+3.3Vにプルアップしています。

USBコネクタから引き込んだD+/D-信号には、直列抵抗の代わりに「NZF220DFT1」
というESD保護素子を使ってますが、ここの抵抗は、かなりアバウトでも動き
ます。(前に33Ωと間違えて330Ωを付けたことがありますが動きました)

ttp://www.onsemi.com/pub_link/Collateral/NZF220DFT1-D.PDF
617774ワット発電中さん:2010/05/06(木) 09:07:11 ID:Aa0Pj2rK
>>608
> char buf[4] = "0000";

誰も指摘してないので一応フォロー。

文字列終端のNUL文字('\x0')を格納する分を含めてbufは最低5バイト必要
です。

さらに言えば、ADMUXレジスタのADLARビットを1にセットすると、ADCレジスタ
から取得するvreg1の値は最大で0xFFC0(10進数で5桁)になるので、後でプロ
グラムを変更してまた悩むより、文字列変換のbufは6バイト以上にしといた
方がいい。
618774ワット発電中さん:2010/05/06(木) 20:17:15 ID:eWBg6AqA
ttp://www.binzume.net/library/avr_hidasp.html
のライタの回路を20MHzにしても動くと思う?
あと、ツェナーダイオードがない時の代案を何か
619774ワット発電中さん:2010/05/06(木) 20:41:18 ID:ZcXA+BRv
20MHzでビルドすれば普通に動くよ
ツエナーは3.3Vで動かせば不要
620774ワット発電中さん:2010/05/06(木) 22:32:52 ID:eWBg6AqA
ビルドっていうか、hexファイルをそのまま焼くつもりなので、
12MHzでも20MHzでも動くようになっているか、という意味です

20MHz動作なら5Vだし、3.3Vなら12MHzなので、ツェナー不要云々の指摘は的外れです
621774ワット発電中さん:2010/05/06(木) 22:37:48 ID:9QCmepNa
5V動作しているIOにツェナーつけて無理矢理3V化するのは許容できるのに
3.3Vで無理矢理20MHz動作させるのは許容できないのか。
622774ワット発電中さん:2010/05/06(木) 22:44:35 ID:e44ciC0e
いま回路図見てみたけど結構無茶するなぁw
相手側のUSBドライバも2313も可哀相。
俺なら迷わず3.3Vのレギュレータ入れて2313を3.3V駆動する。
623774ワット発電中さん:2010/05/06(木) 22:48:34 ID:P/gO8Ot+
>>620
素直に市販のライタを買え
senshuさんですらそう言ってる
624774ワット発電中さん:2010/05/06(木) 22:48:46 ID:eWBg6AqA
やっぱそれが王道なんだろうな
水晶が20MHzしかなくて、
12MHzの水晶と3.3Vのツェナーと3.3Vのレギュレータと、
どれを買おうか迷ってるとこ

レギュレータだけ買って20MHz駆動するのは、どのくらい無茶なんだろう
っていうか、8MHzじゃダメなの?
625774ワット発電中さん:2010/05/06(木) 23:19:15 ID:e44ciC0e
>>624
fclk < 5.926*Vcc - 6.667 [MHz] ・・・ ( 1.8 < Vcc < 4.5 )
後は自己判断で・・・
626774ワット発電中さん:2010/05/06(木) 23:43:05 ID:KVhnYoRl
http://himitsu.jpn.ph/
にアクセスできないのだけど、うちだけ?

AVRだけで作る音楽プレーヤ Ver.4 ってのの回路図とソースを拝借したかったのだけど
627774ワット発電中さん:2010/05/06(木) 23:57:47 ID:X9p9aE1a
>>618
3.3V前後でよければ、とりあえず白色とか青色のLEDをツェナーの代わりに使うのは?
628774ワット発電中さん:2010/05/07(金) 03:14:44 ID:vykfvZ73
時間軸にうるさい組み込みで、
おまけにセラロックじゃダメなほどシビアだといってるアプリで、
外付けの水晶だけでいけると思う理由が見当たらない
629774ワット発電中さん:2010/05/07(金) 06:46:20 ID:zXG2LFJp
外付けの水晶だろ?
630774ワット発電中さん:2010/05/07(金) 06:53:03 ID:fd98QePD
>>620
20MHz(F_CPU=20000000)の設定でビルド(MAKE)されたHEXが既にあればリビルド
の必要はないけど、ソフトでタイミング取ってる関係上、20MHz用と12MHz用
では、バイナリ(HEXファイル)の内容が変わりますよ。

8MHzは遅くてダメ。試したことないけど、確か16MHzは公式にOKだったかと。

usbconfig.h内では、クロックをkHz単位で定義できるようになってるけど、
12MHz〜20MHzの間で中途半端な周波数(例えば12.288MHzとか18.432MHz,
19.200MHzあたり)はどうなんだろ?

tiny2313,mega88,mega168,mega328pで、それぞれAVRは5V動作で、D+/D-は
直列抵抗と3.3Vプルアップのみ、ツェナーなしで動かしているけど、今まで
特にそれで動かなかったことはないです。

ただ、厳密に言えば定格3.3Vのツェナー入れたところで、製品によってツェナー
電圧のばらつきが±1%〜±5%ある上に、そのツェナー電圧で使うには、本来で
あれば一定以上のツェナー電流を流す必要があるんで、かなり気休めな部分も。

3.3Vではなく3.6Vのツェナーを入れているのは、素子のばらつきで下ぶれした
場合に、3.3V以下にクランプされないよう意図した理由があるからでは?

3.3Vで動かしても、AVRのピン自体は、ESD耐性がの保証があるわけではない
ので、単体の汎用ツェナーより、こういうのを入れたほうが...

ttp://www.nxp.com/documents/data_sheet/PESDXL2BT_SER.pdf
ttp://www.vishay.com/doc?85824

ブレッドボードや下手糞な引き廻しだと、それが原因で動かない場合もある。
どっちにしろ、何百台、何千台と作るわけじゃないんだろうし、まずは1台
動かしてみろとしか言い様がないな。
631774ワット発電中さん:2010/05/07(金) 07:00:41 ID:NRgNpBRP
632774ワット発電中さん:2010/05/07(金) 08:51:07 ID:ew4cR01T
>>630
> ブレッドボードや下手糞な引き廻しだと、それが原因で動かない場合もある。
> どっちにしろ、何百台、何千台と作るわけじゃないんだろうし、まずは1台
> 動かしてみろとしか言い様がないな。

それでPCを破壊しちゃ意味無いけどな
633774ワット発電中さん:2010/05/07(金) 09:16:33 ID:2c9CTLLR
マイコン用は安PCで作業しないとなー
俺は超高級PCでマイコンしててPC壊した
やられたぜまったく
634774ワット発電中さん:2010/05/07(金) 09:26:42 ID:fd98QePD
>>632
PCのポートが心配なら、安いハブをかませばいいのでは? USB2.0
対応なら速度低下もないし。

たぶん壊す香具師は、ツェナー入れようが、3.3Vで動かそうが壊すと
思うなぁ。 事故るヤツは、どんな車を運転しても事故るのと同様。

いちいちPCの裏側に手探りでつなぐのも面倒だし、前面パネルのUSBは
何か落としたり、ケーブルを引っ掛ける心配があるので、直結ポートは
余ってるけど、うちはエレコムのACアダプタ付きのハブを使ってます。

ところで、 >>631 は、何がしたかったんだろう?リンク切れてるし。
635774ワット発電中さん:2010/05/07(金) 10:01:50 ID:nUThbxVW
PCのGNDはモニターのせいもあって絶縁状況がよろしくないな。
ノートでの作業が一番安心かも
636774ワット発電中さん:2010/05/07(金) 17:01:50 ID:3O+x1GcP
一定時間ウェイトをかけたいのですが、タイマーを全部使ってしまっているので
ループで実現したいと思っています。
しかしインラインアセンブラはよくわかりません。
引数にミリ秒単位で時間指定をできるような、ウェイト関数をどなたか作ってください。
AVRはATTiny2313で、クロックは8MHzです。
よろしくお願いします。
637774ワット発電中さん:2010/05/07(金) 17:17:05 ID:fd98QePD
>>636

#define F_CPU 8000000UL // CLOCK=8MHz

#include <avr/io.h>
#include <util/delay.h>

int main()
{
  for(;;)
  {
    delay_ms(100);  // 100msウェイト
    hoge();
  }
}

とかでいいのでは?
638774ワット発電中さん:2010/05/07(金) 17:25:33 ID:3O+x1GcP
最初から用意されていたんですね
ありがとうございました
639774ワット発電中さん:2010/05/07(金) 22:14:07 ID:dRfyqMZ8
int main()
{
  int i;

  for(i=0;i<100;i++)
  {
    delay_ms(1);  // 1msウェイト
    hoge();
  }
}

長い時間待つ時はこうした方が良いっす
640774ワット発電中さん:2010/05/08(土) 06:29:49 ID:CEFTp7Z/
>>639
先生、ウェイト中にhogeいれちゃイカンっすw

それはさて置き、delay_msは正確な時間を計算する為に内部で浮動小数点演算をしていて、引数が変数だと重くなる。
なのでウェイト時間を変えたい時は、1msを定数として与えて自分でループ回すのが良い。
今回の場合は定数だから、>>636 のでいいんでは?
641774ワット発電中さん:2010/05/08(土) 06:49:36 ID:DgHPs6/1
>>636
必ず動作しているタイマーがあるのなら、
タイマー割り込み処理中にwait用変数カウント処理を入れる(例えばtime++;とか入れとく)という手もあるけど…

で、使うときはtime=0;として希望の値になるまで待機。
642774ワット発電中さん:2010/05/08(土) 08:06:28 ID:0kC3TzLx
AVRで赤外線リモコンの受信機をつくりたいと考えています。
ググるとたくさんのサイトが出てきて、非常に心強いのですが、
どのサイトを参考にすれば悩みます。
おすすめのサイトがあれば推薦してもらえないでしょうか。
643774ワット発電中さん:2010/05/08(土) 08:16:59 ID:q9FluVQD
メーカーは?
644774ワット発電中さん:2010/05/08(土) 08:25:40 ID:0kC3TzLx
>> 643

リモコンのメーカーはどこでも構いません。
最終的にはパナソニック用に調整することになると思います。
645774ワット発電中さん:2010/05/08(土) 15:21:24 ID:MZwCelkp
コピペエンジニアか・・・
まさか仕事で使おうってんじゃねぇだろうなぁ
646774ワット発電中さん:2010/05/08(土) 15:25:25 ID:+kTQYcee
どこまで甘ったれてんのか全く呆れる
こんなやつは放っておけ
647774ワット発電中さん:2010/05/08(土) 18:26:47 ID:5jcxmsHz
>>634
世の中のUSBハブのほとんどが、バスパワーかセルフ/バスパワー共用なんで、
途中にかませても保護機能は期待できないよ。 
なので、ACアダプターがついているだけでは安心できないよ。
648774ワット発電中さん:2010/05/08(土) 18:30:17 ID:e+KAPCLl
>>636
もう一個ATtinyを用意して外部から割込みで・・・

すまん。疲れてるみたいだ・・・
649774ワット発電中さん:2010/05/08(土) 19:22:07 ID:O3pT5Gse
>>647
エレコム製の「U2H-Q4SCR」って型番の4ポートハブで、CYPRESS製 のCY7C65640
-LFC って型番のUSB Hubコントローラを使っていて、台湾のAIC (Analog
Intergrations Corporation)ってメーカーのAIC1526って型番の過電流・短絡
保護付きハイサイドスイッチがポート毎にちゃんと付いてるヤツ。

4ポートなのに、2.6A出力のSW式ACアダプタが付属していて、USB Hi-speed Certified
のロゴ付き。 現行製品だと外観はこれが比較的近い。

ttp://www2.elecom.co.jp/cable/usb-hub/u2h-g4s2/index.asp

最近はキワモノっぽいUSBハブしかなくて、ジャンクのカゴで見つけた。
上海問屋のヤツとかはダメ。中には分解してみたら、エナメル線みたいな
細いジャンパが飛んでるやつもあった。
650774ワット発電中さん:2010/05/08(土) 20:18:28 ID:RfJ5wI8I
>649
本物の写真もまだあるやん。
http://www2.elecom.co.jp/products/U2H-Q4SCR.html
このサイズでセルフパワー専用とはまた珍しい。

>649とは似てるけど値段からして中は別物っぽいね。
651774ワット発電中さん:2010/05/08(土) 20:48:36 ID:9RYQvkfI
>>640
>先生、ウェイト中にhogeいれちゃイカンっすw
アホですまんっすw
こうね。
  for(i=0;i<100;i++) { delay_ms(1); } // 1ms * 100 = 100msウェイト
  hoge();
  ...

でも、
>The maximal possible delay is 262.14 ms / F_CPU in MHz.
というふうに、_delay_ms()はクロック周波数に依存して時間の上限があるから、
8MHzで100ms待つ場合は、_delay_ms(100) としてしまうと
実際に100ms待ってくれないはず。どうなるかは知らない。
652774ワット発電中さん:2010/05/08(土) 20:53:52 ID:9RYQvkfI
あ、でも

When the user request delay which exceed the maximum possible one,
_delay_ms() provides a decreased resolution functionality.

とか書いてあるから別に_delay_ms(100) としても別に良いのか。すまんこ。
653774ワット発電中さん:2010/05/08(土) 21:17:56 ID:O3pT5Gse
>>650
まだあったか。(w

確か、今は亡きブレスの店頭でカゴに入れて売られていたのを600〜800円
くらいで買って、わりと具合良さげだったので数個買い足した。

今は、PC切替器の上にマジックテープで2個並べて貼って使ってます。
654774ワット発電中さん:2010/05/08(土) 21:19:16 ID:O3pT5Gse
常時何かの処理を行いながら、同時に一定周期でさらに別のことをやらせたいという
場合は、タイマ割り込み共有(例:1ms周期)でカウントアップするソフト的なタイマを
1本用意すれば、こんな方法でいける。

static volatile uint nTickCount=0;  // タイマ割込(1ms)毎にインクリメント(+1)

uint GetCurrentTime() { return nTickCount; }
void SetTimeOut(int *pStartTime,int *pEndTime,int nTimeOut);
BOOL CheckTimeOut(int *pStartTime,int *pEndTime);

void SetTimeOut(uint *pStartTime,uint *pEndTime,uint nTimeOut)
{
  *pStartTime=GetCurrentTime();
  *pEndTime=(*pStartTime)+nTimeOut;
}

BOOL CheckTimeOut(int nStartTime,int nEndTime)
{
  uint nCurTime;
  BOOL bResult;


  nCurTime=GetCurrentTime();
  if(nStartTime<nEndTime)
bResult=((nCurTime<nStartTime) || (nEndTime<nCurTime)) ? TRUE:FALSE;
  else
    bResult=((nStartTime<nCurTime) && (nCurTime<nEndTime))
? TRUE:FALSE;
  return(bResult);
}

int main()
{
  int nStartTime,nEndTime;

  for(;;)          // 無限Loop
  {
    SetTimeOut(&nStartTime,&nEndTime,100);   // 100ms時限タイマセット
    while(!CheckTimeOut(nStartTime,nEndTime)) // 時限タイマ終了Check
    {
      hoge_always();  // 常に実行する処理(定期的に戻ってくること)
    }
    hoge_100ms();     // 100ms毎に1回実行する処理
  }
}

誤差は±1ms(割込周期)+hoge_always()の実行時間で、単純にdelay_ms()を使う場合に
比べて、待機中にバックグラウンドで呼び出される関数hoge_always()内部の処理時間
が誤差として積算されないし、hoge_always()の呼出周期がdelay_ms()内部のウェイト
で待たされない。
655774ワット発電中さん:2010/05/08(土) 21:46:33 ID:RfJ5wI8I
>654
CheckTimeOut() 相当の動作は nTickCount の割り込みハンドラ内にもってくるようにしないと
37ms毎の処理、100ms毎の処理、240ms毎の処理、とか必要になった日には死ぬる。
まあ重箱だが。
656774ワット発電中さん:2010/05/08(土) 23:15:15 ID:jjyR/wtB
SetTimeOutのシグナルをパルス方式で作れば、
定期呼び出し誤差は出るけど全体誤差は出ない。
どの誤差も絶対に許さない、のなら655で。
その代わり割り込み期間が処理ぶん長くなる。
用途により使い分ける。
657774ワット発電中さん:2010/05/09(日) 05:52:42 ID:Lr4ZZTry
>>655
タイムアップの判定用変数を呼出側で確保しているんだから、必要なタイマ周期の個数
だけ呼出側で用意すれば、なんら問題ないでしょ?

int main()
{
  int nStartTime37ms,nEndTime37ms;         // タイマ変数(37ms周期判定用)
  int nStartTime100ms,nEndTime100ms;        // タイマ変数(100ms周期判定用)
  int nStartTime240ms,nEndTime240ms;        // タイマ変数(240ms周期判定用)

  SetTimeOut(&nStartTime37ms,&nEndTime37ms,37);   // 37ms時限タイマセット
  SetTimeOut(&nStartTime100ms,&nEndTime100ms,100); // 100ms時限タイマセット
  SetTimeOut(&nStartTime240ms,&nEndTime240ms,240); // 240ms時限タイマセット

  for(;;)          // 無限Loop
  {
    hoge_always();  // 常に実行する処理(定期的に戻ってくること)

    if(CheckTimeOut(nStartTime37ms,nEndTime37ms))     // 37ms時限タイマ終了Check
    {
      hoge_37ms();                   // 37ms毎に1回実行する処理
      SetTimeOut(&nStartTime37ms,&nEndTime37ms,37);   // 37ms時限タイマ再セット
    }
    if(CheckTimeOut(nStartTime100ms,nEndTime100ms))    // 100ms時限タイマ終了Check
    {
      hoge_100ms();                   // 100ms毎に1回実行する処理
      SetTimeOut(&nStartTime100ms,&nEndTime100ms,100);  // 100ms時限タイマ再セット
    }
    if(CheckTimeOut(nStartTime240ms,nEndTime240ms))    // 240ms時限タイマ終了Check
    {
      hoge_240ms();                   // 240ms毎に1回実行する処理
      SetTimeOut(&nStartTime240ms,&nEndTime240ms,240);  // 240ms時限タイマ再セット
    }
  }
}

電源投入後からすべてのタイマ周期の公倍数が成立するタイミングで、個々の関数内部の実行
時間が積算されて後の方の判定で呼び出される関数の遅れが最大になるけど、ハングアップ
したりするようなことにはならない。
658774ワット発電中さん:2010/05/09(日) 06:00:19 ID:Lr4ZZTry
また、重箱のスミをつつかれるとアレなんで、自己フォロー...。


    if(CheckTimeOut(nStartTime37ms,nEndTime37ms))     // 37ms時限タイマ終了Check
    {
      hoge_37ms();                   // 37ms毎に1回実行する処理
      SetTimeOut(&nStartTime37ms,&nEndTime37ms,37);   // 37ms時限タイマ再セット
    }

とするより、

    if(CheckTimeOut(nStartTime37ms,nEndTime37ms))     // 37ms時限タイマ終了Check
    {
      SetTimeOut(&nStartTime37ms,&nEndTime37ms,37);   // 37ms時限タイマ再セット
      hoge_37ms();                   // 37ms毎に1回実行する処理
    }

としたほうが、hoge_37ms()関数内部の処理時間による誤差は生じないね。
659774ワット発電中さん:2010/05/09(日) 07:29:12 ID:g/kd7H1+
>>654-658 あたり
ん、なんか結構参考になった
ありあり
やっぱ組み込みはタイマの使い方でセンスでるよなぁ
660774ワット発電中さん:2010/05/09(日) 07:37:32 ID:fxRB9Qel
>>657-658
だからそれだとSetTimeOutする度に誤差が累積するでしょ
「きっちり37ms周期」にはならない
>>655-656はそのことを言ってるんだよ
関数の並べ方の話じゃなくて
661774ワット発電中さん:2010/05/09(日) 08:32:39 ID:Lr4ZZTry
>>660
どの部分の誤差を言ってる?

hoge_37ms()や、hoge_100ms()、hoge_240ms()内で1ms以上時間が掛かる
処理を行えば、メインループに戻って判定処理が呼び出されるのが遅れる
分、呼び出し間隔にジッダは発生するが、少なくとも、37ms周期で呼び出す
SetTimeOut()が、100ms周期のSetTimeOut()や、240ms周期のSetTimeOut()の
影響を受けたり、その逆に影響を受けたりはない。
662774ワット発電中さん:2010/05/09(日) 08:44:14 ID:Lr4ZZTry
>>655-656
たとえ、CheckTimeOut()相当の処理をタイマ割込ルーチンに埋め込んでも、if()によるフラグ
判定処理がメインルーチン側にある限り、フラグをセットする時間のばらつきがタイマ割込
周期に限りなく最適化されるだけで、hoge_37ms()、hoge_100ms()、hoge_240ms()関数が呼び
出される周期のばらつきは変わらない。

hoge_37ms()、hoge_100ms()、hoge_240ms()関数内部の処理に時間が掛かった場合、関数から
メインループに戻って判定処理が呼び出されるのが遅れるの変わらない。

これを避けるには、関数毎に再突入防止のフラグを設けて、hoge_37ms()、hoge_100ms()、
hoge_240ms()関数をタイマ割込ルーチンから直接呼び出すしかない。
663774ワット発電中さん:2010/05/09(日) 09:32:45 ID:ebS5ruPb
>>662
解説 乙

この手の話、アトミックな話が漏れると迷子が増える。
664774ワット発電中さん:2010/05/09(日) 10:38:26 ID:Lr4ZZTry
>>663
低学歴専門卒(wだけど、間違ったこと書いてないよな?

ついでと言ってはナンだけど、例えば、37ms周期、240ms周期で何かやりながら、100ms
周期でPB1のスイッチを監視して、ON('H')だったら、1秒間PD4出力に繋いだLEDを点灯
('H'出力)させるってぇな、ルーキー・オオギリーグ並みのお題に...

void hoge_100ms()
{
  int i;

  if(PORTB&(1<<PB1))
  {
    PORTD|= (1<<PD4);    // LED点灯(ON)
    for(i=0;i<1000;i++)   // 1ms×1000回=1秒間待ち
      delay_ms(1);
    PORTD&=~(1<<PD4);    // LED消灯(OFF)
  }
}

なんて、やっちゃうのは、いろんな意味でダメだから。(w

一種情報処理を持ってるらしい山崎邦正ならどう回答するのか、非常に興味が
あるところだけど、板尾委員長でなくとも、間違いなくアンテナ0本の回答。

(チャタリング処理に話が及ぶとさらにややこしくなるので省略)
665774ワット発電中さん:2010/05/09(日) 11:23:48 ID:Lr4ZZTry
>>663
実を言うと、アトミックな処理に関する重箱のスミは、

  uint GetCurrentTime() { return nTickCount; }

の部分は...

  uint GetCurrentTime()
  {
    uint nLastTick;
    uchar cSave;

    cSave=SREG;       // 割込許可状態の保存
    cli();         // 割込禁止
    nLastTick=nTickCount;  // 最新のnTickCount値のコピーを取得
    SREG=cSave;       // 割込許可状態の復旧
    return nLastTick;
  }

としないとダメ。

ってなツッコミが入ると期待してた。

実際そうしないと、GetCurrentTime()で、最新のnTickCountの値を取得
している最中に、nTickCountの値が8bitから9bitへ繰上げを伴うインクリ
メントが行われるタイマ割込が発生するとダメだから。(w

まぁ、発生するタイミングはごくまれだけど、起こるとGetCurrentTime()が
間違った値を返してくる。
666774ワット発電中さん:2010/05/09(日) 14:18:41 ID:hJqX9Iky
WINAVRって内部でAS2って変数名などを使っていますか?
変数で宣言が出来ませんでした
違う名前にして解決しましたが、ちょっと気になったので
667774ワット発電中さん:2010/05/09(日) 16:03:50 ID:Lr4ZZTry
>>666
デバイスも、OS環境も、コンパイル時に表示されたエラーメッセージも、
何も書かれていませんが、とりあえずWinAVRという前提で...

AVR-GCCをインストールしたフォルダ(標準では、C:\WinAVR-YYYYMMMMDD)下の
「.\avr\include」フォルダ内のヘッダファイル(*.H)を検索すれば、ほとんど
のデバイスでASSRレジスタ関係のビット定義として、「AS2」という定数が
#defineで定義されていることがわかります。

※ YYYYMMMMDDは、インストールしたAVR-GCCのリリース年月日を示す6桁の数字

668774ワット発電中さん:2010/05/09(日) 20:41:11 ID:hJqX9Iky
>>667
ありがとうございます、疑問が解けました
669774ワット発電中さん:2010/05/09(日) 21:00:59 ID:fxRB9Qel
>>662
そのコードは検査から再設定までのタイムラグを
全く考慮してないから累積して誤差が増えてくって言ってるの。
>>658みたいに処理の前に呼ぶよう順番を変えても同じ。
改善するならCheckTimeOutの比較している場所で
比較した差を次の時間設定に反映して誤差を修正すること。
そうすればジッタが出るものの周期は維持される。
670774ワット発電中さん:2010/05/09(日) 21:48:13 ID:Lr4ZZTry
>>669
最適化オプションにもよりますが、CheckTimeOut()の検査から、SetTimeOut()
による再設定までの所要クロックは、多めに見積もっても、50クロック程度に
過ぎません。 それでも実時間にしたら、8MHz動作時で5〜6μ秒に過ぎません。

これに対して、nTickCountはタイマ割り込み処理で勝手にインクリメントされま
すが、分解能は1msですから、CheckTimeOut()が成立してから、再度SetTimeOut()
を呼び出してタイマを再設定するまでの間に比べてはるかに短く、AVRの動作クロ
ックが100kHz以下とか極端に遅い場合を除いて、誤差として影響されませんし、
当然ですが累積もされません。

>>658 で順序を変えているのは、大きな意味があります。

hoge_37ms()とSetTimeOut()関数の順番を入れ替えたのは、hoge_37ms()の
処理を含めたCheckTimeOut()〜SetTimeOut()までの処理時間が1msを超える
と、CheckTimeOut()成立時に比較したnTickCountの値と、次のSetTimeOut()
で取得するnTickCountに差(更新)が生じ、これが誤差となって遅れる要因
となるからです。

他のif()文が成立して、hoge_100ms()や、hoge_240ms()が実行された時、
メインループに戻るのが遅れるため、hoge_37ms()が呼び出されるジッダ
は、はるかに大きく深刻になります。

これを回避するには、 >>662 でも書いたとおり、タイマ割り込みルーチン
での多重割込を許可し、関数毎に再突入防止のフラグを設けて、hoge_37ms()、
hoge_100ms()、 hoge_240ms()関数をタイマ割込ルーチンの中から直接呼び
出すしかありません。

ただ単に、CheckTimeOut()関数相当部分をタイマ割込ルーチンの中に記述
したり、BOOL値のフラグを参照するように記述しても、何の解決にもなりま
せんよ。
671774ワット発電中さん:2010/05/09(日) 21:54:38 ID:Sfcj8tQd
μsオーダーのタイミングが気になるんだったら、部分的にでもアセンブラ使おうぜ・・・
672774ワット発電中さん:2010/05/09(日) 22:28:57 ID:g/kd7H1+
まぁ誤差が蓄積するのとしないのは大きな違いなんだけどな
もちろん用途による
673774ワット発電中さん:2010/05/09(日) 22:41:37 ID:fxRB9Qel
>>670
まるで理解できてないね。
俺の説明の仕方が悪いのかもしれんけど。
まあどうでもいいや。
674774ワット発電中さん:2010/05/09(日) 23:06:58 ID:Lr4ZZTry
>>671
実行クロック速度と処理の内容によっては、hoge_NNms()内をアセンブラで記述
する必要があるかもしれませんが、SetTimeOut()とCheckTimeOut()の中身は、
単純な整数同士の演算と比較処理だけですから、アセンブラで記述したから
といって劇的に早くなるようなものでもありませんし、アセンブラが必要な
状況でもありません。

アセンブラでの記述よりも、一番長いタイマでも240ms周期ですから、タイマ
の周期が最大で255msに制限されますが、nTickCountの型をuint(16bit)から、
uchar(8bit)にする方が、今回の例でははるかに効果的でしょうね。

>>672
誤差が蓄積するかどうかが問題になるケースはありますが、今回の例で誤差
が蓄積するかどうかは、無限ループ内の最長パスの処理時間によって決まり
ます。

すなわちすべてのif()内のCheckTimeOut()が成立し、SetTimeOut()とhoge_XXms
がすべて呼び出される処理時間の合計(正確には、さらにタイマ割込処理ルー
チン1回の実行時間を含む)が、タイマ割込周期(例の場合1ms)を超えない限り、
誤差が蓄積されることはありません。

>>673
どんな教育を受けたのか、この程度の簡単なスケルトンプログラムがなぜ
理解できないのが、まったく理解できませんね。

ケチをつけるから、たとえば8MHzのmega8の場合で、どの部分の処理(遅れ)
が原因で、具体的に何クロックなり何μ秒遅れるのか、数字を出してみては?
675774ワット発電中さん:2010/05/09(日) 23:20:59 ID:Sfcj8tQd
>>674
アセンブラ使うのは、早いから・遅いからじゃないんだよ。
クロック数を正確に読まなきゃいけない場合にCとかだと、どこにオーバーヘッドが
出てくるかとか、最適化オプションでどうなるかとかで、実行コード変化して、実
クロック数が読みにくいんだ。その上、困るのがコンパイラのバージョンによって、
これらが変化しちゃう可能性があるし・・・
676655:2010/05/09(日) 23:37:50 ID:zqFWrpUU
最初に突っ込んだ俺が責任とって解説してみる。
いや実は俺が突っ込んだのは別にそこじゃなかったりするんだけど…

SetTimeOut(&nStartTime37ms, &nEndTime37ms,37); // 1
...
CheckTimeOut(nStartTime37ms, nEndTime37ms); // 2
SetTimeOut(&nStartTime37ms, &nEndTime37ms,37); // 3
hoge_37ms();
...
というフローをひらくと、

nStartTime37ms = getCurrentTime(); nEndTime37ms = nStartTime + 37; // 1相当。
...
if(getCurrentTime() > nEndTime37ms ) // 2中のif文成立時
nStartTime37ms = getCurrentTime(); nEndTime37ms = nStartTime + 37; // 3相当。
hoge_37ms();
...

3 の正しい実行文はもちろん
nStartTime37ms = nEndTime37ms; nEndTime37ms = nStartTime37ms + 37;
でないといかんよな。



677774ワット発電中さん:2010/05/10(月) 00:25:27 ID:a0GmBZ+A
>>675
ID:fxRB9Qel が何を勘違いしてケチをつけているのかは判りかねますが、
そんなクリティカルなレベルの話じゃないです。 それに、AVR-GCCに限
らず、大抵のCコンパイラは、アセンブラのソースコードを吐き出すことが
できます。

実クロックを計算したければ、ステップ数を数えれば済みますし、厳密な
タイミングが要求される部分だけ、Cコンパイラが吐いたアセンブラソース
の一部を手作業で最適化してビルドしたり、インラインアセンブラで書く
なんてことだってできますよ?

コンパイラ使わない人が、コンパイラのバージョン違いの問題を心配しても
杞憂だと思いますが?
678774ワット発電中さん:2010/05/10(月) 00:27:02 ID:a0GmBZ+A
>>676
> 3 の正しい実行文はもちろん
> nStartTime37ms = nEndTime37ms; nEndTime37ms = nStartTime37ms + 37;
> でないといかんよな。

理論上はそうだけど、if()内のCheckTimeOut()が成立してから、SetTimeOut()
を呼び出すまでの間が約1ms以上もかかるような、極端に遅いクロックで動い
ていない限り、nTickCountの値が更新されない(割込は発生しない)ことは保証
できるという前提なんだよ。

>>658 で、わざわざ関数の順序を入れ替えたのは、CheckTimeOut()〜
SetTimeOut()間の冗長性をなくし、タイミングを短くして、よりコードの
安全性を高めるため。

仮に、if()が全部成立して、hoge_37ms(), hoge_100ms(), hoge_240ms()、
3つのSetTimeOut()がすべて実行された場合でも、ループ全体が1ms以内で
廻らない場合は、設計段階での要求性能の見積もりと、ハード/ソフトの
バランスに問題がある。

処理能力が要求を満たしていないのだから、いくら割り込みルーチン内で
個々の関数を直接関数を呼ぶように書き換えたところで、毎回の呼び出し
の遅延は少なくなるものの、一定周期で処理落ちが発生することになる。

多重割込を許可していても、イベント発生時にまだ前回のイベント時に
実行した関数が終了していなくて再突入できない。リエントラントに
記述しても、再突入すれば、いずれスタックオーバーフローになる。
679774ワット発電中さん:2010/05/10(月) 00:41:23 ID:A+SXVVuW
事実の軽重は別に問題になってない。
問題になってるのはあくまで理解できてるかどうかだけ。


> を呼び出すまでの間が約1ms以上もかかるような、極端に遅いクロックで動い
> ていない限り、nTickCountの値が更新されない(割込は発生しない)ことは保証
>できるという前提なんだよ。

問題にされているのかは理解できたようだから話は終れるね >673
680774ワット発電中さん:2010/05/10(月) 01:02:32 ID:WkHX8RM+
>>678
>nTickCountの値が更新されない(割込は発生しない)
あのな、
CheckTimeOutと、SetTimeOutの間でも割り込みは起きるだろ。
その間にもミリ秒カウンタは更新される可能性があるわけ。
このペアをいちいちcli/seiで囲むか?馬鹿げてるよな。
GetCurrentTimeにしても、ループ中1回呼ぶだけでいいのに
何度も呼んだりしてるし、君のコードは冗長すぎるの。
性能や能力とかの話以前の問題なの。

>>679
いや、理解できてないと確信したよ
疲れるよ
681774ワット発電中さん:2010/05/10(月) 01:09:13 ID:a0GmBZ+A
>>679 (==655?)
理解できたとか、理解できてないとか言うレベルではなく、あくまで
事前にそれも含め >>678 の説明どおり、想定して書いているんだが?

>>655
> CheckTimeOut() 相当の動作は nTickCount の割り込みハンドラ内にもってくるようにしないと
> 37ms毎の処理、100ms毎の処理、240ms毎の処理、とか必要になった日には死ぬる。

CheckTimeOut()相当の処理を割込ルーチンに書かなくても、 >>657
コードはちゃんと条件を満たすよ?

それと、繰り返しになるけど、たとえ割込ハンドラ内に判定ルーチンを
移動しても、フラグ判定処理がメインルーチン内にある限り、フラグ
判定の周期はループ内のhoge_XXms()等の処理時間の影響を受けるので、
あくまでフラグ変数が立つタイミングがより正確(プリミティブ)になる
だけで、呼び出しの遅れやジッダは解消されない。

また、ハードの処理性能が足りていない場合、割り込みに埋めても、
処理落ちは避けられない。
682774ワット発電中さん:2010/05/10(月) 01:29:45 ID:a0GmBZ+A
>>680
> CheckTimeOutと、SetTimeOutの間でも割り込みは起きるだろ。
> その間にもミリ秒カウンタは更新される可能性があるわけ。

仮にその間の割込が1回発生したとしても、それが繰り返し発生し
うる条件が成立するのは、ループ全体の最長コードがタイマ更新
周期(1ms)で廻らない場合に限られる。

そんな説明もしなきゃならんのか?

> GetCurrentTimeにしても、ループ中1回呼ぶだけでいいのに
> 何度も呼んだりしてるし、君のコードは冗長すぎるの。

汎用関数化してコード量を優先で最適化したらああなる。

速度が優先されるならGetCurrentTime()をループの頭に書いて、
CheckTimeOutTime()の判定をインライン展開してやればいい。

ケチつけるのは、これで最後?
683774ワット発電中さん:2010/05/10(月) 14:58:09 ID:iFyneVl9
>>678
なんてか他に割り込みを使うと使い物にならないってことかな?
684774ワット発電中さん:2010/05/10(月) 21:23:50 ID:WkHX8RM+
>>682
廻らない場合に限られるって、
hoge関数には何の規定もないんだから、
廻らない場合も考慮の内に入れるだろ
37msecが最短周期なら、ご自分で示した
>>664のように、hoge関数はその時間を
費やすまで戻ってこないかもしれない
そういうとこまで考えが及んでないのに
汎用も糞もないだろ
685774ワット発電中さん:2010/05/10(月) 21:46:07 ID:sRpDgNI/
http://moon.gmobb.jp/hero/

> 自己中人間は嫌いです。
>
> そもそも上記のような非難/批判を行う人物は自己中心的な人物と思われます。
> その主張は単に自分にとってだけ都合が良いことの羅列です。
> または、他者を攻撃することによって自己の優位性を主張するだけです。
> 気軽に発言できる環境のせいで、このような発言(人物)が増えているのは残念なことです。
> このような人物の存在も、公開中止の遠因です。
686774ワット発電中さん:2010/05/10(月) 22:25:28 ID:Fm/9AKCb
はいはい
687774ワット発電中さん:2010/05/10(月) 23:01:18 ID:dfY6UbyY
前提条件というか、動作上の仮定に差があるのに、
それが同一と認識しているとして会話しているような気がする…
688774ワット発電中さん:2010/05/11(火) 00:58:10 ID:NNj83pjy
上のやりとりを読む気にならないから、
誰か何がどう揉めているのか要約してぷりーず
689774ワット発電中さん:2010/05/11(火) 01:35:07 ID:cIr8D7px
>>688
お互い違うものを見て、白だ黒だと議論
お互い過ちに気付きつつも、引くに引けず
仕方ないので重箱のスミをツンツン合戦

お題は「タイマ割込みを用いた周期処理における最適コードについて」
690774ワット発電中さん:2010/05/11(火) 04:29:36 ID:R32SU0yX
前提条件無視して自分のしゃべりたいことをしゃべる

それがこのスレの特徴だと思う

他人のレスなんて自分がしゃべりだすきっかけに過ぎない
691774ワット発電中さん:2010/05/11(火) 21:44:11 ID:pF8dGQvL
このスレというより、この板全体でよく見る光景
近視眼的なハード屋が色々突っ込まれて
自分の正当性を保とうと長文で言い訳の応酬を始める
692774ワット発電中さん:2010/05/11(火) 23:23:55 ID:N26t5sXJ
レスを読んでたら何か書きたいことが発生して、
前後の整合性とかは関係なく書きたいことを書く
693774ワット発電中さん:2010/05/11(火) 23:34:21 ID:0JiaWCVH
orz

HERO'S Download
http://moon.gmobb.jp/hero/

20年近くに渡って技術情報の提供を行ってきましたが、現状ではこの先の生活が成り立たなくなり、また、関係方面の協力も得られず、本格的な求職(就職) を目指さざる得ない状況となりました。
また、求職(就職)期間が長引いた場合に、少しでも長く生き延びるために、資料を第三者に売却する予定です。
そのため、告知日をもって資料の公開を中止し、売却までの間は月額閲覧料3万円での有料にします。
694774ワット発電中さん:2010/05/11(火) 23:51:00 ID:wHln8ydD
過去ログよめw
695774ワット発電中さん:2010/05/12(水) 00:07:14 ID:KCSAc+wr
な、なんだってー
696774ワット発電中さん:2010/05/12(水) 03:54:35 ID:CALd40ia
既出
697774ワット発電中さん:2010/05/12(水) 07:24:15 ID:iMTF4e6m
あの誤訳直訳だらけのデータシートはこの人が作っていたのか
別に公開停止でも英語版読めばいいし、
こんなもんを有料で売ろうとか、頭おかしいんじゃないの?
698774ワット発電中さん:2010/05/12(水) 08:15:33 ID:GR+nHmWo
>>697
中の人がもともと被害妄想に陥りやすいタイプだった上に
仕事首になったのがトリガーになって一気に悪化したのだろうて

貧すれば鈍する
699774ワット発電中さん:2010/05/12(水) 10:31:12 ID:RRV369QN
AVR studioでCで書いている時に
実際その関数がどのくらい時間がかかるかってどうやって調べたらいいんでしょうか?
関数単位でアセンブラにしてみるとかできるんですかね?
(ステップ数Xクロック ですよね)
700774ワット発電中さん:2010/05/12(水) 11:22:56 ID:IZ94wmuh
>>699
手っ取り早く調べるのは、シミュレータ(AVR Simulator)でブレークポイントを
設定して、デバッグ実行して走らせてみるとか。たぶんプロジェクトのクロック
設定を参照していて、μ秒単位で表示してくれたと思う。

まず、数えたい範囲の開始行にブレークポイントを設定しておいて、デバ
ッグ開始すると、設定したブレークポイントで止まるので、次に終わりの
行にカーソルを移動して、カーソル行まで実行を選ぶと、カーソル行まで
実行したら、またブレークが掛かる。

これなら、自分が書いたコード以外(例えば標準ライブラリ関数内)の範囲
も含めたステップ数も数えてくれるかと。ただ、ハードウェアのフラグ待ち
といった、ループ回数が変化したりする箇所を含むと、面倒かも。

あとは、ロジアナやオシロ、周波数カウンタ等を適当なI/Oポートに繋いで、
時間を測定したい関数等の前後にポートをON/OFFするコードを埋め、無限
ループで繰り返し呼びだすテストコードを焼いた実機で動かしてポートの
ON時間を測定する。

繰り返しパルスになるので、安いアナログオシロでも見える。
701774ワット発電中さん:2010/05/12(水) 13:02:03 ID:RRV369QN
なるほど、どうもです
702774ワット発電中さん:2010/05/13(木) 11:22:26 ID:/5nOVme+
割込み処理を高速化したいので変数を以下のようなレジスタ宣言にしてみました。

register unsigned char gXX asm("r2");

__attribute__ ((naked))
ISR (TIMER1_COMPA_vect)
{
 asm("push r0");
 asm("in r0, 0x3f");
 asm("push r0");

 PORTB = gXX;

 asm("pop r0");
 asm("out 0x3f, r0");
 asm("pop r0");
 asm("reti");
}

この「r2」をプログラムの他のファイルの関数で「使用禁止」と宣言するには
どうすれば良いのでしょう?

703774ワット発電中さん:2010/05/13(木) 12:41:57 ID:htLmMxD6
ほかに考えるべきことがあるだろうに
704774ワット発電中さん:2010/05/13(木) 13:13:20 ID:sKRN+cQg
>>702
そのregister〜宣言をヘッダファイルに書いといて、
ヘッダファイルを全ソースでインクルードさせるだけ

705774ワット発電中さん:2010/05/13(木) 13:20:38 ID:HrqHFj44
>>703
このスレにおける典型的なレス
706774ワット発電中さん:2010/05/13(木) 15:00:01 ID:EBqaNxBq
>>704
それはソースでgXX変数の宣言が共有されるだけで、r2への変数の割り当てを
コンパイラへ指示したことにならないのでは?

>>702
仮に自分で全てソースを書く条件であればよくても、標準関数などの内部で
r2を使用している可能性がある(関数の出入り口でPUSH/POPは行う)けど、r2が
何か値を保持している時に割り込みが発生すると、その時点でバグになるの
では?
707702:2010/05/13(木) 17:05:44 ID:/5nOVme+
コンパイラのオプションで

-ffixed-レジスタ名

というのがありました。
708774ワット発電中さん:2010/05/13(木) 17:24:44 ID:sKRN+cQg
素で>704の方法しか知らんかった
709774ワット発電中さん:2010/05/13(木) 21:02:37 ID:LBV7g+fL
コンパイル済みのライブラリは大丈夫なの?
710774ワット発電中さん:2010/05/13(木) 21:13:36 ID:EBqaNxBq
>>709
一般的に、リンカはオブジェクトをメモリセグメント単位に結合して、オブ
ジェクト内の外部参照の未解決シンボルを計算して埋めていくだけだから、
まずダメでしょ。

ライブラリ(.a)は、オブジェクト(.o)の集合でしかない。

全てと言わないけど、最低限使っているライブラリ関数は同じオプションを
付けて再ビルドしないと。自分で書いたコードからは直接呼んでいなくても、
別のライブラリ関数から下請けで呼び出されている可能性もある。
711774ワット発電中さん:2010/05/14(金) 04:04:45 ID:NMxHxLNX
>>702
r2の使用禁止が上手く行ってる前提だけど
push pop要らなくね?
712774ワット発電中さん:2010/05/14(金) 07:05:42 ID:7Juc8bLq
SREG退避レジスタも用意すればin outだけで済む
713774ワット発電中さん:2010/05/14(金) 21:48:53 ID:osAU3uXD
>>697 俺は右も左も解らずに自称OJTで放り出された新入社員時代に
この人のデータシートがすがれる希望だったから、そんなことはとてもいえない

でもデータは削除しろってことだから、全部消した
いままでありがとう
714774ワット発電中さん:2010/05/14(金) 21:53:38 ID:7Juc8bLq
あ、PORT*にoutするだけならSREG退避も不要か
715774ワット発電中さん:2010/05/16(日) 21:55:30 ID:7ThLxC55
AVRは簡単すぎて話題がないな
おまえら最近どうよ?
716774ワット発電中さん:2010/05/16(日) 22:08:22 ID:uZoZIFPX
tiny2313で1秒づつカウントアップしていくコードを以下のように書いたのですが、
これだと3,4分で1秒くらい進んでしまいます。
せめてもう少しマシな精度にしたいのですが(1日で1秒以下くらい)何か改善できる
ところ等あったら教えてください。

12Mhzの水晶外付けです。他に水晶は持ってないです。
内部発振でもいろいろ試してみましたが、コレが一番マシだっだので。

volatile uint8_t led;
volatile int cnt = 0;

#define TCNT0_BOTTOM (256-234);

ISR(TIMER0_OVF_vect)
{
  TCNT0 = TCNT0_BOTTOM;
  cnt++;
  if (cnt == 50) {
    cnt = 0;
    led++;
    PORTB = led;
  }
}

int main(void)
  PORTB = 0b00000001;
  DDRB = 0b11111111;
  led = 0;
  PORTB = led;
  TCNT0 = TCNT0_BOTTOM;
  TCCR0B = 5;
  TIMSK = _BV(TOIE0);
  sei();
  for (;;){}
}
717774ワット発電中さん:2010/05/16(日) 22:44:26 ID:cAQLkXgp
32.768KHzを使うとかは
718774ワット発電中さん:2010/05/16(日) 22:58:49 ID:7ThLxC55
>>716
TIMER0_OVF_vectじゃなくて、
TIMER0_COMPA_vect使う方法でやれよ。
この方法でも普通の±50ppmの水晶で1日4秒の誤差が出る。
1日1秒差まで抑えるには±11ppm以下の水晶がいる。
719774ワット発電中さん:2010/05/16(日) 23:17:13 ID:oJyvillh
本気でやるならRTC内蔵か外付けだな。
720774ワット発電中さん:2010/05/16(日) 23:21:04 ID:xT/ZELyu
>716 の改善の範囲ではこんなかんじ

#define TCNT0_BOTTOM (256-125);
...
  TCNT0 += TCNT0_BOTTOM; // = じゃなく +=
...
  if (cnt == 375) { // 12MHz=375*125*256
...
  TCCR0B = 4;    // 256分周
721774ワット発電中さん:2010/05/16(日) 23:34:46 ID:cAQLkXgp
ある程度実測して補正値を内蔵すると限界まで精度は上がるけど、
それでも温度依存があるので、大したことない
722716:2010/05/17(月) 08:57:56 ID:kVHGPSZi
みなさま御親切にどうもありがとうございます。
週末あたりに時間とれたら、718, 720さんのを試してみます。
723774ワット発電中さん:2010/05/17(月) 10:38:36 ID:/sNI62XQ
サーミスタでもつけて温度依存分も合わせて補正かける手もある.
RTCに使われるような音叉型は温度依存が結構あるんで,精度得たければ
何らかの方法で温度補償しないとな
724774ワット発電中さん:2010/05/17(月) 10:50:28 ID:3w8qHjDV
電波時計からもらう
725774ワット発電中さん:2010/05/17(月) 12:45:59 ID:OXvI2Ldu
秋月の12.8MHzの水晶発振器が精度良かったんだけど終了したんだよな
726774ワット発電中さん:2010/05/19(水) 09:26:21 ID:Xr4sV/hw
これおもしろそうだ
http://jp.makezine.com/blog/
727774ワット発電中さん:2010/05/20(木) 15:46:19 ID:95sIAsdw
TB62726 とかのラッチ付きシフトレジスタ LED ドライバがあるよね
これを拡張したものを AVR で作りたいんだけど、むずかしいかな?


本来はラッチ信号入れたタイミングで貯めていた 16bit 分のバッファを直接対応したピンに吐き出すよね
これを、24bit 受け取れるようにして、それを 8bit ずつに分割
さらに 3 つできた 8bit を PWM に変換して 3 つのピンに吐き出したい

当然、PWM を吐き出している間も裏ではビットがシフトしていって、次のラッチ信号が入るタイミングでデューティー比を更新
ビットはどんどん次の AVR にシフトしていく
つなげればつなげただけ増やせる感じ


制御したい LED は RGB のフルカラー LED で、直列に 3 つ配列
はじめは TB62726 使って、それぞれの色に 5 ピンずつ割り当てて値の違う抵抗で電流を制御しようと思ったけど、低電流時の輝度の変化差と高電流時の輝度の変化差が違いすぎて変化にムラができてしまうので断念
ATtiny2313 で 4 つ PWM が吐き出せるみたいだから、上記内容をこれでできるかなと思った次第です
728774ワット発電中さん:2010/05/20(木) 18:12:35 ID:noWsxxG/
>>727
どこをどう拡張したいのか、何をどうしたいのか、サパーリ判らんケド、
DOUT端子→DIN端子で3個のドライバを芋づる式に繋げばいいんでないの?

そういうことじゃなくて?

> はじめは TB62726 使って、それぞれの色に 5 ピンずつ割り当てて値の
> 違う抵抗で電流を制御しようと思ったけど

TB62726(16出力のうち15本のみ使用)につなぐLED1個(各ピン)毎に、R,G,Bで
異なる電流制限抵抗を入れて、輝度をそろえようとしたのならダメ。

TB62726は単なるNPNオープンコレクタ等と違って、内部に定電流回路を抱え
ているから使い方が間違ってる。 それとも、TB62726の外部に付ける電流
値設定用の抵抗を、ポート出力とフォトCdSか何かで可変にしようとした?

ENABLEピンをPWM制御すれば、輝度の制御は可能だけど、R,G,Bそれぞれに
別にドライバIC(計3個)を使っても、ドライバIC単位で同じ輝度になるから、
個体差のばらつきは除いて、繋いだフルカラーLEDは、全部同じ色合いに
なるよ?

フルカラーLED対応のLEDドライバだと、アノードコモンLED用で9ch出力だけど、
I2Cバスに最大で64個接続できて、出力ピン毎に128段階のPWM制御できる
「TB62779」ってのがあるね。9出力だから、1個でRGBフルカラー3個まで制御
できる。

ttp://www.semicon.toshiba.co.jp/openb2b/websearch/productDetails.jsp?partKey=TB62779FNG

I2Cバス対応ではないが、16-ch出力でピン毎のPWM制御が可能な定電流ドラ
イバは、「TB62721」や「TC62D722」ってのがある。しかし、いつのまにか、
TB62706だけじゃなくTB62726も既に東芝のラインナップから消えてるな。

マキシムやTI、Avago(旧HP)あたりにも同様のドライバはある。
729774ワット発電中さん:2010/05/20(木) 18:32:21 ID:6ezLHfev
USBaspが720円だってさ
なんかもう書き込み器でガチャガチャ悩むのが、馬鹿馬鹿しくなるような値段だな

http://www.aitendo.co.jp/product/2312
730774ワット発電中さん:2010/05/21(金) 08:59:03 ID:2GIBK1ze
書き込み器が要らないマイコンにしてしまっている漏れ
731774ワット発電中さん:2010/05/21(金) 09:14:41 ID:z3uNBn56
レス有難う!
分かりにくかったようなので


ttp://www.dotup.org/uploda/www.dotup.org901190.gif
一応このチップはシフトレジスタで、16bit づつシフトしながらバッファして、あふれた分は次のチップに回していくよね
で、ラッチ信号入れたタイミングでバッファの内容をピンに反映

ttp://www.dotup.org/uploda/www.dotup.org901192.gif
それで、各色に 5bit ずつ割り当てて、こうやって電流調節して色を表現しようとしたの
ちなみに各色 5 ピンの抵抗は 0.5mA・1mA・2mA・4mA・8mA 流れるように調節してあって、電流値は0.5mA 単位で調節できるようにしてあったの
でも、これだと当然弱い電流の時の輝度の変化の差は大きいけど、大きい電流の時の輝度の変化は小さい
(0.5mA→1mAの変化は大きく輝度に反映されるけど、15mA→15.5mAの変化は輝度にはほとんど反映されない)
だから、もう PWM で輝度調節したほうがいいかなと思って

ttp://www.dotup.org/uploda/www.dotup.org901197.gif
なので、シフトビットの振る舞いは残して、ラッチした時の動作はこういうふうにしたいと漠然に思った
けど、上手くいくのかなーっていう話でした
732774ワット発電中さん:2010/05/21(金) 09:27:54 ID:z3uNBn56
・フルカラー LED を使って、自由に色を表現できる
__(輝度云々はこのため、独立して調節できないと色を設定できない)

・繋げれば繋げるだけ増やせる
__(何千個とかでも。アドレス指定では、指定できるアドレス分だけしか繋げられない)

・PWM を3ライン独立して自由に設定するには ATtiny2313 では無理 261 なら行ける?

・これ以外に、ワンチップでフルカラー LED の色を自由に変えられる上、次々にシフトさせる方法はあるのか


このへんで悩んでます
AVR なら解決できるかな
733774ワット発電中さん:2010/05/21(金) 10:45:55 ID:kRP1/pKK
>>732
ラッチ信号はどのようにつなげるんですか?
数珠つなぎ?並列?

並列の場合はつなげる数によってバッファとか入れないと駆動できないかも。
数珠つなぎの場合は若干遅延がはいると思うけど人間には気づかないか。
734774ワット発電中さん:2010/05/21(金) 11:11:32 ID:z3uNBn56
>>733
一応、本体は

 ・シリアルデータ→データ入力ピンへ
 ・同期信号→同期入力ピンへ
 ・ラッチ信号→ラッチ入力ピンへ

この三つを出力して、受け側の振る舞いは

 ・同期パルスがHになったタイミングで、データ入力ピンを読み取り内容をバッファに追記
__例:
__バッファの内容が 10111000 10101100 01011100 で、同期パルス入力ピンがHになった時、
__データ入力がHなら 01110001 01011000 10111001←
__データ入力がLなら 01110001 01011000 10111000←
__繰り上がった1は、データ出力ピンに反映して、次の AVR のデータ入力ピンへ

 ・同期パルスがLになり、再びHになったタイミングで...

 ・これを 24bit 分繰り返して、最後に同期パルスがLの時にラッチ信号をHに
 ・このタイミングでバッファの内容を各 PWM のデューティー比に反映
 ・ラッチ信号がLに落ち、再びはじめに戻る

 ・以降連続してシフト


ちなみに、同期信号はすべての AVR に並列に接続
同期信号が「Hのタイミングでデータ入力ピンを読み取る AVR」と「Lのタイミングでデータ入力ピンを読み取る AVR」を交互に配置する予定

これで行けるかな?
735774ワット発電中さん:2010/05/21(金) 11:19:34 ID:erdIU4Az
>>731
> ttp://www.dotup.org/uploda/www.dotup.org901192.gif
> それで、各色に 5bit ずつ割り当てて、こうやって電流調節して色を表現しようとしたの

フルカラーLEDが1個しかないことを、やっと理解した。(w

> ちなみに各色 5 ピンの抵抗は 0.5mA・1mA・2mA・4mA・8mA 流れるように調節してあって、
> 電流値は0.5mA 単位で調節できるようにしてあったの

この抵抗値の計算をどうやってます? 単純にΩの法則で ...

R=VLED(12V)-固定Vf(例えば2V)/電流値

とやっても、TB62726のブロック図を見れば判るけど、出力ピン内部は、カレントミラー
回路相当の定電流回路が入っていますので、外部の負荷がばらついていたり、変化しても、
勝手に定電流化する方向へ働きます。

それと、人間の目の感度は対数(log)で、LEDに限らず素子間の個体差のばらつきがある
上に、明るさと電流値は必ずしも比例しないです。

> ttp://www.dotup.org/uploda/www.dotup.org901197.gif
> なので、シフトビットの振る舞いは残して、ラッチした時の動作はこういうふうに
> したいと漠然に思った

TB62726ではなく、AVR内蔵タイマのPWM出力(OC1A等)を使うということなら可能かと。
736774ワット発電中さん:2010/05/21(金) 11:21:50 ID:z3uNBn56
>>733
ごめんなさい、ぜんぜん違う話してたw
確かに、数が増えるとキツイかもしれませんね
バッファ入れるっていうのは具体的にどういう事でしょ?

問題なければ数珠つなぎでもいいかな
737774ワット発電中さん:2010/05/21(金) 11:25:46 ID:erdIU4Az
>>732
> ・PWM を3ライン独立して自由に設定するには ATtiny2313 では無理 261 なら行ける?

ATtiny2313や、もっとピンが少ない8ピンのAVRでも十分可能だと思う。

20MHzのATmega328Pで、タイマ割込を1本だけ使い、ソフトI/OをON/OFFして、フルカラー
LEDのR,G,BをPWM制御で動かしたことはあります。内蔵タイマのPWM機能は使っていません。

人間は、50〜60Hz以上で点滅しているとちらつきが判別できなくなるので、その256倍
の周期(約15kHz≒66.6us周期)のインターバル割込を使い、タイマ割込内で、割込毎に
インクリメントされる8bitのカウンタ変数の値と、R,G,Bそれぞれに割り当てたPWMパルス
幅(0〜255)と比較して、汎用出力に設定したポートをON/OFFしています。

R,G,BのPWM変数は、255から引いた値にすれば、8bitのカウント値が設定されたPWM変数の
値を超えたら対応するポートをONし、カウンタ変数が、オーバーフロー(255→0)する時に、
無条件にR,G,Bを全てOFFするようにしたかと。

デバイス依存のハードウェアリソースは、タイマ1本だけで、あとは66.6us以下の周期の
割込を十分廻せるクロック速度と、コードを格納できるROM容量があればいけるかと。

簡単なコマンドインタプリタを載せて、シリアル(232C)通信経由でホスト側から、

> R=255 ← RのPWM値を255に設定
>
> R? ← 現在のRのPWM値を問い合わせ
> R=255 ← 応答
>

ってな風に、パラメータを設定できるようにした。 最後の状態は、EEPROMに
保存するようにしたらいいかも。
738774ワット発電中さん:2010/05/21(金) 11:28:17 ID:erdIU4Az
>>732
> ・繋げれば繋げるだけ増やせる
> __(何千個とかでも。アドレス指定では、指定できるアドレス分だけしか繋げられない)

芋づる式なら無制限に増やせるけど、単純なクロックとラッチ信号だけでは、
一部の書き換えでも全てのデータを送る必要があるので、データが貫通するまで
の時間が芋づるの長さに比例する。 それゆえに、輝度や点灯パターンの表示更新
レートは遅くなるよ。 あと、ハード的な仕掛けで自動検出もできるけど、制御
側は、芋づるにぶら下がっている個数を知っている必要がある。

それと、芋づる式でもアドレスを持たせていれば、特定部のみ更新(自分のアド
レスではないデータは華麗にスルー)や、グローバルアドレス指定で、全点灯/
全消灯といった制御もできるので、一長一短。

> ・これ以外に、ワンチップでフルカラー LED の色を自由に変えられる上、次々に
> シフトさせる方法はあるのか

輝度の制御はPWMでやるとして、ケーブルの最大総延長や、ノード間の長さに
よって、通信のフォーマットや物理層の仕様を考える必要があるように思える。
TTLレベルのI2CやSPIでは、さほど距離を伸ばせない。

引き伸ばす芋づる式なら、RS422やRS485準拠にしといた方がなにかと便利。
739774ワット発電中さん:2010/05/21(金) 11:33:10 ID:z3uNBn56
>>735

ttp://www.dotup.org/uploda/www.dotup.org901319.gif
いちおう、3つは直列に繋ぐ予定
電流値は単純にΩの法則の予定でした

どの道、輝度制御するなら PWM が妥当ってことかな
740774ワット発電中さん:2010/05/21(金) 11:35:32 ID:vPdJI/dG
>>732
LEDの光度調整ぐらいなら本物のPWMじゃなくても、
ポートの各bitをオルタネートさせれば、2313のPORTBの
8bitを丸々LEDの制御に使えたりするんじゃないかね。
デューディ比の生成は101010・・で50%、100100・・で33%とか、
パターンを作成しておいて、それを毎回必要bit分合成して
同じタイミングでセットするだけ。

それとシフトレジスタのスレーブ側でAVRを使う場合、
クロックは汎用ロジックIC程速くはできないよ。
741774ワット発電中さん:2010/05/21(金) 11:44:45 ID:z3uNBn56
ID:erdIU4Az

確かに、ソフトウェア制御の PWM でも十分そうですね!
そのへんは十分検討しよう

同時に全ての LED の動作を開始する必要は今のところ無いので、スタートしてから順番に光ってくれればおkです

アドレス云々になってくると、何らかの形でアドレスを指定したユニークなユニットが必要になるので、出来れば避けたい
繋げられる数に制限もでるし


なんか、皆さんのおかげで出来そうな気がしてきました
シフトレジスタよりも安いICでそれ以上の高機能ICを創り出せちゃうんだからAVRはやめられませんなー
742774ワット発電中さん:2010/05/21(金) 11:50:49 ID:z3uNBn56
>>740
そうか、なるほど確かに本物の PWM を使う必要はないかもしれないですね
でも、8bit で輝度 8 段階、16bit で 16 段階って、まんま段階が多いほど一回の長さが増えますよね

本体内蔵の 8M で動かしてる場合、実際何段階までは自然に輝度を変えられるんだろう

いちおう流れる速度、ラッチ信号が出てから次のラッチ信号が出るまでの時間が 0.1 秒以内ならいいかなと思ってます
743774ワット発電中さん:2010/05/21(金) 12:15:35 ID:erdIU4Az
>>741
> 同時に全ての LED の動作を開始する必要は今のところ無いので、スタートして
> から順番に光ってくれればおkです

ソフトで制御するなら、どうにでもなるんで、PWMパラメータ値の書き換え
と、表示への反映を別コマンドにすればいい。

UARTを内蔵したAVRを使って、ノード間の物理層はRS485のマルチドロップに
した方がいいように思うな。 これなら、TxD/RxDと電源/GNDを含めて配線は
4本で、通信速度にもよるけど、最大延長1kmくらいまでいける。

> アドレス云々になってくると、何らかの形でアドレスを指定したユニークな
> ユニットが必要になるので、

ファーム書き込む際に、自動でシリアル振ってくれるISPソフトで、EEPROMなり、
フラッシュの一部に固有アドレス書いておけばいいだけでは? まぁ、シール
を貼るなりして、書いたID番号が判るようにしておかないと、後でパニックに
なるけど。(w

> 出来れば避けたい繋げられる数に制限もでるし

それ以前に、数の制限については、電源廻りをどう解決するかを考えておく
必要があるだろうね。 仮に1ノード当たり30(R,G,B各10mA)〜300mA(R,G,B
各100mA)程度でも、100個繋げば合計で3A〜30Aに、1000個も繋げようもん
なら、合計で30A〜300Aになる。

まさか、ACアダプタを100個,1000個使うとか、1個の電源から芋づる式配線
を伸ばして、電源/GNDにAWG 8(芯線太さ約3.2mmΦ)とかの太い線を使う気じゃ
ないよね?

電源は、シリーズ接続するLEDの順方向降下電圧の和よりやや高めの電圧
を供給し、ノードを制御するAVR周辺の電源は、AVR自身の内蔵PWMで降圧式
SWレギュレータを構成して安定化させると、発熱とか色々よさげ。
744774ワット発電中さん:2010/05/21(金) 19:00:47 ID:nAatVlAj
>>743
なんとなくこれを思い出した
http://su-u.jp/juju/%B5%A4%A4%DE%A4%B0%A4%EC%C6%FC%B5%AD/2003-05-28/attach/2003-05-28.jpg
8pinのAVR使ってるっぽい
745774ワット発電中さん:2010/05/21(金) 22:46:55 ID:erdIU4Az
>>744
ちなみに、何れしゅかコレ? アキバのUDXビルあたりの街路樹にまとわりついて
いる、季節モノのLEDの親戚か何か?
746774ワット発電中さん:2010/05/22(土) 00:52:24 ID:0ZMwMvDE
>743 に似たような構成でDMX512という規格があります
250kbpsでRS485で通信です
LEDのイルミ制御にも使われているので興味があれば調べてみては?
747774ワット発電中さん:2010/05/22(土) 12:45:22 ID:ggRd0QmS
AVR studio上の設定でmakefileにASRC = を追加するにはどうすればいいのでしょうか?
ソフトUARTを使おうと思っているのですが、公開されているものはインラインアセンブラを含むものがほとんどで
アセンブラの関数を認識できていません・・・
748774ワット発電中さん:2010/05/22(土) 13:45:25 ID:3ovbqkAC
>>747
依存関係も書かなきゃだめだよ
WinAVR付属のMFileってツールで作成されるMakefileが参考になる
749774ワット発電中さん:2010/05/23(日) 09:41:31 ID:fzR8oNYr
ちーっす。ご無沙汰です。
ATmega48/88/168 チラ裏翻訳 再開しました。
1-5章 ほとんど概要的内容ばっかりだけど、お時間あったら見てみてください。
ttp://awawa.hariko.com/chira-ura/index.html

自転車転倒で手首の骨やっちゃって、しばらく休んでました。
PCもだけど、ハンダ付けと工作が可能になったのがうれしい。
750774ワット発電中さん:2010/05/23(日) 14:27:30 ID:dVW7rTrI
うわぁ。。。とりあえず、乙です。
無理しないでくださいねー
751774ワット発電中さん:2010/05/23(日) 15:01:15 ID:UUMrwv60
図は、元絵を貼りつけて、適当なドローイングツールでなぞると
そっくりだけど自作の図ができる
752774ワット発電中さん:2010/05/23(日) 17:56:41 ID:P85UNges
>>749
す、すげぇ!がんばってくださいね!
753774ワット発電中さん:2010/05/23(日) 18:48:08 ID:9rZ6yel/
>>749
チラ氏ガンバレ
手首の骨ガンバレ
754774ワット発電中さん:2010/05/23(日) 19:14:07 ID:9Zl8lBSN
「切り替え」は「切り換え」にした方がよろしいかと
755774ワット発電中さん:2010/05/24(月) 07:37:49 ID:tZM89Y4G
AT90USB1287を使ってUSBデバイスを初めて作ってみようと思います。

ホスト機能はいらない場合、UIDピンは普通にPE3としてI/Oに使っても良いのでしょうか?
それともフローティングしておくべきですが?

また同時に20台くらい同じ物を繋いで、それぞれ独立に通信する事を考えています。
ProductIDあたりを外部スイッチで変更出来るようにしておけば、普通のHubで繋げばいいですか?
何か気をつける点等あればご教示下さい。
756774ワット発電中さん:2010/05/24(月) 23:20:37 ID:ueXfouHn
気をつける点は、そのおっちょこちょいな点だな。
USBの規格書をもう一度よく読んでみよう。スイッチひとつ分BOMMコストが下がるよ。
757774ワット発電中さん:2010/05/25(火) 20:13:22 ID:hbTD4i0U
とても初心者な質問で申し訳ないのですが
MISO MOSI ピンを頻繁に出力するプログラムを書き込んでしまうと
ISPからプログラムの書き換えなどは出来なくなってしまうでしょうか?

いままさに、そのプログラムを書いてから認識しなくなってしまって。
(H/W構成は一切変えてなくその前までは普通に認識して書き込みもできた)
758774ワット発電中さん:2010/05/25(火) 20:23:50 ID:/5z5q2uu
>>757
ISPから書き込むとき、MISO,MOSIのピンには、他に何か(特にコンデンサとか)が繋がってないですか?
759774ワット発電中さん:2010/05/25(火) 20:30:11 ID:hbTD4i0U
>>758
レスありがとうございます。
マイコン単体とISPのみの回路にしてみてもライターから認識ができず症状は同じです。

書き漏れましたが、SCK ピンも出力をしているプログラムが入っています。

安い(tiny2313)とはいえ、認識しないと残念な気になってしまいます。
また、別のtiny2313で同じH/W構成で認識は行えました。
動作していた時点からfuse等も変更していません。単純にプログラムを書き込んだだけです。
760774ワット発電中さん:2010/05/25(火) 21:04:53 ID:BdcPsTXW
>>759
何らかの原因でFUSEが書き換わったんじゃね?
外部クロック入れてISPしてみれば。
これで行けたことあるけど。
761774ワット発電中さん:2010/05/25(火) 21:18:57 ID:hbTD4i0U
外部クロック入れてもダメみたいなので、速かった寿命と思う事にします
とりあえずはISP関係するピンを自由に使っても通常は問題無いようですので
安心して使えそうです。
ありがとうございました
762774ワット発電中さん:2010/05/25(火) 21:37:49 ID:IB29bO+U
多分その2313は今も正常で、使い手の判断(見分ける技量)によって
壊れたことにされてしまったと思うともったいない。煽りや皮肉じゃなくて。

その2313はとっておいて、数ヶ月後、AVRに慣れたころに見直してみるといいかもね。
本当に壊れててもそのとき処分するんでも遅くはないだろう。
763774ワット発電中さん:2010/05/25(火) 21:47:52 ID:0yjYq3F3
そうですね。
高圧プログラミング(?)等、他にも手段はありそうですが
ISP環境しかない現在ではどうしようもなくなっているので
今後は見分けれるスキルを付けれるように頑張ってみます。のんびりですが。
764774ワット発電中さん:2010/05/25(火) 22:00:53 ID:Zpmp6uX1
そもそも、ヒューズが書き換わって内部クロックになっている可能性がある
なら、外部クロック入れて動かすには、ヒューズの書き換えが必要でしょ。 

聞くならせめて、現在のヒューズ設定を読み出して晒したり、クロックや
RESET等のピンの接続状況や、どんなISPライタを使ってるかくらいの、
最低限の説明くらいしないと。
765774ワット発電中さん:2010/05/25(火) 22:42:42 ID:spHn2a7V
ライターから認識しない状態でもヒューズって読めるの?
766774ワット発電中さん:2010/05/25(火) 23:15:16 ID:Lg4yvHE6
>>765
ライターから認識しない状態ではヒューズも読めないよ。

RESETピンがIO設定になってしまうとクロックどうこうしてもダメす。
767774ワット発電中さん:2010/05/25(火) 23:31:41 ID:yuG+Z0l4
高電圧の書き換えすれば良いんじゃないかったっけ?
ATtiny ヒューズリセッターとかでググって見て

ちがう?俺変な事いってる?
768774ワット発電中さん:2010/05/25(火) 23:34:21 ID:n3H8vpFd
どうしても治したければリセッタ
でも2313って100円の石だから、あきらめるってのも常識的な手だ。

ところで、死んだICの使い道ってなんか無いかな?
769766:2010/05/26(水) 00:00:51 ID:vRYRK7vH
>>767
間違ってないです。自分が説明不足でした。
RESETピンがIO設定になってしまうとISPライタでは直らない、ですね。

12V+αでなんとかなるかな。
リセッター用のArduinoシールドもあるみたいだけど2313より高くなってしまう。
770774ワット発電中さん:2010/05/26(水) 00:20:03 ID:YpS8NCTA
>>769
パラレルポート付きPCを用意出来れば、

8ピン専用HVSライタ
ttp://elm-chan.org/works/avrx/report.html
HVS専用ライタ回路図
ttp://elm-chan.org/works/avrx/avrxp8.png
771774ワット発電中さん:2010/05/26(水) 00:38:40 ID:lcnW7oVN
むしろ、リセッター(あるいはライター)の作成って楽しみが増えたって事にしてしまうとか
772774ワット発電中さん:2010/05/26(水) 01:37:47 ID:tnbzjIWD
単純に壊れただけだと思うが
8ピンデバイス用に高電圧書き込み機はほしい
773774ワット発電中さん:2010/05/26(水) 01:54:28 ID:dCim2YLm
ところで、ライタは自作?
オレのライタはたまに認識しなくなって、適当にUSB引っこ抜いたりしてると治る
あと電源関係やクロック関係のハードが不安定だと動作も不安定に
パスコンは当然必要
774774ワット発電中さん:2010/05/26(水) 01:54:35 ID:DmQSDsIy
>>749
素晴らしい。がんばってください。
775774ワット発電中さん:2010/05/26(水) 19:57:14 ID:FriJwNvB
250V らへんの大容量コンデンサー5本くらい探してます。
コイルガンや細線爆発するつもりです。
譲るまたは、格安でいい方はまずコメ下さい
776774ワット発電中さん:2010/05/26(水) 21:23:11 ID:5kOsSN95
らへんって若者言葉?
777774ワット発電中さん:2010/05/26(水) 21:23:40 ID:Pu9xEpfR
なぜこのスレで聞くの?
778774ワット発電中さん:2010/05/26(水) 21:25:35 ID:GNY7mIBn
構う必要はない
スルー
779774ワット発電中さん:2010/05/26(水) 21:33:38 ID:4Z4ZVznp
>>775
アルミホイルとサランラップをぐるぐる巻きにすれば作れるんでね?
780774ワット発電中さん:2010/05/26(水) 21:33:57 ID:5kOsSN95
>>777-778
なぜって>>775に出てきてるから聞いてみたんだよ?
781774ワット発電中さん:2010/05/26(水) 22:21:56 ID:tnbzjIWD
>>780
君に対する問いかけではないと思うぞ
782774ワット発電中さん:2010/05/26(水) 23:04:50 ID:5kOsSN95
>>781
うお、マジでホッとしたw
AVRのスレだったのね。まっことスマンです。
783755:2010/05/27(木) 01:10:20 ID:rJjCkQIe
>>756
ということはつまり、スイッチが無くてもいいということですか。
書き込むプログラムは全て同じ物を使いたいんです。
Hubの先に繋がっている物がそれぞれ何番かを認識する方法がいまいちわからないのですが。。。

それと聞いてばっかりで申し訳ないですが、
UIDピンの取り扱いについてもお願い出来ますか?

784774ワット発電中さん:2010/05/27(木) 02:15:56 ID:9Z4ZUfxD
756じゃないけど
Q. PE3として使えるか
A. USBが有効なら常にNO、ピンはオープンでOK。

Q. デバイスを区別したい
A. VID、PIDとは別に、任意桁のシリアル番号を持てる。
  GetDescriptorリクエストを参照。
  シリアル番号はDIP-SW等で読み込むか、
  内蔵のEEPROMに書き込んどけばいい。
785774ワット発電中さん:2010/05/27(木) 16:18:46 ID:7zq0ZNMy
高速PWMでOCRnxを0にしてもパルスが消えないよ><
786774ワット発電中さん:2010/05/27(木) 21:56:57 ID:PRFLjojf
ISP端子をIOにする場合は抵抗かましてテストポイントつけなさい
というハードウェアデザインの指南書があった気がする

普通に考えてISP書き込みモードではリセットも駆動するから
ISPモードに入らないってのは考えにくいけど

fuse書き間違えたに一票
787774ワット発電中さん:2010/05/27(木) 23:50:40 ID:QM2TQsj6
俺がtiny2313のタイマ1でPWM式D/Aコンバーターの電圧発生器を作ったときの例でいえば


Set OCnA/OCnB on Compare Match, clear OCnA/OCnB at BOTTOM (inverting mode)
のモードにセットして
ICR1=65536-1;
OCR1A=ICR1-0;
OCR1B=ICR1-0;
にするとABの各出力が0になった つまり0/65536のDuty比になった
ICR1=65536-1;
OCR1A=ICR1-65535=0;
OCR1B=ICR1-65535=0;
にするとABの各出力が65535/65536のDuty比になる つまりOCRnxを0にしてもクロックパルスは消えない


Clear OCnA/OCnB on Compare Match, set OCnA/OCnB at BOTTOM (non-inverting mode)
のモードだと
ICR1=65536-1;
OCR1A=0;
OCR1B=0;
にするとABの各出力が1/65536のDuty比になる 限りなく0に近いDuty比になるがクロックパルスは消えない



「設定値」を「0」にしたときにクロックパルスを消したいときには
ICR1=65536-1;
OCR1A=ICR1-「設定値」;
OCR1B=ICR1-「設定値」;
みたいにしなければならない


ということだったと思う 違ってたらすまん
788774ワット発電中さん:2010/05/28(金) 05:55:21 ID:mIOOxpxy
>>786
誰も声の大きい奴が有能なんて話してんじゃねえんだよ
どんな仕事でも、声の小さい奴は例外なく無能だって言ってんだ
どんな仕事って言っても正社員で経験したのは4社だけど
バイト時代も含めて声が出てない人は必ず仕事も出来ない人だった
一人の例外も無くだ
まだ12年の短い社会人経験から得た経験則だが、
まともに働いてる人間ならほぼ共通する認識、つまり常識のはずだぞ
789774ワット発電中さん:2010/05/28(金) 07:33:32 ID:JfR6SLh0
788は何が言いたいんだ誤爆か
790774ワット発電中さん:2010/05/28(金) 07:43:24 ID:mzHoHbjc
俺はバカだけど声だけはでかいので
会社では有能ヅラできた

ってことかとw
791774ワット発電中さん:2010/05/28(金) 09:51:32 ID:xZ8zFZVC
そして今は無職です。
792774ワット発電中さん:2010/05/28(金) 11:25:11 ID:QnnBCrap
営業じゃねえんだから
口べたな有能なやついくらでもいるよな

俺が知ってる一番仕事ができたたやつは
(新入社員であっても)女に話しかけられるとキョドッちゃって何言ってるかさっぱりわからない人だった
女子の場合、そいつとのやり取りはすべてメールっていう(そいつだけが知らない)暗黙の社則があったもの
793774ワット発電中さん:2010/05/28(金) 11:28:00 ID:cbR/HUn9
幾多の強敵(とも)の屍を乗り越えて、ついにねんがんの北斗究極奥義 無職転生を手にいれたぞ!
794774ワット発電中さん:2010/05/28(金) 11:34:26 ID:cbR/HUn9
ググッてみたら>>788はコピペじゃんかw
オラ釣られちまったぜorz
そんなわけでボイスラッガーに入隊します。
795774ワット発電中さん:2010/05/28(金) 21:24:42 ID:Rlw8S2gD
PIC の書き込みの遅さは何だったんだw
AVRISP速いwww
796774ワット発電中さん:2010/05/29(土) 13:27:31 ID:B8BLN41z
それって、PICのライタがヘボだっただけじゃね?
797774ワット発電中さん:2010/05/29(土) 13:42:09 ID:Pg6xpDxe
PICkit2はそこまで遅くなかったような気がするんだがw
798774ワット発電中さん:2010/05/29(土) 14:54:13 ID:aBIgqREt
昔のPICは1ワードずつ書き込みで1ワード当たり4mSecかかったりしたから8kワードで30秒以上かかる計算だし実際そうだった
最近のPICは8ワード一括書き込みとかできて進歩してるよ
799774ワット発電中さん:2010/05/29(土) 20:31:58 ID:QYznOzAP
そして赤いPICKIT3、ICD3でさらに早く。
800774ワット発電中さん:2010/05/29(土) 22:42:37 ID:h75A1P1g
通常の3倍のビットレート
801774ワット発電中さん:2010/05/30(日) 00:39:17 ID:hh1/u087
AVRライタでPICに書き込みはたまに見るけど逆はあるのかな?
Pickit2とかはEEPROMなんかにも対応してるし、PICライタでAVRも書けるならAVRも使ってみたいと思うし・・・
802774ワット発電中さん:2010/05/30(日) 07:22:15 ID:u/1u6H7k
どれもこれもってことはないけど
使えるみたいよ
ttp://www.oyajin.jp/~toko/pic/a002/index.html

>秋月の PICライタ Ver.3 を Ver.4 にアップグレードすれば AVR にも書き込める

でも普通、PICライターでPICを使ったAVRライターを作る、見たいな風にしない?
803774ワット発電中さん:2010/05/30(日) 07:31:59 ID:hh1/u087
>>802
THX!
でも、秋月ライタか・・・
誰かPickit2をAVRライタに改造してないかな・・・
804774ワット発電中さん:2010/05/30(日) 12:11:08 ID:u/1u6H7k
ttp://pickit2.isgreat.org/

居た、外人だけど

つかさPICでAVRライタ作っちゃえよ そのほうが早いんでね
805774ワット発電中さん:2010/05/30(日) 12:43:33 ID:hh1/u087
>>804
残念ながら俺にはそんな技術は・・・
ちょっと試してみるかなコレ。
806774ワット発電中さん:2010/05/30(日) 12:46:18 ID:EV+1k24n
AVR-USBasp 720円也
807774ワット発電中さん:2010/05/30(日) 14:11:01 ID:ka1a9a6j
PICKITとAVRISP mkIIを買うのがベスト。
昔は高かったけど既に両方とも4000円で買えるんだぜ。
書き込み器作るのはその後でいいじゃん
808774ワット発電中さん:2010/05/30(日) 21:57:47 ID:rAdHFFS5
ライターばかり作っている俺がきますた。
ここ数年で作ったライターは12個だった。
でもって、マイコン使って作った物が
8個で、内5個がArduino互換機でし。
ついでに、自分で書いたスケッチが3つ•••
何しているんだろう>俺
809774ワット発電中さん:2010/05/30(日) 23:09:05 ID:F+DzDxVm
40 名前:774ワット発電中さん 投稿日:2008/06/10(火) 00:33:42 ID:epyTo3qj
PIC/AVRを始めることにした。まずはライタを作らないと。

ライタ作った。さて、何を作ろうか。

…作りたいモノがない!! しかし、何か作らねば…。

そうだ、新しいライタを作ろう。
810774ワット発電中さん:2010/05/31(月) 00:31:17 ID:Am0H8U3i
つまりライタに書き込むライタをつくって
そのライタに書き込むライタをつくって
そのまた--
811774ワット発電中さん:2010/05/31(月) 11:42:22 ID:o4y8kqQa
AVR Studioで予め設定しておいたヒューズビットを、hex書き込み時に一緒に書き込ませる方法ある?
812774ワット発電中さん:2010/05/31(月) 14:42:59 ID:mn08hJH3
AVR Studioのプロジェクト設定に、ヒューズ設定を記述できる箇所なんて
あったっけ?

avrsp.exeや、avrdudeのようにコマンドライン引数でヒューズ設定を指定
できるライタプログラムなら、ライタの起動オプションに指定すれば可能
だけど、プロジェクト毎に個別指定できない気がする。

AVR Studio次第だけど、%環境変数%経由で渡せないかな?

AVR Studioで、外部のMAKEFILEを使う指定でもいいなら、MAKEFILEファイル
内で指定可能かと。

フラッシュ書き換える度にヒューズも毎回書き換えられるのは、精神衛生上
よろしくないかも。(w
813774ワット発電中さん:2010/06/01(火) 07:59:40 ID:VDmKEfIv
ヒューズビット書き換えだけBASCOMの体験版を使う
814774ワット発電中さん:2010/06/01(火) 12:22:45 ID:x1WhVsU2
avrdudeに対応した WindowsXP用 GUIプログラム

avrdude-GUI
ttp://yuki-lab.jp/hw/avrdude-GUI/index.html
815774ワット発電中さん:2010/06/02(水) 02:15:04 ID:NaKTd5SR
すみません。お知恵を貸していただけませんか。

以前は書き込みが出来ていたAVRISPmkUなのですが、
先日、LEDが赤とオレンジの点滅状態になり、
書き込みができなくなってしまいました。

ファームウエアのアップグレード要求なのかなと思い、
「アップグレードtools⇒AVRISPmkII upgrade」を試してみたのですが、
「No AVRISP mkll in boot mode found」と表示され、駄目でした。
またboot modeにするため、ケースを開けて、
1-2ピンをショートさせてみましたが、上手くいきませんでした。
816774ワット発電中さん:2010/06/02(水) 02:33:11 ID:B3v3GWt1
ショートさせた途端に戻るわけでなく
ショートさせたままファーム書き込みをするんだけども、その辺大丈夫?
817774ワット発電中さん:2010/06/02(水) 02:36:36 ID:mxB10ozL
>>815
>実は、初めてAVRISPmkIIを書込基板に接続した時、操作を間違えてAVRISPmkIIのLED
>が赤と橙の点滅になりました。壊したか・・・と思いましたが、ファームウエアのアップグレード要求でした。
>アップグレードの方法も、AVRISPmkII_UG.pdfにでています。
>私の場合は、マニュアルファームウエアアップグレードで直りました。
ttp://www.page.sannet.ne.jp/je3nqy/onechip/AVR/AVRISPmk2/mk2.htm
818774ワット発電中さん:2010/06/02(水) 02:46:46 ID:B3v3GWt1
あと、ショートは1-3ピンだな。紙媒体の取り説に画像付きであるからそこは間違わないとは思うけど
PCにUSBを指すタイミングとか、いろいろ手順があるので、しっかり戻し方を見た方がいいかも。

ちなみに電子マニュアルもある。
スタートメニュー → Atmel AVR Tools → AVR Tool Help
AVRISP mkII User Guide → Troubleshooting → Manual Firmware Upgrade

これ以上はわからん・・・。
819774ワット発電中さん:2010/06/02(水) 02:55:24 ID:NaKTd5SR
>>816
レスありがとうございます。
もう一度その点に気をつけて、試してみましたができませんでした。
すみませんでした。

>>817
そのページは確認し、AVRISPmkII_UG.pdfの28ページと、
http://resultandtodo.blogspot.com/2009/02/pc_15.html
様のページを参照して、マニュアルファームウェアアップグレードを
試みましたが、できなかったので相談致しました。すみません。
820774ワット発電中さん:2010/06/02(水) 02:56:22 ID:2rFe7mL4
> またboot modeにするため、ケースを開けて、
> 1-2ピンをショートさせてみましたが、上手くいきませんでした。

マニュアルによれば、boot modeは1-3ピン間の短絡のようだが?
通常の状態で、赤とオレンジの点滅にはならないはず。

書き込みできない時、OSでライタはデバイスとして認識されているのか、
エラーメッセージはどう表示されたのか? 異常が起きる前後で何をした
のか、しなかったのか?

情報出さな杉。
821774ワット発電中さん:2010/06/02(水) 02:56:24 ID:mxB10ozL
>>817
01.AVRISPmkUを対象から切断してください。
02.USBケーブルを取り外してください。
03.筐体の上部と下部を共に止めている4つのプラスティックの留め具を押すことによってAVRISPmkUを開けてください。
04.基板上のAVRISP mkUシルク印刷傍のスルーホールの1番ピンと3番ピンを短絡してください。 下図をご覧ください。
05.USBケーブルを装着してください。 AVRISPmkUは直ぐに赤/橙の点滅を始めるべきです。
06.AVR StuidoのToolsメニューに配置されたAVRISP mkII Upgrade...応用プログラムを開始してください。
07.Start Upgradingボタンをクリックしてください。
08.更新終了時、AVRISPmkU上の1番ピンと3番ピンを短絡を取り去ってください。
09.USBケーブルの取り外しと再取り付けによってAVRISPmkUの電源をOFF/ONしてください。
10.Doneボタンを押下してください。
822774ワット発電中さん:2010/06/02(水) 03:04:29 ID:bsifyN/a
こんな時間にみんな親切だな
823774ワット発電中さん:2010/06/03(木) 11:15:27 ID:N//hxS7g
V-USB コンパイラー通らない!

usbdrv.c:435: undefined reference to `usbFunctionWriteOut'
usbdrv.c:448: undefined reference to `usbFunctionSetup'
usbdrv.c:476: undefined reference to `usbFunctionWrite'
Build failed with 3 errors and 0 warnings...

直接 USB 使うまでの道のりは険しそう
824774ワット発電中さん:2010/06/04(金) 20:42:58 ID:qGpGPLl4
>>823
まずはobdev.atのreference Project(power switchとか)
を試せ。
話はそれからだ。
825774ワット発電中さん:2010/06/05(土) 15:10:07 ID:T7F8LGQq
共立エレショップのUSBライターとケーブルを
買ってブレットボードに
Tiny2313を繋げたんですが自動検出押しても認識しません。
接続はあってると思うんですが、USBから電源をとってるから
認識しないんですか?
826774ワット発電中さん:2010/06/05(土) 16:33:01 ID:CmRVPUwg
まずデジットに問い合わせじゃない?
827774ワット発電中さん:2010/06/05(土) 16:53:23 ID:UgoTLg12
・RESETを釣ってる抵抗が低すぎる
・MISO/MOSI/SCK接続が間違ってる
・AVRWRTのJP4をショートさせていない

これぐらいしか思いつかんな(´・ω・`) こちらではバンバン動いてるよ。
828774ワット発電中さん:2010/06/05(土) 18:09:34 ID:VE4Z00XI
>ブレットボードに

ブレッドボードは配線によっては動かないだろうから写真見たいですね。
829774ワット発電中さん:2010/06/06(日) 00:21:27 ID:5tb22+ZM
2313だとほんと最低限のことしかできんから
最近はmegaばかり
830774ワット発電中さん:2010/06/06(日) 02:28:24 ID:67lBIgYw
>>825
その書き込み器ね、USBからの電源のラインがパターンカットされてるよ。
だからマイコン(Tiny2313)には自己給電しなきゃ認識しない。
設計によっちゃダイオードとかポリスイッチで保護がいるから、すっきり切ってあるんじゃない?

ターゲットに自信があれば半田ブリッジさせてバスパワーで書き込める。
831774ワット発電中さん:2010/06/06(日) 07:37:01 ID:yJcI1kOY
USB電源をきっちり作るのはめんどいからなあ
自分で使うだけなら、壊さないようにできるけど、
他人に売るものなら安全側で作るな
832774ワット発電中さん:2010/06/06(日) 15:18:46 ID:iMbpCum3
USB規格の電源は専用ICで作れるな。型番忘れたけどアトメルからも出てた気がする。ATほげほげで
833774ワット発電中さん:2010/06/07(月) 02:04:33 ID:Rf93vzuR
皆どのAVRメインで使ってる?
使い分けしてるとは思うけど、お気に入りとかは有るよね
自分は主にMEGA328Pだけど
834774ワット発電中さん:2010/06/07(月) 02:54:01 ID:Ee8i8PGw
以前はtiny2313多かったけど、今はほとんどATMega328をArduino化しちゃってつかってるw お手軽にできるし
あと小さくしたいときはAtiny13をなんか安いんでざくざく買っちゃったんで使ってる

835774ワット発電中さん:2010/06/07(月) 14:01:17 ID:XkoXfJH0
tiny2313とmega128を使っている…
836774ワット発電中さん:2010/06/07(月) 16:32:44 ID:bCh1uNBZ
ATMega328pとかの内蔵1.1Vて結構精度高いのな
室温から60℃程度の範囲で実測15ppm-150ppm/℃程度だったわ
10bitA/Dには十分な精度 気に入った
837774ワット発電中さん:2010/06/07(月) 19:36:07 ID:Rf93vzuR
そういえば秋月の328はいまだにエラッタもち?
838774ワット発電中さん:2010/06/07(月) 20:52:34 ID:mWFdQB7h
>>836
でも、A/Dの入力が1.1Vに収まらない方が多いってのが欠点かと
839774ワット発電中さん:2010/06/07(月) 21:38:18 ID:8rC7Az2L
>>838
分圧すればいいんじゃない?
840774ワット発電中さん:2010/06/07(月) 22:31:08 ID:mWFdQB7h
>>839
A/D変換は負荷のインピーダンスが高いと速度や精度が落ちるから、分圧すると抵抗分だけ不利になっちゃう
かといって、分圧抵抗を下げると電流を沢山取り出せる負荷じゃないと追いつかない

まぁケースバイケースだから、要求仕様とハードの複雑さで最適なところを選定すればいいかと
1.1Vがダメなんてことは全く無いし便利だよ
欠点を知った上で使うのが良い
841774ワット発電中さん:2010/06/07(月) 23:31:46 ID:ITH82ZPP
んで、分圧する抵抗がJ級(±5%)品だったり、温度特性が±200ppm/℃だったり
するンでつね?
842774ワット発電中さん:2010/06/08(火) 01:32:18 ID:QmpUgkbm
>>837
4月に買った奴はエラッタ持ちだった
エラッタ持ちだからやすいんじゃないんか?
843774ワット発電中さん:2010/06/08(火) 13:53:30 ID:2Rz3PFNg
V-USB 書き込んでパソコンで HID 機器として認識するところまでは来たんだけど、いざクライアント側のソフトを作ろうと思ったら、作る方法の検討がつかずにお手上げ
C# USB HID とかでググってるんだけど、全然かからない
844774ワット発電中さん:2010/06/08(火) 14:46:18 ID:sedMeiZS
>>843
hid.dllを使うとできませんか。
845774ワット発電中さん:2010/06/08(火) 17:23:44 ID:WmwsWCuf
「C# USB HID」でググったら
クライアント側のソフトを作る方法が山ほど出てくるけど、
かからないって何がかからないんだ?
846774ワット発電中さん:2010/06/08(火) 17:30:05 ID:HIxwom1Y
都合の悪い単語は脳内フィルタで落とされるのです
847774ワット発電中さん:2010/06/08(火) 17:46:31 ID:kNW36FS/
>>845
だよなー
おれも試しにググって見て普通に出て来たんで不思議だった
C#って単語入れないと もっといろいろ出てくる
848774ワット発電中さん:2010/06/08(火) 20:07:56 ID:amL8N3zc
「全然わからない」のタイプミスと推測
849774ワット発電中さん:2010/06/08(火) 20:11:00 ID:Lg5EXDgw
Windowsと書いてないので、実はunix房だったり、Apple房だったりという
可能性も。
850774ワット発電中さん:2010/06/09(水) 00:01:51 ID:OPJm44ME
USBハブとロジックゲートでAVRライタを作る
http://www.pjrc.com/hub_isp/
851774ワット発電中さん:2010/06/09(水) 01:05:03 ID:E1zbBYFQ
>>850
これはひどい一発芸ですねwwwwww
852774ワット発電中さん:2010/06/09(水) 01:12:44 ID:2PGJoOAV
いや、案外緊急時に使える手かもしれんぞ?w
853774ワット発電中さん:2010/06/09(水) 08:20:17 ID:iZyMtUAI
>>850
すげえ!この発想はないなw
ハブは安いし、なにか別の用途にもつかえるかもしれんね。
854774ワット発電中さん:2010/06/09(水) 09:47:30 ID:Q0rgk3yy
緊急時に、ほかに有用な道具は何一つなくて、なぜかUSBハブ(最低4ポート
以上)と、ロジックゲートIC、ブレッドボード一式だけが揃っているなんて
ご都合主義は、ジャック・バウアーやマクガイヤー程度ではムリぽ。

使えるのは、最低でもスレッジ・ハマーや、ラルフ・ヒンクリーくらいの
スキル(wが必要。
855774ワット発電中さん:2010/06/09(水) 11:12:09 ID:2T369cTM
超低速でいいからMISO端子使わんでプログラムできないかな。
MOSIとSCLKだけで流し込めないものだろうか。
856774ワット発電中さん:2010/06/09(水) 12:19:56 ID:cGoQBH2t
>>855
その方法を使っているのが
http://homepage2.nifty.com/denshiken/AVW009.html
書き込みソフトはHIDaspxやavrspxを利用する
857イザベラ*アイリス:2010/06/09(水) 12:52:08 ID:eQU+Bfhp
****************************
****************************
****************************
http://sakutuu.ddo.jp/sakura2/sanka.asp
さくら通信で私は名古屋の人と交渉しようと思う
情報を無料であげます
しかし私は夜の6時から11時の間です
ほぼ毎日出現している
私ができるのは

TRやOPAMPなどの無線と増幅とCPUアーキテクチャー
VHDLなどのデジタル工学と電子工学の全て
数学など

分かりやすく簡単に説明する
質問は本や資料を読みながら簡単に説明します
しかし英語だと読む時間が遅いです
http://sakutuu.ddo.jp/sakura2/s/profile/p.asp?l=001187
****************************
****************************
****************************
858774ワット発電中さん:2010/06/09(水) 15:22:44 ID:wAoq++kY
>>850
写真見て爆笑したwww
859774ワット発電中さん:2010/06/09(水) 22:34:28 ID:3RQO61HS
>>855
トグルスイッチで
860774ワット発電中さん:2010/06/09(水) 22:59:05 ID:wAoq++kY
昔トグルスイッチでLCDに文字表示させている友人が居てびびった
861774ワット発電中さん:2010/06/10(木) 00:06:41 ID:3zYZG/7e
862774ワット発電中さん:2010/06/10(木) 02:49:35 ID:7o1HRdOB
ハブならあるけどUSBケーブル4本も用意できねーw
863774ワット発電中さん:2010/06/10(木) 06:40:51 ID:fug4aldz
ドビン、デガラシ、そこにある2本のA-A USBケーブルをブッターギルんだ。
864774ワット発電中さん:2010/06/10(木) 07:12:37 ID:nOCFIqJv
電鍵とかなつかしいな
865291:2010/06/10(木) 14:36:54 ID:4PKQRwdr
チラ裏翻訳 7章まで粗訳完了。
だいぶAtmelの文体になれてきたけど、まだまだ亀の歩みでス。
ttp://awawa.hariko.com/chira-ura/index.html
866774ワット発電中さん:2010/06/10(木) 21:42:09 ID:fUEpTJ2v
マシン語の一覧表って公開されてるんでしょうか?
データシート見てもニーモニックまでしか載ってないですよね。
867774ワット発電中さん:2010/06/10(木) 21:45:23 ID:ZzYf9AOs
ダンプリストでもセルフディスアセンブルする気?w

というかビット並びとかでだいたいわかるけれど。
868774ワット発電中さん:2010/06/10(木) 22:35:33 ID:3HH3XZiQ
869774ワット発電中さん:2010/06/10(木) 22:58:34 ID:DUh+pK81
>>866
PICマイコンのように必要最低限の命令数にはなっていないので解読はめんどくさい。

Z80のように、ダンプを直接読み書きするのは、以下の事柄が有るので更に困難。

命令語長は16ビットですが、ダブル・ワード命令も有る。
命令数は118(実際のコードは 79)です(90Sシリーズ)。
が、同一コードをとなる命令が多くあります。

例えばステータスレジスタのビット操作命令(BSET命令)でキャリービットをセットしたときと、
キャリービットをセットするSEC命令は同一のオブジェクトコードとなります。

ttp://www.clarestudio.org/elec/avr/opcode.html
ttp://www.ikushima.jp/avrpage/avrdoc/avrdoc.html
ttp://elm-chan.org/docs/avr.html

コンピュータの動作(フェッチ実行サイクル)
ttp://siva.cc.hirosaki-u.ac.jp/usr/koyama/lecture/text/avr/fetchexe.htm
870774ワット発電中さん:2010/06/10(木) 23:07:00 ID:DUh+pK81
>>868
オペコード順の命令表って、本家のサイトの何処かに有りそうかな?

0000 -> NOP
01XY -> MOVW
    |
    |
871774ワット発電中さん:2010/06/11(金) 10:03:02 ID:TjZQ2/4p
>>869
>例えばステータスレジスタのビット操作命令(BSET命令)でキャリービットをセットしたときと、
>キャリービットをセットするSEC命令は同一のオブジェクトコードとなります。
動作(結果)が同じなんだから、同じコードにするのが自然だろ。

LDA 00h より XORA だぜ。
872774ワット発電中さん:2010/06/11(金) 10:29:44 ID:cVqqp6ce
というより、68系で言うLSLA(Aレジスタの値を論理左シフト)とASLA(Aレジ
スタの値を算術的左シフト)みたいに、便宜上単に複数のニーモニックが割り
当ててあるというだけの話でしょ。

LSRA(論理右シフト)とASRA(算術的右シフト)は動作が違うのでOPコードは
異なる。

Z80の「LD A,00h」と「XOR A,A」は、厳密に言えばフラグの動作が違うん
じゃなかったっけ? 68系はLDした値でZとSが変化するけど、80系はフラグ
は変化しない。XORは演算後の値でフラグが変化した気がする。
873774ワット発電中さん:2010/06/11(金) 10:34:31 ID:YwVzzmrL
>LDA 00h より XORA だぜ。
それ違うからw
874774ワット発電中さん:2010/06/11(金) 10:49:54 ID:fe3EIjha
>872
左シフトと足し算による二倍が同じニモニックのMSP430という変態がいてな。
おかげで左シフトと右シフトでクロック数が違うんだぜ。
875774ワット発電中さん:2010/06/11(金) 12:33:13 ID:qocmj+i7
>LDA 00h より
 OR A,A が抜けてます。
876774ワット発電中さん:2010/06/11(金) 13:28:45 ID:YwVzzmrL
CYのクリアだけならOR Aだろうけれど、A=0ならXOR Aが1バイト(Zフラグは無視するとして)
という事じゃまいか?
877875:2010/06/11(金) 17:58:43 ID:qocmj+i7
Z80のとき、0セットとZフラグを立てるテクニックとして
LD A,00H
OR A,A   という2命令を

XOR A,A  1つにするのが流行っていた。その事だと思ったんだけど。
878774ワット発電中さん:2010/06/11(金) 18:41:07 ID:YwVzzmrL
なるほど、そんな事もありましたねw

まぁスレからは離れるけれど、0クリアのテクかなぁと思ったので。
1バイトで0クリアするっていうのは常套手段だったような気がする。
今だったら別にイミディエイトで抱えても(AVRやPICなら特に)サイズ違わなかったり
するんだけどねぇ。

0クリアする専用命令とか0(が常時代入される)レジスタとかあるCPUもあったりするし。
879774ワット発電中さん:2010/06/12(土) 03:23:36 ID:ap0n+hfB
会社帰ってから1週間シコシコ作業してやっと完成
一番苦労したのがケースの加工という・・・
でかい穴あける工具買うかなぁ
でもめったに使わないしなぁ

最近、秋月で開閉可能なプラケースをはじめたので、
これと一番安くて小さい基板の組み合わせがお気に入り
880774ワット発電中さん:2010/06/12(土) 17:37:42 ID:uwku7y+D
AT90USB162のヒューズビットをリセットするため、高電圧の書き込みを作りたいと思います。
書き込みアルゴリズムの資料を探しているのですが、アトメルのサイトで見つけることが
できません。どこにあるかヒントでも教えてもらえないでしょうか。
881774ワット発電中さん:2010/06/12(土) 17:45:54 ID:qgnOnGhM
AVRのマイコンの場合種類を問わずデータシートのMemory Programmingのパラレルプログラミングの項目として
データシートの内容の一部として含まれているのでは?
882774ワット発電中さん:2010/06/12(土) 18:01:12 ID:uwku7y+D
>>881
見つかりました。すいませんでした。
883774ワット発電中さん:2010/06/14(月) 11:10:43 ID:hr0v94wB
ATMega328相当で16ピンor20ピンにならないかな
28ピンはデカ過ぎる
884774ワット発電中さん:2010/06/14(月) 12:30:10 ID:O1eQmyox
足のないパッケージなら
8ピンDIPより小さいぞ
885774ワット発電中さん:2010/06/14(月) 13:11:57 ID:ONlfSFDg
ATmega328Pでも、0.8mmピッチの32ピンQFP(ATmega328P-AU)だと、モールド
部分は7mm角でリード先端が9mm角、0.5mmピッチの32ピンQFN(ATmega328P-MU)
だと、パッケージは5mm角だね。

QFNは小さくてイイんだけど、パッケージ下面の放熱パッドがパターン引く
のに邪魔くさい。
886774ワット発電中さん:2010/06/14(月) 19:54:56 ID:aeg6i/3Y
ひっくり返してUEWで配線
887774ワット発電中さん:2010/06/15(火) 01:50:13 ID:w2WaPHgC
mega644PVのADCが全く動かんウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!
全部ADCHもADCLも全部ビットが立ってる。
今のところADC0〜ADC5まで全部、10kオームでGNDに落としてるんだけど何でだろ。

mega168pで昔作ったヤツは一撃で動いたのに不思議だorz
888774ワット発電中さん:2010/06/15(火) 01:58:43 ID:UyKgjFZP
VREFの設定じゃないかと
889774ワット発電中さん:2010/06/15(火) 02:46:14 ID:RFKmFPyQ
↓これいいな

「電子工作人口を増やしたい」 工具は無料、電子工作作れる「はんだづけカフェ」
http://anchorage.2ch.net/test/read.cgi/bizplus/1276479163/
890774ワット発電中さん:2010/06/15(火) 03:28:25 ID:3S/+OThG
夜間の職業訓練校みたいだよね、なんとなく。


いい意味で電子業界のけいおん化すれば、良い方向になるかもしれないけど。
891774ワット発電中さん:2010/06/15(火) 19:27:30 ID:nvveQuoQ
>>889
秋葉原に「はんだづけカフェ」
ttp://science6.2ch.net/test/read.cgi/denki/1273381313/
892774ワット発電中さん:2010/06/16(水) 00:17:51 ID:rSI3s/tw
AVR初心者です。C言語も始めてです。
AVRで、スイッチ1をONにするとLED1が点灯し、LED1が点いたまま隣のスイッチ2をONにするとLED2が
点灯するプログラムを教えてください。またはヒントを下さい。

つまり同時に押すということです。

お願いします。
893774ワット発電中さん:2010/06/16(水) 00:46:58 ID:2SR1NBU5
>>892
さすがにそれくらいは自分で考るか調べろと言いたいけど、
どうしても答えが欲しければもう少し具体的に書かないと
きっとトンチンカンな答えしか返ってこないよ。
894774ワット発電中さん:2010/06/16(水) 00:50:14 ID:nlqqEhTO
>>892
せめて回路図だけでもうpするなり書くなりした方が良いと思うよ。
895774ワット発電中さん:2010/06/16(水) 00:53:29 ID:rSI3s/tw
トンチンカンでもいいので教えてください
896774ワット発電中さん:2010/06/16(水) 01:00:13 ID:nlqqEhTO
while(1)
{
if(スイッチ1ON)
{
LED1ON
}
else
{
LED1OFF
}

if(スイッチ2ON && スイッチ1ON)
{
LED2ON
}
else
{
LED2OFF
}
}
897774ワット発電中さん:2010/06/16(水) 01:37:03 ID:EGDwR87M
>>896
マイコンが火を吹きそうだなw
898774ワット発電中さん:2010/06/16(水) 01:58:32 ID:QSoDtiil
while(1)
{
宿題は自分でやれ
}
899774ワット発電中さん:2010/06/16(水) 07:07:45 ID:QxekkQ5q
こうじゃねのか?

while(1)
{
if(スイッチ1ON)
{
LED1ON
if(スイッチ2ON)
{
LED2ON
}
}
else
{
LED1OFF
LED2OFF
}
}
900774ワット発電中さん:2010/06/16(水) 18:16:10 ID:VrRE6B8i
スイッチとLEDと抵抗がそれぞれ2個、後は電池があればできる。
CPUはいらない。
901774ワット発電中さん:2010/06/16(水) 18:20:43 ID:EGDwR87M
>>900
それを言ったらお終いだろww
902774ワット発電中さん:2010/06/16(水) 18:22:31 ID:YIUQDiyS
飾りでCPUつけとけば

実際の配線はしない 
903774ワット発電中さん:2010/06/16(水) 18:25:58 ID:9+wR9XC6
飾りじゃないのよDIPは HA HAN
904774ワット発電中さん:2010/06/16(水) 18:39:31 ID:YIUQDiyS
ちょっと悲しすぎるのよDIPは HO HO HO…… ♪
905774ワット発電中さん:2010/06/16(水) 18:42:33 ID:JIatRxDT
そして廊下に立たされる>>892であった。
906774ワット発電中さん:2010/06/16(水) 18:49:45 ID:/r+zAM6/
廊下は目立つから屋上の外にしといてやる。
907774ワット発電中さん:2010/06/16(水) 18:59:35 ID:0Us2tTUo
マルチをした罰だな
908774ワット発電中さん:2010/06/16(水) 19:06:16 ID:7cp0ers4
>>892
SW1の出力にLEDとプルアップ抵抗をつなぎ、そのプルアップ抵抗を介してSW2をプルアップするようにすれば簡単じゃえn
909774ワット発電中さん:2010/06/16(水) 19:13:16 ID:alA3ecg2
抵抗は内蔵使えば不要
910774ワット発電中さん:2010/06/16(水) 19:35:41 ID:OcNcsggW
>>892
宿題なら、ウケを狙って74HCロジックで組んでみるとか。
911774ワット発電中さん:2010/06/16(水) 21:25:36 ID:9+wR9XC6
>>905
実は、この課題を出したのがID:YIUQDiySだったとか
912774ワット発電中さん:2010/06/16(水) 21:59:11 ID:WKGYzQBW
>>892
SW-AVR-LEDで、SWをONにするとLEDが点灯するプログラムがかけるなら…

その回路を2個並べりゃよくね?
913887:2010/06/17(木) 13:59:12 ID:UV8Z3ctQ
ADC動かんってのは自己解決しますた(`・ω・´)

原因は19.6608MHzのCPUクロックを分周してADCへぶち込んでなかったため、
ADCがオーバークロックだった模様。ADCへ与えるクロックをCK/32で無事どうさしました(´∀`)


・・・って本当かな? ドキュメントに載ってないような。
914774ワット発電中さん:2010/06/17(木) 17:06:15 ID:pD7T/4yh
そういえば俺がatmega644pと328pのA/Dの動作確認したときも
オーバークロックでA/D変換値が1023固定になったわ
変換値のバラツキは多くなるけど5MHzまではokで10MHzでは1023固定になった
その中間の周波数は試してない
915774ワット発電中さん:2010/06/17(木) 17:13:10 ID:VzPh4Vmx
ATmega644PAのドキュメントしか見つけられなかったが、こいつには

-----------ここから引用-------------
22.5 Prescaling and Conversion Timing

By default, the successive approximation circuitry requires an input clock frequency between 50
kHz and 200 kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the
input clock frequency to the ADC can be higher than 200 kHz to get a higher sample rate.
-----------ここまで引用-------------

とか書いてあるな。どこまで「動く」のかの限界はこの付近には見当たらないが。
916774ワット発電中さん:2010/06/17(木) 17:56:23 ID:rkvBJebh
ADC項の最初に、Up to 15kSPS at Maximum Resolutionとある。
ここから逆算して求めると
一回の変換サイクルで14クロック(Fig22-5)だから
210KHzになるので、まぁ200KHz程度って事だろう。
917774ワット発電中さん:2010/06/17(木) 18:02:02 ID:rkvBJebh
一応、データシートのElectrical Charactersistics項
ADC CharactersiticsにClock-Max1000kHz(1MHz)と書いてあるよ。
918774ワット発電中さん:2010/06/17(木) 18:06:07 ID:pD7T/4yh
リセット後の初期値は2分周だから内蔵の8MHzとかだと一応正常に動くから
AVRのA/Dはノイズが多いなとか思いながら気づかないで使ってる人も少しはいそうだな
919774ワット発電中さん:2010/06/17(木) 18:25:27 ID:pD7T/4yh
今ちょっとatmega328pで試してみたが2分周でシステムクロックが15MHzまでは値のバラツキは増すが正常値
16MHz17MHzと上げていくとmax値1023の方向にどんどんシフトしていく感じになった
920774ワット発電中さん:2010/06/17(木) 18:53:44 ID:aby2ip0q
328pを32MHzで使ってるけど、ADCは128分周で一応使えてる
921887:2010/06/17(木) 21:01:06 ID:UV8Z3ctQ
今調べてみたらElectrical Charactersisticsに確かに1MHzって書いていた(´・ω・`)

漏れ、単にクロックあげたら精度が落ちる位しか妄想してなかったんでなぁ。ADPS012なんか
どうでもいいやと思ってた。つか、電圧とかはVCC+0.5V超えちゃいかんとかあちらこちらに
ちりばめてるのに、ADPSの項目だけなんにも注意事項みたいなのが書いて無いのな。

やっぱはまったときにはドキュメントを隅から隅までじっくり読むべしですな。初めてmega644PAの
PC0〜7を使おうとして全然全く動かなかったのも、JTAGのヒューズビット次第だったしorz
922774ワット発電中さん:2010/06/18(金) 00:32:11 ID:AjH2cIqp
電源を入れて5秒後にLEDを点灯させるにはどういったプログラムを書けばいいですか?

AVRのmaga8です。
923774ワット発電中さん:2010/06/18(金) 00:35:18 ID:B+XZELdM
>>922
while(1)
{
宿題は自分でやれ
}
924774ワット発電中さん:2010/06/18(金) 01:23:43 ID:5WAomnpK
でん
925774ワット発電中さん:2010/06/18(金) 01:25:32 ID:5WAomnpK
↑間違えた

>>922

void main()
{
5秒待つ
LED点灯
}
926774ワット発電中さん:2010/06/18(金) 01:41:18 ID:DHJQT5eY
>>922
この程度、授業を普通に聞いてれば100%できる超低レベルの宿題だろ
むしろ聞いてなくてもテキスト見れば楽勝でできるレベル
それすら出来ないって、よっぽど頭が残念なんだな
向いてないから退学しなよ
927774ワット発電中さん:2010/06/18(金) 01:45:32 ID:Sk9GAn1H
>>926
はい。すみませんでした…
928774ワット発電中さん:2010/06/18(金) 07:01:27 ID:yq8FBsG7
AVRマイコンを仕事で使ってるやつが居ると思うが、どういう事に使うか教えてもらえないか。
929774ワット発電中さん:2010/06/18(金) 09:24:34 ID:qD3P3HOC
コストダウンで、ディレイタイマーの代用をさせたり色々
930774ワット発電中さん:2010/06/18(金) 12:16:15 ID:2NYGhc9X
ラジコンのサーボの中にPICがいたから
AVRが入ってたりすることもあるんじゃないだろうか
931774ワット発電中さん:2010/06/18(金) 12:23:46 ID:/NgKM30J
趣味用途にチップ開発なんてシナイダ
932774ワット発電中さん:2010/06/18(金) 12:57:25 ID:tiyt4xtw
>AVRマイコンを仕事で使ってる
ttp://airvariable.asablo.jp/blog/2010/04/26/5046557
933774ワット発電中さん:2010/06/18(金) 13:21:11 ID:+9v3ltuA
センサからのトリガが来るまで待っていて、来たら上位のマシン(組み込みLinux機)の
電源をONにするだけの簡単なお仕事です。
934774ワット発電中さん:2010/06/18(金) 21:07:43 ID:DHJQT5eY
>>933
いくらなんでも簡単すぎてAVRにやらせる仕事じゃないだろ
74さんとかにお願いしろ
935774ワット発電中さん:2010/06/18(金) 21:10:50 ID:/NgKM30J
555 様でしょ
936774ワット発電中さん:2010/06/18(金) 21:43:07 ID:VO4Aarbt
555様というと別な人を連想するw
937774ワット発電中さん:2010/06/18(金) 21:43:25 ID:ft4pPxKg
>>928 温度計・充電器から自動車のパワーウィンドまで色々使える
938774ワット発電中さん:2010/06/19(土) 00:44:04 ID:54CKmm3p
Z666様「ヒャッハー!!!」
939774ワット発電中さん:2010/06/19(土) 04:30:39 ID:/J/fe6q/
>>934
昔はそうなってたらしいんだが、たまに雷ノイズで誤起動しちゃったりしててな。
CRフィルタ+14+74まで必要ならもうtiny2313でいいだろうと。
940774ワット発電中さん:2010/06/19(土) 08:48:12 ID:4/AWnZ0b
>>939
ドクター取ったけど仕事が無いので清掃員してますって感じだな
泣ける
941774ワット発電中さん:2010/06/19(土) 08:50:38 ID:YqP/2IfI
>>939
Atmelスレでなんだけどpic10fはこういう用途にはちょっといいなと思った
http://akizukidenshi.com/catalog/g/gI-02116/
942774ワット発電中さん:2010/06/19(土) 08:54:30 ID:6rLfa8mI
>>941
ATTiny10のことも忘れないであげてください。
943774ワット発電中さん:2010/06/19(土) 09:14:04 ID:YqP/2IfI
>>942
あ、そういうのあったんっすか。すまんこって。
944291:2010/06/19(土) 13:58:10 ID:+BLKCUvM
>>942
おおお、6pinがあるなんて知らんかった。
ラインナップはATtiny4/5/9/10だね。
これほしい。digi-keyに非在庫だけどあるね。
買ってみるか。いまのところ特に用途が無いけど。
945774ワット発電中さん:2010/06/19(土) 14:34:28 ID:/J/fe6q/
>>942
なるほど、次はコレ検討してみるわ。
946774ワット発電中さん:2010/06/19(土) 15:28:54 ID:4/AWnZ0b
>>942
tiny13を愛用してたけど、6ピンも面白そうだな
947774ワット発電中さん:2010/06/19(土) 16:04:36 ID:KM+6Ds0G
小ピンAVRは高くてなぁ・・・
948774ワット発電中さん:2010/06/20(日) 13:58:20 ID:2R8xX7nJ
>>944
>買ってみるか。いまのところ特に用途が無いけど。

ワロタwwww
949774ワット発電中さん:2010/06/20(日) 16:31:51 ID:XyK3fIgg
値段もだけど
純正ライタで高圧プログラミング非対応なのも、
地味に小ピンを使いづらくしている。
950774ワット発電中さん:2010/06/20(日) 16:33:49 ID:AzrND+t7
AVRISPmkIIで書けるの?>6pin
951774ワット発電中さん:2010/06/20(日) 16:42:16 ID:COfqP6Np
確か無理。普通のISPじゃない。
952774ワット発電中さん:2010/06/20(日) 17:34:39 ID:2R8xX7nJ
953774ワット発電中さん:2010/06/20(日) 20:13:12 ID:onKJmrQL
megaのフラットのが実用性ありそうだ
954774ワット発電中さん:2010/06/20(日) 20:14:48 ID:ZFs3Ne+K
「のが」って、最近の日本語はそんな風なのか。
955774ワット発電中さん:2010/06/20(日) 20:24:35 ID:AcbwFOah
>>954
いつの時代のお方で? 100歳くらい?
956774ワット発電中さん:2010/06/20(日) 20:49:23 ID:BfJexnWo
すっごい基本的な質問だと思うけれどすまん
OC0AとOC0BとかOC1AとOC1BとペアのPWM出力があるけれど
これらは独立して動作させることが可能なんだよな?
OC0AとOC0Bはクロックは一緒だけれど、デューティ比はそれぞれ変えることができるよね?
957774ワット発電中さん:2010/06/20(日) 22:01:47 ID:2R8xX7nJ
>>956
あい。
OCR0A = 20;
OCR0B = 100;

って風に書けます。
958774ワット発電中さん:2010/06/20(日) 22:06:42 ID:BfJexnWo
>>957
ありがとう
ってことは今使ってるMega8は計5chのPWM出力を持つのか……
ADCから読み取った可変抵抗の値に応じてカラーLEDを制御する簡単なものを作ってるんだけどね
959774ワット発電中さん:2010/06/21(月) 02:51:02 ID:75bi8dGt
そろそろ次スレの頃か、日本語データシートの部分は削除しないといけないな
960774ワット発電中さん:2010/06/21(月) 18:58:35 ID:2K+c9m8m
カンパでもあればしたのに、惜しかった
961774ワット発電中さん:2010/06/21(月) 22:03:46 ID:BTa3aNKO
4月馬鹿から2ヶ月か。
PDFが一部でも残ってたら3万/月の使用料だぞ。
皆しっかり消したか?

漏れは元からつかってなかったが・・・
962774ワット発電中さん:2010/06/21(月) 22:31:19 ID:4Duk9EG3
そういえば、日本語マニュアルの件でアトメルに電凸だかメールだかした
人はいなかったっけ?その後どうなったんだろ?

今見たら、4月以降は公開中止してたと思ってたけど、5月にも一部を更新
したことになってるね。

googleのキャッシュとか、webarchive.orgに残ってたら、訴えてやるニダ
とか行動起こすのかな?

とりあえず、webarchiveの方は古いけど昔のがしっかりと残ってますなぁ。

ttp://web.archive.org/web/20060701230631/reef.path.ne.jp/~hero/hero.htm
ttp://web.archive.org/web/20070228171158/reef.path.ne.jp/~hero/hero.htm
963774ワット発電中さん:2010/06/21(月) 23:05:30 ID:QIZuKLeK
>>962
CHMはあるけどPDFは全部消えてるじゃん
964774ワット発電中さん:2010/06/22(火) 00:50:43 ID:TAAwJMxb
965774ワット発電中さん:2010/06/22(火) 07:33:59 ID:kCe9H3ME
あの様子じゃ社会でまともに仕事出来てないじゃ
966774ワット発電中さん:2010/06/22(火) 07:57:15 ID:JX1Hsqlj
一般的には社会にまともな仕事来てない状態だけどねw
967774ワット発電中さん:2010/06/22(火) 08:18:31 ID:DJBVc8vL
どっかの現品comと似たようなものを感じる
968774ワット発電中さん:2010/06/22(火) 18:21:10 ID:RogSOrto
あの見にくさは異常w
969774ワット発電中さん:2010/06/22(火) 19:25:08 ID:eVlkBU6t
日頃からオフラインでの処理に慣れてるヤツなら全部保存してそうだな
970774ワット発電中さん:2010/06/22(火) 21:20:41 ID:aPKyAFdv
>>968
今はスッキリしてるぞw
見てきてみ?
971774ワット発電中さん:2010/06/23(水) 02:54:24 ID:DuxUwFZf
大豆粉末
10g程度
単価¥10,000
リチウム電池添加剤少量おまけ



きな粉を1万円で売るなよo(`ω´*)oプンスカプンスカ!!
972774ワット発電中さん:2010/06/23(水) 22:55:14 ID:b+oIyqyR
日本語訳データシートのAtmelロゴのあの妙な紫色は何の意図だったんだろう・・・?
前に読んだ時にあれがやけに気になった。
973774ワット発電中さん:2010/06/23(水) 23:06:32 ID:P9eLoPBv
技術者なりにセンスのいいアレンジ、と思い込んでたんじゃないかな。

しかし、時間をかけてマニュアルを作成して、一部のツッコミ好きな人間以外には
感謝されてたのに、ちょっと突っ込まれたからって全部を無駄にしちゃうってアホだよな。

仮に公開され続けて、無償じゃシンドイので買い物したい人はここからどうぞ、
とでも書いてアマゾンのリンクでも張ってくれたら、喜んで還元してあげたのに。

こういうふうに、すぐピキる人って損するね。
974774ワット発電中さん:2010/06/23(水) 23:17:32 ID:tM6MmW86
>20年近くに渡って技術情報の提供を行ってきましたが
とか、CP/M-80の資料があるとかかなりの年齢なのかな。
定年退職だったりして。
975774ワット発電中さん:2010/06/23(水) 23:22:18 ID:NBHg9Nqg
まぁ
アトメルジャパン

マイクロチップ テクノロジー ジャパン
を検索してみれば、アレだな
976774ワット発電中さん:2010/06/23(水) 23:53:04 ID:DZ7A8DYx
>>975
マイクロチップ テクノロジー ジャパン検索結果の右側を見て盛大に吹いたわ。
977774ワット発電中さん:2010/06/24(木) 12:49:09 ID:8btkIUyG
誰か適当にPWM制御でモータを動かすプログラム作ってくれ
データシートが読めなくて泣きそうだ。

maga8です。
978774ワット発電中さん:2010/06/24(木) 15:03:12 ID:u9r0Ltu6
>>977
 がんばれww
979774ワット発電中さん:2010/06/24(木) 15:11:01 ID:6J7md3Ef
いまさらmega8ってArduinoじゃないの?
解説とかあるんじゃないの
980291:2010/06/24(木) 16:03:10 ID:NWnGaFIm
>>977
使うのはATmega8のTimer/Counter1のPWMモードですか?
ATmega48/88/168のTimer/Counter0のPWMモードなら翻訳終わってるんだけど、参考になるかな?
大体同じような予感がするけど、
あとで差分とってみて、ほとんどコピペなら、Timer/Counter1の方を先に翻訳してもいいっすよ。

チラ裏拙訳です。↓
ttp://awawa.hariko.com/chira-ura/index.html
981774ワット発電中さん:2010/06/24(木) 19:14:50 ID:YxUVJ+OT
>>977 そもそも君はモーターにどういうパルスを送ったら回転するか解ってるの?
982774ワット発電中さん:2010/06/24(木) 20:08:17 ID:qgRnbJOb
>>981
学校の宿題ですから、ドライブ部分は知る必要がありません
983774ワット発電中さん:2010/06/24(木) 21:20:45 ID:47LX7VRZ
PWMで三相モーターを動かすと聞いて
984774ワット発電中さん:2010/06/24(木) 21:24:57 ID:Eb6J/uim
制御というほどのものか?
鈍らせてブリッジに突っ込んで終わりジャン。
985774ワット発電中さん:2010/06/24(木) 22:02:11 ID:6J7md3Ef
アラゴの円盤ならブン回した事がある
プログラムはやドライブ回路は簡単なもんだけど、
電磁石部分が難しかった、全然パワー出ねえ
986774ワット発電中さん:2010/06/24(木) 22:05:35 ID:eQBeOuuj
>>973
歳とると皆そうなる
987774ワット発電中さん:2010/06/24(木) 22:56:26 ID:YZuwEkMl
>>981
ステッピングモータだと思ってる?
988774ワット発電中さん:2010/06/24(木) 23:06:14 ID:JSUeTVCX
>>987
それは、対象の性質や対象回路も何も
質問者は書いてないのだから
回答者の思うがまま想像にまかせるべきだろう?
正転&逆転できる様Hブリッジかも知れん。

まぁ宿題スレいけやという回答もなんだしなww
989774ワット発電中さん:2010/06/24(木) 23:35:14 ID:w5k2ZUOy
オレの中では「制御」っていうのは例えば一定回転数:2000RPMを外乱が入ってもキープするという
定速度制御のことなので、回転数をタコメータで計測してフィードバックしてモータに流す電流を
決めてMega8のPWMでMOSFETに流すという感じなので、PWMが1系統だけあればいいという感じ
なんだが、違うんだったら違うんだろうなぁ。
990774ワット発電中さん:2010/06/24(木) 23:49:04 ID:YxUVJ+OT
ただPWM波形を自動で出力するだけなら、PWMモードに設定して
出力ピンから信号を取ればよい。
991774ワット発電中さん:2010/06/25(金) 05:53:43 ID:0AScrGUe
>>977

while(1){
  ポートH
  for(i=0;i<N1;i++)nop;
  ポートL
  for(i=0;i<N2;i++)nop;
}
992774ワット発電中さん:2010/06/25(金) 09:47:20 ID:R0oX2z32
レパートリーに AVR を追加しようと購入寸前だったんだが、
ヒューズビットのめんどさと某氏の発狂で一気にハードルが上がってしまった。
993774ワット発電中さん:2010/06/25(金) 15:21:09 ID:RvWx+kML
>ヒューズビットのめんどさ
どこがめんどくさいのか意味が分からん
994774ワット発電中さん:2010/06/25(金) 15:35:10 ID:Rg2DvNUB
めんどくさい人にはマイコンのプログラムには向かないような。
995774ワット発電中さん:2010/06/25(金) 15:36:58 ID:v+NPUheV
凝った事しないなら、クロックの部分しかさわる所無いような
996774ワット発電中さん:2010/06/25(金) 16:09:38 ID:Wr5zy+OZ
>ヒューズビットのめんどさ
純正品のライターじゃなく、PonyProgとかでやると確かに面倒だった記憶が・・・
997774ワット発電中さん:2010/06/25(金) 18:46:46 ID:R0oX2z32
いやさ、変に書き換えて動かなくなったとかちらほらあるじゃない。
たとえば 78K だったら、うっかりオプションバイト書き換えてオンチップ
デバッグ機能を無効にしてしまったりしても、すぐに元に戻せるし。
AVR Dragon だったら書き換えられるのかな?

あと、やっぱり勝手のわからないデバイスのデータシートが英語ってのは
正直めんどい。翻訳してくれてる人もいるみたいだけど。

DIP パッケージがあったり、手ごろな USB 機能があったりと惹かれるものは
あるんだけどねー。
998774ワット発電中さん:2010/06/25(金) 18:50:52 ID:RvWx+kML
うっかりって、そういう頻度で起こらないからそもそも考えたことすら無かったが。
俺も書き間違えたことはあるけど
999774ワット発電中さん:2010/06/25(金) 19:20:50 ID:Wr5zy+OZ
リセット端子をポートに設定するとか危険な変更は警告が出た覚えがあるから、
うっかりってのは無かった気がするけど?
1000774ワット発電中さん:2010/06/25(金) 19:23:48 ID:o4lD3qe7
AVR Dude使ってるのでヒューズビットはある程度同意。
データシート見ながらHEXで設定しなきゃいかんし、間違えると一発アウト。

データシートの方は理解できんな。マイコン使うの初めてじゃないなら英語でも
必要なところは読めると思うけど。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。