AVRマイコン総合スレ Part19

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

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

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

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

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

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

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

・HERO'S Download(暫定) 有志による日本語のAVR資料他
  http://moon.gmobb.jp/hero/
4774ワット発電中さん:2010/06/25(金) 21:07:21 ID:o4lD3qe7
実は初めてのスレ立てなんだけどこれでいいのかな?
5774ワット発電中さん:2010/06/25(金) 22:16:09 ID:wWd8IjTK
上出来だと思うよ乙
6774ワット発電中さん:2010/06/25(金) 22:34:40 ID:cp6VFwdJ


でも、レディオテクニカ有志〜 と HERO'S Download(暫定) は
修正が必要では?
7774ワット発電中さん:2010/06/25(金) 23:21:37 ID:zG0XdiHL
>>1
これは乙じゃなくてポニーテールなんたらかんたら
8774ワット発電中さん:2010/06/26(土) 00:49:40 ID:jKuiVHUY
>>6
あぁぁ、しまった。肝心なところを直していなかったぁ。

ええと、次のスレ立てる方は前スレ291さんのページへの案内をお願いしますね。
ttp://awawa.hariko.com/chira-ura/index.html

案内文は…「ATMega168データシート新翻訳」ぐらい?
9774ワット発電中さん:2010/06/26(土) 07:19:12 ID:Cl8bzIQY
まるで、ATMELの出す、エラッタのエラッタのやうではないか。
10774ワット発電中さん:2010/06/26(土) 09:57:38 ID:+7Su4Jnv
1乙
地味に伸びますなw
11774ワット発電中さん:2010/06/26(土) 14:03:32 ID:GYPWi3ZR
おつつ
12774ワット発電中さん:2010/06/27(日) 08:42:08 ID:y3/Tm6Vt
立てなくて良いのに・・・・。
13774ワット発電中さん:2010/06/27(日) 23:00:24 ID:lnTH97Pl
おっつ

発展期待
14774ワット発電中さん:2010/06/27(日) 23:23:32 ID:y3/Tm6Vt
H8があればAVRなんていらねーww
15774ワット発電中さん:2010/06/27(日) 23:44:01 ID:/kpk5vNQ
趣味ならDIP
16774ワット発電中さん:2010/06/28(月) 02:25:34 ID:b3Kb635O
1乙

テンプレにAVR解説書籍を加えるといいと思うがどうだろう。
データシート読むにしろ先に基本を知っていれば助かるはず。
(以下、AVR使ってるけど工作やUSB,I2Cの解説が中心という書籍は除外)

<AVR解説書籍>

試しながら学ぶAVR入門
http://shop.cqpub.co.jp/hanbai/books/46/46041.htm
マイコンの基礎と電子工作とWindowsアプリケーションの作り方

AVRマイコン・プログラミング入門
http://shop.cqpub.co.jp/hanbai/books/42/42131.html
ATmega48/88/168の主要な機能を豊富な図解と実例でわかりやすく解説

AVRマイコン・リファレンス・ブック
http://shop.cqpub.co.jp/hanbai/books/37/37301.htm
AVRのCPUアーキテクチャ,豊富な内蔵周辺機能を詳細解説
17774ワット発電中さん:2010/06/28(月) 14:09:50 ID:EB2oFCyZ
>>14
H8も使うときは使うが電源が電池レベルの時に使おうとは思わん。まだR8Ctinyなら…
AVRなら気をつければCR2032でも使いものになるのが強みの一つだと思う。

>>16
なるほど、いいかもしれないね。
俺ChaN氏のところ以外はほとんどデータシートしか見てないんでこういうの知らない
んだ。
18774ワット発電中さん:2010/06/28(月) 21:57:30 ID:8/gtgSMJ
中華Android端末を見ていて…
家にあるNetworkGatewayKitに液晶繋げればAndroid動くかな?と思ったのだけど

既にAVR32-AT32AP7000がディスコンになっている件に付いてwww
19774ワット発電中さん:2010/06/29(火) 11:46:34 ID:OwciBS74
中華ドロイドの中だとmoonse e7001ってのが良いらしい
なぜかポータブルAV板にスレがある
20774ワット発電中さん:2010/06/29(火) 21:46:43 ID:tp2bwZIa
AVRは異常に使い易いと思うし計算も速いんだが、
1つだけ欠点があるとすれば、debug-wireが糞
21774ワット発電中さん:2010/06/29(火) 22:49:33 ID:TgGmNHCF
少なくとも8bitAVRに関してはプログラムメモリへのアクセスがRAMへのアクセスと
別なのがイヤ。Cではちょっと使いにくいことがあるな。

32bitAVRは知らないんだが、さすがに同じポインタでアクセスできるんだろうな?
22774ワット発電中さん:2010/06/29(火) 23:57:45 ID:sUdxgSWr
>>21
ありがとう、やっぱり AVR はやめとくわ。
23774ワット発電中さん:2010/06/30(水) 02:00:50 ID:raLT+ORn
いったいどんな用途に使おうと思ってんだよ。。。
24774ワット発電中さん:2010/06/30(水) 04:17:04 ID:xjGxoN5D
RAM実行可能かとかそういう話でしょ。
AVRがというよりハーバードアーキテクチャの仕様。
ところでAVR32ってlinuxも乗るわけだけど、
この辺どうなってんのかね。外付けRAMだと
フラッシュと同じプログラム側アドレスにできるってことかな。
25774ワット発電中さん:2010/06/30(水) 08:01:32 ID:NuutDyME
AVRStudioのエディタに行番号を表示するオプションなどありませんか?
26774ワット発電中さん:2010/06/30(水) 08:03:41 ID:serdi4vq
>>25
ググレカス
27774ワット発電中さん:2010/06/30(水) 11:39:46 ID:3OcCNDnB
>>24
21の言ってる意味は、
ROMに割り当てたテーブルが普通に読めないからだろ
28774ワット発電中さん:2010/06/30(水) 13:32:27 ID:lfJ6Fxwi
すまん、俺が>>21(ちなみに>>22は俺じゃない)なんだが

使用目的は確かに>>27なんだが、気になってる所は>>24の話。
AVR8はハーバードアーキテクチャがモロにソフトに影響してるって話。

内部的にはハーバードアーキテクチャでもキャッシュとかで細工してソフト的には
見えないようにしてるマイコンもあるから、AVR32はそうなのかなと思って。
29774ワット発電中さん:2010/06/30(水) 13:45:12 ID:3OcCNDnB
昨今RISCでハーバードではないCPUも珍しいけどな、
PCカウンタが32くらいあるのなら、RAM方面のバスもアドレス区分で割り当ててるのが普通と思われ。。
30774ワット発電中さん:2010/06/30(水) 13:58:53 ID:RC7hQPPa
データシートみると同一の物理マップにあるから>>27とか
>>24みたいなこと気にする必要ないんじゃない。
31774ワット発電中さん:2010/06/30(水) 15:05:26 ID:gbGxHgHD
>>28
それ、メモリマップ的にコードとデータが独立してるかどうかって話でしょ。
で、今のARV32のUタイプはMPU(メモリ・プロテクション・ユニット、ARM用語)だから
同一メモリ空間内でマップされてるよ。

ディスコン化したAPタイプのAVR32は普通のMMUなので仮想メモリ対応のゴージャスな奴だったけど。
32774ワット発電中さん:2010/06/30(水) 16:40:43 ID:lfJ6Fxwi
>>30,>>31
ありがとう。やっぱりそうなってるんだな。
今度ヒマができたら自分でも読んでみるわ。
33774ワット発電中さん:2010/06/30(水) 19:17:50 ID:Wt8CW4l1
そもそも、xmegaと違って、AVR32ってAVRと互換性ないんじゃ?
34774ワット発電中さん:2010/07/01(木) 02:33:43 ID:+/IUrg1x
同一メモリ空間内でマップってことは、
内部の命令デコードも同じってことなのかな?
まあ調べればいいんだけど
35774ワット発電中さん:2010/07/01(木) 14:08:41 ID:5QMQkx/N
やっぱUPSにはついてたほうがいいよね〜?AVR
36774ワット発電中さん:2010/07/01(木) 14:34:27 ID:HDvL1No0
>>35
面白いと思って言ってるの?
37774ワット発電中さん:2010/07/01(木) 14:47:06 ID:5QMQkx/N
>>36
いや。まじで。AVRってそうでしょう?
38774ワット発電中さん:2010/07/01(木) 14:50:29 ID:HDvL1No0
>>37
スレタイ100回音読してから、半年ROMってろ
39774ワット発電中さん:2010/07/01(木) 14:54:32 ID:nHdNyBKL
ググるまでなんのことだかさっぱりだったぜ…
自動電圧調整(Auto Voltage Regulateかな?)だったのか。
40774ワット発電中さん:2010/07/01(木) 15:44:02 ID:40j3NmT5
Part13でのボケのがまだマシだな…
http://2chnull.info/r/denki/1231687664/515-523
41774ワット発電中さん:2010/07/01(木) 16:33:42 ID:TtUqUu1f
マイコンでDC/DCコンバータ構成してる例なら何度か見た
42774ワット発電中さん:2010/07/02(金) 15:25:49 ID:NTfG30vl
Adult Video Recorder?
43チラ裏:2010/07/03(土) 10:40:56 ID:xesk/3Ge
>>8
スレたて乙です。
案内に載せてもらえるように、1000までに完了目指して頑張ります。

8章追加しました。
ttp://awawa.hariko.com/chira-ura/index.html
44774ワット発電中さん:2010/07/03(土) 17:39:33 ID:9iiQhNRD
乙です。
埋まるのはいつにになることやらw
45774ワット発電中さん:2010/07/04(日) 22:38:34 ID:7Ez4bkk/
俺は2.2kΩの抵抗が好きだ
なぜなら赤3本で分かりやすいから
46774ワット発電中さん:2010/07/04(日) 22:55:39 ID:AvhLf7/s
5本線の抵抗は嫌いだ、だいたい読み間違う。
47774ワット発電中さん:2010/07/04(日) 23:26:11 ID:fuDy3Z8V
混ざったら終了>チップコン
48774ワット発電中さん:2010/07/04(日) 23:49:59 ID:Of3ijDGX
33kも好きだな
49774ワット発電中さん:2010/07/04(日) 23:50:43 ID:rHkJpou6
つまんで測定するテスターがあるからそれを使えば大丈夫。
50774ワット発電中さん:2010/07/05(月) 00:08:30 ID:Qda38bnn
1/4Wのカーボン抵抗が好き
オレの中で、いかにも抵抗ってのはコレだな
出来れば基板に寝かしてやりたいけど、スペースの都合上中途半端に立たせることのが多い
スマンな、苦労をかけて・・・
51774ワット発電中さん:2010/07/05(月) 08:14:44 ID:qLrHxFuZ
AVRスレはここで終了しました。
これからは抵抗スレになります。
52774ワット発電中さん:2010/07/05(月) 09:21:53 ID:L9W29xTJ
今 USART でパソコンとシリアル通信してるんだけど、ちゃんとパソコンに送れない
ピンをショートさせてパソコンから送ったシリアルをそのままパソコンにバックさせると、正常に送受信出来てるから、問題は AVR 側だと思う

で、色々調べた結果、次のように受信してた

・受信したシリアルが反転しているっぽい
・受信したシリアルが 1bit 左にずれているっぽい

例えば、A を送ると

A = 0b01000001

のハズが、実際に受信しているビットは

} = 0b01111101

となってる
なぜだろう?

ちなみに、パリティなしストップビット1非同期モードです
53774ワット発電中さん:2010/07/05(月) 09:30:01 ID:+7HumNnK
出力は負論理 ドライバーいれるかで反転させる
54774ワット発電中さん:2010/07/05(月) 12:09:52 ID:L9W29xTJ
>>53
ありがとー!!!
早速 MAX232N 買ってきた
そういう事だよね?
55774ワット発電中さん:2010/07/05(月) 12:22:29 ID:B4ewmqdd
インバータでよかったのに・・・
ソフトで反転することも出来たのに・・・
56774ワット発電中さん:2010/07/05(月) 12:33:21 ID:KsDDYVPm
TTL(C-MOS)とRS-232Cを直結してたってこと?
57774ワット発電中さん:2010/07/05(月) 13:33:23 ID:hW2syPQq
トランシーバ用意できるんならその方がいいわな
58774ワット発電中さん:2010/07/05(月) 14:22:42 ID:+7HumNnK
だね 端おってやるとなにが問題なのかわかりづらくなる
59774ワット発電中さん:2010/07/05(月) 17:09:35 ID:PwibZo8D
RS232Cモドキなら別だけど、PC本体のシリアルポート(デスクトップ機
ならほぼ確実に)は+12V/-12V出してくると思うけど、そんな基礎的な
ことさえ知らんのかいな。

ゆとりエンジニア(0.5mmピッチは日常の自称プロとか)は、たとえ問題
があっても、火や煙を出すといった素人目にも明らかな異常状態でも
起こらない限り、動けば結果オーライなんだろうなぁ。

オシロなんて飾りだな。 すごいなぁ。
60774ワット発電中さん:2010/07/05(月) 17:18:35 ID:+7HumNnK
論理が逆になってるのが気づかなかっただけで
電圧が+/- 12 というのはあまり関係ないんじゃ? 
マーク状態の電圧みてれば あれと思ったかもしれないけど・・
61774ワット発電中さん:2010/07/05(月) 17:56:25 ID:GHpwcWON
最近の若いもんは
って言うのが仕事な窓際さん?
62774ワット発電中さん:2010/07/05(月) 18:10:32 ID:KACn1k+P
…。
規格上は+-10Vって綺麗さっぱり解りやすい値で
12Vってのは太古のドライバICが必要とする電源電圧じゃないの??
63774ワット発電中さん:2010/07/05(月) 18:17:22 ID:B4ewmqdd
あれ? rs232cは+/-15Vじゃないん
12でも15でも、分圧すればだいじょうび 入力が5Vでも十分・・・(工作の範囲で)
もろ直デモ燃えるようなことはない。AVRは強い子だから・・・

しかし、USART =rs232c だけじゃないよね!
64774ワット発電中さん:2010/07/05(月) 18:33:08 ID:/gHceoqT
チップや規格の定格を超えた使い方は、まあ趣味の範囲なら
動けばOKでも良いだろうけど
動かないときはまずそこをつぶしておかないと何をデバッグしているのか
わからなくなるかと
65774ワット発電中さん:2010/07/05(月) 18:43:43 ID:+7HumNnK
規格だと 速度20k距離15ftまでだけど
構内100-200mひっぱり回してもけっこう動くんだ

だめなら 構内モデムとかにするけど非同期だと511通らないし・・




66774ワット発電中さん:2010/07/05(月) 19:10:01 ID:PwibZo8D
+側は抵抗2個の分圧(例:10kΩ+4.7kΩ)なり、抵抗+ツェナーでVdd-vss範囲
にできるが、マイナス電圧が掛かると入力保護Di経由でGNDに流れる。

