5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

AVRマイコン総合スレ Part14

1 :774ワット発電中さん:2009/04/17(金) 12:49:49 ID:mccgkw+Z
           _____
         /       /|
       /   ( ゚∀゚) /.∠フ   個人でも手軽に使える
     /       /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
   /  __    o/.∠フ ||    中心に語るスレッドです。
 ∠| ̄ ̄凵 ̄ ̄|∠フ ||     *AAは「AVR H8 etc. マイコン総合スレ Part3」からいただきました。
 .|| |_____|/||

Atmel AVR 8-Bit RISC     http://www.atmel.com/products/avr/

2 :774ワット発電中さん:2009/04/17(金) 12:51:23 ID:mccgkw+Z
◎前スレ◎
AVRマイコン総合スレ Part13
http://science6.2ch.net/test/read.cgi/denki/1231687664/
AVRマイコン総合スレ Part12
http://science6.2ch.net/test/read.cgi/denki/1223778551/
AVRマイコン総合スレ Part11
http://science6.2ch.net/test/read.cgi/denki/1212840469/
AVRマイコン総合スレ Part10
http://science6.2ch.net/test/read.cgi/denki/1203495784/
AVRマイコン総合スレ Part9
http://science6.2ch.net/test/read.cgi/denki/1192625746/
AVRマイコン総合スレ Part8
http://science6.2ch.net/test/read.cgi/denki/1177933605/
AVRマイコン総合スレ Part7
http://science6.2ch.net/test/read.cgi/denki/1162464623/
AVRマイコン総合スレ Part6
http://science4.2ch.net/test/read.cgi/denki/1148195387/
AVRマイコン総合スレ Part5
http://science4.2ch.net/test/read.cgi/denki/1125327648/
AVRマイコン総合スレ Part4
http://science3.2ch.net/test/read.cgi/denki/1108290187/
AVR H8 etc. マイコン総合スレ Part3
http://science3.2ch.net/test/read.cgi/denki/1100706575/
AVR H8 etc. マイコン総合スレ Part2
http://science3.2ch.net/test/read.cgi/denki/1093023679/
AVR H8 etc. マイコン総合スレ
http://science3.2ch.net/test/read.cgi/denki/1078586301/
PIC AVR H8統合スレ
http://science2.2ch.net/test/read.cgi/denki/1072092201/

[機械板]
●PIC・AVR 初心者のためのスレッド-3サイクル目●
http://science4.2ch.net/test/read.cgi/kikai/1067082692/
●PIC・AVR 初心者のためのスレッド-2サイクル目●
 =行方不明。過去ログ持ってる人いたら提供よろしく
●PIC・AVR 初心者のためのスレッド●
http://mentai.peko.2ch.net/kikai/kako/981/981417210.html

3 :774ワット発電中さん:2009/04/17(金) 12:52:15 ID:mccgkw+Z
<参考になるページ>
・AVR-wiki  http://avrwiki.jpn.ph/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/

4 :774ワット発電中さん:2009/04/17(金) 12:53:27 ID:mccgkw+Z
<ライタ関連>
・秋月のAVRライター(COMポート)+新しいファームウェア
  http://akizukidenshi.com/down/
  http://www.t3.rim.or.jp/~temple/software.html
・共立電子(デジット)のAVRドングル(Printerポート)。ジャンパ1つでSTK200互換
  http://digit.kyohritsu.com/
・Olimex製のAVR-PG1Bは安い。Olimexだと$9.95。
  http://www.olimex.com/dev/avr-pg1b.html
販売元:Sparkfun、SolitonWave
  http://www.sparkfun.com/shop/index.php?shop=1&match_criteria=all&rec=&keywords=AVR-PG1B+&
純正品:AVR-ISP(COMポート)、STK500。パラレルライタ機能あり
  http://www.atmel.com/dyn/products/tools.asp?family_id=607
純正品:AVR-isp mkU(USB接続)
  http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3808

・プログラマ(書き込み器)を自作の参考になるサイト
  *jcl:AVRマイコン用プログラマの制作
    http://micomfreaks.hp.infoseek.co.jp/AVRprog.html
  *ELM-AVRライタ製作集
    http://elm-chan.org/works/avrx/report.html
  *オプティマイズ:EZ-USBライタ
    http://optimize.ath.cx/avr/writer.htm
  *2台目以降なら1チップでUSB接続のライタ自作もできます。
    USBasp、HIDasp、HIDaspx、等

5 :774ワット発電中さん:2009/04/17(金) 12:54:44 ID:mccgkw+Z
とりあえず立てた。なんかあったら補足よろ

6 :774ワット発電中さん:2009/04/17(金) 13:15:52 ID:2mtlubIX
必死 ID 超乙と 78K 使いの俺が言ってみる。

7 :774ワット発電中さん:2009/04/17(金) 15:00:17 ID:GkZy0vld
そういや、話題になること少ないけどAVR32もこの板だよね?


8 :774ワット発電中さん:2009/04/17(金) 16:57:36 ID:rGFf3Q49
前スレ999>>
youtubeみた、結構いいね。
Mega88で作れれば流行るかもね、メモリ厳しいからストレージ無しで無理そうだけど。
いっそMega88を2個でどうにかなるならそれはそれで安上がりかもしれず。

9 :774ワット発電中さん:2009/04/17(金) 17:48:04 ID:9KICzHVH
すげぇなあ。
関連動画見たらカラーのスーパーマリオまで

10 :774ワット発電中さん:2009/04/17(金) 19:29:24 ID:Tl1KQmyR
どうでもいい話なんですけど、
AVRSTUDIOを最大化しても画面一杯に表示されないんだけど(上が開くの)
おれだけかい?

11 :774ワット発電中さん:2009/04/18(土) 06:51:15 ID:9Oy26hc5
前スレで、Mega88/48が保守品種になってるってか
製品ページにはMega88P/48Pも無くてMega88PA/48PAだけになってるけど、
Mega168はAtmelの製品ページから消えてないんだね。

よってMega88のデータシートはMega168から辿れるRev.Pが最終か。
もっともRev.PのデータシートにはNot Recommandって書いてあるから
168Pへの移行は前提の様だけれども。

で、168PになってROM32K/RAM2Kの328Pが追加されてるのね。

12 :774ワット発電中さん:2009/04/18(土) 07:29:28 ID:qWasPI1I
上位互換な製品が出てるなら別に廃止になってもいいよ

13 :774ワット発電中さん:2009/04/18(土) 13:33:28 ID:vBsRsTtt
>328Pが追加されてるのね。

うっそ、めっさ欲しい。。 乗り換えようかしらん。

>>8
んー、音と映像で分けても映像側が8Kだと厳しいかな
均等に分けられればいいけど同期とったり色々と挫けそうな悪寒。

PAC-とりあえず操作可能に
ttp://www.chitaro.com/src/chitaro0338.lzh.html

14 :774ワット発電中さん:2009/04/18(土) 13:36:44 ID:LIOAzHrB
328の値段で秋月の128が買えそうな予感。

15 :774ワット発電中さん:2009/04/18(土) 14:17:18 ID:e3jVE+ej
>>13
これってVideo端子はコンポジット(黄色い奴)が出ているの?

16 :774ワット発電中さん:2009/04/18(土) 16:10:18 ID:lpuOXSs7
AVR日本語マニュアルどこかな。。。
404\(^o^)/

17 :774ワット発電中さん:2009/04/18(土) 16:51:37 ID:vBsRsTtt
mega328(dip28) digi-keyで最低500個単位かぁ orz
ま、20MHzくらい昔のシリーズでもオーバークロックで行けるからいいか。

>>15
そうです、黄色のやつです。
ブレッドボードで組んでお試し下さい。

18 :774ワット発電中さん:2009/04/19(日) 04:56:23 ID:ZTDLwnUq
みんなどれくらいのオーバークロックは平気だった?

19 :774ワット発電中さん:2009/04/19(日) 14:49:28 ID:lXDaXfmG
mega88だが、手持ちのクリスタルでは28.636MHzが最高だった
これ以上だと、動くには動くが、自動的に分周がはたらくようだ

20 :774ワット発電中さん:2009/04/19(日) 17:47:57 ID:lXDaXfmG
どこかにAVRを使ったスペアナの作例はないですか?
フーリエ変換がAVRでできるでしょうか?

21 :774ワット発電中さん:2009/04/19(日) 17:52:58 ID:VRD7DoYL
>>20
ttp://elm-chan.org/works/rsm/report.html

22 :774ワット発電中さん:2009/04/19(日) 17:57:54 ID:U+gTlW1F
周波数を掛けるレンジにもよると思うけどRAMが欲しいよね。
周期512stepとしても6KBくらいワークが必要かも。


23 :774ワット発電中さん:2009/04/19(日) 18:19:38 ID:u2Y6xZRZ
ATmega128と変換基盤買ってきたんだけど、なにこれ人の手で半田付けできるの?

24 :774ワット発電中さん:2009/04/19(日) 18:24:27 ID:puuirTGH
>>23
QFP?MLF?
MLFでもコツがわかればできなくはないけど手半田ならQFPがオススメ

25 :774ワット発電中さん:2009/04/19(日) 18:52:12 ID:mWhnhV44
QFP solderingをyoutubeで検索するといくつか見られるよ

26 :774ワット発電中さん:2009/04/19(日) 18:58:04 ID:mDiqYefx
ビデオ見ると拡大されてるから「これならできるかも!」と勢いづいて
机に向かうのだが、実物を見るとショボーンとなる俺。0.65と0.5はマジで
壁が高い。

27 :774ワット発電中さん:2009/04/19(日) 19:29:39 ID:puuirTGH
ATmega128のQFPならたしか0.8mmピッチですよ。

28 :774ワット発電中さん:2009/04/19(日) 19:36:04 ID:17OJwkwS
QFPのハンダ付け
小さな紙をV字型に折って隣と隔離して0.2mmUEWでハンダ付け。


29 :774ワット発電中さん:2009/04/19(日) 20:25:37 ID:OBibS7px
ニコニコで申し訳ないがこの人もうまいな
http://www.nicovideo.jp/watch/sm2999516
どばーっと半田載せて吸い取り線で除去でもいいと思うが



30 :774ワット発電中さん:2009/04/19(日) 20:54:41 ID:ZTDLwnUq
0.25mmピッチまでならできるなぁ

31 :774ワット発電中さん:2009/04/19(日) 20:55:41 ID:u2Y6xZRZ
ありがとう。買ってきたのはQFPの0.8mmのやつです。
まさかと思ったがやっぱり手で半田付けするのね。ユニバーサル基盤でもいっぱい
いっぱいなのにハードル高いぜ…
とりあえずまた今度細い半田ごて買ってくることにします

32 :774ワット発電中さん:2009/04/19(日) 21:03:56 ID:puuirTGH
他メーカのアプリケーションノートだけど参考になると思います。
ttps://www.silabs.com/Support%20Documents/TechnicalDocs/an114.pdf


33 :774ワット発電中さん:2009/04/19(日) 21:33:19 ID:0dN7CfVh
>>29
ここで知らないヤツはいないんじゃないか?

34 :774ワット発電中さん:2009/04/19(日) 21:45:18 ID:VRD7DoYL
>>32

いい資料d
こういう風にちゃんと書いてある資料が欲しかった

35 :774ワット発電中さん:2009/04/19(日) 22:30:25 ID:zbUyx5Df
avr-gccでプログラムからリセットをかけることはできますか?

exit(0)だとプログラムは停止したのですが、リブートしません。
reset()という関数がないかなぁとおもうのですが。


36 :774ワット発電中さん:2009/04/19(日) 22:35:54 ID:U+gTlW1F
どうしてもATmega328欲しかったんで、
"スイッチサイエンス" (尼に出店してた店)に注文してみた。とりあえず10個。
料金後払いのようだけど大丈夫かしらん。

37 :774ワット発電中さん:2009/04/19(日) 22:40:04 ID:VRD7DoYL
>>35
完全にソフトウェアのみっていうとwatchdogを使ってリセットさせるぐらいしか思いつかないなぁ・・・

38 :774ワット発電中さん:2009/04/19(日) 22:51:59 ID:JU0vKDI+
>>35
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_softreset
http://www11.ocn.ne.jp/~akibow/AVR/avr-libc-user-manual-1.6.5/FAQ.html#faq_softreset

39 :774ワット発電中さん:2009/04/19(日) 22:52:06 ID:mDiqYefx
アセンブラでリセットベクトルにジャンプすれば?

40 :774ワット発電中さん:2009/04/19(日) 22:59:55 ID:VRD7DoYL
>>39
それじゃ意味ないっしょ。単にプログラムが最初から実行されるだけで、
ポートやレジスタの状態がリセット時とは異なるわけだから・・・

>>38
やっぱりwatchdogを使うしかないのか・・・この方法だと、最短でも15msの
タイムラグが出ちゃうんだよなぁ。インストラクション実行後1クロック以内で
リセットとか言うと、外部に細工をするしかないんだよねぇ。

41 :774ワット発電中さん:2009/04/19(日) 23:02:28 ID:mDiqYefx
WDTが正解ぽいけど、状態については全状態の明示初期化コードを
スタートアップに書いとけばなんとかならん?

42 :774ワット発電中さん:2009/04/19(日) 23:11:46 ID:VRD7DoYL
>>41
それだと、全レジスタ一つづつ書き込んでいかなければ成らないので、
1. 数十インストラクションかかる(おそらく100クロック以上必要)
2. リセットと違い一斉に状態が変わるわけではない
などの理由により、リセットと等価というわけには行かないと思う。

43 :35:2009/04/19(日) 23:18:49 ID:zbUyx5Df
なるほど。WDTですね。ありがとうございます。


別の話題ですが、tiny2313が秋月で100円なので下手なICより安いです。
IOを増やすためのシフトレジスタとかRTC http://akizukidenshi.com/catalog/g/gI-00233/
なんかは2313で作ったら安上がりかと思いました。
他にも2313をつかって「クローン」を作れる部品があるのではないかと思うのですが、
どうでしょうか。


なんていっている私はシフトレジスタもRTCも使ったことはありません。


44 :774ワット発電中さん:2009/04/19(日) 23:20:48 ID:lXDaXfmG
2313にADCがついていたら最強なんだが
まあMega88も250円だからそっち買えばいいんだけど

45 :774ワット発電中さん:2009/04/19(日) 23:27:43 ID:VRD7DoYL
>>44
とりあえず、これでいける。
ttp://www.atmel.com/dyn/resources/prod_documents/doc0942.pdf
ttp://www.atmel.com/dyn/resources/prod_documents/doc0953.pdf
極限まで簡略化すると
ttp://elm-chan.org/docs/avr/avradc_j.html

46 :774ワット発電中さん:2009/04/19(日) 23:33:32 ID:JU0vKDI+
>>42
使うレジスタだけでいいという割り切りでもいいと思う。
レジスタの規定値が全て不定であるという前提でプログラムすればいい。
ってのはだめかな?それでは困るケースってどんなのがある?



47 :774ワット発電中さん:2009/04/20(月) 08:52:09 ID:IWwnkyGC
>>46
一番困るのが、ポートの状態かな?リセット直後は全ポートが
一斉に入力・ハイインピーダンスになることが保障されている。
まぁ、こういうことで誤動作しないように、良く考えて外部回路を
作れば良いんだとは思うけど。

48 :774ワット発電中さん:2009/04/20(月) 10:52:28 ID:MyUezOtL
>>43
さすがにシフトレジスタは100円以下でAVRでシミュレートするより性能がいいのが買えると思うが。
複雑なものならCPLDなど?

49 :774ワット発電中さん:2009/04/20(月) 12:36:41 ID:GOBLI4fC
>>42
WDTよりは早いと思ふ。
拘るならPort出力で外部Resetかければ委員じゃね?

50 :774ワット発電中さん:2009/04/21(火) 02:15:10 ID:GHai9nCw
AVRだけで作る音楽プレーヤ Ver.3
ttp://himitsu.jpn.ph/denshikosaku/adpcmplayer/adpp.html

51 :774ワット発電中さん:2009/04/21(火) 06:35:01 ID:gprZ829P
>R-2Rラダーを利用したVer.1、DAC ICを利用したVer.2は公開を終了しました。

www

52 :774ワット発電中さん:2009/04/21(火) 11:03:21 ID:lBrrHBW9
>>50
前スレで既出

53 :774ワット発電中さん:2009/04/21(火) 22:49:50 ID:WZh70Isz
AD変換とかカウント/タイマとかで使うI/Oレジスタとその各ビットの意味をまとめてくれている
サイトってない?
自分でまとめようかと思ったけどできるなら楽したい

54 :774ワット発電中さん:2009/04/21(火) 22:52:09 ID:53+SFHtz
日本語訳データシートのそのページだけ切り取ったら?

55 :774ワット発電中さん:2009/04/22(水) 02:50:47 ID:8SUd9NCp
そうしようと思ってたんだけどそれが面倒なんだよね

56 :36:2009/04/22(水) 05:38:14 ID:5vSAmTQj
Mega328届いた。
焼いても動かないので不良かと思ったら、ヒューズがbootになってた。
Arduinoのチップ交換用としての販売だからIPLが入っていたのか。

57 :774ワット発電中さん:2009/04/22(水) 07:03:47 ID:NM3KX3/t
チップの裏に英文字のリビジョンコードあるはずですが
いくつでしたか?

58 :36:2009/04/22(水) 08:06:47 ID:5vSAmTQj
裏?刻印でいいのかい? シールじゃないけど。
8H3921
35450B
1-P0908 e3
でした。
ひょっとして、最近のチップは工場出荷からIPL仕込んでたりしますか。

59 :774ワット発電中さん:2009/04/22(水) 11:27:10 ID:t4k5noRQ
>>36,58
>ATmega328Pに、Arduino 0013に付属するATmega328P用のブートローダを書き込んでお渡しします。
とサイトの商品説明にしっかりと書いてある


60 :774ワット発電中さん:2009/04/22(水) 12:42:50 ID:tRkSk6qw
で、Mega328で何作るの?
Mega328でないと作れないものって何?

61 :774ワット発電中さん:2009/04/22(水) 13:15:39 ID:OdZT6t+U
>>58
>35450B
て書いているということはrev.Bですね。
データシートにこういう記述があって
>1.不安定な32kHz発振器 (328P-A/B)
32kHz発振器はシステム クロックとして動作しません。
>非同期タイマとして使用される32kHz発振器は不正確です。
>対策/対処
>ありません。
とあったので気になってました。

62 :58:2009/04/22(水) 18:59:05 ID:5vSAmTQj
>>59
今見たら確かに書いてあったね、詳細ページの方に、
俺は詳細ページに行かずに購入したので知りませんでした。

>>60
AVGAのようなものですね、PIC24でやれってか?

63 :774ワット発電中さん:2009/04/22(水) 20:48:41 ID:SPaS+eK9
テレビ出力使うのは、
あと2年でテレビがデジタル化するとただのガラクタになるから
どうも作る気が起きない

64 :774ワット発電中さん:2009/04/22(水) 20:51:51 ID:fjwaXN8h
>>60
そりゃもちろんライターだろ

65 :774ワット発電中さん:2009/04/22(水) 20:56:05 ID:oVgavV9G
>>63
アナログチューナーがなくなってもアナログビデオ入力は機器がある以上当分存続すると思うよ。


66 :774ワット発電中さん:2009/04/22(水) 22:29:23 ID:8SUd9NCp
AVRとは別電源から電源とってるセンサーからの信号をAD変換するときの配線が分からないです。
センサーへの電源は別電源から、センサーからの出力はAVRのADCピンへ、センサーのグランド
は別電源のグランドへ接続ってやっても出鱈目な数値がでちゃうからこれじゃいけないんですよね?

67 :774ワット発電中さん:2009/04/22(水) 22:33:05 ID:dnW20+OT
AVRとセンサのGNDも接続されてないのですか?
絶縁されている必要があるならフォトカプラみたいなものを使って接続でしょうかね。

68 :774ワット発電中さん:2009/04/22(水) 23:50:07 ID:8SUd9NCp
ありがとうございます。やっぱりAVR側の電源のグランドとセンサー側の電源の
グランドを繋げないと駄目なんですね。

69 :774ワット発電中さん:2009/04/23(木) 05:56:44 ID:+wdhMIqs
波形が鈍って良いなら、コンデンサ直列。

70 :774ワット発電中さん:2009/04/23(木) 09:10:15 ID:7QmhFKjq
センサー側のグラウンドとマイコン側のグラウンドの電位差が大きくならないことを
保証できるなら差動入力


71 :774ワット発電中さん:2009/04/24(金) 00:04:58 ID:auAJdrce
↓に超音波センサ乗っけてたら突然動かなくなりました
ttp://www.besttechnology.co.jp/goods/goodlist/BTC067.htm
センサを接続するとwirteモードの場合光るはずのモニタLEDが光らなくなります。
マイコンが壊れたんでしょうか?

72 :774ワット発電中さん:2009/04/24(金) 00:09:01 ID:jdr0R/Du
どのように超音波センサーを接続したか書かないとだれもわからないと思いますよ。

73 :774ワット発電中さん:2009/04/24(金) 00:38:08 ID:4U9sfnz/
>>71
BTE069 USS3 のことですか?>超音波センサ
このセンサ半二重通信で使うものみたいなので、これをもしもUARTにつなぐなら
同じくUARTを使うブートローダー経由ライタとは競合するんじゃないの?


74 :774ワット発電中さん:2009/04/24(金) 00:58:01 ID:auAJdrce
>>72
ttp://www.dotup.org/uploda/www.dotup.org31563.jpg
こんなのです
基板自作しただけでほぼ↓です
ttp://www.robotsfx.com/robot/robohow/RoboHow57/RoboHow57.html

75 :774ワット発電中さん:2009/04/24(金) 09:09:25 ID:tocJdFtj
>>74
ありゃ、信号はこんなものなのか・・・入力ピンもPB6なのね。>>73は忘れてくれ。

ベステクのボードなら通常はブートローダーによる書き込みか・・・
ブートローダー利用でUART書き込みしてる?それともISPライタで書き込みしてる?
もし後者なら、mega32のPB6はMISOと共用みたいなので、なんか変な動作しているんじゃない?
AVRからの出力をセンサーユニットが捉えて、アンサーパルスを出してぐちゃぐちゃにしてるとか。



76 :774ワット発電中さん:2009/04/24(金) 17:54:37 ID:+QAWlTuo
AVR-Wiki死にっぱなし?

77 :774ワット発電中さん:2009/04/24(金) 18:43:34 ID:x9rRQDGo
>>76
もう一つのリンク先
ttp://himitsu.jpn.ph/avrwiki/wiki.cgi

78 :774ワット発電中さん:2009/04/24(金) 19:56:29 ID:+QAWlTuo
保存しました!ありがとうございます。

79 :774ワット発電中さん:2009/04/25(土) 00:41:23 ID:S3CXm/qw
タイマーって1クロックごとにカウント1足していくんだよね?
例えば分周無しでこのプログラムを実行したとき、タイマーをかけたときはタイマー
のカウントをインクリメントするのに1クロック使われて、iが増えていく速度はタイマー
かけていないときより遅くなるの?
あと、タイマー割り込みのところの処理をしている間もタイマーのカウントは増えてる?

タイマー割り込み{
   何か処理;
}
main(){
  int i=0;
  タイマーをかけるorかけない;
  while(1)i++;
}

80 :774ワット発電中さん:2009/04/25(土) 00:43:30 ID:jybYjhU1
気にしたこと無いなぁ。
AVR Studioで試せば一発で判るけど。

81 :774ワット発電中さん:2009/04/25(土) 01:18:35 ID:q5GTUctz
タイマは、ALUとは別にHWでカウンタがインクリメントされる。
んで、一致やオーバーフローで割込みが発生したりしなかったり。

だから内部クロックだけじゃなくて外部をクロック源にできるタイマもあるし、
PWM動作時は、CPU負荷無しにポートをパタパタできる。

でないと、なんの役にも立たないw

82 :774ワット発電中さん:2009/04/25(土) 01:20:08 ID:vsH1w56O
>>79
タイマーはプログラムと関係なく別ハードでカウントしてるから、iの速さは同じ
割り込み処理中でもタイマーは勝手に進む

結論
割り込み処理中に次の割り込みが発生(割り込み禁止になってる)しない限り、
割り込み間隔は一定。
ただし、割り込み発生時に実行している命令が複数クロックかかる奴なら、
その命令が終わってから割り込みが発生するから、
1クロックでもずれると困る時は工夫が必要

83 :774ワット発電中さん:2009/04/25(土) 01:41:48 ID:S3CXm/qw
ありがとうございます。もう一つだけいいでしょうか
タイマーの割り込みに限らず
○○割り込み{何か処理;(←複数の処理、1+2;1+3;1+4;と何個か続けて処理ある)}
で、「何か処理」中に他の又は、同じ割り込みが発生した場合ってどうなるんですか?
思い浮かんだ処理はこの4つなんですがどれになりますか?

1,「何か処理」が終わってから次に起きた割り込みの処理がされる。
2, 割り込み処理中に起きた割り込みは無視される。
3,「何か処理」は途中で強制的に終了されて後で起きた割り込みの処理の方をする
4,「何か処理」は一旦中断されて、先に後で起きた割り込み処理を終えてからまた途中の戻って処理される。

84 :774ワット発電中さん:2009/04/25(土) 02:03:23 ID:vsH1w56O
>>83
基本は1。
割り込みは専用のレジスタにフラグがあって、「フラグが有効」かつ「割り込みが許可」されてると発生する
割り込み処理中は、自分で解除しない限り割り込み禁止だから、
他の割り込みは発生しない(「割り込みフラグ」は処理中にも有効になる)
割り込み処理からリターンすると割り込みが許可されるから、
その時点でフラグが有効ならすぐ次の割り込みが発生する。

割り込み処理が時間がかかるなら、
自分で割り込み許可にして別の割り込みを処理することもある。
その場合は別の割り込み処理が終われば、元の割り込み処理の続きに帰ってくる。

ただし、割り込み処理中に許可して同じ割り込みが来たり、
いくつも他の割り込みが重なるとメモリを食いつぶして暴走するから
きっちり設計しないとはまる。なので初心者はやめた方がいい

85 :774ワット発電中さん:2009/04/25(土) 03:01:03 ID:S3CXm/qw
ありがとうございます。今まで疑問に思ってたことが解決してスッキリしました
AVRってほんとよくできてますね

86 :774ワット発電中さん:2009/04/25(土) 09:33:22 ID:KNv6jIED
>>79
タイマーを使うというのは日常のクッキングタイマーと同じ。
1,2,3,・・・と数えながら作業するのと、タイマーセットして作業に専念してアラームが鳴ったら割り込み処理をするのとの違い。
仕事しながら秒数数えるのはなかなか面倒。
それに対して、セットさえちゃんとすれば、処理の内容にかかわらずクッキングタイマーはちゃんと進む。
それがタイマーのメリット。
タイマーのアラームがちゃんと聞こえる(割込がかかる)ようにするのもお忘れ無く。

>>83
追加すると、割込には優先順位が定められている。データシート参照。
割込フラグが立ち上がった順番ではなく、割込種別の優先順位に従って処理される。
たとえば、タイマ割込の処理中に先にピン変化割込がかかり、その後に外部割り込みがかかった場合、
AVRはタイマ割込処理を抜けた時点ではじめて割込がかかったことを認識するので、
先にどちらが割込かかったかは認識せず、割込の優先順位に従ってまず外部割り込みを処理する。
外部割り込みが終わった時点でピン変化割込がかかる。


87 :774ワット発電中さん:2009/04/25(土) 11:03:33 ID:/FmUu84D
ホワイトノイズを発生させたいのですが、
擬似乱数のアルゴリズムでAVRに乗せられるぐらいの簡単なものを教えてください

88 :774ワット発電中さん:2009/04/25(土) 11:59:33 ID:DYZm1NhM
WinAVRに入ってるよ、ファイルを調べてみるとすぐ出てくる。
ほかのソフト使ってるなら判らないけど。

89 :774ワット発電中さん:2009/04/25(土) 12:48:04 ID:6v8G8dc1
>>87
つ LFSR

90 :774ワット発電中さん:2009/04/25(土) 12:51:00 ID:KNv6jIED
>>87
もしも音源としてのホワイトノイズ?なら、PCMデータを一定量読み込んでおいてその繰り返しではだめ?


91 :774ワット発電中さん:2009/04/25(土) 14:44:58 ID:jybYjhU1
M系列でググれ。

92 :74:2009/04/25(土) 22:18:59 ID:ET3w9fga
>>75
ブートローダ利用なので多分違いますね
↑の回路の電圧図ってみたら超音波センサへだすシグナルに5V必要なのに4Vすらでてなかった・・・
こういう場合はオペアンプで増幅すれば大丈夫ですかね?

93 :74:2009/04/25(土) 22:21:51 ID:ET3w9fga
消えてた・・・・
ttp://www.dotup.org/uploda/www.dotup.org36432.jpg

94 :774ワット発電中さん:2009/04/25(土) 22:24:28 ID:tUxlefAC
電池が切れ掛かってんじゃない。

95 :774ワット発電中さん:2009/04/26(日) 01:04:19 ID:wwxaoboB
・7805の電流容量が足りない。(多分ない)
・7805の接続を間違ってる。
・マイコンのポートが出力になってない。
・センサのGNDかVccにシグナル入れてる。

この辺じゃなかろうか。


96 :774ワット発電中さん:2009/04/26(日) 01:48:35 ID:lLkUpsAS
すみませんが、教えていただけますか?
秋月で買ったMega128なのですが、はじめの一回だけ書き込めて、そのあとは「ピコン」
というあの音とともに認識されなくなり書き込みができなくなりました。
使用している物はavr-isp mk2 avrstudio4 です。
なにかヒューズの設定が間違ったのでしょうか?
また、このavrを書き込めるようにすることはできますか?


よろしくお願いします。

97 :774ワット発電中さん:2009/04/26(日) 08:36:34 ID:seufw/kg
多分リセットピンが無効になってる。
あきらめてもう1個買いな

98 :774ワット発電中さん:2009/04/26(日) 08:59:31 ID:lTUtLz6E
端子よくまちがえなかったね おれの場合はしばらく動かんかった

99 :774ワット発電中さん:2009/04/26(日) 09:02:39 ID:BbcnL7o7
mega128はリセット無効にできないよ。
たぶんクロックの設定が変になってる。

…諦めて棄てろ。

100 :74:2009/04/26(日) 10:37:50 ID:ansHWGpf
>>95
シグナルポートの電圧測ったので下二つはないかと
センサとかマイコンとか接続しなければレギュレータから5Vの電圧がでてるんですけど
接続するとどんどん電圧が落ちるのは正常ですか?

101 :774ワット発電中さん:2009/04/26(日) 10:52:16 ID:mSoPYnGl
>>100
異常


102 :774ワット発電中さん:2009/04/26(日) 10:54:54 ID:TEHCEF5k
これは買いですか?
http://www.nicotak.com/avr/


103 :74:2009/04/26(日) 10:58:16 ID:ansHWGpf
>>101
となると原因はレギュレータか配線ですかね
ありがとうございました

104 :774ワット発電中さん:2009/04/26(日) 11:04:49 ID:mSoPYnGl
>>103
消費電流とかレギュレータの仕様とかチェックしましたか?
あとテスタじゃわかりづらいですが発振とかも。


105 :774ワット発電中さん:2009/04/26(日) 11:06:19 ID:seufw/kg
俺なら買わない。
入門書という位置づけなら、ピンの入出力、タイマ、ADコンバータ、シリアル通信などの
AVRの個別機能を章ごと単独で取り上げ、余計な解説をせず、その機能に的を絞った解説と作例を出すべき。
ところがこれを見ると、液晶やAVR以外のチップもふんだんに使っていて
AVRの入門というより応用例になってしまっている。これは基礎を習得した後に取り組むべきこと。

しかしAVRの本自体少ないから初心者はわけもわからず買ってしまうんだろう。


106 :774ワット発電中さん:2009/04/26(日) 11:09:26 ID:seufw/kg
ちなみに応用例ならネットにいくらでも情報があるので
なおさら買う必要はない

107 :774ワット発電中さん:2009/04/26(日) 11:37:25 ID:lLkUpsAS
>97>98>99
ありがとうございます。
やはりヒューズの設定が間違ったのでしょうか?
あきらめてもう一個買います。
でも、またやっちゃいそうで怖いです。
一般的にどんなヒューズビットの設定にすればいいのでしょうか?
mega128には103互換モードとか在るみたいですが、そこにチェックが入っていると
まずいのでしょうか?(書き込みできなくなる?)




108 :774ワット発電中さん:2009/04/26(日) 12:00:34 ID:qXOHHd/z
>>102
これからAVR始めてみようと思うからなのか、何故この本を買うかによる

109 :774ワット発電中さん:2009/04/26(日) 14:13:55 ID:x73ykAeq
>>107
クロック設定ミスった時SCKを超低いクロックにして
書き込みしたらなんとかできたことがある
(AVRSPで-d200くらいに設定してやった)

110 :774ワット発電中さん:2009/04/26(日) 16:05:59 ID:KMxrDlf5
>>107

>mega128には103互換モードとか在るみたいですが、そこにチェックが入っているとまずいのでしょうか?

工場出荷時設定は互換モードだったように思います。

また一回目焼けたそうでしが、Mega128ってMISO・MOSIでなくってシリアル端子使って焼くんだよね。
漏れは気づかずに苦しんだんだけど、ハマりませんでしたか?

111 :774ワット発電中さん:2009/04/26(日) 19:36:24 ID:PEVgpH2P
>>110
>Mega128ってMISO・MOSIでなくってシリアル端子使って焼くんだよね。
それは最初からブートローダーを書き込まれている製品に限る。



112 :774ワット発電中さん:2009/04/26(日) 19:54:18 ID:Vl+J09jf
>>111
データシートのメモリプログラミングの直列プログラミング見てごらん。
mega128はなぜかSCKはPB1だがMOSIとMISOはPB2とPB3には繋がずシリアルのあるPE0とPE1に繋ぐようになってる、AVRスレではよく出る話。
俺もUSBaspで書き換えして確認済み。
以下データシートからの抜粋

直列プログラミング用ピン配置
SPIプログラミング インターフェースがSPI I/O部を流用すると言え、1つの重要な違い、SPI I/O部でPB2とPB3に配置されるMOSI/MISOピンがこのプログラミングインターフェースで使用されないことがあります。
代わりに表127.で示されるようにPE0とPE1がSPIプログラミング動作のデータに使用されます。

113 :774ワット発電中さん:2009/04/26(日) 21:00:24 ID:/xufbfWw
>>112

直列プログラミングって何のことかと思ったw


114 :774ワット発電中さん:2009/04/26(日) 21:03:48 ID:qXOHHd/z
マルチスレッドみたいな高度なプログラミング手法かとオモタ

115 :774ワット発電中さん:2009/04/26(日) 21:34:13 ID:PEVgpH2P
>>112
それは知ってたが、ISPもSPIでの通信なので、ISP用のMISO/MOSIと言ってると考えていた。
シリアル端子使って焼く≠シリアル通信で焼く ってことか、了解。
デモ紛らわしいからPE0/PE1と言ってくれ〜



116 :774ワット発電中さん:2009/04/26(日) 23:17:58 ID:Qen+9Mp1
>107
Mega128に書き込みたくてハァハァしてるのは判る。まぁ落ち着きましょう。