直列に抵抗を1個入れただけでは、CMOSのAVRの入力ピンはインピーダンスが
高いので、分圧抵抗としては機能しない。ただの気休め。(w

昔の仕様では8V以上くらいだったか、最近のEIA規格だと5V以上くらいで
よく、実質的には3V以上程度の電圧で動く。 最新の規格上での扱いは
どうだか知らないが、古いTTLレシーバもの時代から、(入力がIC内部で
GNDにプルダウンされていて)オープン=0Vでも、マーク状態と同じ挙動
だった。

それと、レシーバのSN75189Aは5V単一電源だけど、ちゃんと入力に負電圧
が掛かっても壊れない回路になってる。

±15Vは出力側の最大電圧で、MAX232やそのコンパチ品が出回る以前の、ほぼ
すべての古いPCの232Cポートのトランシーバは±12V電源を使っている。

趣味の範囲なら許されるとか言ってるけど、知らないんだから仕事でも同じ
ことやってそう。

以前、マイコンボード同士をシリアル通信させるのに、GND同士を繋いで
いなくて、指摘したら『でも通信できてます』なんて言う香具師がいた。

ある意味、無知って最強だなと思った。
67774ワット発電中さん:2010/07/05(月) 19:16:30 ID:/gHceoqT
そこで抵抗1本と直列2個入りダイオードですよw

ってそこまでするならトランジスタの方が良いか。
68774ワット発電中さん:2010/07/05(月) 19:29:30 ID:Xz748wSo
RSの受けの規格は+−5Vくらいかと、
NECのPCがアホで+−12V以上無いと識別できない糞仕様だっただけ。
69774ワット発電中さん:2010/07/05(月) 19:48:29 ID:WnkdUMjw
RS-232-Cの規格
http://www.alpha-works.com/work/logic/interface/serial/rs232c_base.html
<図1> 信号と電圧レベルの対応
70774ワット発電中さん:2010/07/05(月) 19:53:36 ID:PwibZo8D
NECのPC-9801シリーズも、IBMPC-XT/AT互換機も、富士通や日立のパソコン
も、当時の機器の232Cのトランスミッタ/レシーバは、ほぼ漏れなくSN75188
/SN75189Aないし相当品を使ってた。USARTにAT互換機の8250/16550とは違う
8251Aを使っていただけ。 75189Aのコントロール端子に付ける外付け抵抗
とオフセット電圧で入力ヒステリシス幅をいじれるど、±数Vの範囲で、NEC
だけレシーバの感度が大きく違うという話は記憶にないな。そんなじゃ、98
同士以外とシリアル通信できんし。

出力側は±12Vを出しても、長くて細い信号ケーブルだと、配線抵抗とレシーバ
の入力抵抗で分圧されて入力端子電圧が下がるんで、レシーバ側の入力電圧
の最低電圧はそれを見込んで低く設定されている。
71774ワット発電中さん:2010/07/05(月) 20:12:04 ID:B4ewmqdd
>>66

>直列に抵抗を1個入れただけでは、CMOSのAVRの入力ピンはインピーダンスが
>高いので、分圧抵抗としては機能しない

入力インピーダンスに係わらず
>マイナス電圧が掛かると入力保護Di経由でGNDに流れる。
だろ!

じゃなきゃ よい子のAVRはとっくに昇天しとる。ハズ
72774ワット発電中さん:2010/07/05(月) 20:56:30 ID:xKrOPE1Q
普通はMAX232使うけど、無いときは
とりあえず04使っている
http://elm-chan.org/docs/rs232c.html

安いからなw
73774ワット発電中さん:2010/07/05(月) 20:59:57 ID:PwibZo8D
>>71
それは厳密には「分圧」じゃなくて、保護Diに流れる順方向電流の電流
制限として働くだけ。

だから、入力端子電圧はVddを超える正電圧印過時には「Vdd+保護DiのVf
≒5V+0.7V」、GNDより低い負電圧印過時には「Vss−保護DiのVf≒0V-0.7V」
になる。絶対最大定格の入力電圧だな。

実際に、232Cの±12Vに直結でもデバイスが死ななかったとしたら、内部に
同様な保護抵抗が仕込んであるんだろうね。シリアルマウスの電源取った
りするくらいで、232Cトランシーバはそこそこ電流を流せるから、保護ダイ
オードだけだと、トランシーバの最大電流めいっぱい流れる。

しかし、デバイス売る方も、こんな使われ方されることまで考えて対策
する方が、論理設計よりタイヘンだろうな。
74774ワット発電中さん:2010/07/05(月) 21:01:02 ID:KsDDYVPm
AVRやPICユーザの基本技術の低さは救いようがないな。
75774ワット発電中さん:2010/07/05(月) 21:22:16 ID:xKrOPE1Q
76774ワット発電中さん:2010/07/05(月) 21:31:42 ID:15zvrSRn
AVRのピンで直接リレーの駆動はできますか?
77774ワット発電中さん:2010/07/05(月) 21:59:37 ID:PwibZo8D
>>75
> 外付け無しのが500円
> http://akizukidenshi.com/catalog/g/gI-00197/

どうせ薦めるんだったら、こっち(@200)でそ。
ttp://akizukidenshi.com/catalog/g/gI-00469/
※外付けコンデンサをサービスしています(0.1uFx5個)
※ICソケットをサービスしています。

2個セットだと、さらにお得(@150)ザマス。
ttp://akizukidenshi.com/catalog/g/gI-03030/
※ICソケット、外付けコンデンサ付(0.1uFx5個、ICソケット1個)×2セット

>>76
ドライブするリレーのコイル電流と、同時にドライブするリレーの数に
よる。

当然だけど、AVRの電源電圧とリレーのコイル電圧は同じであること。
ACリレーも駆動できない。
78774ワット発電中さん:2010/07/05(月) 21:59:50 ID:mL8kMtss
どのリレーかにも寄るだろ
79774ワット発電中さん:2010/07/05(月) 22:39:38 ID:6I4Vg60u
試しにリレーを直接つなげて駆動してみればいい

結果は報告してくれよなw
80774ワット発電中さん:2010/07/05(月) 22:59:12 ID:q7vte5ru
AVR Butterflyで色々遊ぶのが初心者には無難なのかな?
81774ワット発電中さん:2010/07/05(月) 23:35:42 ID:Qda38bnn
論理が反転してるとスタートビットもズレるから通信できてると思っても変なデータになるよね
個人的には秋月のUSB−シリアルコンバータの使いまわしが最強かなぁ
もちろん趣味レベルの話ね
82774ワット発電中さん:2010/07/06(火) 01:47:32 ID:GdQ9DLL5
>>81
論理が反転してたらフレーミングエラー出まくりで通信どころじゃ
ないよ。
83774ワット発電中さん:2010/07/06(火) 07:55:21 ID:zVwNUnya
アイドル状態('1'の連続)が、ブレーク状態('0'の連続)になるね。

何か送信すれば別だけど、アイドルビットの連続送信だけでは、'H'→'L'へ
のレベル変化検出が起こらないので、スタートビットの開始('1'=アイドル
ビットまたは直前に送信したキャラクタのストップビットから'0'=スタート
ビット)が検出されないから、待機が続いている状態ではフレーミングエラー
が連続する状況にはならないと思う。
84774ワット発電中さん:2010/07/06(火) 17:09:28 ID:n/ctvkqB
>>74
一応同意しておくが、それだけマイコンが気軽に使えるようになったってことだ。
85774ワット発電中さん:2010/07/06(火) 19:34:07 ID:FHRcOqS9
すごい盛り上がりで吹いたw
86774ワット発電中さん:2010/07/07(水) 00:03:57 ID:5TV2HB4m
>>77
ユニバーサル基板で組んだときにコンデンサ5個つけるのは、結構面倒だったりするので
外付け無しですませられるなら、それはそれでちょっと嬉しい。
確かに高いんだけどさ
87774ワット発電中さん:2010/07/07(水) 08:45:44 ID:Aq948y24
あの程度の工作をメンドウとかw
88774ワット発電中さん:2010/07/07(水) 20:49:19 ID:AGvG6MC2
あほか、手間じゃなくて、様々なコストだろ・・・
89774ワット発電中さん:2010/07/07(水) 20:57:01 ID:NM9a2Rsh
業者に出せば一穴いくらだけど、業者に出す時点で表面実装だよなぁ・・・

こんなことだから2SC1815がディスコンになるんだよ!
90774ワット発電中さん:2010/07/07(水) 23:03:15 ID:hlE8uJaa
91774ワット発電中さん:2010/07/08(木) 00:01:04 ID:F9IKZhWx
1815の次は何が来るんだ?
92774ワット発電中さん:2010/07/08(木) 00:10:19 ID:u2xa2Yux
>>91
2SK-30Aって代替あったっけ?
93774ワット発電中さん:2010/07/08(木) 00:10:32 ID:dshIbG9h
1815ってディスコンなの?
それは困る
秋月の在庫がいつまで持つか・・・
94774ワット発電中さん:2010/07/08(木) 00:19:06 ID:nOVx/F92
>>93
1815だけじゃなくて、リードタイプ全滅ですwww
詳しくはディスコンスレで。

digikeyからパナのチップフィルム数種についてラストオーダ・メールが来ていたけど
あっちは同等品まだあるし…
95774ワット発電中さん:2010/07/08(木) 00:20:29 ID:khU4wc8/
秋月の在庫は1年近くはもつと思う
9694:2010/07/08(木) 00:23:02 ID:nOVx/F92
あ、全滅なのは東芝のリードタイプね。
今回はFETとかも派手にディスコンっぽいね。
97774ワット発電中さん:2010/07/08(木) 07:35:42 ID:fJGgDGnp
ちょっと東芝の○○さんに文句言ってくる
98774ワット発電中さん:2010/07/09(金) 07:58:28 ID:XVumUnTf
1815なんて150mAぽっちだからなぁ。
普通2SC2120だろ。
99774ワット発電中さん:2010/07/09(金) 08:33:05 ID:+VhBX9bl
100mA以上流すスイッチング用途なら最近は何も考えずにMOS-FETだなあ。
p-chもn-chもゲート電圧3.3V以下でもドライブできるのが増えてきて楽ちん。
100774ワット発電中さん:2010/07/09(金) 09:22:51 ID:kRSfVZHH
リード部品が無くなる、て話のところへFETを持ち出すヤツって素敵w
101774ワット発電中さん:2010/07/09(金) 11:47:52 ID:MlzgTF69
>>99

ちょうどそんなの探してたんですが、どんなのが定番ですか?
102774ワット発電中さん:2010/07/09(金) 12:04:16 ID:cOTshGO9
>99
2SJ244, 2SJ279, 2SJ317, 2SJ439, 2SJ465 ...
Pchの3Vスイッチは鈴商かサトーにそこそこあるけど、Nchは国内では厳しくね?
DigikeyでFDN337Nだろjkというのは置いとくとして、 2SK2493位じゃ。
103774ワット発電中さん:2010/07/09(金) 12:44:56 ID:5RaFXkRa
その辺とか直接ゲートにつないでまともに使えるのか?
負荷電流によるだろうけど
104774ワット発電中さん:2010/07/09(金) 13:42:24 ID:Yt/+XTDA
fetはすぐディスコンになる
なにも考えずに使える定番がない
記号が直感的に分かり難い
なんど逆につけたか
10599:2010/07/09(金) 14:37:53 ID:+VhBX9bl
流れを読んでなくてスマンかった。ちょっと大きいめの電流スイッチなら、ってつもりだった。
実際使ってるのはチップ品だしorz

定番てのはないと思います。
digikeyかmouserで(忘れた)まとめ買いして箱にころがってる、Fairchildの
n-ch : FDN327N
p-ch : FDN304PZ
をコイルとか小型モーターのPWMドライブで深く考えずに使ってる。
どちらもVgs=1.8vでRds=100mΩくらい。電流定格2A以上。
ポート〜ゲートに100Ω直列、ゲート〜ソースに470k並列くらいかな。
106774ワット発電中さん:2010/07/09(金) 17:28:06 ID:cOTshGO9
>105
サンプル二つだがw
FDN304Pは定番と言っていいかも。うちも標準的に使っている。
ゲート容量が大きくて遅いのと、12Vに耐えないのでこれだけで全てをまかなうのは厳しいんだよな。

>103
FDN304Pや2SJ439の1000pF越えは気をつけるとしても、2SJ244,2SJ317は100pF以下だし。
モノによるとしか。
107774ワット発電中さん:2010/07/12(月) 09:30:27 ID:usYOWkP2
メインのソースフィルで指定されている #define って、ライブラリとして呼び出してるソースファイルには適用されない?
ヘッダファイルには届いてるっぽいんだけど
108774ワット発電中さん:2010/07/12(月) 11:35:38 ID:o7SeOPCp
よく状況がわからないが、プリプロセッサの動作を理解していないように思える。
Cの話だよな?

#defineはそれを含むソースファイル中、それの出現した位置以降にのみ影響を与え
る。他のソースファイルや、バイナリリンクされるファイルには影響は与えない。
109774ワット発電中さん:2010/07/12(月) 11:48:39 ID:usYOWkP2
>>108
ありがとー
そのファイル内でしか有効じゃないってことかな
const でグローバル変数として設定すれば、プログラム全体で使える変数として認識してくれるのかしら
110774ワット発電中さん:2010/07/12(月) 12:14:34 ID:lpaq6xLB
>>107-109
AVRとか、組込プログラミング以前の問題のような。

定数を定義したヘッダファイルを #include すれば、別のファイルからも
参照できるし、BASICあたりからプログラム始めたのか、ヘッダファイルの
目的や意図を理解していないのかな?

extern 宣言で外部参照扱いしていない限り、他のソースファイルは、その
変数の存在を知らないし、ライブラリはコンパイルされた時点で完結して
いるから、ライブラリ側でextern 宣言されていない場合は別の次元空間に
存在する同名の変数となるか、public 宣言されていれば、リンク時に多重
定義でエラーになる。

const宣言(Read Only属性)を付けるかどうかは無関係。
111774ワット発電中さん:2010/07/12(月) 13:08:29 ID:519dRjB8
externはライブラリ側には必要ない
利用する側でexternすることで利用可能になる
存在を知らせたくない場合はstaticにする
112774ワット発電中さん:2010/07/12(月) 14:24:53 ID:lpaq6xLB
>>111
変数をどっち(ライブラリ/アプリ)が持つかによるでしょ。

> externはライブラリ側には必要ない
> 利用する側でexternすることで利用可能になる

これは、あくまでライブラリ側が変数の実体を持って、アプリ(ライブラリ
利用側)から参照している場合。 この場合、ライブラリのヘッダで変数名が
公開されているはずなので、初期値を代入すればよく、#define で定数と
して定義する必要はない。 単に、ソースの書き方を知らないのかもしれ
ないが。

一方、ライブラリ内部に変数の実体を持たず、変数の実体を、アプリ(ライ
ブラリ利用側)に持たせるような書き方もできる。 この場合、ライブラリ
側のソースでは、extern(ヘッダに記述されている必要はない)宣言しておき、
アプリ(ライブラリ利用側)に変数の実体をもたせることもできる。この場合、
コンパイルでエラーは出ないが、変数の実体を用意せず、ライブラリを使え
ば、リンク時に参照エラー(未解決)となる。

どうも、ID:usYOWkP2 は、定数のマクロ定義(プリコンパイル時の文字列
置換)と、変数定義や、宣言の違いを理解していないように思える。
113774ワット発電中さん:2010/07/12(月) 15:13:39 ID:usYOWkP2
ID:lpaq6xLB
どもです

ライブラリと言っても、別ファイルにしたモジュール(関数)への適応です
詳しく書いてないのでよくわからないですよね、すみません


ProgramA
└ main.c

ProgramB
└ main.c

Library
├ kansu.h
└ kansu.c


こんな感じのフォルダ構成で、ProgramA や B と増えていったときに、共通の関数にアクセスしたいと思います
ところが、ProgramA と B ではクロックやマイコン自体が違うので、「#define F_CPU 20000000UL」など、それぞれのプログラム(main.c)で定数が定義されています
この定数によって、kansu.c ではディレイ時間などを計算します

この場合、kansu.c から main.c の F_CPU を拾えないかなって話でした

ライブラリの関数に対して引数で渡せばいいんだろうけど、定義された定数を別の手段で別ファイルの関数に送らないといけないっていうのがなんか無駄かなと思った次第です


独学過ぎて基礎がなってなくて、説明まで下手でごめん
114774ワット発電中さん:2010/07/12(月) 15:27:21 ID:OiOq5WBg
GDL ver2.3.2.1 を使ってロボ作成しようと思ったんだけど、最初から躓きが
ATmega32 BTC067Bで今テストプログラム書いてるんだけど
rs_printf("Hello\n");をCOMポート接続、SIMPLE TERMで f→転送→g→実行
で結果を画面に出すと文字化けされて出てくる(・変な漢字)

基盤からハンダ付け〜マイコンセットを自作でやったんだけど
プログラミングが駄目なのか、作成段階でぶっ壊れたのかどっちでしょう?
#include <avr/io.h>
#include <avr/interrupt.h>
#include <rs.h>

char txb[10], rxb[10];

int main(void)
{
rs_init(br57600, txb, sizeof(txb), rxb, sizeof(rxb));
sei();
rs_printf("Hello\n");
return(0);
}
すれ違いだったら申し訳ない
115774ワット発電中さん:2010/07/12(月) 15:40:58 ID:/38uktU9
それは多分、ボーレートがあってないのでは。
シンプルタームでボーレート切り替えてみてはどうでしょう
116774ワット発電中さん:2010/07/12(月) 16:00:37 ID:OiOq5WBg
>>115
ありがとうございます。きちんと表示されました。
調べてみたところ GCC = 57600設定の、STだと115200(default)になってました。
こちら、ST変えてみた所、fとかの入力する時に既に文字化けしてしまうため、
プログラムの方を115200に修正しました。

これは環境依存で、固定になるのでしょうか?
システム→デバマネ→COM1だと9600bps
ウームム

解決した後に新たで申し訳ないのですが、
四則計算が行われないようなのですが、なぜでしょうか?
int A,B,C;
A = 10;
B = 20;
C = A + B;
rs_printf("A+B= %d", C);
結果としては gA+B= カーソル位置で、結果が出ません。
Cでは問題ない書き方だと思いますし、他サンプル見てもprintf内は問題ないと
思うのですが、こちらもまた設定になるのでしょうか?
117116:2010/07/12(月) 16:05:42 ID:OiOq5WBg
失礼しました。
四則演算の方は解決しました。
A+B =%d
123456
の6文字までしか表示されないんですね…
Bと=の間に空白があったため、なかったようです。

10+20の結果が3となって表示されました。(0が足りない)

うーむsizeofで10とっているのに6文字
8bitだとしても 1 2 4 8 / 16 32 64 128
でもうちょっと表示してくれてもいいような気がするのですが…
何ででしょう?
118774ワット発電中さん:2010/07/12(月) 16:43:08 ID:o7SeOPCp
>>113
#defineされた定数はそのファイル内でしか見えないので、ライブラリ(に限らずバイ
ナリでリンクされるオブジェクト)に対しては引数で渡すのが正解。
もしそのライブラリ内で何度も使う予定があるなら、ライブラリの初期化時に一度だけ
渡して、ライブラリ自身のグローバル変数にでもコピーしておくとよい。

別のやり方としては、ライブラリのヘッダー(例としてhoge.h)に
#define T2DIV(FREQ) ((unsigned int)(F_CPU / FREQ))
void hoge_setdiv(unsigned int d);
とか書いておき、
それぞれのプログラムから
#include "hoge.h"
#define F_CPU 20000000UL

void fuga(void)
{
hoge_setdiv(T2DIV(1000)); /* 1kHz */
}
のように呼び出す手もある。少し融通はきかなくなるが、定数項がコンパイル時に計算
されるので速いコードが生成される。ただ、F_CPUの定義を忘れたりするとわかりにくい
コンパイルエラーが発生するので要注意。
119774ワット発電中さん:2010/07/12(月) 16:55:05 ID:usYOWkP2
>>118
やっぱりそのソースファイル内でしか使えないのね

ただひとつだけ釈然としない点があって、
そもそも何故そんなことを思ったのかというと、例えば標準ライブラリの delay.h とかで #ifndef F_CPU とか使われてますよね
これって、int main(void) のあるソースファイルで定義した定数(F_CPU)をちゃんと認識していて、定義しないと「# warning "F_CPU not defined for <util/delay.h>"」がしっかり機能している

main.c で #define された定数が別のファイルで参照されている事例だと思うのですが、どうなんでしょ?
120774ワット発電中さん:2010/07/12(月) 17:04:16 ID:lpaq6xLB
>>116-117
>>116-117
おそらく、通信速度(ボーレート)の設定誤差。

16MHz(16000000Hz)クロックから、115200bps(×16クロック)を生成しようとする
と、ボーレート分周比が割り切れない値(≒8.68)になる。 下記データシートの
143/346ページ参照。

ttp://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf

UBRRレジスタには整数値しか設定できないので、切り捨てられた小数点以下の
差が、ボーレート誤差となる。

より誤差が少なくなるよう、小数点以下を四捨五入して「9-1=8」を設定して
いた場合でも、実際の通信速度は111,111bps(-3.5%)になる。

57,600bps(×16クロック)でもやはり分周比は割り切れない値(≒17.36)になるが、
小数点以下を丸めた値(17-1=16)を設定した実際の通信速度は58,824bps(+2.1%)
と誤差が少なくなる。

38,400bps(×16クロック)であれば、分周比はほぼ整数(≒26.04)になり、小数
点以下を丸めた値(26-1=25)を設定した実際の通信速度は38,462bps(+0.16%)
とほとんど誤差がない。

ボーレート誤差が大きくなると、キャラクタの後ろ(上位)bitほど同期がずれて
データがうまく拾えなくなる。 ただし、bitの切れ目の区別があるわけではない
ので、「パリティなし」の場合、上位bitが'1'の連続したキャラクタは続くスト
ップビット(1)やアイドル状態('1'の連続)をデータとみなされて、正常受信でき
たりする。
121774ワット発電中さん:2010/07/12(月) 17:14:43 ID:lpaq6xLB
>>119 == >>113

>>112 前者の(ライブラリ側が変数の実体を持つ)やり方で解決する場合 ...

kansu.c 内で「F_CPU」を直接参照するコードを書かず、

unsigned long s_numCPU_ClockFreq=F_CPU;

とでもグローバル変数を定義しておいて、s_numCPU_ClockFreqの値を使う。
一方、main.c側では、

extern unsigned long s_numCPU_ClockFreq; /* 別のファイルで変数が定義されていることを宣言 */

void main()
{
  s_numCPU_ClockFreq=F_CPU;
}

とすることで、main.cを含むプロジェクトをビルドする際に指定した、
F_CPUの値で、プログラム開始時にs_numCPU_ClockFreq中身を書き換える
ことができる。

ライブラリ側で変数をstatic宣言して隠蔽し、値をセットしたり取得
したりするヘルパ関数を別途用意してもいい。

>>112 後者の(アプリ側が変数の実体を持つ)やり方で解決する場合 ...

kansu.c 内で「F_CPU」を直接参照するコードを書かないのは同様、
extern unsigned long s_numCPU_ClockFreq; /* 別のファイルで変数が定義されていることを宣言 */

しておいて、s_numCPU_ClockFreqの値を使う。一方、main.c側で、

unsigned long s_numCPU_ClockFreq=F_CPU;

とする。

avr-gccに付いてくる標準ライブラリ(avr-gccフォルダ内の /include/util/delay.h 参照)
のdelay_ms()等は、ヘッダのソースを見れば判るけど、F_CPUの値を直接参照して中身の
ループ回数を決定しており、のこの方法では解決できない。

また、delay_ms()は、通常の関数(サブルーチン)ではなく、インライン関数として展開
されたコードがそれぞれの場所に埋め込まれている。

delay.h から関数を自分のソースへコピペして、delay_ms() → my_delay_ms()などと
別の関数名として、F_CPUの値を使っている部分を、s_numCPU_ClockFreqに置き換え、
delay_ms() の代わりに my_delay_ms() を呼べばいい。

ただ、毎回doubleの値から計算すると誤差が大きいので、1ms単位等のループ回数を
main()の最初で1回だけ計算してグローバル変数に格納しておき、[N]msのディレイ
が必要な場合には、delay_1ms()関数を[N]回呼ぶというネスト構造にした方がいい。
122774ワット発電中さん:2010/07/12(月) 17:22:12 ID:o7SeOPCp
>>119
delay.hがコンパイル時に使われるのはdelay.hをどこかのソースで#includeしたとき。

だからmain.cがdelay.hを#includeしていればmain.cのコンパイル時にmain.cでF_CPU
が#defineされているかどうかをチェックする結果になる。

ヘッダーファイルにライブラリに存在する関数の定義があったとしても、コンパイラ
から見ればそのヘッダーファイルとライブラリオブジェクトには何の関係もない。
(手違いでライブラリとそれに対応するヘッダーの内容が食い違っていると大惨事が
起きることがある)
123774ワット発電中さん:2010/07/12(月) 17:43:29 ID:519dRjB8
>大惨事

pgrw
124774ワット発電中さん:2010/07/12(月) 18:33:56 ID:o7SeOPCp
今ふと思いついたが、もし
・68000のようにアドレスレジスタとデータレジスタが別にあるアーキテクチャで
・引数がレジスタ渡しでコンパイルされる
の環境が存在すると

foo.c:
void wrmem(char *p,char x)
{
*p = x;
}

bar.c:
void wrmem(char x,char *p); /* 実体(foo.c)とプロトタイプが一致してない! */

void hoge(char *buf)
{
wrmem(0,buf);
}

みたいなのが普通に動いちゃったりするんだろうか…もちろん特大の地雷になるが…
125774ワット発電中さん:2010/07/12(月) 18:50:12 ID:519dRjB8
>地雷

pgr w
126774ワット発電中さん:2010/07/12(月) 23:05:21 ID:7TtlEPsK
誰かincludeの動作を説明してやれよw
・defineが有効なのは、コンパイラに渡されたそれぞれの"ファイルの内容"の中でのみ(もちろんdefine以降)
・incudeは、コンパイラに渡す前にプリプロセッサによってincludeされたファイルで置き換えられる

なので、includeされたファイルは、include元の"ファイルの内容"に含まれてコンパイルされる
includeは、指定したファイルの内容を自動でコピペしてくれてるってこと
127774ワット発電中さん:2010/07/12(月) 23:24:00 ID:519dRjB8
それを言うならincludeの動作じゃなくてプリプロセッサの動作だろ
128774ワット発電中さん:2010/07/13(火) 00:20:00 ID:l6lToWX0
わからない人間を指してw付けるのは何となく程度が低いかなっと
せっかくいいこと書いてるのに、>>126はツンデレだな
で、delay.hの件は>>122に、
includeの動作は>>126に書いてあるとおり

ソースをmain.cとsub.cとかに分割した場合、動作のイメージとしては

1.main.cに対してmain.c内に記述されたincludeをコピペ
2.コピペされて完全体となったmain.cを単体でコンパイル
3.sub.cも同様に単体でコンパイル
4.出来上がったオブジェクトファイルとかライブラリとかをリンク

細かいコンパイラの動作はともかく、概念はこんな感じ
129774ワット発電中さん:2010/07/13(火) 01:05:07 ID:XNMDCPZt
コンパイラディレクティブの使い方がわからんというより、
プログラムを複数のソースファイルに分割する設計のパターンがわからんのだろうな。

「main.cの中でdefineされたシンボルの定義をkansu.cにも行き渡らせたい」
というのはすでにおかしな方向に行こうとしてるわけで、
「共通のシンボルを定義するヘッダファイルを作り、それを各.cファイルからincludeする」
という定番の方法を教えてあげれば済む話だと思う。
130774ワット発電中さん:2010/07/13(火) 05:09:47 ID:E0f5VKUo
基本的にF_CPUは最終的なhexを生成するMakefile上で
定義するもので、makeでリビルドされないライブラリから
F_CPUのような定数を参照したい場合には、ライブラリの
関数引数などで動的にユーザーから渡してもらう。
基本的にこの戦略以外は取ってはならないと思うよ。
あるいは、ライブラリをサポートするF_CPU毎に分ける。

131774ワット発電中さん:2010/07/13(火) 05:24:13 ID:E0f5VKUo
ただしavr-gccの生成コード効率面から言えば、
こういった定数を動的に渡す戦略はありえないので、
F_CPU(Makefile)が変わる度に、ライブラリを含めた
全体のリビルドを行わせた方が良い・・
132774ワット発電中さん:2010/07/13(火) 08:09:57 ID:l6lToWX0
ってか、avr-gcc使ってる限りはCPU速度をプロジェクトで設定すれば、わざわざソースで書かなくても良いような・・・
勝手にコンパイラオプションで渡してくれるし
makeも普通に使ってりゃ生成してくれたので十分だ
133116:2010/07/13(火) 08:48:46 ID:a91YzZMO
>>120
詳しい説明ありございます。データシートもDLし見ました。

うーん、設定が悪いのかやはりうまくいきません。
一番良い状態がやはり GDLで
char txb[10],rxb[10];
main関数内で rs_init(br115200, txb, sizeof(txb), rxb, sizeof(rxb));
sei();
int 計算用変数〜計算
rs_printf("A+B=%d", C);
STプロパティ(ボーレート115200) で、結果が
A+B=3になります。(6文字までしか出ない本来の結果は10+20=30)

ボーレートも色々変更してみましたが、最終的に
STのプロパティは115200(default)でないと、GDL設定で色々変更しても
ATL1.2 や、 f:~~~ g:~~~の画面が文字化けしてしまい、何もできないこと

300〜115200までしか幅を変えれなかったので、パターンを試してみましたがだめでした。
プログラムとかではなくて転送が判らないのが全く判らない…

そして上のほう見てて思ったのだけれど、プログラム全体でマクロ定義したものを使いたい
のであれば、
sharedata.h(共有データ.ヘッダー)を作ってそこに#define XXXX (yy)
みたいなのを作ればいいんじゃないのかな?
134774ワット発電中さん:2010/07/13(火) 09:47:14 ID:xMEs+wUi
皆さんありがとう
大変参考になります

まだなんか分かりかねる挙動なので教えてください
以下のファイルがあるとします(プログラム的な実用性は別として)

・Usart.h
--------------------------------------------------
#ifndef F_CPU

#warning "Usart.h [The F_CPU is not set. It provisionally sets it to 1MHz.]"
#define F_CPU 1000000UL

#endif

#ifndef U_BAUD

#warning "Usart.h [The U_BAUD is not set. It provisionally sets it to 9600bps.]"
#define U_BAUD 9600

#endif
--------------------------------------------------

・Main.c
--------------------------------------------------
#define U_BAUD 19200
#define F_CPU 20000000UL

#include "Usart.h"

int main(void)
{

while(TRUE){nop();}

}
--------------------------------------------------
135774ワット発電中さん:2010/07/13(火) 09:48:17 ID:xMEs+wUi

これをコンパイルすると、下のようなソースをコンパイルしたのと同じだと思ってるわけです

・Main.c
--------------------------------------------------
#define U_BAUD 19200

#ifndef F_CPU

#warning "Usart.h [The F_CPU is not set. It provisionally sets it to 1MHz.]"
#define F_CPU 1000000UL

#endif

#ifndef U_BAUD

#warning "Usart.h [The U_BAUD is not set. It provisionally sets it to 9600bps.]"
#define U_BAUD 9600

#endif

int main(void)
{

while(TRUE){nop();}

}
--------------------------------------------------