いきなり書き込むんじゃなく、まずデバイス選択。
MainタブでATmega128を選んでRead Signature釦。matches(照合)ならOK
次にFusesの読み出し。工場出荷の設定か確認する。

103互換モードにチェックが入っていると103動作になるけど書き込みはできるよ。
(バグやちょっとした設定間違いと書き込み動作が成功するかは別問題)

「ピコン」音はISP Mode Errorのこと? 一回も書けてない気がする。
AVR-ISP mk2にUSBをつなぐときの「ピポン」外すときの「プポン」とは違うよね。


117 :774ワット発電中さん:2009/04/27(月) 00:37:48 ID:IlZAJS7h
>110>111>112
ispの端子はPE0 PE1 にどこかに書いてあったので、そこに接続してあります。
(ここはどこかで見たのでそうしました。あぶねぇ〜)
>116
新しい128をハンダ付けしたら設定の確認をしてみます。
「ピコン」音はISP Mode Errorです。だとすると一回も書けていないのでしょうか?
(下の方のプログレスバー?(青いやつ)が2回ぐらい伸びたように見えたのは
気のせいでしょうか?)



118 :774ワット発電中さん:2009/04/27(月) 00:41:01 ID:IlZAJS7h
>>109
一応低い周波数でも書き込みを試しましたが「ピコン」で書き込みできませんでした。
orz



119 :774ワット発電中さん:2009/04/27(月) 00:46:31 ID:IlZAJS7h
>>116
ちなみに秋月で買ったmega128です。
(2313ぐらいしか使ったこと無いので、、いろいろwebを検索しましたがあまり
 わかりませんでした。お手数をおかけしまして申し訳ありません)



120 :116:2009/04/27(月) 02:02:00 ID:dOnhzhkq
>>119
2313は使ったことあるのね。いきなりMega128かと思った。

電源異常は「ポン」でそれ以外は全部「ピコン」になるから
xxx..FAILED!とかの異常メッセージを書いてくれないと返事できないっス。

121 :774ワット発電中さん:2009/04/27(月) 06:48:16 ID:nudzjeag
俺はMega64でポートAが出荷設定でJ-TAGデバッグに
なっていて、PORTAが全く動かずに焦ったことがある。

122 :774ワット発電中さん:2009/04/27(月) 13:30:48 ID:rz16w4/f
むかーし秋月で購入したまま、どっかいってたTiny26が大量に(50個ぐらい)出てきました・・・
どなたかコイツの利用法考えてくらはい・・・

123 :774ワット発電中さん:2009/04/27(月) 13:37:30 ID:HAvV8LQp
50個とは多いな、リモコンのコピーを作ったりニッケル水素の充電器作ったりしてみては?
または無意味に乱数でPWMでLEDぽわぽわ。

124 :774ワット発電中さん:2009/04/27(月) 14:00:04 ID:xmzq4Mm5
そりゃもちろんライターを・・・

ライターを50個作って、チェーン接続。最初に一個に書き込むと次々に隣のライターへ書き込み。
自己増殖型ライターとか・・・

ライターのファームしか書き込めないのが玉に傷

125 :774ワット発電中さん:2009/04/27(月) 14:46:02 ID:KRfFV+Df
>>124
最後のライターが最初のライターに書き込むように接続してやって、無限ループの完成ですね。

126 :774ワット発電中さん:2009/04/27(月) 15:42:29 ID:xDkYqfQA
ライターでウェーブかよw
ライターはともかく、隣に影響を与えたり与えられたりするものを多数作って放り投げて見るのが面白いかな。
隣(複数)のLEDピコピコを捉えて、それを何らかの関数や遅延に通して自らの発光に反映する、
単純な処理が全体では面白い動きになる、とか。電子ホタルみたいなもんだな。
1つのAVRでポート数だけ(12個くらい)のホタルをシミュレートすると面白いかも。
となりのLEDの状態を察知するのは意外と難しいだろうから、この情報は有線でもいい。



127 :774ワット発電中さん:2009/04/27(月) 15:42:49 ID:xDkYqfQA
ウェーブ自体がこれの単純な形だな。

128 :774ワット発電中さん:2009/04/27(月) 17:41:12 ID:bNJsj1YQ
>>122
せっかく高速PWMが乗ってるんだからそれを生かしたいな
・・・何にといわれても思いつかないんだがw

129 :774ワット発電中さん:2009/04/27(月) 17:50:47 ID:RCeiKSWR
定番FAN制御

130 :774ワット発電中さん:2009/04/27(月) 18:39:21 ID:HAvV8LQp
ガイガーカウンター作ってみるのもいいな、もちろんGM管ではなく代用品で。

131 :774ワット発電中さん:2009/04/27(月) 18:53:55 ID:nudzjeag
>>122
オーケストラ組んでくれ、シリアルで通信ではなく
指揮棒を検知して自分のパートを演奏するように。

132 :774ワット発電中さん:2009/04/27(月) 20:45:19 ID:Y4MwSpPg
>>126 こんなの?
ttp://www.nicovideo.jp/watch/sm5110137

133 :774ワット発電中さん:2009/04/27(月) 22:34:24 ID:2RpvpcdL
>>132
す、すげ・・・・
でもこれは他から決められた動きを受信しているだけだからちょっと違うなあ。
あくまで単純な個別自律プログラムから、想像もしない全体の動きが出るようなものが見たい。


134 :774ワット発電中さん:2009/04/27(月) 23:51:22 ID:NJWnEj/3
デモが暴動へと発展しやがて革命に至るのですね、わかります。

135 :774ワット発電中さん:2009/04/28(火) 01:02:31 ID:gCBNiynf
>>133
ライフゲームとか人工生命の発展みたいなものかな?

136 :774ワット発電中さん:2009/04/28(火) 09:30:33 ID:G10ODpIf
>>134
だれうま

137 :774ワット発電中さん:2009/04/28(火) 20:52:46 ID:RLTFky+/
AVのRevolution

138 :774ワット発電中さん:2009/04/28(火) 21:03:11 ID:rhcFSS8l
カウンターの数値を分周計算するのマジ面倒です。
だれか希望の秒数とクロック数いれたらパッと設定する閾値と分周だしてくれるソフト作ってくれ

139 :774ワット発電中さん:2009/04/28(火) 22:00:50 ID:2d8wUDvL
>>138
CTCか何かか?
んなもんExcelでちゃっちゃとやっちゃえよ。
データシートのUBRR値の表みたいな感じで、
分周数別に、とカウント値と誤差を表示するようなシートを作ればいいだろ。


140 :774ワット発電中さん:2009/04/28(火) 22:05:23 ID:EpsnnN/g
>>138
つ ttp://www.forestmoon.com/Software/AvrIoDesigner/

141 :774ワット発電中さん:2009/04/28(火) 23:15:02 ID:rhcFSS8l
間違えた。数値と分周を計算するの だった
>>139
Excelの使い方わからないです。
>>140
早速インストールしてみたけどこの使い方もわからないです。

とりあえずExcelの関数調べてくる

142 :774ワット発電中さん:2009/04/28(火) 23:55:21 ID:2d8wUDvL
>>141

・・・・たとえば、

B2=クロック周波数(MHz単位)を入れる
B3=希望の秒数(μ秒単位)を入れる

B4="分周数"                D4="カウント数"   E4="誤差%"
B5=1       C5=$B$3*$B$2/B5  D5=int(C5+0.5)    E5=(D5-C5)/C5*100
B6=8       C6=$B$3*$B$2/B6  D6=int(C6+0.5)    E6=(D6-C6)/C6*100     
B7=64      C7=$B$3*$B$2/B7  D7=int(C7+0.5)    E7=(D7-C7)/C7*100
B8=256     C8=$B$3*$B$2/B8  D8=int(C8+0.5)    E8=(D8-C8)/C8*100
B9=1024     C9=$B$3*$B$2/B9  D9=int(C9+0.5)    E9=(D9-C9)/C9*100

これで、カウント数が範囲内(8itタイマなら255、16bitタイマなら65535)に収まる中で誤差が小さいのを選べばいい。


143 :774ワット発電中さん:2009/04/29(水) 00:05:21 ID:k/SsNDu8
MEGA644に水晶発信器をつけようと思ってるんですが、
(発信子じゃないよ)
この場合のヒューズビットの設定は外部クロック信号の
場合を参照すればいいんでしょうか?
低電力発信器とか全振幅発信器とかいろいろあるけど
違いがワカリマセン。
書き込みにはシリアルでAVRSP使ってるんですが、
そもそも4bitあるckselが3bitしか見えないし・・・

144 :774ワット発電中さん:2009/04/29(水) 00:25:52 ID:sryngiMm
盗聴器でも作るんですね

145 :774ワット発電中さん:2009/04/29(水) 01:16:22 ID:PldzxRim
>>142
なんて親切な。ありがとうございます
Excelって凄いな。今まで何か計算しようと思うとC++でその計算用のプログラム一々書いて
数値だしてたけど、ちょっとExcel勉強してみる
せっかくOffice持ってるのに今までワードしかまともに使ってなかった

146 :774ワット発電中さん:2009/04/29(水) 04:49:54 ID:mHovfhv+
OpenOfficeでもええやんか。

147 :774ワット発電中さん:2009/04/29(水) 06:31:50 ID:mHovfhv+
ttp://www.youtube.com/watch?v=l4F8UbM-1t4&feature=fvst

俺もこんなん作りたいけど、基板起こすの面倒だしなー
基板だけどっかで売ってないかなぁ。

148 :774ワット発電中さん:2009/04/29(水) 06:44:53 ID:G8v0uL54
>>147
オレ、これほしい。


149 :774ワット発電中さん:2009/04/29(水) 07:46:16 ID:rxKKgJA+
中華コピーも大活躍
ttp://www.innovativedevice.com/asp/information.asp

150 :774ワット発電中さん:2009/04/29(水) 09:11:56 ID:B0mHdbP+
>>149
youtubeの投稿者のとこじゃないのか?

151 :774ワット発電中さん:2009/04/29(水) 10:01:04 ID:RdhRUjfn
>>120>>121
Mega128付け替えたら認識しました。ヒューズビットも読めました。
M103
JTAGEN
SPIEN
にチェックが入っていて
BOOT FLASH SIZE=4096 WORD START ADDRESS=$F000
BROWN-OUT 2.7V
INT.RC OSC 1MHz,START-UP TIME 6CK+64ms
になっていました。

普通に(トーシロ)が使うにはどんな設定がいいのでしょうか?
電源は5Vでクロックは10Mhzのクリスタルです。

152 :774ワット発電中さん:2009/04/29(水) 10:02:18 ID:RdhRUjfn
>>147>>148
俺もほしいっす。

俺基盤作るから、だれかソフト作ってー

153 :774ワット発電中さん:2009/04/29(水) 10:31:15 ID:TFWpy5it
じゃあ俺ははんだ付けでもやるか・・・

154 :774ワット発電中さん:2009/04/29(水) 10:34:41 ID:04eUXyex
んじゃ、俺は組み立てる係ね。

>>149
でも、こんな物に98$はねーよと思う。
Coming SoonのLED Barも高いんだろうな。

155 :774ワット発電中さん:2009/04/29(水) 11:25:08 ID:RdQbwh2j