ところが、これをコンパイルすると、警告として「Usart.h [The U_BAUD is not set. It provisionally sets it to 9600bps.」が表示されてしまうということで、>>107を投稿したのです
それでも何故か、F_CPU の警告は出ないので「ヘッダファイルには届いてるっぽい」という一文はここから来てます

自分の理解力の問題なんだろうけど、わからん!
136774ワット発電中さん:2010/07/13(火) 09:49:34 ID:xMEs+wUi
>>135
+#define F_CPU 20000000UL
#define U_BAUD 19200

書き忘れです
137116:2010/07/13(火) 10:08:13 ID:a91YzZMO
>>135
mainでdefineする意味あるの?hとぶつかりあってる気がするけど…
個人的には#include から始まって、次に#defineのほうがいいと思ったりもする

mainでU_BAUDとF_CPUをマクロ定義して、User.h呼び出し

そしてUser.hでもifndef = 定義されていないだから
F_CPUが#defineされて、mainと被る warningに文字セット

更にしたにいってU_BAUDもifndefだから通過してmainのU_BAUDと被る
んでwarningに#defineで入ってるのに更にぶち込もうとしてるわけで…

かくなら
mainは
#include "User.h"だけにして
User.hのwarningをwarning1とかwarning2とかにしたらいいんじゃない?
一緒のwarningじゃないとダメなのかしら

間違ってたらゴメン
138116:2010/07/13(火) 10:13:02 ID:a91YzZMO
>>135 多分mainにするとこんな感じ

#define U_BAUD 19200
#define F_CPU 20000000UL

#warning "Usart.h [The F_CPU is not set. It provisionally sets it to 1MHz.]"
#define F_CPU 1000000UL

#warning "Usart.h [The U_BAUD is not set. It provisionally sets it to 9600bps.]"
#define U_BAUD 9600

int main(void)
{

while(TRUE){nop();}

}

main.cの値はUser.hにはいかない(’’
139774ワット発電中さん:2010/07/13(火) 10:59:59 ID:kV1/FBCw
>134
その書き方自体は合ってるぞ。それでwarningが出る筈はない。
おかしいところは他にある。
140774ワット発電中さん:2010/07/13(火) 11:30:12 ID:yrFXbgdm
>>134-136
既に >>139 氏が指摘しているが、
「#define U_BAUD 19200 」よりも後の行で「#include "Usart.h"」している
>>134 の main.c をコンパイルしたのなら、そもそも、

「Usart.h [The U_BAUD is not set. It provisionally sets it to 9600bps.」

という警告は出ないと思う。

F_CPU の警告が出ないのは、おそらく「AVR Studio」内でプロジェクトの一部と
して作成してビルドしていて、プロジェクト設定の「General」タブのCPUクロック
設定(Frequency: xxxxxxxx Hz)から、「-DF_CPU=xxxxxxxxUL」というコンパイル
オプションが自動生成されているからでしょう。

ただ、プロジェクト設定と異なる「#define F_CPU ...」を、「#ifndef 〜 #iendif」
で囲まないで、ソース中に記述していると、再定義エラーになると思う。

「Project Options」ウィンドウの、左リボンで「Custam Options」を選べば、
「Custom Compilation Options」の右側リストボックスに、クロック設定が
反映された「-DF_CPU=xxxxxxxxUL」があるはず。

「AVR Studio」の[Build]-[Export Makefile]メニューからmakeファイルを生成し、
作成されたAmakeファイルの中の「CFLAGS += ...」の行から「-DF_CPU=xxxxxxxxUL」
の部分を消して、コマンドラインから「make」するなり、コマンドプロンプトから
直接avr-gccのコンパイルを実行すれば、「U_BAUD」の扱われ方と同じ結果になる
はず。
141774ワット発電中さん:2010/07/13(火) 11:41:28 ID:yrFXbgdm
今回のような場合は、以下のようなコードで解決できる。

● LibUsart.h
--------------------------------------------------
#ifndef F_CPU
#warning "Usart.h [The F_CPU is not set. It provisionally sets it to 1MHz.]"
#define F_CPU 1000000UL
#endif


#ifndef U_BAUD
#warning "Usart.h [The U_BAUD is not set. It provisionally sets it to 9600bps.]"
#define U_BAUD 9600
#endif

void SetCpuFrquency(ULONG nClockFreq);
void SetBaudRate(USHORT nSpeed);
--------------------------------------------------

● LiLibUsart.c
--------------------------------------------------
#include "LibUsart.h"

static ULONG s_dwCpuFrquency=F_CPU;   // ここでの初期値は LibUsart.c コンパイル時の「F_CPU」
static USHOT s_wBaudRate=U_BAUD;     // ここでの初期値は LibUsart.c コンパイル時の「U_BAUD]

void SetCpuFrquency(ULONG nClockFreq /**< CPU動作クロック(Hz単位) */ )
{
  if(!s_dwCpuFrquency) // 0Hzで初期値に戻す
    s_dwCpuFrquency=F_CPU;
  else
    s_dwCpuFrquency=nClockFreq;
  SetBaudRate(s_wBaudRate);     // CPUクロック変更でボーレートを再計算して設定
}

void SetBaudRate(USHORT nSpeed /**< 通信速度(bps単位) */ )
{
  // USART機能(Tx/Rx)停止 ... Code省略

  if(!nSpeed)             // 0bpsでデフォルト(O除算エラー防止を兼ねる)
    nSpeed=U_BAUD;          //

  nDiv=(UINT)(((double)s_dwCpuFrquency)/(16.0*nSpeed)+0.5)-1;
  UBRR=nDiv;

  // USART機能(Tx/Rx)開始 ... Code省略
}
--------------------------------------------------
142774ワット発電中さん:2010/07/13(火) 11:42:16 ID:yrFXbgdm
(続き)

● MyProject.h
--------------------------------------------------
#ifndef F_CPU        // コンパイルオプション「-DF_CPU=xxx」未設定時に適用
#define F_CPU 2000000UL   // 今回のCPUは2MHzとする(デフォルト)
#endif

#ifndef U_BAUD       // コンパイルオプション「-DU_BAUD=xxx」未設定時に適用
#define U_BAUD 38400    // 今回のUARTは38400bpsとする(デフォルト)
#endif

#include "LibUsart.h"
--------------------------------------------------

● main.c
--------------------------------------------------
#include "MyProject.h"         // プロジェクト共通の定義

int main(void)
{
  SetCpuFrquency(F_CPU);
  SetBaudRate(U_BAUD);

  …
}
--------------------------------------------------
143774ワット発電中さん:2010/07/13(火) 14:15:38 ID:IaYJFTXZ
CPU速度をハードから読み取れるようには出来ないんでしょうか?
144774ワット発電中さん:2010/07/13(火) 14:41:20 ID:bj3La155
>>143
君が自分の速度を読み取るときには何を使いますか?
145774ワット発電中さん:2010/07/13(火) 17:49:53 ID:2n/WNlRI
早く動いていると重くなるとかか?
146774ワット発電中さん:2010/07/13(火) 20:33:34 ID:Fqn0ouiY
>>143 絶対精度を知るなら、外部から基準になるパルスを与えなければ無理だろ
単純にマイコンのクロックを出すならCLKOUTのヒューズを立てればPB0から出る
そのパルスをカウントしろ
147774ワット発電中さん:2010/07/13(火) 21:29:45 ID:yrFXbgdm
>>144-145
モールドパッケージの体脂肪率をA/Dで計測して、メタボ率を...。

>>146
CLKOUTのパルスを数えるにしても、自身が何MHzの水晶で駆動されているか
わからないのに、32.768kHzのRTCとか、確実な時間単位がわかるハードが
ないとダメだと思うが?

内蔵タイマを使って[N]msといった基準時間を作る場合には、あらかじめ
F_CPUなどから分周比を計算しておく必要がある。

精度はともかく、一時的に内蔵RC発振(例えばmega328Pなら8MHzの1択)に切り
替えてやれば、基準時間はF_CPU=8000000UL決め打ちで時間を作れるが、内蔵
RC発振で動いている状態では、外部発振の水晶は止まっている。
148774ワット発電中さん:2010/07/13(火) 21:44:35 ID:SmTOWXY9
WDT(約128kHz)を走らせて、WDT割り込みがかかるまでにいくつタイマーが
カウントできるかで、おおまかなクロック周波数は分かるよ。

AT90USB162 のブートローダーは 8MHz/16MHz X'talのどちらが接続されてるかを
この手法で判定して、USBブロックに 8MHz入力するように PLLCSRを設定してる。
149774ワット発電中さん:2010/07/13(火) 23:03:44 ID:Fqn0ouiY
勉強になるな
150116続:2010/07/15(木) 08:38:06 ID:qx/f7NWJ
何とか何とか進めていって、サーボモーターで躓いてしまったorz
2日悩んだけど解決しない…

BTC067Bで、マイコン=9Vアルカリ電池→5Vレギュレータ変換
サーボ=1800mAh単三ニッケル水素電池*4 =テスタでみると5.8-5.9V位

サーボから伸びている線が 端子が出ていない方向から見て
橙 赤 茶
多分これは、 橙=信号 赤=V 茶=GND だと思うんだ
んでサーボを1*40ピンから切り取った奴(3つニョキ)接続

回路図的には、
橙→1kΩ→PC0
赤→+電圧(赤線)
茶→スイッチ
につなげてるんだが、全く動かない

接続している部分(|||←ピンにグリグリ押し込むとピクピク動く)
んで逆にしてみるとやっぱりピクピク動くが、ピーという異音が聞こえてくるときと
変な回転を始める時がある(マイコン電源切ってても回転始まった)

目視してる分にはハンダ同士の接触は見られない

テストに、初期搭載されているLEDを点滅させるよう送ってみたらきちんと点滅した
プログラム的にも多分問題はなさそうとは思うんだけど、やはりハンダ付けだろうか…
プログラムに続く
151116続:2010/07/15(木) 08:59:02 ID:qx/f7NWJ
プログラム
#include <avr/io.h> //IO
#include <avr/interrupt.h> //割り込み
#include <avr/signal.h> //割り込みベクタ

#define WAIT_TIME (500)//500ms(0.5秒)
#define MSEC_TIME (250)//1ms
#define GO (90)
#define BACK (120)
#define INTERRUPT (40000) //20s毎に割り込み

//グローバル変数
char G_servoPos; //サーボ角度

SIGNAL(SIG_OUTPUT_COMPARE0)
{
PORTC &= ~(1 << PC0);
TCCR0 &= ~(1 << CS02);
TCNT0 ^= TCNT0;
}

SIGNAL(SIG_OUTPUT_COMPARE1A)
{
PORTC |= (1 << PC0);
OCR0 = G_servoPos;
TCCR0 |= (1 << CS02);
}
//プロとタイム宣言
void waitMs(int msec); //待機関数
152116続:2010/07/15(木) 09:00:37 ID:qx/f7NWJ
プロトタイプ宣言だったすまん

//メイン関数
int main(void)
{
//PC0設定
DDRC |= (1 << PC0);
PORTC &= ~(1 << PC0);

//タイマーカウント1設定
TIMSK |= (1 << OCIE1A);
TCCR1B |= (1 << WGM12);
OCR1A = INTERRUPT;

//タイマーカウント0の設定
TIMSK |= (1 << OCIE0);
SREG |= (1 << SREG_I);
TCCR1B |= (1 << CS11);
while(1){
G_servoPos = GO;
waitMs(WAIT_TIME);

G_servoPos = BACK;
waitMs(WAIT_TIME);
}
}

void waitMs(int msec)
{
int cnt;

//引数分待機
for(cnt = 0; cnt < msec; cnt++){
TCNT2 = 0x00;
//1ms待機
while(TCNT2 < MSEC_TIME){
;
}
}
}

使用サーボは
GWS S03T / 2BB
トルク 8.0kg-cm 速度0.27sec/60゜(6V)
重量 46g
サイズ 39.5x20.0x39.6mm

パルスモニターを持っていないんだがやっぱり買うべきかなぁ…
153774ワット発電中さん:2010/07/15(木) 09:58:13 ID:6pVDJzx8
>>150
> 回路図的には、
> 橙→1kΩ→PC0
> 赤→+電圧(赤線)
> 茶→スイッチ
> につなげてるんだが、全く動かない

とりあえずソフトはまだ見てないが、定数の定義が正しいとしたら、
サーボのパルス周期が長すぎる気がするな。...

気になったのだが、「茶→スイッチ」の「スイッチ」の先はどこへ?
動いているんだから、サーボ電源の「0V」へ繋がっているのか?

それと、サーボ用電源(1800mAh単三ニッケル水素電池*4)の「0V」と、
BTC067Bマイコン用電源(9Vアルカリ電池)の「0V」はちゃんと接続して
あるよな?

それぞれの電圧はあくまでそれぞれの「GND(0V)」からの相対的な電位で
あって、絶対零度みたいに、どこから見ても0Vとか存在しないから。

ゆとり教育の成果のあらわれなのか、どうも最近は、基本的なコトを知ら
ずに電気やソフトいじってる香具師が多い。

まだ個人の趣味ならいいが、それを仕事でやってたりする。
もはや驚きを通り越して怖い。知らないって最強かも。
154116続:2010/07/15(木) 10:47:43 ID:qx/f7NWJ
>>153
橙→1kΩ→PC0
赤→+電圧(赤線)
茶→スイッチON部分→マイコンのGND(マイコン接続とは反対側)
スイッチの中央部分はサーボ用のGNDと接続

マイコン用のスイッチとサーボ用のスイッチで分けてある

簡単な回路図(回路図モドキになってしまうが)ちょっと書いてみる
155774ワット発電中さん:2010/07/15(木) 11:02:18 ID:G0mXC3Rf
ウェイト用のタイマ2の分周比とタイマスタートはどこいった?
156116続:2010/07/15(木) 11:03:23 ID:qx/f7NWJ
157774ワット発電中さん:2010/07/15(木) 11:10:30 ID:6pVDJzx8
>>154
まずは、何がやりたい目的(できるだろうという考え)で、わざわざ[GND]
同士の間にスイッチを入れているのか、それから聞いてみようか?
158116続:2010/07/15(木) 11:17:18 ID:qx/f7NWJ
>>157
マイコンだけの電源とサーボだけの電源を分けたかった為
マイコンだけの処理をしたいときにサーボも動いたら困るなーと

最も電池を抜けばいいじゃないって言われたら確かに、って今更に
思ったけど
159116続:2010/07/15(木) 11:33:33 ID:qx/f7NWJ
>>155
ごめん、抜けてたわ…
修正コメント加筆 連レスすまん

#include <avr/io.h> //IO
#include <avr/interrupt.h> //割り込み
#include <avr/signal.h> //割り込みベクタ

#define WAIT_TIME (500)//500ms(0.5秒)
#define MSEC_TIME (250)//1ms
#define GO (90)
#define BACK (120)
#define INTERRUPT (40000) //20s毎に割り込み

//グローバル変数
char G_servoPos; //サーボ角度

//タイマカウンタ0の比較割り込み
SIGNAL(SIG_OUTPUT_COMPARE0)
{
PORTC &= ~(1 << PC0); //割り込みが発生した場合PC0を0にする
TCCR0 &= ~(1 << CS02); //同時にタイマカウンタ停止(256分周)
TCNT0 ^= TCNT0; //タイマカウンタ0を初期化
}

//タイマカウンタ1の比較割り込み
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
PORTC |= (1 << PC0); //割り込みが発生した場合PC0を1にする
OCR0 = G_servoPos; //比較レジスタに位置(角度)を保存
TCCR0 |= (1 << CS02); //タイマカウント0をスタート(256分周)
}

//プロトタイプ宣言
void waitMs(int msec); //待機関数

160116続:2010/07/15(木) 11:34:38 ID:qx/f7NWJ
//メイン関数
int main(void)
{
//PC0設定
DDRC |= (1 << PC0); //特殊レジスタにPC0set
PORTC &= ~(1 << PC0); //0でAND

//タイマカウント1設定
TIMSK |= (1 << OCIE1A); //タイマカウント1比較割り込み Aを許可
TCCR1B |= (1 << WGM12); //タイマカウント1をCTCモード
OCR1A = INTERRUPT; //20ミリ秒(8分周)セット

//タイマーカウント0の設定
TIMSK |= (1 << OCIE0); //タイマカウンタ0の比較割り込みを許可
SREG |= (1 << SREG_I); //全ヶ所割り込み許可
TCCR1B |= (1 << CS11); //タイマカウント1 20ミリ秒(8分周)開始

//無限ループ
while(1){
G_servoPos = GO; //角度を90度に設定
waitMs(WAIT_TIME); //0.5秒停止

G_servoPos = BACK; //角度を120度に設定
waitMs(WAIT_TIME); //0.5秒停止
}
}

//指定された時間動作を待つ関数
void waitMs(int msec)
{
int cnt; //待機時間計算用

TCCR2 |= (1 << CS22); //64分周でタイマカウンタ2を開始
//引数分待機
for(cnt = 0; cnt < msec; cnt++){
TCNT2 ^= TCNT2; //タイマカウント2初期化
//1ms待機
while(TCNT2 < MSEC_TIME){
; //タイマカウント2が250以上になったら抜ける
}
}
}
161774ワット発電中さん:2010/07/15(木) 11:55:45 ID:6pVDJzx8
>>158
低電圧だからいいけど、GNDは接続して、電源スイッチは+側に入れるべき。 本当に動く
状態に接続されているのか、ソフト側の問題なのか、話の続きはそれからだ。コピぺでは、
問題を切り分ける能力は身に付かない。

とりあえず、割り込みやPWMを使わずに、PWMパルスをPC0へ出すコードを適当に書いてみた。
メモ帳で書いてコンパイルできるかどうかも試していないのであしからず。
配線があっていれば、おおむね4秒周期でサーボが首振り動作するはず。
//-------------------------------------------------------------------------------
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>

#define SERVO_PORT PORTC      // サーボ制御パルス信号出力に使うポートの定義
#define SERVO_CTRL (0)       // サーボ制御パルス信号出力に使うポートのbit位置(0=bit0)

void main()
{
  bool cw_ccw=false;
  int nPulseCount,nPulseWidth_H,nPulseWidth_L;
  int nSpeedCount;
  volatile uchar *pDataPort;

  pDataPort=SERVO_PORT;            // サーボ制御パルス信号出力に使うポート(PORTx)
  *(pDataPort-1)=(1<<SERVO_CTRL);       // データ方向レジスタ(DDRx)

  nPulseWidth_H=15;              // 初期位置=1.5ms(中心)
  for(;;)                   // 無限LOOP
  {
    for(nSpeedCount=0;nSpeedCount<10;nSpeedCount++)   // 何パルス出力したらサーボ角度を変更するか(20ms単位*10=200ms=0.2ms)
    {
      nPulseWidth_L=20-nPulseWidth_H;         // 'L'期間を求める

      *(pDataPort)|=(1<<SERVO_CTRL);         // サーボ制御パルス信号出力=On('H')
      for(nPulseCount=0;nPulseCount<nPulseWidth_H;nPulseCount++)
        delay_us(100);           // 0.1ms単位

      *(pDataPort)&=~(1<<SERVO_CTRL);         // サーボ制御パルス信号出力=Off('L')
      for(nPulseCount=0;nPulseCount<nPulseWidth_L;nPulseCount++)
        delay_us(100);           // 0.1ms単位

      for(nPulseCount=0;nPulseCount<(200-20);nPulseCount++)  // 全体周期の調整(20ms-2ms)
        delay_us(100);           // 0.1ms単位
    }
    if(cw_ccw)
    {
      if(++nPulseWidth_H>=20)      // 2.0ms以上になったら
        cw_ccw=false;         // パルス幅減少方向へ(回転方向の反転)
    }
    else
    {
      if(--nPulseWidth_H<=10)      // 1.0ms以下になったら
        cw_ccw=true;          // パルス幅増加方向へ(回転方向の反転)
    }
  }
}
//-------------------------------------------------------------------------------
162774ワット発電中さん:2010/07/15(木) 13:12:19 ID:iPYwGadd
デジカメで接続部の写真撮ったりすると問題解決に役立つ。
あとコードはこういうのを使うとタブが消えなくて便利。
http://ja.pastebin.ca/
163116続:2010/07/15(木) 13:32:39 ID:qx/f7NWJ
>>161
サンプルありがとう
確かにGNDにスライドスタートは変な気がする

とりあえずサンプルが動くかチェックしてみる
まだコードの動きが全部分かったわけじゃないから解読中だけど
分からない所が

コンパイルエラーとしてはcにはbool型がないので
そこは#define false (0) true (1)とtypedef int boolで直したら
消えたんだけど

volatile uchar *pDataPort;
が良く分からない。

今調べてる最中だけど、
volatileはボーレートを、unsigned char型のポインタ型で宣言して
ポインタに、SERVO_PORT PORTを入れる
PORTに関してはPORTCを使っているからこれを
#define SERVO_PORT PORTCに変更

エラーがやっぱり
volatile uchar *pDataPort;だけ残っている
後は警告で
for(nPulseCount=0;nPulseCount<nPulseWidth_H;nPulseCount++){
delay_us(100);// 0.1ms単位
}
のdelay_usに発生(他の場所はなし)

もうちょっと考えてみる
こういった何だろう、C言語入門だとか見たいに初心者でも分かりやすく
書いてあるお勧めのサイトとかあったら教えて欲しい
164116続:2010/07/15(木) 13:39:15 ID:qx/f7NWJ
>>162
携帯今日持ってきてないから、問題解決出来なかったら
明日にはupするわ…
最も何回もハンダ→取り外しやってたら基盤のワッカが取れて
ハンダが流れこまなくなって違う場所に移設→配線で酷い事になってるんだが・・

基盤自体は100円だし、買い換えるしかないか…
コードに関しては、次書く機会あったら是非活用させて貰うわ

エラー内容
testPro.c:17: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
testPro.c:17: error: 'pDataPort' undeclared (first use in this function)
testPro.c:17: error: (Each undeclared identifier is reported only once
testPro.c:17: error: for each function it appears in.)
testPro.c:31: warning: implicit declaration of function 'delay_us'
165774ワット発電中さん:2010/07/15(木) 14:50:11 ID:6pVDJzx8
> エラーがやっぱり
> volatile uchar *pDataPort;だけ残っている

下記のように、「uchar」→「unsigned char」に変更。
volatile unsigned char *pDataPort;
あるいは、
typedef unsigned char uchar
で、エラーは出なくなるかと。つい、いつものクセが出て。(w

バイト型のデータポートを指す「pDataPort」ポインタを介して、I/O
レジスタにアクセスしているだけ。 なんでかと言うと、「DDRx」と
「PORTx」を別々に#defineすると、片方だけ修正し忘れとかするんで。

全部のAVRについて調べたわけじゃないけど、「DDRx」は「PORTx」の1つ
下の番地(アドレス)にあるので、pDataPortに。PORTxの番地(アドレス)を
セットしておくと、

*(pDataPort)=nByteData;   // 「PORTx」レジスタへの値の書き込み
*(pDataPort-1)=nByteData;  // 「DDRx」レジスタへの値の書き込み

となる。今回のようなケースでは、余りメリットはないが、関数へレジスタ
のアドレスを渡すような時に使える。

void PortPullUp(volatile BYTE *pPORT,BYTE cData,BYTE cMask)
{
  *(pPORT )|=(cData&cMask);
  *(pPOR-1)=cMask;
}

  PortPullUp(PORTB,0x05,0x55);
  PortPullUp(PORTC,0x0A,0xAA);

> testPro.c:31: warning: implicit declaration of function 'delay_us'

こっちは、プロトタイプ宣言がないという警告。

「delay_us」→「_delay_us」先頭に'_'(アンダースコア)付きに変更で
エラーは出なくなるかと。

_delay_us()自体は'[C:\WinAVRxxxxxxxx/avr/include/]util/delay.h'で
マクロ定義されているインライン関数。
166116続:2010/07/15(木) 15:15:25 ID:qx/f7NWJ
>>165
コメント+分かりやすい説明有難う
_付ければいいなんて目から鱗だわ
@アドレス位置も確かにって感じで、スッキリして良い

結論から言うと
ハンダor配線がやっぱり駄目なようだ_|=|○

プログラムをf→gで送っても駄目だし、SWをOFF→ONにしてもうんともすんともいわない

基盤がもう駄目な子だから、今使ってる基盤より一回り位大きいの買って再セット
してみるわ

再セットしても駄目だったらまたきます…
取りあえず、修正してまとめて追加したテスト用コード一応載せておきます
167116続:2010/07/15(木) 15:16:59 ID:qx/f7NWJ
http://ja.pastebin.ca/1900864
URLが出来るのね
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>

#define SERVO_PORT PORTC// サーボ制御パルス信号出力に使うポートの定義
#define SERVO_CTRL (0) // サーボ制御パルス信号出力に使うポートのbit位置(0=bit0)
#define false (0) // false擬似BOOL
#define true (1) // true 擬似BOOL
typedef int bool; // BOOL型作成


int main(void)
{
bool cw_ccw=false; //サーボの回転方向判定セット
int nPulseCount,nPulseWidth_H,nPulseWidth_L;
int nSpeedCount;
volatile unsigned char *pDataPort; //Byte型データポートへのポインタ作成

pDataPort=SERVO_PORT;// サーボ制御パルス信号出力に使うポート(PORTC) をセット
*(pDataPort - 1) = (1 << SERVO_CTRL);// データ方向レジスタ(PORTC($15-1) = DDRC($14))

nPulseWidth_H = 15;// 初期位置=1.5ms(中心)
for(;;)// 無限LOOP
{
for(nSpeedCount = 0; nSpeedCount < 10; nSpeedCount++)// 何パルス出力したらサーボ角度を変更するか(20ms単位*10=200ms=0.2ms)
{
nPulseWidth_L = (20 - nPulseWidth_H);// 'L'期間を求める

*(pDataPort) |= (1 << SERVO_CTRL);// サーボ制御パルス信号出力=On('H')
for(nPulseCount=0; nPulseCount < nPulseWidth_H; nPulseCount++){
_delay_us(100);// 0.1ms単位
}

*(pDataPort) &= ~( 1 << SERVO_CTRL);// サーボ制御パルス信号出力=Off('L')
for(nPulseCount = 0; nPulseCount < nPulseWidth_L; nPulseCount++){
_delay_us(100);// 0.1ms単位
}

for(nPulseCount = 0; nPulseCount < (200 - 20); nPulseCount++){// 全体周期の調整(20ms-2ms)
_delay_us(100);// 0.1ms単位
}
}
if(cw_ccw == true){
if(++nPulseWidth_H >= 20){// 2.0ms以上になったら
cw_ccw=false; // パルス幅減少方向へ(回転方向の反転)
}
}
else{
if(--nPulseWidth_H <= 10){// 1.0ms以下になったら
cw_ccw=true; // パルス幅増加方向へ(回転方向の反転)
}
}
}
return(0); //正常終了
}
168774ワット発電中さん:2010/07/15(木) 16:15:57 ID:p9PMFwSa
数行なら別にここでもいいんだが、
糞コード連投されると読む気すら無くなるから。
わかるな?
http://codepad.org/
http://ja.pastebin.ca/


定数はなるべくdelay_us(100);とか>=20とかちりばめないで、
自分で#defineしてる箇所にでもまとめてくれなさい。
それから回路図はちゃんと書け。
169161:2010/07/15(木) 16:19:17 ID:6pVDJzx8
自己ふぉ。(;_;) ... さらに訂正追加(T_T)

[誤]  pDataPort=SERVO_PORT;   // サーボ制御パルス信号出力に使うポート(PORTx)

[正]  pDataPort=&SERVO_PORT;  // サーボ制御パルス信号出力に使うポート(PORTx)

[&]をつけないと、pDataPortにはI/Oアドレスではなく、I/Oポートから読んだ
値がアドレス値として入り、全然関係ないポートにアクセスしてしまう。

面倒なので、試しに手元のハードで動かしてみた。サーボモータを繋いでいない
けど、一応オシロでポート出力を確認して、ちゃんと動いている。

_delay_ms()や、_delay_us()は、ソフトループで実現しており、クロック
依存なので、ビルドする際は、AVR Studioのプロジェクト設定またはMAKEの
オプションで、「F_CPU(CPU Frequency:Hz単位)」を正しく設定して、クロ
ック周辺のヒューズ設定も確認すること。
170774ワット発電中さん:2010/07/15(木) 19:54:13 ID:sJpxHlLx
最初の質問見て、なんとかしてやろうか、と思ったが
未読を読み進めるうちに萎えた
171774ワット発電中さん:2010/07/15(木) 20:11:25 ID:AtrMEPnc
>>170
me too.
172774ワット発電中さん:2010/07/19(月) 00:30:03 ID:P0c6xjas
おまいらのせいでレスが止まったじゃないか
何か話題振れよ
173774ワット発電中さん:2010/07/19(月) 00:43:53 ID:kSHCCGUL
若者のAVR離れか
174774ワット発電中さん:2010/07/19(月) 09:08:44 ID:7m0WYQaz
みんなArduinoに流れたとか?
175774ワット発電中さん:2010/07/19(月) 14:27:20 ID:+n7wXNXP
Arduinoは実験、仮組みで使うものだろうから(完成品の度に買い足すわけない)
仮にユーザーが増えたんなら、AVR入門者層が厚くなったってことで、まぁいいことだろう。
176774ワット発電中さん:2010/07/19(月) 17:11:26 ID:pxMgWO8k
あれをAVR入門というのもちょっとなぁw
177774ワット発電中さん:2010/07/19(月) 17:16:39 ID:wDtEy9Vq
Arduinoは、邪道です。
ありゃぁ子供の玩具の世界です。
178774ワット発電中さん:2010/07/19(月) 21:51:34 ID:7prdxYgy
Arduino使ったことのないオレに3行でAVRとの違いを説明してくれ
179774ワット発電中さん:2010/07/19(月) 22:54:25 ID:bxkzkG3J
>>178
・ブートローダ変更で、ライタI/FがSPIからUARTに変更している。
・みんなパクリまくりで、周辺回路がゆるーく共通化されている。
・ボードにAVR乗せるだけなので、誰でもハードデベロッパになれる。

間違ってないよね?
180774ワット発電中さん:2010/07/19(月) 23:21:03 ID:x0byie5x
arduinoはICやら周辺デバイスやらの動作テストするのに
手軽なんだよなー。
181774ワット発電中さん:2010/07/22(木) 09:09:24 ID:Ot4KvWMn
マイコン講座で初心者入門見てたけど分からないことがあります。
http://delegate.uec.ac.jp:8081/club/koken/wiki/?%A5%DE%A5%A4%A5%B3%A5%F3%B9%D6%BA%C2%2F%A5%BF%A5%A4%A5%DE%A1%BC%A5%E6%A5%CB%A5%C3%A5%C8

CS設定の部分でCS00 01 02で各種ビットを立てる位置があって、立てればいいのは分かったのですが、
これを複数書いていたらプログラムが長くなります。

色々探してみると、CS11で8分周 CS22で64分周 CS02で256分周
というのを見つけました。

CS02を1立てれば256分周になるのは分かります。「1<<CS02」
ですが、CS11とCS22で8と64分周になるのが分かりません。
8分周であるのでしたら「1<<CS01」でいいのではないでしょうか?
64分周に関しては意味不明です。

お願いします
182774ワット発電中さん:2010/07/22(木) 09:55:35 ID:LfIbNNp0
>>181
CS02,01,00 はTimer0用
CS12,11,10 はTimer1用
CS22,21,20はTimer2用
の分周比の設定ビットで、それぞれのビットの値で直接クロックの割り算をしているわけではなく、
1/1とプリスケーラで1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/1024に分周されたクロックから、
使い勝手の良さそうなものを接続して選択している、ついでにここで外部クロックの選択も行ってる、
という回路構造なので、しょうがないっす。

実際の分周比は、使ってるチップの、使ってるタイマー用のデータシートなりを参照してね。

>これを複数書いていたらプログラムが長くなります。
の意味がいまいち分からんけど、設定するビットの算出とか、その逆ってことなら
テーブル(配列)作ればいいんじゃない?はずしてたらスマソ。
183774ワット発電中さん:2010/07/22(木) 10:15:19 ID:Ot4KvWMn
>>182
なるほど!分かりやすい説明ありがとうございます。
CSxyのxはタイマーx部分何ですね。
yがビット番号とするのであれば、
CS11というのはタイマー1の、1ビット目を1にするのですから、分周が、
000 停止, 001 なし, 010 8分周, 011 64分周, 100 256分周として
ビット番号1 = 010なので8分周というのは分かりました。

しかし、CS22の64分周が分かりません。
当てはめるのであれば、タイマー2の2ビット目 = 256分周になるのではないでしょうか?

長くなるという意味ですが、CS22 = 64分周として、
理解出来る書き方では、 1<<CS01 | 1<<CS00 = 64分周と、多少ですが長くなるという意味です。
CS0xにしているのはCS21とCS20でも同じ動作になるのか上の64分周見て疑問に思ったので0で表記させていただきました。
184774ワット発電中さん:2010/07/22(木) 10:35:06 ID:LfIbNNp0
>>183
まず、Timer2は、Attiny2313には搭載されてなかったはず。

Timer2のあるAtmega88でいうなら、Timer0/Timer1とTimer2の設定ビットは意味が全然違っていて、
下のようになっておりますです。
Timer2は別のレジスタのビットで内部/外部クロックを選択するので、その分、たくさん
分周比を選択できるようになってるようです。

ビットってのは、正確に言うなら、「タイマーのビット」ではなく、
「タイマーコントロールレジスタのビット」なので、Atmelの中の人が作ったハードウェアの構造次第で
それぞれについてる意味づけは、なんでもありなわけですよ。

Timer0 (TCCR0BレジスタのCS02,CS01,CS00)
000 停止
001 1/1
010 1/8
011 1/64
100 1/256
101 1/10224
110 T0端子立ち下がりでカウント
111 T0端子立ち上がりでカウント

Timer2 (TCCR2BレジスタのCS22,CS21,CS20)
000 停止
001 1/1
010 1/8
011 1/32
100 1/64
101 1/128
110 1/256
111 1/1024
185774ワット発電中さん:2010/07/22(木) 10:43:22 ID:Ot4KvWMn
>>184
なるほど…タイマーによって、分周のビット割り当てが違うんですね
64分周にしようとした場合、CS0xであれば、011であっても
CS2xの場合100になってますね。
CS22の場合、 Timer2の2bit目を1にする=100, 1 << CS22で確かに64分周になります。

もやもやが解けました。
もう少し詳しくデータシートを読みなさいって事ですね、勉強になりました。
ありがとうございました
186774ワット発電中さん:2010/07/22(木) 12:56:37 ID:csg9Qi59
そこで >8 >16 なわけですよ
187774ワット発電中さん:2010/07/22(木) 15:21:35 ID:Albafiha
エントリーが328pって人も増えてるんかねぇ
いまだ2313でシコシコハァハァしておりますw
188774ワット発電中さん:2010/07/22(木) 19:24:07 ID:nCZziXrE
どこで売ってるのか、どこに拡張ボードがあるのかわからねえ
189774ワット発電中さん:2010/07/23(金) 00:00:18 ID:QQ1rZ37J
16ビットタイマーと8ビットタイマー
190774ワット発電中さん:2010/07/23(金) 07:19:25 ID:PijbwYAm
>>188
リアル店舗なら若松にあったよ。
もちろん若松価格だけど。
191774ワット発電中さん:2010/07/24(土) 00:35:35 ID:aiWye9gm
むごいさん価格か・・・
192774ワット発電中さん:2010/07/25(日) 09:22:08 ID:fFzuloGi
2SC1815が製造中止というのは本当ですか?
でも100個もストックあるからいいんですけどね
193774ワット発電中さん:2010/07/25(日) 14:24:26 ID:hbuoh5H+
194774ワット発電中さん:2010/07/25(日) 19:14:23 ID:HBCJKVj7
今どき定番も何も無くなってるから、影響は無いだろう
195774ワット発電中さん:2010/07/26(月) 01:23:03 ID:p8Ti/WpX
アマチュア用途では無問題。
いまどきTO-92もなかろうということで、既に2SC1815の在庫は棄てた。

p.s.
いつの間にかAVRでもHEXファイルにfuse設定を入れられるようになってたのか…。
196774ワット発電中さん:2010/07/26(月) 02:50:57 ID:EFwUgEjx
それは俺に対する挑戦なのかな?
AVRもDIPがあるから重宝しているのと同じで、リード部品が無くなったらブレッドボード試作の難しくなる。
初心者に秋月でTiny13とブレッドボードと適当なリード部品買わせて、半田レスで導入できるのが魅力だ。

回路が出来上がってしまえばリード部品入らないし、Tiny13も千石の8S2になるんだけどね。
197774ワット発電中さん:2010/07/28(水) 02:25:10 ID:qRQQn3t1
今さら昔秋月で買った手持ちのTiny26使っているんだけど、
BOD4.0VでSTK500上で5.0Vに設定しても、ポートいぢるとなぜかRESET掛かってまう。
ポートにはSTKのLED繋がってるだけなんだけどなぁ、
テスターで測っても電源電圧は5.0Vキープされてるんだけどダメなもんかねぇ・・・
個体差もなくレール買いしたの殆どそうなるw
198197:2010/07/28(水) 05:25:44 ID:qRQQn3t1
お騒がせしました。
STK500上でTiny26を使う都合ジャンパーを飛ばしていたのを忘れていました。
ポートB側の使用に制限があると思われ回路図を読んでみます。
多分ポートが衝突しているものと思われます。
199197:2010/07/28(水) 06:08:51 ID:qRQQn3t1
回路的に問題は無かったでござる。
なぜかISPのSCK(B2)と衝突していました??
ISPって実行時に開放されるよね??
STK500が故障したのかな・・・w
200774ワット発電中さん:2010/07/28(水) 13:27:32 ID:Ckv7X3QZ
がんばれ
201774ワット発電中さん:2010/07/28(水) 13:47:54 ID:ORortwr2
>>195 HEXファイルにfuse設定

詳細を教えて
202774ワット発電中さん:2010/07/28(水) 22:02:41 ID:KzMtri1H
AVRのピンの出力インピーダンスはどれくらいですか?
203774ワット発電中さん:2010/07/28(水) 22:06:27 ID:H8ISFi9w
>>201
ttp://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?AVR%2Favrdude07#j019798d
ttp://www.style-21.jp/board/form9.cgi?action=res&resno=19056&id=ekousaku&rno=19124#19124

つまりは、ヒューズやEEPROMの書き込みに関してようやくPIC並になったってことか。
調べてみたら、avr-gccは2007年頃に対応していたらしい。
204774ワット発電中さん:2010/07/28(水) 22:14:00 ID:Ae6qWCVQ
同時に書き込めたらそんなにうれしいものなのかな?
205774ワット発電中さん:2010/07/28(水) 22:29:15 ID:qRQQn3t1
色々と工作してると昔のプログラムのヒューズ設定とか忘れてるから
HEXに内包されるのは有難いかも知れんねぇ。
206202:2010/07/28(水) 22:40:33 ID:KzMtri1H
AVRのピンの出力インピーダンスを測定してみたら、約50Ωぐらいでした
結構大きいですね
207774ワット発電中さん:2010/07/29(木) 00:02:38 ID:Ffjy5WfK
>>202
データシート嫁よ…
208774ワット発電中さん:2010/07/29(木) 00:29:53 ID:n27E9vRj
mega8のフューズビットを上位下位を間違って反対にしてしまっていて
CKSELを111にで書き込んでしまって以降、AVRSPで書き込めなくなってしまったんですが、
外部クロックつけるしかないですかね…

水晶がないのとPICがあまってるんで
PICの内発を出力してXTAL1につなげば生けるかなとか思っています
209774ワット発電中さん:2010/07/29(木) 03:06:16 ID:CkK1nn3O
>>203
ありがとうございます。

>>204
ヒューズの書き込み処理を時々忘れちゃうんです。
なので、プログラムと一緒に書き込めるとTiny2313一個分くらい嬉しいです
210774ワット発電中さん:2010/07/29(木) 04:04:49 ID:I2hpPkNz
安全性とか誤操作防止のために
わざとポリシーでさせないのかと思ってた
211774ワット発電中さん:2010/07/30(金) 13:16:32 ID:nt9nvbRa
WinAVRで初めてAVRを使って遊んでいます。
__delay_ms関数を使うとコードが肥大化して、2313だとメモリが
あっという間に足りなくなってしまいます。そこで、インラインアセンブラを
利用したwait関数がありましたので、それを利用することで、時間の管理は
達成できたのですが、インラインアセンブラについてお聞かせください。
どうしても意味がわからない点が下記の点です。
time*=(F_CPU/1000000);
省略
"sbiw %1,1\n\t"   ←ここがよくわからない。lpcntを1引いている?
"brne Entry%=\n\t"
:"=&a"(lpcnt)
:"w"(time)
brneでZeroフラグがたたないとループを繰り返すと思うのですが、
引かれる値が格納される変数(たぶんlpcnt)とtimeがどこで関係しているか?
がわからなくて、なぜZeroフラグが成立するか理解できないのです。
申し訳ありませんが、おばかな私に御教示いただけると幸いです。
212774ワット発電中さん:2010/07/30(金) 14:48:09 ID:fki8lHub
インラインアセンブラはAVR固有のものでもあるまい、
ググって解決できるものはググれっておもうぞ
213774ワット発電中さん:2010/07/30(金) 14:55:55 ID:fki8lHub
214774ワット発電中さん:2010/07/30(金) 15:23:03 ID:nt9nvbRa
>>212
容易に質問をしてしまい、申し訳ありません。
AVR固有でないというヒントから、GCCのインラインアセンブラの
書き方を読んで理解しました。timeの値を1だけ引いているようですね。
ヒントを頂き、ありがとうございました。
215チラ裏:2010/07/30(金) 20:54:25 ID:GbZo8q+Z
ごぶさたです。チラ裏翻訳者です。月例報告。
今月は少しふんばって、タイマー/カウンター1までやりました。
ttp://awawa.hariko.com/chira-ura/index.html

コピペ率の高いタイマー/カウンター2の章まで完了したら、ちょっと最初から読み直して
リンク張り、修正、あと見やすさ・使いやすさ改良とかをやるつもりです。
216774ワット発電中さん:2010/07/31(土) 07:35:27 ID:BsYpgZaq
心の底から乙
217774ワット発電中さん:2010/07/31(土) 07:57:17 ID:JM9FZpmy
>>211
_delay_msは変数を渡すと浮動小数点計算になるので、えらいコードがでかくなる
定数を渡すか、自作の関数で下みたいな感じのを作ると良い

my_delay(n){
do
_delay_ms(1);
while(--n);
}

もちろんインラインアセンブラで頑張るのも良い
218774ワット発電中さん:2010/07/31(土) 13:19:36 ID:Bq0UZddd
自分はこうしてる

void Delay_ms( t ) {
while (t--) {
_delay_ms(1);
}
}
219774ワット発電中さん:2010/07/31(土) 16:22:54 ID:k44Wh8FY
知ってて書いていれば問題はないが、>>217>>218 は、引数n(t)に0を
与えられた時の挙動に互換性がないな。
220774ワット発電中さん:2010/07/31(土) 16:52:18 ID:FqnHSh02
ループ分遅くなるしなぁ
221774ワット発電中さん:2010/07/31(土) 17:00:18 ID:k44Wh8FY
>>220
ループ処理の誤差は、その分(例えば10us)を考慮して、

_delay_ms(1); を

_delay_us(990); とかにすればいいんでないの?

そこまで追い込んだところで、ループの最中に割り込み処理が入れば、
その分が誤差になるけど。
222774ワット発電中さん:2010/08/01(日) 22:28:46 ID:d2vrrtK4
ウェイト入れるのに遅くなるって言われても・・・
223774ワット発電中さん:2010/08/02(月) 03:24:38 ID:Doi9Eqmy
正確にしたいならアセンブラでどうぞ
224774ワット発電中さん:2010/08/02(月) 07:41:18 ID:y1D4GE8N
いやいやアセンブラでがんばっても正確にはならんよw
誤差蓄積が嫌ならタイマー使うし、あくまでも適当なウエイトだよ
225774ワット発電中さん:2010/08/02(月) 23:51:04 ID:9YUMSplA
正確さが要るならCPLD外付け
226774ワット発電中さん:2010/08/03(火) 00:02:10 ID:yjaz9+Xg
>>225
Morphy One IIe ですね。 クロックの周波数精度や温度特性、ジッダに
ついては、外付けのトリマで調整するんですね。 わかります。
227774ワット発電中さん:2010/08/03(火) 09:05:55 ID:wEv10ky8
思い出せそうで思い出せない。トリマと言っているがトリマじゃなかったような。
228774ワット発電中さん:2010/08/03(火) 09:56:34 ID:5wTPLPpV
バリアブルコンデンサー?
229774ワット発電中さん:2010/08/03(火) 10:32:26 ID:oightLMg
バリキャップ
230774ワット発電中さん:2010/08/03(火) 18:22:51 ID:wEv10ky8
>>229
バリキャップ、そうそうバリキャップw
231774ワット発電中さん:2010/08/03(火) 20:47:36 ID:zXeFK97I
>>228はバリコンの事だよな?
232774ワット発電中さん:2010/08/03(火) 22:58:07 ID:NIRFQRte
あんなもんはただの特性の悪いダイオードだ
233774ワット発電中さん:2010/08/08(日) 17:06:47 ID:t0nPkhYE
AVR wikiがよく落ちる.....
234774ワット発電中さん:2010/08/08(日) 18:10:44 ID:R889RRZu
あんなもんはただの特性の悪いダイオードだ
235774ワット発電中さん:2010/08/10(火) 05:05:13 ID:W9XvviPS
attiny8313が欲しい
236774ワット発電中さん:2010/08/10(火) 10:39:15 ID:6O6xpSTx
500円くらいでいいから8K版のtiny2313が欲しい。
237774ワット発電中さん:2010/08/10(火) 12:08:47 ID:q6M38C1V
そんなもんはtinyじゃない
238774ワット発電中さん:2010/08/10(火) 12:56:08 ID:+MRl7cqv
tiny2313のピン数とI/Oモジュールに対してそこまでROMが欲しい理由がわからない
ややこしいテーブルだろうか?
239774ワット発電中さん:2010/08/11(水) 08:15:49 ID:NSaTmjwF
>>238
ROMライタを多機能化するためじゃない?
240774ワット発電中さん:2010/08/11(水) 08:17:37 ID:Uph4ELBP
SOP, SSOPのAVRマイコンが欲しい。。
241774ワット発電中さん:2010/08/11(水) 08:35:24 ID:ijuFd1nL
>>238
ROMじゃなくてRAMがほしい
242774ワット発電中さん:2010/08/11(水) 16:04:55 ID:wcLsjWGI
>>240
8s2とか8s1ってSOPじゃないの?
243774ワット発電中さん:2010/08/12(木) 16:36:23 ID:iS2x0+Vt
UART付きの861でもいい
244774ワット発電中さん:2010/08/12(木) 22:27:45 ID:6k3lLay7
>>243
Tiny87 のことか?
245774ワット発電中さん:2010/08/13(金) 17:33:28 ID:6yWubMr/
ここでよいかわからないのですが...
AVRを使ってCHAN氏の回路を参考にして、SDCARDの
リーダーライターを作ろうと思っています。AVRは5Vで動かしたいのですが、
SDCARDは3.3Vですので、そのままフルスイングしてしまうと壊れそうです。
電源回路にレギュレータとレベル変換ICを使ったものを見かけます。
電源部はそれでいいとして、レベル変換のところは、ICを使わず、
各信号レベルをツェナーでドロップしたものを使っても大丈夫でしょうか?AVRとSDの
電源を別で管理したいのですが、皆様の良い知恵をお教え頂ければ幸いです。
246774ワット発電中さん:2010/08/13(金) 17:39:21 ID:PKMSE7Nd
考え方としてAVR5VでのUSB-IFでの回路とか(ライタなどで参考になると思う)で
3.3V対応できるんじゃないかな。たぶんだけど。
247774ワット発電中さん:2010/08/13(金) 17:50:35 ID:6yWubMr/
>>246
早速のアドバイスありがとうございます。
ライターを自作した経緯で、どうやってUSBの信号電圧を、
合わせているのだろう?と調べた結果、信号線とグランドの間にある
ツェナーがその役割を果たしていることを思い出し、これなら、
SPIモードで動かすSDに使えるかもしれないと思ったしだいです。
しかし、ネットでいろいろ参考になるかサイトを見ても、ツェナーで
やっている例が見つからず質問させていただいたしだいです。
USB-IFについても調べてみます。
248774ワット発電中さん:2010/08/13(金) 18:50:08 ID:XJ3hjg1h
抵抗とツェナーで行けるとは思うが
こだわるならこれ
ttp://blogs.yahoo.co.jp/gomisai/24363625.html
部品点数が増えるが動作速度とAVRの負荷的には良い
249774ワット発電中さん:2010/08/13(金) 19:15:18 ID:j5w1uuU/
大量販売しないなら1K程度の抵抗でもいいじゃまいか
250774ワット発電中さん:2010/08/13(金) 21:01:16 ID:AQxMnUiI
PICの例だけど、PIC5V、三端子で3.3V作ってSDのVDDに
PICのSDOとSCKとCSは抵抗分圧で下げて、SDからのSDOは直結

でも波形なまる
ただの抵抗の癖に
251774ワット発電中さん:2010/08/15(日) 07:01:01 ID:IPOGNOn8
どこかに小さい乱数発生プログラムないですか?
252774ワット発電中さん:2010/08/15(日) 07:53:45 ID:jNCHzAlb
>>251
あんたの頭の中にある
253774ワット発電中さん:2010/08/15(日) 08:14:50 ID:IPOGNOn8
それはAVRへの移植性とプログラムサイズを考慮すると
良い選択とはいえません
254774ワット発電中さん:2010/08/15(日) 08:16:47 ID:Q37PSh4j
>>251
擬似乱数ならそんなにステップ数食わないけど、
起動ごとに同じにならないようなシードを得ることが難しい
255774ワット発電中さん:2010/08/15(日) 09:48:50 ID:5ZQH6iSN
ADCにノイズが必ず入るようなものを拾ってシードとするとか?
256774ワット発電中さん:2010/08/15(日) 10:14:34 ID:Q37PSh4j
やっぱ何のために必要な乱数なのか教えてほしーな
257774ワット発電中さん:2010/08/15(日) 10:20:37 ID:E7Nvz++N
熱雑音をADCすると疑似ですらない本物乱数が手に入るぞ
258774ワット発電中さん:2010/08/15(日) 10:43:38 ID:Q37PSh4j
>>257
回路が面倒なだけのような・・・ サンプルplz
259774ワット発電中さん:2010/08/15(日) 10:54:52 ID:E7Nvz++N
そんなこと言われてもうち、ポンデライオンやし

乱数に関する四方山話
反射型液晶の反射板はざらざらになっていて、その型を作る時に乱数を使ったけど、
どうやっても周期性が目立ってしまうので、仕方なく硬貨をばらまいてデータを取った

デジタルリバーブの仕組みは無数のランダムな反射の寄せ集めだけれど、
そのランダムさの規則性がどうしても音の癖として聞こえてしまうので、
乱数の発生のアルゴリズムが音質を決める
260774ワット発電中さん:2010/08/15(日) 11:24:20 ID:Q37PSh4j
ttp://mirror.obi.ne.jp/d/archives/2003/08/post_10.html

既にPCのCPUには熱雑音の回路乗ってるのかぁ、初めて知ったわ。
ちょろい回路ならAVRにも載せてくれんかのぉw
261774ワット発電中さん:2010/08/16(月) 09:19:35 ID:Tzismhtc
>>248-250
アドバイスありがとうございます。
レスポンスが遅くなり、誠に申し訳ありません。
趣味の範囲なので、大量販売はしないので、
CMOS使わなくてもいければ安いなってくらいにしか
考えていなかったのですが、>>248さんの教えてくれた
説明は非常に興味深かったです。ありがとうございます。
>>250さんの方法は非常にシンプルですね。
試してみたいと思います。
本当にいろいろお教え頂き、ありがとうございました。
262774ワット発電中さん:2010/08/16(月) 18:50:22 ID:5xfZX0Uh
すいません初めてAVRを使っている者です。

ISPとI/Oポート兼用になってる端子を今はディップスイッチで分離してますが、スイッチなしで
兼用にする方法はありますか? 3ステートバッファとかいりますか?
263774ワット発電中さん:2010/08/17(火) 09:33:04 ID:uS6+5jyy
>>262
回路による、としか言いようが無いけど、例えば
・キー入力として使用していて、プルアップからキーONでGNDに
 →キーを押さなければ無接続(内蔵プルアップ)orプルアップのみ(要数KΩ以上)と同じ
・液晶へのデータ出力ピン
 →ライタから書き込み対象のAVR&液晶両方ドライブできるし、
  液晶なら変な入力しても大した問題にならない
とかなら共用できる。逆に
・AVRが動作してない時(ISP以外はHi-Z)に何が入力されるかわからないピン
・モータのドライブとか、変な信号入ると外部回路がマズイ動作をするピン
は分離しないと
その辺も考えて、ISP用のピンにそういう回路を割り当てておけばおk
264774ワット発電中さん:2010/08/17(火) 12:27:09 ID:P3bZO1ks
~RESET=LOでHiZにしとけば面倒がない
265774ワット発電中さん:2010/08/17(火) 16:29:57 ID:4lNehcFi
先日、SDのために5V→3.3Vの変換をICなしで出来ないか?
という質問をしたものです。
おかげさまで、分圧抵抗を使って行うことが出来ました!
本当にいろいろお世話になりまして、ありがとうございました。
今はまだセクタ読込みまでしか出来ていませんが、
メモリカードをマイコンで使うことが出来るようになり、感謝しています。
ありがとうございました!
266774ワット発電中さん:2010/08/18(水) 12:18:24 ID:5j64FRQH
SDカードだけならいいけど、他のSPIデバイスもある場合は
抵抗分圧や抜き差しを考慮すると隔離した方がいいかもしれない。
アナログスイッチを間にはさむとか。
267774ワット発電中さん:2010/08/18(水) 17:27:20 ID:O5EA4qHi
そもそも信号線はプルアップすべしという説は
268774ワット発電中さん:2010/08/18(水) 21:47:56 ID:ruO/lljl
SPIはプルアップ必要なかったんじゃなかったっけ?
269774ワット発電中さん:2010/08/18(水) 22:17:25 ID:NpPw3sag
>>268
SPIにプルアップが不必要だってのは、
3ステートとかOCでドライブされる可能性があるデータ線が無いってだけの話で。

SDカードとか活線挿抜前提だと
不用意に信号線がオープンになる可能性は色々とある。

不安を覚える様な用心深い人は策を講じる事だろう。
270262:2010/08/19(木) 03:51:14 ID:apIofHwz
かむさえよー
271774ワット発電中さん:2010/08/19(木) 11:50:19 ID:WG+/4B1u
>>267-269
実は、カードの出し入れでリセットがかかってしまう
現象になり、???と思っていました。
そこで、別途全体駆動を簡易的に3.3Vにして
回路図どおりにプルアップとプルダウンをして
直結したところ、リセットがかからなくくなったので、
改めて、プルアップの意味を実体験しました。
LCDも電源だけ5VでI/Oは3.3Vで動いたので、
実回路も部品点数が少なくなるのでこちらのほうが良いように
思えてきました...orzあれだけ悩んだ末これかYO!
信号線のプルアップ、肝に銘じて起きます。
今回はSDだけでなく、さまざまなことをお教え頂き
ありがとうございました。感謝します。
272774ワット発電中さん:2010/08/19(木) 12:23:57 ID:jcJa/6pR
通電した状態で抜き差しして良いような回路だったんだろうか?
通電状態で抜き差しよいようにしようとしたらなんかめんどくさいような。
273774ワット発電中さん:2010/08/19(木) 13:04:58 ID:WG+/4B1u
>>272
まだ、「マイコンでSDcardを使う」ということが「手段」でなく「目的」
なレベルですので、電子回路を学んでいる段階です(笑)
SDのような広大な記録領域使えたらいいなーなんてことを
おぼろげに思っていて、実際にやってみていろんな問題にぶつかり、
ここでたくさんのアドバイスがいただけて、感謝しています。
SDCardから見たら通電状態の抜き差しは良くないでしょうけど、
今の私から見たら、とりあえずFATアクセスできたので「良し」としています。
274774ワット発電中さん:2010/08/20(金) 20:15:12 ID:kNzLO7AK
SDついでで
CMD0とCMD1はちゃんと終了するけど、
CMD17を出すと00が返ったり05が返ったりする
00だとちゃんと読めるけど05だと当然読めてない
何が不安定なんだろ
275774ワット発電中さん:2010/08/21(土) 21:33:38 ID:8X6b2vXa
>>259
へ〜
興味ぶかいことをきいた
276774ワット発電中さん:2010/08/22(日) 12:03:11 ID:x19gvC+v
高電圧書き込みをサポートしてるギャングライターやプログラマは市販されているでしょうか。
値段が高いやつでも構いません。

以上、よろしくお願いします。
277774ワット発電中さん:2010/08/22(日) 12:14:14 ID:GKWlWRVK
STK500 あたりか
278774ワット発電中さん:2010/08/22(日) 12:51:55 ID:x19gvC+v
ありがとう。
でも生産ラインで使いたいので、STK500はちょっと・・・。
279774ワット発電中さん:2010/08/22(日) 13:32:25 ID:ngaioFPM
普通のROMライターメーカーに聞いた方が早くない?
アトメル製品のどこまでサポートしてるかを
280774ワット発電中さん:2010/08/22(日) 16:03:36 ID:cTKWIrK3
ラインで使うくらいならICの卸に聞けば済むんじゃないか?
281774ワット発電中さん:2010/08/22(日) 16:18:35 ID:x19gvC+v
>>279, 280
了解です。月曜日に代理店に連絡してみます。
ありがとうございました。
282774ワット発電中さん:2010/08/24(火) 02:06:15 ID:Zow8Ihdq
最近は実装してから書き込むんだよな・・・
ISPライタで生産ラインに耐えるものって無いのかね。
283774ワット発電中さん:2010/08/24(火) 02:27:16 ID:wDoJGPxj
生産ラインでISPなんか使わないだろ
284774ワット発電中さん:2010/08/24(火) 08:57:23 ID:5/Az72WK
いや、実装してから書き込めば、どんなのでもISPじゃ....
285774ワット発電中さん:2010/08/24(火) 12:21:21 ID:lylZjOH2
実装してISPすると、QCからクレーム来たりするんだよね会社によっては。
286774ワット発電中さん:2010/08/24(火) 19:33:38 ID:s6uJlRXw
そうは言ってもTQFPなブツとかTSOPなフラッシュROMは
実装後にATEかなんかでJTAG使ってISPだろJK
287774ワット発電中さん:2010/08/24(火) 20:14:02 ID:Zow8Ihdq
>>285 それはチップの状態で書き込んでから実装しろと?
何のためのフラッシュなんだ
288774ワット発電中さん:2010/08/24(火) 21:23:07 ID:DLZoJ7Ti
ベーキングさせたり頭の固い会社はあるんですよ未だに
ISPなんて信用されてない・・・
289774ワット発電中さん:2010/08/24(火) 23:22:22 ID:+C5EUkj6
ゴメン。BOST中に書き込むのが一般的だと思ってた。
LSIメーカーによってはP/Wで書き込んでくれるけど、基本的に100K/月とか要求されるから無理。
で、BOSTボードなんて毎回作成だから、ISPも毎回異なる。
290774ワット発電中さん:2010/08/27(金) 00:19:50 ID:VXC3vVIy
オレのATINY2313、VCCとGNDを間違えたが、つなぎなおしたら何事もなく動いた。
タフなやつだなこれ。
291774ワット発電中さん:2010/08/27(金) 10:52:13 ID:/l1fhrr8
>>289
後は、ISP残しておくことで、リバースエンジニアリング
しやすい環境を残しておくなってことぐらいしか頭に浮かばない・・・
実際の生産現場ってどういう考えなんだろう?
大規模生産だとかっちり決まったものになるだろうけど、
少量多品種生産だと変更なんて当たり前だしなぁ・・・。
292774ワット発電中さん:2010/08/27(金) 11:02:17 ID:yH2hBx1e
ISP残さなくてもブートで自己書き換えルーチン入れちゃうけどね
バグのメンテって絶対あるだろうから
293774ワット発電中さん:2010/08/27(金) 23:06:47 ID:uCgRKQKr
クランプダイオードはそれなりに大きく作ってあるからな
294774ワット発電中さん:2010/08/28(土) 00:30:23 ID:VULtUOSv
おまいらちょっと聞いてくれよ、AVRとはあまり関係ないんだけどさ
サーボの信号を出力するのはいっせーのでカウント始めて時間ごとにパルス止めるでどうにかなるんだけど、
入力するのってどうすりゃ良い訳?割り込み使おうと思ったけど考え方が悪いのかタイマー幾つあっても足りないんだけど・・・
295774ワット発電中さん:2010/08/28(土) 07:22:24 ID:6G/Choch
>>290
保護回路が入っているから逆につないでも壊れない
296774ワット発電中さん:2010/08/28(土) 08:18:37 ID:WiUAtuxL
>>294
サーボモータって使ったことないんで脳内だけど、
・タイマーをサーボのパルスより十分長い周期でフリーランさせる
・サーボパルスの立ち上がりで割込みかけて、タイマーをクリア
・サーボパルスの立ち下がりで割込みかけて、タイマー値を読み取る
 最後のステップは、タイマーのインプット・キャプチャが使えるなら、それでもOK
てなかんじかな、と思う。要するに、PWMの逆変換。
出力の方もPWMでいけるような気がするけど、なんせ脳内なんで。
297774ワット発電中さん:2010/08/28(土) 09:26:25 ID:yqAhuXe8
>>295
電流自体は保護回路に逃げても、保護回路が過熱してICそのものが壊れるんだよ
298774ワット発電中さん:2010/08/28(土) 10:11:45 ID:WwVuz2MK
>>294
SpecSheet please.
299774ワット発電中さん:2010/08/28(土) 10:51:30 ID:WJOlCTKV
生業の人も来るんですねここw
300774ワット発電中さん:2010/08/28(土) 11:04:16 ID:VULtUOSv
>>296
サーボモーターって20msぐらいごとに1.5+-0.5msぐらいのパルス出すと動くんだけどさ
これを同時に5チャンネルサンプリングしようとすると自分の頭だと
1チャンネルごとに割り込み+タイマー回す(5個もタイマーは無いし、どれかでリセットするにしても他のやつはカウント中のはず)
1チャンネルごとに一度ずつタイマーを回す(最悪で100msじゃ遅すぎる)

しかもその上でサーボの出力の為にタイマー使ったり
AD変換も同時にこなそうとかもうアババババなんだけど
これは下手にハードの機能でどうにかするより、
単純に20usごとぐらいで割り込んでソフトで処理したほうが良いのかな?
301774ワット発電中さん:2010/08/28(土) 11:13:00 ID:SN1+baNg
割り込みなんて一切使わなくてもその都度タイマーで剪lを求めれば
各チャンネル独立制御できるでしょう、サーボの精度考えると8chくらい余裕で制御できそうだけど
302774ワット発電中さん:2010/08/28(土) 11:22:50 ID:WiUAtuxL
>>300
入力の方は、タイマークリアなしで、
立ち上がり時のタイマー値と、立ち下がり時のタイマー値を引き算すれば得られるから、
タイマーが共通の1個にできるね。
303774ワット発電中さん:2010/08/28(土) 11:46:51 ID:VULtUOSv
>>302
単純にそれやってくとオーバーフロー時に値飛ぶからダメだろと思ったが、
それは逆に例外として計算すれば良いのか
変な方向に頭向かってたみたいだ…聞いてよかったおまいらサンクス
304774ワット発電中さん:2010/08/28(土) 23:55:16 ID:IAlMi26m
avropendous って使ってるひといませんか?
305774ワット発電中さん:2010/09/02(木) 03:50:51 ID:HdK31UQh
目を付けてた商品が軒並み売り切れてんだがマイコンブームでも来たのか?
306774ワット発電中さん:2010/09/02(木) 05:33:03 ID:ShRuYnDo
あー、PS3のハックが成功したんでそれの需要でしょ。
307774ワット発電中さん:2010/09/02(木) 05:36:01 ID:ShRuYnDo
【PS Jailbreak】 PS3でバックアップを動かそう 12
http://yuzuru.2ch.net/test/read.cgi/gameurawaza/1282971021/
308774ワット発電中さん:2010/09/02(木) 09:20:00 ID:AIrbouAN
AVRが注目されることはいいことなんだろうけど...
こんなことで注目されたら、趣味でAVR使ってる
人間までPS3の違法改造してるみたいじゃないか...orz
309774ワット発電中さん:2010/09/02(木) 15:18:49 ID:R9RuA282
胸が熱くなるな
310774ワット発電中さん:2010/09/02(木) 15:27:32 ID:Gzx/CccK
今日追加分がもう売り切れだぞ
311774ワット発電中さん:2010/09/02(木) 18:23:01 ID:Xkd3zRMc
苺のやつまで売り切れか
凄まじいな
312774ワット発電中さん:2010/09/02(木) 20:10:51 ID:sDDqZD9B
だがこれを機にAVRの世界に興味を持ってくれる人が
増えてくれるさ〜
313774ワット発電中さん:2010/09/02(木) 20:44:22 ID:J329isOG
うちの2313で作れるかな?
314774ワット発電中さん:2010/09/02(木) 20:54:54 ID:ShRuYnDo
>>313
ソフトUSBの速度だと、ネゴ最中にPS3のOSが起動しちゃうから速度的に厳しいかもねぇ・・・
強大なディスクリプション叩き込んでスタック溢れさせるのが目的のようだし。
315774ワット発電中さん:2010/09/02(木) 21:06:12 ID:NskyNdCd
どゆこと?PS3のソフトがコピーできるってこと?
316774ワット発電中さん:2010/09/02(木) 22:03:02 ID:siebzrVY
 「こんなこともできるのか!」と裾野が広がると喜ぶべきなのか、
「違法コピーに使う奴でしょ」とレッテルを貼られると嘆くべきなのか。

 まぁ、正直、こんな使い方できるのかと、変な感心したが。
317774ワット発電中さん:2010/09/02(木) 23:03:16 ID:Xkd3zRMc
システム設計時にUSBからの侵入なんて普通思いつかないよな
B級映画にあるような、鯖にUSBメモリ突き刺して侵入とかも
そんなに荒唐無稽でもなかったか
318774ワット発電中さん:2010/09/02(木) 23:12:12 ID:J329isOG
一頃、パーツ屋のPICを買って行ってそのままプレステにはんだ付けして、
動かないと文句を言う人が後を絶たなかったので、
わざわざ注意書きがしてあった
319774ワット発電中さん:2010/09/02(木) 23:29:10 ID:siebzrVY
 しかし、通販サイト見ると、ホントにいろんなところで売り切れてるね。

 でも、買ってはみたけどうまくいかない、おバカちゃんがたくさん
湧きそうな予感がする・・・・ あと、ヤフオク転売屋が沸く・・・・
320774ワット発電中さん:2010/09/02(木) 23:55:36 ID:J329isOG
そんなに自作技能を持った人で溢れていたのか
日本の未来は明るい
321774ワット発電中さん:2010/09/03(金) 00:27:17 ID:jslE1t9Q
>>319
ネットでコンパイルされたバイナリ拾って書き込むだけだからサルでもできるよ
322774ワット発電中さん:2010/09/03(金) 00:32:33 ID:fhz/sl3I
 しかし、たかがPS3のためにAT90USBKEY買うって、AT90USBKEYが
かわいそうすぎて涙が出るわ。
323774ワット発電中さん:2010/09/03(金) 04:48:26 ID:V5GAqiGA
ちょ、AT90USBKEYでできるのか。
双方向USBの勉強用に2個買ってたわ
324774ワット発電中さん:2010/09/03(金) 07:38:45 ID:VlP4k65c
世界レベルで売り切れなのかAT90USBKEY
PS3オソロシス

PSGrooveってオープンソースらしいから
早くPICへ移植してAVR特定マイコンの枯渇なくして欲しい
325774ワット発電中さん:2010/09/03(金) 08:09:20 ID:ai1bZlf3
Arduinoでもできる?
326774ワット発電中さん:2010/09/03(金) 08:15:37 ID:VlP4k65c
>>325
CPU性能は問題ないと思うけど、ちゃんとしたUSBコントローラが無いと難しいよね
327774ワット発電中さん:2010/09/03(金) 15:39:02 ID:V5GAqiGA
AVRからルネサス系なら余裕で移植できるんだが
何せPS3のハックに興味がない
328774ワット発電中さん:2010/09/03(金) 20:24:16 ID:VTUBkkmi
手持ちでUSB使えるのはPICの2550だけなので、これでなんとか
329774ワット発電中さん:2010/09/03(金) 21:46:17 ID:VlP4k65c
>>328
おお、ばっちり行けそうな悪寒
ttp://github.com/psgroove/psgroove
の"psgroove.c"が理解できれば多分いける。
PIC用のコンパイラ持ってないんで頑張ってくだされ、期待してますね
330774ワット発電中さん:2010/09/04(土) 10:12:11 ID:prHdwgBv
331774ワット発電中さん:2010/09/04(土) 11:08:04 ID:zQmlaGKp
AVR使いてそんなに自己中問題児が多いのか?
332774ワット発電中さん:2010/09/04(土) 11:10:53 ID:buIzQiIP
たまたま居ただけでしょ、わざわざ曲解しなくてもいいよ
333774ワット発電中さん:2010/09/04(土) 11:46:21 ID:FuKeqQ1Y
avr.jpなんてドメインを取ったのか
atmelが動けば簡単に吹き飛びそうな気がする
334774ワット発電中さん:2010/09/04(土) 13:55:19 ID:P/MHLj9b
不正アクセス禁止法(笑)
335774ワット発電中さん:2010/09/04(土) 18:14:34 ID:uge1lx0V
AVRのアーキテクチャが簡単で実行速度が速くて入手性がいいってことだよ
いわせんな
336774ワット発電中さん:2010/09/04(土) 18:30:42 ID:ADcmDzAm
>>333
結局、PDFは有料だ〜って言っていたのは、ナシってことになったんですかね?
337774ワット発電中さん:2010/09/04(土) 19:47:06 ID:uge1lx0V
何の話
338774ワット発電中さん:2010/09/04(土) 20:14:19 ID:Y1r2Ywk7
有料申し込みはは0件だった

ようはそういうことでしょう。自己中心的な人物がうんたらかんたらといっているが、
鏡を見たほうがいいと思うな。
339774ワット発電中さん:2010/09/04(土) 21:04:22 ID:uX7CdlAa
「都内の一軒家が買える程度」の額って7千万とか億ってこと?
340774ワット発電中さん:2010/09/04(土) 23:21:33 ID:wlM7ZP+0
オレは、HERO'S Downloadさんのサイトには
ATiny2313使ってたころお世話になったから素直にありがとうと言いたい
色彩センスとか、元ドキュより断然見やすかったですしね
金は無いので大きな事も言えんけどさ。
341774ワット発電中さん:2010/09/05(日) 05:31:52 ID:UCNQpZ1R
ドメイン買う余裕ができたってことは、
就職や金策がうまくいったのか。よかったね。
342774ワット発電中さん:2010/09/05(日) 07:58:01 ID:6btz5zKE
金が手に入って苦労がなくなると
気前よくなるもんな

人間ってわかりやすいよね。
343774ワット発電中さん:2010/09/05(日) 11:07:08 ID:H5zTpNlf
人間そんなもんさ
344774ワット発電中さん:2010/09/05(日) 11:09:39 ID:OsegF0sI
っていうか、貧乏になるとそれだけであり得ないほど考えがすさむ
345774ワット発電中さん:2010/09/05(日) 11:35:32 ID:yCM/S57l
>>344
人間ってそんなもんさ
346774ワット発電中さん:2010/09/05(日) 11:51:57 ID:OsegF0sI
あと病気とかもすさむ
世界を呪うようになる
347774ワット発電中さん:2010/09/05(日) 12:00:17 ID:yCM/S57l
人間やめますか?
それとも電気屋やめますか?
348774ワット発電中さん:2010/09/05(日) 13:24:31 ID:Y5LuiP0j
>>346
心がすさむと被害妄想も強くなりがち
349774ワット発電中さん:2010/09/05(日) 13:33:27 ID:OOa7jWUY
この時期に再開だと某ドングル目当てで購入した人が似たような問題を起こしそうなんだけど大丈夫かなぁ。
350774ワット発電中さん:2010/09/05(日) 13:41:14 ID:R5T0rl6r
ドングルの人はHEX焼くだけだしデーターシートなんて見ないでしょ。
351774ワット発電中さん:2010/09/05(日) 14:51:31 ID:36TTHaM7
今回は問題をおこした人がいた場合、
それを誘導したホームページがHERO'S にリンクを貼っていても、
責任を取らされずに、むしろそのホームページの管理者に対して、
刑事訴訟に持っていけるだけの、土台を作った訳でしょ?
というか、被害届が出せる事が重要なのだと思うけど。

もっとやれ。俺はデータシートさえ借りられたら良い。
352774ワット発電中さん:2010/09/05(日) 18:37:58 ID:kJKGBOQa
いまいちよくわからんが、危うく、現品みたいにおすた化しかかっていたということなの?
353774ワット発電中さん:2010/09/05(日) 18:48:36 ID:05yO4XxV
 オレも、現品comの人と同じになったのかと、書き込もうと思ってたところ。
同じ電波が、ゆんゆん出てる。
354774ワット発電中さん:2010/09/05(日) 19:48:29 ID:YDSbWDJf
340だけど

 http://miqn.net/node/119
みたいに
DRM処理済PDFにして配布することでOKだな。
355774ワット発電中さん:2010/09/06(月) 05:41:29 ID:wLn7bKy4
>>346 そう考えると、エロゲに出てくる病弱美少女って
本当に天使だよな。同級生2の桜子大好きだよ。
356774ワット発電中さん:2010/09/06(月) 05:45:04 ID:wLn7bKy4
PS3クラックって、USBkeyのフラッシュメモリなんかも使ってるのかな?
ただHEX焼くだけならdigikeyでチップ一括で買って格安基板作って
「USB学習用のマイコンボードです」って売ればうはうはじゃね。

きっと中国人がやるだろう。
マイコンの中をブランクにしておけば、咎められる理由はないものな。
357チラ裏:2010/09/06(月) 08:31:51 ID:4L3lX/rl
ども、チラ裏翻訳です。
Heroさんところが復活したんですね。おめでとうございます。
自習翻訳は続けるけど、急ぐ理由もなくなったんで、こちらはマイペースでいきます。
というわけで、また名無しにもどります〜\(・∀・)
358774ワット発電中さん:2010/09/06(月) 10:20:42 ID:J5VaPgyv
>>328
PIC2550来たね。
ttp://psx-scene.com/forums/showthread.php?t=65391
AVRの品薄は解消されるかも知れない
359774ワット発電中さん:2010/09/06(月) 10:35:26 ID:I5cM8vRH
電波ゆんゆんかあw
360774ワット発電中さん:2010/09/06(月) 11:37:03 ID:I5cM8vRH
avr.jpだが、協賛に秋月とか。
どーゆー経緯でこうなった。
社長、説明してくださいw
361774ワット発電中さん:2010/09/06(月) 11:53:52 ID:RsKt1ubr
なんだか電波臭がするな
英語のデータシート読めないやつはやらないほうがいいよ


362774ワット発電中さん:2010/09/06(月) 12:07:06 ID:DXtXrFDr
翻訳・編集で営利的に儲けちゃ駄目なのかね?

年会費1,000円ぐらい取ってもいいと思うけどね。半年会費としてワンコインの500円(税込みで525円)とか。
でも、課金システム・認証システムを構築するのにお金がかかるんだよなあ。
また原始的な方法で(送金無料な銀行を使うとして)振込みの確認やテンプレメールの送信等の対応でも大変だろうし、有料利用者の管理が大変になりそうだし。

5年掛け捨てみたいな感じで5,000円を振り込んでもらって、サービスは突然終了することがある旨で運営するか。
5,000円だと敷居が高いから3,000円にして、3年でもいいのかな?
363774ワット発電中さん:2010/09/06(月) 13:24:05 ID:U19RQu2B
>>362
この場合は、ATMELや代理店が認めるとは思えなかったけどね。
ボランティアも、収入がなければやっていけないのは道理で言ってる内容自体は理解できました

過激な表現になっちゃったのは、引用を表示しないサイトとかが増えて不快だったからじゃないかな
特に、千秋ゼミのサイトとかパクリまくりwww
364774ワット発電中さん:2010/09/06(月) 15:03:59 ID:8tRuzCK8
>>356
サンプルプログラムのソースリストと、「試してみましょう」みたいなのがすごい事になるのか・・・
365774ワット発電中さん:2010/09/06(月) 15:25:51 ID:U19RQu2B
>>364
すでに
>PSGroove is also in the midst of being ported to the PIC18F2550 chip.
だそうだからAT90USBの品薄根拠は終了でしょう。
 
366774ワット発電中さん:2010/09/06(月) 16:05:20 ID:d2YPIZGs
特殊なUSBメモリとしてしか使わないなら
USBホスト付きで高価なUSB1287である理由は何もないからね。
367774ワット発電中さん:2010/09/06(月) 18:29:45 ID:TxYygm0o
要はアトメルジャパンが、マイクロチップジャパン並みに頑張って個人顧客へのサービスもしてくれれば
いいんだがなえぇ。
368774ワット発電中さん:2010/09/06(月) 18:41:48 ID:47jZ4VQp
なんでもいいが、秋月かどっかの秋葉店頭で
USB付きAVR売って欲しい
arduinoのUSBホストなら千石にあるんだがなあ
369774ワット発電中さん:2010/09/06(月) 20:35:49 ID:FYy2WzNP
>>363
御大層なこと言ってるが結局ATMELから物言いをつけられたから金取って見せようと
するのやめて無料で公開に戻したんだろうと思う

御巣た化し始めた決起はmega328pのヒューズビットの記述ミスあたりかな
mega88p,mega168pまではビット定義が互換だけどmega328pだけは実デバイスでは一部の
ビット定義が違ってて間違って書いちゃうと元に戻すのが厄介になる奴
370774ワット発電中さん:2010/09/06(月) 20:45:20 ID:8a54VjRm
>>357
こっちはこっちでぼちぼちやって欲しいな。
自分も手伝いたいけどLEDピコピコレベルだからなあw
371774ワット発電中さん:2010/09/06(月) 20:52:51 ID:U19RQu2B
>>369
また自己厨が勝手な憶測をwww

ATMELから物言いを付けられた形なら金は取れないけど
非公開のままにしとけばよかっただけだな

裏でどう話が動いたかわからんが
一応、ユニ電子と秋月が協賛してくれたから公開状態に戻ってる。

これからの充実はあまり期待せずに
今のうちに英文マニュアルも読めるように準備しておくのが吉だ。
372774ワット発電中さん:2010/09/06(月) 21:17:29 ID:v2Dd3Tjy
日本語解説記事 > 英文データシート > 日本語データシート

なんだよな
なんかしらんけど、翻訳されてると逆に理解できなくなる
373774ワット発電中さん:2010/09/06(月) 21:19:03 ID:iB/7ywq0
英語データシートだけでLEDピコピコしたのに
374774ワット発電中さん:2010/09/06(月) 23:01:43 ID:I5cM8vRH
>>373
いいじゃん。それはそれで力になるよ。
375774ワット発電中さん:2010/09/06(月) 23:12:26 ID:U19RQu2B
>>372
>翻訳されてると逆に理解できなくなる

確かに強制的に日本語訳してしまうと判らなくなる部分もあるね。
シリアルプログラミング、バウンダリスキャン、…
でも英文データシートを横引きすれば良いんで、素直に日本語訳があるのは有難い。
 
AVR Studioとかのヘルプとかは、日本語訳してくれてとても便利だった覚えがある。
376774ワット発電中さん
有志の翻訳=実質HEROだったからな
最初からこの人だよーて名前売っとけば本人も今頃ホクホクだったと思うよ