>>151
Mega103互換とJTAGは切る。
SPIENは切るなよ!絶対に切るなよ!!(ww

Mega128は出荷設定でMega103互換モードになっているので
M103を切らないとMega128として使えない。

>>147
綺麗で欲しいけど、実際にはぶん回してる騒音がどれくらいあるかが気になる…

156 :774ワット発電中さん:2009/04/29(水) 11:27:35 ID:DM2kBMUh
>>151
Mega103互換とJTAGは切る。
SPIENは切るなよ!絶対に切るなよ!!(ww

Mega128は出荷設定でMega103互換モードになっているので
M103を切らないとMega128として使えない。

>>147
綺麗で欲しいけど、実際にはぶん回してる騒音がどれくらいあるかが気になる…

157 :774ワット発電中さん:2009/04/29(水) 12:05:52 ID:UvHy5d2L
>>155-156
大事なので2回言ったのですね、わかります。

158 :774ワット発電中さん:2009/04/29(水) 12:33:19 ID:uNnU9Xsi
>>143
MEGA644に水晶発振器のときは外部クロックでOK
低電力とか全振幅はセラロックや水晶用。素子や回路で少し特性を変えているだけ。

AVRSP -RF
Low: 11100000 CKSEL[3:0] システムクロック選択
ちゃんと4bitありました。


159 :774ワット発電中さん:2009/04/29(水) 14:29:09 ID:mHovfhv+
>>152
じゃ、おれソフト担当するわ。
リアルタイム弧変換も目処がついたし大丈夫です。

160 :774ワット発電中さん:2009/04/29(水) 15:14:02 ID:RdhRUjfn
>>155>>156
了解しました。
SPIENはきらないように気おつけます。
M103きりました。

で、どのLEDで作ります?



161 :774ワット発電中さん:2009/04/29(水) 15:17:31 ID:RdhRUjfn
http://akizukidenshi.com/catalog/g/gI-01664/
これでいけるかな?重い?

162 :774ワット発電中さん:2009/04/29(水) 16:32:45 ID:yNBX+Z6V
>>156
SPI経由でSPIENって切れたっけ?

163 :774ワット発電中さん:2009/04/29(水) 18:16:47 ID:mHovfhv+
重さは反対側の重量でバランスとれるからあまり気にしなくても・・・
高速で回すなら風の抵抗を気にしたほうがいいので、厚みを抑えるのが吉かもです。

ドライバーはこんなもんですかね。
ttp://www.eleki-jack.com/news/2008/10/8chled.html


164 :774ワット発電中さん:2009/04/30(木) 00:03:48 ID:xotRupDj
>MEGA644に水晶発振器のときは外部クロックでOK
どもー。 理解しました。

自分とこだと、
avrsp -rf すると
low: -----000
って出るんすよね・・・ tiny2313だと
low: 11100000
みたいに全部読めるんですけど。
もしかしてmega644設定可能にするには設定がいるんかな?


165 :774ワット発電中さん:2009/04/30(木) 00:55:40 ID:aYPMX53u
AVR StudioとWinAVRでCで書いたソースをアセンブラで出力する方法ってある?

166 :774ワット発電中さん:2009/04/30(木) 01:04:18 ID:JBahHk46
WinAVR単体で出来る。

167 :774ワット発電中さん:2009/04/30(木) 01:34:43 ID:lE96p+g2
>>164
low: -----000 は不思議な表示だなぁ。
自分のはMega644P(P付き)だったけど違いがあるとは思えない。

ソースプログラムではマスクしてないからファイルの異常かな。
もう一度ダウンロードしてみるとか。


168 :774ワット発電中さん:2009/04/30(木) 02:00:15 ID:aYPMX53u
>>166
コンパイル後の.lssファイルにどうアセンブラに展開されたか書かれているのね
ループ文の中で1ループするのにどれだけ時間がかかるかは、これとアセンブラの
各命令実行時間を照らし合わせて計算していって、実行時間を求めればいいのか。面倒だな…

169 :774ワット発電中さん:2009/04/30(木) 12:21:16 ID:PgOUFum2
>>168
シミュレータ使えよ

170 :774ワット発電中さん:2009/04/30(木) 16:33:25 ID:aYPMX53u
>>169
シュミレータには処理クロック数を表示してくれる機能まであるのか
そういえばAVRStudioのシュミレータ一度も使ったこと無かったや

171 :774ワット発電中さん:2009/04/30(木) 16:57:31 ID:kVntHFXs
シミュレータ???
シュミレータ???

172 :774ワット発電中さん:2009/04/30(木) 17:00:29 ID:dnFcyjkA
SDにFATアクセスできるライブラリありませんか?

173 :774ワット発電中さん:2009/04/30(木) 17:42:52 ID:PgOUFum2
>>170
ブレークポイント間のストップウォッチ機能がある。
適切にクロックとか設定してれば時間はわかるよ。

正確に測るときは、シミュレータ起動→逆アセンブルでブレークポイント張れば良い。

外のスイッチが要るとかなら知らん。

174 :774ワット発電中さん:2009/04/30(木) 18:22:19 ID:aYPMX53u
>>171
シミュレータですね。分かっててもたまに間違えてしまう

>>173
詳しくありがとうございます。これは便利ですね
今までシミュレータってバグを見つけるものって認識しかなかった

175 :774ワット発電中さん:2009/04/30(木) 21:38:00 ID:Ndff8dtn
>>172
http://elm-chan.org/fsw/ff/00index_j.html

176 :774ワット発電中さん:2009/04/30(木) 21:39:37 ID:38yih45G
>>172
ttp://elm-chan.org/fsw/ff/00index_j.html

177 :774ワット発電中さん:2009/04/30(木) 21:40:29 ID:38yih45G
うひゃぁ!1分差でかぶったwww

178 :774ワット発電中さん:2009/05/01(金) 00:15:00 ID:tReA27fx
サーボモータの制御が上手くいかないんだけど、サーボってデューティー比
じゃなくてHiになってからLoに落ちるまでの時間を見てるの?

179 :774ワット発電中さん:2009/05/01(金) 00:20:05 ID:jszr954G
まずはフィードバック制御の基礎から始めよう。

180 :774ワット発電中さん:2009/05/01(金) 00:23:30 ID:jszr954G
スマソ。ラジコンサーボのことを言ってたのね。

入力パルスのHレベルの時間が位置指令になってる。
それを毎秒50回くらいの頻度で与えてやる。


181 :774ワット発電中さん:2009/05/01(金) 00:32:52 ID:Q38h+Tho
角度は絶対時間で決まるね。
多分パルス間隔が短いんだと思う。

182 :774ワット発電中さん:2009/05/01(金) 00:50:35 ID:tReA27fx
ありがとう。サーボモータは20ms毎に1回信号を与えてその信号のHiの長さで決まるんですね
ということはPWMでサーボモータを制御する場合20msでカウンターリセットされるようにしないと
いけないってことですか?
でもそれだと20MHzで動かしてるAVRだとPWMでサーボ制御するためには8bitだとどう分周しても
無理だから16bitPWMでしか制御できない。ってことで合ってる?

183 :774ワット発電中さん:2009/05/01(金) 00:57:19 ID:lXyDMFMJ
>ソースプログラムではマスクしてないからファイルの異常かな。
気になったのでみてみました。
ちょうど自分のとこでCOMポートのアドレス
変更する為にコンパイルして使ってたので。
mega644は3bitマスクされてました・・・
ELMさんとこから拾った奴なんですけどね。
で、マスク外してコンパイルしたら無事読み書き出来るようになりました。
めでたし。

184 :774ワット発電中さん:2009/05/01(金) 01:19:51 ID:fBVsJ0xG
>>182
20MHzなら1/1024でも400カウントだから16bit必要だね。
どうしても16bitカウンタを別の用途に使いたくて、しかもピンがあまってるなら
ソフト的にクロック生成するって方法もあるけど。
気になるならタイマのクロック選択辺りを見れば書いてある

185 :774ワット発電中さん:2009/05/01(金) 01:51:58 ID:8shbVxF2
>>182
RCサーボの周期は正確な20mSでなくても大丈夫。大事なのはHパルス幅。
20MHz/1024/256=13.1mS周期なら動くRCサーボがあるかもしれない。

ただしHパルスが1mS〜2mSになるのが19〜39の20段階しかないので
9度ずつの荒い角度になってしまうよ。

186 :774ワット発電中さん:2009/05/01(金) 04:55:53 ID:tReA27fx
ありがとうございます。とりあえず16bitPWMでサーボモータ一つ上手く制御できました。
そっか8bitだと動かす1段階ごとの角度も大きくなっちゃうね。
でもATMEGA168で16bitPWMだとサーボモータ2個しか制御できねぇ
もっと複数個しかも細かく制御したいと思ったら、20msごとにタイマー割り込みかけて
その割り込み処理でピンのHiLoしたほうがいいのかな。こりゃ大変だ

187 :774ワット発電中さん:2009/05/01(金) 07:44:35 ID:D+Xob9WX
ソフト制御でも十部でしょう。
サーボなんてそんなに精度いらないし。

188 :774ワット発電中さん:2009/05/01(金) 21:07:18 ID:jszr954G
>>183
オレが落としたのはマスクされていないけどな。
分からないけど、もしかしてバージョンが古いんじゃね?

189 :774ワット発電中さん:2009/05/01(金) 22:27:00 ID:ZvWK1sqp
時計つくって〜

190 :774ワット発電中さん:2009/05/01(金) 22:40:37 ID:XZ1YDDtO
>>189
松原さんの本を買ってください。


191 :774ワット発電中さん:2009/05/01(金) 22:41:03 ID:4G9RZPnR
連休中やることなくて暇だから、
AVR使った作品で簡単につくれて面白そうなの紹介してくれ

192 :774ワット発電中さん:2009/05/01(金) 22:51:43 ID:XZ1YDDtO
>>191
ttp://nekosan0.hp.infoseek.co.jp/avr_m.html


193 :774ワット発電中さん:2009/05/01(金) 22:54:53 ID:4G9RZPnR
バクマンか・・
ちょうど秋月で2313を箱買いしてあるし、作ってみるわ

194 :774ワット発電中さん:2009/05/01(金) 23:39:42 ID:D+Xob9WX
ttp://www7.big.or.jp/~kerokero/avr/

ネタが被ってすまそ。

195 :774ワット発電中さん:2009/05/02(土) 21:25:40 ID:kTrWxoct
ttp://www.linusakesson.net/scene/craft/index.php

こうゆうのもいいね。 まさにmega(88)demo

196 :774ワット発電中さん:2009/05/02(土) 22:59:27 ID:47/pvHOd
>>195
あっちではランドがラインになってる基板をよく使うね。
使いやすいんだろうか?

197 :774ワット発電中さん:2009/05/03(日) 00:26:55 ID:uWxl8tvg
へー、外国の基盤はこういうのなのか

198 :774ワット発電中さん:2009/05/03(日) 00:57:43 ID:O7TWAxMm
以前トラ技で紹介あったね。配線ツールソフトもあるって。

199 :774ワット発電中さん:2009/05/03(日) 01:00:01 ID:YhW4gwrO
>>196
部品面に線がはってあるし
ブレッドボードみたいな感じに接続するのかな。


200 :774ワット発電中さん:2009/05/03(日) 02:19:02 ID:H7d9+Vlr
部品面の線は印刷した紙だね。これならジャンパー間違いしない。
半田面は横パターン、部品面は縦パターンという常識的な配線っすね。
小型化が好きな日本人にとって基板のラインは邪魔だと思われ。

201 :774ワット発電中さん:2009/05/03(日) 02:33:16 ID:7XE0xeXv
やっと思い出した。
ストリップボード(Stripboard)だ。

202 :774ワット発電中さん:2009/05/03(日) 02:35:40 ID:5IQy42zS
マイコン初心者で、AVRを使ってLEDチカチカさせてみました。
消灯時もLEDが暗く点灯していたのでそういうものだと思っていたら
AVRのGNDピンの線をつなぐの忘れてました。
GND繋がなくても他のピンがGNDになって動くんですね。

203 :774ワット発電中さん:2009/05/03(日) 07:26:33 ID:Bzsn1xlA
>>202
それで動いたとは思わないほうがいい
明らかに設計外の使われ方

204 :774ワット発電中さん:2009/05/03(日) 09:34:45 ID:uWxl8tvg
質問です
あるレジスタが0のとき、dec命令を使うとFFになりますが、このときどんなフラグがセットされますか?
あるいはセットされませんか?

205 :774ワット発電中さん:2009/05/03(日) 10:11:29 ID:YhW4gwrO
>>204
AVR Instruction Set
ttp://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf
これを読めばわかると思います。


206 :774ワット発電中さん:2009/05/03(日) 10:23:16 ID:uWxl8tvg
ありがとうございました
符号なしの場合ゼロフラグ以外ダメなんですね

207 :774ワット発電中さん:2009/05/03(日) 14:43:11 ID:AufhZWfG
秋月に、tiny13Aが入ってた。
オプティマイズの詰め合わせに入っていたtiny13Vをなんとなく
使いまわしていたので、まぁうれしいんだけど
tiny45とかのほうが正直よかった...

208 :774ワット発電中さん:2009/05/03(日) 15:37:44 ID:ATn4M1Ig
tiny13か。DIPなら要らん。

209 :774ワット発電中さん:2009/05/03(日) 17:30:52 ID:o2FCcX1W
くれくれですみません。
VistaにAVRStudio4.16とWinAVR20090313をインストールして
ネット上の簡単なプログラムをいくつかBuildしてみましたが、
下記のようなエラーメッセージがでてうまくいきません。
make: Makefile: No such file or directory
make: *** No rule to make target `Makefile'. Stop.
Build failed with 2 errors and 0 warnings...
Configration Options の Include Directories やCustom Options の設定は確認した
のですが、動いてくれません。
わかる方いらっしゃいましたら、よろしくお願いします。



210 :774ワット発電中さん:2009/05/03(日) 18:30:00 ID:jwfBYWaM
>>209
単純にMakefileがないだけだろ。

211 :774ワット発電中さん:2009/05/03(日) 18:33:17 ID:o2FCcX1W
209です。
解決しました。
Project の置き場所がMyDocument上ではダメみたいです。
c:\にしたら無事に動きました。お邪魔してすみませんでした。

212 :774ワット発電中さん:2009/05/03(日) 18:38:40 ID:8nAZ6Fae
pathが切れてないのか 

setで確認

213 :774ワット発電中さん:2009/05/03(日) 20:30:13 ID:H7d9+Vlr
漢字のディレクトリもダメだったような

214 :774ワット発電中さん:2009/05/03(日) 22:35:14 ID:54yO3ZcP
VisualStudio以外の開発環境は何にしても
パスに2バイト文字を含んだりスペース入ってると不都合が多いと思った方がいい。
 Documents and Settings
 Program Files
 My Document
 デスクトップ
こんなのは避けるが無難。

215 :774ワット発電中さん:2009/05/04(月) 00:06:43 ID:rbJwSanF
開発環境のデータは別ドライブに入れた方が良いね。

216 :774ワット発電中さん:2009/05/04(月) 01:14:18 ID:2lNcrYk7
すいません、以下の図のようにブレッドボードで配線しましたが、
AVRISP mkIIのLEDがオレンジの点滅で書き込めません。
どこが悪いのでしょう?
http://up.mugitya.com/img/Lv.1_up93119.gif.html

1つ目のATmega88Pはリセットのプルアップをしていなかったら、
4つのLEDが光った状態でATmega88Pが熱くなってその後
LEDも光らなくなってしまいました。
今は予備のATmega88Pをつないでいます。

217 :774ワット発電中さん:2009/05/04(月) 06:48:51 ID:RGFXQ+3v
ブレッドボードは配線が貧弱になりやすいので、
CPUの電源には電解コンデンサー10uFくらいは入れた方がいい。
Mega88なら電源ピンが隣り合わせなので入れやすいと思う、
CPUのすぐ隣に刺してみてくれ、特に内蔵OSCの場合には
コンデンサーは重要だ。

218 :774ワット発電中さん:2009/05/04(月) 08:25:01 ID:+9kWWOnK
>>216
AVCCに電源を接続していない理由はなんでしょうか?

データシートを確認するとVCC-0.3 < AVCC < VCC+0.3となっています。
ttp://www.atmel.com/dyn/resources/prod_documents/doc8025.pdf


219 :774ワット発電中さん:2009/05/04(月) 09:46:37 ID:zPdTL/OI
>>218
ADCを使わないならつながなくてもいいのでは?

220 :774ワット発電中さん:2009/05/04(月) 09:48:16 ID:zPdTL/OI
>>217
少なくとも配線は合ってるよ
原因は何か別のところにありそう

221 :774ワット発電中さん:2009/05/04(月) 09:48:34 ID:+9kWWOnK
>>219
シリアルプログラミングのページでも接続するような感じに説明されている
気がしますけど・・・

222 :774ワット発電中さん:2009/05/04(月) 12:58:12 ID:hiomtvfv
>>216
AVRISP mkIIのオレンジ点滅はリセット異常(たぶんGND状態)。

4つのLEDが光ったのは電源ピンをずらして配線、GND->保護ダイオードで点灯かな。
ATmega88Pが熱くなるのはたいてい電源+/−が逆と想像。

223 :774ワット発電中さん:2009/05/04(月) 15:42:44 ID:GXgRPLZw
さっき弄り始めてポートD0をオンオフしてみたんだけど、
オフのとき完全に0Vにするにはどしたらいいのかな?

224 :774ワット発電中さん:2009/05/04(月) 16:05:52 ID:zPdTL/OI
FETをかます

225 :774ワット発電中さん:2009/05/04(月) 18:39:49 ID:gBo82BXJ
メカニカルリレーをかます

226 :774ワット発電中さん:2009/05/04(月) 18:45:26 ID:gBo82BXJ
>>219
ADCを使用しない場合であってもAVccは接続すべし!と
データシートに明記されているわけだが・・・

ま、ADCを使わない場合は何も考えず、Vccに直接繋いでおけば問題ないけどね。


227 :774ワット発電中さん:2009/05/04(月) 18:57:20 ID:4lSflXTc
AVCC接続はESD対策だろjk

228 :216:2009/05/04(月) 21:28:56 ID:2lNcrYk7
アドバイスありがとうございます。
コンデンサー、AVcc他配線の+/−に気をつけて再度一から
組みなおしてみます。


229 :774ワット発電中さん:2009/05/05(火) 07:59:50 ID:zAs4eyh1
avrasm2.exe ってソースファイル1本しか処理してくないですよね?
複数のアセンブリソースから1つのHEXファイルを作成することは
出来ないのでしょうか?
AVR Studioのツール群にはリンカってないんですかね?

先達の方々教えて下さい。

230 :774ワット発電中さん:2009/05/05(火) 08:29:22 ID:/89sVMed
atmega88で、きわめて簡単なLEDの点灯(点滅ではなく点灯)のプログラムを実行して
しばらくほっとくとLEDが消えたり着いたりになってしまいます。
なんで動きが不安定なんでしょうか?!?!

LEDとAVRの間は、330Ωの抵抗、電源はアダプターから3端子レギュレーターを通して5Vでやっています。
外部クロック20MHz

231 :774ワット発電中さん:2009/05/05(火) 08:34:38 ID:sWfbgRGD
>>229
C/C++言語は分割コンパイルをサポートしている
Linker (Linkage Editor)が無いとRun-Time Library もくっつけられないと… (ry

232 :774ワット発電中さん:2009/05/05(火) 08:42:52 ID:zAs4eyh1
>>231
言葉が足りませんでした。
アセンブリ言語で開発します。
複数のアセンブリソースで1本のHEXを得たい方法が分かりません。
どうしたらいいでしょうか?

233 :774ワット発電中さん:2009/05/05(火) 08:48:07 ID:YkbX3bmy
りんかーリンカーLinkerで結合する。

234 :774ワット発電中さん:2009/05/05(火) 09:00:57 ID:abhQS0YV
>>229
Atmel AVR Assembler にはリンクという概念がなかです。
なので、アセンブル対象になるソースの適時位置に、別ソースをインクルードしかない。

ソース毎にオブジェクトを生成してリンクさせたいなら、WinAVRをインストールしておき、
AVRStudioで"AVR GCC"のプロジェクトをつくり、拡張子"s"のアセンブリソースを登録する。

実際、フラッシュメモリのアドレス指定とかバイト単位で出来るので、WinAVRのアセンブラのが使いやすいと思うよ。

235 :774ワット発電中さん:2009/05/05(火) 09:29:56 ID:zAs4eyh1
>>234
なるほど。どうもありがとうございます。
AVR Studioの純正ツールチェインは
「リンクの概念がない」んですね。

それにしてもこの辺りはAtmelの考えが分かりませんね。
これじゃ、ツール関連はMPLABに負けてますよね。
ってか、サードパーティ任せなんでしょうかね。

先達の方々どうもありがとうございました。

236 :774ワット発電中さん:2009/05/05(火) 10:08:56 ID:abhQS0YV
以下、個人的感想ですが

確かに、開発環境というよりビルド設定等は、MPLABの方が一般的だと思います。
以前仕事でNECの78Kを使った事があるのですが、恐ろしく強力なデバック機能が整っていて、
78K開発環境の素晴らしくさに驚いた事があります。

開発環境でいうと
78K >>>> Pic >> AVR
というイメージを私は持っていますが、チップ自体の性能は
AVR >>>>>>>> Pic >> 78K
というイメージを持っていて、8bitコントローラではAVRが最強ではと思っています。

開発環境も、AVR Studio に WinAVR を追加すればさほど不満は無くなります。
フルアセンブリのプロジェクトでも、AVR GCCのプロジェクトとして生成すれば
一般的なメイク手順で実行ファイルを得ることが出来ます。
アセンブリソースだと、エミュレータ上でソースコードレベルデバッグが出来ないのが不満ですが、
一応リスティングファイルにブレークポイントを設定できるので、使えなくは無いです。

何より、(ほぼ)1命令1クロックで動作するという AVR の強力さに惹かれています。
78Kの時は、処理能力が足りなくて、思うような生成物が作成できないということを経験しました。
AVRだったらと何度思ったことか。

開発環境は、慣れたり、他のツールを使用したりして強化できるのですが、
チップの性能は強化できませんので・・・

237 :774ワット発電中さん:2009/05/05(火) 10:44:10 ID:hqYSAIj9
リンクの概念がないっていうけど、
一人で開発するなら別に問題ないのでは?
変数も全部グローバル変数でいいだろうし

238 :774ワット発電中さん:2009/05/05(火) 11:39:04 ID:i8M6hhsg
>>230
レギュレータの入出力と88のVCCピンの直近に0.1uFを入れる。


と適当にエスパーしてみる。

239 :774ワット発電中さん:2009/05/05(火) 12:53:28 ID:mKJdq+en
>>236
Eclipse + WinAVRでやれば、少なくともPICをMPLABでやるよりは良いと思う。
AVR Studioはエディタがダメダメすぎるからイマイチ。

240 :774ワット発電中さん:2009/05/05(火) 13:35:59 ID:fY91JUEA
エディタはいろいろ試してみたけど
結局WinAVR付属のPN2に落ち着いた


241 :774ワット発電中さん:2009/05/05(火) 13:46:53 ID:uCXyQXQf
AVR Studioのエディタには不満が1点。
ATOK使ってると日本語入力が見えない。
入力中の文字が、確定するまで画面に出ないのだ。大変不満だ。

242 :774ワット発電中さん:2009/05/05(火) 18:07:00 ID:hqYSAIj9
MSIMEだと日本語は出てくるんだけど、なぜか日本語入力をオンにしてると
改行したときにカーソルが先頭に戻ってしまう
オートインデントの設定があるんだろうか?

243 :774ワット発電中さん:2009/05/05(火) 18:37:07 ID:yKjwlVxm
PN2、これ見て使ってみたけどやっぱり不満。

もともとVisual Studio使ってたせいか、
インテリセンスが効かない環境は辛いなー。

244 :774ワット発電中さん:2009/05/05(火) 18:50:58 ID:60o1xWKS
と言う事で諸君。
AVRライタを持っていないワシのために、
FT232Rを使わずにV-USBを使った1chip-AVRでUSBspiなライタを作ってくれたまえ。

245 :774ワット発電中さん:2009/05/05(火) 19:11:55 ID:hqYSAIj9
chanさんのAVRSP使ったら?
数百円でできるし、簡単だよ。

246 :774ワット発電中さん:2009/05/05(火) 20:51:23 ID:o+U566+r
AVRでFT232Rを使う事なんて滅多にないでしょ、tiny2313でUSB-シリアル作れるし。

247 :774ワット発電中さん:2009/05/05(火) 21:23:24 ID:GOzOzN02
似非USBは遅いから却下。

248 :774ワット発電中さん:2009/05/05(火) 23:06:04 ID:60o1xWKS
>>244
http://elm-chan.org/works/avrx/report_e.html
で紹介されている
USBspi - SPI bridge for USB
に使用されている部品FT232RQ/RL
を削りたい。

249 :774ワット発電中さん:2009/05/05(火) 23:40:29 ID:hqYSAIj9
なんでUSBにこだわるの?
RS-232Cついてないパソコンなのかな

250 :774ワット発電中さん:2009/05/05(火) 23:43:34 ID:YkbX3bmy
>>244
AT90USB162マジオヌヌメ。

251 :774ワット発電中さん:2009/05/05(火) 23:44:50 ID:T3nvKS2z
DFU便利だよね。


252 :774ワット発電中さん:2009/05/06(水) 01:07:07 ID:UBonClcx
同じモノを作ることしかできない人なんだよきっと。

253 :774ワット発電中さん:2009/05/06(水) 07:37:09 ID:cIkEqgo0
>>235
Atmel純正ではないが、WinAVRでアセンブラを扱わせる方法ならできるようだ。


254 :774ワット発電中さん:2009/05/06(水) 09:56:05 ID:udX8lIWT
レガシーポート無しのPCなんてノートブックに限らず今どき普通。

255 :774ワット発電中さん:2009/05/06(水) 10:38:20 ID:UBonClcx
いまやFDないどころかPS/2もないよね、ノートに至ってはDVDドライブも外付けだし。

256 :774ワット発電中さん:2009/05/06(水) 11:35:30 ID:2mjouega
>>248
同じ1chip-USBでHIDaspxがあるのは知っているんだが、
USBで汎用SPIブリッジが1chipで出来ると嬉しいのだ。
V-USBとAVR-SPの結合をしてFT2332Rを排除して欲しい。
速度的には、USB2.0-HUB使う方法もあるようだ。

257 :774ワット発電中さん:2009/05/06(水) 13:07:19 ID:z74TDhJI
去年から流行り出したAtomのPCはフルレガシーがむしろ普通。
自作じゃなくてメーカーPCでなら確かに全滅だな。ましてやノートPCはね。

ATX/MicroATXだとASUSはマザーボード内部にCOM付きってのが今も意外とある。
ご丁寧に例の青緑色で一目瞭然。自分はそれを引き出して使ってる。

258 :774ワット発電中さん:2009/05/06(水) 13:16:24 ID:UBonClcx
>>257
それでPCIスロットに取り付けるシリアルポートのケーブルが店で売ってるともっといいんだけどね。
しかもパソコンの蓋開けたらメーカー保証外ですとか言われてしょんぼりしたことある。

259 :774ワット発電中さん:2009/05/06(水) 13:32:48 ID:3RUNJN0k
電子工作やってるぐらいの人間なら、自作PCにしろよ
ほしい機能を何でもつけられるぞ

260 :774ワット発電中さん:2009/05/06(水) 13:38:41 ID:UBonClcx
>>259
初めてメーカーPCで買ってそれでしょんぼりして以来自作PCです。
しかしメーカーPCで蓋開けたりHDD交換したらメーカー保証外って言うメーカーって……。

261 :774ワット発電中さん:2009/05/06(水) 14:32:55 ID:z74TDhJI
念のため言っておくと、ASUSのマザボのCOMの話は自作PCな。

PCIの背面パネルに引き出すやつは通販でも入手しづらいので自作。
1mm厚のプラ版と5mm角のプラ棒、自分はよく使う。

ttp://www.dotup.org/uploda/www.dotup.org4276.jpg.html
右上、コードの抜け防止にプラ棒の端材をくっつけてる。
左下、中心奥がCOMコネクタ。マザボはP5B-VM。古い。

262 :774ワット発電中さん:2009/05/06(水) 14:38:51 ID:UBonClcx
>>261
PCIスロットにカバーしてて見た目いいね。

263 :774ワット発電中さん:2009/05/06(水) 15:25:29 ID:4cTMGxI4
>>257
マザーからCOMを背面に引き出すブラケット、
カモンかYOKOかは忘れたけど、千石2号店で売ってたよ。

俺の使い方ではFT232あればほとんど済んじゃうって気づいたから、
この前組みなおした時、BIOSでCOMとLPT切ってレガシーフリーにしちゃった。

264 :774ワット発電中さん:2009/05/06(水) 17:41:25 ID:mkzIqphS
少し前までエクスプレスカードの拡張LPT使ってましたが
FT2232のおかげでようやっと卒業できそうです

265 :774ワット発電中さん:2009/05/06(水) 23:26:32 ID:886xfd4E
アキバのどっかにジャンクのグラボと、
そのグラボ用のブラケットを別々に売ってる店があった。

そのD-sub15Pの穴が開いたブラケットだけを50円とかで買って、
D-sub9Pつけてマザボから引き出してある。

店のおじさんには、
「これだけ買ってどうするのw」
と言われた。

266 :774ワット発電中さん:2009/05/07(木) 23:33:17 ID:4PPOa7SL
88Pがつぎつぎと書き込み不可になる。

267 :774ワット発電中さん:2009/05/07(木) 23:37:50 ID:EuZ7rSc5
AVRに初挑戦。
浮いている足がないように全部プルアップしようか・・
と思ってふと気がついたのがISPが使用している足はプルアップしても
かまわないのか?
さらには出力にしてしまってもISPは大丈夫なのか?
そもそもISPはマイコンの動作中にどうやってプログラミング動作に入るのか?
あまりにも初歩的ですが教えてください。

268 :774ワット発電中さん:2009/05/07(木) 23:56:01 ID:4UHHNEBy
AVRにはすべてのIOピンにプルアップ抵抗が内蔵されている(20kΩ〜50kΩぐらい)

269 :774ワット発電中さん:2009/05/07(木) 23:58:23 ID:J7StWS6y
>>267
ISPピンの処理については、ここに出てるよ。
ttp://elm-chan.org/works/avrx/report.html

プログラムモードへの入り方はデータシート参照。

あと、無理やり外部でプルアップしなくてもよほど酷い環境で
使わない限り、内部プルアップできるから問題ないと思うよ。
(電源が落ちているときのESD対策っていうんなら多少効果あるとは思うけど)

270 :774ワット発電中さん:2009/05/08(金) 00:05:27 ID:yv/tx15S
初心者ということなので、おそらく内蔵プルアップを知らないんだろう
まずはデータシートを一通り読んで、どんな機能があるのかを確かめた方がいい
でないとせっかく用意されている機能を知らないまま、外付けのデバイスに頼ることになる

271 :267:2009/05/08(金) 00:30:20 ID:97xjQsEO
説明不足ですみません。
プルアップはソフトで(内蔵プルアップ)の話です。
>269 ISPピンの処理について参考になりました。
ISPを挿したままで他の用途にも使うという際のノウハウですね。

ISP専用にそれらのピンを使うとしても入出力の方向設定とか
「ISPを使うぞ」という何らかの設定を行なう必要があるのでしょうか?

272 :774ワット発電中さん:2009/05/08(金) 00:37:51 ID:A6+LS5rW
>>271
> ISP専用にそれらのピンを使うとしても入出力の方向設定とか
> 「ISPを使うぞ」という何らかの設定を行なう必要があるのでしょうか?

通常いらない。敢えて気にするならESD対策のためにHiZの入力にしとかない
ぐらいじゃないかな・・・

273 :267:2009/05/08(金) 00:43:21 ID:97xjQsEO
なるほど・・RESETがLOWに落ちている状態で通信するのですね。
おそらくリセットがかかるとIO端子が自動的にハイインピーダンスに切り替わる
のかな。

274 :267:2009/05/08(金) 09:04:23 ID:/BY5VoqT
うまく動いた。
ちなみに入力でプルアップにしておきました。
しかし眠くて仕事にならんな・・

ISPを用いて動作中にマイコンとパソコンの間で通信することは
できないのでしょうか?
それができれば開発効率が非常に上がるのですが・・


275 :774ワット発電中さん:2009/05/08(金) 09:34:56 ID:NQ+fwO8D
ソフトウェアでMOSIにシリアル信号を送ればいい
受信はWindows付属のハイパーターミナルでおk

276 :267:2009/05/08(金) 12:38:45 ID:/BY5VoqT
>275
AVRISPmkIIでも可能なのですか?


277 :774ワット発電中さん:2009/05/08(金) 12:57:20 ID:lEBgaKT3
>>274
>ISPを用いて動作中
ってのが何を意味するか分からないけど、
ISPケーブルでライタと接続中にと言う意味なら、問題なくできる。
ISP機構は転送時以外は切れる。

ISPケーブル・ライタ経由でマイコンと通信をしたいというならこれ。
http://elm-chan.org/works/avrx/report.html
COMポート接続ライタは、ISPピンを使うソフトウェアシリアル通信プログラムをAVR側に書き込めば通信可能。
また、SPIブリッジはその名の通りSPI通信をAVRとの間で行うものなので、AVR側にSPI通信プログラムを
組み込めばライター経由でAVRと通信ができる。
当然だがどちらもAVR側に通信プログラムを書き込むことが前提。
AVRがプログラムなしでできるのはメモリプログラミングだけ。


278 :267:2009/05/08(金) 15:03:28 ID:/BY5VoqT
>COMポート接続ライタ
USB接続のAVRISPmkIIはそれができないということでしょうか・・

279 :774ワット発電中さん:2009/05/08(金) 15:58:53 ID:A6+LS5rW
>>278

少しは自分でググろうとか思わないのか?

280 :774ワット発電中さん:2009/05/08(金) 16:09:58 ID:lEBgaKT3
>>278
やろうと思えばできるw
メモリプログラミングをシミュレートするプログラムを組み込む。
ISPからRESET線だけを切り離し、ライターを動作すると、
シリアルプログラミングじゃなく、内蔵プログラムが通信を担当するとか。

あ、単なる妄想だからな。
そういうことやりたければ>>277しましょう。

ISPでの通信にこだわらず、普通にUARTに別のUSBシリアルでもつないだ方がいいと思うけどな。



281 :774ワット発電中さん:2009/05/09(土) 02:36:38 ID:zLXm2tpq
>>279
電気・電子系の偏差値は理工系最低ランクっすから
相手は落ちこぼれだっていう前提で話しないと駄目みたいよ


282 :267:2009/05/09(土) 06:10:45 ID:w+CUd5Zv
>ISPでの通信にこだわらず、普通にUARTに別のUSBシリアルでもつないだ方がいいと思うけどな。

とりあえずはそうします。
そのうちにライターは作りたいですね・・
やはり書き込みと動作中の通信がパソコンと一口でできるのは捨てがたい。


283 :774ワット発電中さん:2009/05/09(土) 23:35:37 ID:1WXYOllE
電気・電子系は他と違って人気無いから競争率低いって理由でアホなヤツばっかり来るよな。
だいたい9割くらいがそういう理由で入ってきてるし。

284 :774ワット発電中さん:2009/05/10(日) 12:55:25 ID:zBp9OirX
WINAVRでコンパイルしようとして下記のa<=255の等号をなくせばきちんんとコンパイル
されるが等号があるとlssファイルを見たところループ処理がまったく無くなる。
同様の現象を経験された方いませんか?


#include <avr/io.h>

int main(void) {

unsigned char a=0;

while(1){

for(a=0;a<=255;a++){

}
}

}


285 :774ワット発電中さん:2009/05/10(日) 13:07:35 ID:4APJe9K+
a=255でa++するとunsigned char の範囲を超えるでしょ。

286 :284:2009/05/10(日) 13:24:16 ID:zBp9OirX
>285
そ・・それで何の警告もなくおかしくなるのですか!
オーバーフローで無限ループしているのならまだしもごっそり処理が無くなるとは。
まあ、慣れれば何の問題もないのでしょうが。

でも0〜255まで処理することは多くあるでしょう?
while breakとか別の書き方をするかaをint型にするとかくらいしか思いうかびませんが
その場合はどう書くのが効率が良いのでしょうか。

287 :774ワット発電中さん:2009/05/10(日) 13:31:27 ID:NvTBgWBn
for(i=0;i<256;i++) {
}

288 :774ワット発電中さん:2009/05/10(日) 13:31:56 ID:z+n3FmIh
Cに拘るならshortにする。
Asmで良いならCフラグを使う。

289 :284:2009/05/10(日) 13:45:03 ID:zBp9OirX
>287
やはりだめです。
>288
そういうことですよね・・

処理がなくなると思っていたのは最適化で消されたと解釈すべきなのでしょうか。

290 :774ワット発電中さん:2009/05/10(日) 14:02:02 ID:c383e2Ez
>>286
unsigned charでa<=255は常に成立するから省略されるのは仕方ないね。エラーじゃないし。
ただ、表現しようもない比較演算なのだから、Warningくらいは確かに欲しい。

余りスマートじゃないけど、
a=0; do {} while (a++ < 255);
このへんかな?



291 :774ワット発電中さん:2009/05/10(日) 15:19:53 ID:ARKh8fJe
WinAVR使うと最適化レベルの意識も必要になるんじゃないかな。
>284の例は-sOになってないかい?
経験上これは、限界までガシガシ削ることを優先する最適化のようだ。
-s3にすると意図通りに動作するかも? 適当な予想だけど。

292 :774ワット発電中さん:2009/05/10(日) 15:22:12 ID:ARKh8fJe
言葉間違えた。
-sO → -Os
-s3 → -O3

293 :774ワット発電中さん:2009/05/10(日) 15:49:20 ID:NeXENtTb
>>284
a<=255は常時成立だから本当はwhile(1)と同じになって欲しいところだけどね
軽く妄想すると、
for(a=0;a<=255;a++)
がコンパイル時に
=>for(a=0;a<256;a++)
に変換されて、更に1バイト変数だから256がオーバーフローで0になって
=>for(a=0;a<0;a++)
となって、a<0は不成立に決まってるからこのループは実行されないと
いう判断で一気に削除ってしまったっていうあたりかねぇ。
Warningの一言くらいあっても良いだろうってとこかな。

>でも0〜255まで処理することは多くあるでしょう?
0〜255までフルにまわしたいなら上部脱出するforじゃなくて下部で脱出
するdo〜whileを使うのが常道だろうね。


294 :774ワット発電中さん:2009/05/10(日) 16:23:14 ID:Bi4kliVo
for ループの中に何かあれば変わるんじゃね?
>>293 が正しければ、何があっても実行されないけど

295 :774ワット発電中さん:2009/05/10(日) 18:23:39 ID:YW2pQmV5
>>293
>a<=255は常時成立だから本当はwhile(1)と同じになって欲しいところだけどね

その外側にwhile(1)ループがかかっているから、
while(1) { while(1); { } }; なら、while(1) {]; と同じじゃん?と最適化されたのだと思う。


296 :774ワット発電中さん:2009/05/10(日) 21:29:55 ID:NeXENtTb
>>295
while(1)と内側のforの間とかforの中身は
何もなし?(中略)なのかと思った。
空白だったならそうだね。


297 :774ワット発電中さん:2009/05/10(日) 22:47:57 ID:Yt184KFI
>>293の説は変

for(a=0;true;a++)
{
}

for(a=0;false;a++)
{
}
に変換する訳ない。
致命的な欠陥過ぎる。

普通に295の説だと思うけどな。

298 :774ワット発電中さん:2009/05/10(日) 23:50:11 ID:g/Lb02hI
avrってbool使えないの?エラーでやがる

299 :774ワット発電中さん:2009/05/10(日) 23:57:17 ID:YW2pQmV5
>>298
avrwikiによると、
#include <stdbool.h>
らしい。

300 :774ワット発電中さん:2009/05/11(月) 00:48:42 ID:8LwcqNS+
あちがとう使えた

301 :774ワット発電中さん:2009/05/11(月) 06:45:01 ID:hkhj0yhz
>>298
avrがbool使えないんじゃなくて
C言語が標準では使えないだけ

302 :774ワット発電中さん:2009/05/11(月) 07:46:48 ID:DTMUW719
Cだと、全部大文字でTRUE FALSE BOOL って書くと使えるはず

303 :774ワット発電中さん:2009/05/11(月) 08:44:00 ID:xHl4o69R
>>296
空白じゃなくても同様でしょう。
以下をコンパイルすると分かる(-Os)
  PORTD=0;
  while(1) {
    PORTD=1;
    for (a=0;a<=255;a++) {
      PORTD=2;
    }
    PORTD=3;
  }
  PORTD=4;

結果は、
68:  12 ba   out  0x12, r1  ; PORTD=0;
6a:  81 e0   ldi  r24, 0x01  ;
6c:  82 bb   out  0x12, r24  ; PORTD=1;
6e:  82 e0   ldi  r24, 0x02  ; 2
70:  82 bb   out  0x12, r24  ; PORTD=2;
72:  fe cf   rjmp  .-4   ; PORTD=2;を無限ループ
for (a=0;a<=255;a++) が無限ループ扱いなのが分かる。


304 :774ワット発電中さん:2009/05/11(月) 09:17:46 ID:2ppGtz+B
http://akizukidenshi.com/catalog/g/gM-02582/
これを買えばとりあえずCで開発できますか?
WinAVRというのは別途必要なんでしょうか?

305 :774ワット発電中さん:2009/05/11(月) 09:33:43 ID:UtIShrbw
それ 書き込み機

306 :774ワット発電中さん:2009/05/11(月) 12:33:46 ID:bHt2e575
>304
WinAVRとはgccのAVR版のこと。
「AVR 開発」とかググるとよい。

307 :774ワット発電中さん:2009/05/11(月) 15:10:51 ID:k6qd9l7n
今AVR Studioってダウンロード出来ない?
下のページを見てもダウンロードのリンクが見当たらない。
見る所を間違ってるのか?
ttp://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725

308 :774ワット発電中さん:2009/05/11(月) 16:12:35 ID:k6qd9l7n
ああ、wiki見て解決した。

309 :774ワット発電中さん:2009/05/12(火) 01:41:25 ID:qgH7GOwv
Tiny13買って来た。

310 :774ワット発電中さん:2009/05/12(火) 20:15:48 ID:54Eus1RN
>>304
ニコ動行って電気屋さんのAVR講座見てきな。

311 :774ワット発電中さん:2009/05/13(水) 00:04:42 ID:sD9yZlcb
サーボモータって製品によってパルスの秒数に対応する角度が違うみたいだけど、
どれもパルス幅と角度は比例すると思って大丈夫ですか?
例えば1ms→2msで90度回転したとすると+-0.01111…msで一度回転すると計算しておk?


312 :774ワット発電中さん:2009/05/13(水) 00:10:27 ID:IPungg7Y
>>311
実際には多少の非線形性をもつ。
と、トラ技2005年8月号に書いてある。

313 :774ワット発電中さん:2009/05/13(水) 02:54:23 ID:sD9yZlcb
ありがとう 多少ずれてたりするのか。でも多少なら気にしなくても大丈夫だよね
しかし一々何msのパルスで何度回転かとか調べるのメンドクセー。説明書にでも書いて同封
またはデータシートに書いててくれたらいいのに。サーボモータって結構なお値段なんだし

314 :774ワット発電中さん:2009/05/13(水) 07:26:54 ID:X3stwBHB
個体差もあるので、データシートに角度=xxmsなんて書けやしないよ。

315 :774ワット発電中さん:2009/05/13(水) 09:47:06 ID:TYrnjqZM
>>313
そういうときは、デジタルサーボ使えば?

316 :774ワット発電中さん:2009/05/13(水) 09:50:50 ID:BjUvxC4+
>>313
用途にもよるけど、ステッピングモーターという手もあるかも。

317 :774ワット発電中さん:2009/05/13(水) 23:48:04 ID:N+aAzhFK
AVRと関係ない話は無視しろよ

318 :774ワット発電中さん:2009/05/14(木) 00:12:41 ID:SsfPBQCx
なにいらついてるんだお前

319 :774ワット発電中さん:2009/05/14(木) 00:47:13 ID:3SDepaTS
関係なくはないだろう。AVRで制御するんだろうから。

320 :774ワット発電中さん:2009/05/14(木) 00:59:19 ID:92sxTBl0
サーボのバラツキはEE-PROMにオフセット量として記憶するとか。

>サーボモータって結構なお値段なんだし
RCサーボはおもちゃ。工業用サーボモータだと5万以上するよ。
精度もその程度ってことで

321 :774ワット発電中さん:2009/05/15(金) 08:10:47 ID:WBRCVnN5
>>313
厳密に角度制御したいならフォトセンサーとかで絶対位置を検出しないと無理。
ステッピングモーターでも相対位置でしか回転出来ないのでズレは出てくるね。

322 :774ワット発電中さん:2009/05/15(金) 09:22:57 ID:Zx+gq1Dz
フォトセンサーにも色々あるだろうけど、絶対位置を検出するセンサーって何がある?
相対位置が問題じゃなくて、制御にフィードバックがないことが問題なんだよ。
ステッピングモータで脱調検出する方法もあるしな。

323 :774ワット発電中さん:2009/05/15(金) 09:46:54 ID:hX72gvgr
モータの回転位置ならポテンショメータとかよく使うんじゃない?
しかしオープンループじゃないと、ステッピングモータ使う意義を感じられんなぁ。

ところで、ステッピングモータの相対位置指令から来るズレってどんなもの? パルス落ち?


324 :774ワット発電中さん:2009/05/15(金) 10:01:13 ID:D/tvjjo1
>>323
ポテンショ使ったらRCサーボ同様に抵抗カーブのリニアリティ誤差とかついてまわるんじゃね?


325 :774ワット発電中さん:2009/05/15(金) 10:04:03 ID:u/twS+LN
まあ『厳密』というのがどこまで要求されるのかによって話は変わってくるんじゃないかと。
そもそものRCサーボだってサーボ機構を内蔵しているのがウリな訳ですし。

326 :774ワット発電中さん:2009/05/15(金) 11:28:44 ID:svyDvHKP
>>323
>ステッピングモータの相対位置指令から来るズレ
単に、どこかで現在の絶対位置を確認しないとどこまでも相対位置で、
絶対位置を指し示すことができないという意味では?
想定外の周波数のパルス入れたり想定外のトルクかかったりしなければ、
基準位置さえはっきりすれば原理的には分解能以上はずれないよな。

327 :774ワット発電中さん:2009/05/15(金) 12:25:38 ID:ncZL44yk
エンコーダのプロの方、呼ばれていますよw

328 :774ワット発電中さん:2009/05/15(金) 12:27:07 ID:rx0qkPlI
援交のプロが呼ばれていると聞いて飛んできました

329 :774ワット発電中さん:2009/05/15(金) 12:36:46 ID:svyDvHKP
>>327
よ、呼んでしまったのか?

330 :774ワット発電中さん:2009/05/15(金) 18:17:57 ID:Xkmo9/j0
>>323
1. 初期位置が不明だと絶対角度がわからない
2. 脱調すると指示角度と実際の角度がずれる


331 :774ワット発電中さん:2009/05/15(金) 18:30:40 ID:UX9X7HYI
Xmega、チップワンでなら買えそうだ
でも10個でも1100円か

秋月が100個くらいの単価で売ってくれんかなー

332 :774ワット発電中さん:2009/05/17(日) 18:11:40 ID:pUkvFuhD
ちょっと見てもらえませんか・・?シリアル通信用のリングバッファでハマリまくっています。
volatile で宣言しているリングバッファのインデックスの型を char にすると
うまく動くのですが下のようにintにするとダメです。
1byte毎にパソコンから送っても時々バッファ長+1個分ドドッと送り返されます。

#include <avr/interrupt.h>
#include <avr/io.h>
#define SeriBuffLength 20

unsigned char SeriReceiveBuff0[SeriBuffLength];//受信データ保存バッファ
volatile unsigned int SeriReceiveWI0=0;//受信データ保存インデックス
volatile unsigned int SeriReceiveRI0=0;//受信データ読み出しインデックス

unsigned char SeriTransmitBuff0[SeriBuffLength];//送信データ保存バッファ
volatile unsigned int SeriTransmitWI0=0;//送信データ保存インデックス
volatile unsigned int SeriTransmitRI0=0;//送信データ読み出しインデックス


ISR(USART0_RX_vect )//受信完了割り込み
{

SeriReceiveBuff0[SeriReceiveWI0]=UDR0;//保存とインデックスインクリメント
SeriReceiveWI0++;
if(SeriReceiveWI0==SeriBuffLength){
SeriReceiveWI0=0;
}
}
ISR(USART0_TX_vect )//送信完了割り込み
{

if(SeriTransmitRI0!=SeriTransmitWI0){//まだ送るものがあれば送る。
UDR0=SeriTransmitBuff0[SeriTransmitRI0];
SeriTransmitRI0++;
if(SeriTransmitRI0==SeriBuffLength){
SeriTransmitRI0=0;
}
}

}

333 :774ワット発電中さん:2009/05/17(日) 18:12:38 ID:pUkvFuhD
長くてすみません。続きです。

int main(void) {

unsigned char data=0;

PORTA=0b11111111;//ポートAプルアップ
PORTB=0b11111111;//ポートBプルアップ
PORTC=0b11111111;//ポートCプルアップ
PORTD=0b11111111;//ポートDプルアップ

UBRR0=64;//システムクロック20MHZ時 19200
UCSR0B |=(1<<RXCIE0 | 1<<TXCIE0 | 1<<RXEN0 | 1<<TXEN0);//受信割り込み許可 送信完了割り込み許可 受信許可 送信許可
UCSR0C |=(1<<USBS0 | 1<<UCSZ01 | 1<<UCSZ00);//2ストップビット データ8ビット

sei();//割り込み許可

while(1) {

cli();//割り込み禁止

if(SeriReceiveRI0!=SeriReceiveWI0){

data=SeriReceiveBuff0[SeriReceiveRI0];
SeriReceiveRI0++;
if(SeriReceiveRI0==SeriBuffLength){
SeriReceiveRI0=0;
}

if(SeriTransmitRI0==SeriTransmitWI0 && (UCSR0A & 1<<UDRE0)){//待ちデータと送信レジスタを確認

UDR0=data;//バッファに入れないですぐに出力

}else{
SeriTransmitBuff0[SeriTransmitWI0]=data;
SeriTransmitWI0++;
if(SeriTransmitWI0==SeriBuffLength){
SeriTransmitWI0=0;
}
}

}
sei();//割り込み許可

}

}

334 :金澤佳雅:2009/05/17(日) 18:18:13 ID:SQpMLdxK
お陰様で テスターでへそオナニーできるようになりました

335 :332:2009/05/17(日) 18:25:50 ID:pUkvFuhD
どうも、送信には問題がなさそうで受信データの取り出しでコケてそうです。
受信割り込み回数は実際の回数と一致していています。
取り出しのところでSeriReceiveRI0が不思議な動きをしていておかしくなる時には例えば3〜19,0,1,2,3
というふうに一周します。
もっと解せないのがSeriReceiveWI0で、前回の値がどどどっと続いて途中で1つ増える・・
要するに、まだ格納もしていないのにフライングで取り出しているかのような感じなのです。
何かアドバイスはありませんか? orz

336 :774ワット発電中さん:2009/05/17(日) 22:28:32 ID:iFPwIN6v
なんかごちゃごちゃしてて良く解らんけど
mainがそんな感じでリングバッファ使ってる意味あるの?

337 :332:2009/05/18(月) 06:58:45 ID:SbJIQsbW
もちろんこれでは意味がありません。実際には送信データセット関数と受信データ取得関数を使います。

void SeriTransmitSet0(unsigned char data){//送信データセット関数

unsigned char buff=0;

buff=SREG;//割り込み許可の設定退避
cli();//割り込み禁止

if(SeriTransmitRI0==SeriTransmitWI0 && (UCSR0A & 1<<UDRE0)){//待ちデータと送信レジスタを確認

UDR0=data;//バッファに入れないですぐに出力

}else{
SeriTransmitBuff0[SeriTransmitWI0]=data;
SeriTransmitWI0++;
if(SeriTransmitWI0==SeriBuffLength)SeriTransmitWI0=0;
}
SREG=buff;//全割り込み許可の設定復帰

}

char SeriReceiveGet0(unsigned char *data){//受信データ取得関数

char rt=0;
unsigned char buff=0;

buff=SREG;//割り込み許可の設定退避
cli();//割り込み禁止

if(SeriReceiveRI0!=SeriReceiveWI0){

*data=SeriReceiveBuff0[SeriReceiveRI0];
SeriReceiveRI0++;
if(SeriReceiveRI0==SeriBuffLength)SeriReceiveRI0=0;
rt=1;//データがある場合

}else{

rt=0;//データがない場合
}
SREG=buff;//全割り込み許可の設定復帰
return(rt);
}

338 :774ワット発電中さん:2009/05/18(月) 07:44:23 ID:l4+4eZBd
いったんオールアセンブラで書いて、
動作(ロジック)を確認してからCへ移植しな


339 :774ワット発電中さん:2009/05/18(月) 10:56:46 ID:gUn8u1qk
>>335
>例えば3〜19,0,1,2,3というふうに一周します。
これはどうやって確認したん?

340 :774ワット発電中さん:2009/05/18(月) 11:13:00 ID:iaopgEVB
ソース全部読んでないけど症状的に
SeriReceiveRI0(かSeriReceiveWI0)が意図しないところで書き変わってる感じだね
スタックがオーバーフローして変数領域にかかってるとかかなぁ


341 :774ワット発電中さん:2009/05/18(月) 11:32:40 ID:Hagd+Dsw
症状からいくとRIがWIを追い越してるはず。

個人的に、ほぼ全ての時間が割り込み禁止なのは気持ち悪い。
あとバッファサイズが2の階乗でないとか、intにする理由とかもよく解らん。

342 :774ワット発電中さん:2009/05/18(月) 12:41:44 ID:kdYde0Up
>>333
バッファがちょうどフルになった時の処理がおかしいのでは。
たとえば受信バッファSeriReceiveRIO、SeriReceiveWIOが一致しないときだけdataをメインループで取り出し、
一致した場合は空だと見なして取り出さない用にしているが、実際にはバッファフルでも
SeriReceiveRI0!=SeriReceiveWI0がFalseになり、データは取り出されずバッファ溢れする。

送信バッファについては、UDREが立っていてバッファが空なら直接送るとなっているが、
こちらもバッファがちょうどいっぱいになると成立してしまい直接送信に入ってしまう。
バッファ内データ数を把握する変数を用意した方がいいと思う。

普通は簡単にバッファフルなんて起こらないだろうと思うが、
この例題では、割込許可がループ1周につき1回分しかないのも気になる。
sei()はその直後のwhile(1)ループのためのRJMP命令まで実行したあと割込を許可するが、
while(1)の先頭はcli()なので、このループは1周につき1つの割込しか許可しない。
それでも間に合うはずだとは思うけど・・・


343 :332:2009/05/18(月) 21:56:31 ID:+LExqZj9
>338 本当にそうしようかと思っています。

>339 data=SeriReceiveBuff0[SeriReceiveRI0]; のところをdata=(unsigned char)SeriReceiveRI0;にしてみました。

>340 受信割り込みのところが下記のように展開されているのですが

SeriReceiveBuff0[SeriReceiveWI0]=UDR0;//保存とインデックスインクリメント
b6: e0 91 16 01 lds r30, 0x0116
ba: f0 91 17 01 lds r31, 0x0117
be: 80 91 c6 00 lds r24, 0x00C6
c2: e4 5e subi r30, 0xE4 ; 228
c4: fe 4f sbci r31, 0xFE ; 254
c6: 80 83 st Z, r24

以下のmapの状況と合わせると subi,sbciの引数は合っているのでしょうか?

0x00800100 SeriTransmitWI0
0x00800102 SeriTransmitBuff0
0x00800116 SeriReceiveWI0
0x00800118 SeriTransmitRI0
0x0080011a SeriReceiveRI0
0x0080011c SeriReceiveBuff0

>341 追い越しているのですが、追い越しそうもない状況で追い越すので合点がいかないのです orz
空ループを入れて割り込み禁止でない時間を増やしてみましたが同じ結果でした。
もちろん、最初はもっと大きなバッファにしていましたが、デバッグの都合上小さくしました。

>342 バッファがフルになるずっと手前から症状が出ます。

344 :340:2009/05/18(月) 23:35:45 ID:iaopgEVB
>>343 この事例とあんま関係ない・・・
わかってるかも知れないけど変な値を引いてるのは
インストラクションセットにaddiやadciが無い為(subi,sbciと補数で代用できる)
r31:r30 - ( 0xFEE4 ) = r31:r30 - ( -0x011C ) = r31:r30 + 0x011C
この辺は深く考えなくてもコンパイラがちゃんとやってくれるよ


345 :774ワット発電中さん:2009/05/18(月) 23:41:13 ID:l0PHAVcG
今回のトラブルとは関係なさそうですが・・・・

TXCによる送信完了割り込みだと、シフトレジスタからデータが送られ切るまで送信できず、
バッファを有効に使えない。
送る方はUDRIEをチェックせずにリングバッファに突っ込んで、UDRIEを立てる。
割り込みの方はUDRIEを立てて、データレジスタ空き割り込みを使い、
もしも送るべきデータがなければ割り込み内でUDRIEをクリアするって感じの方がいいのではないでしょうか。


肝腎のバグの場所は・・・・わかんねぇ・・・

346 :332:2009/05/19(火) 06:17:20 ID:VZvUfO0X
>344 納得です。そういう意味ですか・・
>345 私も最初そう思ったのですが、初心者の最初の実験としては今の方がシンプルかと・・
   一度データレジスタ空き割り込みのほうもやってみます。

347 :774ワット発電中さん:2009/05/19(火) 08:10:45 ID:z55P4y1n
>>343
バッファがフルでないって理由は?
342の言ってる辺りはかなり怪しいと思うけど。


348 :342:2009/05/19(火) 09:09:27 ID:nKjOM+SZ
うーむ、バッファフルがらみだと、バッファ一回り送られるんじゃなくて、
バッファ一回り分データが欠損する形で現れそうだから、確かに症状と違うかな・・・
それと、添え字がcharだと症状でないというのも疑問。
割込禁止が効いていない可能性もなさそうだし・・・

受信データにSeriReceiveRI0を代入してデバッグしているようですが、これに、さらに
SeriReceiveWI0情報も入れてみませんか?どういう挙動を示しているのか。
data=((unsigned char)SeriReceiveRI0&0x0F) | ((unsigned char)SeriReceiveWI0<<4);
ってな感じで。バッファ長は16未満にして。

ただ、どちらにしてもバッファフル検知が危うい今のプログラムはどうにかした方がいいと思う。
SeriReceiveWI0とSeriReceiveLen0(蓄積データ数)をグローバル変数として持ち、
割込側は今のものにSeriReceiveLen0++; を追加し、
取り出し側は SeriReceiveRI0をローカル宣言して、
if (SeriReceiveLen0!=0) {
  if (SeriReceiveWI0>eriBuffLength) {
    SeriReceiveRI0=SeriReceiveWI0+SeriBuffLength-SeriReceiveLen0;
  } else {
    SeriReceiveRI0=SeriReceiveWI0-SeriReceiveLen0;
  }
  SeriReceiveLen0--;
}
ってな感じで。SeroReceiveXXXがsignedならもう少しすっきり書けるのだけど・・・


349 :774ワット発電中さん:2009/05/19(火) 09:25:03 ID:Do6bJAup
intだと最適化か何かで他が動いたら上書きされるようなコードにされてるんじゃないの。

350 :774ワット発電中さん:2009/05/19(火) 10:53:53 ID:nKjOM+SZ
>>332
ところでこれ、ターゲットは何?
コンパイルしようとしたらPORTAがないだのUBRR0がないだの騒がれたw
シリアルが2つでポートがA〜Dまである奴・・・なんだっけ?


351 :774ワット発電中さん:2009/05/19(火) 11:03:08 ID:nKjOM+SZ
>>349
とりあえずtarget mega1280でコンパイルしてみたが、
ちゃんとvolatileが効いていて、愚直なまでにlds/stsでメモリから出し入れしつつ
2バイト整数を扱っているな。OPT=sで変な最適化はないみたい。


352 :774ワット発電中さん:2009/05/19(火) 12:43:05 ID:Pj/4OjY4
コンパイラを疑っても大体原因は違うよね
動かないのは、このICの初期不良だ!っていうやつに似てる

353 :774ワット発電中さん:2009/05/19(火) 15:08:06 ID:nKjOM+SZ
シミュレートして遊んでみた。
バッファ溢れは受信速度と送信速度が同じならセーフですが、気になったのは、
受信速度と送信速度は本当に同じかということ。
データシート上、AVRのUARTは、スタートビットが6/16bit早く来てもそれを受け付けられます。
スタートビット1・データ8・ストップビット2の場合、11ビットあるわけですが、受信側は
この仕様により10.625bit/charまでは受け付けられそうです。しかし送信は11bit/charのままです。
もしもPCの送信速度(AVRの受信速度)が微妙にAVRの返信速度より速かった場合、
どこかで送信バッファオーバーフローをきたし、問題の症状が出る可能性があると思います。

受信ではなく送信バッファの方にオーバーフローが起こっていないか確かめてみてください。


354 :774ワット発電中さん:2009/05/19(火) 15:15:36 ID:nKjOM+SZ
>>353
追加。
データシートを見ると、受信側については、第2ストップビットは無視される仕様の模様です。
となると、送信11bit/charに対し、最速受信速度は9.625bit/charになります。

特に、相手側(PC)がストップビット1設定なんかだったりすると、双方のクロック精度が
完全一致しても、1割弱くらい受信が速いことがあり得る。
そうなると送信バッファオーバーフローは必然。PC側のシリアル設定どうなってます?


355 :774ワット発電中さん:2009/05/19(火) 16:46:09 ID:BplCcaWi
>>337
> if(SeriTransmitRI0==SeriTransmitWI0 && (UCSR0A & 1<<UDRE0)){//待ちデータと送信レジスタを確認

(UCSR0A & 1<<UDRE0) の部分って ( (UCSR0A & 1) << UDRE0 ) って解釈
されるんじゃなかったっけ?自分は ( UCSR0A & (1<<UDRE0) ) と書くけど…。

356 :774ワット発電中さん:2009/05/19(火) 17:02:52 ID:nKjOM+SZ
>>355
俺もそれ疑問に思って調べたけど、Cの演算子優先順位では&より<<が上らしいので、これでも大丈夫らしい。
でも、自分はいつも()で包んで確実にしているな。

とんでもないバグにつながるかもしれないので、マクロ定数もかっこで包んでいる・・のは神経質かな?
#define SeriBuffLength (20) みたいな感じ。


357 :774ワット発電中さん:2009/05/19(火) 21:10:31 ID:EM8I8yPz
>>356
ふつう


358 :332:2009/05/19(火) 22:06:02 ID:LeQcYlHB
>347 1Byteづつ間隔をあげて送っているのに数回目で現象が出るのでフルにはなっていないのではないかと・・

>348 data=((unsigned char)SeriReceiveRI0&0x0F) | ((unsigned char)SeriReceiveWI0<<4); やりました。結果は以下の通りです。

パソコンから間隔をあけて1を2回送ったところ・・こうなるのです。
[OUT] 01
[IN ] 10
[OUT] 01
[IN ] 11 12 13 14 15 16 17 18 29 2A 2B 2C 2D 2E 2F 20 21

>349 アセンブリコード見て問題点が分かる技量があればいいのですが・・

>350 ATMEGA644Pです。

>351 最適化を-o0にしてみましたがダメです・・

>352 石の交換をしてみました。結果は同じでした。

>353 上記のように1バイトだけの送信で現象が出ます。また、受信時点でおかしいのももはや明らかかと・・

>355
>356 念のため()も入れてみましたが結果は同じでした。


359 :774ワット発電中さん:2009/05/19(火) 22:33:00 ID:AUhSUsXt
2回目の受信時に、WI0がインクリメントされてないね。
でも、なんでWI0が増える前に送信し始めてるんだ?

再現する最小構成のプロジェクトをどっかにアップしてくれたら
頑張って検証してみるかも知れない。


360 :774ワット発電中さん:2009/05/19(火) 23:15:40 ID:D7C2Uuvz
クロックが内部か外部かをプログラムで判別したいのですが、
ヒューズの値をプログラム内部で読み出すにはどうすればいいんでしょうか?

361 :774ワット発電中さん:2009/05/19(火) 23:21:22 ID:LUCXhRGa
>>360
プログラム(書き込み)時に、ヒューズの値か、それに代わる情報も書き込んでおく。
OSCCALの値をプログラム内で利用するのと同じノリですね。


362 :774ワット発電中さん:2009/05/19(火) 23:41:47 ID:LUCXhRGa
>>358
>パソコンから間隔をあけて1を2回送ったところ・・こうなるのです。
うーん、SeriReceiveWI0が増加しない(WI0==RI0)のうちに受信バッファからデータを取り出し、
結果アンダーフローを招き破綻しちゃっているのか。

となると問題はここ??わかんねぇ・・・・・
>if(SeriReceiveRI0!=SeriReceiveWI0){
cli()命令はcli実行時から割り込み禁止だから、ここが割り込まれる可能性はないし・・・


363 :774ワット発電中さん:2009/05/20(水) 00:00:12 ID:AUhSUsXt
>>362
だよね。
なにか質問者の人が出してない情報でも無い限りサッパリ解らない。

もう、JTAG-ICE使って動作を覗いてみるのがはやいかなって思ってる。

364 :774ワット発電中さん:2009/05/20(水) 00:41:29 ID:siQ8eYkX
>360
SPMCSRとLPM命令でヒューズ値を読める。

365 :774ワット発電中さん:2009/05/20(水) 01:14:15 ID:lIApYBhf
332は完全に再現できるプロジェクトをZIPでうpするべき

366 :774ワット発電中さん:2009/05/20(水) 09:17:28 ID:opvP84pH
なんだかよくわからんが、
#if(SeriReceiveRI0!=SeriReceiveWI0){
#data=SeriReceiveBuff0[SeriReceiveRI0];
#SeriReceiveRI0++;
#if(SeriReceiveRI0==SeriBuffLength){
#SeriReceiveRI0=0;
#}

このifだけど、
if(SeriReceiveRI0!=SeriReceiveWI0){
が成立しなかったときにはこれが全部実行されずにdata値が前回値の
まま下に流れ込み?

#if(SeriTransmitRI0==SeriTransmitWI0 && (UCSR0A & 1<<UDRE0)){//待ちデータと送信レジスタを確認
#UDR0=data;//バッファに入れないですぐに出力
#}else{
のifが成立してゴミdataがUDR0に書き込まれてしまう?
このままもう一回ループを回るとまた上の方ではdataが更新されない
まま抜けてくるけど、この回だけはなんとかifが不成立するかな?
(UARTに書いたデータがシフトレジスタに入って、UARTの送信バッファは
空になるだろうから)
でも、もう一回回るとUARTのバッファもデータがあるから不成立になって
else以下になって送信用のリングバッファにdataが詰め込まれる?


367 :774ワット発電中さん:2009/05/20(水) 10:10:30 ID:ZmwMTFIo
>>366
字下げが消えてて読みづらいが、先頭のIFでループ内はぜんぶ囲ってある

368 :774ワット発電中さん:2009/05/20(水) 10:20:38 ID:NR1ivLtv
>>366
インデント付けてみるとわかりやすいけど、その先頭のifは送信部にもかかっているよ。
受信データがないときは送信もしていない。

>>364
おお、こんな方法があったのか、知らなかった。勉強になった。


369 :774ワット発電中さん:2009/05/20(水) 10:23:44 ID:FnV/ioQt
AVRでWindows95を動かそう

370 :774ワット発電中さん:2009/05/20(水) 10:37:31 ID:oiu53ocw
読めないだろうなとおもってぐぐったら
ありますな
ttp://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=75495&start=0

371 :774ワット発電中さん:2009/05/20(水) 10:40:46 ID:NR1ivLtv
>>365
AVRStudioなどでUART受信をシミュレートする方法ってあるの?
UDRに値を放り込んでも送信シミュレートするだけだし、
・・・・RXCビットを立てればいいのかな?


372 :774ワット発電中さん:2009/05/20(水) 10:45:37 ID:Cg9BwVwN
365じゃ無いが、実機を使って実際にパソコンから送ってやれば良い

ICE持ってればブレークポイント貼れるし、メモリとかを見ることも出来る

373 :774ワット発電中さん:2009/05/20(水) 11:01:52 ID:NR1ivLtv
>>372
やっぱりそれしかないか。

374 :774ワット発電中さん:2009/05/20(水) 11:39:19 ID:Cg9BwVwN
て事で、ICEで試そうと思って、
>>332 >>333をコピペってみたけどそもそも再現しない・・・

一発で大量に送ってみても正しく返ってくるし。

[OUT] 01 02 03 04 05 06 07 08 09 0A 0B
[IN ]  01 02 03 04 05 06 07 08 09 0A 0B

Hwの都合上ポートをUSART0から1に変更したけど、まあ関係ないはずだしなぁ。

環境
AVR Studio 4.15
ICE KEE AVR JTAGICE mkII(クローン品 ちゃんと動く)
コンパイラとか
WinAVR 20081205 avr-gcc 4.3.2
-Os -std=gnu99 -DF_CPU=20000000UL

やっぱり再現するプロジェクトをくれ。

375 :774ワット発電中さん:2009/05/20(水) 14:42:09 ID:opvP84pH
うーん・・結局他のところでインデックスをぶち壊しているというのが
一番ありがちな気がする

376 :332:2009/05/20(水) 22:35:11 ID:HDkkXbOz
http://www1.axfc.net/uploader/File/so/23886
UPしました。(ファイルのUP、初めての経験)

なんだか他の人の環境で再現するのか心配になってきましたが・・
当方の環境は以下の通り。
AVR Studio 4.15
WinAVR-20090313-install.exe


377 :332:2009/05/21(木) 05:54:15 ID:RLXRKESn
if(SeriReceiveRI0!=SeriReceiveWI0){
を2回検査すると正常に動くことが分かりましたがこれを正常と言っていいものやら・・

if(SeriReceiveRI0!=SeriReceiveWI0){
1a8: 20 91 16 01 lds r18, 0x0116
1ac: 30 91 17 01 lds r19, 0x0117
1b0: 80 91 12 01 lds r24, 0x0112
1b4: 90 91 13 01 lds r25, 0x0113
1b8: 28 17 cp r18, r24
1ba: 39 07 cpc r19, r25
1bc: 09 f4 brne .+2 ; 0x1c0 <main+0x46>
1be: 52 c0 rjmp .+164 ; 0x264 <main+0xea>

if(SeriReceiveRI0!=SeriReceiveWI0){
1c0: 20 91 16 01 lds r18, 0x0116
1c4: 30 91 17 01 lds r19, 0x0117
1c8: 80 91 12 01 lds r24, 0x0112
1cc: 90 91 13 01 lds r25, 0x0113
1d0: 28 17 cp r18, r24
1d2: 39 07 cpc r19, r25
1d4: 09 f4 brne .+2 ; 0x1d8 <main+0x5e>
1d6: 46 c0 rjmp .+140 ; 0x264 <main+0xea>

全く同じことをやっているだけですよ・・・orz


378 :774ワット発電中さん:2009/05/21(木) 09:34:23 ID:VwO7n7RC
物は試しのダメモトでcli()の後に
for(data=0; data<10; data++)
;
とか、ダミーのループ入れてみたら?

379 :774ワット発電中さん:2009/05/21(木) 09:37:17 ID:VwO7n7RC
あ”・・・sageるつもりでageてしまった・・・

380 :774ワット発電中さん:2009/05/21(木) 12:11:10 ID:RKnckjPd
>>378
asm("nop::");とかでもいいな。
割込禁止がきれいにかかっていないのか?
もしかしてatmega644だけ特殊な仕様でもあるとか・・・ってのはないな。
データシートには何も書いてない。



381 :774ワット発電中さん:2009/05/21(木) 12:18:06 ID:7FPXpabj
ICE使ってみたが、まだよく解らない。
とりあえず、リビルドしないで動かすと再現した。

ブレークポイント入れると再現しない。
ステップ実行すると再現しない。
ただし、ステップ実行してると送信したのと違うデータ(0x00)が帰ってくることは有る。


・・・なんだこれ。

382 :774ワット発電中さん:2009/05/21(木) 12:20:31 ID:nAu3ef/A
解決できればスキル向上!

383 :774ワット発電中さん:2009/05/21(木) 13:38:55 ID:LGGypRE5
昔の8251の初期化みたいw

384 :774ワット発電中さん:2009/05/21(木) 15:01:00 ID:7FPXpabj
うーむ、ギブアップ。




60: if(SeriReceiveRI0!=SeriReceiveWI0){
+000000D4: 91200116 LDS R18,0x0116 Load direct from data space

+000000D6: 91300117 LDS R19,0x0117 Load direct from data space

+000000D8: 91800112 LDS R24,0x0112 Load direct from data space

+000000DA: 91900113 LDS R25,0x0113 Load direct from data space

+000000DC: 1728 CP R18,R24 Compare

+000000DD: 0739 CPC R19,R25 Compare with carry

+000000DE: F409 BRNE PC+0x02 Branch if not equal

+000000DF: C046 RJMP PC+0x0047 Relative jump


62: data=SeriReceiveBuff0[SeriReceiveRI0];

+000000E0: 91E00116 LDS R30,0x0116 Load direct from data space

これで +000000E0;の位置にブレークポイントを張って動作確認

エラーになるパターンのメモリなど

レジスタ
R18: 0x00 ← 非常におかしい
R19: 0x00

R24: 0x02
R25: 0x00

メモリ
0x0116: 0x0002 = SeriReceiveRI0
0x0112: 0x0002 = SeriReceiveWI0


R18は受信割り込みでは一切使用してないレジスタ

一方で受信してない時にこれが発生することは無い
送信部分を丸々削除しても発生するので、送信割り込みなどは関係ない


385 :メカ名無しさん:2009/05/21(木) 17:04:54 ID:2nvLZ1VA
BTC067(ATmega32)の書き込み方法がフラッシュライタからS-Termに変更されて
いるが、書き込みの手間がかかるようになった・・・どうしてか?

386 :774ワット発電中さん:2009/05/21(木) 17:40:53 ID:80jmlwm+
>>381
>ただし、ステップ実行してると送信したのと違うデータ(0x00)が帰ってくることは有る。
受信エラーがあったときって、受信割り込みは発生するんだっけ?
自分で書くときは割り込み内でエラー処理はしてるけど

387 :774ワット発電中さん:2009/05/21(木) 19:02:10 ID:Uy6fmo1N
これから初めてAVRを扱ってみようと思うのですが
どのチップを使用するのがよいでしょうか?

LEDチカチカから秋月でうってる16*2のLCD制御、サーボモータの制御あたりの実験をしようと思ってます

388 :774ワット発電中さん:2009/05/21(木) 19:40:47 ID:RKnckjPd
>>387
今ならtiny2313かmega88あたりかね。
もしくはボードになっている製品。



389 :774ワット発電中さん:2009/05/21(木) 19:41:25 ID:PimHwzuE
>387
これからやるならArduinoでやるのがいいとおもう。

生AVRがいいなら秋月で一緒に買える、安いっていう理由でmega88pがおすすめ。
tiny2313だと近い将来すぐ限界に達してしまうよ。


390 :774ワット発電中さん:2009/05/21(木) 19:59:36 ID:RKnckjPd
>>389
あれよさそうだね。使ってないけど。
ブートローダー式の奴はライターで悩まないでいいので楽できそうですし。

>>386
はっきり書いてないけど受信時にエラーフラグを読み出すってことは受信自体は成立するんでしょう

391 :332:2009/05/21(木) 23:07:30 ID:RLXRKESn
>378
>380
割り込み禁止の後に時間稼ぎはかなり前に試しましたが効果ありません。

>384
受信割り込みでSeriReceiveWI0++を行なっただけで現象が出るようです。
まあ、データの読み出しは割り込み解除のために行ないましたが・・

>386
>390
受信エラーが発生していないか確認してみます。


みなさんはこういう得体の知れないことって時々あるのでしょうか?
AVR初心者でいきなりこんなことに出くわすと先がおもいやられてしまうのですが・・


392 :774ワット発電中さん:2009/05/21(木) 23:22:54 ID:5L1h5k1B
ずいぶん、昔の話だけどZ80アセンブラ組んでるとき
nopを入れるとPUSH/POPが正常に動くが
外すとPOPででたらめな値が出てくるときがあったな。


393 :774ワット発電中さん:2009/05/21(木) 23:32:13 ID:vLusBMhe
状況だけみてると割り込み禁止がうまくいってなくて
SeriReceiveRI0、SeriReceiveWI0がなき別れしてるように見えるよね。


394 :774ワット発電中さん:2009/05/21(木) 23:33:36 ID:Q6mbjqme
http://rose.eek.jp/911/
http://video.google.com/videoplay?docid=-8142677247936155656
http://video.google.com/videoplay?docid=-5334843523818408771
http://homepage.mac.com/ehara_gen/jealous_gay/muck_raker.html
http://nvc.halsnet.com/jhattori/green-net/911terror/nyterror.htm
http://www.geocities.jp/yhp20010911/index.html

395 :384:2009/05/21(木) 23:59:24 ID:/O3gSKgZ
>>393
mainループのcli〜seiの間、1になるフラグを作って、
そのフラグが立ってる時に受信割り込みが発生すると
ブザー(外部回路)がなるようにしてみたが、鳴らなかった。

それから不必要な割り込みが発生したとしても、
0x116から読み出したはずのデータが0x0000になるのはおかしい。

前述のように、R18 R19は受信割り込みではpush popもされない。

396 :774ワット発電中さん:2009/05/22(金) 00:01:32 ID:Ast3BGOv
AVRで色々と遊んでみようと
AVRのライタ用部品とその他諸々を秋月での通販で買おうと思ったら74126が売ってなくて泣いた
他に必要なものは大体そろうのにorz

397 :384:2009/05/22(金) 00:15:21 ID:tOVa4Sij
結局if(RI != WI)で
RIの中身によらず0x0000を R18 R19にロードしてるからここを通過してる。

そこの、評価ー分岐で分岐前にブレークポイントを張ると絶対に発生しなかった。
+000000DE: F409 BRNE PC+0x02 Branch if not equal ←ここ

LDS~CP と BRNEの間に、R18 R19もしくはフラグの類が書き換えられてるっぽいけど
でも割り込みは発生してないし、他に関数も無いし・・・


>>374も自分なんだけど使うポートがUSART1の時は発生しなかったから、
まじでエラッタ?とかちょっと思いかけてる。


英語力があれば、avr-gccのメーリングリストで聞くとか
avr-freaksで聞くとかしてみるといいのかもしれないけど...

398 :774ワット発電中さん:2009/05/22(金) 00:21:35 ID:lYdYJ6g1
>>396
予算の都合などあると思いますが、USB接続のライタを買ってしまうとかはどうでしょうか?
ttp://akizukidenshi.com/catalog/g/gM-02582/


399 :774ワット発電中さん:2009/05/22(金) 00:33:43 ID:u6u3WSYI
>>398
ライタ買っちゃってもいいけど簡単に部品が手に入るならつくっちゃおうかなー、とおもったものでw
しばらく秋葉原行く機会がないから買い物にもいけないし純正ライタかうかなぁ

400 :774ワット発電中さん:2009/05/22(金) 00:36:58 ID:lYdYJ6g1
>>399
なら、どのような部品を揃えるかわからないので的外れかもしれませんが
AVR含めて千石で揃えるとかはどうでしょうか?


401 :332:2009/05/22(金) 06:36:32 ID:pfSCJ/EX
>384
ご協力ありがとうございます。
USART1にすれば本当に何事もなく動作しますね・・
私は644PのPDIPですが、そちらのパッケージは同じですか?

SeriReceiveRI0のvolatileは必要ではないのでのけてみるとレジスタだけで動作するように
なったが、それでも現象が出ました。やはりSRAMは関係ない。

402 :774ワット発電中さん:2009/05/22(金) 07:04:29 ID:8wSywmCX
バグや故障以外でUSART0独自問題と言えば・・・
PRRレジスタのUSART0電力削減ビットがonになってないか。なってないはずだが、データシートは明示的に再初期化しろとかいてあるから。


403 :774ワット発電中さん:2009/05/22(金) 08:30:52 ID:E+8Yb+24
>>396
通販なら126なんてあちこちにあると思うけど・・・
とりあえずよく利用してるのはここ。74HC126あります。
http://www2.cyberoz.net/city/hirosan/jindex.html
http://www2.cyberoz.net/city/hirosan/dic.html


404 :774ワット発電中さん:2009/05/22(金) 08:36:45 ID:E+8Yb+24
>>402
再初期化しろと書いてあるのはUSART0自身(UCSRnX再設定等)のことだと思う。


405 :774ワット発電中さん:2009/05/22(金) 09:10:19 ID:79tSJE8f
通販は送料が高いから一カ所でまとめ買いしたいところだよね

かといって買い出しに行ってもまとめ買いしてるから対して変わらないというかなんというか

406 :774ワット発電中さん:2009/05/22(金) 10:28:10 ID:rV6Yjcw+
>>401
644PのDIP品ですねー

実は偶然にも仕事で試作中だったんだけど、
これ理由わからなかったら気持ち悪いな

407 :774ワット発電中さん:2009/05/22(金) 12:13:33 ID:EUYvHdjz
今ATmega168でAD変換しているんですが、同じAD0〜AD3で同じものをAD変換すると
AD0の方が微妙に、微妙にだけどノイズ小さいような気がするんだけど何で?

408 :774ワット発電中さん:2009/05/22(金) 12:46:06 ID:E+8Yb+24
>>407
GND(pin22)に近いから、とか。
ADC1〜3もGNDパターンで囲んだらよくなるかも。

409 :774ワット発電中さん:2009/05/22(金) 14:35:23 ID:EUYvHdjz
ありがとうそんなのあるのか。ちょっと試してみる

410 :774ワット発電中さん:2009/05/22(金) 16:21:01 ID:tlBSdJWa
岩通はアナログオシロは一流だったけどデジタルはどうなんだろう
テクトロのデジタルオシロはガチ
別に信者ではないがそう思う

411 :774ワット発電中さん:2009/05/22(金) 16:21:59 ID:tlBSdJWa
スレまちがえたスマソ

412 :774ワット発電中さん:2009/05/22(金) 16:52:36 ID:E+8Yb+24
>>409
データシートにそのへん詳しく書かれているから見てね。

413 :774ワット発電中さん:2009/05/23(土) 09:14:18 ID:AVz46y9T
そもそも割り込み禁止にする必要ないのでは
あと、割り込み処理内で、一バイトしか処理しないのも変

414 :774ワット発電中さん:2009/05/23(土) 09:20:17 ID:0PsTSZo7
>>413
上にあったUARTの話?それなら両方ともおかしくないと思うが。
バッファからデータを取り出す最中で割込でインデックスが書き換えられると問題。
特にインデックスがintで2バイトだと、上位下位が泣き別れでとんでもないことになる可能性有り。
受信部と送信部の間に割込許可の部分を作った方がいいとは思うけど。

割り込み処理内で1バイトしか処理しないのも適当でしょう。
1バイトの送受信には20MHzマイコンにとっては猛烈に長い時間を要する。
バッファに複数のデータがあったとしても、一度の割込処理中でこれらを処理すればすごく長い
割込時間を要する。その間割込ルーチン内でループすることに・・・
それでいいなら割込使わずポーリングで行けばいいわな。バッファも要らない。


415 :774ワット発電中さん:2009/05/23(土) 09:38:24 ID:AVz46y9T
書き換えられなくね?

バッファにある分は全部処理した方がよくない?

416 :774ワット発電中さん:2009/05/23(土) 10:06:20 ID:0PsTSZo7
>>415
たとえば>>332-333で言えば、

>>333 >if(SeriReceiveRI0!=SeriReceiveWI0){
これを処理している最中に受信割り込みがかかって、SeriReceiveWI0が255から256になったとする。
MainでSeriReceiveWI0の下位取得(0xFF)
割込かかり、SeriReceiveWI0が0x0100になる
Mainに戻り、SeriReceiveWI0の上位取得(0x01)
Main「SeriReceiveWI0は0x01FFですね。」←!!

バッファ長が20バイトの今ならいいが、256越えれば問題起こるわけで。

他にも、
>>333でdata=SeriReceiveBuff0[SeriReceiveRI0];の最中・直後に割込かかると、
バッファがいっぱいになったのにSeriReceiveRI0が++される前なので判断誤る
(もっとも>>333はバッファフルを想定した作りじゃないのでどっちでも同じだが・・・)

>>333でSeriReceiveRI0++;の直後に割込かかると、割込先では
直後のif(SeriReceiveRI0==SeriBuffLength) { SeriReceiveRI0=0; } が実行される前の、
範囲外のままのSeriReceiveRI0を見ることになる。

などなど・・・割り込まれても問題がない場所もあるけど、それをいちいち考えるよりは、
1つのバッファ出し入れは割込禁止でくくってしまった方が確実。

バッファにある分を処理する件は、そんなに割り込みルーチンにとどまるつもりか?って問題が。
たとえばバッファにたった2バイトあるだけでも、19200bpsのstart1bit-data8bit-stop2bitでは
572.9μsec、20MHzのAVRでは11458ステップもの時間を要する。
割り込みルーチンのオーバーヘッド(開始終了に数十ステップくらいか)を大幅に上回る。
これなら1バイトずつ処理した方がましでしょ。

417 :774ワット発電中さん:2009/05/23(土) 10:19:54 ID:AVz46y9T
>>416
なるほどなるほど。


いやそうでなくて、AVR自身の受送信バッファって無いの? 1バイト分だけ?


418 :774ワット発電中さん:2009/05/23(土) 10:41:14 ID:8FGpuQtP
>>417
質問したい内容をきちんとまとめろよ。

>>413 >>415から
>いやそうでなくて、AVR自身の受送信バッファって無いの? 1バイト分だけ?

こんな意図を汲み取れるわけがない。
ちなみに送受信バッファは1バイト、または2バイト。

419 :774ワット発電中さん:2009/05/23(土) 10:54:08 ID:CCPq2wA8
小出しにされた質問を、あれこれ推測しながら解いてゆくのが電電板の醍醐味だろ!?


って言っていたやつがいたなぁww
ひぐらしに毒されたヤツの発言だよな


420 :774ワット発電中さん:2009/05/23(土) 10:55:53 ID:MlmExzf2
ひぐらしって4年に一度しか起きないコチ亀のキャラだっけ?

421 :774ワット発電中さん:2009/05/23(土) 11:18:15 ID:7w8Cnvx+
それそれ。そのひぐらし。
…その日暮らし。

ちょっくらアキバへパーツの買い出し行ってくるぜ。

422 :774ワット発電中さん:2009/05/23(土) 11:23:29 ID:0PsTSZo7
>>417
ハードウェア受信バッファは使っているが(UDR自身の他にもう1バイト)、これは意識する必要はない。
ハードウェア送信バッファについてはUDR(受信用UDRとはアドレス一緒だがハードウェア上別物)だけで1バイト。
>>332-333では割り込みルーチンではTXC完了割り込みを使っているため、実質使ってない状態。
メインルーチンでダイレクトにUDRに押し込むところでは使われることになる。

AVRのハードウェアバッファはあるにはあるけど、それがいっぱいになった場合の処理を行っているのが
ソフトウェア上のバッファであるわけ。
たとえば連続して送信する場合、
1バイト目→UDRに入り、UARTシフトレジスタ空いてるので即座にシフトレジスタ行き、UDRは空く
2バイト目→UDRに入るが、UARTシフトレジスタはまだ1バイト目データを送信中なので、2バイト目はUDRにとどまる
3バイト目→UDRが空いてないから送れません。待つか、ソフトウェア側でバッファを用意して空き次第送るようにするしかない。

受信に関しては、
受信あるかどうかをプログラム側で定期的にチェックするわけだが、このチェックがされる前に複数データが送られてきたら破綻する可能性がある。
1バイト目受信→シフトレジスタ→受信第2バッファ→UDRと移動、UDRに置かれる
2バイト目受信→シフトレジスタ→受信第2バッファ→UDRは空いてないので、第2バッファに置かれる
3バイト目受信→UDRも第2バッファも空いてないので、シフトレジスタ内にとどまる
4バイト目のスタートビット受信→シフトレジスタ内データの移動先がなく、3バイト目(・4バイト目)のデータ破壊
なので、3バイト目受信が完了する前にUDRを読み出し、データを移動していく必要がある。
もしもプログラム側で定期的に(19200bpsなら0.6msec程度)読み出せないなら受信データが失われる
可能性があるので、その場合には、メインルーチンに代わって、割り込みルーチンで、受信データが
ある度に読み出してバッファに保存していくプログラムが必要になる。

>>417はこの2バイトある受信バッファを一気に読み出すように割り込みルーチンを書かないのかという
疑問なのかもしれないが、別にそんなことしなくても数十クロックのオーバーヘッドでまた割込かかって
読み出しにいくのだから、そんなに慌てることはないと思うし、プログラムは単純な方がいいと思う。






423 :332:2009/05/23(土) 14:29:21 ID:5InYsiGa
>406
パッケージも同じですか・・結局お宮入りになりそうですね・・。29人ダウンロードしてくれたようですが
本家も落としたのかな?

他の石では出ないのか気になりますが、できれば別の石に乗り換えたいところです。
でも644P以上の仕様のものになると1284Pとか入手できるのがどうか分かりませんし、
直系の上位だと同じ不具合がありそうにも思えるところです。


424 :774ワット発電中さん:2009/05/23(土) 17:02:23 ID:AVz46y9T
>>422
> >>417はこの2バイトある受信バッファを一気に読み出すように割り込みルーチンを書かないのかという
> 疑問なのかもしれないが

そうそう、そっち

425 :774ワット発電中さん:2009/05/23(土) 21:42:06 ID:gyLP5dzA
>>424
わかるかよw
だが、基本的には2バイト受信する間割り込みがかからないような設計をすること自体が問題。
バッファ2つを使った状態自体希だと考えていいし、万が一そうなっても1バイト取得でも
2回割り込みで対応できる。だからそこまでする必要はないと思う。




426 :774ワット発電中さん:2009/05/23(土) 22:01:02 ID:CPeHFpY0
通販で注文したAVRが届いたよ

さて、手持ちのH8で書き込み器を作る作業がはじまるお

427 :774ワット発電中さん:2009/05/24(日) 02:25:33 ID:gSR3gHs/
mega1284p日本でも早くでろ〜〜〜

428 :774ワット発電中さん:2009/05/24(日) 08:24:34 ID:SqMWdxWC
>>426
まずは、AVRを使って、H8書き込み器をつくんなきゃな。

429 :774ワット発電中さん:2009/05/24(日) 08:45:37 ID:667qxpEu
なんでライタにマイコン使うの?
何に使うの?

430 :774ワット発電中さん:2009/05/24(日) 13:03:44 ID:qGaxi2zJ
>>423
変な割り込みが入るなどしてリセットベクタに
飛んで一回りして戻ってきてる・・とかいうことはないよね?
初期化しないグローバル変数を一つ用意してmain()の頭で
インクリメントしておくと増加していくからわかると思うけど

431 :774ワット発電中さん:2009/05/24(日) 13:09:24 ID:oHROQh9z
>>423
謎のバグの問い合わせ先って無いの?

432 :774ワット発電中さん:2009/05/24(日) 13:43:08 ID:zd+99zym
>>423
自分もMega644P 40ピンDIP持っているので試してみた。
20MHz_19200bpsでNG.
16MHz__9600bpsでNG. 20HMzより起きる確率は低い。
_8MHz__4800bpsでOK. 9600bpsと同じファームなのに水晶を変えただけで起きなくなった。

実験したところでは
UART1だと問題なし。
STOPビットは1でも起きる。

本質的な対策ではないが
cli();
tr200us(); // 割込禁止と比較の間に時間を取るとOK
if(SeriReceiveRI0!=SeriReceiveWI0){

クロック(時間)で何が変わるかが解らないです。


433 :332:2009/05/24(日) 15:53:00 ID:JKS+rCSh
>432
今、UART1でSTX・ETXを使ったアスキーコードによる通信まで何事もなく動いたところで
UART0をもう一度動かしてみたところ、エコーバックのデータが欠落するようになった。
受信バッファのインデックスはcharにしても今度はだめだった。
結局のところ、UPしているプロジェクトでは、あのようになるというだけで
全体のコードの構成が変るとまた症状が変る。

もうどうしようもありません。

434 :332:2009/05/24(日) 15:56:57 ID:JKS+rCSh
>431
アトメルの日本法人の連絡先でも分かれば・・と思うのですが情報がないです。
石は秋月で通販で買ったのでダメ元で秋月に問い合わせてみようかとも思っています。


435 :774ワット発電中さん:2009/05/24(日) 16:05:29 ID:HnSCwOIB
だめもとといっても _だろ

436 :774ワット発電中さん:2009/05/24(日) 18:02:04 ID:/kZsKVxA
644PのUSART0を全世界で誰も使ってないなんてワケがないから、不具合だったら
どこかで情報出てるはずじゃね?

437 :432:2009/05/24(日) 18:17:42 ID:zd+99zym
Digi-keyで買ったMega164P-20PUがあったので試してみたがダメだった。
16MHzのときはかなり良かったが20MHzでは644Pと同じぐらいダメ。

>>436
発症する条件は高クロックでUART0受信を使ったときかな。
そんなに狭い条件とは思えない。

メインループでUART0受信しても起きるので割り込みは関係なさそう。
勝手にデバッグプログラムに飛んだりするので
寄生コンデンサでRAMかレジスタがおかしくなってるのかな?


438 :774ワット発電中さん:2009/05/24(日) 18:28:14 ID:/kZsKVxA
>>437
> そんなに狭い条件とは思えない。

ということは、やはり自分が何か間違えてると決めつけた方がいい。

昔似たようなことで大はまりしたときは(USARTの送信はOKだが受信が安定しない)
三端子レギュレータにつけるセラコンの値を間違えてた。

439 :774ワット発電中さん:2009/05/24(日) 19:13:58 ID:khcBKWEe
これはどうなんだろ。BASCOMだしドイツ語なんで、英訳かましてみたけどいまいちよく分からん
原文http://www.roboternetz.de/phpBB2/viewtopic.php?t=47743
英訳http://translate.google.co.jp/translate?prev=hp&hl=ja&js=n&u=http%3A%2F%2Fwww.roboternetz.de%2FphpBB2%2Fviewtopic.php%3Ft%3D47743&sl=de&tl=en&history_state0=

440 :432:2009/05/24(日) 19:29:35 ID:zd+99zym
>>438
アドバイスどうもだけど
元の発言は332さんで私は今日の昼から追試している第三者です。

自分なら考えて解らなければプログラムを書き直すかな。
あるいは8MHzなら問題なかったのでクロックをおとす。

解らないのは割込受信ルーチンではなく比較でバッグている点。
if(SeriReceiveRI0!=SeriReceiveWI0){ // RIOは直接関係なさそうなんだけど


441 :774ワット発電中さん:2009/05/24(日) 20:04:32 ID:qGaxi2zJ
>自分なら考えて解らなければプログラムを書き直すかな。
>あるいは8MHzなら問題なかったのでクロックをおとす。

原因がわからないと、本当にその修正で良いのか
あるいは単に頻度が減って治ったように見えてるだけで
根本的な解決になっていないのかの判断のしようがないからなぁ

442 :774ワット発電中さん:2009/05/24(日) 20:22:41 ID:2r/9Km/8
>>434
アトメルの日本法人の連絡先は本家英語版のデータシートの最後に書いてあるよ。
結果を期待したい。

>>438
複数の人間がやって同様の症状がでてるから実装ミスはないんじゃない?

443 :774ワット発電中さん:2009/05/24(日) 20:59:50 ID:/kZsKVxA
おまじないのように全PORTプルアップしてるけど、あれは必要なのか?

444 :774ワット発電中さん:2009/05/24(日) 21:20:29 ID:2r/9Km/8
入力ピンはどこにも繋がってないときはプルアップすべきやね。
ノイズでパタパタ動くから無駄な電気を食う。

一昔前のICならラッチアップしてぶっ壊れるし。

出力ポートにしといてもいいけど、誤配線があると何かを壊したり、
マイコンが壊れたりするかもしれないから未使用ピンは入力-内部プルアップって普通と思う。

445 :774ワット発電中さん:2009/05/24(日) 21:58:03 ID:fw71SM0I
>>444
でもマニュアルには「未使用ピンは出力に設定してLを出力しとけ」って書いて
あったと思ってたが…。

446 :774ワット発電中さん:2009/05/24(日) 22:06:46 ID:qGaxi2zJ
チップ単体で始末するとしたら出力ポートにして'L'出力しておくのが手堅いかな?
ただ、リセット直後から出力モードに変更するまでの間はフローティング状態
になってしまうので、うるさい人は嫌がるだろうね。


447 :774ワット発電中さん:2009/05/24(日) 22:44:57 ID:Y4GyKbUu
>>442
なぜかアトメルジャパンでググっても、Webがみつからないのなw


448 :774ワット発電中さん:2009/05/24(日) 23:07:48 ID:2r/9Km/8
>>445
もし、ユニバーサルとかに組んでて
要らんとこに繋がってたらって思うと嫌だな。

まあ、電源入れる前にきちんとテスタでチェックすればいいんだけど
安全サイドはプルアップだと思う。

日本語訳データシートでも
>消費電流削減のため、浮き状態入力は避けられるべきです。
>未使用ピンの定義されたレベルを保証する最も簡単な方法は内部プルアップを許可することです
ってなってるね。



449 :774ワット発電中さん:2009/05/24(日) 23:13:19 ID:667qxpEu
オラ大学出たら、アトメルさ就職するだ

450 :リキ:2009/05/24(日) 23:17:35 ID:KSV+pU/a
はじめまして
AT90USB162+AVR Studio 4.16(gcc version 4.3.2 (WinAVR 20090313))
で嵌っています。
どなたかお知恵を拝借できませんでしょうか?
volatile を入れても割り込みでグローバル変数の更新ができません。
更新部分を下記までしても駄目なのでコンパイルオプションか
何か間違っているのかと思いますが...

*((volatile bool *) &g_xxxx) = TRUE;

よろしくお願いいたします。

451 :774ワット発電中さん:2009/05/24(日) 23:22:46 ID:667qxpEu
volatileを入れれば、最適化のために不自然なコードにならないと思っているのですね?

452 :リキ:2009/05/24(日) 23:29:35 ID:KSV+pU/a
まあ、そうですね。
昔使った 6821 などでもそうでしたが、ペリフェラルとかは同じアドレスに連続してライトしたりしますから、そんなの勝手に端折られたら初期化出来ないですよね。
当然の言語仕様だと思います。

453 :774ワット発電中さん:2009/05/24(日) 23:36:58 ID:qGaxi2zJ
変数のアクセス時じゃなくて宣言時にvolatile付けるものじゃないのかいな

454 :リキ:2009/05/24(日) 23:50:02 ID:KSV+pU/a
【宣言部分】
volatile bool g_xxxx = FALSE;

【割り込み関数内(試行1)】
g_xxxx = TRUE;

 上記で更新できないので、以下を試行。

【割り込み関数内(試行2)】
*((volatile bool *) &g_xxxx) = TRUE;

 これでも更新できないので、困っています。

です。

455 :リキ:2009/05/24(日) 23:55:22 ID:KSV+pU/a
> 変数のアクセス時じゃなくて宣言時にvolatile付けるものじゃないのかいな
基本的にはそうでしょうが、アトメルのサンプルのヘッダに以下のようなものがあります。
即値で変数宣言できないケースもあるので、コンパイラは何処でも言うことを聞くのではないかと思います。

#define UDIEN (*(volatile unsigned char *)0xE2)

など

456 :774ワット発電中さん:2009/05/25(月) 00:01:21 ID:62PnmTQR
もうそういうシビアな部分は、インラインアセンブラにしちゃえば?

457 :774ワット発電中さん:2009/05/25(月) 00:13:48 ID:aFYts9iQ
割り込みが発生してないんじゃね?

458 :774ワット発電中さん:2009/05/25(月) 00:14:00 ID:AJx1IMPs
アセンブラ結果がどうなっているのかな?
本当にvolatile付けてあるならStore命令が抜けることはないはずなんだけど。

459 :774ワット発電中さん:2009/05/25(月) 00:32:54 ID:1d63XC14
boolとTRUE,FALSEの宣言はどうなってるの?
AVR-GCCだとtrue,falseは小文字だし、独自のヘッダファイルでも使ってると思うんだけど

460 :774ワット発電中さん:2009/05/25(月) 00:42:08 ID:zDVMH39Q
>>450
AVRSTDIOのシミュレータにかけてみたらいいんじゃないのかなぁ。


461 :774ワット発電中さん:2009/05/25(月) 00:47:45 ID:3Ytyyhja
>>454
>上記で更新できないので
コンパイルした後のアセンブリ言語のソースコード読んでないの?

462 :恥ずかしながら:2009/05/25(月) 01:06:40 ID:pgjzyoch
> コンパイルした後のアセンブリ言語のソースコード読んでないの?
すみませんです。
10年以上アセンブラを使っていなかったので面倒でアセンブラのソース読んでいませんでした。
アセンブラのソース読んだら他の部分に問題があることが直ぐに判明しました。
割り込み関数内のグルーバル変数に対応した部分には、きちんとストア命令が出力されていました。

命令セットもまともで使い易いので、今後はきちんとアセンブラのソースを読みますので...
みなさん、お騒がせしてすみませんでした。
助言くださった方、どうも有り難うございました。

リキ

463 :774ワット発電中さん:2009/05/25(月) 15:08:34 ID:Ijq8eGLA
PCI Express増設のCOMポートが出るらしい
ttp://www.area-powers.jp/product/pcie/io/sd-pe9901-2s.html

464 :774ワット発電中さん:2009/05/25(月) 15:16:47 ID:Ijq8eGLA
…って高い!(直販サイト¥5,579)

ライタにしろUSB→COM変換にしろ、
自作かFT232RL使ったアダプタ買った方がいいかな。

465 :774ワット発電中さん:2009/05/25(月) 15:37:03 ID:UUuWeeBL
ATtiny13Aを秋月で10個ほど購入
さて何を作るかな・・・。AVR StudioのC言語でどこまで書けるか・・・

466 :774ワット発電中さん:2009/05/25(月) 17:15:50 ID:0avf7rNC
>>434
ここの延長戦で、AVRfreaks.netの掲示板で質問してみるというのはどうだろう?
向こうならatmelやWinAVRプロジェクトの中の人とかもいると思うし。

467 :774ワット発電中さん:2009/05/25(月) 22:43:07 ID:62PnmTQR
なんで2313が100円なのに、13Aは120円なんだ?

468 :774ワット発電中さん:2009/05/25(月) 23:10:05 ID:aKVYUl9+
>>467

10bit A/DConvがあるからかな?

469 :774ワット発電中さん:2009/05/25(月) 23:14:59 ID:NIDhcJPx
単純に仕入れの問題じゃない。2313の100円ってdigikey価格とかからしても異常に安いよ。
ちなみにdigikeyだとtiny13Aが151円、tiny2313が244円

470 :774ワット発電中さん:2009/05/25(月) 23:54:17 ID:jI6ngc/s
>>463
やっぱ高いね。

アキバの FIRST POINT の店頭で
PCI接続のCOM*2が300円のジャンクで出てるよ。
確か、IO-DATAの増設カード。

471 :774ワット発電中さん:2009/05/26(火) 00:11:05 ID:Cw0DPvNr
>>470
店頭ワゴンで大量にでてたよね。1つ買っておいた。
IOはドライバWebで手に入るし。
でも、店内では数千円で同じのがあった。
店頭のは不良品なのかなぁ…。買ったけど使ってないからわかんない。

472 :774ワット発電中さん:2009/05/26(火) 01:15:14 ID:ODXhEM6J
パラレルはわかるけど、シリアルでPCI版のUSB版に対するメリットって何?

473 :774ワット発電中さん:2009/05/26(火) 01:22:09 ID:NPIBzgwl
>>472
シリアルインタフェースとしてだけではなく、AVRライタで使われるような単なる数本のIOとしても使いやすいかもしれない。


474 :774ワット発電中さん:2009/05/26(火) 02:00:37 ID:QW0PGFR0
>>472
昔ながらのポート直叩きが通用する

とかな

475 :774ワット発電中さん:2009/05/26(火) 09:42:46 ID:WvXPkDO5
>>474
でも、その手のソフトはPCIなんかの拡張ポートには対応してないこともしばしば…

476 :774ワット発電中さん:2009/05/26(火) 14:53:26 ID:Rkr+OOtY
シリアルだと、Windowsに標準で入ってるハイパーターミナルを使ってデバッグ表示ができる
AVRのオン、オフもハイパーターミナルの接続、切断ボタンでできる


477 :774ワット発電中さん:2009/05/27(水) 03:16:31 ID:nzISXwBO
しかし、ハイパーターミナルの出来は最悪

478 :774ワット発電中さん:2009/05/27(水) 10:28:54 ID:8WfqLXqj
>>476
 Vistaには入ってない。

479 :774ワット発電中さん:2009/05/27(水) 15:28:04 ID:r8F3Har7
出来損ないだからね

480 :774ワット発電中さん:2009/05/27(水) 16:43:42 ID:xZrP4zzz
オヌヌメのターミナルきぼぬ

481 :774ワット発電中さん:2009/05/27(水) 16:45:17 ID:3ivzxMXj
いまは無きxtalk

482 :774ワット発電中さん:2009/05/27(水) 17:20:53 ID:PTE5CQpK
KTX

483 :774ワット発電中さん:2009/05/27(水) 19:04:44 ID:3C3vfX0x
WTERM

484 :774ワット発電中さん:2009/05/27(水) 19:19:51 ID:/JRlNsu0
Acknowrich
任意のボーレート設定可能

485 :774ワット発電中さん:2009/05/27(水) 20:08:55 ID:iTq/jfcG
JTERMもしくはCCTでOK

486 :774ワット発電中さん:2009/05/27(水) 22:05:48 ID:xYUJdkbt
パーツは揃えたんだけど
帰ってきたらブレッドボード触るのもめんどくさい
買い物だけは楽しかった
ああ楽しかった・・


487 :774ワット発電中さん:2009/05/27(水) 22:07:02 ID:xYUJdkbt
ところでteratermの名前が挙がらないのはなんでですの?
ム板やUNIX板辺りでは常識ですよ

488 :774ワット発電中さん:2009/05/27(水) 22:10:22 ID:6LFcZhD1
puttyが好きだからです。

489 :774ワット発電中さん:2009/05/27(水) 22:30:37 ID:zKZpOs5/
bray's terminal

490 :774ワット発電中さん:2009/05/27(水) 22:33:16 ID:ao+dH8nu
>>487
やたら高機能になっててワロタ

491 :774ワット発電中さん:2009/05/27(水) 22:34:34 ID:M67Ee659
ctty
って言おうと思ったらNT系はもはや存在しないんだな。modeはあるくせに・・・


492 :774ワット発電中さん:2009/05/27(水) 23:10:53 ID:8WfqLXqj
>>487
 みんなが空気を読むからです

493 :774ワット発電中さん:2009/05/27(水) 23:31:33 ID:/JRlNsu0
フリー、マクロ組まない、よって不要

494 :774ワット発電中さん:2009/05/27(水) 23:49:01 ID:3yujjYg4
通信ソフトといえば、ふつ〜
ULTmini
だろ。 え?バックスクロール機能が無いって? 
だって、ふつ〜
xscript
を常駐させているだろ? あ?


495 :774ワット発電中さん:2009/05/28(木) 00:14:01 ID:hf56kOdx
copy con com1:


496 :774ワット発電中さん:2009/05/28(木) 00:48:28 ID:IHf1sn11
>>495
残念ながらCOPY CON AUX でもVistaは機能しない。


497 :774ワット発電中さん:2009/05/28(木) 01:15:14 ID:YI8QMnmF
>>494
うわっ、懐かしい・・・・
マクロがよかったよなあ

498 :774ワット発電中さん:2009/05/28(木) 01:44:36 ID:NTHtN3Vz
mikroBASICに入ってたシリアル通信のソフトが使いやすかった。

499 :774ワット発電中さん:2009/05/28(木) 02:50:53 ID:XPqyXxb6
WTERM、神ソフトだった。今は....

500 :774ワット発電中さん:2009/05/28(木) 16:53:24 ID:BWdkFv+7
Bascom-avrのシミュレータって使えないよな。
Wait入れると異様に処理が思いし、InputoとOutputのシミュレータは動作がおかしいし。

501 :774ワット発電中さん:2009/05/29(金) 15:58:30 ID:G2SkgwvM
>>500
$sim
ってコマンド入れるとWaitが無視されますよ

502 :774ワット発電中さん:2009/05/29(金) 19:28:34 ID:u+mBfxel
>>501
ありがとうございます。
waitの重いのは治りましたが、緑のランプと赤のランプの動作がどうしてもおかしいんです。

503 :774ワット発電中さん:2009/05/30(土) 11:58:27 ID:lMTU0cYQ
loop_forever:
  rjmp loop_forever

504 :774ワット発電中さん:2009/05/31(日) 02:31:46 ID:jIM99SAU
すいません、この板でmicroSDカードのアダプタ側の端子を
ピンヘッダに直接ハンダ付けしてブレッドボードに差せるようにした、
みたいな記事を数ヶ月前に読んだ記憶があるのですが、
知っている方いましたら教えてください。

505 :774ワット発電中さん:2009/05/31(日) 03:02:26 ID:lBotpnO3
>>504
おいらがやったのは、microSD付属のSDカードアダプタ。
これがどうにか2.54mmピッチに乗るからピンヘッダを半田付けして、ブレッドボードやユニバーサル基板に使った。
データはmicroSDにのせてるから、ソケット代わりになってる。

506 :774ワット発電中さん:2009/05/31(日) 18:05:43 ID:8MGiyVqR
PDIが使えるのかどうが不安なので、互換品以外を探してたら
たまたま、ATJTAGICE2が半額だったのを発見したので
個人輸入しようと思ったら、在庫が無かったorz

ところで、
xmega(ATXMEGA128A1-AU)も$6.37だったので
併せて輸入しよかと思ったんだが、規制とか無いよね?

みんなPDI使えてる?てか、xmegaに手を出してる?

507 :774ワット発電中さん:2009/05/31(日) 18:48:50 ID:XbYA2Xwu
だれかこのプログラムの間違いを指摘してください。
正しく動作しません。

$regfile = "ATtiny2313.dat"
$crystal = 1000000


Config Portb = Output
Config Portd = Input

Portd = 1

Do
If Pind.3 = 1 Then
Portb.0 = 1
End If
Loop

End

508 :774ワット発電中さん:2009/05/31(日) 19:10:06 ID:lV45HRyJ
>>507
どのように動作させたいのか。そのくらいは書こうよ。

509 :774ワット発電中さん:2009/05/31(日) 19:13:36 ID:X/GHwjPa
>>508
「何をしたいのかわからない所が間違い」と指摘してあげるのが正解なんじゃ?

510 :774ワット発電中さん:2009/05/31(日) 21:23:36 ID:Rm0y0hK6
>>507
おまえの頭の中が間違い

511 :774ワット発電中さん:2009/05/31(日) 22:56:32 ID:gTxz7AXx
>>507
PORTBを全て出力に(DDRB=0xFF)
PORTDを全て入力に(DDRB=0x00)
PORTDのbit0を立てる(入力指定なので、PD0のプルアップとなる)

Do
  PD3が1(High)なら、PB0を1(High)にする
Loop


初期設定は不明(リセット後デフォルト任せなのでたぶんLow)のPB0が出力で、
なぜかPD0をプルアップして(その後使っていない)
ハイインピーダンス入力(プルアップしてない)PD3の入力がHighになったら、PB0をHighにする。
PD3がLowになってもその時の処理なんかどこにもないから、上記以降PB0はずっとHigh

意図する動作はこれでいいですか?



512 :774ワット発電中さん:2009/06/04(木) 01:37:50 ID:Aq3iq13k
AVRをオーバークロックして常用させてる人っていますか?
ENC28J60が25MHzなんで、同じ25MHzにして動かないかなー
と考えてるんですが。mega88辺りで

513 :774ワット発電中さん:2009/06/04(木) 02:14:46 ID:O6Ov9T8G
誰も保証しない。それでよければ試せばわかる。

514 :774ワット発電中さん:2009/06/04(木) 03:56:07 ID:Aq3iq13k
そんなことは判ってます
俺はこんなにOCして納品したぜ、見たいな人に聞きたかったのです

515 :774ワット発電中さん:2009/06/04(木) 04:13:52 ID:dIVKrAaP
複数のレジスタをまたいで論理シフトさせたいんだけど、
アセンブラで書こうとした場合、どう書くのがベストなんでしょうか?

論理シフトさせて空いたビットに0でなくキャリーの値を入れる命令があれば
簡単だけど、それは無いみたいだし...

例えば、
    R1    R0
  00110011 11001100
を左シフトさせて、
    R1    R0
  01100111 10011000
とさせたい場合、どう書くのが一番効率が良いんでしょう。

516 :774ワット発電中さん:2009/06/04(木) 04:37:36 ID:oJ+PKlVa
ADC

517 :774ワット発電中さん:2009/06/04(木) 09:21:57 ID:BsRQYSOa
>>514
誰も保証しない物を納品するには、あんたが保証するしかないのだが。


518 :774ワット発電中さん:2009/06/04(木) 09:27:30 ID:BsRQYSOa
>>515
>論理シフトさせて空いたビットに0でなくキャリーの値を入れる命令があれば簡単だけど、それは無いみたいだし...

あるよ。
http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf

ROL Rd
Rotate Left Through Carry
Rd(0)←C
Rd(n+1)←Rd(n)
C←Rd(7)

519 :774ワット発電中さん:2009/06/04(木) 10:20:50 ID:BsRQYSOa
>>516でも正解だね。
ROL Rd = ADC Rd,Rd


520 :774ワット発電中さん:2009/06/04(木) 12:21:27 ID:8PPa6JyJ
>>514
マイコンに限らず部品のスペック外で設計して
納品するとかあり得ない。

まあ、学生のロボコンとかならいいんじゃね?


521 :774ワット発電中さん:2009/06/04(木) 13:38:58 ID:MSQNIBqU
そうですか
メモリ等に選別品があるように、マイコンも自分で
選別すればいいということですかね


522 :774ワット発電中さん:2009/06/04(木) 15:25:32 ID:BsRQYSOa
>>521
選別を信用させるだけの信頼も獲得しなければならない。
メーカーの規格外で運用するものを出してる時点で信頼はなくなると思うけどね。
黙ってやれば・・・どうなってもシラネ。

一部のMBみたいに、オーバークロック設定をユーザーが自分の意志でできるようにすると言う手もあるが
AVRでそんな商品ちょっと思いつかん


523 :774ワット発電中さん:2009/06/04(木) 19:27:27 ID:jNTjY+in
てか人に聴かないで自分で試せよ
オーバークロックの醍醐味は自分でどこまでクロック上げられるかに挑戦するだけの自己満足なんだしさ

524 :774ワット発電中さん:2009/06/04(木) 21:55:59 ID:7CZ3klrk
>>521
選別って言ってもなぁ・・・ただ動けば良いってもんじゃないし。
動作保証温度範囲での異常動作が起こらないことの確認やら、
電源マージンの確認やらが必要で、まともな仕事をするところなら
これらの保証に必要なコストを考えて、製品として販売するものに
スペック外での使用をするなんてことは考えないだろ。

525 :774ワット発電中さん:2009/06/04(木) 23:41:49 ID:uEOr7+Uy
素人じゃない限り、AVRに25MHzの水晶が付いてたらゴルァするだろJK

526 :774ワット発電中さん:2009/06/04(木) 23:46:24 ID:cm8ISkLG
電圧あげればおk
ただしヒートシンクつけた方がいいかも

527 :774ワット発電中さん:2009/06/04(木) 23:48:35 ID:VUwwZCwE
>>507

Portdをプルアップさせて
Pind.3のスイッチを押し、グランドに短絡させLowにし
Portb.0の出力をHighにしたいなら・・・・

$regfile = "ATtiny2313.dat"
$crystal = 1000000

Config Portb.0 = Output
Config Portd.3 = Input

Portd.3 = 1

Do
If Pind.3 = 0 Then
Portb.0 = 1
End If
Loop

End

528 :774ワット発電中さん:2009/06/04(木) 23:52:29 ID:O6Ov9T8G
>>527
たぶんまた「意図した動作しません」と言い出すぞ。
何を意図しているか書かないままで。

529 :774ワット発電中さん:2009/06/05(金) 01:09:39 ID:ecj+hNwq
>>525
いやいや、25MHzのXtalが付いているけれど、
内部RCクロックで動いているかもしれんw

530 :774ワット発電中さん:2009/06/05(金) 15:46:10 ID:P9vdCYxq
>514
少なくとも現役がそんなの言うなんてありえんと思われ
やむ無くの処置でもクレームの恐怖に無かった事にしたい記憶だろ

スペック外を平気で出来るのはアマチュアの特権

531 :774ワット発電中さん:2009/06/05(金) 15:48:04 ID:kebuOPSu
>>521
MEGA8535を20MHzにオーバークロックして使ってるぜ

532 :774ワット発電中さん:2009/06/05(金) 17:41:09 ID:wHi7Z2eG
24Mhzを積むと、シリアルを3Mhzに設定でき、これがFTDI最速3Mhzとマッチして快調となる。

533 :774ワット発電中さん:2009/06/05(金) 20:14:53 ID:sQDtB/3h
FTDIはもうUSB2.0の世界に旅立ちました。

FT2232Hの挙動が変だから結局、245を使ってるけど。

534 :774ワット発電中さん:2009/06/05(金) 20:41:09 ID:rtSQQ7Sw
>>532
どんなデータを送受信するのか詳しく

535 :774ワット発電中さん:2009/06/05(金) 20:44:35 ID:n+CmCSe4
Crystalが25MHzでも内部2分周なら桶。

536 :774ワット発電中さん:2009/06/06(土) 13:42:41 ID:ed5Gy6W9
2313で38kHz出力したいんだけど、
どうすればいい?

537 :774ワット発電中さん:2009/06/06(土) 13:53:48 ID:sAVn8Zf7
他の処理の程度とか周波数の精度は?
適当で良いならタイマー割り込みでポートたたくんでも良いと思うけど


538 :774ワット発電中さん:2009/06/06(土) 13:56:30 ID:ed5Gy6W9
単に赤外線の送受信がしたいだけだから精度はそこそこでいいんだけど
いまだに割り込みとかよく分かって無いんだよね


539 :774ワット発電中さん:2009/06/06(土) 13:56:55 ID:MVcOelBC
>>536
int0にパルスジェネレータで作った38kHzのパルスを入れてだな・・・・

540 :774ワット発電中さん:2009/06/06(土) 14:01:26 ID:sAVn8Zf7
>>538
赤外線リモコンの送信ならぐぐれば事例がたくさんでてくると思うよ。
これを機会に割り込みつかってみれば

541 :774ワット発電中さん:2009/06/06(土) 14:02:13 ID:QJf+ZLiF
>>539
パルスジェネレータを2313で作りたいのですがタイマ割り込みとか判りません!><

つかそんな変な方法教えるなと。

無理にタイマでリモコン信号ださなくても、delay_usでしこしこパルス
出すんでもいいんじゃないかと。それなら処理をずらずら書くだけだから。
タイマで割り込みが入るたびになんてその後でいいよ。

542 :774ワット発電中さん:2009/06/06(土) 14:19:57 ID:ed5Gy6W9
ありがとう
割り込みとか勉強してみる

543 :774ワット発電中さん:2009/06/06(土) 14:49:34 ID:vOQAazvi
割り込みは一度覚えたらやめられん、スイッチ入力も割り込み使った方が楽になるから。

544 :774ワット発電中さん:2009/06/06(土) 19:10:38 ID:X4haMRHV
タイマー二つ以上使いたい場合はやっぱり並列で使うんですか?

545 :774ワット発電中さん:2009/06/06(土) 23:13:18 ID:6J2TjMgT
2個使うならそういうことだけど、どうせ同時には取れないので
AVR規模の場合は1っこを工夫して使いまわす事も考えた方がいい
コードサイズ小さくなるばかりか効率も良くなる
必要な一番細かい精度でタイマを作って、
他の用途は分周させるなどして使いまわす

546 :774ワット発電中さん:2009/06/06(土) 23:16:00 ID:6J2TjMgT
Tiny2313でタイマ1個で擬似マルチタスクなんてこともできる
まあ全部のレジスタ退避なんてしてらんないから
かなり限定的だけど

547 :774ワット発電中さん:2009/06/06(土) 23:41:28 ID:XqBjAkPC
malloc使える?

548 :774ワット発電中さん:2009/06/07(日) 02:00:37 ID:/+2HLg3T
>>547
使えるけど、どのAVRデバイスで使うつもり?


549 :774ワット発電中さん:2009/06/07(日) 03:20:34 ID:Gkp7zid7
ありがとう使えるのね。ATmega168と128です。
行列計算のためにかなり配列使うんで、できるだけ無駄の無いようにきっちり必要な
数だけ確保と、不要になったら早目に開放しようと思って。
やっぱりmallocとfreeは静的確保に比べてかなり処理時間かかちゃったりするのかな。
とりあえずPC用にCで書いたの移植し始めてみます

550 :774ワット発電中さん:2009/06/07(日) 03:29:21 ID:zMQKbuPE
>>549
GC無いからfreeの順序には気をつけよう。

551 :774ワット発電中さん:2009/06/07(日) 13:28:54 ID:d/Wcjfim
環境がゆるすなら、その辺のデバイス使なら
外部RAMで拡張という選択肢もある。


http://www.nongnu.org/avr-libc/user-manual/benchmarks.htm
mallocはそこそこ重いね。
でも行列演算の内容次第では誤差範囲かも。

>>550
Cだと普通はないんじゃね?

552 :774ワット発電中さん:2009/06/07(日) 20:05:46 ID:M9nuD6rs
別に解放したからって別の用途に使われるってものでもないならあんまり意味は無いけどね


553 :774ワット発電中さん:2009/06/07(日) 20:12:21 ID:PYR5t6hu
vusbと割り込みは相性悪いですか?

554 :774ワット発電中さん:2009/06/07(日) 21:30:59 ID:/+2HLg3T
>>552
でかい配列使わないときに深いスタックを使うとかローカル変数確保しまくるなら意味あるのだろうけど、
でかい配列使った演算の時のスタック使用量も大きいなら、最大見込みの配列を確保するだけの方がいいかもね。
演算の種類によって違う形態の配列を確保するとしても、unionで共用して排他的に使用する手もありそうだし。

555 :774ワット発電中さん:2009/06/08(月) 00:52:30 ID:qd2zYhsU
vusbとmega88でopenOCDで使えるJTAGドングル作ったお

556 :774ワット発電中さん:2009/06/08(月) 00:53:08 ID:3Ts8cuh9
SRAM最大で4Kしかないのにmallocとか
笑わせてくれる

557 :774ワット発電中さん:2009/06/08(月) 01:02:58 ID:d5vfg29A
void swap(float &a,float &b){
  float buf=a;
  a=b;
  b=buf;
}
コンパル時にエラーでます。何でですか

558 :774ワット発電中さん:2009/06/08(月) 01:08:44 ID:bJmUgOab
>>557
ポインタ渡しの関数なら
void swap(float *a,float *b)

float buf=*a;
とかじゃありませんでしたっけ?

559 :774ワット発電中さん:2009/06/08(月) 01:08:54 ID:BN41PxaT
まずエラーの詳細を日本語に訳せ
すぐ原因がわかるだろうから

560 :774ワット発電中さん:2009/06/08(月) 01:18:43 ID:qd2zYhsU
C++使いたいならC++コンパイラ使わないと

561 :774ワット発電中さん:2009/06/08(月) 01:48:13 ID:d5vfg29A
d 関数の引数で&ってC++しかできなかったのか。知らなかった

562 :774ワット発電中さん:2009/06/08(月) 09:41:27 ID:qd2zYhsU
そりゃまぁ、テンプレートの無いCでポインタ渡しと別に参照渡し導入する意
味無いし

563 :774ワット発電中さん:2009/06/08(月) 10:29:16 ID:698SfXmU
関数側で&になってると、勝手に書き換わっててゴルァってならない?
便利だけど、いいんだか悪いんだか・・・

564 :774ワット発電中さん:2009/06/08(月) 11:43:18 ID:3Ts8cuh9
その辺はC++のオペレータオーバーロード導入の際に必要不可欠だったのです
値渡しすると効率が悪すぎるので

565 :774ワット発電中さん:2009/06/08(月) 13:18:52 ID:+gW+PuOK
プログラマの予期しないところで副作用が出るというのは
迷惑なものの一つだわな


566 :774ワット発電中さん:2009/06/08(月) 13:48:01 ID:3Ts8cuh9
const
ろくに調べないアホばっかだな

567 :774ワット発電中さん:2009/06/09(火) 01:47:05 ID:hvRVOvqA
INT0をマスクしちゃってました。

568 :774ワット発電中さん:2009/06/09(火) 05:14:51 ID:Pu3DNKok
>>566
なるほど、関数に値を渡すときは、全部 const にキャストしろってことですね。

569 :774ワット発電中さん:2009/06/10(水) 06:38:12 ID:aR3myalK
いちいちconstにキャストしておかないと何がおきるかわからないと

570 :774ワット発電中さん:2009/06/10(水) 12:17:35 ID:HTp8Z91c
>>568,569
たぶん違うと思うぞ。
関数側で引数をconst宣言して、関数内で変更しない事を保証するんじゃないのか?

571 :774ワット発電中さん:2009/06/10(水) 12:52:14 ID:uTBHJnxE
constにキャストって違和感があるんだけど、
具体的にどういう意味なんだろう

572 :774ワット発電中さん:2009/06/10(水) 13:57:53 ID:BxApEUoc
すでに純関数型言語の世界に移住した身としては、 むしろconstじゃ無い方が気持ち悪い

573 :774ワット発電中さん:2009/06/10(水) 15:10:37 ID:jSkcdPMR
>すでに純関数型〜
なんでそんなのがこのスレにいんの?

574 :774ワット発電中さん:2009/06/10(水) 17:58:02 ID:uTBHJnxE
void * memcpy
(
void * dest,
const void * src,
size_t len
)

>>568,569はこういうのを言ってるんだろうけど、
これをconstにキャストって言わんのじゃないかと。

575 :774ワット発電中さん:2009/06/10(水) 18:45:35 ID:1ivT5hdf
constを無理やりconst無しにcastすることはあるけどな(いい悪いは別として)

576 :774ワット発電中さん:2009/06/11(木) 20:19:21 ID:hOpeRTzL
TWIうごかないちゃん

577 :774ワット発電中さん:2009/06/11(木) 22:43:43 ID:NDp2KJTN
ちょっと前に騒いでいたMega644PのUARTのバグがどうこうの件は
結局Fuseの設定ミスなのかよ

578 :774ワット発電中さん:2009/06/11(木) 23:21:30 ID:p8nukapt
そうなん?
結論が出たなら教えてほしい


579 :774ワット発電中さん:2009/06/12(金) 02:25:00 ID:/KrAXaAu
Mega644PのUARTのバグの件はAVR-Wikiを見てくださいです。

580 :774ワット発電中さん:2009/06/12(金) 03:13:51 ID:OZ1bMnLT
http://avrwiki.jpn.ph/wiki.cgi?page=%BB%A8%C3%CC5
セラロック周りも変なのか

581 :774ワット発電中さん:2009/06/12(金) 08:06:11 ID:p5PVxES0
CKOPTかー


582 :774ワット発電中さん:2009/06/12(金) 08:31:35 ID:DJDBWK2z
>>580
よく読め。下のほう。セラロックをフルスイング。
ttp://homepage2.nifty.com/denshiken/AVZ003.html

583 :774ワット発電中さん:2009/06/12(金) 11:21:57 ID:shKrhDuA
SPIが2つあるAVRってありますか?
CSで切り替えるべきなんでしょうが、信号レベルが3.3Vと5Vがあるので

584 :774ワット発電中さん:2009/06/12(金) 11:33:48 ID:n2OCKqQR
>>583
AVR側がマスタで良いならUSART2つあるmega164あたりはどうでしょう?
使ったことはないけどSPIモードってあったような気がします。

585 :774ワット発電中さん:2009/06/12(金) 11:55:32 ID:shKrhDuA
今話題の644Pですね
データシート見てみます

586 :774ワット発電中さん:2009/06/12(金) 11:58:51 ID:ZMeEDx79
SPIって1バイト送ったら1バイト返ってくるっていう決まりですか?

587 :774ワット発電中さん:2009/06/12(金) 12:21:39 ID:OJfKiKon
644Pにはいろいろ罠があるからSanguinoはトラブルが多くて普及しなかった
それでIlluminatoでは645を使ってる。644Pより645の方が安定してるから御ヌヌメ

588 :774ワット発電中さん:2009/06/12(金) 17:38:36 ID:smqCNGtb
>583
mega48あたりでも二つあるが。ナマのSPIと、USARTのSPIモード。



589 :774ワット発電中さん:2009/06/12(金) 18:10:08 ID:J2JWTm1n
644Pってだめぽなんだ?
どこに書いてある?


590 :774ワット発電中さん:2009/06/12(金) 23:13:16 ID:Cx38no8+
>>2
●PIC・AVR 初心者のためのスレッド-2サイクル目●
Internet Archive にレス番841までありました。

http://www.archive.org/web/web.php
↑ここに↓をコピペ。
http://science.2ch.net/test/read.cgi/kikai/1040610345/

591 :332:2009/06/13(土) 16:38:27 ID:kQZNZ/Y2
UART0問題、皆様のおかげで私も解決しました。
やはり低電力発振が悪さをしていました。
クロック源に関するデータシートをよく読んでいればよかったのですが、
ISPの画面をぱっと見ただけで選んでしまうと低電力発振を選んでしまいそうです。

低電力発振を使う気はないですが、安全に使う方法があるのでしょうか?


592 :774ワット発電中さん:2009/06/13(土) 16:55:33 ID:XCVSlN2P
>>591
低電力動作を追求する為のモードなんだろうから
頻繁なI/O操作をしない用途なら平気では?

XTAL繋げるピンとPDの間にGNDパターン通してきちんと
XTAL周辺囲ってみるとかの対策は当然として。


593 :774ワット発電中さん:2009/06/13(土) 20:31:07 ID:r9wwSQsW
情報を小出しにするからそうなる。

最初から実験環境からフューズ設定まで開示していれば一発だったろうに。

594 :774ワット発電中さん:2009/06/14(日) 01:51:07 ID:Qa0Mooa7
セラロックがバチモンだったりしてね
http://www.murata.co.jp/new/info/copy.html


595 :774ワット発電中さん:2009/06/14(日) 02:01:41 ID:cCE5IL5L
追っかけて実験したものだけど、うちも同じミスでした。
もう644Pは使わない方向で設計をすすめましたが・・・・

オシロで発振を見て20MHzに見えてたから問題ないと思ってたけど、
そのあたりもちゃんと読んでたらよかったですね。

596 :774ワット発電中さん:2009/06/14(日) 02:21:33 ID:Uz6AdMan
本によるとAD変換の変換値は
 変換する対象の電圧 / 比較する電圧 * 1024 = ADC
らしいので、一度VREFの電圧で内部基準電圧1.1を測定して、その値が
ADCだった場合、VREFの電圧を知るには、
 1.1*1024/ADC = VREFの電圧。
で、合ってますか?
これで計算させてみた電圧と、テスターで計った値と比べてみると
数ミリボルト違うんですが、これは計算が間違ってるのか、テスターが
おかしいのか、AVRのAD変換の精度の問題なのか分かりません。

597 :774ワット発電中さん:2009/06/14(日) 03:04:05 ID:ijoHK9QN
その1.1V、あまり当てにならないんじゃない?

598 :774ワット発電中さん:2009/06/14(日) 06:05:55 ID:Uz6AdMan
ありがとう。データシートにも内部基準電圧1.1vと書いているぐらいだからこれは
かなり正確なのかと思ってた。そうでもないのか
ということはArefの電圧も、Arefを基準としてセンサーからの電圧をAD変換した
値から計算する電圧も数ミリボルト単位で正確に得ることは難しいのね

599 :774ワット発電中さん:2009/06/14(日) 06:36:29 ID:icWIO1hD
シャントレギュレータで基準電圧を作るべし
さらにマニュアル通りにベタGNDで、AVccにはコイルとパスコンでノイズ対策を。

600 :774ワット発電中さん:2009/06/14(日) 09:49:50 ID:Uz6AdMan
やっぱり電圧が分かっていて安定している外部電圧を基準電圧とするしかないんですね
それでいってみます

601 :774ワット発電中さん:2009/06/14(日) 11:03:08 ID:uCvN0WCA
チップに内蔵してるとどうしても誤差が大きい。
A/Dも外付けのほうが精度いいし。

602 :774ワット発電中さん:2009/06/14(日) 18:18:23 ID:ZzfyPEUL
つ適材適所

603 :774ワット発電中さん:2009/06/15(月) 07:56:27 ID:wKDvaErY
趣味でハードを弄ってるレベルだと適材適所がわかんないだろ。
知ってるなら教えてやればいいのに。

604 :774ワット発電中さん:2009/06/15(月) 13:35:20 ID:k/sWq3Sr
>>603
精度が許容できるかとか、予算とか実装面積とかを考えるわけで
知ってるとか知らないとかそんなんじゃなくね?


605 :774ワット発電中さん:2009/06/15(月) 13:43:22 ID:o/qmvX7S
1に目的、2に実現性、3,4が無くて、5に懐具合

606 :774ワット発電中さん:2009/06/15(月) 16:48:51 ID:nKr99Ya7
>>596
誰も突っ込まないけどテスターの精度とかどうなのよ。500mVレンジで0.5%でも2-3mVはあるだろ
当然だがAD変換にも誤差はあるわけで、必要な精度を決めずに組んでもいいことないぞ
「なるべく正確に」程度に考えてるんなら1%ぐらいは見込んでおいた方がいい
それ以上目指すんなら、アナログ回路とか基板設計とかノイズ対策とかそれなりに勉強しないと難しいぞ

607 :774ワット発電中さん:2009/06/15(月) 20:57:52 ID:9AYHhMuV
そこまで精度が求められるって、何を作ろうとしてるわけ?
精度を求めるなら、AVR以外の選択肢もあると思うが、AVRにこだわるわけはなに?

608 :774ワット発電中さん:2009/06/15(月) 21:25:47 ID:nKr99Ya7
初心者っぽいし、プログラミングとかのノリで「デジタルにすればきっちり値が出る」って感覚なんじゃないかとオモ
デジタル回路なら回路図どおりに結線すれば動く、みたいな勘違いと同じ気配がする

609 :774ワット発電中さん:2009/06/15(月) 22:04:10 ID:HGgLETeM
初心者だと、5%ぐらいの誤差ってのが物理的には意外とマシな方っていう事実を意外と理解できない。

それに、誤差の程度って奴がパッと見で暗算できないから
安物デジタルテスタでも数字がカッチリ出されちゃうと、その数字が真値だと思い込んじゃうんだ。
針式アナログテスタだと気にならない様な程度の誤差であってもね。
フルスケールで0.5%の誤差とすれば、4000カウントで5V計ると40Vレンジでの測定になって
0.2V程度の誤差が出るとかの判断は、多少は慣れないと無理だし。

610 :774ワット発電中さん:2009/06/15(月) 22:23:21 ID:o/qmvX7S
>>609
> 安物デジタルテスタでも数字がカッチリ出されちゃうと、その数字が真値だと思い込んじゃうんだ。

あぁ、これは確かにあるね。
俺はデジタルテスタの場合上位2桁しか見てないなぁ・・・

611 :774ワット発電中さん:2009/06/16(火) 00:11:13 ID:PN1QpGc1
数値表示ってのは意外に使えないもんなんだ。実際の測定器でも

入力→AD→デジタル処理→DA→アナログメータ

ってのが結構あったりする。

612 :774ワット発電中さん:2009/06/16(火) 00:19:13 ID:T25ok1rp
>>611
リニアリティ補正や対数目盛りなど、ソフトで校正できるね。

613 :774ワット発電中さん:2009/06/16(火) 01:09:57 ID:GB8xuNdx
AVRでいろいろなデバイスを趣味で作りたいのですが
今入手し学ぶならどの石がいいですか?
当方大学で電気を習っているので、ある程度の知識はありますが、
実用的な電子工作はあまりやったことがありません
ハンダを使った工作は高校でいくらかやったことあります

コテとハンダとテスタはあります。まずブレッドボードと抵抗、LED等を買おうと思います。
ライタはChanさんのISPライタを使用します。
電源は5Vのスイッチング電源は持っているのですが、石によっては3.3Vで使わないと
いけないのでしょうか?

あとネットでまとめて買うので買ったほうがいい抵抗の種類を教えてください。

614 :774ワット発電中さん:2009/06/16(火) 01:18:43 ID:2tshlR2I
秋月のmega88がオススメ3〜5個買って、あとはtiny2313を数個買っておけばある程度できる。

615 :774ワット発電中さん:2009/06/16(火) 01:26:08 ID:2tshlR2I
抵抗は100,220,330,470,1K,4.7K,10K,47Kあたりが妥当かと。
あとパスコン用に0.01μFと0.1μFのコンデンサと10〜100μくらいの電解コンデンサもいる。
内蔵クロック使えないときのためにクリスタルオシレータもほしいかも。
あと15pFのコンデンサと水晶振動子とか。
mega88とtiny2313は5Vでも動くので大丈夫。

616 :774ワット発電中さん:2009/06/16(火) 02:00:09 ID:cKQgRXXl
秋月のmega88を2個以上買う予算あるなら千石かマルツでmega168を
1個買ってきてブレッドボードで簡易Arduino環境作っとくといいかも
抵抗は100 1k 10k 470 4.7k 47k 330 220 2.2k辺り
ブレッドボードは秋月で600円ぐらいの少し長い奴と150円の数枚あれば困らない
SDカードとか繋げるなら3.3Vも考慮
水晶周りは秋葉行けるなら秋月店頭が安い

617 :774ワット発電中さん:2009/06/16(火) 02:19:13 ID:CzHDFvvd
ブレッドボードでADC使うのは酷ですね〜

618 :774ワット発電中さん:2009/06/16(火) 02:22:15 ID:GB8xuNdx
>>614-616
回答ありがとうございます
ブレッドボードとジャンパ線はストロベリーリナックスで安売りしていたのと、
微弱無線モジュール(これを使うことが第一目標)がほしかったのでそこで買いました。
ブレッドボードの穴の数が少なく、一応2枚買いましたが、回路が大規模になると蛇の目や
プリント基板(大学で作らせてもらえるので)を使うので、よしとします。

あとは秋月などでAVRと抵抗その他を買うのみですが、どこにするか迷っています。
送料を抑えたいのでまとめて買いたいからです。
屋外で手持ちのLinuxが入ったノートPCと繋げて使うこともあると思うので、Arduino環境も
作っておきます。

あと、近くに無線パーツ屋さんがあって、抵抗などが打ってあるのですが少々行きにくい場所に
あるので、少量買う場合のみ使おうと思います。

619 :774ワット発電中さん:2009/06/16(火) 02:38:14 ID:CzHDFvvd
>>618
最初から人に聞く教えてクンじゃなく、ネットで電子工作の基本調べるなり、
技術書買うなりしたほうがええんじゃないの?
教えてもらってばかりで安全なルート進むより、ぶっ壊して覚えて行くほうが
何かと後々都合が良い。なぜ壊れたのかとかを調べまくる。

620 :774ワット発電中さん:2009/06/16(火) 04:07:22 ID:on59wh4n
最初くらい安全に進んだって別にいいじゃない。

621 :774ワット発電中さん:2009/06/16(火) 04:49:13 ID:HL3YGMbF
Arduino環境もやるなら0.047μFを買っとかないと自動リセット出来ないYO!

622 :774ワット発電中さん:2009/06/16(火) 04:50:53 ID:HL3YGMbF
>>619
どうせすぐに壊しまくるさw
みんなそうしてきてるんだし。

623 :774ワット発電中さん:2009/06/16(火) 05:17:45 ID:CzHDFvvd
>>620
最近の子って自分で調べたり考えたりする力が無くなりすぎw

624 :774ワット発電中さん:2009/06/16(火) 08:26:00 ID:HicjsB4G
提供する情報に微妙にフェイク混ぜとくと面白い


625 :774ワット発電中さん:2009/06/16(火) 08:42:43 ID:uZ74eF2v
それなんて教育的秋月キット?

626 :774ワット発電中さん:2009/06/16(火) 11:25:49 ID:2tshlR2I
中学生の頃に作った秋月の周波数カウンターキットはなかなかだった

627 :774ワット発電中さん:2009/06/16(火) 12:27:57 ID:xJuIvSwD
v-usb macだと認識されるのにwindowsだとusb hidのドライバ認識で認識されない。何でだーーー

普通逆だろ〜

628 :774ワット発電中さん:2009/06/16(火) 12:57:42 ID:0pv1lieA
@AVRやAVR工作の初歩的なことはどこかにまとめサイトを作ってまずそっちを教える。
Aそれでも不明ならここで質問する。
BQ&Aとして利用価値が高いならまとめサイトに誰かが追加する。
C終了


初心者が質問してくる@へ



629 :774ワット発電中さん:2009/06/16(火) 15:57:57 ID:aw4opnNE
まずは、>>628 がまとめサイトを作るところから
始めようではないか

630 :774ワット発電中さん:2009/06/16(火) 17:16:58 ID:Bomm5oRU
AVRやアンデュイーノ?ってまとめのwikiみたいなのなかったっけ?

631 :774ワット発電中さん:2009/06/16(火) 20:01:39 ID:yIshoEGE
>>591,595
3週前の日曜に追試した者です。3人とも同じミス...
低電力と全振幅をオシロで比較しました。
ttp://homepage2.nifty.com/denshiken/AVZ003.html


632 :774ワット発電中さん:2009/06/16(火) 20:46:55 ID:cKQgRXXl
こんな一件を見るに
もはや中華の方が電子系の技術力は上な気がする
品質はともかく

633 :774ワット発電中さん:2009/06/16(火) 21:15:02 ID:rGwgi5tt
ん。でもって、
これから先、低電力発振では不安定だぞって言い張ってまわる姿が目に浮かぶ。


634 :774ワット発電中さん:2009/06/16(火) 23:47:25 ID:lLN+tPq3
>>633
それで救われる人がいくらかはいるなら、いいんじゃない?

635 :774ワット発電中さん:2009/06/17(水) 00:01:35 ID:rTOdTZvD
不安定なのは当たり前だな。
消費電力を取るか、耐ノイス性をとるか…

636 :774ワット発電中さん:2009/06/17(水) 00:44:41 ID:lT6DwdU7
>>631
TINY2313で隣のピンの信号でクロックおかしくなるとか誤動作するとか聞いたことないんだが。
どちらかと言うと他の石だと低電力で不安定になる事があるからフルスイングをつけたって事じゃね?
注意するのは結構だが、無駄に不安を煽ったり低電力だから使えないとか決め付けるのはいかがなものかと

637 :774ワット発電中さん:2009/06/17(水) 02:51:55 ID:tb02Z9+D
すまぬ。ちょっと嵌ってしまった。WinAVRなのだが、
char buff[20];
float f;
f=1.23f;
sprintf(buff, "%1.3f",f);

とかやると、buffの中に”?”って入るんだ。WinAVRのsprintfには小数点のフォーマットは
サポートしていないの? %dとかだと普通に整数は出来上がるのだが。


638 :774ワット発電中さん:2009/06/17(水) 04:51:02 ID:TEMQnB6E
バッファ確保した時点での中身は確認したの?

639 :774ワット発電中さん:2009/06/17(水) 07:11:28 ID:LVgqmYzT


640 :774ワット発電中さん:2009/06/17(水) 07:21:36 ID:cYoBLiL3
>>637
コンパイラオプションがいるのでは?

If the full functionality including the floating point conversions is required, the following options should be used:
-Wl,-u,vfprintf -lprintf_flt -lm



641 :774ワット発電中さん:2009/06/17(水) 08:43:00 ID:uu5e742V
質問すりゃ「自分で調べたり考えたりする力が無くなりすぎw」
とか「どこかにまとめサイトを作ってまずそっちを教える。」

なにこれ、雑談スレじゃねえか

642 :774ワット発電中さん:2009/06/17(水) 10:23:35 ID:uMNrVkeu
>>641
In The Full Functionality, They Cannot Teach You At All.

643 :774ワット発電中さん:2009/06/17(水) 12:31:18 ID:cYoBLiL3
>>641
職業版でも所詮2ch。本質は雑談スレでしょ。


644 :774ワット発電中さん:2009/06/17(水) 13:35:20 ID:db7KCKc6
このスレは異様に親切だと思うけど・・・

適当なこと言う人も居るけど、
なんだかんだで誰かがキチンと答えてる

645 :774ワット発電中さん:2009/06/17(水) 14:49:15 ID:SfOFKlcn
同意

646 :774ワット発電中さん:2009/06/17(水) 17:20:01 ID:tb02Z9+D
>>640
ありがと(´∀`) それ見て隣家オプションで解決した。

>>641-645
すっかり教えてくんでした。ググっても%fは〜って特に記述がなかったので
隣家オプションがあるなんて気がつかなかったんだ。スンマソ(´・ω・`)

647 :774ワット発電中さん:2009/06/17(水) 20:51:17 ID:m5bNBIRx
>>632
当たり前じゃん。
FPGA技術とか見てると部品市場もあっちの方がはるかに巨大だぞ。

648 :774ワット発電中さん:2009/06/17(水) 22:07:28 ID:T4rAWCET
セラロックは相性があるからね。発振すらしないCPUもまれにある。

649 :774ワット発電中さん:2009/06/17(水) 22:07:51 ID:WT0T86Ww
電子立国の時代は終わったのだよ
これからの日本経済は環境関連が牽引していく
環境に関しちゃ中国のはるか先を行ってる

650 :774ワット発電中さん:2009/06/18(木) 00:00:28 ID:1sMCKTPL
>>649
>環境に関しちゃ中国のはるか先を行ってる
そんな最後尾の国を引き合いに出されても…

651 :774ワット発電中さん:2009/06/18(木) 01:33:41 ID:39avMrnQ
環境って、ビジネスモデルが宗教と似てるんだよね
実際どれ程の役に立つのかはっきり判ってないけど、
とりあえず信じて流行に乗っとけみたいな
宗教と違うのは極端な具体例を出せ場合があるってとこかな
今後色んな裏付けが取れて矛盾や嘘に気付いても
たぶん状況は変わらないんだろうね


652 :774ワット発電中さん:2009/06/18(木) 07:48:30 ID:UHPV2bc1
>>651
シロートの妄想はチラ裏に書いとけ

653 :774ワット発電中さん:2009/06/18(木) 09:23:05 ID:lzWImk2U
環境といっても、実質はWinAVR 一択だろ、JK

654 :774ワット発電中さん:2009/06/18(木) 09:26:31 ID:zspZdB1K
>>653
いや、そのうち、超低二酸化炭素排出、循環型の
開発環境が発表されるに違いない!

655 :774ワット発電中さん:2009/06/18(木) 10:53:51 ID:UHPV2bc1
@超低二酸化炭素排出、循環型の開発環境の初歩的なことはどこかにまとめサイトを作ってまずそっちを教える。
Aそれでも不明なら自分でスレを立てる。
BQ&Aとして利用価値が高いならまとめサイトに誰かが追加する。
C終了


初心者が質問してくる@へ

656 :774ワット発電中さん:2009/06/18(木) 11:35:35 ID:NTUAR+ia
>>655
つまらんからそのネタはやめれ。

657 :774ワット発電中さん:2009/06/18(木) 16:01:26 ID:6TMesRh9
>>655
飽きた

658 :774ワット発電中さん:2009/06/18(木) 17:24:53 ID:9HW/WDNU
>>655叩かれまくりwww

659 :774ワット発電中さん:2009/06/18(木) 18:23:21 ID:4HwxvwW3
CLR Acc

これってキャリーフラグを保持したままでクリアしないんか (涙
デバッグに費やした24時間返しやがれ

660 :774ワット発電中さん:2009/06/18(木) 18:41:56 ID:NTUAR+ia
>>659
正体はEOR Acc,Accだからな・・・
でもフラグの変化くらいデータシートで確認しろよ
EOR動作であることも書いてあるぞ。


661 :774ワット発電中さん:2009/06/18(木) 18:45:31 ID:NTUAR+ia
ってあれ、キャリーフラグで、しかもクリアしないことに対する涙か?
そりゃあ変化しないフラグは変化しないだろ。
LDI Acc,0でもクリアしないわけで、中の数値とは関係ないでしょう。


662 :774ワット発電中さん:2009/06/18(木) 19:04:14 ID:4HwxvwW3
バグが解決したことへのウレシ涙...

6809ではCLRでキャリーフラグも reset したので同じとオモテタ。
あまりにも基本的なニーモニックであり、舐めちょりました。

663 :774ワット発電中さん:2009/06/18(木) 19:43:57 ID:NTUAR+ia
>>662
へえ、そうなんだ・・・
流石に20年経つと忘れているw FM-8でお世話になりますた。


664 :774ワット発電中さん:2009/06/18(木) 19:56:14 ID:+aFIqrDI
>>662
基本的な部分でもCPUが違えば異なる場合があるので注意。
LD/MOV命令でもゼロフラグが変化する/しないとかCPUによって違ったり。


665 :774ワット発電中さん:2009/06/19(金) 00:41:01 ID:iGmq5+Am
>>664
うむ。大学に入ったときに68系のCPUいじってたので、
ソフトハウス(死語ですかい?)のアルバイトで、初めてZ80(CP/M)を使ったときに
LD A,#0 でゼロフラグが立たない事に悩んで、一日無駄にしたことが。
(時給なので、一日無駄にしようが、無駄にしなくても500円/時間貰えたが←安っw)


666 :774ワット発電中さん:2009/06/19(金) 02:21:59 ID:n7iMVVSA
なんでやねん!ってオフセットのZ80と
なんでやねん!ってバンク切り替えのPIC

いいものがメジャーにならない、その1、その2

667 :774ワット発電中さん:2009/06/19(金) 11:33:45 ID:1tYEEwOo
>666
先行者メリットって所だね。
同時期に出たものならともかく、数年も遅く出して
良いもの作ってもだめって事
(先行品を参考にして悪いところを改良できるのだから
良いものを作れるのは当たり前)

PICより先にAVRが出ていたら、AVRは売れてるけど低性能で
PICは売れないけど高性能と逆になってたと思うよ

668 :774ワット発電中さん:2009/06/19(金) 11:42:21 ID:L6+WOzh0
>>666
俺にとって、最大の「なんでやねん」は8088/86だったなぁ・・・



669 :774ワット発電中さん:2009/06/19(金) 12:24:09 ID:srfbgIZS
>668
当時は力不足になった8bitのZ80より少し上なCPUが欲しかったんじゃないか
32bitまで意識した68000は理想も値段も上を行き過ぎたと思う。

670 :774ワット発電中さん:2009/06/19(金) 12:25:25 ID:zUjwKwXc
AVR が売れないのは日本支社と営業のせいだとあれほど(ry

671 :774ワット発電中さん:2009/06/19(金) 12:40:19 ID:L6+WOzh0
>>669
つZ800

672 :774ワット発電中さん:2009/06/19(金) 13:13:52 ID:Zm5o93Oi
>671
 発売が遅すぎた。

673 :774ワット発電中さん:2009/06/19(金) 13:53:45 ID:L6+WOzh0
>>672
発表から発売までが長すぎた・・・だとオモ

674 :774ワット発電中さん:2009/06/19(金) 13:57:11 ID:zFvgCXGq
Arduinoをマスターしたのでそろそろ生AVRをやるべきか

675 :774ワット発電中さん:2009/06/21(日) 03:48:02 ID:+WeF69td
AVRStudioってソースコードの左側に行数表示するようにできないの?

676 :774ワット発電中さん:2009/06/21(日) 06:10:43 ID:0RjNLPec
5VのAVRで3.3VのSDカードを読み書きするのに
この回路を参考にしたいと思っているのですが、
http://zampoh.cocolog-nifty.com/blog/2008/12/avr---arduinosd.html
なぜCS信号だけ4.7k/10kの抵抗分圧ではなく、
ツエナーダイオードを使ってるのでしょうか?
(全部抵抗分圧でも問題ないですよね?)
何か理由があるんでしょうか

677 :774ワット発電中さん:2009/06/21(日) 08:21:49 ID:4cENdc2X
>>676
他のラインは、AVRがHi(5V)のとき、SDに3.3Vがかかり、Loのとき、0Vでしょ?
CSの線は4.7kが5V電源ラインにかかっています。AVRがHiのとき、抵抗2本とも相手が5Vなので、5Vがかかります。
それだとSDが壊れるので、3.6Vツェナーで落としています。
AVRがLo(0V)のとき、抵抗分圧でCSには約1.7Vがかかっていることになります。
SDカードが確実なLo信号と見てくれるかには、不安定な気がします。

DATA OUTはSDがHi、Loを決めるので、0Vか3.3Vで遷移します。
データシートではAVRのHi入力の最下限は5V動作で、VCC×0.6=3Vと読めますから、どうにか範囲内です。

678 :774ワット発電中さん:2009/06/21(日) 08:25:57 ID:o/qZu5qT
>>676
寝ぼけ眼で眺めただけだけど、AVRがリセットされたとかで端子が
ハイインピーダンスになったときにCSを'H'にしておきたいから+5Vで
吊り上げた回路にしたんでしょ
VILには気をつけてな

679 :774ワット発電中さん:2009/06/21(日) 09:02:57 ID:0RjNLPec
おおおーなるほど
ローアクティブってことですね
納得できました
ありがとうございました!

でもさっきヒューズ飛ばしてmega88壊しちゃった\(^o^)/
書き込み時に間違えて12Vが入ってたらしい。以降書き込み不能
avrdude -Fで無理矢理読むと
Device signature = 0xffffff lfuse = 0xff hfuse = 0xff efuse = 0x7
パラレルライタで直るのかな?
250円とはいえ交通費含めると痛い

680 :774ワット発電中さん:2009/06/21(日) 09:29:56 ID:IKBiWZR0
mega88Pなら250円じゃない?

681 :774ワット発電中さん:2009/06/21(日) 10:02:40 ID:F5MHxJ2V
>>675
AVR-FREAKSのフォーラムにも話題上がってたが出来ないらしいorz
www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=62764

と言うわけで私は専らPN2使ってる・・・

682 :774ワット発電中さん:2009/06/21(日) 16:48:25 ID:+WeF69td
>>681
おおありがとう。調べても全然出てこないはずだ
これはかなり不便だよね

683 :774ワット発電中さん:2009/06/21(日) 18:31:25 ID:KJ/+OGjB
mikrobasicとBASCOMの比較をしているサイトってないですか?
FastAVRは「 BASCOMよりコンパクトで速いオブジェクトが得られまっせ!」
みたいな宣伝してたところがあったみたいですが、
最近の石に対応してないところを見るとぽしゃっちゃったみたいだし、、、
両方使った方、感想を教えてください。
ちなみにCやアセンブラは宗教上の理由で使えません。

684 :774ワット発電中さん:2009/06/21(日) 18:49:08 ID:o/qZu5qT
サイトに書いてあることなんて信用するのか・・・

685 :774ワット発電中さん:2009/06/21(日) 19:27:32 ID:RAGqUCtJ
アセンブラー使わずに直接バイナリで書け

686 :774ワット発電中さん:2009/06/21(日) 19:37:17 ID:JbWv41Xq
カルトな異教徒の質問にゃー答えられませんにゃー

687 :774ワット発電中さん:2009/06/21(日) 20:03:40 ID:QBg3mkBa
BASICも宗教上の理由とやらに加えてくれ。
そうすれば答える必要がなくなる。

688 :774ワット発電中さん:2009/06/21(日) 20:14:50 ID:LHidL43X
Tiny2313は全振幅でないものの低電力とも違うようです。
ttp://homepage2.nifty.com/denshiken/AVZ003.html


689 :774ワット発電中さん:2009/06/21(日) 20:28:16 ID:jCbYz1vn
ハイインピーダンスの水晶まわり扱うのにブレッドボードで
やってる段階で資料価値ほとんどないぞ。
USARTの一件で得られるのはそういう知識だと思うが。


690 :774ワット発電中さん:2009/06/21(日) 21:45:41 ID:LHidL43X
比較試験のためにノイズの乗り易いブレッドボードを使っています。
発振の安定度を測るいい方法が思いつきませんでした。


691 :774ワット発電中さん:2009/06/21(日) 21:50:34 ID:Gn4EhFZv
一度、発振出力を受信機で音として聞きながらいじくり倒してみれば、
発振回路がどれほど敏感なものなのか身をもって知ることができるんだけどねぇ。

無線が廃れた今となっては、そんな周波数が聞ける受信機を持ってる人は
殆どいないのだろうね。

692 :774ワット発電中さん:2009/06/21(日) 22:45:24 ID:XBDmyJ+C
内蔵発振でやってくれたらあんま悩まずにすむのにね

xmegaでは内蔵で32MHzやってるんだし、
Tinyとかmegaでも対応した品種はでないだろうか?

693 :774ワット発電中さん:2009/06/21(日) 22:54:10 ID:6a8owTu2
ブレッドボードはピン間の静電容量が大きいからな。
時計Xtal回路なんか発振すらしないこともあったし。

694 :774ワット発電中さん:2009/06/21(日) 22:56:04 ID:VtFz7VeM
>>692
水晶を内蔵するためには、内部に真空または窒素置換した空間を作らなきゃならないから
コスト的にも大きさ的にも苦しいと思うよ。


695 :774ワット発電中さん:2009/06/21(日) 23:13:35 ID:NG/sbkns
今ならMEMSでイケる!
ような気がする・・・・

696 :774ワット発電中さん:2009/06/21(日) 23:14:41 ID:XBDmyJ+C
ああいう内蔵の発振回路ってシリコンなんじゃないの?

xmegaの発振回路も、精度が必要なときは外部のクリスタルで
校正できるみたいな事書いてあるし、PLLとVCOみたいな構造かと思ってたけど。


697 :774ワット発電中さん:2009/06/22(月) 00:55:37 ID:MhvKEiD+
>>688
検証乙
>>692-696
確かに内蔵のクロックが使えればいいんだけど、精度が必要な用途にはまだ無理だしなぁ

698 :774ワット発電中さん:2009/06/22(月) 03:00:07 ID:w3T4nPcm
C8051のクロックのようなのが欲しいな。

699 :774ワット発電中さん:2009/06/22(月) 08:51:53 ID:PNEiNE+q
>>695
MEMSでもやっぱり空間は必要だよ。
シリコンの上で、機械的にプルプルする部分が必要だから
(完全にモールドしちゃったら振動できないw)

700 :774ワット発電中さん:2009/06/22(月) 10:19:00 ID:H9Vp8x8t
>>676
しかし、こういう目的なら、CSをSDのVddにプルアップして、AVR側はHi-ZとLow出力で
制御してもいいと思うんだけど。それならツェナー要らないかなと・・・
AVRのプログラムミスや暴走でHigh出力とかプルアップ入力になった場合を考慮してなのかな?



701 :774ワット発電中さん:2009/06/22(月) 12:51:03 ID:LqrbCo2g
>>700
10KぐらいでCSを3.3Vにつって、小電流ダイオードをAVR向きにつける。これ、どう?
AVRがHiロジックで5Vだしても、ブロック。LoでVf分だけ残る。
波形なまるかな?CSだからいいんじゃないかな?

702 :774ワット発電中さん:2009/06/22(月) 12:52:53 ID:FtOrImwK
>>700
なるほど
CSのON/OFFならオープンドレインで問題なさそうですね
mega88買い直したら試してみようと思います
ありがとうございます
リンク先でコメントしてた人は3つとも抵抗分圧でやってるようです
ttp://www.geocities.jp/jun930/etc/arduinosd.html

703 :774ワット発電中さん:2009/06/22(月) 13:57:39 ID:H9Vp8x8t
>>701
あ、そうだね、これでAVRがだしうる電圧については問題なしか。


704 :774ワット発電中さん:2009/06/22(月) 14:02:47 ID:PNEiNE+q
素直にCPUも3.3V駆動しようぜって話にはならんのか?

705 :774ワット発電中さん:2009/06/22(月) 14:19:30 ID:H9Vp8x8t
>>704
あ、そうか、>>676はArduinoでやるわけじゃないのか。
それなら3.3V駆動が一番だ・・・もし高クロックが必要なければだけど。


706 :774ワット発電中さん:2009/06/22(月) 14:39:54 ID:0P6ulWrm
つ入力トレラントのロジック

まあ、勿体無いか

707 :774ワット発電中さん:2009/06/22(月) 15:08:29 ID:wXZ+0Smq
74LVC125

708 :774ワット発電中さん:2009/06/22(月) 15:30:32 ID:FtOrImwK
>>701
ダイオード入れときます
ありがとうございます

>>705
現在ethernetを繋いで20MHzで5V駆動してます
トレラントのない5V系のセンサ類を繋ぐ予定なので、
どこかで5V-3.3V変換をやる必要があります
3.3Vレギュレータが既に入ってるので、
どうせならSDの読み書きでも練習したいなと

>>706-707
125も考えましたが、なるべく小さく安くしたいです

709 :774ワット発電中さん:2009/06/22(月) 20:51:21 ID:HVbkJYYD
最近アセンブラの勉強はじめたものです。
Tiny2313でPWMの実験中なのですがどうにもうまくいきません。

このプログラムなのですが、どこが間違っているのかご教授していただけると幸いです。
ttp://toku.xdisc.net/cgi/up/qqq/nm15522.txt

710 :774ワット発電中さん:2009/06/22(月) 21:09:38 ID:v3ThLxnm
>>709
「成果報酬ならアフィリエイト  TOPからお入り下さい」って出るね。さいなら〜

711 :774ワット発電中さん:2009/06/22(月) 21:12:42 ID:HVbkJYYD
>>710
申し訳ありませんでした。
こちらならどうでしょうか。
http://dot.my-sv.net/uploader/src/up0009.txt

712 :774ワット発電中さん:2009/06/22(月) 21:37:57 ID:MhvKEiD+
>>711
TCCR0Bの初期化はどこへ行った。クロック元指定しないと動作始まらないぞ
あと関係ないけど、初期化してないのにOC0Bを有効にするのはどうかと思う

713 :774ワット発電中さん:2009/06/22(月) 22:46:32 ID:jcg7OVtC
>>712
そうでした…
もっとデータシート読み込んできます
ありがとうございました。

714 :774ワット発電中さん:2009/06/22(月) 23:38:30 ID:TGoS8TtV
>>693
前、ブレッドボードでは動いたのに、4層基板にすると動かない ってことがあったぞ。
一瞬、本気で、ブレッドボードで納品しようかと思ったくらいww
(アナログとデジタルの島の分け方をミスったのが原因)


715 :774ワット発電中さん:2009/06/23(火) 09:30:07 ID:nHDajhDG
>>714
ブレッドボードを黒モールドで完全にモールド。
客先には「回路部分は秘密ですので・・・」


716 :774ワット発電中さん:2009/06/23(火) 15:47:47 ID:eYjN5XgD
スレチかもしれませんがわかる方いましたら教えてください。
温度センサー(LM61BIZ)をAVRにて計測しようとしています。
そのまえにどのような値が出力されるかをテスターで計ろうとしたのですが
気温25℃くらいのときにVin5VにてVout430mVとなっています。
データシートによると25℃にてVout850mVのはずなのですが・・・
(ちなみにVo=(+10mV/℃xT℃)+600mV)
なぜこんなに違うのかがわかりません。指摘お願いします。

717 :774ワット発電中さん:2009/06/23(火) 16:39:50 ID:MOSHD3ps
初心者な質問ですみません。
Reset ピンはプルアップする必要がありますでしょうか?
もししなかった場合にどのような状況になるのでしょう。

718 :774ワット発電中さん:2009/06/23(火) 18:07:15 ID:KSMOpYFP
>>716
使っているのはデジタルテスタ?
出力インピーダンスが800Ωあるようなので、
内部抵抗がむちゃくちゃ低いのだとそういうことはありえる。

とはいってもいくら何でも内部抵抗1kΩってことはないか・・・



719 :774ワット発電中さん:2009/06/23(火) 18:36:57 ID:eYjN5XgD
>>718
レスありがとうございます。
デジタルテスタを使ってます。
内部抵抗というのはテスターの入力インピーダンスのことでしょうか?
的を得ていなかったらスルーしてください(ーー;)
仕様書では1MΩとなってますが・・・

720 :774ワット発電中さん:2009/06/23(火) 18:43:34 ID:KSMOpYFP
>>719
デジタルならまず問題ないねえ。アナログでもあり得ない誤差だけど。
故障なのかな??


721 :774ワット発電中さん:2009/06/23(火) 18:54:06 ID:EijgH9R/
火を近づけたりして値が変化するか確かめた?
VinとVoutを間違えてるとか

722 :774ワット発電中さん:2009/06/23(火) 19:03:12 ID:6GRc8P4Z
>>716

念のためだけどVoutだけど測る場所間違えていない?

VoutはGNDとVo端子間の電圧
うっかりVssとVo間を測ってしまわないように

>>717

Resetというのは外部からスイッチをつなぐなどして信号(GNDへのパルス)を与えて、マイコンの動作をリセットするための端子
IOPortなどと共用になっているのはレジスタで設定をReset以外に変えれば大丈夫
ResetモードになっているときでもVCCにプルアップされているから大丈夫

もししなかったら、GNDと接触した際にResetがかかる

723 :774ワット発電中さん:2009/06/23(火) 19:08:06 ID:eYjN5XgD
>>720 >>721
火を近づけたらVoutが下がっていっておかしいと思って調べたら・・・
お騒がせしました。VinとGNDが逆でした。
現状Vout868mV(26℃前後)正常値が得られたようです。
恥ずかしい限りですすみませんでしたm(_ _)m


724 :774ワット発電中さん:2009/06/23(火) 19:11:41 ID:Zb0n5Gpg
壊れないのか。

725 :774ワット発電中さん:2009/06/23(火) 19:17:57 ID:mZNroz49
>>724
Over current protected

726 :774ワット発電中さん:2009/06/23(火) 19:26:03 ID:w1Z6XLfF
マルチか

http://science6.2ch.net/test/read.cgi/denki/1241103349/825

727 :774ワット発電中さん:2009/06/23(火) 19:33:45 ID:eYjN5XgD
こういうスレにも幼稚なのがいるとは
+−を間違えてた俺が言うことではないが・・・

728 :774ワット発電中さん:2009/06/23(火) 19:45:32 ID:mZNroz49
>>727
Die With Your Boots On!
>>725 is not silly Q&A like you.

729 :774ワット発電中さん:2009/06/23(火) 22:51:24 ID:EijgH9R/
AVRとあんま関係ないけど、
組み合わせてる人が結構多いみたいなので書いておく。
ENC28J60のRevにB6は存在しない。
チップからRevコードを読み出して0x06と出た人、それはB7だ。
B7のErrataのpdfを見れば判るが、00000110はB7だと書いてある。
間違ったまま納品書にも書かれてたりして性質が悪い。
B6のErrataがないことからも推測できたことだが、
自分も今まで勘違いしてた。全く紛らわしい。


730 :774ワット発電中さん:2009/06/24(水) 00:36:30 ID:8Tyw/57X
PICとAVRのスレを両方見てる奴はいないと踏んだのかw

731 :774ワット発電中さん:2009/06/24(水) 12:22:26 ID:yjtIUK+4
>726
ナデナデしてください

732 :774ワット発電中さん:2009/06/24(水) 12:24:06 ID:XYpWWObF
age

733 :774ワット発電中さん:2009/06/24(水) 19:52:11 ID:zU6N0v8Q
>>691
受信機で聞く手があったか、今度やってみるよ。
無線機持ってる人は少ないけど受信機持ってる人は多そう。
ちなみに俺の受信機は100KHz〜1299MHzまで聞ける。

734 :774ワット発電中さん:2009/06/24(水) 21:15:07 ID:QKLC0nUr
初心者はCから入った方が簡単だと思う

735 :774ワット発電中さん:2009/06/25(木) 02:30:53 ID:qzp46+yi
AVRはじめるのに良いキットありますか?

736 :774ワット発電中さん:2009/06/25(木) 04:34:33 ID:+HMbltaa
>>735
http://strawberry-linux.com/catalog/items?code=72003

本読みながらやれば?

737 :774ワット発電中さん:2009/06/25(木) 07:19:26 ID:6voPWsod
>>735
調べもしないで書くなよヴォゲ

738 :774ワット発電中さん:2009/06/25(木) 07:25:43 ID:6VckFioJ
>>735
あるよ。

739 :774ワット発電中さん:2009/06/25(木) 08:30:52 ID:vhnTUEzo
>735
普通にSTK500と石を買っとけば問題ないと思うが。

740 :774ワット発電中さん:2009/06/25(木) 12:28:42 ID:MfRXUAi4
STK500 は使いにくいだろJK

741 :774ワット発電中さん:2009/06/25(木) 13:55:29 ID:+HMbltaa
STK600てのも出てるYO!
Xmegaするならこっちのほうが良いYO!

742 :774ワット発電中さん:2009/06/25(木) 21:39:56 ID:l0Xxpb9U
>>740
どう使いにくいのか説明が必要だな。
STK500だとプログラミングの勉強はできるが電子回路の勉強(デバイスの勉強)は
まったくできないので、ブレッドボードも買ったほうがいいな。

743 :774ワット発電中さん:2009/06/25(木) 22:55:25 ID:4mhHivg/
今だったら、
tiny26かtiny2313、ブレッドボード、パスコン用0.1uF×1、LED数個、
500Ω前後の抵抗数本、単三×2本の電池ボックス×1、ChaNさんところあたりのライタ
ぐらいで始めるのが一番遊べるとオモ


744 :774ワット発電中さん:2009/06/25(木) 23:52:45 ID:RQv+b4I/
それかArduino+ブレッドボードで始めるのもいいかも。
ArduinoのIDEなんかすぐ飽きるので、素のavr-gccとMakefile
で書くといいです。


745 :774ワット発電中さん:2009/06/26(金) 10:00:40 ID:dM2X5fBz
>>742
むしろ、なぜ使いたがるのか説明してほしいよ。
STKは、何でもできるけど、ジャンパー設定とか余計なことが多すぎ。

素直に純正のUSBライターと簡単なボードを買ったほうがいい。
半田付けできるなら、自分でボードを作ればいいし。

746 :774ワット発電中さん:2009/06/26(金) 21:32:55 ID:LvY7EpdR
>>743
>ChaNさんところあたりのライタ
って具体的にどれのことですか?

747 :774ワット発電中さん:2009/06/26(金) 21:39:34 ID:wZNplp81
>>746
ttp://elm-chan.org/works/avrx/report.html
使うパソコンにCOMポートが付いているなら、COMポート制御ISPアダプタ
USBしかなければ、USBspi
書込みソフトもここにおいてある。


748 :774ワット発電中さん:2009/06/26(金) 22:39:07 ID:9O/QfzEV
共立、シリコンハウス、デジット系にオリジナルUSBライターは、ある。
http://eleshop.jp/shop/g/g69P411/

749 :774ワット発電中さん:2009/06/26(金) 22:44:17 ID:LvY7EpdR
じゃあAVRSP-COMを作ろうと思うんだけど、
回路図のVCCって自分で用意しろって事ですか?
5Vだから、USBポートからとってきていいですか?

750 :774ワット発電中さん:2009/06/26(金) 23:06:29 ID:MT98K2Dq
>>749
いいんじゃないの

751 :774ワット発電中さん:2009/06/26(金) 23:21:13 ID:LvY7EpdR
よし!明日秋葉いってSTK500買ってくる!

752 :774ワット発電中さん:2009/06/27(土) 15:39:06 ID:PbntNeIN
実行中に一部のプログラム領域を自己書き換えすることってできますか?
EEPROMとかのコードをオンデマンドで読み込ませたいんですが。
ブートローダーを応用すれば可能かな?

753 :774ワット発電中さん:2009/06/27(土) 15:55:47 ID:zsmw3rK3
SPMで普通に書き込めるんじゃないの?やったこと無いけど

754 :774ワット発電中さん:2009/06/27(土) 23:28:15 ID:NCy8qKC1
関数オーバーライド

755 :774ワット発電中さん:2009/06/28(日) 02:00:54 ID:81s6iuXF
書き換えにはそれなりの時間が必要だということを忘れて無いかい?

756 :774ワット発電中さん:2009/06/28(日) 08:21:38 ID:BoT9QLnk
「実行中に」という部分を具体的に書いてもらえないとなんとも答えようがない。

757 :774ワット発電中さん:2009/06/28(日) 09:54:19 ID:xCHgR3b3
PSoCになら、「ダイナミックリコンフィギュレーション」って機能がサポートされてるけどね。


758 :774ワット発電中さん:2009/06/28(日) 09:59:41 ID:di5mCZCb
ダイナミック・コリア

759 :774ワット発電中さん:2009/06/28(日) 10:04:35 ID:XScyau0r
>>757
プログラム領域の書き換えの話と同一にすることでもないと思いますよ。


760 :774ワット発電中さん:2009/06/28(日) 11:13:20 ID:3+9Qc7CU
自己リセットの外部回路とブートローダー使えば出来るけど
頻繁に書き換えるならAVRじゃなくて78K0とかの
SRAMにプログラムを載せられる石を選ぶべきだと思う。

761 :774ワット発電中さん:2009/06/28(日) 14:48:09 ID:+k3dyiaq
EEPROM は、プログラム領域じゃないよね。
フラッシュを書き換えたいのかどっち?

EEPROMにデータを書いておいて、適当に
分岐させればいいんじゃないの?

762 :774ワット発電中さん:2009/06/28(日) 16:23:32 ID:cDYLOUoe
atmega8用のソースコードをMakefileのmcpuだけ書き換えて
atmega88でコンパイルするとエラーなくコンパイルできました。
これで動くんですかね?

763 :774ワット発電中さん:2009/06/28(日) 16:37:44 ID:odyS6700
案ずるよりやってみるが易し

764 :774ワット発電中さん:2009/06/28(日) 17:12:50 ID:Uyd+7mQU
そうだね 最近やる前にあきらめること多いよね

765 :774ワット発電中さん:2009/06/28(日) 17:18:41 ID:ofpW30Ut
成功することしかやらないよね

766 :774ワット発電中さん:2009/06/28(日) 17:27:51 ID:MtIrfTDX
いいなぁ
俺、性交したことありません・・・

767 :774ワット発電中さん:2009/06/28(日) 17:32:07 ID:cDYLOUoe
実はやってみて駄目だった。
アプリケーションノートのAVR094も見た。
ビット単位の操作が混じってるからだろうな。

768 :774ワット発電中さん:2009/06/28(日) 17:48:24 ID:/hGtce6J
レジスタとレジスタビットの位置が違ってるみたいだね。Fuseも変わってるし。

769 :774ワット発電中さん:2009/06/28(日) 18:56:28 ID:BoT9QLnk
もってまわった質問だった割には結局「どうやってカキコすればいいの?」って話かw
ドキュソはドキュメント読まないからな

770 :774ワット発電中さん:2009/06/28(日) 21:01:16 ID:aM8sp0zk
「やってみて駄目だった」をどうやったら「カキコの方法がわからない」と解釈できるんだ?

771 :774ワット発電中さん:2009/06/28(日) 21:12:50 ID:/vNndSVm
>>770
>実はやってみて駄目だった。
なんて後出しするからだろう

772 :774ワット発電中さん:2009/06/28(日) 21:18:41 ID:aM8sp0zk
>>771
後出しだからといってめちゃくちゃな論理展開する理由にはならん
常にまじめなレスを心がけるべき

773 :774ワット発電中さん:2009/06/28(日) 21:53:16 ID:NmdCBD24
>>752ですが
あrづいののブートローダーの改造でできそうです
やりたい事はLEDマトリクスでゲーム作ってる人が
やってるのと似たようなことです

774 :774ワット発電中さん:2009/06/28(日) 23:38:45 ID:VNI8MdZF
>>773
書き換え可能回数にも注意してね。

775 :774ワット発電中さん:2009/06/29(月) 00:21:11 ID:twz4Gn1O
10万回かと思ったら1万回なのね
でもプリンタのインクみたいなカウンタが仕込んであるわけじゃないよね?


776 :774ワット発電中さん:2009/06/29(月) 00:24:37 ID:8aoOrbCG
自己書き換えって
大昔のRAMの時代だと なんとなくありかと思うけど
フラッシュ領域を自己書き換えでプログラムが動き回るのって
なんか変な感じがする


777 :774ワット発電中さん:2009/06/29(月) 00:36:30 ID:eBcb90ky
>>775
電気的な寿命というかなんというか・・・。
U/V-EPROMで中途半端な紫外線照射でたまにクズが残るような状態にでもなるのかな?

778 :774ワット発電中さん:2009/06/29(月) 07:14:25 ID:3+ZWuWe/
電子をすんごい加速してムリヤリ絶縁層を通過させて書き込みを行うから、
一定の確率で結晶格子が破損して劣化する。

って大学で習ったな。

1万〜10万ってのはメーカーが出してる目安みたいなもんじゃね?

779 :774ワット発電中さん:2009/06/29(月) 07:42:53 ID:eBcb90ky
どこかのサイトで実験してあったね。
カウントしながら書き込んでいって、一定回数になったらベリファイして実験してるサイト
たしかに保証回数まではまともだったんだけど保証+10%前後くらいから
ところどころでエラーが発生してた。数が増えるにつれてどんどんと・・。

780 :774ワット発電中さん:2009/06/29(月) 09:02:05 ID:ilhE4YuZ
一般的な傾向として,国内メーカ品は公称値が辛い(少なめ),
海外メーカ品は甘い
国内はうるさい大口ユーザさんが>779みたいな評価をしてツッコミ
が入るからだとか

781 :774ワット発電中さん:2009/06/29(月) 09:07:50 ID:oxc9nwvj
>>780
> 国内はうるさい大口ユーザさんが>779みたいな評価をしてツッコミ
> が入るからだとか

その評価をしていたのは海外じゃなかったな・・・
いろんなフラッシュを死ぬまで書き換えるってやつ。


782 :774ワット発電中さん:2009/06/29(月) 09:30:49 ID:wgxQlYJL
>うるさい大口ユーザさん

法律で安全性評価が義務付けられてると国内外を問わずやらざるを得ないだろJK
大口かどうかは関係ない。

783 :774ワット発電中さん:2009/06/29(月) 09:39:52 ID:oxc9nwvj
>>780
昔(電電公社や国鉄が幅を利かせていた頃)の日本は、
規格=何が起ころうと下回ってはいけない。マージンも200%とか取っておく。
設計者の意地とちょっとした真心w
って設計思想が多かったような気がする。
それが、最近では
規格=ギリギリクリアできればOK。過剰なマージンはコストアップにしかならないから絶対にNG
っていうアメリカ型の合理主義に変わったような・・・

まぁ、全面的なコスト競争になったら、後者以外生き残る道はないんだろうけどね。

784 :774ワット発電中さん:2009/06/29(月) 09:59:27 ID:XDkKjDRr
>>773
ところでなんで単なる条件分岐による切替ではだめなの?
EEPROMに置けるコード量なんてたいした量ではないし、ブートローダーもいるから
エリア節約にもならないし。フラグ取得と分岐命令の実行時間も惜しいほどタイムクリティカルなプログラム?


785 :774ワット発電中さん:2009/06/29(月) 10:23:45 ID:oxc9nwvj
>>784
「過去のファームをお手軽に移植したいから」に1クロック

786 :774ワット発電中さん:2009/06/29(月) 10:46:19 ID:eBcb90ky
はぁ・・・>>780 から口うるさいユーザーにされてしまったよ。
海外で実験してたハズなんだけどな・・・。
まぁもう見るだけにしとくよ。>>780みたいなのがうるさいから。

787 :774ワット発電中さん:2009/06/29(月) 10:52:48 ID:XDkKjDRr
>>786
悪意はないだろうからキニスルナ

788 :774ワット発電中さん:2009/06/29(月) 11:05:58 ID:wgxQlYJL
>>783
部品メーカーが主導権を握っていれば必要以上に高価なパーツを使わざるを得ないけど、
多品種少量生産で低価格化に対抗する動きも出てるから再び部品メーカーが主導権を握る市場も出てくるかもね。

789 :774ワット発電中さん:2009/06/29(月) 11:40:55 ID:y6yLQpRy

>>786
多分読み違えてると思うけど


国内は(>779みたいな)うるさい大口ユーザさんが評価をしてツッコミ


国内はうるさい大口ユーザさんが>779(のサイト)みたいな評価をしてツッコミ

790 :774ワット発電中さん:2009/06/29(月) 15:03:34 ID:HdrHbVrB
電々公社うんぬんは事実だな。

50年代から60年代はNHK規格が強くて
真空管やトランスは色や形まで指定されていたもんな。

70年代から80年代は電々公社規格が幅を効かせていた。
コネクタや、8インチフロッピまで
「この規格に達していない日本製品はゴミ」と言わんばかりに
オーバースペックを要求していたんだよね。

そのおかげもあって日本製品は外国でも売れた。
アメリカじゃMILスペックは特注品扱いだが、日本じゃ同じ品質のモノが民生品だったわけで。

今は品質より価格なんだよね。
技術立国なんて遠い昔の話だわな。

791 :774ワット発電中さん:2009/06/29(月) 15:12:56 ID:oxc9nwvj
>>790
たぶん、「明文化されていないスペック」に対する考え方の違いも一因じゃないかと思う。
昔は、明文化されていない場合は、使い手(客先)の有利になるように取り計らうとか、
いわゆる常識論が幅を利かせていたのに、最近は、明文化されていない場合は、明示
しない方が悪い。「こっちは仕様書をクリアするものを出したんだから文句言うな」的になっ
ているんじゃないかな・・・
もちろん、それも正解ではあるんだろうけど、なんかちょっと違うような気もするし、技術者
の「こだわり」が薄れてきている原因でもあるんじゃないかな・・・


792 :774ワット発電中さん:2009/06/29(月) 19:15:18 ID:82JjJ3xT
フラッシュメモリは書き込みを繰り返すことにより絶縁層が劣化していき、
電子が漏れやすくなる。つまり、保持期間が徐々に短くなっていき、保証値を
下回った回数が寿命となる。

連続書き込みテストだとエラーになった時点で寿命はとうの昔に過ぎているわけ。
だから得られた結果には意味なんてないな。

793 :774ワット発電中さん:2009/06/29(月) 20:07:21 ID:HdrHbVrB
でもある程度は性能の比較ができるんじゃね?
すぐにベリファイエラーが出るようなら、そんなメモリは保持期間もたかが知れている。

って、本題に戻るけど

外部EEPROMの書き換えならわかるけど、内部FLASHメモリを自己書き換えする目的って何?
秘匿性を上げるために製品を開けたら自己破壊とかかね?

万が一可能だとしてそんなトラップ作ったら、ある意味、自爆製品にならないか?

794 :774ワット発電中さん:2009/06/29(月) 20:23:47 ID:VupF5NM1
>>793
フラッシュ書き換えの目的…
普通に考えるなら、客先でバグ有りファームをアップデートさせる為、とかじゃね?

795 :774ワット発電中さん:2009/06/29(月) 20:36:22 ID:HdrHbVrB
フィールドサービスが目的なら
何のためのISPなんだよと

796 :774ワット発電中さん:2009/06/29(月) 20:37:04 ID:wgxQlYJL
邪悪な悪寒

797 :774ワット発電中さん:2009/06/29(月) 20:43:57 ID:cYshpsAL
CPU 単品。フラッシュメモリー (プログラム ROM) なんて考慮外だろ。

798 :774ワット発電中さん:2009/06/29(月) 21:01:05 ID:oxc9nwvj
今月のエレキジャックの「Arduino活用」は、かなり何だ・・・
電子工作ってより、木工+酒密造の方法というか・・・


799 :774ワット発電中さん:2009/06/29(月) 22:26:43 ID:twz4Gn1O
>>793
実はEEPROMというのは例えで、
最終的にはネットワークからアップデートするつもりです。
ノイマン型のマイコンでは実績があるので
性能的には十分な安いAVRに置き換えてできればと。
もし寿命で書き換えに失敗したらMCUまたは本体を交換すりゃいいし。


800 :774ワット発電中さん:2009/06/29(月) 22:39:47 ID:HdrHbVrB
それならもう1個書き換え制御専用AVRを載せてやればいいね
書き換え失敗もネット経由で把握できるし。

801 :774ワット発電中さん:2009/06/29(月) 22:43:43 ID:64ILiM5f
>>799
なら最初からそういえば良いのにと思ってしまう。


802 :774ワット発電中さん:2009/06/29(月) 23:05:49 ID:35RCrHeQ
なんと!衝撃の事実!!
AVRは非ノイマンだった!

おっさんしか知らないかもしれんがIMPPは面白そうだったよね。
今の時代に作っていればGPUとして生き残れたかも、とか思ってしまう。
結局、指紋照合とかしょぼいアプリを残して逝ってしまわれたのだけど。

803 :774ワット発電中さん:2009/06/29(月) 23:22:15 ID:FSlYCJSU
ヒューリスティックで行こうぜ

804 :774ワット発電中さん:2009/06/30(火) 00:11:47 ID:MqGFbTBy
>>799
そういう使い方なら自己書き換えでできるよ。
http://www.ethernut.de/en/eboot/index.html
ノイマン型で実績あるなら簡単に作れんじゃね?

あと、ファームアップデートなら1万回超えるわけないから気にしなくて良いと思うけど。


805 :774ワット発電中さん:2009/06/30(火) 08:28:54 ID:im8t4okX
>>799
実は繋いでみた、実はeepromは例え。
もう死んでくれる?

806 :774ワット発電中さん:2009/06/30(火) 08:36:22 ID:jmN8rrV/
ノイマン型じゃないマイコンって何があるの?

807 :774ワット発電中さん:2009/06/30(火) 08:51:44 ID:nuHzKe7g
ハーバード型アーキテクチャを厳密な意味でのノイマン型に含めない、ってのは割と普通。

808 :774ワット発電中さん:2009/06/30(火) 08:57:09 ID:jmN8rrV/
>>807
ほほー
ほとんどのマイコンはハーバード型なんですね


809 :774ワット発電中さん:2009/06/30(火) 09:31:31 ID:JjCgJHcQ
ImPPって・・・

ttp://www.st.rim.or.jp/~nkomatsu/nec/uPD7281.html

何メガで動いてるんだろ?

810 :774ワット発電中さん:2009/06/30(火) 17:46:12 ID:iX5bCTNt
「日本の技術力」マンセーは気持ち悪い
まるでそれが自分の成果であるかのような日本人の態度には反吐が出る

そういった考えの裏返しとして、
「(アフリカなどの途上国の)土人にはまともな経済運営ができないw」
など腑抜けたことを平然と言う

笑わせるな、10年以上デフレが続く日本の経済運営のどこがうまくいっているのか
挙句、小泉に扇動されて、デフレ下において構造改革なるもので
景気を良くしようなどという電波を発するのが日本人なんだよ

(なお、サッチャー時代のイギリスのように高インフレと高失業率が並存する
 所謂「イギリス病」への対処としては、構造改革は全く正しい)

クルーグマンのような学者から見てみれば、日本人もまた、
まともな経済運営能力のない「土人」そのものだろう

811 :774ワット発電中さん:2009/06/30(火) 17:48:43 ID:jmN8rrV/
日本は資源が無いんだから技術力マンセーすべき

812 :774ワット発電中さん:2009/06/30(火) 18:35:57 ID:I/oWSzTv
すげー景気良かったんだぜ、こないだまで

813 :774ワット発電中さん:2009/06/30(火) 18:42:47 ID:mrZSo25r
傲らず技術力重視>技術力マンセー>>>>技術力軽視

814 :774ワット発電中さん:2009/06/30(火) 18:50:54 ID:im8t4okX
雑談かよw

815 :774ワット発電中さん:2009/06/30(火) 19:40:01 ID:csEh91+C
TWIのエラー処理まんどくせ

816 :774ワット発電中さん:2009/06/30(火) 20:11:22 ID:Ii4ptvib
>>807
厳密な、で良い? 言い直す?


817 :774ワット発電中さん:2009/06/30(火) 21:30:49 ID:s60WmMiX
ハーバード“型”アーキテクチャってのは、ちょっと引っ掛かるな。
AVR が非ノイマン型コンピュータなわけでもないし。

818 :774ワット発電中さん:2009/06/30(火) 23:03:28 ID:Oyh/Gdtm
>>810
よく読みなおせよ。「日本の技術力マンセー」なんて誰が言ってるよ?朝鮮人さん。
マンセーって朝鮮語だろ。バレバレなんだよ。


819 :774ワット発電中さん:2009/07/01(水) 01:04:50 ID:MJPEb4To
19.6608MHzのクリスタルって、
AVRで使う上で20MHzのと比べて何かメリットあるでしょうか?
(昔騙されて買っちゃった)
1秒数える時に便利なんだっけ・・?

820 :774ワット発電中さん:2009/07/01(水) 01:18:18 ID:OYWvde0I
300×2^16か…16ビットタイマ持ってれば確かに1秒作るの楽そうだけど

821 :774ワット発電中さん:2009/07/01(水) 01:25:09 ID:d8/PziRe
9600bpsとか?

822 :774ワット発電中さん:2009/07/01(水) 01:34:32 ID:MJPEb4To
AVRの場合タイマーはCTCがあるから関係なさそうですよね・・
シリアル通信なのかな

823 :774ワット発電中さん:2009/07/01(水) 03:30:30 ID:bmp27Cnf
ボーレートで昔をふと思い出した。
BUSY。。ムカ。。BUSY。。。ムカ!。。。BUSY。。ヌガー!!
RING。。RING。。人が繋げようとしてる時にかけてくんなよヴォゲ
CONNECT 1200/REL。。キタコレ! MLINKでダウンすっかな。X-MODEMがいいんかな。

同じ世代の人いるか?

824 :774ワット発電中さん:2009/07/01(水) 03:37:17 ID:4H4N/Kc6
2400bps超高速モデム登場の時代かな?

825 :774ワット発電中さん:2009/07/01(水) 03:44:56 ID:D0wDRao8
>>819
むしろ20MHzなんか使わないで19.6608MHzばかり使ってるが……。
割り切りやすいし色々と便利だし。

826 :774ワット発電中さん:2009/07/01(水) 04:55:48 ID:bmp27Cnf
>>824
うむ。ちみもおやぢと見た。V.42bisやらLAPM-Vとか文字を見ると懐かしくてね

>>825
たしかに色々と便利かもしれない。多い日の夜も安心だし

827 :774ワット発電中さん:2009/07/01(水) 12:16:55 ID:p3S5g7HZ
AVRをはじめて3日目。
外部クロックで動かしたいと思って、ヒューズビットを変更。
動かなくなった。

高電圧プログラミングというのをしないとリセットできないとは
解ったけど、高電圧プログラミングは敷居が高い。

↓ちょっと俺には無理。
http://www.youtube.com/watch?v=EHOxc-FvaUs

どうしたらいいでしょう。

828 :774ワット発電中さん:2009/07/01(水) 12:22:41 ID:TuDiqkID
>>827
チップ買え ・・・ つーか、予備ぐらい用意して置くもんだ

829 :774ワット発電中さん:2009/07/01(水) 12:32:29 ID:p3S5g7HZ
>>828

いや、初心者なのはわかっているからATtiny2313を3個買った。
1個くらいは安いし痛くはないんだけど、リセットできるだけのスキルはほしい。


830 :774ワット発電中さん:2009/07/01(水) 12:47:07 ID:u7bBKFUP
>>827

>↓ちょっと俺には無理。
>http://www.youtube.com/watch?v=EHOxc-FvaUs

俺はスライダック持ってるからできないことは、ない。

831 :774ワット発電中さん:2009/07/01(水) 13:40:02 ID:+B+JoNXb
スレで何度か出てるけど「ATtiny2313リセッター」でググる。

832 :774ワット発電中さん:2009/07/01(水) 14:07:48 ID:bmp27Cnf
お釈迦になる時ってほんと連続発生するよね
リセッターで9割は復活させたけどそのうち何個かは治らず。
数があるならリセッターを作る価値はあるが、数個のtiny2313でやるのは手間が(ry
ブレッドボードでせずに最初から基板で作っておくべきだったのかも orz

833 :774ワット発電中さん:2009/07/01(水) 14:54:32 ID:EY1zZh1M
秋月にmega168p入ってるぞ
やったね!

834 :774ワット発電中さん:2009/07/01(水) 15:09:59 ID:0C5Cl7t3
>>833
俺も昨日気がついて3個注文した(;´Д`)ハァハァ
これでメモリ不足のmega88pともおさらば(∩´∀`)∩

835 :774ワット発電中さん:2009/07/01(水) 15:16:46 ID:skV0PEMB
328p入らないかな

836 :774ワット発電中さん:2009/07/01(水) 18:47:27 ID:uzVzIbVV
メモリ不足と言えば、Attiny13でbascom-AVRとの組み合わせなのですが、
1バイトの変数を1つ宣言しただけで、Out of sram spaceと表示されます。
これはバグなのでしょうか。

837 :774ワット発電中さん:2009/07/01(水) 20:28:57 ID:X1hWCJye
>>836
1バイトの変数も宣言しないプログラムを作って、(PORTB=PORTB+1;だけとか)
出力コードをディスアセンブルしたらわかるかも。


838 :774ワット発電中さん:2009/07/01(水) 20:50:19 ID:MP/L+dWd
>>833 ああ、もう少し早くわかってれば、注文できたのに。
でも、mega88pで半分くらいしかFLASH使わない漏れには
必要ないかも。

839 :774ワット発電中さん:2009/07/01(水) 21:19:58 ID:bMrJWXWR
秋月に流れてきたということはディスコンの予兆でしか

840 :774ワット発電中さん:2009/07/01(水) 21:50:49 ID:jZbWj5rA
秋月つながりでちょっと質問があります。
秋月のSUNLINK製20x4行バックライト付き液晶のバックライトを
1,2ピンからの分流でなくて、独自に電流を流して点灯させたいと思っているんですが、
あのバックライトは最大でどれくらい流せるんでしょうか?

841 :774ワット発電中さん:2009/07/01(水) 22:01:03 ID:0C5Cl7t3
>>839
でしょうなぁ。PDFマニュアルにも新規で設計するなって書いていた希ガス。
後継ってもうでてるのかねぇ。


842 :774ワット発電中さん:2009/07/01(水) 22:56:40 ID:KOGye/D+
>841
>11で既出。
低電圧仕様(1.8V〜)と高速仕様(〜20MHz)が統合したので
数買っても使いまわしが楽になったかも。


843 :774ワット発電中さん:2009/07/01(水) 23:42:52 ID:d3lvJSf7
ATmega168PA ってのが後継みたいね。


844 :774ワット発電中さん:2009/07/02(木) 06:15:17 ID:G0ecuDeV
>>840
どんどん電流上げていって異臭or暗くなったor壊れた値を覚えておいて
その80%くらいの電流で良いのでは?一つは勉強用ってことで。
絶対最大値近辺流してると寿命来るの早いけどw

845 :774ワット発電中さん:2009/07/03(金) 00:24:40 ID:EaqzoOEx
キャリーを含めた加算で質問です。
ldi r22, 10
add r21, r22
rol r20


これに相当するコードを即値減算のsubiに置き換えたものにできるでしょうか?
即値加算のaddiがあれば素直に
addi r21, 10
rol r20

のように書くのですが、
subi r21, 0xf6 ; -10
rol r20

としても結果が違ってしまいます。

846 :774ワット発電中さん:2009/07/03(金) 00:35:16 ID:5yqao1ys
>>845
subiで出るのはキャリーじゃなくてボロー、だからじゃね?

847 :774ワット発電中さん:2009/07/03(金) 01:08:08 ID:EaqzoOEx
頭痛くなってきました
1ワード短くしたいだけなんです
すいません
つまり2の補数とか使わないとだめなんでしょうか?
加工が必要だとするとあまり意味がないというか

848 :774ワット発電中さん:2009/07/03(金) 01:19:45 ID:ry8/mxwc
avr addi の検索結果 約 28,900 件中 1 - 100 件目 (0.46 秒)

849 :774ワット発電中さん:2009/07/03(金) 09:06:15 ID:iLNixHJT
>>845
rolの意味がよく分からないが、r20にそれまであった値が左シフトされるのは構わないのか?
それともr20は事前にゼロクリアされているのが前提か?(r20:r21=r20+10がしたいのか??)
もしそうなら、16bit数値はAVRの16bit扱いにあわせて、リトルエンディアンに統一した方がいいよ。
下位8bitをr20、上位8bitをr21のように。

目的が分からないとちょっとこめんとしずらい。

てもって、r20の8bit数値に10をくわえた値をr20:r21に得ると考えれば、

くわえる数字が63以下なら、adiwを使う手がある。r21初期化分を除き1命令2クロック。
clr r21
adiw r20,10

引き算ならこんな手も。+256-(256-10)する。r21初期化分を除き2命令2クロック。
ldi r21,1
subi r20,-10
sbci r21,0


850 :774ワット発電中さん:2009/07/03(金) 16:24:42 ID:iLNixHJT
あ、adiwはr20には使えなかった・・・r24以降の偶数レジスタにのみ使用可能。
http://reef.path.ne.jp/~hero/pdf/AVRinst.pdf

851 :774ワット発電中さん:2009/07/03(金) 18:01:12 ID:EaqzoOEx
例が悪かったですね
レジスタは適当なので御気になさらずに
subiではキャリー演算の置き換えはできない
ということが判っただけで収穫でした
特定のadd使ってるコードの置き換え前提の話だったので
もう気が済みました
ありがとうございました

852 :774ワット発電中さん:2009/07/03(金) 21:29:29 ID:5yqao1ys
例の定数だと、addの場合はR>=246ならCが立つ(解が256を超える為)
subならR<246ならCが立つ(解が0より小さくなる為)
つまりCは論理否定の関係になってる。

だからbrcs/brccが続けば入れかえれば済むし、
rolなんかで集めるなら最後にcomしてみたり。
上手く使うのだ。

853 :774ワット発電中さん:2009/07/03(金) 23:24:20 ID:sWg2+lIN
>>851


854 :774ワット発電中さん:2009/07/04(土) 06:58:50 ID:7jcrRweg
mega8515なんですが、AD変換機能って付いていますか?
データシートのピン配置見ると、PA0(AD0)と書いてあり、
AD変換機能があるようにも取れるのですが。
初心者ですみません。

855 :774ワット発電中さん:2009/07/04(土) 07:42:59 ID:yj4xCHRd
データシートをよく読めば判る事ですが
残念ながらアナログはコンパレータしかありません
ADというのはアドレスバスのことです


856 :774ワット発電中さん:2009/07/04(土) 09:35:00 ID:NEeaGsPO
>>854
AD変換ピンはADCnと表記されます。
どうしても8515でやりたいなら、こちらで。
おおざっぱな用途なら、案外使えるし、ADCより楽w
ttp://elm-chan.org/docs/avr/avradc_j.html


857 :774ワット発電中さん:2009/07/04(土) 11:00:49 ID:7jcrRweg
>>855
>>854
すみません、こんな初心者なのにちゃんと答えていただいて恐れ入ります。
854さんのリンク先の方法を確認してみます。


858 :774ワット発電中さん:2009/07/04(土) 11:01:54 ID:7jcrRweg
レス消費すみません、854ではなく856さんの間違いでした。


859 :774ワット発電中さん:2009/07/05(日) 00:20:18 ID:P75pnsDn
電子工作初心者です。
AVRISP Mk2で簡単なLED点滅のプログラムの書き込みに成功したのですが、
AVR Studioのアップデート(4.16)とAVRISPファームウェアの更新(01.0C)を行ったところ、
Programボタンを押した際やヒューズビット読み取り、シグネチャ読み取り等の際に
Entering programming mode.. FAILED!
というエラーが出るようになってしまいました。

エラーの際に、ピンの接続が合っているか、またISPクロックの周波数が
CPUの1/4以下になっているか確認すべし、と表示されましたが、
配線は以前動いたときと全く同じ配線で、問題があるようには見えず、
ISPクロックはいろいろな値に変えてみましたが、効果がありませんでした。

使用していたのはtiny26ですが、他に13と2313も試してみたところ同じ結果でした。
何か思い当たる点があればアドバイスお願いします。

860 :774ワット発電中さん:2009/07/05(日) 00:48:16 ID:fYwicpt/
>>859
一つなら間違って外部クロックに変えたんじゃね?って言おうと思ったが。
ファームウェアのダウングレードできるならやってみては?

861 :774ワット発電中さん:2009/07/05(日) 08:50:52 ID:t2fj6p06
AVRISP mk2は付属ソフトも含めてVistaに対応していますでしょうか?

862 :774ワット発電中さん:2009/07/05(日) 09:56:43 ID:fYwicpt/
>>861
ヒント)メーカーに問い合わせ

863 :774ワット発電中さん:2009/07/05(日) 10:14:07 ID:dpHwOevu
>>859
私はヒューズビットいじくって同じ表示が出ましたよ >>860 さんの
内部/外部クロックかリセットピンをいじるとそうなりました、ただAVR Studioは4.13です。

864 :774ワット発電中さん:2009/07/05(日) 10:41:30 ID:t2fj6p06
だめもとで買ってみるかな

865 :774ワット発電中さん:2009/07/05(日) 11:50:12 ID:fYwicpt/
>>863
フルスイングクリスタルかセラロック付けてみてもだめなら・・・
って全部の石がそうなるならライター側か電源周り?

>>864
一応聞いとけってw 動かん買ったら文句いえるだろ?
正式対応じゃなければここで動いたっていう人いても
環境違うと動かねーかもしれないし

866 :774ワット発電中さん:2009/07/05(日) 13:00:37 ID:bhpjKxGg
xmega欲しい

867 :774ワット発電中さん:2009/07/05(日) 21:22:18 ID:0DPGAlOC
>>861
正式にはわからないけど、うちではまったく問題なく動いてるよ。

ちなみにvistaでusbシリアルを通した自作書き込みケーブルが不安定でどうしようもなくて買った。今は非常に満足してる。

868 :774ワット発電中さん:2009/07/05(日) 21:31:20 ID:3pVi1+7x
wiki落ちてる?

869 :774ワット発電中さん:2009/07/06(月) 14:22:14 ID:Wi1FTdHT
wikiって聞くとハワイに行きたく(ry

870 :774ワット発電中さん:2009/07/07(火) 17:39:42 ID:aZrh7PPA
AVRISP mk2って電源供給できないってマジ?

871 :774ワット発電中さん:2009/07/07(火) 19:11:47 ID:pf8c9IJF
まじ!



ってか、ライターから電力供給する意味がわからん
mk1 もできないだろ

872 :774ワット発電中さん:2009/07/07(火) 20:56:05 ID:CgvDxwrl
電池をつなげればいいと思う
ところで電池のマイナスとライタの接地線は接続してもいいの?

873 :774ワット発電中さん:2009/07/07(火) 20:59:43 ID:aZrh7PPA
電池じゃ5Vにならないお

874 :774ワット発電中さん:2009/07/07(火) 21:46:16 ID:Qxz0G4n/
USBケーブルを改造して、5Vを取り出せばいいんじゃないかな?
途中で、電源の線だけ抜き出してみたり…

875 :774ワット発電中さん:2009/07/07(火) 21:50:36 ID:3OntUVL+
5Vの電池を使えばいいんじゃね。

876 :774ワット発電中さん:2009/07/07(火) 21:53:26 ID:3YvK4QFm
USBポート出力のバッテリー
ttp://jp.sanyo.com/eneloop/lineup/booster.html

ちょっとした実験には便利

877 :774ワット発電中さん:2009/07/07(火) 21:58:00 ID:aZrh7PPA
まあArduinoがあるんでそこから5Vは取れるんですがね

878 :774ワット発電中さん:2009/07/07(火) 22:01:15 ID:CgvDxwrl
そうだ、AVRで昇圧回路を作ればいいんだよ

879 :774ワット発電中さん:2009/07/08(水) 00:16:33 ID:y3F/lYmC
なんでAE-UM232Rが話題に出ないんだろう
ライタにもなるしそのままシリアルでデバッグできるし5Vも3.3Vも取れるし・・
純正ライタいらないじゃん

もしかしてタブーだったり?

880 :774ワット発電中さん:2009/07/08(水) 02:04:21 ID:B93NqbTS
>>879
おれもそれつかってるよ。
でも、さすがに3.3Vを取り出すのはキツイ気がする。
FT232内蔵のレギュレータじゃ、ターゲットの回路によっては燃えかねないと思う。

881 :774ワット発電中さん:2009/07/08(水) 07:31:38 ID:l1HqpWzN
http://misumi.sakura.ne.jp/blog/archives/2008/08/index.html
これっすか?
いいっすね。

でも
>細かい書き込み手順は、その3で。
が無いお

882 :774ワット発電中さん:2009/07/08(水) 09:06:39 ID:0Y1+0GGp
>>880
50mAまでとれるから結構重宝してるよ

883 :774ワット発電中さん:2009/07/08(水) 18:03:41 ID:hCH1yZGU
usbaspxとhidaspxがあれば十分です

884 :774ワット発電中さん:2009/07/08(水) 19:36:56 ID:1vV+x6iP
趣味の工作なんだけど、相次ぐ設変によりなかなか完成しない_| ̄|○

885 :774ワット発電中さん:2009/07/08(水) 21:35:34 ID:3gcD444V
「やってしまった」って状態だと思います。
ちょっと確認して頂けませんか?
新品のATmega88pをchanさんのcomポート制御ライタで
>avrsp -rf
すると、Highのところが
High:0111 1111
と出力されました。

次にためしに出力された値と同じ値を書き込もうかなと思って、
>avrsp -FH01111111
としました。
すると、Device Connection Failedになってしまいました。

今のところパラレルライタを作らないといけないなと思っていますが、
他の対処策はありますか?
それとavrsp -FH0111111はどこが間違っていたんでしょうか?

886 :774ワット発電中さん:2009/07/08(水) 21:37:15 ID:3gcD444V
>>885
パラレルじゃなくて、高電圧プログラミングするライタですかね

887 :774ワット発電中さん:2009/07/08(水) 21:58:39 ID:VUzxPoHt
mega88 リセッター で検索ですかね

888 :774ワット発電中さん:2009/07/08(水) 22:02:18 ID:0Y1+0GGp
>>885
それおかしくないか?mega88pは出荷時
Ext: 1111 1111
High: 1101 1111
Low: 0110 0010
になってるよ。だいたいFH=0111 1111じゃ、外部リセット端子も無効だわ、
シリアルプログラムも無効だわで、書込みそのものができないはずなんだけど。

avrspだったら-Dn (nは5ぐらいから適当に調整して)あたりのオプションを足して試して見れば?

889 :774ワット発電中さん:2009/07/08(水) 22:17:06 ID:3gcD444V
>>887
ttp://zampoh.cocolog-nifty.com/photos/uncategorized/2008/09/13/mega168reset_sch.png
これですかね。12Vは可変定電圧電源から取ることにしてブレッドボードで組んじゃおうかなと思います。

>>888
最初にリダイレクトして保存したファイルをそのまま載せてみます。
Low: 01100010
ウウウウタチチチトト CKSEL[3:0] Clock source selection
ウウタチトト SUT[1:0] Startup time
ウタトト CKOUT (0:Output system clock on the CLKO pin)
タトト CKDIV8 Clock division ratio (1:1/1, 0:1/8)

High:11-11111
ウウウウウタチチトト BODLEVEL[2:0] (111:Disabled, 110:1.8V, 101:2.7V, 100:4.3V)
ウウウウタトト EESAVE (Retain EEPROM at chip erase 1:No, 0:Yes)
ウウウタトト WDTON (1:WDT normal, 0:WDT always on)
ウウタトト SPIEN (1:Disable ISP, 0:Enable ISP) *Available only in Parallel mode
ウタトト DWEN (On-Chip debugging via RESET pin 1:Disable, 0:Enable)
タトト RSTDISBL (RESET pin 1:Enable, 0:Disable(PC6))

Ext: -----001
ウウタトト BOOTRST *Refer to data sheet
タチトト BOOTSZ[1:0] *Refer to data sheet

Cal: 168


890 :774ワット発電中さん:2009/07/08(水) 22:25:15 ID:0Y1+0GGp
>>889
Hiはデータシートどおり 11-1 1111 (SPENはシリアルプログラムできないから-)になってるじゃん。
なんで>885みたいに 0111 1111だと判断したの?

あと、>888のExt.は328pのだったわ・・・88pなら1111 1001なので>889であってる。
いずれにしても、avrsp -FH01111111を正常に書き込んじゃったのならシリアルプログラミングは無理
(Reset端子が一般I/Oピンになっているので、外部リセットすら無理)

891 :774ワット発電中さん:2009/07/08(水) 22:30:20 ID:3gcD444V
>>890
申し訳ありませんが、
仮にデフォルトのHigh:11-11111 を正しく再書きこみするとしたら
avrspでどう指定するんでしょうか?

892 :774ワット発電中さん:2009/07/08(水) 22:38:05 ID:VUzxPoHt
>>889
一発 コマンド プロンプトからUSと叩く

893 :774ワット発電中さん:2009/07/08(水) 22:38:50 ID:0Y1+0GGp
>>891
avrsp -fh11011111
通信が不安定とか上手くいかない場合
avrsp -d10 -fh11011111
とか-dオプションで調整。

あと、fuse_j.txtをfuse.txtに変更(上書き)すれば、文字化けがなくなるよ
(俺は逆にusコマンド打ってusモードにしてから使っているけど)


894 :774ワット発電中さん:2009/07/08(水) 23:11:20 ID:3gcD444V
>>893
ハイフンは0と読むべきだったんですね
>>892も含め文字化け対策の件も理解しました。

895 :774ワット発電中さん:2009/07/08(水) 23:17:10 ID:0Y1+0GGp
>>894
> ハイフンは0と読むべきだったんですね

ちがう。データシートのデフォルトにあわせるってこと。
データシートはavrspでは'-'になっている部分も0/1の別が載っている。
あとAVRのFuseビットは0がprogrammed, 1がun-programmedだから気をつけてな。

896 :774ワット発電中さん:2009/07/08(水) 23:45:32 ID:/rPshRlp
ChanさんのCOMポート接続ライタを作ってみたのですがうまく動きません
FreeDOSを使って
A:\> avrss /r
とやってみると
Device is not working or not supported device <FF,FF,FF>
と出ます。
ライタの配線はあっているはずなのですが……

ターゲットのATTiny2313は秋月電子で買ったものなのですが、デフォルトのヒューズビットは
内部発振になっていますよね?
もし外部発振なら手持ちのクリスタルが12MHzと16MHzしかないのですが大丈夫でしょうか

897 :774ワット発電中さん:2009/07/09(木) 00:11:37 ID:KyYENUjU
>>895
ありがとうございます。
3行ともとても重要な点ですね。

898 :774ワット発電中さん:2009/07/09(木) 00:24:13 ID:a6qxRRjY
>>881
いや、俺はこっちのはなしをしてた。
http://www.geocities.jp/arduino_diecimila/avr-writer/index.html
ターゲットが内蔵クロックなら、セラロックすら要らない。

899 :774ワット発電中さん:2009/07/09(木) 08:55:19 ID:VPWlu6c5
これをもってるんですが、これはAVRライタになりますかねー
http://www.switch-science.com/products/detail.php?product_id=164

ピンは
DTR
RXI
TXO
5V
CTS
GND
となってるんですが。
これでTiny2313に書き込めたらなー



900 :774ワット発電中さん:2009/07/09(木) 09:33:01 ID:KxwtKyno
>>896
使用しているCOMポート(デフォルトはCOM0)があっているか?
使っているPCでCOMポートをアクティブにしているか(BIOSやデバイスマネージャで確認)
ところで、avrspならWindows2000以降のコマンドプロンプトからも対応可能なのに、
なぜにavrssを使ってるの?


901 :774ワット発電中さん:2009/07/09(木) 09:38:09 ID:rIe7g6kd
RTSが出てないから無理だねー
RSTも出てると便利
秋月で買い直した方がいいよ

902 :774ワット発電中さん:2009/07/09(木) 09:40:23 ID:rIe7g6kd
>>899へのレスね

903 :774ワット発電中さん:2009/07/09(木) 09:43:20 ID:VPWlu6c5
>>901
残念。
どうせ買うならAVRISP mk2買うことにしますー

904 :774ワット発電中さん:2009/07/09(木) 09:51:08 ID:rIe7g6kd
そんなの買っても意味ないぞー

905 :774ワット発電中さん:2009/07/09(木) 09:54:37 ID:VPWlu6c5
>>904
マ、マジっすか?

906 :774ワット発電中さん:2009/07/09(木) 09:55:58 ID:rIe7g6kd
あ、どうせ無駄な買い物するならSTK500の方がいいと思う

907 :774ワット発電中さん:2009/07/09(木) 09:56:56 ID:rIe7g6kd
>>905
純正ってだけで他のと一緒のただのライタだよ
デバッグすらできない

908 :774ワット発電中さん:2009/07/09(木) 10:00:53 ID:VPWlu6c5
>>907
そうなんですか。
でもAVR Studioから直接書き込めるんですよね?
純正ならではですよね?

909 :774ワット発電中さん:2009/07/09(木) 10:11:42 ID:rIe7g6kd
その辺は好みだからご自分で判断を
おれはいちいちAVR Studio起動してポチポチやんの面倒だし
コマンドラインからコピペで十分だと思う


910 :774ワット発電中さん:2009/07/09(木) 11:47:05 ID:VPWlu6c5
>>909
AE-UM232R注文しました!

911 :774ワット発電中さん:2009/07/09(木) 13:17:39 ID:7+kla0eY
チップ以外純正なんか使ってない俺

912 :774ワット発電中さん:2009/07/09(木) 15:08:35 ID:vmULS5mW
>>896
900にも書かれてますが、COMポートはあってますか?
もしや25ピンのRSケーブルをパラレルポートに刺してないよね?
あとRSケーブルが長すぎるとか、質が悪いとか



913 :774ワット発電中さん:2009/07/09(木) 15:49:16 ID:VPWlu6c5
ATTiny2313でソフトウェアシリアル通信したいと思っているんですが
良いライブラリありますでしょうか?
ArduinoではNewSoftSerialを使っていたのですが・・・


914 :774ワット発電中さん:2009/07/09(木) 15:56:55 ID:k3/m9nam
タイマーとカウンタの併用って可能でしょうか?
って、試してみろって言われそうですね・・・

915 :774ワット発電中さん:2009/07/09(木) 16:13:16 ID:jqiMNFpK
新しく買うなら、FT2232D USB−シリアル2ch変換モジュールの方がよさげじゃね?
そのまま使えるかどうかは知らないけど、原理的には動きそう。


916 :774ワット発電中さん:2009/07/09(木) 16:30:00 ID:ieeEAuyW
FT2232もBitBangModeを持っているので基本的に動くと思う。


917 :774ワット発電中さん:2009/07/09(木) 17:29:22 ID:x0oar4iS
>>913
http://elm-chan.org/index_j.html
ELM氏の秘蔵のテクニカルノートの中のやつとか

アセンブラで書いてあるけど、cから呼び出せるように書いてある

918 :774ワット発電中さん:2009/07/09(木) 17:43:26 ID:VPWlu6c5
>>917
ありがとうございます。
何やら勉強になりそうなサイトです。読んでみます。

919 :897:2009/07/10(金) 00:04:06 ID:KyYENUjU
おかげさまでリセットを無事終えました。
はじめに12Vの制御に2SC1815を使ったんですが、どうも抵抗値とかが
合わないようなので、手動でON,OFFしました。どうせブレッドボード上なんだから
最初からそうやれば良かったと思います。

920 :774ワット発電中さん:2009/07/10(金) 03:13:28 ID:pGAOdvql
>>915
FT2232にはSPIモードがあるらしいから、うまく使えばBitBangより効率よくできそう。
ただ、シリアルを2ポートつけても、俺には必要がないんだよな…
FT232と、外形とピンがコンパチで、機能が2232並みのがほしい。

921 :774ワット発電中さん:2009/07/10(金) 03:26:51 ID:B/Kurr0L
40ピンはちょっと長すぎる

922 :774ワット発電中さん:2009/07/10(金) 08:21:50 ID:G6L6MOSa
ATTINY2313のヒューズビットを -fL11100100にすると
外部発振子なしで8Mhzで動作してくれるんでしょうか?

923 :774ワット発電中さん:2009/07/10(金) 08:27:27 ID:hxAfiEWO
>>922
RTFM

924 :774ワット発電中さん:2009/07/10(金) 08:46:27 ID:G6L6MOSa
>>923
英語は読めないお

925 :774ワット発電中さん:2009/07/10(金) 09:46:33 ID:iEEd/FT4
>>924
データシートくらい嫁

ATTINY2313 日本語とかでググレカス

926 :774ワット発電中さん:2009/07/10(金) 11:00:45 ID:DFykjunm
ATTINY2313 を使って正弦波を作りたいと思ってます

とりあえず sin テーブルを用意してラダー抵抗回路で...とやってるのですが、正確に 120Hz と 300Hz を作るにはどうすればよいでしょう?
gcc で組んでるのですが、任意の周波数を作り出す方法が思いつきません

927 :774ワット発電中さん:2009/07/10(金) 11:27:21 ID:lH4IBt0C
>>926
出力=A*sin(2πft)を地でいけばいいんじゃないの?
sinはいちいち計算したら間に合わないので、テーブルを用意して。

矩形波を高次ローパスフィルターに通すという手もある。


928 :774ワット発電中さん:2009/07/10(金) 14:12:35 ID:eryS9J1G
>>926
有る程度正確に作りたいなら個体差とかも出るからオシロスコープは必要だね。
ただ温度でも変わるだろうけど。

929 :774ワット発電中さん:2009/07/10(金) 14:27:46 ID:pgR4r3OD
>>921
余分は切ればいいよ。


930 :774ワット発電中さん:2009/07/10(金) 15:37:05 ID:G6L6MOSa
どなたかArduinoのanalogRead()をWinAVRに移植してくれませんか?

931 :774ワット発電中さん:2009/07/10(金) 15:40:37 ID:lH4IBt0C
>>930
ADC読み取りのことか?
探せばいくらでも例題あるんじゃないか?
というかほとんどIO操作なんだから、データシートの例題見て自分で作れ・・・


932 :774ワット発電中さん:2009/07/10(金) 15:41:37 ID:s2MQQt2o
>>930
データシートのExample codeそのまんまでいいんじゃないの?

933 :774ワット発電中さん:2009/07/10(金) 15:49:22 ID:G6L6MOSa
ググっても見つからないのですが・・・

934 :774ワット発電中さん:2009/07/10(金) 15:53:46 ID:eryS9J1G
私はArduinoにあるサーボコントロールのが欲しいかも

935 :774ワット発電中さん:2009/07/10(金) 15:53:54 ID:/Tr6l1Hz
>>928
セラロックか水晶使えばいくね?
ってか、周波数カウンタかな?
歪を見たいならオシロが欲しいけど、
歪を測るなら歪率計か。

936 :774ワット発電中さん:2009/07/10(金) 16:06:41 ID:lH4IBt0C
>>933
ググったら山のように出てくる。がんがれ。

937 :774ワット発電中さん:2009/07/10(金) 16:16:36 ID:G6L6MOSa
すばらしいサイトを発見しました。
http://shokai.org/blog/archives/1198



938 :774ワット発電中さん:2009/07/10(金) 19:49:17 ID:NHXCUIhp
>930
Arduinoが呼び出しているgccは最初からWinAVRだ。

939 :774ワット発電中さん:2009/07/10(金) 19:55:18 ID:+Qd0z80j
上のほうに
アセンブラで書いたソースをCから呼び出せるって書いてあったけど
どうやれば良いのかな

940 :774ワット発電中さん:2009/07/10(金) 21:15:49 ID:G6L6MOSa
ATTiny2313にAE-UM232Rから書き込んでLEDチカチカできましたよ。
ちょっと感動。


941 :774ワット発電中さん:2009/07/10(金) 21:26:14 ID:dN6iMUQW
>>939
ABIでぐぐろう

942 :774ワット発電中さん:2009/07/10(金) 22:11:33 ID:+8/ieLJ+
〉〉939
p://avrwiki.jpn.ph/wiki.cgi?page=avrgcc%A4%C7%A5%A2%A5%BB%A5%F3%A5%D6%A5%E9%A4%F2%BB%C8%A4%A6
p://elm-chan.org/docs/avrlib/asm_gcc.html

943 :774ワット発電中さん:2009/07/10(金) 23:13:29 ID:B/Kurr0L
苺ぃぬxでやばいのが売ってるw

組み込みWebサーバーモジュール WIZ200Web
http://strawberry-linux.com/catalog/items?code=36004

もうarduinoとかいらないかも・・・

944 :774ワット発電中さん:2009/07/10(金) 23:17:33 ID:B/Kurr0L
あーでもmega128のクロックは8MHzか。ちょっとおしい。

945 :774ワット発電中さん:2009/07/10(金) 23:35:28 ID:+u0isnmV
年末頃違うモデルが話に出てたね。
今みたら正式オープンしてたみたい。
http://jp.ewiznet.com/index.php


946 :774ワット発電中さん:2009/07/10(金) 23:47:04 ID:B/Kurr0L
web鯖ってだけならmega88クラスでもどうにか作れるけど
素人が手を出しにくいmega128にSRAM32K、FLASH512K増量、
しかもTCP/IPHWスタック付きでこの値段はおいしすぎる。
arduino+ethernet shieldを潰す気満々か。
USBシリアル付けたらソフトウェア資産がほぼそのまま流用できるじゃないか。
ethernet単体モジュールも苺扱いで買いやすくなったけど、
SPIのくせにブレッドボードにそのままさせないのはちょっと残念。

947 :774ワット発電中さん:2009/07/10(金) 23:48:46 ID:6h4pQnKX
>>946
>SPIのくせにブレッドボードにそのままさせないのはちょっと残念。
これは自分もそう思った。1列のピンヘッダ、2個使いとかにしてくれるとありがたいよね。

948 :774ワット発電中さん:2009/07/10(金) 23:49:12 ID:kX12iVd4
>>934
サーボのソース見るとタイマーでやってる。
だから、9pinと10pinでしかあのライブラリ使えなかった。

949 :sage:2009/07/10(金) 23:53:52 ID:vCo1tOqG
ATTINY2313 ってすぐに「ISP MODE ERROR
って出るんですけど。。これって、ヒューズの設定間違えたら出るの?
も〜何個だめにしたことやら。。。

復活するには、高電圧しかないのかな?

950 :774ワット発電中さん:2009/07/10(金) 23:58:10 ID:B/Kurr0L
>>947
長足の10Pピンソケットx4の外側を折り曲げて結線すれば
なんとかなりそうな気がする。

連結フレーム10P(2×5)
http://akizukidenshi.com/catalog/g/gC-02482/

951 :774ワット発電中さん:2009/07/11(土) 00:03:36 ID:C2su8DCC
自分はこういうのの為に2列のピンヘッダを1列x2にするようなの作ってあるが、お前らは作らないのか?

952 :774ワット発電中さん:2009/07/11(土) 00:07:18 ID:QnQtfrF0
950踏んでだので次スレ立てました。

AVRマイコン総合スレ Part15
http://science6.2ch.net/test/read.cgi/denki/1247238097/

953 :774ワット発電中さん:2009/07/11(土) 00:09:12 ID:ADlVbiKS
>>951
今のところ作ってませんです。

>>952



954 :774ワット発電中さん:2009/07/11(土) 00:28:01 ID:QnQtfrF0
>>951
1列x2にしてしまうと場所とりすぎるから、
>>950の連結フレーム外側ピン折り曲げでジャンパ這わすやり方で
できないかと考えてる。
連結フレームの足はブレッドボードに差すと少し浮くぐらい長いから、
折り曲げ精度も必要ないはず。

955 :774ワット発電中さん:2009/07/11(土) 02:33:14 ID:F0spFZbG
>>948
thx! PWMですよねー。これしか方法ないんかなー。。
オシロ見ながら_delay_usやらで10〜20ms周期のパルス作ってやっても
まともに動いてくれずムカっと来てる。

956 :774ワット発電中さん:2009/07/11(土) 05:42:16 ID:IFivSimu
arduinoはWi-shieldやWiflyで遊ぶ時代だろ。
いまさらW5300で有線とかWizもあせってるんだろうね。
安価な無線チップ無いんだろうな。

957 :774ワット発電中さん:2009/07/11(土) 16:26:06 ID:+1XdVFAY
mega164のPWMが動かない(´・ω・`)

958 :859:2009/07/11(土) 22:05:44 ID:q+/M+Bcu
AVRISP mk2で書き込めないと言っていたものですが、
STK500買って試したらISPで書き込めました。
>>865さんの指摘のようにライタが電源周りが怪しいようです。多分電源。
そこら辺はおいおい調べるとして、まずは日曜電子工作を堪能したいと思います。
みなさんありがとうございました。

959 :774ワット発電中さん:2009/07/11(土) 22:35:37 ID:eMi2CSZJ
PWMは、デジタルなのか、アナログなのか

960 :774ワット発電中さん:2009/07/11(土) 22:48:07 ID:hIxJ4XFl
論理的にとらえるならデジタル信号、
物理的にとらえるならアナログ信号。

961 :774ワット発電中さん:2009/07/12(日) 02:58:31 ID:tZS1IjmJ
・・・んで、どっち?w
パルス幅変えてるだけであって電圧はかわんないんだっけ。
じゃぁデジタルだ。。

962 :774ワット発電中さん:2009/07/12(日) 03:28:01 ID:sTgSDS86
tiny2313でソフトウェアUARTの受信側を作ってます。
ピン変化割り込みとタイマ割り込みで115200bpsの1ch分の受信は
満足できるレベルになりました。
が、複数chの待ち受けをどうすべきか悩んでます。

2ch以上は割り込みでは無理っぽいのでピン変化割り込みをトリガに、
メインループでタイマ値を読みながらポーリングするという方向で考えてます。
他に良い方法あるでしょうか?

963 :774ワット発電中さん:2009/07/12(日) 06:31:38 ID:UhNDRuoW
>>961
電圧が変わらないからデジタルってのはちがうだろ
あれもある種のD/A変換みたいなもんだし


964 :774ワット発電中さん:2009/07/12(日) 07:39:55 ID:Ii1EBH6J
>>962
2313をたくさん並べて(ry

965 :774ワット発電中さん:2009/07/12(日) 09:16:27 ID:qcXMqtpX
>>964
tiny45×4でそれに近いことをやったことがある。
その時思ったんだけど、マルチコアのAVRって出ないかしら・・・
電源だけ共通で、内部にtinyが4個ぐらい入ってて、I/Oが
マトリックススイッチに一度繋がってるようなやつ。

まぁ、ほとんど需要ないか・・・

966 :774ワット発電中さん:2009/07/12(日) 09:39:30 ID:Rt+J+WOr
それなんてParallax Propeller?

967 :774ワット発電中さん:2009/07/12(日) 15:30:11 ID:bMrCwYbS
タイマで常時ポートを取り込んで、空いてる時間に解析。

//ボーレートより3倍くらい速い割込み
ISR(TIMER~)
{
buf[] = PINx & 0x0F;
}
/*
bit0 : 0ch
bit1 : 1ch
bit2 : 2ch
bit3 : 3ch
*/

ここまで解析済みインデックスとか、
0~4chスタート位置インデックスとか準備して、
後はバッファーオーバーランさせなければ良さそう。

しかし2313はメモリ少ないしなー

968 :774ワット発電中さん:2009/07/12(日) 16:46:38 ID:IlgtOE5S
>>965
タイマも1つか2つ、読み取り部分だけは共通にすると面白いかも。


969 :774ワット発電中さん:2009/07/12(日) 17:12:22 ID:sTgSDS86
ポーリングで試してみましたが6割読めればいい方という感じで
成功しそうにないです。ピン変化割り込みからポーリングに移るまでに
他の処理が入ると、どうしても遅れが出て既にデータがないということも。

>>967
ありがとうございます。
そういう発想はありませんでした。
SRAM大きめのやつで試してみます。


970 :774ワット発電中さん:2009/07/12(日) 18:18:39 ID:8d7B4LUp
tiny2313でシリアル通信しようと思って
avrlib使ってみたら6kbあって入らなかったorz
いったいこのマイコンは何ができるんだ!!
使いものにならーん

971 :774ワット発電中さん:2009/07/12(日) 19:06:00 ID:tZS1IjmJ
>>970
お前の能力が低すぎんだろw

972 :774ワット発電中さん:2009/07/12(日) 19:12:52 ID:8d7B4LUp
>>971
それは認めますw


973 :774ワット発電中さん:2009/07/12(日) 19:18:20 ID:IlgtOE5S
>>970
実数演算でもさせてるんじゃないの?

974 :774ワット発電中さん:2009/07/12(日) 19:30:49 ID:vNiiq//D
>>973
必要ないのに、小数点演算(またはprintfでの小数パッケージ)をリンクしていると思う


975 :774ワット発電中さん:2009/07/12(日) 19:40:38 ID:tZS1IjmJ
「使い物にならん」とか言ってる奴って、だいたい言ってる本人が使い物に・・(ry

976 :774ワット発電中さん:2009/07/12(日) 20:45:04 ID:hPZSQFbI
(ry を最後に書いて煽るやつは馬鹿が多い。

977 :774ワット発電中さん:2009/07/12(日) 20:46:00 ID:tZS1IjmJ
それにレスをつける >>976 も馬鹿な訳だがww

978 :774ワット発電中さん:2009/07/12(日) 20:51:26 ID:8d7B4LUp
その理屈はよくわかりませんw

979 :774ワット発電中さん:2009/07/12(日) 20:52:13 ID:ELlfa0Pe
良スレがだんだんとすさんでいくのはいやだ・・・

980 :774ワット発電中さん:2009/07/12(日) 21:12:29 ID:vGMccw2p
大丈夫、馬鹿なことをいってるのは1人か2人だけだ。

981 :774ワット発電中さん:2009/07/12(日) 21:14:54 ID:IlgtOE5S
>>978
>>973-974をチェックですな。
○WinAVRで、print系の関数はむっちゃプログラムが膨れます。メモリ足りなくて他に手段があるなら使わないこと。
○浮動小数点演算は小さいAVRには辛い(コードサイズで)。整数演算でできる道を探す。
○よくあるパターンとして、_delay_ms()などのマクロ関数に変数をぶち込むとここで浮動小数点演算が入ります。
_delay_ms()は定数専用と考えてください。
○煽りは笑ってスルー

tiny2313くらいのマイコンってどのへんかな?と思って探してみた
ttp://www.geocities.jp/ryochan_home/onebode.htm
このへんかな?
これが入出力以外ワンチップで、しかも20倍速(10MHz動作時)かあ。まあエライのかな。
サイズのメリットを生かすような工作をして遊びましょう。

982 :774ワット発電中さん:2009/07/12(日) 21:20:27 ID:KDN8quVB
>>981
これがあんなちっちゃなチップの中に入ってると考えると夢がひろがりんぐ

983 :774ワット発電中さん:2009/07/12(日) 21:26:14 ID:vGMccw2p
>>981
QFNパッケージならわずか4mm角だしね。
恐れ入るとしか言いようが無い

984 :774ワット発電中さん:2009/07/12(日) 21:45:32 ID:ZnkYGIE5
使用者の能力の問題だよね

985 :774ワット発電中さん:2009/07/12(日) 21:47:51 ID:tZS1IjmJ
それをマイコンの容量のせいにされたらこの世も終わりだ

986 :774ワット発電中さん:2009/07/12(日) 21:49:19 ID:8d7B4LUp
まあ、mega168買ってきますよん

987 :774ワット発電中さん:2009/07/12(日) 21:50:30 ID:ZnkYGIE5
いやいや君はmega128を買いなさい

988 :774ワット発電中さん:2009/07/12(日) 21:52:12 ID:IlgtOE5S
>>986
というか、あなたが何がしたいかをまず決めてから
チップを選ぶべきかと。
場合によってはAVR以外がいい場合も有るだろうし。


989 :774ワット発電中さん:2009/07/12(日) 22:07:30 ID:tZS1IjmJ
8-PDIPのtiny13Aが楽しいな。
内部発振 9.6MHzで、しかもA/D変換器付きと来てる。
ちょっとしたことなら色々と出来るから相当に可愛い奴だ。

990 :774ワット発電中さん:2009/07/12(日) 22:11:32 ID:8d7B4LUp
うげ
168でも足りないや。328買ってきます。

991 :774ワット発電中さん:2009/07/12(日) 22:25:53 ID:ELlfa0Pe
>>989
プログラミング環境は何ですか?

992 :774ワット発電中さん:2009/07/12(日) 22:26:09 ID:tZS1IjmJ
>>990
マジ話するけど、あとから足りなかった〜!というまえに mega644買っておけば?

993 :774ワット発電中さん:2009/07/12(日) 22:28:03 ID:tZS1IjmJ
>>991
AVR Studio 4.16 Build628のAtmel AVR Assember使ってる

994 :774ワット発電中さん:2009/07/12(日) 22:38:58 ID:KDN8quVB
いったい何を作るんだ

995 :774ワット発電中さん:2009/07/13(月) 02:16:19 ID:+45m0zpU
644pは1個持っとくべきだね
でかいけど、とりあえず好きなように組める

996 :774ワット発電中さん:2009/07/13(月) 02:20:53 ID:ePUWd3qM
アセンブラで16KBでも足りないっていったい……

997 :774ワット発電中さん:2009/07/13(月) 02:34:01 ID:vXuiWuVn
>>996
アンカー追っかけてみろ。tiny13Aの話だぞ。

998 :774ワット発電中さん:2009/07/13(月) 08:11:05 ID:2eQXRlyT
あ。hexファイルのサイズで見てたけど
実質は7kbだった。mega168でも入る。やったー。

999 :774ワット発電中さん:2009/07/13(月) 08:12:41 ID:59jgTSfE
AVRマイコン総合スレ Part15
http://science6.2ch.net/test/read.cgi/denki/1247238097/


1000 :774ワット発電中さん:2009/07/13(月) 08:54:12 ID:G1zoBbPw
1000だったら真面目に仕事する

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

262 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)