AVRマイコン総合スレ Part29

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

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

※前スレ
AVRマイコン総合スレ Part28
http://uni.2ch.net/test/read.cgi/denki/1363384428/
2774ワット発電中さん:2013/06/25(火) 08:12:10.12 ID:BBaoo6ef
<参考になるページ>
・AVR-wiki: http://www34.atpages.jp/avrwiki/wiki.cgi
・AVR情報多い-chanさんのpage: http://elm-chan.org/
・avrfreaks.net avrgccその他AVR関連の総本山(英語): http://www.avrfreaks.net/
・TAP-Config: http://ww2.tiki.ne.jp/~maro/
・自分で作ってしまえ!電子工作スレッドテンプレート集: http://jbbs.shitaraba.com/bbs/read.cgi/study/3329/1067910158/
・AVR.jp 日本語のAVR資料他: http://www.avr.jp/
・ATMega168日本語データシート(翻訳中): http://awawa.hariko.com/chira-ura/
・AVR アセンブラのマニュアル(ユーザーズガイド): http://www.atmel.com/Images/doc1022.pdf
・インストラクション(命令セット)の解説: http://www.atmel.com/Images/doc0856.pdf
・条件付きアセンブルの解説(アセンブラ ver. 1.74対応):http://www.atmel.com/Images/doc2550.pdf
・アセンブラとCの連携方法: http://www.atmel.com/Images/doc1234.pdf
3774ワット発電中さん:2013/06/25(火) 08:16:48.00 ID:BBaoo6ef
以上
過去スレリストはカットします。
4774ワット発電中さん:2013/06/25(火) 08:33:45.22 ID:BBaoo6ef
5774ワット発電中さん:2013/06/25(火) 12:56:47.25 ID:0ePvzgHJ
◎前スレ◎
Part28 http://uni.2ch.net/test/read.cgi/denki/1363384428/
Part27 http://uni.2ch.net/test/read.cgi/denki/1353418282/
Part26 http://uni.2ch.net/test/read.cgi/denki/1346148653/
Part25 http://uni.2ch.net/test/read.cgi/denki/1341980993/
Part24 http://uni.2ch.net/test/read.cgi/denki/1332128409/
Part23 http://uni.2ch.net/test/read.cgi/denki/1323175269/
Part22 http://kamome.2ch.net/test/read.cgi/denki/1314856582/
Part21 http://kamome.2ch.net/test/read.cgi/denki/1303948383/
Part20 http://kamome.2ch.net/test/read.cgi/denki/1290517183/
Part19 http://kamome.2ch.net/test/read.cgi/denki/1284117177/
Part19 http://kamome.2ch.net/test/read.cgi/denki/1277467349/
Part18 http://science6.2ch.net/test/read.cgi/denki/1267885927/
Part17 http://science6.2ch.net/test/read.cgi/denki/1261051995/
Part16 http://science6.2ch.net/test/read.cgi/denki/1252285807/
Part15 http://science6.2ch.net/test/read.cgi/denki/1247238097/
Part14 http://science6.2ch.net/test/read.cgi/denki/1239940189/
Part13 http://science6.2ch.net/test/read.cgi/denki/1231687664/
Part12 http://science6.2ch.net/test/read.cgi/denki/1223778551/
Part11 http://science6.2ch.net/test/read.cgi/denki/1212840469/
Part10 http://science6.2ch.net/test/read.cgi/denki/1203495784/
Part9 http://science6.2ch.net/test/read.cgi/denki/1192625746/
Part8 http://science6.2ch.net/test/read.cgi/denki/1177933605/
Part7 http://science6.2ch.net/test/read.cgi/denki/1162464623/
Part6 http://science4.2ch.net/test/read.cgi/denki/1148195387/
Part5 http://science4.2ch.net/test/read.cgi/denki/1125327648/
Part4 http://science3.2ch.net/test/read.cgi/denki/1108290187/
6774ワット発電中さん:2013/06/25(火) 20:27:32.90 ID:/wmljAZ4
>>5
part1、2、3は?
7774ワット発電中さん:2013/06/25(火) 21:45:37.28 ID:VgC64QXW
これですか?
◎前スレ◎
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/
8774ワット発電中さん:2013/06/25(火) 22:20:04.89 ID:DFDlDM1o
こんな古いのリストしてもつまらんよ。いらん。
9774ワット発電中さん:2013/06/26(水) 00:41:54.02 ID:fmy4QN4f
1981年発売のパソコンの未開封品を開けました(スライドショー)
http://www.youtube.com/watch?v=XSSl-OULfQc

1981年発売のパソコンの未開封品を開けました(動画)
http://www.youtube.com/watch?v=d3H3W3ARCuk
10774ワット発電中さん:2013/06/29(土) 17:17:59.73 ID:8zKnxK9u
ATTiny2313でPCと通信をやろうと思っています。
ATTiny2313側は以下のコードになっています。

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

int main(void)
{
  // ボーレートの設定
  unsigned int baud = (8000000/16/9600)-1;
  UBRRH = (unsigned char)(baud>>8);  //ボーレート上位
  UBRRL = (unsigned char)baud;    //ボーレート下位
  
  UCSRA = 0b00000000;
  UCSRB = 0b00011000;    // 送受信機能(UART)使用
  UCSRC = 0b00000110;    // データ8bit
                    // stop 1bit
                    // パリティなし
                    // 非同期
  
  while(1)
  {
    while(!(UCSRA & (1<<UDRE))){
    }
    UDR = 'A';
    _delay_ms(200);
  }
}

一方PCとはTera Termを使って、
受信したものを表示するようにしています。
しかし、↑のコードではTeraTerm側は何も表示されませんでした。
特に複雑なことはしていないのですが、コードに問題ありますでしょうか?

Tera Term側の設定は
Port: COM5(←合っています)
Baud rate: 9600
Data: 8bit
Parity: none
Stop: 1bit
Flow control: None
になっています。
11774ワット発電中さん:2013/06/29(土) 17:19:43.04 ID:8zKnxK9u
回路はこんな感じです。

http://i.imgur.com/3S5YXsJ.jpg
12774ワット発電中さん:2013/06/29(土) 17:26:33.80 ID:xSwCXv7y
>>10,11
レベルコンバータは?
13774ワット発電中さん:2013/06/29(土) 17:36:32.19 ID:8zKnxK9u
秋月の
http://akizukidenshi.com/catalog/g/gM-00720/
これを買って使ってます。
14774ワット発電中さん:2013/06/29(土) 17:38:57.34 ID:xSwCXv7y
連投になってしまってすまない。

>>10,11
シリアル通信(RS-232C)は±12Vの負論理信号なので、ATTiny2313の内蔵シリアル出力をそのまま繋いでも通信出来ません。

http://www9.plala.or.jp/fsson/NewHP_elc/AVR/Avr_trsUSB232c.html
このページの一番最後にMAX232C(レベルコンバータ)を使った回路例があります。
このようにすればソフトに問題がない限り通信できると思います。

また、規格の融通する部分で手作業シリアル通信する場合はもっと回路を省略できますが、
まずは上記を試してからがよろしいと思います。

@変わったシリアル通信例
http://www.geocities.jp/leitz_house/electronics/rs232c_01.html
15774ワット発電中さん:2013/06/29(土) 17:44:27.29 ID:xSwCXv7y
>>13
連投中に返信が^^;

これはUSB-シリアル変換で、この出力は>>14で説明したようにRS-232C規格の出力になっています。
AVRのシリアル機能の出力はそのままではRS-232C規格とは合わないので、
レベルコンバータと言うICを使う必要があります。(14ではMAX232Cを使った例、他にも互換品があります)

マイコンの信号系(レベル)とRS-232C(シリアル)の信号系は違うので、変換(コンバート)する必要があるのです。
詳細は>>14のURL他、マイコン(Tiny2313に限ってもおk)のシリアル通信の作例が検索で一杯あります。
レベルコンバータを使わない例もありますが、まずはレベルコンバータを使用する回路を、一度試される事をお勧めします。
16774ワット発電中さん:2013/06/29(土) 17:45:54.80 ID:8zKnxK9u
>>14
なるほど・・・今、意味がわかりました。。。
マイコン側の0-5Vの規格から±12Vの規格に変えるために
AVRとPCの間にADM3202みたいなのを挟まないといけないということですね。。。
ありがとうございます。

うぅ、配送期間待ってたらまた土日が潰れてしまう。。。
17774ワット発電中さん:2013/06/29(土) 17:59:16.49 ID:gX4p/gHC
>>16
5vシリアルUSB
http://akizukidenshi.com/catalog/g/gM-05841/
ブレッドボードで実験するときは便利ですよ。

3.3vCPUのときは、
http://akizukidenshi.com/catalog/g/gM-05840/
18774ワット発電中さん:2013/06/29(土) 18:03:46.56 ID:8zKnxK9u
>>17
oh... ポチりました。
19774ワット発電中さん:2013/06/29(土) 18:04:55.69 ID:m+dWi9kM
こういう変換アダプタ使ったことないからわかんないが
RXDとTXDが逆な気がしないでもない
20774ワット発電中さん:2013/06/29(土) 18:15:38.69 ID:6BxtASGf
家にUSB MiniBケーブルが転がってるなら
http://akizukidenshi.com/catalog/g/gK-01977/
こっちのほうが安上がり
21774ワット発電中さん:2013/06/29(土) 18:37:35.62 ID:4/aHphPS
電圧レベルと正/負論理に注意。
論理が合っていれば、MCU側の出力が0〜5VでもPC側は受信できる。
22774ワット発電中さん:2013/06/29(土) 18:45:25.74 ID:4/aHphPS
追記
MAX232CPEなどのトランシーバICはレベルを変換し、論理を反転している。
23774ワット発電中さん:2013/06/29(土) 18:45:39.41 ID:Vr2RMVho
どうせならFT232HL買った方がいろいろ遊べて便利なのに
24774ワット発電中さん:2013/06/29(土) 19:08:13.91 ID:8zKnxK9u
>>20,23
すみません、さっきのやつをもうポチってしまいました。

>>19
RX/TXを逆にしても変わらなかったです。

>>21
電圧はマイコン側は5Vです。
正負論理とはどういうことでしょう?
0-5と、±12Vの論理のことでしょうか。
25774ワット発電中さん:2013/06/29(土) 20:05:52.06 ID:ZT+F3IMj
>24
正論理=+の電位で1を表す
負論理=グランドや−の電位で1を表す
26774ワット発電中さん:2013/06/29(土) 20:30:39.34 ID:gX4p/gHC
>>24
12vのTxをマイコンのRxにつないだら壊れないか?
つなぐならマイコンからのTxだけにしとけよ。
送信だけなら動くかもしれないよ
27774ワット発電中さん:2013/06/30(日) 00:32:22.92 ID:QlX/Gcnv
何に繋がれるか判らないのは製品開発する時で、
用途が確定してるなら有り得ないケースは無視してよい
28774ワット発電中さん:2013/06/30(日) 07:05:35.02 ID:bDK8nAeM
コネクタハウジング内に収納できる、インターフェイスICを実装した基板を
秋月で売っています。
ttp://akizukidenshi.com/catalog/g/gK-06464/

私は手持ちの部品で自作しましたが、このような変換ケーブルが1本あれば、
「動作確認だけに、またはデバッグ時だけに使う。
通常は、または完成したら不用になる」
という場合に役に立ちます。

なお、完成品もあるようです。
ttp://www.ele-lab.com/8_261.html
29774ワット発電中さん:2013/06/30(日) 19:54:34.56 ID:WCmce3f9
>>17が届くのは月曜日か火曜日なのですが・・・
それまでで出来る事なんかないかなぁと思い、
ATTiny2313が壊れてもいいや的発想で
引き続き繋げてみたりしてるのですが、

// UART受信用割り込み
ISR( USART_RX_vect ){
  unsigned char x = 0;
  x = UDR;
  //if(x == 'a'){
    PORTB = 0b00000001;
  //}
  while(!(UCSRA & 0b00100000));
  UDR = x;
  _delay_ms(100);
  PORTB = 0b00000000;
}

何かを受信したらPB0が光るようにして、PC側のTeraTermを叩いてみました。
結果からいうと、TeraTermに合わせて光るようですが、
if(x=='a')で、aの時だけ光るようにした場合に、
aを押しても光りませんでした。

何かは来てるけど、aではない。
ということは、
・電圧が違うからちゃんと認識できていない
・ボーレートが違うからちゃんと認識できていない
あたりが考えられそうなのですが、前者の場合は>>17が届いたら解決すると思います。
後者の場合は、ATTinyのプログラムのミスになるのですが、
>>10が間違っている可能性はありますでしょうか?

例えばATTiny2313の出荷時のクロック周波数は8MHz?であってますか?

>>28
PC側のインタフェースがUSBなので、結局は>>17があれば事足りそうです。
ありがとうございます。
30774ワット発電中さん:2013/06/30(日) 20:13:35.20 ID:tThnIr5C
>>29
8MHz だけど、 1/8 に設定されてるから実質 1MHz
31774ワット発電中さん:2013/06/30(日) 20:14:34.07 ID:zxKyD6cS
8MHzで動かしたいんならヒューズビットを書き換えないと
32774ワット発電中さん:2013/06/30(日) 20:15:40.59 ID:7VOVwiUJ
>>29 1/8分周されて1mHzになってない?
33774ワット発電中さん:2013/06/30(日) 20:33:42.22 ID:WCmce3f9
>>30-32
ありがとうございます。
8MHzで動かしたいというわけではなく、ボーレート違うと通信できないので確認です。
ということは、>>10のプログラムの

// ボーレートの設定
unsigned int baud = (8000000/16/9600)-1;

の部分がそもそも間違っているということですね。
8000000ではなく、1000000に設定しないといけなかったようです。
これを直しても特に現状は変わらなかったので、
あとは>>17が届くのを待ってリトライしてみます。

ありがとうございます。
34774ワット発電中さん:2013/06/30(日) 20:37:59.96 ID:zxKyD6cS
1MHzなら9600bpsは速すぎると思うよ
35774ワット発電中さん:2013/06/30(日) 20:45:19.84 ID:7VOVwiUJ
>>33
avr-gccだとintが16bit。1000000(あるいは8000000)にUL付けたまえ。
…というか、データシートに早見表あるからそれ使った方が楽かも。
36774ワット発電中さん:2013/06/30(日) 21:01:15.32 ID:c6q5gA+w
直結ならビットが反転したないんじゃね
37774ワット発電中さん:2013/06/30(日) 21:04:20.62 ID:WCmce3f9
>>34-35
// ボーレート(2400)の設定
UBRRH = (unsigned char)(25>>8);  //ボーレート上位
UBRRL = (unsigned char)25;    //ボーレート下位

// (1000000/16/2400)-1 は 25

で設定して、PC側から受信したものをそのままPCに送り返すプログラムで
実験してみたら、PC側に反応がありました。
PC側から「abcde」と打つと、TeraTermに

Xl,vY

という反応がありました。文字は化けているようですが、
少し通信ができているようです。
文字化けの原因はよくわかりませんね・・・。
TeraTermの送受信の文字コードの設定はUTF-8にしてあります。
※それ以外の文字コードを設定しても文字化けは治りませんでした。

マイコン側のボーレートが微妙に違うんですかね・・・。うむむ。。。
38774ワット発電中さん:2013/06/30(日) 21:40:54.89 ID:7VOVwiUJ
ん、内蔵RCオシレータだと誤差10%だっけかな。
39774ワット発電中さん:2013/06/30(日) 22:07:57.86 ID:0wENNZVv
校正しなくても低いボーレートなら通信できそうなもんだけどな
'U'(0x55)を送ってどう見えるか
40774ワット発電中さん:2013/06/30(日) 22:13:28.84 ID:oZAkdsX5
>>39
ちゃんと実際の周波数を計らないと誤差も増えるけどな
41774ワット発電中さん:2013/06/30(日) 22:15:23.35 ID:iS+jOJYP
内臓RCは電源電圧で大きく変わるよ
42774ワット発電中さん:2013/06/30(日) 22:40:08.46 ID:0wENNZVv
あとはTXポートが出力になってないとか
USART有効にした時点で出力になるんだっけか?
43774ワット発電中さん:2013/06/30(日) 23:41:11.54 ID:bDK8nAeM
36の反転/非反転が通信できない原因だと思う。
だとしたら、今の君が論理を合わせるのは難しいだろうし(多分ね?)
MCUのピンに負電圧がかかるのはあまり好ましい事ではないだろうし(多分ね?)
AVR直結(TTLレベル)用USB変換ケーブルが届くのを待った方が良いのでは。
44774ワット発電中さん:2013/07/01(月) 09:49:26.65 ID:wKhmiL9X
そもそも校正無しの内蔵クロックではUARTの要求する精度が出ない。
基準クロックに誤差があるならボーレートを落としても誤差は変わらないので
9600bpsがだめなら300bpsにしたってだめ。水晶付けときな。
がむしゃらにならず、部品が届くまでRS232Cってなんなのかググって勉強したほうがいいよ。
45774ワット発電中さん:2013/07/01(月) 11:01:54.42 ID:elgy1qPx
下手にRS232C付いてたばっかりに
知恵遅れが右往左往w
46774ワット発電中さん:2013/07/01(月) 11:42:16.55 ID:eEbgTHuj
UARTはいずれ覚えた方がいいけどUSBに慣れた方が早い
47774ワット発電中さん:2013/07/01(月) 13:13:54.29 ID:4CwwHoDN
なんで校正なしとか条件を付けるの?
AVRは、工場出荷時に個別に10%未満になるように校正値が書き込まれている。
実際は生活温度内で5%位の誤差に収まっているから実験レベルなら通信できるよ。
ただ、ボーレート周波数を作るときの分周比は割りきれる値にしないと分周比誤差も加算される。
ボーレートを遅くすると分周比の誤差を少なくできるポイントがあるからあながち間違いではない。
48774ワット発電中さん:2013/07/01(月) 15:05:47.49 ID:Hn6gQLbB
ボーレートから逆算した周波数になるようにosccalをtuneすればいいのよ
osccalのtuneで+−1%程度の精度で設定できる
電圧や温度をどう変化させても+−5%を越えてずれることはない お薦め
49774ワット発電中さん:2013/07/01(月) 17:23:53.11 ID:wKhmiL9X
>>47 >>48
ボーレートジェネレータの分周比いじったりosccal合わせたりって
それが「校正」だろ? 出来るような流れかい?
出来る人はいっぱいいるんだろうがネタ元の人はどうなんだろう?
出荷時に10%未満ってのは知ってるよ。
調歩同期通信って何%でアウトなんだよ?
「水晶付けとけ」が一番シンプルなアドバイスだと思ったがなぁ・・・
50774ワット発電中さん:2013/07/01(月) 18:36:17.78 ID:20EKH9SD
以前に、内臓RC発振器の特性(出荷時の周波数精度や温度、電圧変化分)が知りたくて、
tiny2313を10個ほどテストした事があるけど、全てRS232C通信が出来た。
<条件:8MHz、周波数の再調整無し、電源5V、9600ボー>
この特性でOKとするかどうかは人それぞれだと思う。(としか言いようが無い)
51774ワット発電中さん:2013/07/01(月) 19:09:35.41 ID:wKhmiL9X
人それぞれだねぇ
俺は内蔵クロックで微妙に化けるのに当たったことが何度かある。
水晶付けるのが面倒なので覚悟の上でやったからいいんだが、
「初めてPCとシリアル通信します」ってな人にそんなハードル投げつけるってどうなのよって思う。
セルフキャリブレとかは、まともに通信できた次のステップじゃないかな?
52774ワット発電中さん:2013/07/01(月) 20:26:54.76 ID:kz5fUVU3
水晶面倒ならせめてセラロックでも付けておけば
53774ワット発電中さん:2013/07/01(月) 20:54:58.53 ID:elgy1qPx
大抵水晶10個売りしかなくて22pFとセットで余らせてると思うw
54774ワット発電中さん:2013/07/01(月) 21:00:07.50 ID:/U1f7WP5
>>52
セラロック使うなら内蔵と精度変わらん
55774ワット発電中さん:2013/07/01(月) 21:16:58.04 ID:JBFKe2nx
>>54
いや、格段に違うだろ。
56774ワット発電中さん:2013/07/01(月) 21:34:31.54 ID:pdkinPGU
キャラクタ長やストップビット長などにもよるが、ボーレートが計算
上で±3%を超えるあたりから、通信エラーが出始める。

送信側と受信側でクロック位相がぴったりとか、相手側が理論値の
ボーレートに対して誤差ゼロなんてことは、んあずありえないので、
発振器の周波数が誤差±10%なんてずれていたら、お話にならない。

たとえ水晶を使っても、ATカット品を使うのはもちろん、テキトーな
セラミックコンデンサではなく温度補償コンデンサを使ってカウンタ
でちゃんと公正しないと、刻印されたぴったりの周波数では発振
しない。
57774ワット発電中さん:2013/07/01(月) 21:56:37.33 ID:xMYYTzdV
もう、同期式にしたら?
58774ワット発電中さん:2013/07/01(月) 22:43:30.36 ID:4CwwHoDN
>>56
きっちりしないと気が済まないタイプ?
59774ワット発電中さん:2013/07/01(月) 23:00:03.78 ID:5DRSWG9k
まあ、プロ用途なら規格内にあわせるのは当然だが
大抵そういう環境ならppmレベルで校正された外部発振器だろ
60774ワット発電中さん:2013/07/01(月) 23:02:02.45 ID:xXdqq0hR
通信はきっちりしろよ
61774ワット発電中さん:2013/07/01(月) 23:58:11.33 ID:Vzz4PhRL
62774ワット発電中さん:2013/07/02(火) 00:41:28.16 ID:pPOXpGv3
無知なWeb屋がシャシャリ出てハード手掛けて炎上、あるでぃ脳。

10.000MHzと書かれた水晶でキッチリ10.000MHzで発振してくれれば
世話がない。自称ハッカー、ゆとり脳最強伝説。

単なる外付け(水晶+適当な位相補償コンデンサ)で、無調整のままだと公称値
(例:10MHz)に対して100kHz(1%)くらいズレているのはわりと普通。

Dallas Semiconみたいな発振回路内蔵タイプを使っているM/Bを除いて、
パソコン内蔵の時計(RTC)がすぐに狂うのも無調整だから。

やってみるとわかるが、トリマを外付けして周波数カウンタを繋いで追い
込むのも簡単ではない。実用はせいぜい有効数字で5桁くらいまで。しばらく
時間をおいて計ると、また少しずれている。

恒温槽内蔵ではない、外部発振の水晶モジュールでも±50ppm/℃〜±200
ppm/℃くらいの周囲温度による周波数変動がある。
63774ワット発電中さん:2013/07/02(火) 00:47:07.22 ID:UHkirCnb
>>62 ラーメンタイマーに原子時計がいるとでもおもっているのかね?
64774ワット発電中さん:2013/07/02(火) 00:57:27.77 ID:pPOXpGv3
やぁ、ゆとり君。 ルビジウム発振器が、CDの原音再生に有効と思っている
オカルト君と友達になってはどうかね?
65774ワット発電中さん:2013/07/02(火) 01:07:03.85 ID:leat5pqh
>>62
ものすごい脳内水晶だな
本当に存在するの?
66774ワット発電中さん:2013/07/02(火) 01:26:24.15 ID:0uo0tOpu
水晶メーカーのステマ
67774ワット発電中さん:2013/07/02(火) 02:24:37.78 ID:N976jdml
ものすごい(特性悪い)脳内水晶だな、
なわけだが。
あるでぃ脳もゆとり脳も敵じゃないな、まさに最強。
データシート百遍読み直せ。
68774ワット発電中さん:2013/07/02(火) 06:25:21.93 ID:fbD/WQV/
>>62
でたらめ書くのもいい加減にしろよ。水晶で1%もずらせたら逆にすごい
技術だ。
69774ワット発電中さん:2013/07/02(火) 06:49:01.08 ID:m6SX8NmM
>100kHz(1%)くらいズレているのはわりと普通。
製品検査で今までに2千個くらいの水晶の発信周波数を調べてきたけど、
これはちょっと賛同できないし、ゆとりのない書き方にも賛同できません。

まぁ、そのなんだ、MCU内蔵RC発振器から恒温槽付き水晶発振器に変えようが、
調歩同期式から同期式に変えようが、通信エラーは発生するし、
アプリによってはチェック(CRCなど)、リカバー(再送など)が必須になる。
70774ワット発電中さん:2013/07/02(火) 08:01:44.13 ID:gzFnO09F
内蔵RCでUSBでの通信も可能だというのに
>>61
71774ワット発電中さん:2013/07/02(火) 08:05:29.48 ID:pPOXpGv3
ゆとり脳は、VXOとか知らんのかね?
72774ワット発電中さん:2013/07/02(火) 08:22:10.88 ID:odttwvPg
>>69
後半余分。
リトライとか知ってる俺スゲーってか (w
73774ワット発電中さん:2013/07/02(火) 08:48:00.17 ID:e8moKIh6
>>61
横レスだが、これすごいな。
邪道なのはわかっているが、世の中にはすごい人がいるもんだ。
74774ワット発電中さん:2013/07/02(火) 08:48:56.74 ID:e8moKIh6
>>61
横レスだが、これすごいな。
邪道なのはわかっているが、世の中にはすごい人がいるもんだ。
75774ワット発電中さん:2013/07/02(火) 13:22:38.28 ID:33k6cubN
マイコンのクロックの話にVXO持ち出すのもおかしいし、
周波数公差と周波数偏差が混じってるのもおかしい。
1%って1万ppmだがVXOではないマイコン用発信回路の負荷容量で
そこまで変えられないよね? 発信止まっちゃうよね?
VXOは公称周波数より低いところで動作するからそれとごっちゃにしちゃってるのかな。
76774ワット発電中さん:2013/07/02(火) 18:33:03.26 ID:leat5pqh
あちこちでホラふいて回ってる人だよ
77774ワット発電中さん:2013/07/02(火) 20:09:09.96 ID:xti+a60E
>37

ボーレートの違いはなく、スタートビットは 0 ストップビットは 1。
次の文字を送る前は 1 が連続するはずだが今回は4回連続するものとしたら…

PC から abcde と入力。LSB から送るということなので最初のビット列は

0-10000110-1111-0-01000110-1111-0-11000110-1111-0-00100110-1111-0-10100110-1111

ちなみに最初の 0- の部分がスタートビット。 -1111- がストップビットと連続した 1 の信号。
AVR は反転して受け取るので

1-01111001-0000-1-10111001-0000-1-00111001-0000-1-11011001-0000-1-01011001-0000

これを 0 が来たらスタートビットと認識し、ストップビットが来るまでの過剰の 0 は無視
するとすれば

1-0-11110010-000(ここ無視)-11-0-11100100-00-1-0-01110010-000-111-0-11001000-0-1-0-10110010-000...

11110010 'O', 11100100 'ESC', 01110010 'N', 11001000 'DC3', 10110010 'M' を認識して
送り返すと

0-11110010-1111-0-11100100-1111-0-01110010-1111-0-11001000-1111-0-10110010-1111...

これがまた反転するので

1-00001101-0000-1-00011011-0000-1-10001101-0000-1-00110111-0000-1-01001101-0000...

最初の 0 をスタートビットとして認識したら

1-0-00011010-000-1-0-00110110-000-11-0-00110100-00-1-0-01101110-000-1-0-10011010-000///

PC が帰って来たと認識する文字は

00011010 'X', 00110110 'l', 00110100 ',', 01101110 'v', 10011010 'Y'

反転してるけど通信で来てるかも。
78774ワット発電中さん:2013/07/03(水) 01:35:55.19 ID:dXYXoagb
>>10の人ですが、色々と情報ありがとうございます。
そもそもの正負論理というか規格のところがあやふやな状態で、
色々と試行錯誤した結果をココで質問するのも申し訳ないと思い、
ひとまず>>17が届くまでは規格の勉強までに留めていました。

今日>>17が届いたので、仕事終わりに実験してみたら、
無事、問題なく動作しました。
クロック周波数も2400で合っていたようなので、
原因は5Vと±12Vのところですかね。
>>17のやつはメチャクチャ便利ですね!!

C言語のprintfデバッグみたいなのがAVRはできないので、
これを使ってシリアル通信で似たようなデバッグができそうです。

ともあれ、ようやく次に進めそうです。
ありがとうございました。
79774ワット発電中さん:2013/07/03(水) 07:19:14.33 ID:p28OfjkC
>>57
クロックの分、配線が増えるけど、ボーレートだの考えなくていいし
取りこぼしとかなくなるから同期の方が断然便利だよな。
232なんてレガシーなものを使う意味が判らん。
80774ワット発電中さん:2013/07/03(水) 07:29:47.43 ID:3BVP0524
>>79
配線が増える?

そりゃ、増えるやつもあるけど...
81774ワット発電中さん:2013/07/03(水) 08:49:49.70 ID:LrNBf64X
USARTの話してんだから同期式ならクロック線1本増えるじゃん
82774ワット発電中さん:2013/07/03(水) 12:16:03.44 ID:Rv97YMbI
> 原因は5Vと±12Vのところですかね。
だ か ら
21~77まで何人かが電圧レベル以前の問題で、論理が合っていない、
論理が合っていれば内蔵RC発振でも通信できる、と書いているよ。
ちゃんと読んだ? ま、いいけどさ、とりあえずオメ。
83774ワット発電中さん:2013/07/03(水) 12:56:13.41 ID:Rv97YMbI
>232なんてレガシーなものを使う意味が判らん。
残念だけど、機械制御などではいまだにRS232CやRS422/RS485が使われる事も多い。
だからサポートしているMCUも多い。
84774ワット発電中さん:2013/07/03(水) 14:00:20.66 ID:LrNBf64X
手頃な代替規格が無いし、PC環境でもUSB-シリアルブリッジで
実質は調歩同期通信使ってるしな。
それにPCのRS-232は同期通信が出来ないし。
85774ワット発電中さん:2013/07/03(水) 15:37:01.09 ID:H4DwGN0C
電圧がバカ過ぎる以外特に不都合はないし
86774ワット発電中さん:2013/07/03(水) 15:54:44.36 ID:Yxz2FKtY
87774ワット発電中さん:2013/07/03(水) 20:45:44.40 ID:hiyTvD51
PROGMEMに記録させた文字列データを読み出したいんだけど、

#include <avr/pgmspace.h>

const char head_0[] PROGMEM = "test001,";
const char head_1[] PROGMEM = "test002,";
const char head_2[] PROGMEM = "test003,";

PGM_P head_table[] PROGMEM = {
head_0,
head_1,
head_2
};

char buf[10] = {};

while(1){
memset(buf, NULL, sizeof(buf));
strcpy_P(buf, (char*)pgm_read_byte(&(head_table[0]))); ←?
}

コンパイルは通るんだけど、いまいち文字がちゃんと書き込めてるのか、
そして読み込めているのか・・・
文字がうまく読み書きできていないせいか、正常に動かないんだす。

なんか前もstrcatで文字列繋げようとして、
何故かうまくつながらないことがあったんだけど、
AVRは文字列扱うのに適してないんかな。
88774ワット発電中さん:2013/07/03(水) 21:10:18.35 ID:Gq9cynr1
>>87
プログラム間違ってるだけ
AVRのせいにすんな
89774ワット発電中さん:2013/07/03(水) 21:33:23.85 ID:CAT8O5jp
>>87
ポインタはbyteじゃダメだよ
90774ワット発電中さん:2013/07/03(水) 21:55:16.32 ID:hiyTvD51
>>89
あ、ごめんなさい。
貼り付けミスです。
最初はpgm_read_wordだったんですけど、
ここがアレなのかなぁと思ってbyteにしたままでした。
pgm_read_wordでも上手くいかない・・・
91774ワット発電中さん:2013/07/03(水) 22:09:21.26 ID:hiyTvD51
だって、これでもNGなんだぜ・・・?
C言語だったらこれで問題なく動くのに・・・。

const char a[4]="aaa";
const char b[4]="bbb";
char c[7]={0};

memset(c, '\0', sizeof(c));
strcpy(c, a);
strcat(c, b);
92774ワット発電中さん:2013/07/03(水) 22:21:18.57 ID:Gq9cynr1
>>91
head_table の型がわかんね

strcpy_P(buf, &(head_table[0]));
93774ワット発電中さん:2013/07/03(水) 22:29:25.97 ID:cqNdHOq3
>>90 テーブルをコピーして楽しいかい?
94774ワット発電中さん:2013/07/03(水) 22:34:37.52 ID:hiyTvD51
>>93
ん〜・・・、head_table[0]に格納されているのは、
char型のポインタの変数であるhead_0の、先頭のアドレスですよね。
それを引っ張り出して、strcpyの第2引数に持ってくれば、
コピーされるのは文字列なのでは?と思うのですが・・・。

それ以前にPROGMEMを使っていないのに>>91が上手くいかない時点で、
C言語から来た自分にとってはAVR意味不明すぎる・・・。
C言語使えるって聞いているのに!!!!
95774ワット発電中さん:2013/07/03(水) 22:37:00.05 ID:Gq9cynr1
必要な情報が出てこないので
エスパー試験と化してます
96774ワット発電中さん:2013/07/03(水) 22:43:49.32 ID:hiyTvD51
うーん、例えば
strcpy_P(buf, PSTR("test"));
でやってみると、普通に上手くいくから、
ROM上に書き込む時点で何かがおかしくなってるのかなぁ
97774ワット発電中さん:2013/07/03(水) 23:32:24.60 ID:hiyTvD51
まじ分からんな・・・。
ここで聞いても答えがでないとなると、
もうどうしようもない。
98774ワット発電中さん:2013/07/03(水) 23:49:42.39 ID:TIXYnvsT
const char head_0[] PROGMEM = "test001,";
みたいな記述を関数の中でやるとうまく行かなくて
外に出したらうまくいったという成功体験
99774ワット発電中さん:2013/07/03(水) 23:58:03.00 ID:hiyTvD51
>>98
ああああああああああああああざす!!!!!!!!!!!!!!!!!!!
解説サイトにそういう注釈つけて欲しい。
10個くらいのサイトを上から下まで全部読んでたのに
そんなこと一言も書いてなかったよ。
100774ワット発電中さん:2013/07/03(水) 23:58:31.00 ID:cqNdHOq3
strcpy_P(buf, (PGM_P)pgm_read_word(head_table[0])); じゃないの?
101774ワット発電中さん:2013/07/04(木) 06:47:14.68 ID:46seEwVm
>>98-99
言語仕様を理解していない、にわかスキルだから、動かなくて当然。

関数内に記述すると、明示的にstatic宣言を付けない限り、呼び出しの都度
確保と開放されるローカル変数となる。(C言語仕様上はMPUにスタックが実装
されている前提があるわけではないが一般にスタック上に動的に確保される)

const宣言は、コード記述上での書込み禁止(読み出し専用、すなわち左辺式へ
指定するとエラーになる)ことを示すだけで、ROMメモリに置かれることを意味
しない。(const付けただけでROM配置なら、ディスクからロードして実行される
WindowsやLinuxのプログラム記述ではconstが使えない)

PROGMEM マクロは、リンカに対するメモリマップ指定なだけで、コンパイル時
の構文解析には影響を与えないので、エラーとはならない。

それと、配列型のローカル変数の初期化はGCC独自拡張だった気がするが、当然
ながら実行時はフラッシュ領域には転送できない(書けない)し、スタックも配置
できない。
102774ワット発電中さん:2013/07/04(木) 06:51:01.23 ID:46seEwVm
>>91
> C言語だったらこれで問題なく動くのに・・・。

おおかた

void Yaruo_AVR_Hajimeruo()
{

const char a[4]="aaa";
const char b[4]="bbb";
char c[7]={0};

memset(c, '\0', sizeof(c));
strcpy(c, a);
strcat(c, b);

}

とかって、ローカル変数にしているというオチではないのか?
103774ワット発電中さん:2013/07/04(木) 13:56:04.62 ID:L1wIjJhk
出力として出てくるlssファイルで何が起きてるか確認するのはAVRでは必須だと思う
104774ワット発電中さん:2013/07/04(木) 15:33:00.56 ID:6/0GQBd9
AVRで乱数を発生させるときに
seedってどういうものを設定するもんなんですか?
色々調べてると、電源入れてから、ユーザがボタンを押すまでの時間をとるとか、
リアルタイムクロックなどをつけてそれで初期化するのが主流の方法のようです。

ただ、僕はなるべく小型化を図りたいので、新しいICをつけたくないです。
また、ユーザに動作を要求するのは良くないと思うのでそれも避けたいです。
それ以外で何かいい方法ってありますでしょうか?
ユーザに作業を強制せず、追加部品のいらない方法を知りたいです。

今ぼんやり頭で考えたのはEEPROMにSEEDを記録しておいて、
起動ごとにSEEDをインクリメントしていくという方法です。

/******** SEEDのロードとインクリメント ********/
unsigned char seed_h = eeprom_read_byte(SEEDH);
unsigned char seed_l = eeprom_read_byte(SEEDL) + 1;
if(seed_l==0x00){
seed_h++;
eeprom_write_byte(SEEDH, seed_h);
}
eeprom_write_byte(SEEDL, seed_l);

/******** SEEDの設定 ********/
srand(seed_h<<8 + seed_l);

この方法って、あまりWebに書かれているのを見かけないのですが、
何か構造的欠陥というか、ダメな理由があるんでしょうか?
105774ワット発電中さん:2013/07/04(木) 15:46:54.35 ID:L1wIjJhk
乱数って用途によるから
別にダメとかじゃないでしょ
何すんの
106774ワット発電中さん:2013/07/04(木) 15:58:15.79 ID:6/0GQBd9
>>105
まだほとんど実装できてないんですが、
最終的には占いみたいなものを作ろうと思っています。
15くらいの占い結果を作ろうと思っていまして、
ユーザは特に何をすることもなく、
ただ電源を入れたら占いの結果が出てくる、というものを想定しています。
結果の表示方法はLEDにするかLCDにするか、特に決めてません。
自分の力量でできる範囲でやろうかなと。
107774ワット発電中さん:2013/07/04(木) 16:01:06.26 ID:6/0GQBd9
個人的には、リアルタイムクロックつけたり、ボタン押したりなんかよりは
100倍実装が簡単で、time(NULL)をseedにするのと同じくらいの効果が
得られるんじゃないかなぁと思ってるのですが、
そういう実装方法が全然Webで見られないので、
乱数の発生のさせ方として何か致命的な欠陥があるのかなぁという単純な疑問です。
108774ワット発電中さん:2013/07/04(木) 17:46:38.81 ID:HedMOPYh
>>107
どんなもん作ろうとしてるのか今一よくわからんが、例えば大量生産品だと同じような占い結果になる製品ばかりになるのはよくないだろうね。

MAC アドレスみたいに、一品毎に異なるシードを設定できるならいいけど。
109774ワット発電中さん:2013/07/04(木) 17:50:31.74 ID:/NIIq/qO
なすび、、 登頂できんかったな、、グスン、、、
110774ワット発電中さん:2013/07/04(木) 17:57:28.37 ID:L1wIjJhk
占い程度ならカウンターをフリーランさせて
ユーザーがボタン押した時の値読む程度でいいでしょ
randなんか呼ぶ必要もなさそうだけど
111774ワット発電中さん:2013/07/04(木) 18:04:16.81 ID:acamCG1v
>>104
電源ONで乱数が一つ必要ならsrandは必要ないと思うよ。
eepromの中身が乱数列で良いよ。
それよか低消費電力sleepて常にマイコンonにしといてswてwakeupすれば内部カウンタ等とswのタイミングで乱数になるよ
112774ワット発電中さん:2013/07/04(木) 19:06:11.42 ID:CFk3TZeH
乱数の話からそれるが、
"15くらいの占い結果" を表示するための寸法の方が
"なるべく小型化を図りたい" 上でネックになるような気がするのだが…
113774ワット発電中さん:2013/07/04(木) 19:16:04.85 ID:OVW5OM2i
>>112
モールス信号方式ならLED一個ですむ
114774ワット発電中さん:2013/07/04(木) 19:54:16.84 ID:3KBcGpbY
電源投入時のRAMの初期値1バイト程度じゃばらつき少ないだろうけど
全体ならそれなりに乱数として使えないかね
115774ワット発電中さん:2013/07/04(木) 20:22:30.51 ID:4ppXttfP
>>114
やってみればわかるけど、そんなにばらつかない。
116774ワット発電中さん:2013/07/04(木) 20:54:43.14 ID:IlFwjYCV
そもそも、電源切るから駄目なんだろ。センス無さ過ぎ。
スリープしてればRAMは保持されるだろ。
117774ワット発電中さん:2013/07/04(木) 20:59:49.03 ID:OVW5OM2i
>>116
電池入れ替えたら以降の出目が全部分かるとかセンス無さすぎ
118774ワット発電中さん:2013/07/04(木) 21:07:02.23 ID:IlFwjYCV
電源入れ替えた時はボタン押すまで、若しくは離すまでカウントすれば良いだけ。
それ位思いつかないのかよ。どうしようもなくセンスねぇなー
119774ワット発電中さん:2013/07/04(木) 21:10:35.31 ID:OVW5OM2i
>>118 みたいなセンスならいらない
120774ワット発電中さん:2013/07/04(木) 21:20:55.31 ID:th5K3iJM
アナログ入力が余っていれば、中間電位が入力されるようにしておいて、
必要回数サンプリングした下位1,2bitを使うとか
121774ワット発電中さん:2013/07/04(木) 22:28:24.19 ID:46seEwVm
srand()を呼ばないで、いきなりrand()呼ぶと、出てくる乱数の順番は
プログラム実行開始からいつも同じになる。

実装依存だけど、大抵のrand()はあくまで擬似乱数なので、一見すると
規則性のない数字が返されるように見えるだけで、ばらばらな数字が出て
くる順番は実は同じ。

大抵はRTCの秒の値とか、Z80だとリフレッシュカウンタの値とか、とにかく
srand()で初期値を散らさないとダメ。
122774ワット発電中さん:2013/07/04(木) 22:36:59.73 ID:XZjrE59g
Z80だと、パチンコ台がそんな感じで乱数を作ってるらしいな。
123774ワット発電中さん:2013/07/04(木) 22:38:55.74 ID:bwArRrb+
パチンコ台は内部にテーブルを持ってて、カウンタをどんどん進めてる
玉が入った瞬間に指してる場所で当たりかどうかが決まる
それ以外の方式のものは警察の審査を通らない
124774ワット発電中さん:2013/07/04(木) 22:47:48.20 ID:zNBkzjrG
>>110-111
あーなるほど、どうせ電源ONでユーザに1アクション要求するなら、
低消費電力Sleepモードで、INT0(でしたっけ)のボタンで復帰させて
その時の内部カウンタを使えばいいんですね。目から鱗です。

>>112
そこもいずれ考えないといけないんですが、、、。
今まだそこまで頭が回ってなくて・・・

しかしあれですね。
乱数なんて使用頻度も需要も高いのに、
乱数生成用の機能があらかじめ用意されていないとは・・・。
125774ワット発電中さん:2013/07/04(木) 22:57:34.53 ID:zNBkzjrG
>>121
リフレッシュカウンタ調べてみましたが、いいもんがあるんですね。
AVRにもあれば・・・!!
126774ワット発電中さん:2013/07/04(木) 23:02:46.65 ID:zNBkzjrG
>>120
あ、それいいですね!!
2〜3Vの電位をデジタル入力ピンに繋げておいて、
8回サンプリングしてランダムな0/1の8bitの数字を得て
%15するとかでも良さそうですね。
127774ワット発電中さん:2013/07/04(木) 23:06:07.34 ID:acamCG1v
>>124
pSoCには、擬似乱数発生器PRSがあるよ。
128774ワット発電中さん:2013/07/04(木) 23:08:40.75 ID:CFk3TZeH
>>126 それはやめておけ
129774ワット発電中さん:2013/07/05(金) 02:39:17.05 ID:lcFHBvgC
http://akizukidenshi.com/catalog/g/gI-04386/
これに書き込むライターを探してるのですが、
秋月には売っていないようで・・・。
どこで入手すればいいのでしょうか。
130774ワット発電中さん:2013/07/05(金) 02:47:50.79 ID:q9y4Stus
>129
http://akizukidenshi.com/catalog/c/cavrw/

に載ってるのでいけるはずでは?私は

http://www.geocities.jp/arduino_diecimila/avr-writer/index.html#top

でやってます。
131774ワット発電中さん:2013/07/05(金) 03:01:46.09 ID:PKwibVvU
132774ワット発電中さん:2013/07/05(金) 03:18:00.60 ID:lcFHBvgC
>>130
すみません、書き方が悪かったです。
正確に言うと、AVRISPmkIIはすでにもっているのですが、
今はDIP型のものをブレッドボードにさして書き込んでいます。

http://akizukidenshi.com/catalog/g/gI-04386/
ただ、↑こういう形のものはブレッドボードに、というわけにはいかないので、
どうやって書き込むんだろう・・・と思っての質問です。
ISPとマイコンの間になるものが欲しいのです。

>>131
ありがとうございます!これでいけそうな感じですが、
>M48+ ADP ATmega48 ATmega88 ATmega168 mega48 mega88
>TQFP32 AVRのプログラミングのアダプターテストソケット+ Freeshipping
ATmega328と記載されていないですが、ATmega328でもいけるものなのでしょうか?
133774ワット発電中さん:2013/07/05(金) 03:19:31.25 ID:lcFHBvgC
あぁ、ググったら分かりました。
TQFP32の形がATmega328の形なんですね。
じゃあ大丈夫そうですね。ポチります。
134774ワット発電中さん:2013/07/05(金) 03:33:51.71 ID:lcFHBvgC
ポチったた!!
海外サイトは買うのに苦労する・・・。
需要ありそうだけど秋月に売ってないもんなんだねぇ
135774ワット発電中さん:2013/07/05(金) 08:50:51.13 ID:YuNP6iEf
需要なんか無いだろ。ISPの意味わかってないのか?
136774ワット発電中さん:2013/07/05(金) 09:51:02.89 ID:Ov1dPeIn
AVRのアプリケーションに

AVR134 :非同期タイマを使用する実時間時計(RTC)
http://www.avr.jp/user/AN/PDF/AVR134.pdf
要点
■ 非常な低消費電力での実時間時計(4μA/3.3V)
■ 非常に低費用な解決法
■ 精度調節のための調整可能な前置分周器
■ 自動閏年補正付きの時間、日、月、年の計時
■ 2000年日付形式適合
■ RTC(非同期タイマ/カウンタ)部付きの全AVRマイクロ コントローラで使用可能
■ ATmega103用C言語コード内包

という嘘みたいな事が書かれている
ATmega103でもTimer0、それ以外の多くのAVRではTimer2に
32.768kHzのクリスタルを取り付けるというもの

この数字に何の意味が…
137774ワット発電中さん:2013/07/05(金) 10:06:42.86 ID:YuNP6iEf
どこが嘘みたいなの?
どの数字のこと言ってんだろう・・・エスパー試験多すぎる
138774ワット発電中さん:2013/07/05(金) 10:08:17.58 ID:Ov1dPeIn
>>137
32768Hzというのが…
何かの定数ですかね
139774ワット発電中さん:2013/07/05(金) 10:10:36.32 ID:YuNP6iEf
当たり前にある時計用クリスタルの周波数だよ
低電力で発振できるの
140774ワット発電中さん:2013/07/05(金) 10:18:41.81 ID:Ov1dPeIn
>>139
時計用と聞いて思いついた
65536Hzにすれば、16bitタイマーの桁溢れごとに
1秒間隔のタイマー割り込みがかけられる
141774ワット発電中さん:2013/07/05(金) 10:20:16.22 ID:YuNP6iEf
そうです。バイナリーカウンタで都合よくカウントできるように
こんな一見中途半端な周波数になってる。
142774ワット発電中さん:2013/07/05(金) 10:21:35.26 ID:QccldBtY
消費電力は倍になるけどな
143774ワット発電中さん:2013/07/05(金) 10:28:14.10 ID:YuNP6iEf
どこからパワーダウンモードの話題が出たんだw
144774ワット発電中さん:2013/07/05(金) 13:48:00.42 ID:U4BRGl+z
時計用筒と周波数なんて小学生でも知ってるのにw
145774ワット発電中さん:2013/07/05(金) 13:59:50.27 ID:pKktLdyd
>>140
時計には秒2パルス。
何故かは調べよう。
146774ワット発電中さん:2013/07/06(土) 01:23:17.76 ID:FYu/eMa8
そういや秋月のmega328Pはタイマ2のバグ抱えたリビジョンて噂があったけど
もう変わったのかな
147774ワット発電中さん:2013/07/06(土) 15:07:52.65 ID:l/D1OGW7
>>145
4060が14bitとか中途半端なbit数なのはこれだったのか!
148774ワット発電中さん:2013/07/11(木) 00:13:16.25 ID:8tMXTaW8
GPSレシーバーの1PPS使ってクロック校正組んでるんだが、
PCの周囲では建物の中なのでGPS受信できない・・・・
149774ワット発電中さん:2013/07/11(木) 12:54:36.54 ID:9ajG+jn0
attiny2313をArduinoISPで使う場合に
arduinoIDEで,avr.jpなんかにあるプログラム例えば
http://www.avr.jp/user/an.htm
avr155
なんかをコンパイルしてみると
LCD_cntrol.h
に記述してある
pgmspace.h
が見つからないというエラーが出ます
でもそのファイルは
\arduino\hardware\tools\avr\avr\include\avr
あるんです。
フルパスで
#include "\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h"
とすればいいのかもしれませんが、これに対応するライブラリはリンクできなさそうです
普通はどうするのでしょうか
150774ワット発電中さん:2013/07/11(木) 14:33:41.17 ID:Wn7LaEqS
#include "pgmspace.h" ってのはIAR用かな
#include <avr/pgmspace.h> でリンクしませんか?
151774ワット発電中さん:2013/07/11(木) 14:36:30.58 ID:9ajG+jn0
>>150
なるほど。帰ったらやってみます。
ありがとうございます
152774ワット発電中さん:2013/07/11(木) 23:57:56.79 ID:AeH9BxEb
本来、K&R時代のCから

#include <> は、コンパイラ提供のヘッダファイルをインクルードする
#include "" は、ユーザ定義のヘッダファイルをインクルードする

用に使い分けるものだったはず。 完全パスで記述すれば同じだけど、両者
でヘッダファイルの読み込むフォルダの検索順序が異なる。

#include <> は、コンパイラのヘッダファイル格納場所(一般的に環境
変数 INCLUDE=等で指定)から検索されるのに対して、#include ""は、
ソースコードがあるプロジェクトのパスが優先して検索される。
153774ワット発電中さん:2013/07/12(金) 00:05:29.62 ID:8tMXTaW8
「優先」されるだけで結局はincludeフォルダにも見に行く。
質問者はそれでも「見つからない」と言っている。
わかるか?
154774ワット発電中さん:2013/07/12(金) 00:19:48.76 ID:CNz/JH9A
>>153
""は、環境変数のPATHをみにいかないよ。
カレントPATHから見に行く
155774ワット発電中さん:2013/07/12(金) 00:29:13.30 ID:dgy8f095
代表的な<avr/io.h>とかを"avr/io.h"に書き換えてビルドとか試してから書き込めよな。
「優先」って日本語わからないのかよ。
150の答えはそういうことを言っているのではない。
156774ワット発電中さん:2013/07/12(金) 01:06:35.82 ID:dgy8f095
150の答えが理解できない人も居るようなので寝る前に書いとく。
ググればわかることなんだがな・・・・

問題はpgmspace.hの場所が「...\include\」ではなく「...\include\avr\」であるという事。
質問者は自分で答えを書いているのに仕様を理解していないのだ。
コンパイラは環境変数PATHのサブフォルダには行かない。
つまり、include\からの相対パスを書かなければいけないのでヘッダファイル名の前に
「avr/」が必要なのだ。
arduinoの資料にも「avr/pgmspace.h」の説明があって、決して「pgmspace.h」ではない。

さりげなく<>に書き換えてあるのはドキュメンテーションの意味から独自ファイルではなく
システムで用意されたファイルであることを明示的に示すことが当たり前になっているからだろう。
157774ワット発電中さん:2013/07/12(金) 03:02:07.77 ID:dgy8f095
追記しておこう。なぜ"pgmspace.h"という書き方が出てきたのか?

これも150が答えを書いている。サンプルはIARコンパイラを前提に書かれており、
そんなものはシステムとして用意しておらず独自作成していると言う意味だ。

そうすると<avr/pgmspace.h>をインクルードできたとしてもそのコードは動かない確率が高い。
名前が似ていても中身の定義内容がまるっきり異なるであろうから。
興味本位にAVR155を少しのぞいてみたが、<avr/pgmspace.h>で定義されているような内容は
ソースのどこにも出てこなかった。
GNUのAVR-LibCベースで作られているarduinoにそのまま利用できるコードではない。
158774ワット発電中さん:2013/07/12(金) 07:09:09.46 ID:newxLxOW
Cプログラマは大変だな、
コンパイラのバグに怒り狂い、独自仕様に右往左往し、バージョンアップに一喜一憂し、
アプリを書くヒマさえない!
…なんて事が無いように、良い子のみんなはチャント勉強しましょうね。
159774ワット発電中さん:2013/07/12(金) 07:15:12.76 ID:tQAQzJLw
>>157
フォルダの区切り文字を混在させるような奴は、無駄なレスしてないでさっさと寝てくれ
160774ワット発電中さん:2013/07/12(金) 08:06:55.96 ID:CNz/JH9A
>>159
トンチンカン
161774ワット発電中さん:2013/07/12(金) 08:57:15.92 ID:DwG6Vy9r
>>159
ちゃんと使い分けとるぞ、さっさと目をさませw
162774ワット発電中さん:2013/07/12(金) 09:28:09.83 ID:N9ITHJvs
>>158
つまりアセンブラ最強ってことか。

PICだと気が狂うけどAVRだしな。
163774ワット発電中さん:2013/07/12(金) 10:08:06.24 ID:5fCSbcFT
Cは遊びでしか使い物にならないな。
出来上がったプログラムの品質が、ライブラリに左右されたりバージョンで動作が変わるなんて
いい訳はシビアな製品には向かない。コンパイラのせいで不具合とか、お客に失礼だろ。
アセンブラで地道に自作ライブラリを作っておけば、信頼性は高いし、開発効率はアセンブラの方がむしろ上
164774ワット発電中さん:2013/07/12(金) 10:32:04.66 ID:qXjYOn/D
そうですか
165774ワット発電中さん:2013/07/12(金) 13:16:09.43 ID:eUasoTJy
>>163
何言ってんだ?
普通、開発環境はプロジェクトごとにプロジェクト完了まで固定だろ。
ライブラリしかりコンパイラしかり、着手前に決めたものを。
業務で物作った事無いだろ。
166774ワット発電中さん:2013/07/12(金) 13:38:31.54 ID:5fCSbcFT
>>165
趣味でしか使ったこと無いのバレバレだな。
納品した後、メンテや改良を請け負えない仕事なんてありえんわw
しかも、プロジェクト毎に固定しなきゃならんって事は、プロジェクト毎に
プログラマの習熟度にバラつきはあるし、数年前のプログラムをメンテする時に、当時のコンパイラの癖を
思い出せるとも限らないから、更にプログラムの出来が悪くなる。
167774ワット発電中さん:2013/07/12(金) 13:43:28.75 ID:0zFYTz21
仕事の場合、バージョン単位に環境の再構築も可能になるよう、納品するもんだぞ?
168774ワット発電中さん:2013/07/12(金) 13:47:22.08 ID:DwG6Vy9r
>>163の仕事にはCが適していないだけ。
169774ワット発電中さん:2013/07/12(金) 13:58:58.96 ID:eUasoTJy
>>166
当たり前だけど、それが仕事なんだけどな。
開発環境はHDDごと抜いて、ラベル張って保管だろ。
170163:2013/07/12(金) 14:20:12.35 ID:5fCSbcFT
>>169
>開発環境はHDDごと抜いて、ラベル張って保管だろ

そんなメンドクサイ事してるのかよ。使えねーw ほんとに仕事が出来ないんだな。
俺は仮想環境に構築してファイルをバックアップしてる。
linuxで済ます時はtarボールにするだけだ。
171774ワット発電中さん:2013/07/12(金) 15:11:56.41 ID:eUasoTJy
>>170
情けない…
ハード直接叩くこと、してないんだね。
172774ワット発電中さん:2013/07/12(金) 17:53:24.00 ID:2VJ0Ku8i
うちの会社ではVB4.0がインストールされた端末が未だにある。
そーゆーことだろ。
173774ワット発電中さん:2013/07/12(金) 17:57:52.09 ID:gd2EzZIr
>>171
”HDDごと抜いて、ラベル張って保管”がハード直接叩くことかよwww
面白すぎwwww
174774ワット発電中さん:2013/07/12(金) 18:47:21.97 ID:dgy8f095
どのやり方も一長一短だし業種によっても適不適はあるだろ。
自分の世界が世の中すべてみたいな論争やめれ。
アセンブラもCも一長一短だ。
移植性や透過性の良いCを利用しつつ、クリティカルなところはアセンブラ関数書くみたいに
両方利用できるようになればいいんじゃないのか?
俺もアセンブラ大好き派だが、Cの美味しいところも可能な限り使っている。
コードメンテナンスは別の人に頼むから全アセンブラじゃ現実的に仕事にならんのだ。
複数のアーキテクチャ扱うからな。
175774ワット発電中さん:2013/07/12(金) 19:28:51.03 ID:tQAQzJLw
>>160
どこがトンチンカンか詳しく説明してもらおうか
176774ワット発電中さん:2013/07/12(金) 19:30:50.19 ID:tQAQzJLw
>>161
はあ?
どう使い分けてるのか、説明してみな
177774ワット発電中さん:2013/07/12(金) 19:32:54.93 ID:tQAQzJLw
>>168
単に、使えなかっただけだろ
いじめてやるなよ (w
178774ワット発電中さん:2013/07/12(金) 19:41:31.32 ID:gd2EzZIr
必死だなw
179774ワット発電中さん:2013/07/12(金) 19:43:19.84 ID:eUasoTJy
>>173
仮想化は便利だけど、ISAバスのデバイス叩いたり出来ないだろ。
まだあるんだよ。ああいうのの保守。
まぁ純ソフト屋だったら仮想マシンの方が便利なんだろうけど。
180774ワット発電中さん:2013/07/12(金) 20:02:18.41 ID:dgy8f095
>>176
ああ、俺の今朝の書き込みか。
質問者の勉強になるように書き分けたつもりだよ。無意識に混ぜたわけじゃない。
181774ワット発電中さん:2013/07/12(金) 20:07:49.86 ID:gd2EzZIr
>>179
なんでAVRの開発環境でISAが必要なんだw
182774ワット発電中さん:2013/07/12(金) 20:20:27.08 ID:FSYiCQLR
ISAバスとかw
老害が必死だなw
183774ワット発電中さん:2013/07/12(金) 20:35:52.91 ID:U8NfMTwV
Cは遊び云々、自分はアセンブラ〜なんて釣りなのに、
よく相手にするな
184774ワット発電中さん:2013/07/12(金) 20:49:56.31 ID:Oqbndvyu
2.11の時代から、MS-DOSはパスの区切り文字に、'\'ではなく'/'を使えた。
まぁ、大半のソフトは独自に'\'決め打ちでパス文字列の解析をしていたから
意味ないけど。(w

知っててごく当たり前だけど、大抵のCコンパイラは、複数のパスをセミ
コロン(;)で区切ることで複数のパスを環境変数に記述できる。だから、
"/include/avr"を追加すれば相対パスで記述しなくても取り込んでくれる。

それと、インクルードファイルを探す環境変数「INCLUDE」は、実行ファ
イルを探す環境変数「PATH」とは無関係。
185774ワット発電中さん:2013/07/12(金) 21:59:42.22 ID:RvPeM9ru
レベル低い
ID:tQAQzJLw

釣りにしか見えない
ID:eUasoTJy
186774ワット発電中さん:2013/07/12(金) 23:20:33.26 ID:tQAQzJLw
>>180
言い訳はどうでもいいから、書き分けた意図とやらを書けばいいんじゃね?
187774ワット発電中さん:2013/07/12(金) 23:22:07.73 ID:tQAQzJLw
>>185
レベル?
188774ワット発電中さん:2013/07/12(金) 23:49:56.12 ID:CrbhaAOw
>>186
わかってないのオマエだけだからさ、煽っても恥ずかしいだけだよ。
189774ワット発電中さん:2013/07/12(金) 23:54:56.34 ID:RvPeM9ru
>>187
うん。レベル
190774ワット発電中さん:2013/07/13(土) 05:58:25.42 ID:REb5aFst
AVRのスレと思ってきたけど違ったようだ
191774ワット発電中さん:2013/07/13(土) 12:58:29.23 ID:PMbTPB7d
>>188
はいはい、なぜかは知らんけど意図は掛けないんだな。
それがわかれば充分だわ (w
192774ワット発電中さん:2013/07/13(土) 13:29:47.64 ID:/oaFL9ad
夏休み前なのに、あるでぃ脳がいっぱいだなぁ。
193774ワット発電中さん:2013/07/13(土) 16:11:05.38 ID:l6gF6kcz
AVRはアセンブラ必須か なるほど メモメモメ、、、 先は遠いな
 
194774ワット発電中さん:2013/07/13(土) 16:41:36.24 ID:BBUKugGR
実質的に組み込みでアセンブラは必須だと思うなぁ。
Cのソースだけではわからないバグってあるよ。
ゴリゴリに使える必要はないと思うけどニモニック表見ながら読める程度にはね。
195774ワット発電中さん:2013/07/13(土) 17:37:08.57 ID:+wopXJ5A
読むだけじゃなくて書くのも必要
Cだけではどうにもならないことがある
196774ワット発電中さん:2013/07/13(土) 17:40:04.49 ID:BBUKugGR
やってればそういうに当たる事もあるよね。
でもまぁ趣味の範囲ならとりあえず読めれば何とかなるでしょ。
特殊レジスタを4クロック以内とか書いても数行だし。
ChaNさんのところのアセンブラ関数の書き方は読んどいたほうがいいね。
197774ワット発電中さん:2013/07/13(土) 17:56:57.06 ID:+wopXJ5A
タイミングがシビアだから、というケースは希で、
スタックとか割り込み禁止とか、C言語が勝手にやってくれる部分で、
勝手にやられたら困る部分なんかによく出てくる
198774ワット発電中さん:2013/07/13(土) 18:04:27.86 ID:BBUKugGR
クリティカルな仕事してんだねw
まぁこれから頑張ろうって人ビビらせるこたないさ
>>193がんばれ〜 必要にかられりゃそんなにドヨ〜ンなことじゃないよ。
199774ワット発電中さん:2013/07/13(土) 18:17:58.88 ID:PMbTPB7d
組み込み向けの開発環境なら、割り込みとかは C から制御できるでしょ。

超マイナーな CPU 使ってるとかなら、別だけど。
200774ワット発電中さん:2013/07/13(土) 18:57:21.55 ID:BBUKugGR
デバイスドライバーってのはそうもいかないことも稀にあるんよ。
だから趣味の範囲ならほぼ無いってw
でも、アセンブラ関数の書き方なんてのがあるって事はアセンブラの需要が
ゼロでは無いって証拠じゃないかと思うんだ。
人によってはルーチン高速化したいなんてのもアセンブラ化する理由かもしれない。
要るか要らないか人それぞれ。
201774ワット発電中さん:2013/07/13(土) 19:16:33.99 ID:PMbTPB7d
>>200
別に絶対ないと言ってる訳じゃないんだが...

そもそも趣味の方がいろいろ変なことやってて、アセンブラ使う機会が多い人もいるしね。
202774ワット発電中さん:2013/07/13(土) 20:25:50.28 ID:xty7La/B
通常はAVR
スピードと容量を求められるときはRaspberryPIでいくことにしました
203774ワット発電中さん:2013/07/13(土) 21:27:13.74 ID:dlHfbfZa
RPiでスピードとかw
204774ワット発電中さん:2013/07/13(土) 22:06:24.04 ID:jFzhqxkh
ふつうにあるだろ。
205774ワット発電中さん:2013/07/14(日) 00:11:37.93 ID:yLL+ReV4
基本を知らないのに、アセンブラとか笑えるねぇ。

>>157の「AVR-LibCベース」なんて何を言いたいのやら。

標準ライブラリを含めて、C言語は勝手に割込マスクしたりはしない。

そもそも言語仕様レベルでは割り込みやスタックの概念はない。関数内で
宣言するstaticではないローカル変数は、大抵のCPUでスタック領域に確保
されるが、あくまで実装依存。

アセンブラやってるからって偉い訳でもないし、趣味の大半はメンテ性無視だし、
本人の人件費ゼロというコストも度外視だし、それどころか間違った知識で
使ってたりもするからなぁ。

Windowsでさえドライバをカーネルモードではなく、ユーザーモードで動かそう
としてフレームワークを提供しているのに、きょうびデバドラごときでアセン
ブラ必須なんてないだろ。まぁ肝心のフレームワークが糞なせいで、青画面
で固まったりするけどな。

DOSのドライバならともかく、カーネルモードで動くWindowsドライバでさえ、
勝手に割込コントローラやDMACのレジスタとか直接操作したりはできんぞ。
206774ワット発電中さん:2013/07/14(日) 00:23:48.80 ID:OOhhA2PV
windows?
207774ワット発電中さん:2013/07/14(日) 07:41:05.27 ID:FgsVfxzF
私は<趣味でアセンブラ>でやっているので、スタックなんぞいつもイジリ倒している。
スタック領域をいくつか確保して乗り換える時もあるし、
SPの深いレベルからいきなりトップに初期化したり、
通常の処理から割り込み処理へジャンプしたりもする。
装置が完成すると、私の意のままに動いている健気なAVR、って感じです。
ただし、私にとってAVRはあくまでもヒマツブシなので、
分かりにくいプログラムは止めろとかのクレームは無しで(念のため)
208774ワット発電中さん:2013/07/14(日) 08:54:48.37 ID:NQp/6NqT
>>205
笑える自己紹介だなwww
209774ワット発電中さん:2013/07/14(日) 09:36:00.78 ID:ApZGqkF1
いつの間にかAVRにOS載せて
デバイスドライバー使うのが
主流になったのか。

しかもWindows・・・RTだよな、きっと。


ポート叩いてLEDチカチカさせてた
あの頃が懐かしい。
210774ワット発電中さん:2013/07/14(日) 09:43:42.93 ID:Oae/SSKf
>>203
スピードって、スループットの意味で使ってる人と、レスポンスの意味で使ってる人がいるから
211774ワット発電中さん:2013/07/14(日) 11:40:54.81 ID:yLL+ReV4
普通にスタック使うのと、スタックいじり倒すとか、線引きはどこに?(w

C標準の仕様だと、ローカル変数に実行時にサイズが決まる配列は宣言
できないけど、GCCは独自拡張しているので、AVR-GCCも可。

関数から関数へのジャンプも、関数ポインタ使えばできるし、スタック
ポインタを直接触る部分だけインラインアセンブラで書けば足りるでしょ。

以前、x86でCコンパイラが吐いたアセンブラソースを関数単位でチマチマ
最適化して、最終的にバイナリサイズを1/3くらいにしたことあるけど、
命令が素直すぎるせいかAVRでアセンブラの最適化とかやる気がしない。
212774ワット発電中さん:2013/07/14(日) 12:03:20.28 ID:lB+7RLIp
>>211
Cで関数ポインタさえ使えばコルーチンを実装できるとは初耳に水だが、どう実装するのかね? 後学のために教えたもれ。
213774ワット発電中さん:2013/07/14(日) 12:15:51.54 ID:lB+7RLIp
おっと、ID:yLL+ReV4はWindows屋のようだったな。コルーチンという語に馴染みが無ければファイバと読み変えてもいいぞ。
214774ワット発電中さん:2013/07/14(日) 12:39:37.65 ID:yzak9yJz
可変長配列はC99から使えるよ
215774ワット発電中さん:2013/07/14(日) 14:39:20.13 ID:Oae/SSKf
> 211
> 普通にスタック使うのと、スタックいじり倒すとか、線引きはどこに?(w

> スタックポインタを直接触る部分だけインラインアセンブラで書けば

ここだろ JK
216774ワット発電中さん:2013/07/14(日) 15:21:31.75 ID:OOhhA2PV
itronを乗せる余裕は無いけどタスク切り替えとかしたい時に、
スタックを自分で管理することになる

処理能力のある石にしてRTOS乗せりゃいーじゃんという考えと、
C言語に任せりゃいーじゃんという考えは方向同じだな
217774ワット発電中さん:2013/07/14(日) 17:20:16.50 ID:iSWOPcob
>>203
早いよ。
プログラミングが下手なんじゃない?
218774ワット発電中さん:2013/07/14(日) 19:59:34.00 ID:rqktzYmS
>>209
お前バカだろ
219774ワット発電中さん:2013/07/15(月) 02:43:12.35 ID:AOFBDeSh
UARTの受信割り込みの実験をしているのですが、
どうも割り込みが発生してくれないようです。
割り込み設定のレジスタもちゃんとHにしてますし、
割り込み許可のsei()も実行しています。

一度でもlSR(USART_RX_vect)の中に入ると
LEDが光るようにしているのですが、LEDは光らないので、
ちゃんと割り込まれていないという事が分かりました。

データを受信しているかどうかについては、
送信側のRXとTXの配線をつないで確認したところ、
エコーバックされるのでデータはちゃんと送受信されているようです。

なぜ割り込みが発生してくれないのでしょうか?
ATmega168Pです。

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

// UART受信割り込み
lSR(USART_RX_vect){
  PORTB = 0b00000010;
  unsigned char x;
  x = UDR0;
  while(!(UCSR0A&0b00100000));
  UDR0 = x;
}

int main(void)
{
  UBRR0H = (unsigned char)(25>>8);
  UBRR0L = (unsigned char)25;
  UCSR0A = 0b00000000;
  UCSR0B = (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);  
  UCSR0C = (1<<USBS0)|(3<<UCSZ00);  
  sei();

  DDRB = 0b00000010;
  PORTB = 0b00000000;
  
while(1)
{
    _delay_ms(1000);
}
}
220774ワット発電中さん:2013/07/15(月) 02:48:54.29 ID:AOFBDeSh
lSRじゃなくてISRかよぉぉぉぉぉお!!!!
わかりにくいフォント使ってんじゃねぇええええええ!!
221774ワット発電中さん:2013/07/15(月) 03:00:05.78 ID:hauhKnfR
LSSファイルが読めればベクターテーブルがからっぽなのすぐわかったろうにねぇ
222774ワット発電中さん:2013/07/15(月) 03:03:38.51 ID:f9/3Tb8c
先頭だけ小文字って普通ありえんだろ…
223774ワット発電中さん:2013/07/15(月) 03:19:28.34 ID:AOFBDeSh
>>222
見てたWebページのフォントが明らかに小文字のエルだったので、
そういうもんなのかぁと思って・・・。

よーし、次はI2Cの勉強だ!!
224774ワット発電中さん:2013/07/17(水) 03:16:08.90 ID:alPk0YbB
AVRの乱数で気付いたことが・・・。

電源ONにしたら、
srand(XXX);
で初期化して、
rand()%40を2回実行しするだけのプログラムです。

電源をONにするたびに(x, y) x<40, y<40の組み合わせが生み出されるのですが、
rand()%40から生み出される数字が狭い範囲でループしているようです。
例えば、

(x,y)=
1,4
16,21
8,2
33,23
4,25
1,4
16,21
8,2
33,23
4,25
1.4
16,21
8,2
...

のような感じです。この比較的小さい幅でループするなんてあり得ますか?
225774ワット発電中さん:2013/07/17(水) 03:22:18.92 ID:alPk0YbB
乱数の初期化のアルゴリズムは

// 乱数の種の上位8ビット、下位8ビットをEEPROMから取り出す
uint8_t seed_h = eeprom_read_byte(SEEDH);
uint8_t seed_l = eeprom_read_byte(SEEDL);

// 上位8bitをインクリメント
seed_h++;

// 上位8ビットがオーバーフローして0に戻ったら、下位8bitを繰り上げる
if(seed_h==0x00){
  seed_l++;
}

// 乱数を初期化
srand(seed_h<<8 + seed_l);

// EEPROMに乱数の種を保存
eeprom_write_byte(SEEDL, seed_l);
eeprom_write_byte(SEEDH, seed_h);

※eeprom_busy_wait()はココでは見にくくなるので省略しています。

のようにしています。乱数の種は
0x0000
0x0100
0x0200
0x0300
...
0xFE00
0xFF00
0x0001
0x0101
0x0201
のようになっていく想定です。
226774ワット発電中さん:2013/07/17(水) 09:35:52.41 ID:1zwouNB1
想定じゃなくてどの乱数のときにどんなシードだったのか調べればいいんでない?
ぱっと見ではシードのアップデートにミスがあってループしてるバグのように見えるけど。
227774ワット発電中さん:2013/07/17(水) 13:45:13.90 ID:arZbLoDx
>>225
seedの上位バイトを順次インクリメントして初期化した最初のrand値は乱数じゃない。
randの答えを次のseedにしないと乱数にならないじゃないのかな?
詳しくはrandのソースを読むと理解できるかも

avr-libc
の中身抜粋
static int
do_rand(unsigned long *ctx)
{
long hi, lo, x;

x = *ctx;
if (x == 0)
x = 123459876L;
hi = x / 127773L;
lo = x % 127773L;
x = 16807L * lo - 2836L * hi;
if (x < 0)
x += 0x7fffffffL;
return ((*ctx = x) % ((unsigned long)RAND_MAX + 1));
}

int
rand(void)
{
return do_rand(&next);
}

void
srand(unsigned int seed)
{
next = seed;
}
228774ワット発電中さん:2013/07/17(水) 19:34:08.36 ID:EzOvMoq7
>>225
>>srand(seed_h<<8 + seed_l);
これ、
srand((unsigned int)seed_h<<8 + (unsigned int)seed_l);
229774ワット発電中さん:2013/07/17(水) 19:49:08.90 ID:JJRMPInl
mint8付けてるんでなければ変わらんよ。
とりあえず、こうかな。
srand((seed_h<<8) + seed_l);
230774ワット発電中さん:2013/07/17(水) 20:55:25.49 ID:zxKad4GI
Cで書いてるんだしハードと関係ない処理はPCで確認すりゃいいのに
231774ワット発電中さん:2013/07/17(水) 21:21:25.00 ID:EzOvMoq7
>>229
そだね。
+ の方が<<より演算優先順位高いから
srand(seed_h<<8 + seed_l);
は、
srand(seed_h<<(8 + seed_l));
になっちゃうね。
232774ワット発電中さん:2013/07/17(水) 21:39:30.44 ID:gjNR+3Yp
AVR Studioのシミュレータで見れるな
233774ワット発電中さん:2013/07/17(水) 22:33:44.76 ID:7YU6zKZ6
ここに書けば自動的にデバッグが済むから楽チンw
自分で手を動かす奴は負けw
234774ワット発電中さん:2013/07/17(水) 22:41:32.57 ID:gjNR+3Yp
え〜デバッグ楽しいしここのレス遅いよ〜
235774ワット発電中さん:2013/07/18(木) 01:38:13.94 ID:hPvjX43/
みなさんは
void USART_Transmit(unsigned int data)
{
while ( !(UCSRnA & (1<<UDREn)) ); /* 送信バッファ空き待機 */
UCSRnB &= ~(1<<TXB8n); /* TXB8nを0に仮設定 */
if (data & 0x0100) UCSRnB |= (1<<TXB8n); /* 第9ビットをR17からTXB8nへ複写 */
UDRn = data; /* データ送信(送信開始) */
}
書き方しています?
それとも定数でやってます?
236774ワット発電中さん:2013/07/18(木) 12:46:05.24 ID:hHPssGFw
そんな効率の悪いコーディングはしない。
237774ワット発電中さん:2013/07/18(木) 13:01:11.92 ID:GN18z0aM
俺には質問の意図そのものがわからんw
定数ってなんのことね?
238774ワット発電中さん:2013/07/18(木) 14:01:51.35 ID:f8J9ff/k
決まった値しか送出しないんじゃね?
239774ワット発電中さん:2013/07/18(木) 16:50:13.60 ID:KJZH2scJ
AVR studioの行番号の表示の仕方がわかりません

ググって見たんですがでてきませんでした。。。
240774ワット発電中さん:2013/07/18(木) 16:54:41.72 ID:FwmWe/71
AtmelStudioなら、オプションから行番号にチェック入れるだけだが
古いソフトはわからんなぁ
241774ワット発電中さん:2013/07/18(木) 17:08:22.35 ID:KJZH2scJ
>>240
AVR studioって古いソフトなんですか?知らずに使ってました。。。
文字をクリックすると右下にその行番号が表示されるんですが、常に表示できないかな
242774ワット発電中さん:2013/07/18(木) 22:24:06.20 ID:yHPssG47
>>237
1 << UDREn とかが、実行時に計算されると思ってるんでしょ。
俺ならそのままにしておく。
243774ワット発電中さん:2013/07/19(金) 00:06:36.81 ID:3i2xq8ie
それこそ逆アセ見りゃ分かるのにな
ほんの数行じゃん
244774ワット発電中さん:2013/07/19(金) 00:12:10.26 ID:rWQ4XiX8
電源を切っても書き込んだプログラムが消えないようにしたいのですが、どのようにしたらいいですか?
フラッシュROMに書き込めば消えないようですが、どうやってフラッシュROMに書き込めばいいかよく分からないです
245774ワット発電中さん:2013/07/19(金) 00:14:25.45 ID:2e3aSaZk
むしろRAMで動かすのが無理
246774ワット発電中さん:2013/07/19(金) 00:31:44.70 ID:0pKJWc3x
○rduino参考にすればよかよ
247774ワット発電中さん:2013/07/19(金) 00:34:28.50 ID:O68wY3x4
シミュレータで動かしてるのかな?
AVRライタ(AVR ISP mark2など)を手に入れて
AtmelStudio等から書き込めばいいんじゃね。
AVR Studio4しか使ってないので他のツールの場合は分からん。

(1) USBにAVR ISP mark2をつなぐ。
(2) AVR ISP mark2とAVRをつなぐ(RESET,VCC,GND,MISO,MOSI,SCKの6箇所)
(3) AVR Studio4のメニューで
   tools>Program AVR>connectを選ぶ。
(4) ウィンドウが開くのでPlatformのAVR ISP mark2を選んでOK押す。
面倒になってきたので以下はぐぐってくれ。
248774ワット発電中さん:2013/07/19(金) 01:13:57.97 ID:3i2xq8ie
Arduinoのスケッチの話だったらスレち
249774ワット発電中さん:2013/07/19(金) 08:04:48.33 ID:i0b2fObi
AT90CAN 用に移植された OSEK か AUTOSAR どこかにないかな?
250774ワット発電中さん:2013/07/19(金) 20:57:52.16 ID:MzhtER1c
秋月のHPをひさしぶりに見たら

8ピンのAttinyは10, 13しかないな
AT90S2323は外部オシレータ必須という地雷だし

20ピンも2313と861しかない

もう終わりなのか
861を買い溜めしておこうかな
251774ワット発電中さん:2013/07/19(金) 21:21:32.61 ID:sHLY+LR0
861はシリアルないがな
252774ワット発電中さん:2013/07/19(金) 21:55:46.69 ID:miO9OgK+
2313はADCないがな
253774ワット発電中さん:2013/07/19(金) 22:01:19.85 ID:UbXHkgn5
そこでxmegaですよ。
…DIPないがな
254774ワット発電中さん:2013/07/19(金) 22:08:38.40 ID:MzhtER1c
>>251
ArduinoISP使って
ArduinoIDEでプログラミングすると
SoftwareSerialが使えます
某サイトのSoft_I2Cを使うとI2Cも使い放題
2313と違ってADCがあるし、フラッシュメモリは8kもある
けっこう使いやすいですよ
255774ワット発電中さん:2013/07/19(金) 22:14:50.33 ID:3i2xq8ie
どうしても両方欲しいなら88系あるしそういう話じゃないんだよな
256774ワット発電中さん:2013/07/19(金) 22:34:30.83 ID:OOp1zCvW
非同期シリアルもI2Cも遅くていいなら実装は難しくないだろ。
I2Cのスレーブはちょっと面倒かな。
257774ワット発電中さん:2013/07/20(土) 06:48:50.70 ID:Gn3NaEK1
要するに秋月では「AVRは在庫整理商品」っていうことだ。
PIC派は喜んでるだろうな。
258774ワット発電中さん:2013/07/20(土) 08:45:13.71 ID:ZwD4bL3z
AVR でエアコン操作しようとリモコンコード調べてたら 264 ビットも送信しててわけわかめ
とりあえず冷房1時間オフタイマーと電源オフだけコピーしたけど他を調べる気力がない

赤外線LEDチカチカさせるだけの簡単なお仕事のはずだったのに難しい
259774ワット発電中さん:2013/07/20(土) 09:34:02.64 ID:BOQqx5To
エアコンは学習リモコンでは無理なので、工作する意味がある貴重な分野だ
メーカー間の互換性は無いだろうけど、一つのメーカー内なら同じ規格に
なってる可能性が高いので、夏休みの自由研究として発表する価値がある
260774ワット発電中さん:2013/07/20(土) 10:06:50.14 ID:LRpMu90A
中華通販で買ったリモコンはエアコンも出来るよ。
261774ワット発電中さん:2013/07/20(土) 14:43:29.12 ID:Gn3NaEK1
>>258
以前、テレビのリモコン送信器用の受信器をAVRで作った時に
フォーマットその他を調べていたら、
あるエアコンメーカーの特許広告に
「誤動作防止の為にAGCが安定するまで受信ビットを捨てる」
なんてのがあった。
もしかしたら始めの何ビットかは使ってないのかも?
動作確認もしていないし、ウロ覚えだし、スマンけど。
262774ワット発電中さん:2013/07/20(土) 15:36:16.96 ID:ZwD4bL3z
18年前の日立のエアコンだけど

リーダーコードと論理01は家電製品協会フォーマットに準じてて
先頭24ビットがメーカーコード?
(8ビットデータ 反転8ビットデータ )×15
というところまでは調べた

運転種別(冷房、暖房、除湿、自動)とか
設定温度とか
オフタイマー、オンタイマーとか

全部送信してる気がする
263774ワット発電中さん:2013/07/20(土) 23:41:18.67 ID:THyTuBsD
そのようにしないとリモコンと本体の状態が一致しなくなるからね。

うちの東芝のリモコンはボタンを放してから送信するようにできていて、
ボタンを押してすぐに向きを変えると取りこぼすんだよな。初心者が
設計したのか。
264774ワット発電中さん:2013/07/21(日) 00:07:36.93 ID:8mkhgTyn
うちの携帯は、被写体をファインダーに入れて、シャッターのボタンを押して、
ビロリン♪て音が鳴り終わってから撮像を開始するので、大抵ブレている
265774ワット発電中さん:2013/07/21(日) 08:23:43.41 ID:TAV5iJ5J
>>263
モード切替や長押し、UP/DOWNキーの連打等で押すたびに送信すると不都合なキーは遅延送信
266774ワット発電中さん:2013/07/21(日) 20:16:37.50 ID:bfdSTfYk
>>265
それは本体側で対応したほうがいいと思う
267774ワット発電中さん:2013/07/21(日) 22:33:29.74 ID:JLOI3/Xr
>>265
ボタンを離すたびに送信してるのを、ボタンを押すたびに一回送信すれば
いいだけだろ。
268774ワット発電中さん:2013/07/22(月) 07:30:34.34 ID:QdlAkHwW
>>267
>>265 とは別人だが、ボタンを離す度に送信するのではなく、ボタンが押さ
れてから一定時間経過以内に別の操作がされなかった時に送信しているんだよ。

ソフトで構成したリトリガブルなワンショットタイマをボタンが押された時に
毎回トリガして、連続して操作された場合、タイマの延長だけで送信はしない。
最後の操作後にワンテンポ置いて1回だけ送信される。

電池消費を抑えるのと、連続データ部を誤って開始パターンと判定すること
による受信側の誤作動を防ぐため、規格で100ms程度のポーズ時間(無送信)
時間を置くことになっているので、一連の長いデータを毎回送信すると、
連続で送信するよりも早くボタン連打される。

送信中の連打を無視するとユーザにボタン操作が効かないと誤認され、送信
中の連打検出で送出を中断すると、受信側で前のコマンドが捨てられたり、
場合によっては誤認識されるので、ユーザにボタン操作が効かないとか、
誤作動すると思われる。

通信ってのは、常にエラーが起きる前提で設計する必要がある。
269774ワット発電中さん:2013/07/22(月) 07:56:31.32 ID:Hv4nGi1C
>>268
5秒間押しっぱなしにしても一度も送信されず、離してから送信されるのを
どう説明するの?
リモコンは東芝のWH-D5B。送信されたかどうかはデジカメで確認してる。
270774ワット発電中さん:2013/07/22(月) 08:06:13.77 ID:fPesBwa5
リモコンの仕様なんてそれぞれなんじゃない?


話変わるけどFreeRTOS使ってる人居る?
ハード的な割り込みルーチンにコード書きすぎると別の割り込みとぶつかるのか変なアドレスで無限ループに陥る
仕方ないからコードの量を減らしてタスク側にウェイトを置いて回避してるんだけど、そもそもタイミング的な事でバグるのであればそのタイミングが発生する可能性が低くなっただけでバグ発生のリスクが消えてない

この辺の仕様分かる人居ないかな
271774ワット発電中さん:2013/07/22(月) 08:06:54.46 ID:QdlAkHwW
>>269
自分で考える能力がないのを棚に上げて逆切れされてもな。

こちとら、各社のリモコンを調べているわけでも、設計を請け負ってる
わけでもねぇからな。 ソリューションなんて1つじゃねぇんだよ。
272774ワット発電中さん:2013/07/22(月) 08:31:05.13 ID:Hv4nGi1C
なんかレベルの低いリモコン設計者らしき人が必死ですね。
273774ワット発電中さん:2013/07/22(月) 08:48:34.61 ID:1/2a4dNE
>>269
リモコンが遠くて手元で操作しても送信できない時は、エアコンに向かってリモコンを持った手を伸ばしてから指を離す。
274774ワット発電中さん:2013/07/22(月) 10:06:22.24 ID:ZO0vyiDz
エアコンとリモコンの間に、ハイパワーの赤外線LEDと赤外線フォトトランジスタをつないだものを置いて中継させれば?
曲がり角に置けば見通せないところもOKかも。
275774ワット発電中さん:2013/07/22(月) 10:11:03.22 ID:e89nYKjN
鏡置けよw
と言うのは半分冗談だが、俺の寝室ではテレビに向けてエアコンのリモコンを操作すると割と反応する。
276774ワット発電中さん:2013/07/22(月) 11:31:56.41 ID:RnbAxlNb
送信しているタイミングはポータブルなAMラジオを近づけながらリモコン操作すると
どのタイミングで送信しているのか位は判別できる。どんなコードを送っているのか迄は判るはずもないが、
単発/リピートコードなのか。送信するタイミング、リピートのタイミングなどはよくわかる。

別の話
眼球に向けてリモコンの赤外線を送信すると
意外とちゃんと届くもんだ。視線は受信させたい機器に向けておく。
民生用機器の赤外線リモコン程度の出力なら網膜損傷などの可能性は低いと思うが、
常用せず、確認程度にとどめておくことを推奨。
277774ワット発電中さん:2013/07/22(月) 12:03:53.22 ID:QqGQvJ5k
赤外線出てるか見るのは携帯かデジカメがデフォじゃね?
278774ワット発電中さん:2013/07/22(月) 15:18:51.13 ID:giz7EuLx
>>270
割り込みプライオリティの設定がおかしいとか、スタックぶっ壊してる
だけなんじゃないのかなあ?
279774ワット発電中さん:2013/07/22(月) 16:33:41.74 ID:yZulCV+3
RTOSで割り込み内に長い処理を入れないでイベント発行やセマフォ等の同期命令でタスクを起動させてタスクで長い処理をするのがセオリーだと想う。
じゃないとリアルタイム性が、、、、
280774ワット発電中さん:2013/07/22(月) 18:03:05.00 ID:gkNHc9Rw
勿論キューに放り込むような形にしてたんだけど、ADCなので割り込み頻度がかなり多い上に別のタスクでは20msec間隔で16bit変数同士の除算なんてさせてるものだからいっぱいいっぱいかも
取り敢えず割り込みではキューを使わずにADC値をグローバル変数に格納するだけにして、別にポーリング的なタスクを起こして処理させてる

割り込みはこれだけじゃなくて、5msec間隔でCANの送受信をしてて、これもまた面倒なことに不具合が起こるらしく、ラッパーを介して処理するとか面倒な事してる

除算部分をインラインアセンブラに置き換えたり色々やってるけど、8bitマイコンでは限界かも
281774ワット発電中さん:2013/07/22(月) 18:09:17.85 ID:YOHO997x
これだからCしか出来ない奴はw
「いっぱいいっぱいかも」ってなんだよw
ちゃんと各タスクの処理時間を計測して最大値を見積もれよ。
282774ワット発電中さん:2013/07/22(月) 18:17:26.02 ID:FADVSEb7
>>280
割り込みからのキュー操作は
xQueueSendFromISR
使ってる?
283774ワット発電中さん:2013/07/22(月) 18:19:14.29 ID:WlFJnZ03
計測できるものならしてもらいたいくらいだわ
デバッガーでコード追うのが精一杯で、精々各タスクの始めと終わりのブレイクポイントでCPUカウント数える程度のスキルしかない
スキルとも言わないかも知れないけど

マルチタスクをアセンブラレベルでってアセンブラコード読み書きできる程度じゃ無理だよね?
284774ワット発電中さん:2013/07/22(月) 18:21:50.55 ID:WlFJnZ03
>>282
YES
その部分に関してはスタックのオーバーフローではない感じだったし、値のコピーのみで良しとしておくつもりです

ただ、タスクフリーズの原因が特定できてないので心配というか何というか
285774ワット発電中さん:2013/07/22(月) 20:29:24.39 ID:QdlAkHwW
いくら除算命令持ってても、1命令に200クロック以上掛かって、9600bps
全二重のデータすら割り込みで拾えない8086に較べたら、8MHzや20MHzで
もほとんどの命令が1クロックで動くAVRで、20ms周期で除算実行する
くらいどうってことないと思うけどなァ。

通過ポイントでI/Oを叩くコードを追加して、ロジアナでタイミングでも
計ってみれば?
286774ワット発電中さん:2013/07/22(月) 21:24:08.90 ID:WlFJnZ03
>>285
問題は速度もさながら、タスクのスタックが著しく消費されてしまうっぽい
てかFreeRTOSのスタックって何かの拍子に跳ね上がってオーバーフローしてくれるから本当に困る
287774ワット発電中さん:2013/07/22(月) 22:33:42.50 ID:0CZ0Vw0d
>>286
割り込みルーチンで同じ割り込み受け付けるようになってない?
288287:2013/07/22(月) 22:35:49.12 ID:0CZ0Vw0d
よく見たら、意味不明だった。
割り込みルーチン実行中に、だな。
289774ワット発電中さん:2013/07/22(月) 23:21:10.92 ID:WlFJnZ03
>>288
間隔的に同じ割り込みがかぶることはないと思うんだけど、一応該当部分をクリティカル領域に指定してもダメだった
290774ワット発電中さん:2013/07/23(火) 06:47:51.94 ID:voQpb65I
>>283
俺が2313用に作ったマルチタスク処理は準備も含めて命令数十個だ。

裏の自家用の野菜畑に行くのにランドローバーは必要ないと思う。
積み荷の大きさを考えれば軽トラで十分だ。
そりゃ確かに軽トラではスキーや河原遊びには行けないけど、
大型車が通れるように道路を拡張する(大きなMCUに乗り換える)必要もない。

自分で作れば隅から隅まで把握できるので、不具合はすぐに対処できるし、
目的に応じて好きなように改造できる。
マルチタスクの構造を勉強し、
アセンブラが出来なければ勉強して出来るようになればいいだけ。

なんてエラそうな事を書いちゃったりして気に障ったらゴメンね。
早く動くようになるといいね、ガンバッテ下さい。
291774ワット発電中さん:2013/07/23(火) 07:05:43.55 ID:mBnnExZh
リエントラントくらいは知っているんだろうか。
組み込み用のOSなんてメモリー保護はないわ、下手すりゃ
ライブラリまでリエントラントじゃないんだがな。
何も考えずに作ってそのままで動くとは思えん。
292774ワット発電中さん:2013/07/23(火) 07:10:30.33 ID:Py3IMRA2
8ビットCPUでメモリ保護とかw
ゆとりの弊害は恐ろしいな。
293774ワット発電中さん:2013/07/23(火) 07:38:33.74 ID:Y1e4juud
OS-9にはメモリ保護があったけどな。
294287:2013/07/23(火) 08:05:38.35 ID:/1TvT7Kn
メモリー保護もぴんきりだからなぁ

特定領域を書き込みできないようにするぐらいならやってたし
295774ワット発電中さん:2013/07/23(火) 17:42:52.52 ID:XroRYLKC
Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xc0, expected 0x00
AVRに書き込みをしようとしたらこのエラーが出て書き込めないのですが、
このエラーは何が原因ででるエラーなのでしょうか?

ATmega2313、AVRISP mkII、AtmelStudio6を使っています。
296774ワット発電中さん:2013/07/23(火) 17:56:39.39 ID:kSIxBKCT
>>295
取り敢えず転送速度を125khzに
297774ワット発電中さん:2013/07/23(火) 17:58:02.16 ID:FuswT8e7
ISPコネクタのピンアサイン間違ってるに1票
298774ワット発電中さん:2013/07/23(火) 21:33:24.23 ID:qfnqbvyt
>>296
125kHzにしてもダメでした

>>297
ピンは間違っていないはずです。
もう長いこと色分けして全部覚えているのと、
データシートと何度か見比べたのですが
特に間違いはなさそうでした。

ちなみにDevice Programing→Memory→Programで書き込みをしようとすると
execution of command cancelled because of previous command failure
という表示がでます。

また、DeviceSignatureをReadしようとしても
読み込めませんでした。

そもそも書き込む以前の問題なのかもしれません・・・。
299774ワット発電中さん:2013/07/23(火) 22:01:30.22 ID:qEnpnE22
別の2313にしても同じなんですか?
300774ワット発電中さん:2013/07/23(火) 22:02:16.59 ID:1+izDlTP
メッセージ通りだよ。接続すらされてない。
情報が少なすぎるから誰も答えられないよ。
以前も「ピンアサインは間違ってない」といってた奴が
ピンアサイン逆だったことがある。
一度接続してリセットピン無効にしたのかも知れんし、
シリアルプログラム無効にしてしまったのかも知れん。
内蔵クロック殺して水晶つけてないって落ちかも知れん。
色々思い当たりすぎて誰も答えられないんだよ。
301774ワット発電中さん:2013/07/23(火) 22:16:43.73 ID:qfnqbvyt
接続されていないという事は、
ピンアサインを間違っているか、
接触の問題でしょうか。

新しい2313で試しても同様の症状です。
ブレッドボードを変えてみても同じ症状です。

ちなみに、ISPAVR mkIIのマイコン側のLED?が、
橙色で点滅しているのですが、
これは調べてみるとISPのファームウェアをアップデートしろという意味か、
リセットピンあたりに異常があるかも?みたいなサインらしいですが、
ISPのファームウェアはUp To Date状態なので最新のはずです。

リセットピンを無効にしたり、シリアルを無効にしたり、
内蔵クロックを殺すようなプログラムは書いてませんし、
AVRの設定を変えるようなこともしていません。
買ったまんまのAVRにISPを繋げて書き込もうとしています。

AVRもATtiny2313で、AtmelStudio上での設定も2313で間違いありませんし、
ISPの選択も間違っていません。

接触が悪いというのが一番可能性として濃厚でしょうか。。。
302774ワット発電中さん:2013/07/23(火) 22:17:55.77 ID:EdcIfi5Y
2313の基板にISPコネクタをつけるのがめんどくさくて、
2313そのものをつかむクリップにISPコネクタをつけて使ってたら、
あるとき以降>>295みたいなエラーが山ほど出て、
さんざんいじってみたもののエラーが消えず、
しょうがなくクリップを壊して、ブレッドボードで書き込んだら、
一発でうまくいって拍子抜けしたことがあった。

とりあえずライタ〜2313へのケーブルを新品にしてみるとかどうよ。
303774ワット発電中さん:2013/07/23(火) 22:21:01.96 ID:1+izDlTP
2313に電源入れてるか?
リセットピンのプルアップ抵抗が低すぎないか?
くどいがMISOとMOSIが逆とかではないか?
このへんかな
304774ワット発電中さん:2013/07/23(火) 22:22:21.81 ID:1+izDlTP
そもそも、そのISPで今まで書き込んだことはあるのか?
買ったばかりで初めての書き込みなのか?
305774ワット発電中さん:2013/07/23(火) 22:44:19.19 ID:qfnqbvyt
原因分かりました。。。

>>302
ライターから2313へのジャンプワイヤを一本ずつ変えていって、
RESETのジャンプワイヤーを変えたら直りました。
ブレッドボード側というよりも、ISP側のRESETの穴の接触が悪かったようです。

色々と助言いただきありがとうございました。
やっと進める・・・。

>>303
電源入ってました。リセットピンのプルアップはいつも2.2kΩにしています。
MISOとSCKとMOSIはどのAVRでも順番関係はだいたい同じで、
色で覚えつつデータシート確認してるので間違うことはあまりないのです。

>>304
いつも使ってるISPです。
306774ワット発電中さん:2013/07/23(火) 22:44:49.14 ID:2w4E3ABq
ケーブルが断線してる可能性がある
適当にISPケーブル作って試そう
307774ワット発電中さん:2013/07/23(火) 23:01:21.25 ID:1+izDlTP
「dW/(RESET)線のプルアップ抵抗は10kΩよりも大きくなければなりません。」
データシート日本語翻訳版より抜粋
308774ワット発電中さん:2013/07/24(水) 03:32:00.45 ID:XE+5xXmU
なんで小さくしがるのかな。
手持ちのせいか
309774ワット発電中さん:2013/07/24(水) 07:04:42.16 ID:mlvXv2Z7
>>308
ウォークマンの成功体験とかの影響では?
310774ワット発電中さん:2013/07/24(水) 09:06:19.25 ID:rmBTwauh
手持ちじゃなくて据え置きなら
多少大きくてもね。
311774ワット発電中さん:2013/07/24(水) 23:08:08.77 ID:lHSVV7NV
作業服とか売ってる店?
312774ワット発電中さん:2013/07/27(土) 20:47:25.98 ID:9UWYYWoI
商用電源の50/60Hzって、
クリップすればAVRの内蔵RCのキャリブレーションに使えるでしょうか?
313774ワット発電中さん:2013/07/27(土) 21:08:31.13 ID:OgYZJJUO
↑内蔵RCの校正手段を安く上げようと思ったけど
よく考えたら素直に水晶繋いだ方が安上がりな気がしてきた
314774ワット発電中さん:2013/07/27(土) 21:20:26.62 ID:6dW+o5CB
分圧でなくてクリップなんだな・・・
315774ワット発電中さん:2013/07/27(土) 22:26:30.08 ID:zfR/Bi92
attiny2313で、I2C接続のLCDを使えないかググっていたら
こんなのを見つけてしまった

I2C (master and slave) on the ATtiny85
http://playground.arduino.cc/Code/USIi2c

arduinoの本家本元の記事かよ…

Modified LiquidCrystal_I2C for the ATtiny:

こんなものまで。
実験するのは明日にしよう
316774ワット発電中さん:2013/07/27(土) 22:48:12.68 ID:FdexYJow
スレーブ側バグ抱えてるな
使い方によっては実害なさそうだが
317774ワット発電中さん:2013/07/28(日) 02:45:37.81 ID:SGEzqtDY
>>315
おお、ナイスタイミング!
秋月のAQM0802という8x2のI2C小型LCDを
ArduinoISP+ArduinoIDE環境のAttiny861で動かそうとして
ここ2週間試行錯誤していたのです

某所のI2CLiquidCrystalというライブラリで、Arduino UNOを使って表示出来るのは確認しました
問題はWire.hのライブラリで動いている部分をAttiny861のUSIを使ったライブラリで置き換える事が出来るかでした
でもWire.h互換のライブラリが見つからず、非互換のUSI I2Cなライブラリを色々試してみましたが駄目でした

そのTinyWireM.hを今さっき組み込んで
I2CLiquidCrystal.cppの
Wire.を、TinyWireM.に
Wire.write()を、TinyWireM.send()に書き換えて
ArduinoISPで書きこむと、無事に動きました!
318774ワット発電中さん:2013/07/28(日) 11:17:56.91 ID:swWA6lEQ
I2C の仕様書読めば実装できるだろ
オシロは必須、プロトコルアナライザがあると楽ちん。
319774ワット発電中さん:2013/07/29(月) 07:48:12.33 ID:6I84eVhF
1284PのDIP、八潮に数個だけ残ってた。
それだけのために行く価値があるかは知らぬが、必要な奴は急ぐと良かろう
320774ワット発電中さん:2013/07/29(月) 10:22:57.07 ID:/lgdeqFH
デジキーで好きなの買ったほうがマシ
321774ワット発電中さん:2013/07/31(水) 13:11:32.82 ID:T46RenJo
attiny2313などのattiny系で
システムクロックをINT0かINT1でカウントする方法はないでしょうか
322774ワット発電中さん:2013/07/31(水) 13:42:09.47 ID:T+S8Xwmi
2313ならヒューズでシステムクロック出力有効にすれば
出力ピンがそのままINT0入力だね。
でも1システムクロック毎に割り込みかかっても何も出来ないと思う。
1クロックで何をしろと・・・
323774ワット発電中さん:2013/07/31(水) 13:57:03.05 ID:T46RenJo
>>321
周波数カウンターを作る場合に
普通は基準クロックを生成し、その1秒の間に信号を計数すると思うのですが
それだと1秒なり単位時間を計測するタイマー割り込みが必要になります

発想を変えて、信号を検出したらシステムクロックを計数し
もう一度信号を検出したら、その計数値を出力した上でカウンターをゼロに戻す
という風にすればタイマー不要になると思いました。

例えばシステムクロックが例えば8MHz、信号間のシステムクロック計数値60なら
両者を割れば、8MHz/60=0.1333kHzとか出るかなと思ったのです

これは計数する基準クロックをシステムクロックにしてるのですが
(それが内部で分周出来て計数できるのならその方が簡単ですが)
水晶振動子とインバータでシステムクロックよりも低い
1MHzの発振器を作り、それをINT0に入力するなどした方が
精度は出るのかもしれません
324774ワット発電中さん:2013/07/31(水) 14:42:01.05 ID:T+S8Xwmi
タイマーのキャプチャ機能使えばいいだけじゃないか。
考えた理屈はその通りなんだから後はデータシート読めばいい。

「タイマー割り込みがイヤ」「割ればいいかな」ってあたりが
ハード屋っぽいなぁw
325774ワット発電中さん:2013/07/31(水) 14:52:42.78 ID:T46RenJo
>>324
ああああ…
Timer1割り込みを動かした上で
INT0で立ち上がりを検出したら
TCNT1を0にして
次にINT0で立ち上がりを検出したら
TCNT1のカウント値を取り出し、クロックをそれで割ればいいんだ…
326774ワット発電中さん:2013/07/31(水) 15:14:30.59 ID:T+S8Xwmi
インプットキャプチャピンに信号入力して
エッジ変化でその時点のシステムカウントを記録。
キャプチャ割り込み処理で記録したカウンタを取り込み、
前回の取り込みとの差分を割ればいい。
キャプチャ使わずにINTで処理してるとカウント取出しまでの
処理時間で誤差出るよ。キャプチャって何なのか調べなさいって。
327774ワット発電中さん:2013/07/31(水) 16:10:07.24 ID:T46RenJo
>>326
これですか

1CES1:インプットキャプチャ エッジ選択
0:立ち下がり
1:立ち上がり
ここの設定に従ってインプットキャプチャがトリガされると、
タイマカウンタ値がインプットキャプチャレジスタ(ICR1)へコピーされる

※AVR.jpの和訳はキャプチャが「捕獲」になっていた

これで周波数カウント出来るとすればなんと簡単な…
328774ワット発電中さん:2013/07/31(水) 17:25:23.68 ID:T+S8Xwmi
んむ、わかっちまえば簡単でござんす。
329774ワット発電中さん:2013/07/31(水) 17:52:30.68 ID:1RHU6ipk
一秒間に割り込みのかかった回数をカウントしたほうが精度良くね?
330774ワット発電中さん:2013/07/31(水) 22:37:08.33 ID:Dxxeh1+C
何の精度?
331774ワット発電中さん:2013/08/06(火) 23:42:18.79 ID:ALBx9p+c
割り込み関数ISR( ... ){}の{}中で割り込みフラグをクリアしなくていいのでしょうか。
たとえば、ISR ( TIMER0_COMPA_vect ){}の{}の中で割り込みTIMSK0のOCIE0Aフラグをクリアするとか。
332774ワット発電中さん:2013/08/06(火) 23:57:03.74 ID:17lBsKtE
割り込みフラグはOCIE0AじゃなくOCF0A
割り込み関数に処理が移った時点でフラグはクリアされてるので気にしなくていい
333774ワット発電中さん:2013/08/06(火) 23:58:32.27 ID:ALBx9p+c
>>332
ありがとうございました
334774ワット発電中さん:2013/08/07(水) 08:47:27.17 ID:acWUMrV9
割り込み処理に移っただけじゃクリアされないものもある
ちゃんとデータシート読めよ
335774ワット発電中さん:2013/08/07(水) 09:46:18.77 ID:7Ud0HPdI
>>334
クリアされないAVRの型番は?
336774ワット発電中さん:2013/08/07(水) 12:19:48.04 ID:acWUMrV9
型番の話しか?w
「たとえば」TWI割り込みフラグはハードで自動クリアされない
「たとえば」レジスタ読み出しが自動クリア条件だったりするのもある
「たとえば」タイマー割り込みなら割り込みベクタ実行で自動クリアされる
337774ワット発電中さん:2013/08/08(木) 20:28:48.14 ID:JoZuVs6K
MOSI,MISO,SCK,RESET等を通常のI/Oポートとして使いたいのですが、
その場合どのように使えばいいですか?
また完成後もソフトの書き換えも行う予定です
338774ワット発電中さん:2013/08/08(木) 20:40:36.44 ID:4SB/8rRR
339774ワット発電中さん:2013/08/09(金) 08:55:55.36 ID:v6SHdK8j
パラレルライタ使うしかないね。
RESETまでポートとして使われるとシリアルプログラミングであるISPは絶対無理。
340774ワット発電中さん:2013/08/09(金) 09:21:04.13 ID:dM/RSeIq
使ったことないけどブートローダー機能はどうよ?
341774ワット発電中さん:2013/08/09(金) 10:04:00.39 ID:AkQsabgx
いつかどこかのサイトでROMエミュレータ式シリアルライタというものが紹介されていた。
ISPに必要なリセット、I/Oをプログラミング時にハードで自動で切り替えるので、
回路を設計する時に、これらの信号に何の配慮も必要としないと書いてあったけど、
ターゲット側にICソケット必須ということで、私の用途ではXだった。
342774ワット発電中さん:2013/08/09(金) 10:28:45.75 ID:v6SHdK8j
デバイスによるなTiny系はブート領域無いし。
てか、質問の内容から察してブートローダとかハードル高いわな。
343774ワット発電中さん:2013/08/09(金) 12:33:03.76 ID:L0oaHCp9
>337
こちらのページの真ん中あたり
ttp://elm-chan.org/works/avrx/report.html
344774ワット発電中さん:2013/08/09(金) 12:40:07.38 ID:L0oaHCp9
例えばスイッチやジャンパーピンをMISO,MOSI,SCKとGND間に割り当てる
スイッチ・オフ状態では空きピンと同じことになる
345774ワット発電中さん:2013/08/09(金) 12:46:15.75 ID:M+3mp0Qb
346774ワット発電中さん:2013/08/09(金) 12:46:54.22 ID:v6SHdK8j
重ねて言うけどRESETピンだけ例外な
347774ワット発電中さん:2013/08/11(日) 08:31:16.47 ID:NJvy7+9m
Tyniy861でUSIを使ったTWIでは
MOSIとSDA
SCKとSCL
が同じピンだけど、両方さしたままで
ArduinoISPからの書き込みと
I2C液晶の表示が出来た
348774ワット発電中さん:2013/08/12(月) 20:17:47.46 ID:YHLQyzWm
秋月で売ってるattiny2313はセラロックの16MHz動作時に3.3Vでも問題無いでしょうか?
349774ワット発電中さん:2013/08/12(月) 20:30:15.79 ID:xsJ23rcq
つデータシート
350774ワット発電中さん:2013/08/12(月) 20:35:40.16 ID:YHLQyzWm
データシート見ると13.3MHzが上限なんですけど
使用するI2C液晶が3.3Vなので合わせたいのです
351774ワット発電中さん:2013/08/12(月) 20:37:59.89 ID:J0rmj/0Z
危ぶめば道はナスダック!
逝けばわかるさ!
352774ワット発電中さん:2013/08/12(月) 22:07:02.64 ID:/+aeTLLK
353774ワット発電中さん:2013/08/12(月) 22:22:12.03 ID:C+mp1tan
>>350
液晶が3.3Vだからといって、attiny2313が頑張ってくれると思うのか?
354774ワット発電中さん:2013/08/12(月) 22:28:18.58 ID:VsT59SUB
>350
MOS FET 2個 + 抵抗 4 個でレベルシフトできるみたい。
http://sh7045.cocolog-nifty.com/blog/2011/11/i2c-a39f.html
355774ワット発電中さん:2013/08/12(月) 22:31:05.53 ID:VsT59SUB
なお、p-MOS と書いてあるけど n-MOS ですから。
356774ワット発電中さん:2013/08/13(火) 08:04:36.11 ID:UUpmgNAU
>350
LTSpice でシミュレートしてみました。
http://fast-uploader.com/file/6931903952363/

上のグラフは 0-5.5V スケール。下は 0-3.3V スケールです。
3.3V ライン、5.5V ラインどちらをオープンドレインで駆動しても
もう一方側に伝わります。
357774ワット発電中さん:2013/08/13(火) 08:07:07.10 ID:3Xesfg10
やってみればいいじゃん動くかもよ。
358356:2013/08/13(火) 08:17:03.66 ID:UUpmgNAU
0-3.3 ではなく、 0-3.6V でした。あと MOSFET はゲート容量が小さな
小信号用がお勧めです。ゲート容量が大きい=オンオフに必要な
電荷が大きい FET だと波形の鈍りが激しくなります。

後、文献がリンク切れだったので
http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf

の 10p に図が載ってます。
359774ワット発電中さん:2013/08/13(火) 08:51:50.43 ID:TNW0wpN3
専用IC >>352 が有るのにわざわざ作るの?
360774ワット発電中さん:2013/08/13(火) 09:03:45.87 ID:UUpmgNAU
専用 IC といっても、どう考えても中身は MOSFET でしょう。それなら
汎用の MOSFET を買っておいて他にも使い回しをしたらいいんじゃないかと。
361774ワット発電中さん:2013/08/13(火) 10:15:54.59 ID:pl2qZsdt
なんでI2C如きにFETだのICだのが必要なんだ?
362774ワット発電中さん:2013/08/13(火) 10:20:43.61 ID:CMb8oN0I
>>361
楽しいだろw
363774ワット発電中さん:2013/08/13(火) 10:54:41.61 ID:FeHWURfm
attiny2313 って入力トレラントだろ?
I2Cの2線を3.3Vにプルアップしとけば、それだけで問題ないだろ
364774ワット発電中さん:2013/08/13(火) 11:08:16.77 ID:pl2qZsdt
3,3Vにプルアップするんだから、トレラントの必要も無い。
365774ワット発電中さん:2013/08/13(火) 11:14:57.06 ID:FeHWURfm
トレラントというか、H/Lの判定の閾値が3.3V以下だよね、って意味で
366356:2013/08/13(火) 11:23:44.76 ID:UUpmgNAU
まぁ、たしかに V_IH は 0.6VDD だから 3V かかれば H と判定しますね。
367774ワット発電中さん:2013/08/13(火) 11:37:42.28 ID:FeHWURfm
オープンドレインなんだから
絶対定格さえ超えなければ、電圧はアバウトでいいじゃんね
368774ワット発電中さん:2013/08/13(火) 15:45:42.95 ID:0v/aqq7o
夏だね
369774ワット発電中さん:2013/08/13(火) 16:16:30.70 ID:xg7zwOBx
一応 High が保証されている電圧は 0.7VCC 〜 VCC+0.5 だから
3.5V 以上欲しいでしょ
370774ワット発電中さん:2013/08/13(火) 16:23:25.68 ID:xg7zwOBx
VCC(2.4V〜) だと 0.6VCC 以上だった
3.0V あればいけるようだ

0.7VCC 以上は VCC(1.8V〜2.4V) のとき
371774ワット発電中さん:2013/08/13(火) 22:21:10.39 ID:icysupzn
普通にレベルシフターでやれよ。
そんなに手間じゃないだろ。
372774ワット発電中さん:2013/08/14(水) 11:25:15.78 ID:2yM8QfUe
趣味ならやりたいようにやれば良いw
変換IC買えば同じ事で悩む事もないけど、
回路組んで解決するのもまた楽しいと思う。
373774ワット発電中さん:2013/08/14(水) 11:35:35.39 ID:4zyfh/1/
直結で逝けるのに、意味も分からず、わざわざ部品を追加するとか
ド素人としか言い様が無いなw
374774ワット発電中さん:2013/08/14(水) 11:41:34.47 ID:yVYTWdlU
>373
マージンが変わるんじゃないか?
LCDとMCUの資料を調べてないけど。
375774ワット発電中さん:2013/08/14(水) 11:54:59.94 ID:4zyfh/1/
>>374
>LCDとMCUの資料を調べてないけど。

>>373
376774ワット発電中さん:2013/08/14(水) 17:45:26.03 ID:PrW3IXPU
0.6VCCというのはかなり微妙だな。
変換に使えそうなNch-MOSFETは秋月ではこんなところかな。
RUE002N02
http://akizukidenshi.com/catalog/g/gI-05957/

BSS138
http://akizukidenshi.com/catalog/g/gI-04232/
377774ワット発電中さん:2013/08/14(水) 19:11:42.51 ID:ZHQ/pIlG
>>373
すげー、I2C液晶の型番も判らないのに断言できるとは玄人様はさすがですね!(w
378774ワット発電中さん:2013/08/14(水) 19:32:49.97 ID:uYBLdXkY
>>377
当たり前。誰だと思ってるんだよ。
お前も沢山、勉強してレベルアップしろよ。
379774ワット発電中さん:2013/08/14(水) 20:36:03.49 ID:5PFMNYL0
3.3V←→5V 程度ならプルアップを低い側にあわせて桶
1.8V←→5V とかだとレベルコンバータかませたほうが安心
380774ワット発電中さん:2013/08/14(水) 23:44:48.97 ID:9HgS0ygj
attiny2313ってI2Cの液晶を動かせるほど、フラッシュメモリに余裕はないと思うんだけど
arduino.cc謹製のライブラリTinyWireMとI2C用のLiquidCrystalライブラリを組みこむと3kB越えてた
381774ワット発電中さん:2013/08/15(木) 00:45:59.80 ID:qLSCoYPP
できあいのクソでかいライブラリを使ってない俺は2313で十分液晶使えてる
382774ワット発電中さん:2013/08/15(木) 06:41:21.71 ID:7G1UtNk0
なんでI2Cにフラッシュが要るんだよ
383774ワット発電中さん:2013/08/15(木) 18:42:54.96 ID:49kr60r0
通信自体にはそんなにいらんけど、フォントとかその周辺で結構食ってるんじゃないの?(勝手な憶測)
384774ワット発電中さん:2013/08/15(木) 18:44:08.17 ID:hkvS5Qex
たぶんarduinoISPで書きこむとarduinoのライブラリも書きこまれるのかも
385774ワット発電中さん:2013/08/16(金) 01:51:34.03 ID:z7iR8sm+
高輝度赤外線LEDを使ってエアノンのスイッチを作ったんだけど、
純正のリモコンに比べてエアコンに向ける角度がシビアです。
拡散帽子を付けたらつけたで赤外線が弱くなってる気がします。

赤外線LEDに流れる電流値が小さいからでしょうか?
しかし、大きくしようとも、抵抗を付けずに直で赤外線LED繋げてるので、
これ以上の電流を流す事もできません。
こういう場合って何かいい方法ありますか?
386774ワット発電中さん:2013/08/16(金) 02:04:12.57 ID:85FA2D5x
>>385
LEDを増やせばいいのでは
387774ワット発電中さん:2013/08/16(金) 08:02:18.51 ID:xGpM6ONL
>>385 適正電流を守らないとLEDちゃんと光らないよん
そのマイコンが何mA流せるのか知らないけど
トランジスタ1個ぐらいおごってやろうよ
C1815で十分だから
388774ワット発電中さん:2013/08/16(金) 09:23:55.04 ID:TboUfLZZ
高輝度じゃない LED しかなくても半値角がより広いものに替える、というのも手かも。
拡散帽子は、さすがに広がりすぎでしょう。
389774ワット発電中さん:2013/08/16(金) 09:35:22.26 ID:ewlXy0hI
LEDの先端のRを大きく研磨する。好きな放射角に出来るぞ
390774ワット発電中さん:2013/08/16(金) 11:58:12.93 ID:qT0fv7vu
>>385
変調周波数がずれている可能性は?
輝度高くしても受光モジュール側のピーク範囲をずれているとなかなか拾ってくれない事があったよ。
391774ワット発電中さん:2013/08/16(金) 12:10:42.85 ID:W6isD9cK
周波数ってCRで決めてるの?
392774ワット発電中さん:2013/08/16(金) 21:26:52.66 ID:JYSdA2AM
>>385
ポートにLED直付けすると、ポートが壊れる気がする。
393774ワット発電中さん:2013/08/16(金) 21:36:29.40 ID:W6isD9cK
単純にTr付けるのが正解だろうな
マイコンにとってLEDは電気食いで、普通はドライバを付ける
でも、インジケータ程度なら繋げられるように電流量増やしてあるのもあるけど、
明るく光らせるのは無理
394774ワット発電中さん:2013/08/16(金) 22:31:50.32 ID:/e1ySZI9
ここはAVRスレなんだからAVRなんだろう。
ならば絶対最大は40mA、常識的制限なら20mAだろうから
赤外線LEDフルパワーにはちょいと厳しいよな。
もちろん直結なんて論外と言いたいが、まぁ遊びならねw
売り物のキットでも直結なのあるし・・・
395774ワット発電中さん:2013/08/17(土) 00:26:18.05 ID:YWypBUS6
>赤外線LEDに流れる電流値が小さいからでしょうか?
左様です。たっぷり流さないといけません。
396774ワット発電中さん:2013/08/17(土) 07:00:34.71 ID:yv8xNQ26
赤外線が見えればいいんだろうけど、フツーの人は見えないからなあ。

直接駆動とトランジスター駆動、デジカメで撮影して比べてみるとかしないと、実感沸かないよね。
397774ワット発電中さん:2013/08/17(土) 07:12:54.10 ID:8blT92S7
て言うか、まずテスター買ってきて電流測定しなよ、って思うのは俺だけ?
398774ワット発電中さん:2013/08/17(土) 07:42:41.49 ID:8xZgW4Ui
だろうね。
399774ワット発電中さん:2013/08/17(土) 08:03:16.74 ID:yv8xNQ26
電流計じゃソウルで理解できねえんだよゥ!


…ごめんなさい、言い過ぎましたわ。
400774ワット発電中さん:2013/08/17(土) 09:34:51.08 ID:apWMGtXA
CRD入れて電圧をもっと上げればいい
401774ワット発電中さん:2013/08/17(土) 10:09:05.74 ID:WFwJddn0
CRDを大量に並列にすると、乾電池からでも大電流が引き出せる
402774ワット発電中さん:2013/08/17(土) 10:44:15.78 ID:8xZgW4Ui
何個くらい並列にすると原発位の電流が取り出せますか?
403774ワット発電中さん:2013/08/17(土) 10:58:42.13 ID:tfxhb9NV
>>402
三歳児かよ
404774ワット発電中さん:2013/08/17(土) 11:31:24.27 ID:8xZgW4Ui
3歳児の疑問にも答えられないド素人乙
405774ワット発電中さん:2013/08/17(土) 15:32:49.63 ID:3od1AyAb
昔、俺がガキだった頃、お電気のお勉強のお時間に、先生が
「E=IRの理想的電源Eは全宇宙で必要としている電流も供給できます」
と言ったことを思い出した。
406774ワット発電中さん:2013/08/17(土) 17:17:09.35 ID:YWypBUS6
愛ある限り戦いましょう。命、燃え尽きるまで。
407774ワット発電中さん:2013/08/22(木) 21:42:02.27 ID:HD9oc+xQ
PCINTでPort Bの複数PINの変化を割り込みで検出したいのですが
例えば同時に複数のPort B PINが変化した場合、変化したPortの数分だけ
PCINT割り込みが入るという認識であってますか?
408774ワット発電中さん:2013/08/22(木) 22:18:58.19 ID:pyp3ilod
一回だけだったと思うよ。
割り込みがあったときどうせ対象ピン全部チェックすることになるのだから、
複数回割り込まれても意味ないでしょ。
409774ワット発電中さん:2013/08/23(金) 07:17:15.85 ID:fDAzGIwj
xmega c4のデータシート(Rev.D)見てるんだが、P52-53のportCのAlternateFunctionsの表って正しいのか?
XCK0は無いわ、RxD2,TxD3なんて物があるわ、他のxmegaや他のポートと比べて配置が不自然きまわりないわで
怪しいことこの上ないのだが…
410774ワット発電中さん:2013/08/23(金) 09:13:58.24 ID:lw7E8geW
USARTC0はページまたぎによるテーブルずれかもしれないが
USARTC1はRXD1とTXD1の書き間違いだなw
本家に報告入れといてくれ、俺英語はリードオンリーなんで・・・
411774ワット発電中さん:2013/08/23(金) 09:30:44.26 ID:Clw5N1TE
XMega の情報少なすぎて泣いた
412774ワット発電中さん:2013/08/23(金) 12:37:41.01 ID:lw7E8geW
初めて触るのがXmegaじゃなければAVR.jpの和訳で十分じゃないの?
俺はそれでXmegaAとXmegaDを使えとる。
413774ワット発電中さん:2013/08/23(金) 19:17:39.79 ID:fDAzGIwj
>>410
奇遇だな。俺も英語はリードオンリーなんだ。
414774ワット発電中さん:2013/08/23(金) 19:46:09.30 ID:UlWIX0VV
上の方でtiny861でレシプロカルな周波数カウンターを
作っていると書き込みしていたものですが

だいたい完成して、ウィーンブリッジ発振回路で簡単な周波数源を作って
(残念ながら矩形波しか出てないようです)
測定した範囲では動いているように見えるので
内蔵のRCの8MHzから、セラロックの16MHzに挿しかえると
全くカウント出来なくなりました、パルスを検出できないようです
74HC14でプリアンプしてみても駄目でした
tiny861自体はちゃんと16MHzで動いていて
I2C液晶への表示も出来てます

試してないのですがインプットキャプチャの
雑音除去器(ICNC0)をenableにすればいいのでしょうか?

それで、周波数源がおかしいのかもと555を買って発振回路を作り
その発振周波数を測ってみました、こちらは何もしなくても測れました
10MHzの水晶発振器を内蔵したテスターの周波数カウンター機能を使って測定してみると
attinyが400Hzに対してテスターが402Hzでした
セラロックで0.5%も周波数がずれるなんて事がありえるでしょうか?

それと、周波数を下げて200Hzに近付けると、液晶に表示している周波数が大きくなりました
レシプロカルなカウント値を見ていると、5桁から急に3桁に飛んでました
これはインプットキャプチャカウンタの65535を越えたということのようです
これの一般的な対処法は、分周器の設定CS2, CS1, CS0を
分周無しから、8分周や64分周にするみたいなものでしょうか?
それとも16ビットカウンターの桁上がりのフラグがどこかにあり、それを見るのでしょうか?
415774ワット発電中さん:2013/08/23(金) 20:24:56.13 ID:UYIGu6gP
>セラロックで0.5%も周波数がずれるなんて事がありえるでしょうか?
そんなもんです
↓だとちょうど±0.5%ですね
http://akizukidenshi.com/catalog/g/gP-00525/

>それとも16ビットカウンターの桁上がりのフラグがどこかにあり、それを見るのでしょうか?
そうです
1回オーバーフローしていれば65536を、
2回オーバーフローしていれば2*65536をカウント値に足せばよいです
416774ワット発電中さん:2013/08/23(金) 20:58:11.76 ID:UlWIX0VV
>>415
ああ、セラロックってけっこうあれなんですね
内蔵RCよりはましだし、校正すればいいのだろうか
たぶん表示クロックに対する絶対値がズレてるのだと思う
今のところはあえて水晶振動子は使わずに
16.000000MHzの部分を校正してみることにします

雑音除去器をenableにしてみましたが無関係でした
不思議です

16bitカウンタがオーバーする事に関しては
CS2, CS1, CS0を001の分周無しから、010の8分周にする事でなんとかなりました
ただし、これだと高周波では分周無し、低周波では分周有りの2モードを作る必要があるので
できればそのようなOVFフラグを見て、モード切り替え無しである程度範囲を
カウントできるようにしてみたいです
417774ワット発電中さん:2013/08/23(金) 21:27:10.45 ID:qvbfsjbN
>>416
>たぶん表示クロックに対する絶対値がズレてるのだと思う

ド素人だからしょうがないのかも試練が
またいい加減なwww

外部クロックでCPUを動かし、そのクロックを測定してみれば
クロックの絶対値を気にせずデバッグ出来るぞ。
418774ワット発電中さん:2013/08/24(土) 07:15:16.44 ID:7kT6ctL2
>>416
> 水晶振動子は使わずに16.000000MHzの部分を校正
「何事も経験!!」な人なら悪くは無いんだけどさ…。

・セラロックはQ値が低いので、負荷容量/浮遊容量によってコロッコロ周波数が変わる。ブレッドボード上なら安定が期待出来ない。
・温度特性も±200ppm。初期偏差±500ppmに対して結構デカイ。
・経年変化も同じくらいある。
・DIP型のセラロックは粉体外装。つまり完全に密閉されておらず、湿気の影響も受ける。
・合わせると最悪±2000ppm位覚悟すべし。

校正してどうなるものでないよ。やって見て、しばらく放置しておけば解ると思うけど。
それに同じ値段で水晶が買えるし。
http://akizukidenshi.com/catalog/g/gP-00545/
419774ワット発電中さん:2013/08/24(土) 08:45:02.99 ID:nQARVjMQ
>>418
昨日、インプットキャプチャーで計算した発振器のパルス間のカウント数と
参照周波数カウンタの周波数から、16127000Hzの校正周波数を出して
それで周波数カウントしてみると4桁まで合ったので、これで様子見です
最初から0.79%もずれてるのが驚きなんですけど
これで温度変化などで変わるのであれば素直に水晶振動子をつけます

元々はXR2206のキットも買ってチープなファンクションジェネレータを
作るためのものなので、そんなに精度はいらないのですが3桁で合わないのはつらい
420774ワット発電中さん:2013/08/24(土) 08:57:54.52 ID:XQH6WcwU
もともと精度要らない部分用だからなあ
421774ワット発電中さん:2013/08/24(土) 09:06:29.62 ID:D8Qwhpth
負け惜しみw
422774ワット発電中さん:2013/08/24(土) 10:38:29.63 ID:0oU7L57D
踏み出せば その一歩が道となり
踏み出せば その一歩が道となる

迷わず行けよ 行けばわかるさ!
423774ワット発電中さん:2013/08/24(土) 12:59:10.16 ID:zPI30C9a
>>418 安定が期待出来ない。
これは私も経験した。
私の勉強不足で、最初は原因が分からなくて悩んでしまった。

水晶を使う時、コンデンサと組み合わせて配線するのが面倒だったり、
MCUから少し離れて配置したい、他のICとクロックを共通にしたい、などの場合に
金石(京セラ・キンセキ)の3端子型の発振器JXO5Sシリーズが小型なので便利に使っていた。
残念ながら製造中止になり、今や流通在庫のみになってしまった。
http://www.nex-nex.co.jp/page033.html
424774ワット発電中さん:2013/08/25(日) 21:47:20.49 ID:DezN90Zj
関西住みなら、今デジットで水晶用発信器50円セールやってる。
16MHzもあったよ。
http://blog.digit-parts.com/?p=5
7月27日のコラムさがして。
電話すれば通販も通常郵便代で可能だったりする。

http://i.imgur.com/UKPcPUQ.jpg
一緒に写ってるμPD780(Z80)は10円、8255は30円
425774ワット発電中さん:2013/08/25(日) 23:30:39.65 ID:zwauJi1Z
86年製w
スペースシャトルが現役だったら、NASA職員がうれし涙流して買い占めに来るだろうなw
426774ワット発電中さん:2013/08/26(月) 01:12:52.60 ID:pf4dGlBH
>>420
本当に精度が要らないなら、水晶の代わりにLCつないでおけばいい。
427774ワット発電中さん:2013/08/26(月) 01:25:32.90 ID:okhixaOL
そういえば、前にバラしたプロスペックの
画像安定化装置の基板には
PICマイコン用にセラロックがついていた
垂直同期信号は、コンポジット信号から取りだすので
PICマイコンの周波数はセラロックで十分だったのだろう
428774ワット発電中さん:2013/08/26(月) 09:04:34.90 ID:As3e3hor
そのAVRで画像を処理するわけじゃないだろうし
429774ワット発電中さん:2013/08/26(月) 12:11:31.23 ID:52H//ehX
>>424
近所住みなら無駄に買い占めたいZ80 

実際は使わないんだろうけどw
430774ワット発電中さん:2013/08/26(月) 12:35:06.86 ID:b1s6t7te
赤文字文が2ch以下のレベルで (ww
ttp://www-ice.yamagata-cit.ac.jp/forum/viewtopic.php?t=1094
431774ワット発電中さん:2013/08/26(月) 17:54:02.44 ID:whiO+6BS
>>430
ソフトウェアそのものを目的として活動する企業のQCを、
ソフトウェア開発による学習や研究を目的としているとこに
持ち込もうとか、ずいぶん空気読めない奴だなぁ
と思ってたら、最後の方… アスペやん。

つか、なんで他人にやらせるんだか。
手法変えて、オブジェクトサイズが増えた/減った とか、
コーディングがし易くなった/しにくくなった とか、
実行速度が速くなった/遅くなった とか、自分で評価して
持ち込めばいいのに。

赤字の奴が、自身が実機とプログラムに向き合ってないのが全ての原因
と、悟るのは何時なんだか…
432774ワット発電中さん:2013/08/26(月) 18:02:08.52 ID:okhixaOL
>>430
>DIP で入手できる AVR マイコンも限られる時代となり、ISP 方式
>しか使えないことも増加しています。

だから秋月で取り扱ってるattinyが
10, 13, 2313, 861だけになったのか
他店で細々と売ってるのは流通在庫かな
433774ワット発電中さん:2013/08/26(月) 18:13:21.46 ID:Dd+ueYrJ
I2Cのデバイスが増えてる気がするんだけど、逆行してる感じが・・
434774ワット発電中さん:2013/08/26(月) 20:55:02.24 ID:P/cw1uG+
> 偉そうなことを言っていますが、私はマイコンでの実装2作目のド素人です。
> でも機能においては同業の追従を許さないものとなったのではないでしょうか。

すげぇな。 底辺ドカタの自信が。
435774ワット発電中さん:2013/08/26(月) 20:57:11.19 ID:o4XzrYk5
時代はCAN
436774ワット発電中さん:2013/08/26(月) 22:19:58.75 ID:7V2Y/s65
I2Cは手軽で便利なのよん。
437774ワット発電中さん:2013/08/26(月) 22:54:50.95 ID:sa02H1yY
ばんとさんがもっとレス付けて切れさせれば面白いのにと思っちゃった
のは俺だけか
438774ワット発電中さん:2013/08/27(火) 00:11:34.09 ID:kXgrwjmS
>>433
I2Cと言えば、秋月とストリナで売ってる8x2行の小型I2C-LCD
秋月のピッチ変換基板に、ストリナのバックライト付きを付けたら動いたよ
基板にバックライト用の端子を通す穴を2mmのドリルであける必要があったけど

バックライト付きの方が、バックライト無しでも文字がはっきりして見やすい
439774ワット発電中さん:2013/08/27(火) 09:06:26.54 ID:2fEsSUSp
>>438
多分同じ物で基盤付きをスイッチサイエンスで買いました、
深く考えずに取りあえず買ったんですがライブラリとかどれを使用されました?
よければ教えてください。
440774ワット発電中さん:2013/08/27(火) 09:52:39.03 ID:kXgrwjmS
>>439
ここの上の方であがってたattiny用のUSI使ったarduino.cc純正I2CライブラリのTinyWireM.hと
LCDのライブラリはI2CLiquidCrystal.hだったかな。これはArduinoのWire.h用なので書き換える必要があった。
最初、attiny2313ではメモリが足りなくて、attiny85で動いた
441774ワット発電中さん:2013/08/27(火) 12:54:43.80 ID:LhZk4tPw
RAMから読み出して書き戻すだけで4ワード8バイトも食うからあっという間にメモリ不足
Y+qで全部届くのになんで使ってくれないんだか
442774ワット発電中さん:2013/08/27(火) 13:20:44.03 ID:xR5susse
気に入らないなら自分でCPU創るしかないな
443774ワット発電中さん:2013/08/27(火) 13:24:24.66 ID:1qhH0XL9
自分でコンパイラ修正する手もあるし、
アセンブラでサブルーチン作る手もある。
444774ワット発電中さん:2013/08/27(火) 15:19:48.29 ID:BQ9ObaSf
自分でコンパイラを作る手もある。
445774ワット発電中さん:2013/08/27(火) 19:42:33.17 ID:kLSsSpjS
むしろ内蔵SRAM読んで書き戻す(LDS/STS)だけで4clk(xmegaなら5clk)かかるのが時に重く感じるし、
Flashはクロック当たり2byte読めるんだからLPMW作っといてもバチ当たらんだろうにと思うし、
xmega読みだしより書き込みの方が何で速いんだよとも思う。
446774ワット発電中さん:2013/08/27(火) 20:46:24.05 ID:XP+YQGRH
HDDでもメモリでも、書き込みが早いのは当然だと思うが?
447774ワット発電中さん:2013/08/27(火) 21:11:38.40 ID:BQ9ObaSf
基本的にAVRはRISCで命令コード空間が16ビットしかないから、
設計者が色々と悩んだあげくの命令の割り振りだと思うよ。
AVRを初めて見た時の私の印象は「16ビット長なのに命令の種類が多いな」だった。
使っていれば「XXな命令があればなぁ」と思う場面もあるし、
特にメモリアクセスのアドレッシングが少ないなとも思うけど、
それはトレードオフで仕方がない。
448774ワット発電中さん:2013/08/27(火) 21:57:24.93 ID:HW4dRsAN
>>433
フィリップスの特許が切れたから っていうのもあるな。
回路簡単だし、コスト安いし、実用的な速度でるし。
449774ワット発電中さん:2013/08/27(火) 22:55:23.91 ID:ZDzAkffF
I/Oピンのオフ時の電圧が高いんですが仕様ですか?
ATMEGA88PAでLEDをつなげてるピンの出力を0にしても暗く光ってるので
電圧を測ってると1.7Vもあって無負荷時は5Vもあったんですが、仕様でしょうか?
TINY88PUで試しても同じでした。これじゃLED駆動できない・・・
450774ワット発電中さん:2013/08/27(火) 23:02:08.48 ID:/ekRNYxT
出力0のつもりが、実は入力プルアップにしてたとかじゃないよね
451774ワット発電中さん:2013/08/27(火) 23:16:01.59 ID:BmdpfWez
>>445
> xmega読みだしより書き込みの方が何で速いんだよとも思う。
簡単な事だ。

書き込みは、アドレスとデータを同時に投げればメモリコントローラがなんとかしてくれる。
しかし読み出しは、アドレスを投げ、メモリコントローラがデータを読み出す手続きをし、それを返送するステップを踏む。
だからどうしても読み出しは遅くなる。
452774ワット発電中さん:2013/08/27(火) 23:23:26.07 ID:tBS/trka
>>450
それが正解だろうな。
PORT=1のままDIR=0にして入力プルアップモードになってるオチ
453774ワット発電中さん:2013/08/27(火) 23:27:06.07 ID:tBS/trka
川鉄のKC80でも内蔵RAMは1クロックでアクセスできたのに
初めて90S2313触ったときになんでだよとは思ったなぁ
454774ワット発電中さん:2013/08/28(水) 00:13:34.96 ID:opaTZMOd
>>451
それは、mega/tinyはLDSが2clk(tiny4/5/9/10なら1clk)で読めている以上妥当な主張とは思えない。
455774ワット発電中さん:2013/08/28(水) 00:20:30.23 ID:nKMezHHX
tiny10シリーズのLDSは内部的にIN命令じゃないか?
余計なロジック無いんでしょ
456774ワット発電中さん:2013/08/28(水) 00:30:40.38 ID:opaTZMOd
tiny10については命令長が1word(他は2word)だからなのだろうと思う。
457774ワット発電中さん:2013/08/28(水) 00:36:07.31 ID:U0NXxTq+
>>450
ご名答です・・・うっかりしました。
ありがとうございます。
458774ワット発電中さん:2013/08/28(水) 00:50:30.32 ID:2mX5vqXM
>>457
テスターの電圧レンジが20kΩくらいだと使いにくくない?
459774ワット発電中さん:2013/08/28(水) 00:58:44.44 ID:U0NXxTq+
AVR Studio, GCCでタイマー割り込みをつかったプログラムを書いています。
======================================
#include<avr/io.h>
#include <avr/interrupt.h>

       char x;
       unsigned char i=0;

ISR(TIMER0_COMPA_vect)
{
       PORTB = 0b11111111;
       か、
       PORTB = x;
}

int main(void)
{
       TCCR0A = 0b00000010;
       TCCR0B = 0b00000011;
       OCR0A = 78;
       TIMSK0 = 0b0000010;
       
       DDRB = 0b11111111;

       sei();

       while(1){
            x = 0b11111111;
       }
}
======================================
というコードで、ISR(TIMER0_COMPA_vect)の中を
PORTB = 0b11111111;
にすればちゃんと、値が代入されるのですが、
PORTB = x;
にすると、代入されません(PORTBにはLEDをつなげています)なぜでしょうか・・・
お願いします。
460774ワット発電中さん:2013/08/28(水) 01:12:29.76 ID:Lg2Rxgja
461774ワット発電中さん:2013/08/28(水) 01:13:52.02 ID:Lg2Rxgja
>>460
すまん>>459へのレス
462774ワット発電中さん:2013/08/28(水) 01:22:47.26 ID:U0NXxTq+
>>461
char x;

volatile uint8_t x;
に変えるとうまくいきました!ありがとうございます。
463774ワット発電中さん:2013/08/28(水) 09:01:39.35 ID:H52k2QMJ
>>430
キレルのどうでも良いが、話の中身はいいんじゃね?
組み込みではStateとStrategyパターンぐらいしか使わんが、仮想関数を使ってとか事大で物事考えてるな w
関数ポインターでの簡易継承を知らんようだ。
おそらく、組み込みでのStateとStrategyの相違点やキーポイントもわかっていないだろう きっと。
464774ワット発電中さん:2013/08/28(水) 09:03:48.09 ID:H52k2QMJ
いけね。 仮想関数テーブルを使ってとか事大でxxx
465774ワット発電中さん:2013/08/28(水) 12:59:37.77 ID:/fQLCJyG
466774ワット発電中さん:2013/08/28(水) 19:22:43.12 ID:bJSnjKAz
>>462
FAQと言うだけあって、ヤッパリ嵌まる人多いんだな。
http://www.nongnu.org/avr-libc/user-manual/index.html
あたりはテンプレに入れといた方が良いかも
467774ワット発電中さん:2013/08/28(水) 21:21:55.75 ID:nKMezHHX
volatileなんてAVRとか以前の言語の問題なんだしキリがないぞ
staticまで説明せにゃならんのか?
468774ワット発電中さん:2013/08/29(木) 00:07:43.14 ID:hNoaZtex
>>454
アクセスサイクル83nsの石が1clkで読めるのは当たり前。
469774ワット発電中さん:2013/08/29(木) 00:28:20.09 ID:XJd7cSxH
ネットに転がってるタイマ割り込みを使ったプログラムを見ると
普通にグローバルやstaticで変数を定義してるのを見ますが
.>>459のプログラムがvolatile使わないと思ったように動かないのは何が問題なんでしょうか?
470774ワット発電中さん:2013/08/29(木) 00:29:25.04 ID:ZiknafXe
-O0で最適化をオフにすればちゃんと動くと思う
471774ワット発電中さん:2013/08/29(木) 00:58:42.35 ID:wF4kMGG3
>>468
あんまり関係ない
472774ワット発電中さん:2013/08/29(木) 01:18:18.59 ID:9dTIUJv5
>>469
だから、サンプルコードだけじゃなくてFAQを
ちゃんと読め。理由も丁寧に書いてある。
473774ワット発電中さん:2013/08/29(木) 06:52:59.20 ID:2SaQ81qg
定番きたな・・・読まない調べない・・・
474774ワット発電中さん:2013/08/29(木) 08:23:09.81 ID:0fyj0mQi
もう夏もおわりか〜
475774ワット発電中さん:2013/08/29(木) 08:28:29.83 ID:FIozYwb9
>>460のページには最適化がどうのとか書いてないし流石に英語のサイト全部読んでから書き込めってのは無理でしょ
476774ワット発電中さん:2013/08/29(木) 08:44:05.79 ID:gf0yyBUX
volatileでググれば日本語で山のように説明見つかるよな
477774ワット発電中さん:2013/08/29(木) 08:51:55.73 ID:ZiknafXe
>>475
しょっぱなに書いてあるじゃん
When using the optimizer,
478774ワット発電中さん:2013/08/29(木) 08:57:52.61 ID:enGRQPqN
>>471
はぁ? じゃ説明してみろよ。
479774ワット発電中さん:2013/08/29(木) 09:14:28.95 ID:gf0yyBUX
>>469
volatileが無い状態で最適化されるとwhile(1)の中の動作は
「メモリのxをレジスタにコピーして、レジスタの値を無限に出力」
割り込みでメモリが書き換えられても二度とメモリ読みに行かないので出力が変わらない。
volatileがあると毎回メモリから読み出すので意図した動作になる。

やさしすぎって怒らないでねみんなw
480774ワット発電中さん:2013/08/29(木) 09:15:36.49 ID:FIozYwb9
>>476
volatileがわからんのにどうやってググるんだよ
481774ワット発電中さん:2013/08/29(木) 09:26:12.09 ID:gf0yyBUX
volatile付けたら何でちゃんと動くの?ってのが469の質問なんだからググれるよな?
482774ワット発電中さん:2013/08/29(木) 11:12:06.23 ID:Wa0VuV1c
>>478
なんで説明しなきゃいかんのだw
そもそも、クロック数はアクセスサイクル83nsとは関係ない。
ディジタル回路なんだから、設計したクロック数で動くだけ。極当たり前の話だl。
アクセスサイクルは、プロセスルールで決まる。
483774ワット発電中さん:2013/08/29(木) 12:05:16.03 ID:ZhROYvT6
>>480
は?
484774ワット発電中さん:2013/08/29(木) 12:11:15.01 ID:UKIoIyss
>>482
おまw 説明になってねーよw

それはデジタル回路には違いないが、同期式回路だw
クロックで打たない非同期式回路も立派なデジタル回路だぜ?www
485774ワット発電中さん:2013/08/29(木) 12:18:28.21 ID:rLXaIJU8
そういうのが組み込みCで?になるのかなって

特に「言語」から入ってきた人は苦労すんじゃね
今のマイコンて個人的にはASICだとおもてる
内蔵IFすべて「割込み」で見るのきついお

http://uni.2ch.net/test/read.cgi/denki/1325875159/110
なんだとおもうの(おいらじゃない)

「明示」とかは言語の作法の話っていうのかな
それを知った先にあるのはブロック図・データシートと格闘

もうばらしたいけどSoC化と相反するというジレンマ
マイコンで行くなら規模関係なくARMぶんまわしなんじゃね
しらんけど長文スマソ
486774ワット発電中さん:2013/08/29(木) 12:25:12.43 ID:9yQie9ET
長文はいいけど
日本語でたのむ
487774ワット発電中さん:2013/08/29(木) 12:36:12.98 ID:rLXaIJU8
>>486
てにをはの使い方勉強中です

想像力を駆使して頂き赤ペン添削
お願いします(他力本願)
488774ワット発電中さん:2013/08/29(木) 13:04:11.81 ID:rLXaIJU8
それはともかく「ググる」って行為

>>462さんは想像だけど、「これからの人」な気がする。
その人がググっても動いた理由まではよくわからないんじゃね

おまえらは「マイコン」って、CPUボードでシステムバスがあって
ピンに対してレジスタアクセスは周辺バス割り当てIO空間だとか
知ってるからでしょ

多くの場合「言葉」で検索すると、そこには触れてない

じゃあどうすんだよ?調べないの?とか言われると困るけど
タマゴニワトリでいいよね(無責任)
489774ワット発電中さん:2013/08/29(木) 13:09:50.21 ID:yAOZLEBy
>>484
同期式だろうと、そうでなかろうと、設計したクロック数で動くことに変わりは無いがw
490774ワット発電中さん:2013/08/29(木) 13:41:30.51 ID:rLXaIJU8
ヤバいおもしれえw
コアな話さっぱろわからんけど
わざとやってるだろw

モノの視点変えるって、自分にしっくりくるのを
選べるから勉強になる
491774ワット発電中さん:2013/08/29(木) 13:56:29.34 ID:rLXaIJU8
どっちかの人は通信から見た同期・非同期
どっちかの人は周波数からラッチ・マージン

そんな感じ?
492774ワット発電中さん:2013/08/29(木) 14:45:38.76 ID:ZZUh/iUj
>>489
おいおい、非同期式回路にクロックはねーよw

しかし、
>>482
> アクセスサイクルは、プロセスルールで決まる。
これを書きながらなんで「クロックで決まる」てな結論になるんだ?
答えは簡単、83nsよりアクセスサイクルが短いだけなのにさ。

逆にアクセスサイクルが長かったらどうなるか?
書き込みよりも読み出しのレイテンシーが無視できなくなる。
それだけのこと
493774ワット発電中さん:2013/08/29(木) 17:34:06.12 ID:2pq3S4tj
前にセラロックについて相談したものですが、毎日校正してもどんどん狂うので
先日秋月に行って20MHzの水晶発信器が10個300円だったのでよく考えずに買ってきました。
で開けてみると、表面実装用でした orz

返品するのは格好悪いので、薄型のユニバーサル基板を万能ハサミで4x3穴分だけ切り取り、
細ピンヘッダを3ピン分を2個用意しピンヘッダの短い方を基板から頭を出すぎりぎりまで切った上ではんだ付けし
●●●
○○○
○○○
●●●
※この●部分
水晶発振器を4端子をピンヘッダの1-3-4-6部分にはんだ付けして、8ピンソケットに挿して
クロック出力をAttiny861のXTAL1につなげて、ヒューズ書き換えてArduinoISPでプログラムを書き込んだら
何のエラーも出ませんでしたが、I2C液晶が映りませんでした
TinyWireM.cppと.hを見るとクロックが8MHzになってたので、20MHzにして再度プログラムを書き込むと
I2C液晶に周波数が表示されました。でもテスターとは微妙に一致しない。

秋月が叩き売りしていた安物だからかテスターが変なのか
ひと手間かかりましたがセラロックより良さそうです

余ったXTAL2端子って他の用途に使っていいのでしょうか
494774ワット発電中さん:2013/08/29(木) 18:30:48.45 ID:akKpnTGe
>>493
>>418だけど、いい経験になったでしょ?

発振回路はアナログ回路。
初期偏差だけではないのさ
495774ワット発電中さん:2013/08/29(木) 18:42:38.89 ID:2pq3S4tj
>>494
周波数カウンターやパルスカウンターにセラロックは×なのはわかりました
聞いた話によれば高速なRS-232通信でもセラロックではきびしいとか
16MHzのセラロックが10個ぐらい余ってますが
あんまりシビアじゃない用途に使おうと思います

これで安心してファンクションジェネレータを組めます
496774ワット発電中さん:2013/08/29(木) 18:56:39.60 ID:qeDyX3UF
>>495
> これで安心してファンクションジェネレータを組めます
俺の試行錯誤は300円かよ、と思うか、
300円で面白い経験ができた、と思うか、どっち?

見てた俺は300円すら払ってない後者なんだけどw
497774ワット発電中さん:2013/08/29(木) 19:43:16.24 ID:HzgH0bPA
シリアル通信は、高速でも低速でも誤差は同じジャマイカン
498774ワット発電中さん:2013/08/29(木) 22:59:14.98 ID:dgaQOKXU
>>493
XTAL端子って外部クロック使う限り余っても転用出来なかった気が。
499774ワット発電中さん:2013/08/29(木) 23:47:32.08 ID:5pEvMyOC
解決してよかた

ただ何目的の何作ろうとしてるのかよくわからんけど
マイコン側で「カウント数えるよ」方式でやってると苦労したワリに変わらんw
いつくるかわからないものだから1パルス拾う・拾わないがデカい
キャプチャ・カウンタぐるぐる回したところでやっぱり同じ

>>497だから…

「幅」で見てみれ地味だけど、ワロタになる
それはクロックソースの振舞いそのものであり、得るのも出すのもそうなる

れーてんいくつとなんちゃらppmとか値しか見てないけど
それ300円で出来ちゃったらテクトロ潰れるからやめてあげて!!
500774ワット発電中さん:2013/08/30(金) 00:36:48.49 ID:SGg8i90z
だんだん意味不明になってきた
501774ワット発電中さん:2013/08/30(金) 00:50:11.07 ID:EHnFKq+E
>>493
ヒューズビットのCKSEL[3:0]が 0b0000 なら PB5 は普通に使えるよ
とデータシートに書いてある
502774ワット発電中さん:2013/08/30(金) 01:53:06.84 ID:VCRIbbT6
おれも意味不明なんだ…すまん
これが解決になってるのかよくわからん

「使い方」の前に聞くことあんじゃね
503774ワット発電中さん:2013/08/30(金) 06:47:55.09 ID:cHiarRRL
>>493
セラロックと水晶の違いをしっかり勉強できたんだから良かったじゃないか。
誤差とか、温度変化とか手に入れた知識に比べれば、
セラロック代なんて安いもんだよ。
それに 495 に書いているように、用途によってはセラックで十分だし。
FGガンバッテね!

>>502
あまり自分の世界にひたって「俺流」で書かかれると理解が困難になる。
自分でも意味不明なら、いわんや他人おや。
見せパンツなら構わんけどさ。
…などと書くと私も同じになっちゃうね。
504774ワット発電中さん:2013/08/30(金) 07:31:24.38 ID:ozJJY2LE
>>503
えっらそうに! 何様や!
505774ワット発電中さん:2013/08/30(金) 08:47:44.68 ID:53K04Cdi
>>495
セラロックでも、
1. 粉体外装でなく、セラミックパッケージを選ぶ。
2. 負荷容量無しの2端子品にする。
3. 負荷容量と周波数の相関を、コンデンサを取り替えながら確認
4. その変化を打ち消す温度特性を持つコンデンサを探しだす。
5. 基板には周波数の微調整の為に、予備コンデンサのパッドを設ける。

てなことをすれば、結構追い込めるけどね。
水晶が安くなった今は
506774ワット発電中さん:2013/08/30(金) 23:50:13.00 ID:mqN9f4iJ
苦労してはるなあ
507774ワット発電中さん:2013/08/31(土) 12:01:11.46 ID:V5fvdj4t
コンデンサ内蔵3端子水晶発振子ってなんで存在しないのかな、
あれば便利なのに。
508774ワット発電中さん:2013/08/31(土) 12:17:10.94 ID:e6P6sb4t
発振回路内蔵水晶発振子使えばいいじゃん
509774ワット発電中さん:2013/08/31(土) 12:25:23.45 ID:V5fvdj4t
小型の3端子発振器も使ってるけど値段が少し高い。
510774ワット発電中さん:2013/08/31(土) 16:57:42.02 ID:VrgZM5QS
>>507
負荷容量内蔵のマイコン使えばいいじゃない
511774ワット発電中さん:2013/08/31(土) 17:49:08.58 ID:V5fvdj4t
AVRが好きだから、C内蔵とAVRの2者択一ならAVRを選びたい。
512774ワット発電中さん:2013/08/31(土) 17:56:56.62 ID:oeRhmN3M
秋月で扱い減った、何てこった。
513774ワット発電中さん:2013/08/31(土) 19:05:34.88 ID:rt1QSF6i
>>492
>おいおい、非同期式回路にクロックはねーよw

息を吐くように嘘を吐くなよ。あ、ほんとに知らないのかw
非同期式回路だろうと、クロックがあっても全然問題ない。
ま、その辺が理解出来て無いから、他の書込みも滅茶苦茶で無意味w
514774ワット発電中さん:2013/08/31(土) 23:07:16.02 ID:EImcVSUs
今時の回路は、同期と非同期の混合が普通だけどな。
515774ワット発電中さん:2013/08/31(土) 23:11:02.90 ID:5LWgiu50
夏休みも最終日…ってかw
516774ワット発電中さん:2013/08/31(土) 23:45:50.82 ID:p5fKKvKv
2ちゃんの最終日でもある
517774ワット発電中さん:2013/09/01(日) 05:51:36.42 ID:ZkUJQZcu
最終日ってなんの話だ?
518774ワット発電中さん:2013/09/01(日) 07:01:16.49 ID:BEeM/yTS
>>503
俺流押しつけてるよ、思いっきり出してる
そして自らツッコミしてる

勉強嫌いでバカだから教科書嫌い
いかに楽して目的・結果を満たすか
こういうのやる奴ってそうじゃないの
ビビってなにも出さない奴はいらないと思う

理解不能?そもそもすべてに精通するなど無理

「選択」すればいい。選択肢はたくさんある
それはおまえら一人一人が持ってる「俺流」
519 【凶】 :2013/09/01(日) 09:30:33.83 ID:IZypjupG
!omikuji
520774ワット発電中さん:2013/09/01(日) 10:50:14.65 ID:oUq7hMwu
>>507
ないのは、半固定コンで調整する人がいるからかも。
521774ワット発電中さん:2013/09/01(日) 16:26:50.60 ID:KpzMJMiJ
>>511
RF用の発表はあったものの、
ttp://www.atmel.jp/ja/jp/about/news/release.aspx?reference=tcm:45-40241
これから一年半、AVRの新製品発表が無い気がするのは俺だけ?

AtmelはAVRを見捨てたように見えるが、そこのとこどう思う?
522774ワット発電中さん:2013/09/01(日) 18:15:08.22 ID:w1oPlGhV
RC(ラジコン)やってるけどここ1年でAVRのATmegaを組み込みに使った製品がもの凄く増えてるよ
ある意味AVRコアが様々な製品の開発のスタンダードになりつつある感じ、
それで自分も開発してみたいと電子関係は素人だけどAVRプログラムを始めた。
素人考えだけど既に成熟して競争相手も居ないので新製品の要求って少ないんじゃないの?
523774ワット発電中さん:2013/09/01(日) 18:33:27.76 ID:Eve8xrWk
客からの要望があまり無いと言う事だな。
RCなんて数で言ったら微々たるもんだから、RCに使えるチップを使う側が選択するだけで
そもそも、RCなら大抵のチップは使える。

製品にバリエーションが無いって事は、市場にあまり出回ってないか、よっぽど高機能って事だろうけど
後者は無いな。
524774ワット発電中さん:2013/09/01(日) 18:49:52.54 ID:4FXckGbb
ラジコンのヘリとか農薬散布に実用にしてるし、
ラジコンの船とかも遠くまで探査に行かせて自動で戻ってきたり、
普通にSFみたいなことが実現してる
アイディアだけで簡単に軍事に転用できる世界
525774ワット発電中さん:2013/09/01(日) 18:50:13.50 ID:w1oPlGhV
>>523
> よっぽど高機能って事だろうけど 後者は無いな。
素人だけど高機能だと思うよ、
いま3g程度のAVRを使用した制御モジュールでGPSや各種センサを駆使して指定したとおりに飛んでかえってくるRCマルチコプタが流行ってる、
改造ファームもAVRの機器でそのま流し込めるので凄く便利、
あと送信機なんかもAVRが入っててISP端子もついてる、これもカスタムファームが開発されてる
どれも今まではブラックボックス化されててユーザーの介入はかなり困難だったけど
AVRベースになって凄く世界が広がってる、

電子機器のことはよく解らないけど今までは出来なかったわけだからコストを含めて高性能って事じゃないんだろうか?
526774ワット発電中さん:2013/09/01(日) 19:30:35.92 ID:Eve8xrWk
>>525
ド素人だから判らないのかもしれないけど
GPSを実現してるのはAVRじゃ無いだろ。GPSモジュールからシリアルで位置情報を取得してるだけ。
その他のセンサにしたって、似たり寄ったりで、AVRじゃないと出来ないって事は無い。
お前さんが言ってる「高機能」ってのは、全てソフトが実現してるだけだから、AVRだろうとPICだろうと関係ないんだよ。
>>523が言ってる「高機能」ってのは、周辺IOの事。
多分、自分で設計してプログラムも書けるようになったら理解出来ると思う。
527774ワット発電中さん:2013/09/01(日) 20:05:55.87 ID:HwVLhFJX
くだらない揚げ足とりするなよ。
528774ワット発電中さん:2013/09/01(日) 20:21:12.77 ID:RLyC+iIQ
揚げ足じゃ無いだろ。日本語が理解出来ないのか?
529774ワット発電中さん:2013/09/01(日) 20:26:04.12 ID:4FXckGbb
何を言いたいのかは理解できないけど、偉そうにしたいんだなということは伝わった
530774ワット発電中さん:2013/09/01(日) 20:31:55.56 ID:RLyC+iIQ
理解できないなら仕方が無い。学校じゃあるまいし、手取り足取り教えてもらえる所じゃ無いしな。
531774ワット発電中さん:2013/09/01(日) 21:04:33.78 ID:CspuIDeI
企業規模の話だが、8bitマイコンのシェアではルネサス、マイクロチップ、アトメルの順で
AVRが衰える気配は無いと思う。数年前までは5位程度だった。
マイクロコントローラーディビジョン全体での売り上げはこの5年で2倍以上となってるし、
digikeyでもかなりの売り上げがあるらしいし、しばらく心配ないんじゃないのか?

日本で流行らないのは日本のアマチュア層に媚びる宣伝活動してないからでしょ。
532774ワット発電中さん:2013/09/01(日) 21:19:35.95 ID:PwPXFbUA
>>526
GPS付の誘導装置の部類だから輸出規制になるが、しょぼいCPUならおもちゃとして認められる
533774ワット発電中さん:2013/09/01(日) 21:28:48.18 ID:RLyC+iIQ
アトメルのシェアが大きいのは、スマホ用が大きいんじゃないかな。
つまり、一過性の物って事だな。
タッチパネルには良いかもしれんが、普通に色々制御したいならAVRは向いてない。
市場は細分化さrてるから、戦艦大和が一石では多様な用途に使えない。
遊びで使うなら何でも良いけどね。
それにしたって、最近は色々な遊びが出来る様になってきたから、今のラインナップじゃ厳しいな。
534774ワット発電中さん:2013/09/01(日) 21:30:34.01 ID:RLyC+iIQ
>>532
GPSは、それこそソフトがメインだから、マイコンだけじゃGPSにならないよ。
535774ワット発電中さん:2013/09/01(日) 21:54:20.10 ID:tHW+1ogG
トラ技のいつだかで売れ筋ランクとか特集やってたじゃん

8bitマイコン部門ではQFPのmega328がトップだったよ
対象はデジキーだったかな?
実質世界で一番多く使われてんじゃね
プロ・アマしらんけどバランスいい
536774ワット発電中さん:2013/09/01(日) 22:16:48.42 ID:tHW+1ogG
>>531
はじめて使うとき「ソフト」でポート反転ぶんまわす
理由はシステムバスとI/Oどんな感じかみたいから

DIPのだったけど
自身のクロック(/2)でこんなきれいな
矩形波出すのwwwがんばるのwwww

200円ちょいでこれとか鼻水でた
537774ワット発電中さん:2013/09/01(日) 22:27:47.64 ID:CspuIDeI
>>533
8ビットマイコンのシェアの話だ。スマホが8ビットAVRで動いてるのかね?
俺にはラインナップとして何が弱いのか分からない
xmegaは相当多機能だがなぁ
538774ワット発電中さん:2013/09/01(日) 22:27:48.07 ID:RLyC+iIQ
>>536
最速で綺麗な矩形波なら、CPUが遅いかオシロが安物かのどちらか。
539774ワット発電中さん:2013/09/01(日) 22:29:24.02 ID:RLyC+iIQ
>>537
スマホのタッチパネルに使われてる
540774ワット発電中さん:2013/09/01(日) 22:29:27.60 ID:tHW+1ogG
>>538
やはりきたな!

かれいにスルメ
541774ワット発電中さん:2013/09/01(日) 22:56:32.85 ID:tHW+1ogG
>>537
次はxmegaだ!

とおもて買いこみモタモタ模索してたら
次々いろんなものにすっとばされててワロ…
微妙というかはがゆいというか、結局CPLDブリッジなんぞこれ

だれか有効活用おしえて…
542774ワット発電中さん:2013/09/01(日) 23:08:49.04 ID:PwPXFbUA
>>539
使われてねーよ
543774ワット発電中さん:2013/09/01(日) 23:10:49.32 ID:Mqc6klGP
youtubeで動画見てたらatmelのCM入って萌えた
544774ワット発電中さん:2013/09/01(日) 23:13:14.17 ID:KpzMJMiJ
545774ワット発電中さん:2013/09/01(日) 23:14:05.72 ID:tHW+1ogG
>>543
見たいwwww
今のまるもじロゴ萌える

Lんとこ
546774ワット発電中さん:2013/09/01(日) 23:21:39.10 ID:CspuIDeI
残念ながらスマホのタッチパネルコントローラとしてのシェア%は一桁なのだ
Q-Touchソリューションはスマートフォンではあまり受け入れられていない。
もちろんメインのコントローラとしても受け入れられていないので、
マイクロコントローラディビジョンのシェアアップの要因とは考えにくい。
もちろん売り上げ増加そのものについてはスマートフォン景気による部分もあるだろうが、
そうなるとここ数年伸び率の低いマイクロチップには皮肉な話ではある。

まあ、趣味で触る人たちにあまり心配ないよと言いたいだけだ。
AVRがマイナーなのはむしろ日本独特の現象であり、Arudioも含めて世界では受け入れられている。
547774ワット発電中さん:2013/09/01(日) 23:32:11.83 ID:tHW+1ogG
産業品で使わんわあんなもん
なにおきてんのかわかんねえ
人の指先の感覚なめんなよ

それより
おっぱいたっちの技術はよ
548774ワット発電中さん:2013/09/02(月) 02:29:40.51 ID:1TicGlfF
>>544
衰退してるのは予想だけだなw
549774ワット発電中さん:2013/09/02(月) 08:10:46.24 ID:7AKYAt0i
時代の変化が読めるかどうか。
8bitがいつまで持つんだろうねw
550774ワット発電中さん:2013/09/02(月) 08:27:54.73 ID:DIlj6IRg
たまに16bit欲しい時はあるけど、それ以上はいらね。
551774ワット発電中さん:2013/09/02(月) 08:48:41.44 ID:A3Tmg8mT
552774ワット発電中さん:2013/09/02(月) 08:54:16.35 ID:6yD4XYtV
大抵の用途には8ビットで十分。
というか、4ビットでも良い。
能力の無い奴は無駄に高性能なチップが必要になる。
しかも、バグつきw
553774ワット発電中さん:2013/09/02(月) 09:01:50.60 ID:t9y0nP9j
ATTINY生存確認(末尾の数字は最大動作周波数(MHz)、PがDIP、SがSOP)
秋月
10    450円(10個)
13A-PU   50円
2313-20PU 100円
861A-PU  200円
千石
13V-10SU  147円
45V-10SU  231円
85-20PU   210円
2313-20P  210円
861-20PU  315円
若松
2313-20SV  740円220
マルツ
25-20PU   199円
45-20PU   220円
85-20PU   225円
2313-20SU  199円
2313-20PU  367円
24-20PU   346円
44-20PU   388円
26-16PU   420円
461-20PU  430円

共立は省略
554774ワット発電中さん:2013/09/02(月) 11:36:52.66 ID:YtrACtdD
秋月安いなー、取り扱い品種増やしてくれないかな。
PICなんか放っといていいからさ。
555774ワット発電中さん:2013/09/02(月) 14:06:44.59 ID:qEwp7lIA
>>536
逆に、適当な波形を出す石はどんなのがあるのw?
556774ワット発電中さん:2013/09/03(火) 01:04:07.96 ID:eQIPxdBn
>>549
> 8bitがいつまで持つんだろうねw
AtmelがCortex-M0の販売に踏み切ったし、もうハシゴを外されているよw

ttp://2.bp.blogspot.com/-eYsoyFVsRqo/UX6jv34OnnI/AAAAAAAAJPM/muq0IkG7jZ8/s1600/bulletin20130425Fig02.jpg
この統計では、出荷金額は2010年をピークに下落に転じた。
ただし、出荷数量は2011年から持ち直してはいる。
つまり叩き売りしないと売れないのが、今の8bit MCUの現状。

ちなみに2010年に何があったか?
これかもね。
ttp://www.jp.nxp.com/news/press-releases/2009/11/low-cost-cortex-m0-mcu-from-nxp-targets-8-16-bit-applications.html
557774ワット発電中さん:2013/09/03(火) 04:21:10.36 ID:tetEHzyh
特定の変数のみ、電源が切れても値を記憶するようにしたいんですけど
どのように書いたらいいですか?
558774ワット発電中さん:2013/09/03(火) 04:27:40.89 ID:OJSkpPDw
>>557
avr/eeprom.h
559774ワット発電中さん:2013/09/03(火) 06:51:29.49 ID:CT83Gw6B
AtmelがCortex-M0って、他と差別化できるような点ってあるの?

単にCortex-M0というだけでは、先行しているNXPやST Microと競合する
のは難しいのでは?

ST MicroはローエンドのCortex-M0を大口向け32セントとか出しているし、
叩き売りは8bit限定というわけではない。開発費や設備の償却が終わって
いる分、旧プロセスとはいえ既存AVRの方が値引きの余地はあると思う。
560774ワット発電中さん:2013/09/03(火) 08:08:02.44 ID:KSDfA2w6
>>559
世界中の顧客が、その理屈で納得すると思うの?
561774ワット発電中さん:2013/09/03(火) 08:32:00.30 ID:TC5DQJhu
今時、8ビットで頑張っても、もう誰も褒めてくれない。何で時間かかっていると思われるだけで損。
562774ワット発電中さん:2013/09/03(火) 09:58:30.79 ID:LNpuhgTQ
>>554
秋月が安いのは、在庫処理したがってるから。MSPとか、凄い安くて、俺は助かるけど
次は無さそうw
563774ワット発電中さん:2013/09/03(火) 10:00:09.91 ID:LNpuhgTQ
>>561
学生のお遊び程度の使い方しかしないならそうだろうな。
564774ワット発電中さん:2013/09/03(火) 12:01:49.66 ID:H6jRd+tk
プロがこんなところで情報収集ですか?
お疲れ様ですw

ってどんな低レベルの技術者だよ、  ってお遊びの素人は思っちゃいますよ。
565774ワット発電中さん:2013/09/03(火) 12:05:21.94 ID:H6jRd+tk
ちなみにたまに見掛ける格好いいプロって
客観的具体的にきちんと説明し茶々や煽りを華麗にスルー、絶対w なんて書かない。

こんな人に憧れるけど、おれはもっと修行しないと無理だろうなw。orz
566774ワット発電中さん:2013/09/03(火) 12:48:35.21 ID:9cV6Tlme
照れるじゃねーか
567774ワット発電中さん:2013/09/03(火) 12:55:59.22 ID:RSgfPqGP
低レベルでも設計者としての給料もらってるのが世の中にはゴマンといるんだよな。
8ビットなくなる議論って10年後も20年後もやってんだろうな。
そしてきっと8051系統もまだ残ってるんだろうな。
工業製品の開発って超保守的だよ〜
新規非推奨?なにそれ?状態だもんな・・・・
568774ワット発電中さん:2013/09/03(火) 13:03:37.59 ID:LNpuhgTQ
>>564
>ってお遊びの素人は思っちゃいますよ。

そういうもん。ド素人なんだからしょうがない。
569774ワット発電中さん:2013/09/03(火) 13:12:03.95 ID:bpbneV3I
CHIP1とかで見ると、1個、100個の価格(日本円)は

Attiny4313-PU  511, 123 (20pin, ADC無)
Attiny85-20PU  439, 106 (8pin, ADC有)
Attiny84-20PU  514, 206 (14pin, ADC有)
Attiny861-20PU  357, 211 (20pin, ADC有)

なので、秋月が本気出せば
大容量(?)フラッシュなDIPのTinyAVRを100円とか200円で売れるはず
570774ワット発電中さん:2013/09/03(火) 13:32:57.46 ID:lfPPzShC
S1C63等の 4bitマイコンは安くて動作時も超低消費電力だから、いまだに生き残ってますね。
LCDドライバーになったり温度計になったりしている。
8bitマイコンもメモリーが大きかったり高性能なのは16bitと競合して負けるが規模、価格で住み分けができている。
>>556 のグラフを見ると8bitマイコンの出荷数は横ばいかプラスで総価格は下がっているから小さい物ものは8bit採用、メモリーや端子が多く必要な物は無理せずに16bit採用の傾向かな
571774ワット発電中さん:2013/09/03(火) 14:21:26.59 ID:FgpfnkJl
>>564
2ちゃんは役に立つよ
572774ワット発電中さん:2013/09/03(火) 15:13:03.26 ID:H6jRd+tk
うん、わかるよ。
会社の底辺社員がわずかな知識でド素人をこき下ろしてストレス解消できるもんね、


しかし稀に本物の技術者が現れて大恥かくこともある諸刃の剣wだけど
573774ワット発電中さん:2013/09/03(火) 15:54:23.74 ID:UVak0xBz
2chの恥はかき捨てだもんね^^
574774ワット発電中さん:2013/09/03(火) 16:46:54.60 ID:Ki+A7trz
はじめてMLF32を使ったけどこれいい。
凄い小さいし、手でもわけなくハンダ付け出来た(goot RX-80HRT-3K使用)。
ただ、チップ下にサーマルパッドがあってパターン設計は結構きつい。
575774ワット発電中さん:2013/09/03(火) 17:59:45.45 ID:ejeTItY6
>>573
捨てられなくなった●たち
576774ワット発電中さん:2013/09/03(火) 18:16:57.84 ID:05KG2TVz
>>569
たけーーーなぁ
一桁間違えてないかw
577774ワット発電中さん:2013/09/03(火) 18:19:11.02 ID:05KG2TVz
>>570
そお?俺ならMSP430使うけとな
578774ワット発電中さん:2013/09/03(火) 18:39:31.14 ID:s8f3zjPP
>>569
秋月に861Aが200円であるし
44と4313は妙楽堂で売ってるだろ
579774ワット発電中さん:2013/09/03(火) 19:00:41.32 ID:0CjKKUBW
Attiny1634-PUとか、Attiny32313-PUとか札束でAtmelはたいて作らせて安価に売ってくれる、
秋月ならきっとやってくれるさ、きっと…
580774ワット発電中さん:2013/09/03(火) 19:04:48.93 ID:4lU1nDYr
世の中の大抵のもんは、有効数字2桁あれば十分なんだよ
金勘定とかは10桁でも20桁でも使ってやればいいけど、
マイコンで制御するべきパラメータは、2桁で困らない
581774ワット発電中さん:2013/09/03(火) 19:25:41.29 ID:lfPPzShC
>>577
値段だけの問題だから電池動作する趣味の工作なら迷わずMSP430で良いと思う。
582774ワット発電中さん:2013/09/03(火) 19:30:49.43 ID:f1HIaO6v
天気情報を取得して、天候に合わせて光るものを作ろうと思ってます。
今考えているのはAVRとパソコンをPCで繋いで
PC側でgetTenki.exe(自作予定)を常時起動、
AVRをUSBポートにさしたらexe側でそれを検知し、天候情報をとってきて、
AVRにシリアル通信で送る、みたいな構造を考えてます。
それでやりたいことは実現できるといえば実現出来るのですが、
もっとスマートな方法はありませんでしょうか?

もちろんこれを売るつもりはさらさらないですが、
これを商品として考えた時に、いちいちgetTenki.exeをダウンロードしてもらって、
プログラムを常時起動させておいてもらう、
みたいな手法はユーザフレンドリーではありません。

理想を言うと、AVR側に(パソコンのUSBポートを通して)インターネットから
天気情報をとってくる機能を入れ込んで、
ユーザは特に何もしなくてもPCにさすだけで
天気が分かっちゃうくらいのものが作りたいです。

そんな事は可能ですかね…。
それかもっといい方法とかあれば教えて欲しいです。
最初に挙げた手法は別の工作で一度やったことのある手法で、
実現可能なことはすでに分かっているので、
勉強というかステップアップの意味も込めて
もっといい方法に挑戦してみたいです!!
583774ワット発電中さん:2013/09/03(火) 19:35:16.65 ID:xsHjfQtd
Arduinoでできんじゃね?
584774ワット発電中さん:2013/09/03(火) 19:51:55.21 ID:OJSkpPDw
>>582
USBはデータの送受信はすべてホスト側が駆動してる
ソフトをサービスとして動かすしかない
585774ワット発電中さん:2013/09/03(火) 20:02:32.01 ID:0CjKKUBW
>>582
USBじゃなくてEtherにすれば?
ところで、当然ブツは通天閣型に作るんだよな?
586774ワット発電中さん:2013/09/03(火) 20:04:44.93 ID:f1HIaO6v
>>583
Arduinoで出来るという事はAVRでも出来るという事ですよね。

>>584
ということは結局ソフトをダウンロードなりしてもらうような
設計になるということですかね。。。

kickstarterで成功してたblink(1)みたいなものを
目指してるんですが、blink(1)も調べてみたらソフトダウンロードさせてますね。。。

ううむ、USBメモリとかのautorun.infみたいな感じで
どうにかならないものかしら…。
587774ワット発電中さん:2013/09/03(火) 20:07:23.46 ID:f1HIaO6v
>>585
Eatherケーブルはアリですね。
ただ電源とEatherケーブルの2本線が飛び出てるのが
少しカッコ悪い感じがして躊躇してます。
Eatherから電源とれれば万事解決かもしれませんが…。

そして何故通天閣ですか?
588774ワット発電中さん:2013/09/03(火) 20:11:38.18 ID:0CjKKUBW
>>587
PoEでググレ。あと通天閣 天気予報でもググレ
589774ワット発電中さん:2013/09/03(火) 20:24:25.74 ID:0CjKKUBW
あー、あとPLCもあった。忘れてた。
590774ワット発電中さん:2013/09/03(火) 20:35:09.21 ID:0CjKKUBW
ついでに、"Ambient Orb"も見とくといいかもなー
591774ワット発電中さん:2013/09/03(火) 21:13:07.30 ID:9cV6Tlme
>>582
気圧センサー、温度・湿度センサーetc
592774ワット発電中さん:2013/09/03(火) 21:17:08.25 ID:zh/+shW2
無線LANが便利
593774ワット発電中さん:2013/09/03(火) 21:45:54.50 ID:bpbneV3I
下駄に重力センサーみたいなのつけて
蹴りあげて、落ちた時に上か下かで明日の天気を判定してはどうか
594774ワット発電中さん:2013/09/03(火) 22:06:32.40 ID:Ygchujz0
天気情報はネットから取得して
表示装置を下駄型にする
595774ワット発電中さん:2013/09/03(火) 22:08:52.11 ID:0CjKKUBW
気象庁門外不出のタングステン合金削りだし予報下駄がまず入手できねぇだろ
596774ワット発電中さん:2013/09/03(火) 22:42:20.92 ID:eQIPxdBn
>>581
MSP430G2xxxクラスだと、PIC,AVRよりも安い
597774ワット発電中さん:2013/09/03(火) 23:21:42.47 ID:Gb2KiDVK
天気は予報するもんじゃない制御するもんだ
世界の気候はAT90S1200に支配されている
598774ワット発電中さん:2013/09/03(火) 23:38:33.30 ID:eQIPxdBn
>>569
DigiKeyで1個の値段

LPC810M021FN8FP  148.0  8DIP ADC無 30MHz  4KB ROM 1KB RAM
LPC812M101FD20FP 170.0 20SOP ADC無 30MHz 16KB ROM 4KB RAM
MKL02Z32VFK4   186.0 24QFN ADC有 48MHz 32KB ROM 4KB RAM
MKL02Z32VFM4   194.0 32QFN ADC有 48MHz 32kB ROM 4KB RAM
599774ワット発電中さん:2013/09/03(火) 23:59:51.68 ID:eQIPxdBn
>>571
> 2ちゃんは役に立つよ
十中八九はしょ〜もない話しだけど、中には固定概念を打破するキラリとしたカキコがあるんだよな。
視野を広げるのにいい。

>>570
> 4bitマイコンは安くて動作時も超低消費電力だから、
それは偏見。
16/32bitマイコンでも処理性能が高い分、ゆ〜っくりと超低クロックで動かせばア〜ラ不思議w

> 8bitマイコンも … 規模、価格で住み分けができている。
本当?
規模も価格も16/32bitマイコンに負けてないかい?
600774ワット発電中さん:2013/09/04(水) 00:17:26.51 ID:gBaY6BHg
>>586
> Arduinoで出来るという事はAVRでも出来るという事ですよね。

Arduino イーサネットシールド R3
ttp://www.switch-science.com/catalog/838/
> W5100とSDカードにはSPIで通信します。
つまり、TCP/IPスタックはW5100側で処理するから。
AVRで簡単に出来ると思うな。

AVRならこれ使え
avr-uip
http://code.google.com/p/avr-uip/
601774ワット発電中さん:2013/09/04(水) 10:24:34.95 ID:F8u16Apn
キラリとしたカキコも十中八九は糞だけど
602774ワット発電中さん:2013/09/04(水) 10:29:47.39 ID:JCzKWPJ1
ほんとだw >>>>>>>>>>601
603774ワット発電中さん:2013/09/04(水) 12:45:30.44 ID:QhWOHWbz
>>601
さすがだわ
604774ワット発電中さん:2013/09/04(水) 12:49:32.23 ID:AkK2lhwp
>>601
バカだなぁ。
そこから「一を聞いて十を知る」だよ
605774ワット発電中さん:2013/09/04(水) 14:10:13.30 ID:GOpiQ8BN
俺バカだから十を聞く頃は一を忘れてしまう。
2ちゃんを読んで感じることは「人間は醜い」だな。
606774ワット発電中さん:2013/09/04(水) 14:50:12.51 ID:QI6kTZeR
>>601 が眩しすぎる
607774ワット発電中さん:2013/09/04(水) 18:11:19.37 ID:Sf9LxTGZ
ブーメランが飛び交う
かわすのが大変
608774ワット発電中さん:2013/09/04(水) 19:31:33.16 ID:QhWOHWbz
>>606
キラリと輝く糞
609774ワット発電中さん:2013/09/04(水) 20:14:32.30 ID:O8dPtMdW
>>582
RaspberryPiでも使ったらいいんじゃね?
610774ワット発電中さん:2013/09/04(水) 22:22:11.85 ID:h/IOEBu4
>>605
ならば、9を覚えてるって事じゃん。十分。
611774ワット発電中さん:2013/09/04(水) 23:21:38.72 ID:J6OSyiuP
>>598
いつになったら入荷するんだか
迷惑な話だ
612774ワット発電中さん:2013/09/05(木) 16:46:24.20 ID:h/Aj2RuF
I2Cx2はともかく、UARTx1,SPIx1とかじゃおれっちの用途にはまったく足らん。
xmegaカワイイヨ
613774ワット発電中さん:2013/09/05(木) 17:42:56.41 ID:xg0SYZX9
シリアルはそれぞれ二系統は欲しい。
そう言えば、俺が初めて使ったPICにはUARTが入っていなかった事を今思い出した。
客先の指定だったので変更も出来ず、仕方なくソフトでUARTを組みながら、
でぇつ嫌いだPICなんか、と嘆いたんだよ、懐かしいな。
614774ワット発電中さん:2013/09/05(木) 18:57:45.10 ID:F3BimuDR
xmegaでUARTといえばA4UのUART0のREMAP機能の存在意義に付いて小一時間悩まされたな。
615774ワット発電中さん:2013/09/05(木) 20:15:15.01 ID:4+/irt4I
>>612
> UARTx1,SPIx1とかじゃ 〜 まったく足らん。
一対一で繋ごうとするからだよ。
SPiならデイジーチェーンにしてもいいし、パラで繋いでもいい。周辺の数だけGPIOがあれば清む。

UARTも、自分が通信を支配しているならLogicICで通信相手を切り替えればいい。その時にはRTSでビジー出すのを忘れるな。
相手がRTSで制御出来ないなら、I2CーUARTチッブか、UARTが多い上位チップにするか、RSー422か485にすればいい。

ちょっと工夫するだけで、大抵は1ポートあれば事足りるのさ。
特にUARTはシステム中に10系統位必要な場合があるけど、SHでも5系統がせいぜい。
工夫の仕方を知らないと「ではマイコンを2つ積みましょう」とかなるし、実際に見たことある。勿論、大笑いしたよ。
616774ワット発電中さん:2013/09/05(木) 21:08:02.14 ID:caFOO4Qc
>>615
変な小細工するほうが大笑い
617774ワット発電中さん:2013/09/05(木) 21:32:43.89 ID:+hXK0pyh
何かとお役立ちなPSoC
618774ワット発電中さん:2013/09/05(木) 21:39:50.29 ID:8em4ZWI9
面白いなw
マイコンにIO余ってて、処理に余裕があるならソフトUART組まされそうだw
619774ワット発電中さん:2013/09/05(木) 22:09:47.86 ID:+XGLlNdo
>>615
> SPiならデイジーチェーンにしてもいいし、

複数デバイスをパラ接続してHC138/139みたいなデコーダでチップセレクト
切り替えるなら判るが、SPIって、選択されていないデバイスのDI入力って、
DOへ筒抜けになるなんて仕様あったっけ?

> UARTも、自分が通信を支配しているならLogicICで通信相手を切り替え
> ればいい。その時にはRTSでビジー出すのを忘れるな。

RTSをBUSYにしても、すぐに通信が止まるわけではない。ハードフロー制御
でも、既に送信が始まっていれば、最低1キャラクタは送られる。

マルチプレクサによる切り替えは、自分側からコマンドを送って、相手の
レスポンスを待つだけで、絶対に相手側の都合で勝手に通信が開始され
ないという、特殊な使い方でなければ使えない。

それに、コマンドを送出直後に、レスポンスを待つ間は、マルチプレクサ
を他の相手に切り替えることもできない。

そういう場合でも、普通は芋づる接続できるRS485等を使う。
620774ワット発電中さん:2013/09/05(木) 22:30:56.70 ID:Awh6mV23
上位通信、ジャーナルプリンタ、操作パネル、SDカード
全部同時にxmegaA3UのUSARTとそのMSPIモードで使用してる。めっちゃ楽w
ダブルバッファとDMA転送でメカ制御しながらでも余裕♪
16550で増設してた昔は何だったのよ状態。
あ、マルチプロセッサ通信もやってるわ。マスタは決まってるからCANなんていらん。
621615:2013/09/05(木) 22:42:22.70 ID:Xn9myvSY
>>617
(ぉぃぉぃ) 一番いい所を持って行ってくれちゃって。憎いよ〜w
そう、PSoCなら外付け回路無しの内部でポートを増やせるし、なんならUARTブロックそのものをDBAに並べればいい。

>>618
低レベルなハード屋と組まされたら、その可能性はあるねぇw

>>619
> 相手側の都合で勝手に通信が開始され
> ないという、特殊な使い方でなければ使えない。
その場合でもソフトフロー制御でなんとかなる。

まさかハードフローでない3線式でサポートしていないなんて … いるんだよなぁ〜、そういうしょ〜もないドライバを書くソフト屋って。
しかもそれが製品で、「仕様です」とか言ってくれちゃうとかw
仕方無いから通信専用MCUを載せて回避したけどさ、美しく無いんだよなぁ orz
622774ワット発電中さん:2013/09/05(木) 22:50:59.95 ID:Xn9myvSY
来ましたねぇ、キラリ発言!

>>620
> 全部同時にxmegaA3UのUSARTとそのMSPIモードで使用してる。めっちゃ楽w

へぇ〜
> Seven USARTs with IrDA support for one USART
> Three serial peripheral interfaces (SPIs)
すごいな。何かの時に検討してみるよ。

ただ、こんなデバイスをAtmelに作らせたAVRユーザって一体…
…とも思ってしまったw
623774ワット発電中さん:2013/09/05(木) 22:59:16.07 ID:F3BimuDR
A3UだとUSBも喋れるんで、PCIの232Cボードからの置き換えには(繋ぐものにも依るけど)悪くないよ。
624774ワット発電中さん:2013/09/05(木) 23:04:16.81 ID:Xn9myvSY
> AVRユーザって一体…
前言撤回w
NXPにも UART x6, SPI x3なデバイスがあるのを見つけた(汗
世の中、メーカに無茶言う人が多いって事か。
625774ワット発電中さん:2013/09/05(木) 23:10:39.40 ID:Awh6mV23
産業機器はまだまだシリアル通信多いんだよ。
SDカードは昔のP-ROM代わりだけどね。
「昔はROM差し替えればすんでたのに今はパソコン要るのかよ!」
現場の声ですwwww
ファーム書き換えられればいいんだからFATなんて使ってないよ。
626774ワット発電中さん:2013/09/05(木) 23:11:03.19 ID:Xn9myvSY
>>623
それは魅力感じないなぁ。
USBならデバイス機能だけでなくホスト機能を持ち、スピードも速く、Flashもより大容量で、しかも ATXMEGA128A3U-AU の1個500円(DigiKey)よりも安いKL24Z(Cortex-M0+, 48MHz, 64kB ROM)があるから。
627774ワット発電中さん:2013/09/05(木) 23:16:07.80 ID:Xn9myvSY
おっと、ROMはKL24Zが小さかった(汗

>>625
> 産業機器はまだまだシリアル通信多いんだよ。
ソフトの負担が軽いからね。
628774ワット発電中さん:2013/09/05(木) 23:24:02.52 ID:F3BimuDR
肝心のUART数が少ないんじゃ話にならんじゃん。
629774ワット発電中さん:2013/09/05(木) 23:30:49.08 ID:Awh6mV23
PCのUSBに繋ぎたい? はい、USB-RS232C変換ケーブル付けときますね。
これで終わらせてる。
なんで少量生産でベンダーIDなんて取得せにゃならんのだ。
HIDデバイスにしてもPC側に専用アプリ必要になるし・・・

ましてやUSB on the goなんてやってられるかぃw
そんなの民生品の世界だよ。産業屋の俺には関係ね〜
630774ワット発電中さん:2013/09/05(木) 23:34:57.34 ID:+XGLlNdo
>>621
> その場合でもソフトフロー制御でなんとかなる。

マルチプレクサで選択していない状態の相手デバイスから勝手に送信して
きたら、ソフトフロー制御も糞もなかろう。

それとも、マルチプレクサで非選択状態にする前に、X-OFFを送るのか?

同一電源で動くオンボードならともかく、相手デバイスがハードリセット
または電源再投入されたら? まともに、通信の異常系設計やったこと
ないんだろうなぁ。

あと、制御系システムのコンソールI/Oはともかく、ソフトフロー制御だと
バイナリを直接送れないんだよな。

> SPiならデイジーチェーンにしてもいいし、

都合の悪いこれは華麗にスルーか? もしかして、SPiはSPIとは違う
パラレルワールドの規格とか?
631774ワット発電中さん:2013/09/06(金) 00:41:03.70 ID:Qka41KC4
>>629
その方が雷に強かったりするしな。
USBは5m以上ケーブル伸ばせないし。
632774ワット発電中さん:2013/09/06(金) 06:07:10.61 ID:be6We+tt
>>630
なになにw 相手にされなかったのでムクれているの?w

>>619は大筋>>615の焼き直しだし、
そもそも「UARTも、自分が通信を支配しているなら」と断った上での話しだし、
ソフトフローやら選択/非選択は、相手機器の仕様を睨みながら決めればいいこと。

> 非選択状態にする前に、X-OFFを送るのか?
> 相手デバイスがハードリセットまたは電源再投入されたら?
> バイナリを直接送れないんだよな。
文句の多い奴w
こういう奴がゴテゴテしたシステムを作るんだろうな〜。

バイナリを送る? ハードフローが無い3線のUARTで?
何も考えてないだろ? 相手のバッファがオーバーフローしたらどうするんだよ?

相手がリセットされたら?
それってさ、そもそもハートビートを考慮しなけりゃいけない機器じゃないの?
えっ? まさか考えずに作ってないよな?w

> > SPiならデイジーチェーンにしてもいいし、
> 都合の悪いこれは華麗にスルーか?
恥ずかしいなぁ、おい!w
「SPI デイジーチェーン接続」でggrks
(折角スルーしてあげたのに、二度も赤っ恥かく奴って一体…)
633774ワット発電中さん:2013/09/06(金) 07:55:41.31 ID:nVKswN1F
>相手のバッファがオーバーフローしたらどうするんだよ?
組込みならエラーがあるのは大前提だから、必ずプロトコル
つーもんがあるんじゃねぇの?

デイジーチェーンはどうも間違えやすくてな。面倒になってきて、
結局I2Cにしてしまった。
634774ワット発電中さん:2013/09/06(金) 08:03:44.77 ID:4aFzsHNq
>>633
ああ言えばこう言う。
635774ワット発電中さん:2013/09/06(金) 08:04:14.99 ID:4aFzsHNq
>>633
ああ言えばこう言う。
636774ワット発電中さん:2013/09/06(金) 14:01:46.95 ID:anNlsOJN
>>632
>バイナリを送る? ハードフローが無い3線のUARTで?
>何も考えてないだろ? 相手のバッファがオーバーフローしたらどうするんだよ?

オーバーフローなんてしないよ。お前の作ったプログラムはするのかも試練が、ま、実力だからしょうがない。
まともに作れば、3線どころか、2線でさえ、バイナリを送れる。勿論、オーバーフローなんてしない。
637774ワット発電中さん:2013/09/06(金) 14:53:20.09 ID:keJKxlOb
そろそろ追っかけるのが面倒になつてきた。
コテ付けて雑談すれでやってくれよ。

俺流wの提示は有り難いのでまた宜しく。
638774ワット発電中さん:2013/09/06(金) 15:11:22.84 ID:rlBnsX7S
もちろん、1線でも無線でさえバイナリーを送れる。
639774ワット発電中さん:2013/09/06(金) 19:26:34.75 ID:fidqaMwo
AVRって、ある種のガラパゴスマイコンなんだな。
独自の進化をした呪縛マイコン。
640774ワット発電中さん:2013/09/06(金) 19:52:14.66 ID:aagbQ1BY
どういうところが他と違って独自なのか説明してくれよ
641774ワット発電中さん:2013/09/06(金) 21:34:51.33 ID:WUuF21pc
pic16やpic18に比べればコア性能は神。
642774ワット発電中さん:2013/09/06(金) 21:50:31.37 ID:AOku3kPl
プログラム可能なインターフェースコントローラーと比べるなよ
643774ワット発電中さん:2013/09/06(金) 21:56:02.71 ID:WUuF21pc
それでも神
644774ワット発電中さん:2013/09/06(金) 22:01:13.01 ID:w2ONTJs5
コードサイズは貧乏神
645774ワット発電中さん:2013/09/06(金) 22:14:57.21 ID:J2Xw6U3e
PICはすでに老害だもん…
24系や30系なら改善されたけどあっち使うくらいなら他のにするもん…

これ以上はPIC厨が暴れるのでNGってことで
646774ワット発電中さん:2013/09/06(金) 22:27:58.04 ID:be6We+tt
647774ワット発電中さん:2013/09/06(金) 22:29:33.18 ID:be6We+tt
>>645
> PICはすでに老害だもん…
似たようなもの、どんぐりの背くらべ。
648774ワット発電中さん:2013/09/07(土) 01:39:44.94 ID:0Cjqf9Mv
>>646
1すら言って無いと思うんだ。ガラパゴスの意味を理解してない。

導入しやすくPIC16系みたいに応用の利かないアーキテクチャでもない。
C言語との親和性もいいし、素直で当たり前なMCUだと思うよ。
設定可能なインターフェースも前例があるから悩むことは無かったし、
Z80使いのおっさんが>>620の様にいともあっさり移行できた。
他のマイコンに乗り換えづらい変なところなんて無いから呪縛なんてのも無い。
これで勉強して他の製品に飛んでいけると思う。

ルネサスのR系、MSP430、STM32等と比較調査してmega系なら魅力無かったけど、
xmegaで強化された周辺機能が目を引いたかな。十分安くて使いよいヤツですよ。

次の進化で割り込み時のレジスタ退避にハードウェア処理を選択できると嬉しいかな。
これも他のマイコンが既にやってる当たり前な進化だし、タスクチェンジの
オーバーヘッドが激減するからね。

MLFパッケージは実装検査しにくいから、特に必要が無ければやめて欲しいって言われたよ。
実装されたあれ見てニヤニヤするのが隠れた楽しみなのにw
649774ワット発電中さん:2013/09/07(土) 07:03:07.65 ID:Q6PiNPXI
>>633
> 必ずプロトコルつーもんがあるんじゃねぇの?
そそ、ご明察!
なのにさ、それも考えられずに「まともに作れば」とのたまう、赤っ恥なのに気がついてない>>636みたいな奴もいるw

>>636>>638
> まともに作れば、3線どころか、2線でさえ、バイナリを送れる。勿論、オーバーフローなんてしない。
あのさ、それって車輪の再発明。
先人が30年前にKermitで解決したことを今頃ドヤ顔されても、「おまえ、アホだろう?」としか思えないw

「ZMODEM Kermit」でggrks
650774ワット発電中さん:2013/09/07(土) 07:24:04.00 ID:iK3/yVta
昔の人はシリアルがこんなに高速化して主流になるとは思わなかっただろうな
651774ワット発電中さん:2013/09/07(土) 07:25:41.74 ID:QkaC7qYc
>>648
> 実装されたあれ見てニヤニヤするのが隠れた楽しみなのにw
仕事に趣味を持ち込むのはどうよ?
652774ワット発電中さん:2013/09/07(土) 08:26:20.09 ID:0hb72O0u
>>649
ZMODEMだと、オーバーフローやデータ化けは再送じゃね?
PCに繋ぐときは便利だけど。
653774ワット発電中さん:2013/09/07(土) 08:34:01.08 ID:HWT2NKnv
>>640
愛がないなぁ・・・
文末に「キリッ」を付け忘れたってことぐらい推測してやれよ
654774ワット発電中さん:2013/09/07(土) 08:50:41.48 ID:Rv6czus6
>>652
>>633
> 組込みならエラーがあるのは大前提だから、必ずプロトコル
> つーもんがあるんじゃねぇの?
655774ワット発電中さん:2013/09/07(土) 10:54:24.68 ID:LId2tEp+
そういえばI2Cのケーブルって専用品があるのでしょうか?
7cmぐらいジャンパワイヤーでAttinyとI2C液晶をつなげているのですが
液晶表示がときどきばけて、ケーブルさわるとばけばけになる
ケーブルをツイストすると全く映らなくなるし
656774ワット発電中さん:2013/09/07(土) 11:36:40.06 ID:zNdXpcbt
>>655
転送速度とかプルアップ抵抗を疑ったほうがいいかも?
657774ワット発電中さん:2013/09/07(土) 11:54:32.37 ID:1kbZhQ4L
>>655
5線のフラットケーブルを用意して、GND SCL GND SDA GNDの順に割り当ててみな。
658774ワット発電中さん:2013/09/07(土) 12:14:11.62 ID:jAlS/ea1
LCD の GND が浮いてるとみた
(自分がやったことある症状と似てる)
659774ワット発電中さん:2013/09/07(土) 12:16:39.17 ID:XBoR2CFl
抵抗高すぎるんだろうけど低すぎると今度はスレーブ機器によってLOにできてない場合があるから
一回オシロで見とくのが確実
660774ワット発電中さん:2013/09/07(土) 16:07:11.73 ID:EcSP+brD
>>657
別人ですが
> GND SCL GND SDA GNDの順に
いまサンプルなどに従って4線で繋いでるんだけど5本繋ぐ意味ってなんですか?
ハードは素人なので良ければ教えてください。
661774ワット発電中さん:2013/09/07(土) 16:41:02.15 ID:d9E9tJvs
ヒント:サンドウィッチ
662774ワット発電中さん:2013/09/07(土) 16:44:17.19 ID:iK3/yVta
SCSIも半分以上GNDだったな
663774ワット発電中さん:2013/09/07(土) 16:47:11.30 ID:BC3Haj5i
AVRのクロックでも水晶の周りを「ばーりあ」ってやるじゃん
664774ワット発電中さん:2013/09/07(土) 17:03:36.03 ID:0Cjqf9Mv
IDEも規格拡張で間にGNDいれた80芯になりましたね。

657で言われているのはフラットケーブル限定の話ですよ。
信号と信号の間にGNDを挿入することによってクロストーク
と呼ばれる信号同士の影響を軽減します。
信号とGNDペアですとどちらかの端に信号が来てしまうので
そこにもGNDを入れて5本になってるんですね。この1本はさしたる
効果は無いと思われますが、邪魔でも無いのでお好みでって感じでしょうか。

>>655
ツイストしてみたと書かれていますが、SDAとSCL一緒によじったりしてませんか?
そんなことするとクロストークが増加して言われている現象になりますよ。
ただよじることとツイストペアは違うものです。
7cmのケーブルで触れると化けるってプルアップつけてないくらいじゃないかな?
665774ワット発電中さん:2013/09/07(土) 17:41:44.51 ID:EcSP+brD
ついでにプルアップについて教えてください、
I2CのセンサとLCDをつけた小道具を作ったのですが
サンプルなどではプルアップ抵抗については殆ど記載されていません、
まれに配線してある図も見掛けます、
取りあえずどちらも試してみて差を感じていないのですが基本的に要る物なのでしょうか?
またどのようなメリットや意味があるのでしょうか?
666774ワット発電中さん:2013/09/07(土) 17:54:45.95 ID:rgcVWXnZ
>>665
NXP社のサイトでI2Cの規格書がフリーでダウンロードできるのだから、
まずは読むべし。
667774ワット発電中さん:2013/09/07(土) 18:03:37.65 ID:0Cjqf9Mv
I2CってHiのときは誰も駆動していないオープン状態ですから
プルアップ抵抗は必要ですよ。
当たり前すぎて省略して書かれていることもあります。
デバイスによっては高抵抗のプルアップが内蔵されている場合もありますので、
抵抗を外付けしなくても動いてしまう場合もあるでしょう。
668657:2013/09/07(土) 18:14:30.89 ID:Q6PiNPXI
>>665
>>667が言うとおり、各デバイスはオープンドレインで接続されるから必要。
プルアップ抵抗の計算式は以下。

Rp(max) = tr / (0.8473 x Cb)
Cb : バスの総負荷容量

>>664
> この1本はさしたる効果は無いと思われますが、
I2Cの3.4Mbit/s程度なら意味無いけど、ちょい周波数が高くなるとその一本でコプレーナ導波路と見なすことが出来、インピーダンスマッチングが出来るんだよ。
669774ワット発電中さん:2013/09/07(土) 18:34:23.84 ID:0Cjqf9Mv
>>668
追加情報はありがたいですが、プルアップも知らなかった人がバスの負荷容量ってわかんないですよね。
インピーダンスマッチングの件にしたって知ってますけど、今はそんな話してないですよね。
知識が豊富なのはお察ししますが、質疑応答はスッキリシンプルに行きましょうよ。
話が広がりすぎてノイズだらけになるw
670774ワット発電中さん:2013/09/07(土) 19:04:37.46 ID:gY5PnYDy
>>669
質疑応答でなく、あなたの知識に対するツッコミだよ。
AVRの世界から一歩外に出たら、その認識では通用しないよ。
671774ワット発電中さん:2013/09/07(土) 19:56:19.47 ID:fOwnh+2Y
>>669
プル・アップ抵抗10kΩで多分いける。
672774ワット発電中さん:2013/09/07(土) 22:17:55.92 ID:uIEKaNyB
う〜ん・・・何の認識だろう・・・
初心者さんがI2Cでハマってる話題でしょう?
マイクロストリップラインの話にでも発展させましょうか?
メンドクサイカラシナイケド

>>671
うん、10kΩで多分動くでしょうね。
でも私の実績で10kΩがNGだった事もあるから断定的な数字出したくなかったんです。
無難な数字の代弁ありがとう。
673774ワット発電中さん:2013/09/07(土) 22:21:58.34 ID:g0U2ebDG
>>672
ネットで検索したら、IICの仕様書はいくらでも転がってる。
タイミングとか、速度に応じたプルアップ抵抗の値とかも載ってるよ。
674670:2013/09/07(土) 22:32:07.60 ID:Q4QlewE0
違うやんw >>660の質問が「4線でなく5本繋ぐのは何故?」なのだから、>>668でいいやんw
ただ、一気に「コプレーナ導波路」だと確かに飛躍しすぎと反省して、その中間を補足。

>>660
SCL, SDAを左右からGNDで挟むのは、クロック/シグナルのガードの為だよ。
これは>>664も行っているけど、信号を並走させると浮遊容量が生じ、容量結合によって隣の信号に影響を与える(クロストーク)。
考慮しなければいけないのは並走信号だけでなく、近接する他のワイヤーもあれば、トランス近くを通すと磁気結合さえありうる。

それを防ぐのがGNDによるガードで、信号線路と並走させてあえて静電/磁気結合させておく。
結合させておけば、他からの影響を減らす事が出来、ノイズ耐性を高める事が出来る。
これがI2Cでも計5本の理由。

回路はちょっとした工夫で、格段に安定度を向上させられるのさ。
675774ワット発電中さん:2013/09/07(土) 23:56:32.39 ID:uIEKaNyB
>>673
そうそう、調べりゃ出てきますよね。
調べて欲しかったし、複数の資料比べればちょっと違うじゃないかとか、
気付いてもらおうと思うわけですよ。
下手に言っちゃうと「10kΩでいいて言われたもん」とかになるしw

>>674
そうでしたか。読解力弱くて申し訳ない。リケイナモンデ・・・
でもやっぱりわざわざ両サイドGNDは好みですよ。
その理屈が一般的ならセントロニクスパラレルやSCSIが端面信号なのはおかしいでしょ。
外来のコモンノイズ対策なら内側とはいえGND一本あれば十分。
(いや、GNDラインが+一本ならコンモードじゃなくなるな・・・・)
シールド的意味合いでガードというなら鉛直面むき出しで意味ないですよ。
それでも全く無意味でもないから「好み」って書いたんです。

何でこんなに食いつくのか・・・それさんざん実験したんだもんw
ノイズ試験キライ!
676774ワット発電中さん:2013/09/08(日) 00:43:25.09 ID:97YZDlAI
I2Cのスピードで7cmぐらい、クロストークなんか気にする必要あるか?
(そりゃ、極細線を50umピッチで並走させたら影響でるかもわからんが・・・)
677774ワット発電中さん:2013/09/08(日) 00:43:54.33 ID:hlhuG33T
4.7kくらいにしてる
理由はない
678774ワット発電中さん:2013/09/08(日) 01:11:27.61 ID:sSnLiEFW
入手しやすいから 10kΩ にしてる
679774ワット発電中さん:2013/09/08(日) 02:05:59.43 ID:GljaJxl3
>>641>>645
他の物と比べるの止めろよ。ただ単に何処がどう良いのかを書けば良いのに
他のものを持ち出してたんじゃ、こっちから喧嘩売ってるようなもんだぞ

あと、2chだからって人を馬鹿にしたような事言うなよ。住人のレベル疑われるぞ
680774ワット発電中さん:2013/09/08(日) 02:40:32.88 ID:N/gqpvuq
セントロやパラレルSCSIの装置間接続は、本来ツイストペア線の多芯シールド
付きキャプタイヤケーブルを使う前提。外付けフロッピーI/Fもそう。

外側絶縁被覆下のシールドは片側コネクタのみでシャーシに落として、電流
ループができないようにする。

裂いて使えば別だけど、フラットケーブルの芯線は偶数しかないし、バラ線と
1列コネクタの組み合わせだとケーブル間の距離が一定にならないので、インピー
ダンスが保証されない。GHz帯でもないのに導波管効果説は眉唾。
681774ワット発電中さん:2013/09/08(日) 04:53:02.66 ID:tLCtDVqG
>>675
お前の思想はどうても良い。
ズバリ答えないなら黙ってろ!
通常5kから10k程度と一言で良いだろ
682774ワット発電中さん:2013/09/08(日) 05:46:43.14 ID:becUcKlE
私はいつもi2cのクロック800kHz位で使いますから
抵抗は2kΩが標準です
683774ワット発電中さん:2013/09/08(日) 06:31:41.49 ID:iOp+o3hM
>>676
論より証拠で実験してみれば?
 ・7cmぐらいジャンパワイヤーを2本捩り、一方をCMOSの出力に繋ぎ、他方をプローブに繋ぎオシロで観測する。
どんな波形が見えるかな?

言葉にすると、
 ・I2Cはオープンドレイン出力であり、2〜10kΩ台の抵抗でプルアップされている。
 ・つまり結構ハイインピーダンスな線路であり、外来ノイズは即電圧として見える線路。
 ・そしてCMOS入力もハイインピーダンス受け。
さて何が起きるかな?
684774ワット発電中さん:2013/09/08(日) 06:57:16.42 ID:iOp+o3hM
>>680
誰がバラ線でインピーダンスコントロール出来ると言ってるの?
誰も言ってないよ?

> 裂いて使えば別だけど、フラットケーブルの芯線は偶数しかない
その奇天烈な認識、どっから来た?w
幾らでも売ってる。
ttp://www.digikey.jp/product-detail/ja/8125%2F05/8125%2F05-ND/3867972
ttp://www.digikey.jp/product-detail/ja/8125%2F05/8125%2F05-ND/3867972
685774ワット発電中さん:2013/09/08(日) 07:07:18.04 ID:iSNZP68o
AVRの資料には(たとえばmega168の2545R-AVR-07/09、307ページ)
TWIのプルアップ抵抗のMin.〜Max.の計算式が記載してあります。
相手側デバイスの条件もANDして(相手がAVRでない場合には)
指定された範囲内で環境(ノイズレベルなど)を考えて低めに決めればよいと思う。

プルアップ抵抗が適切で、クロック数100KHz、長さ7cm、実験室レベル程度で
I2Cが誤動作するなら、何か他に原因があるのでは。
686774ワット発電中さん:2013/09/08(日) 07:53:41.59 ID:iOp+o3hM
>>675
> シールド的意味合いでガードというなら鉛直面むき出しで意味ないですよ。
> 何でこんなに食いつくのか・・・それさんざん実験したんだもんw

直列保護抵抗、入れ忘れただろ?
687774ワット発電中さん:2013/09/08(日) 07:59:47.81 ID:J1VxT5m6
何でも10kだな
っていうかもう、茶黒橙
688665:2013/09/08(日) 08:39:36.49 ID:qvVPGvkN
色々参考になります、  でもハードは素人で何となくしか理解出来ません

arduinoのセンサに付属のサンプルとか殆どプルアップの指示は無いんですよね、
石がAVRでもarduinoだとまた違うのかな?
まあ変な動きが出たらプルアップ入れてみます。
689774ワット発電中さん:2013/09/08(日) 08:44:47.87 ID:97YZDlAI
>>683
脳内乙
オシロで見りゃ乗るけど、ロジックに影響を与えるまでいかんよ
690774ワット発電中さん:2013/09/08(日) 09:05:25.49 ID:3ZiztwSW
>>683
I2Cは、差動信号じゃないのに何故捻る?
691774ワット発電中さん:2013/09/08(日) 09:33:38.76 ID:QQb9bPp6
>>689
10kΩって、結構ローインピーダンスだよな
692774ワット発電中さん:2013/09/08(日) 09:51:57.38 ID:iH4teDze
お、寝てる間に伸びてますね。

>>686
いやいや、空間のイズの乗り方の実験の話だからダンパー云々はまた別。
ちなみにその抵抗でかくしていって、どんなメリットデメリット出るかの実験もしましたよ。

>>688
いやだから、マスター側でプルアップしておくのが暗黙的当たり前なことなので、
スレーブであるセンサ類には説明が無いんです。変だったらじゃ無くて絶対に入れなくちゃいけません。

>>689
実験して10kがNGだったのは外来ノイズ食らったからなんです。
まぁ、パターン長が20cmくらいあってデバイスも3個あったからなんですが・・・
インパルスなめちゃいかんですよ。
私はシンク電流2mAくらいで2.2kにしてます。消費電流気にしない使い方なので。

>>683
LVDSじゃなくてもリターングランドとよじるのはやることですよ。
693774ワット発電中さん:2013/09/08(日) 10:59:24.18 ID:N/gqpvuq
>>684
ケーブルだけ売っててもな。圧接コネクタがないと思うが?フラットケーブル
用コネクタ自体だって、インピーダンス整合されていないだろうに。

導波管効果云々と言うなら、パターンは一筆書き、スタブ配線禁止、プル
アップは終端効果で、レシーバ側の直近に置くくらいは当然だよな。

感覚的にハイインピーダンスは数百kΩ以上かなぁ。パターンを指で触れたら
誤作動するかどうかのレベル。

高周波成分に対して減衰効果のあるフェライトビーズ等を入れるならともかく、
5Vへの短絡でも最大で0.5mAしか流れない線路に、百Ωそこそこのダンピング
抵抗入れる効果って何よ?

下手にシリーズ抵抗入れると、信号の立ち上がりだけでなく、立ち下がりも
鈍ってしまう罠。浮遊容量と低消費電流を両立させるなら、抵抗による
プルアップではなく、定電流回路でアクティブ終端するしかないな。

SOT23パッケージで2回路入りのアクティブ終端とかあればいいけど。

大昔、客先指定のピン並びでGNDペアになっていないフラットケーブルで
4.77MHzのISAバスを60cmくらい引き出したことがあるけど、そこそこ動い
ていたな。

> I2Cは、差動信号じゃないのに何故捻る?

真空管のヒータ配線だってハム防止に捻るけど、あれは差動だからなのか?
694774ワット発電中さん:2013/09/08(日) 11:30:06.24 ID:u5L6LXAk
いや、あれはふつーに差動だろw
695774ワット発電中さん:2013/09/08(日) 11:56:00.14 ID:J1VxT5m6
I2Cは差動じゃないよ
SCLはクロックだ
696774ワット発電中さん:2013/09/08(日) 12:41:59.90 ID:l6pdK48Z
差動じゃなかったらグランドとツイストにするだろ
697774ワット発電中さん:2013/09/08(日) 13:45:47.54 ID:iSNZP68o
>>真空管のヒーター配線
信号線とリターン線の2本のケーブルの特性インピーダンスが同じで、
電流の方向が逆なら差動信号だと思う。
698774ワット発電中さん:2013/09/08(日) 17:54:30.88 ID:qvVPGvkN
>>692
> スレーブであるセンサ類には説明が無いんです。変だったらじゃ無くて絶対に入れなくちゃいけません。

自分はプログラムはある程度組めるけどハードは素人です、
で色ん配線サンプルを身ながらつなげてるのですが、ほぼプルアップの指示は有りません。
例えば↓以下を見てください。
https://www.google.co.jp/search?q=arduino+bmp085&newwindow=1&rlz=1C1CHMI_jaJP304JP306&tbm=isch&tbo=u&source=univ&sa=X&ei=xTosUoP3BMaWkgX1nIGoDQ&ved=0CC4QsAQ&biw=1385&bih=904
699774ワット発電中さん:2013/09/08(日) 18:41:30.93 ID:QQb9bPp6
どれを使うのか知らないけど、回路図付いて来るから見ればいいだろ。
https://www.sparkfun.com/products/retired/9694
700774ワット発電中さん:2013/09/08(日) 19:00:43.92 ID:iH4teDze
うわ〜センサ側に問答無用でプルアップ入ってるんだ。
バスって概念無視の1個接続前提なんですね。
ホビー界の常識知らなかった・・・・ごめんなさい・・・・
701774ワット発電中さん:2013/09/08(日) 19:56:25.24 ID:tDTa5Uuv
たとえばBMP085 Breakoutってのはその基板にプルアップ抵抗が乗ってるね
702774ワット発電中さん:2013/09/08(日) 19:57:04.78 ID:tDTa5Uuv
まあおもちゃですから^^
703774ワット発電中さん:2013/09/08(日) 20:58:51.21 ID:J1VxT5m6
親切で乗せてあるんだよ
嫌ならこんなの簡単に外せるし
704774ワット発電中さん:2013/09/08(日) 21:01:44.52 ID:QQb9bPp6
>>700
I2Cはマルチマスタもできるからマスター側に入れるってのも厳密には正しくない
705774ワット発電中さん:2013/09/08(日) 21:11:50.79 ID:ULGtwZO6
>>693
とてもおもろいです(煽りじゃないっす)
途中の話題飛ばします、まず「考えうること」してから
ぼくもうむむ(選択)・・・って感じです。

そんなことはともかくケーブルパラシングル4.MHzとかすげえww
706774ワット発電中さん:2013/09/08(日) 23:23:19.24 ID:s/jQlZE7
>>700
別に複数個所でプルアップしても問題は無い。
707774ワット発電中さん:2013/09/08(日) 23:30:06.48 ID:AmTZZlP3
>>700
必要に応じて外せる仕様ってのには頭が回らないのね
708774ワット発電中さん:2013/09/09(月) 00:22:07.94 ID:Oh6AS6S+
>>707
余分なコストがかかるからね。
709774ワット発電中さん:2013/09/09(月) 00:46:26.94 ID:pz3QDupb
おもちゃならせいぜい2個くらいまでしか繋がないからって割り切りなんだろうな。
そして10個くらい繋いだ奴が動かないとか騒ぐんですね。
AVRなら合成470Ωくらいでも動いちゃうか。
710774ワット発電中さん:2013/09/09(月) 00:47:12.32 ID:pxKA2leo
>>708
チップ抵抗二個のコストを気にするような
量産品なら、こんな汎用モジュールなんか
積極的に使わないし、仮にどうしても使う
なら、抵抗を実装してない特別仕様にする
だろ。
711774ワット発電中さん:2013/09/09(月) 05:31:17.92 ID:OnYlPFGC
>>705
力業でなんとかしてきた、老人のたわごとに感動してどうする?w
712774ワット発電中さん:2013/09/09(月) 06:52:37.18 ID:yJ2XXQAP
>>710
コストと聞いて部品代しか思い付かないのね。
713774ワット発電中さん:2013/09/09(月) 06:59:49.13 ID:Q7CF1uf0
>>700
良い機会だから、バス(1本のケーブルに複数の入出力を接続する)とか
スリーステート出力とか、オープンコレクタ(オープンドレイン)出力とか
チップセレクトとか、ワイアードオアとかについて勉強したら?
意味が理解出来ていないと知識として残らないよ。
714774ワット発電中さん:2013/09/09(月) 08:26:21.85 ID:kD+hlbax
ttps://www.sparkfun.com/products/11282
>
> We've made some minor hardware changes this time around to address some suggestions from the comment
> section including the addition of a solder jumper to disable the I2C pull-ups.

ちゃんと対策済みだ。
最後まで説明を読まないで使おうとするから悪い。

>>712
コストを気にするような場面なら、こんなモジュール使わずに
チップを直接実装するに決まってるだろ。バカなのか?
715774ワット発電中さん:2013/09/09(月) 11:46:00.12 ID:/5WXyjmQ
>>710
書いてる意味がわからねぇけど、チップ抵抗2個が
最初から付いてるから、線で繋ぐだけでOKになってんじゃねぇのかい?
716774ワット発電中さん:2013/09/09(月) 19:03:59.40 ID:TJWKpgPu
たかがプルアッブ抵抗で、これだけ盛上がるおまえらって一体…
717774ワット発電中さん:2013/09/09(月) 19:44:27.97 ID:JCEZssgV
DIPな1284、げと。在庫限り品の箱の中で発掘。
718774ワット発電中さん:2013/09/09(月) 19:47:44.63 ID:WYJCm0nD
1284はFatfsを試すときほんと役に立った長いファイル名も試せるし
試しただけでおわったけど
719774ワット発電中さん:2013/09/09(月) 21:21:31.56 ID:oqpebfvC
>>714
>>712 の指摘、全然理解できてないんだ (w
お前の知ってるコストあげてみなよ。
720774ワット発電中さん:2013/09/09(月) 23:44:46.62 ID:hqRXmQaa
最近名古屋にできたな
721774ワット発電中さん:2013/09/09(月) 23:59:34.94 ID:oBiWlSdb
>>719
くやしいのぉw
722774ワット発電中さん:2013/09/10(火) 00:48:34.53 ID:Tw9fpNnA
>>711
ISAよく知らないし当時の環境・状況(I/O電圧とかブリッジバッファらしいのなし)
想像でしかないですが直叩きに近い感じだったのかな?
でケーブルとかすぐ信号貼りついちゃうwwでバス通すとかwww思て…

前述の話題からそれ出したのってそんな感じからと思ったんです
「整合」とか「減衰」とか表現や、「シリーズ」・「終端」とか話題
I2Cて「非透過・共有型」のようなものでしょ的な延長上からかなって

勝手な想像ですし、自分でも「そもそも」とか忘れることが多くて
なんかよくわかんないけど刺激になって満足したのでレス結構です

おわり
723774ワット発電中さん:2013/09/10(火) 04:13:19.87 ID:Z/8Z0AVQ
>>722
> なんかよくわかんないけど刺激になって満足した
ではその満足を、「な〜んだ」に変えてやろう。

>>693
> 大昔、客先指定のピン並びでGNDペアになっていないフラットケーブルで
> 4.77MHzのISAバスを60cmくらい引き出したことがあるけど、そこそこ動い
> ていたな。
先人が27年前にIDE(PATA)でやった事を今頃ドヤ顔されても、「おまえ、アホだろう?」としか思えないw

>>722
補足しておく。
古いHDDにIDEってのがある。これは今のSATAの元であるPATAの原型。
さてこのIDE、PCから見ると何故かHDDがレジスタとして見える仕様。
PCに接続するデバイスの中で、かなり珍しい仕様になっている。

何故か? 実はIDEの信号はISAバスそのもの。(ボード上のコントローラをHDD側に統合した仕様)
ケーブルの先にあるレジスタが見える仕様なのはこの為。

そんな訳でISAバスを延ばす事なぞ、珍しくもなんともないのさ。
724774ワット発電中さん:2013/09/10(火) 06:42:49.27 ID:Tpt62Z7e
>>721
コストについて聞かれて、なにも言い返せずに「くやしいのう」とか、笑える

ひょっとして、自分に言ってるのか? (w
725774ワット発電中さん:2013/09/10(火) 06:48:04.56 ID:sk6Mw6/2
>>723
>そんな訳でISAバスを延ばす事なぞ、珍しくもなんともないのさ。

ドヤ顔して書いてたのに?
726774ワット発電中さん:2013/09/10(火) 07:21:37.46 ID:SFNaytDX
>>723
転送速度 最大3.3MHz ケーブル長最大45cm
727774ワット発電中さん:2013/09/10(火) 08:18:25.71 ID:rX7FBDW/
夏休みも終わったってのに・・・
これって、特定モジュールについて聞かれたのに、プルアップについてドヤ顔で講釈たれてたら
「そのモジュール、プルアップ抵抗実装してるし」で赤っ恥。「こんなオモチャは・・・」とか
「コストが・・・」とか言い出す始末。(そもそも、自分でオモチャって言ってる時点でコスト度外視だろうに)

まぁ、なんだ・・・
聞くほうも答えるほうも、データシートぐらいちゃんと読んでからにした方が恥さらしにならなくて良いとおもうぞ
728774ワット発電中さん:2013/09/10(火) 09:34:56.30 ID:2bgYsWSM
でもデーターシート読まなくても・知らなくても適当なツールがサンデープログラマーレベルで出来ちゃうことに
arduinoの意味があると思うんだ、つかデーターシートとかきちんと読む人なんかは
そもそもarduinoが流行る前に他のPICとかでバシバシ作ってるんじゃないかな?
いい加減でもそれなりに動くのは凄く貴重で重要だと思う。
729774ワット発電中さん:2013/09/10(火) 09:42:43.95 ID:uH8y/qqE
まあ、ここはArduinoスレじゃないし
730774ワット発電中さん:2013/09/10(火) 11:05:59.62 ID:h+nqU/Yx
データシート読まないやつが迷い込んでくる所だろココ
それに質問時点で使うモジュール言ってれば一瞬で終わった流れだったな
情報を何も出さずに質問するやつ多いよね
まあ平常運転だ
731774ワット発電中さん:2013/09/10(火) 11:44:40.46 ID:EzbFYRMu
質問も解答もここではよくあるパターンです
論争もこんな所で点火するのかと驚くがその後の展開はいつも通り
当人は必死だろうけどはたから見てるとその必死ぶりにニヤニヤする
732774ワット発電中さん:2013/09/10(火) 12:07:30.83 ID:Tw9fpNnA
初心者スレとかわざと出さない奴いるから気をつけろ!

始末書書くのにいい感じの言い訳浮かばなくて
大量のレスから拾ってコピペし合体・文章完成させるとかいるらしいぞ
733774ワット発電中さん:2013/09/10(火) 12:14:32.13 ID:EzbFYRMu
しかし何故データシート読まないのかな?
俺はデータシート読まないと不安で先に進めない
734774ワット発電中さん:2013/09/10(火) 12:20:14.17 ID:uqSmPb5Z
データシートというものの存在を知らないから
735774ワット発電中さん:2013/09/10(火) 12:20:31.36 ID:2bgYsWSM
>>729
> まあ、ここはArduinoスレじゃないし
そっか、
俺みたいなハード素人だとついついAVR≒arduinoって思いがちなんだけど大きな差があるのかな?
自分は簡単なものはarduinoボードで実験して石とセンサ類を基盤に移して使用、
あとtinyとかはAVRstudioで簡単なプログラム作って同様に石単体で使用。

arduino=簡易的なAVR開発環境だと思いこんでた。
736774ワット発電中さん:2013/09/10(火) 12:46:11.45 ID:aBjDSQKo
>>732
それ、おまえだろ?w
737774ワット発電中さん:2013/09/10(火) 13:28:34.52 ID:h+nqU/Yx
arduinoってのはスケッチまで含んだ環境のことだからなあ
AVRstudio使えちゃったら別の環境まで覚える気ない
arduinoのボードを流用することはあるけどね

VC使いがVBを覚えようとするかどうかってな例えであってるか?
738774ワット発電中さん:2013/09/10(火) 21:03:21.31 ID:1o8YYlIQ
>>737
今はVBが出来れば組み込みアプリが書ける時代さ。
あくまでもアブリ限定で、リアルタイム性が要求されないトコってな条件付きだけどw
739774ワット発電中さん:2013/09/11(水) 00:06:06.09 ID:0+WADWv+
ブラックなド玄人がいい加減なこと書いているなぁ。 素人は煙に巻くこと
はできても、表面的な知識だけで実務経験がないのが丸わかり。

> さてこのIDE、PCから見ると何故かHDDがレジスタとして見える仕様。

フロッピーだって、SCSIだって、およそ全てのバスの先にあるものは、プロ
グラムから見たらI/Oレジスタなわけだが? 単に信号を端折ったx86バスを
ISAだと言い張るなら、Compact Flashも、PCMCIAもみな同じ。

ISAバスもオリジナルのPCとXTは4.77MHzだが、PC/ATは6MHz、XT/286は8MHz
だったはず。 COMPAQの386マシンだったかが、16MHzにして動かないボードが
続出した。 各社てんでばらばらな仕様の互換機が販売され、ISAバスの
仕様が標準化されたのは、それより後の話。

IDEが延長できるのは、信号線のうち半分(コネクタの片列)が全てGNDで、
しかも電源は別コネクタから供給していたから。 それとISAバスのI/O
サイクルには、1ウェイト入っていたのでタイミング的には、PC98のCバス
よりも遅かった。 当然、バスにはバッファも入っている。

もともと、IBM-PC/XTで採用されていたHDDインターフェースは、当時から
ドライブとはフラットケーブルは使われていたが、ST-506と呼ばれるFDD
インターフェースに近い信号仕様で、Western Digital製のコントローラ
は、ISAの拡張ボード側に載っていた。

後に、COMPAQがHDDコントローラをHDD側に移して、コントローラに必要な
信号線のみを残して、40PコネクタにまとめたのがIDE。 この時点では
HDCのレジスタ仕様は、ST-506と同じ。

http://ja.wikipedia.org/wiki/ST-506

ちなみに、ISAバスの延長を作ったのは、25年以上も前の話で、基板も当時は
まだ当たり前の手張りアートワークの両面スルーな。

その数年後に、IBM製PS2向けにMicro ChannelバスをISAに変換して外付け
拡張ボックスを繋いだこともあったな。Chips & Technologies製のバス
コントローラをPLCCソケットでMicro Channelのユニバーサル基板に手配線。
740774ワット発電中さん:2013/09/11(水) 00:23:51.74 ID:FW823wyD
Arduinoは、IDEが劣化版のEclipseもどきなだけ、あらかじめ用意された
プリプロセッサで、ソースからプロトタイプ宣言を自動生成することで
ヘッダファイルを書かなくてよくて、フレームワークがmain()を隠蔽
しているだけで、言語としてはC++だぞ。コンパイラやリンカ本体は、
AVR-GCCをそっくりそのまま使っているし、AVR独自のヘッダファイルも
そのまま使える。

ただ、あれで業務に使えるというか、系統的にハードやソフトの
知識が得られるかと言えば、かなり疑問。 本来、あれは小学生や
せいぜい中学生くらい迄の子供に、プログラムに興味を持たせさせる
ための教材だと思う。

あと、OLEとかでExcelやInternet Explorerを制御するようなコード
を書く場合は、VC++も、VBも、EXCELマクロ(VBA)も、C#(.NET)も大差
ない。

ただ、VBが嫌なのは、標準コントロールがWindowsのコモンコントロール
ではないので、挙動が微妙に違うし、小回りが効かない。DelphiやC++
Builderも同様。
741774ワット発電中さん:2013/09/11(水) 00:28:37.53 ID:UlmXTTas
ブラックなド玄人がいい加減なこと書いているなぁ。

>>739
> IDEが延長できるのは、信号線のうち半分(コネクタの片列)が全てGND

ttp://www.t13.org/documents/UploadedDocuments/project/d0791r4c-ATA-1.pdf
p.21
| HOST RESET 1 | ----- RESET- -------->| 1 |
| 2 | ----- Ground -------- | 2 |
| HOST DATA BUS BIT 7 3 |<----- DD7 ----------->| 3 |
| HOST DATA BUS BIT 8 4 |<----- DD8 ----------->| 4 |
| HOST DATA BUS BIT 6 5 |<----- DD6 ----------->| 5 |
| HOST DATA BUS BIT 9 6 |<----- DD9 ----------->| 6 |
| HOST DATA BUS BIT 5 7 |<----- DD5 ----------->| 7 |
| HOST DATA BUS BIT 10 8 |<----- DD10 ---------->| 8 |
| HOST DATA BUS BIT 4 9 |<----- DD4 ----------->| 9 |
| HOST DATA BUS BIT 11 10 |<----- DD11 ---------->| 10 |
| HOST DATA BUS BIT 3 11 |<----- DD3 ----------->| 11 |
| HOST DATA BUS BIT 12 12 |<----- DD12 ---------->| 12 |
| HOST DATA BUS BIT 2 13 |<----- DD2 ----------->| 13 |
| HOST DATA BUS BIT 13 14 |<----- DD13 ---------->| 14 |
| HOST DATA BUS BIT 1 15 |<----- DD1 ----------->| 15 |
| HOST DATA BUS BIT 14 16 |<----- DD14 ---------->| 16 |
| HOST DATA BUS BIT 0 17 |<----- DD0 ----------->| 17 |
| HOST DATA BUS BIT 15 18 |<----- DD15 ---------->| 18 |
| 19 | ----- Ground -------- | 19 |
| 20 | ----- (keypin) ------ | 20 |
以下略
742774ワット発電中さん:2013/09/11(水) 00:33:36.56 ID:UlmXTTas
もう一つ言えば、

>>664
> IDEも規格拡張で間にGNDいれた80芯になりましたね。
と、>>664さんが40ピンでは片側GNDでは無いよと、折角教えてくれていたのにさ
( ´_ゝ`)フッ
743774ワット発電中さん:2013/09/11(水) 00:56:43.61 ID:UlmXTTas
>>693
> ケーブルだけ売っててもな。圧接コネクタがないと思うが?
「圧着端子」でggrks

> フラットケーブル用コネクタ自体だって、インピーダンス整合されていないだろうに。
世の中、整合しているコネクタがどれだけあると思ってるの?
SMAとて、俺に言わせれば整合してないな。

> プルアップは終端効果で、レシーバ側の直近に置くくらいは当然だよな。
複数のデバイスがぶら下がるI2Cやバスで、それでマッチング出来ると思ってるの?
おまえ、DDR1/2/3 SDRAMの設計したことないだろ?

> 感覚的にハイインピーダンスは数百kΩ以上かなぁ。
そんな感覚で設計されたらたまんないねぇ ( ´_ゝ`)フッ

> 5Vへの短絡でも最大で0.5mAしか流れない線路に、百Ωそこそこのダンピング
> 抵抗入れる効果って何よ?
おまえ、サージが判ってないだろ?

> 定電流回路でアクティブ終端するしかないな。
おまえの頭の中には終端しかない訳?
なるほど、ISAレベルでドヤ顔する訳だ ( ´_ゝ`)フッ

> 4.77MHzのISAバスを60cmくらい引き出したことがあるけど、そこそこ動い
> ていたな。
PCIを引き出した事がある俺に言わせれば、それ、子供騙し。
…ってな事は>>722に書いたとおり。

もっとも、PCIは波長短縮率から60cmも引き出せないけどね。
(60cmも延ばすと、タイミングが完全にPCIの仕様を満たせなくなる)
(遅延時間を計算すれば判るさ)

あ〜ぁ、折角スルーしてあげてたのに。鳴かねば撃たれなかったのにさ… ( ´_ゝ`)フッ
744774ワット発電中さん:2013/09/11(水) 01:17:57.83 ID:FW823wyD
リストラされて夜も眠れない自宅警備かね?

そういや、最初のIDEはGNDじゃなかったっけか。 シングルエンドSCSIと
記憶がゴッチャだったかもな。年には勝てんな。

最近というか、ここ何年もハードのドカタ仕事なんてしていないしさぁ。

PCIをゲートあたり遅延25nsレベルのLS-TTLだけで引き出したというなら
話は別だが、高速で高集積度のC-MOSデバイスを使えば、どうとでもなる
わな。

DDRにしたって、昔と違って規格の段階から実装を含めて設計されているし、
デバイスの特性も各社揃っているし、相対的なタイミングマージンも大きい。
それなりのCADを使えば等長配線もインピーダンス計算もしてくれる。

チミの自慢のスキルなんぞ、もはやドカタ仕事になっちゃったわけよ。

ぢゃ、明日(というか今日)も仕事なんでこれで。
745774ワット発電中さん:2013/09/11(水) 01:28:38.58 ID:hpwDEY/b
>>739
これは恥ずかしいw
知らないならでしゃばらなきゃ良いのに…
あと、wikipediaはソースとして使えないから…
746774ワット発電中さん:2013/09/11(水) 01:34:06.62 ID:hpwDEY/b
>>744
> PCIをゲートあたり遅延25nsレベルのLS-TTLだけで引き出したというなら
> 話は別だが、高速で高集積度のC-MOSデバイスを使えば、どうとでもなる
> わな

なりません。
747774ワット発電中さん:2013/09/11(水) 01:37:54.07 ID:k5JXVmFU
>>743
ちょww
お風呂入って参戦しよ思てたのにwww
>>722おれだからww

PCI食ってるのアドレスデコードだろww
別の突破あるけど言えねえww


おれ言いたかったのは「ちょっとこの回路みて」って言われた
外注に出したものらしく年配の人だと・・・
数個のですくりでなんで動くのかわからず組んでみた

「なるほどwwwすげえwww」

汎用性・入手良し・コストもおk
でICに頼る設計に反省、おれやってんのお絵かきだわと…
昔もくそも経験ある人は手数多いわって尊敬しただけ

んで基板もケーブルも全部リターンパスだろ
パラってりゃチップゲート同士いっせーのせでそっち合わせ
80芯で多すぎとか一部言われてたのはそれ
いい・わるいじゃないの、信号になの?電源になの?
ごっちゃにこもんってた人いたから

ああもうwwお風呂wwww
748774ワット発電中さん:2013/09/11(水) 02:45:30.30 ID:k5JXVmFU
おわったの?なんでもこいや!
初心者スレ行ってすげえ人に教わってくるっ!!
749774ワット発電中さん:2013/09/11(水) 02:57:09.03 ID:k5JXVmFU
言葉悪いよね、整合とかコントロールとか
「なんのため目的」と「値いくつ」って別だと思うの
750774ワット発電中さん:2013/09/11(水) 07:08:53.08 ID:MVv96XAM
オハヨーゴザイマス!
昨夜は風呂に入れましたか?
中にはイライラして眠れなかった人がいるかもしれないけど、
チャント起きれましたたか?
今日も一日ガンバッテください。
ところで、出来ればPCIやISA、SCSIやIDEではなくて
AVRの話が聞きたいです。
よろしくお願いします。
751774ワット発電中さん:2013/09/11(水) 08:09:27.77 ID:qr/EIz+C
要約すると、『AVRだけではこの先暗いよ』と老人が言っている訳だが?
752774ワット発電中さん:2013/09/11(水) 08:19:58.10 ID:tY/hGhQL
>>744
> 高速で高集積度のC-MOSデバイスを使えば、
32bit 33MHz PCIってCPLDで組めるぼど簡易なバスなんだよな。
ロジック組んでピン間の遅延がそれだったら、実力で動きそうだ。

つまり、高速で高集積デバイスなんかイラネ
753774ワット発電中さん:2013/09/11(水) 08:44:40.84 ID:oOO6cgWh
爺さんは過去しかないから聞き流しや歩み寄りやスルーと言う概念が無い
754774ワット発電中さん:2013/09/11(水) 10:07:14.26 ID:W/XRRS6L
化石にしがみ付いての昔語りスレですかね?
755774ワット発電中さん:2013/09/11(水) 12:07:48.01 ID:neMb/GIw
>>741

>以下略
ってそこが大事なんじゃないの?
DIOW-とかDIOR-はグランドで挟まれてる。データバスは必要なタイミングに
確定すればいいわけで。
756774ワット発電中さん:2013/09/11(水) 19:13:10.30 ID:1TKVQbc4
>>755
そうだけど、ご老人のアルツの訂正目的だから勘弁してくれw

アルツは放置でAVRに戻ろうぜ。
一旦はスルーしたのに悪かった。すまん
757774ワット発電中さん:2013/09/12(木) 19:32:03.64 ID:Do0C/hdC
マルツがどうしたって?
758774ワット発電中さん:2013/09/12(木) 21:15:49.70 ID:n0zbGmvn
マルツパーツ館 検索結果

AVR … 173件
xmega … 0件
attiny … 13件
atmega … 25件

こんなんでますたw
759774ワット発電中さん:2013/09/13(金) 20:55:14.79 ID:o3cOeKxY
tiny261/461/861にあるような高速タイマー持ってるmegaあれば、教えてください。
20pinじゃ足りないので。
760774ワット発電中さん:2013/09/13(金) 21:06:30.30 ID:NvxW3z6D
メーカーサイトにプロダクトファインダーあるよ
好み似合うやつ選びな
761774ワット発電中さん:2013/09/13(金) 21:26:10.22 ID:pr3GL7Wi
xmega が 仲魔にしたそうに こっちをみている
762774ワット発電中さん:2013/09/14(土) 00:55:57.55 ID:tqznagEv
パーツの産直: 秋月
パーツの八百屋: 千石
パーツのスーパー: マルツ
763774ワット発電中さん:2013/09/14(土) 01:13:43.86 ID:lRldg1t9
マルツはコンビニだろ…。
764774ワット発電中さん:2013/09/14(土) 09:02:59.13 ID:NDmNhYMn
共立のことも覚えてあげてください・・
765774ワット発電中さん:2013/09/14(土) 09:08:18.74 ID:Mxbj5Fm/
秋月は雑貨屋じゃね?
766774ワット発電中さん:2013/09/14(土) 13:16:19.19 ID:LLqWEOMm
雑貨屋って聞くと割高なイメージしかない
767774ワット発電中さん:2013/09/15(日) 06:10:45.20 ID:6t+63/PB
長文失礼します
スレチでしたらすいません!

パーツ屋で安く売られていた制御ICなどがついた6ピンで制御できる16×32のマトリクスLEDを買ったのでAVRで制御してみようと思っています。
それについて質問させていただきます。
ttp://blog.digit-parts.com/archives/51872590.html
PDFです↓
ttp://blog.digit-parts.com/pdf/dot32x16.pdf
モジュールとはいえ16×32のデータを保存してダイナミック制御までやってくれるわけではないようで
リアルタイムで自分でデータを送信してダイナミックで点灯させなければならないようです。

表示するデータは「SIN_1」「SIN_2」「SIN_3」の3bitをCLOCKでシリアルで送信します。
SIN_1は縦の16bit
SIN_2は横の32bitの左半分の16bit
SIN_3は横の32bitの右半分の16bit
に対応していて、CLOCKにパルスを送ってビットシフトして16回で一列のデータが送信できます。(3つともCLOCKは共通しています)
縦横が同時にビットシフトされるためパルスを送るごとに左下から右上に送信したデータが移動していきます。(左右の16×16を別々に見て)
なので基本的にSIN_1(縦)は16bitの内、Hになるのは1bitのみです。これを順にずらしていくことでダイナミック点灯します。

LATCH端子はHighのとき表示データを保持し、Lowのときは常に制御IC内部のデータを表示に反映します。ダイナミック制御なので
保持→次の列のデータをセット→反映、保持→次の列のデータをセット、のように多用すると思います。

ENABLE端子はHigh時に無条件に全LEDを消灯します。

このような仕様になっているので上から下に32個ずつダイナミック点灯していくプログラムを書いたのですがうまくいきません
どのような原因が考えられるでしょうか・・・?
768774ワット発電中さん:2013/09/15(日) 06:17:16.80 ID:6t+63/PB
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define CLOCK_ON PORTB = PORTB || 0b00000100 //CLOCKピンH
#define CLOCK_OFF PORTB = PORTB && 0b11111011 //CLOCKピンL
#define ENABLE_OFF PORTB = PORTB || 0b00100000 //表示ON
#define ENABLE_ON PORTB = PORTB && 0b11011111 //表示OFF 無条件に全LEDをOFFに
#define LATCH_ON PORTB = PORTB || 0b00010000 //制御IC内部のデータをマトリクスに表示する
#define LATCH_OFF PORTB = PORTB && 0b11101111 //表示状態保持、制御IC内部のデータを編集してもマトリクスの表示が変わらない
unsigned volatile long x[16];//試験用の表示するデータを格納
ISR(TIMER0_COMPA_vect){
       unsigned static char i = 0;//横何個目かをカウント
unsigned static char j = 0;//縦何列目かをカウント
       LATCH_ON;//保持モード(保持するのは表示の状態なので制御IC内部のデータは編集できる)
       if(j == 16)j = 0;//16列表示が終わったら一番上の列に戻る
       for(i = 0; i < 16; i++){
              PORTB = (PORTB && 0b11111101) || ((0b00000010 && (x[j] >> i)) << 1); //試験用データの0bit目〜15bit目をビットシフトして順番に送信
              PORTB = (PORTB && 0b11111011) || ((0b00000100 && (x[j] >> (i + 16))) << 2); //試験用データの16bit目〜32bit目をビットシフトして順番に送信
              //表示する列だけON
              if(i == j)PORTB = PORTB || 0b00000001;
              else PORTB = PORTB && 0b00000001;
//クロックパルス送信
              CLOCK_ON;
              CLOCK_OFF;
       }
       j++;//次の列に移動
              //データ更新後、保持モードに切り替え
       LATCH_ON;
       LATCH_ON;
}
int main(void)
{
        DDRB = 0b11111111; //PORTBを出力に設定
              //タイマー設定 約200msごとに割り込み
       TCCR0A = 0b00000010;
       TCCR0B = 0b00000101;
       OCR0A = 200;
       TIMSK0 = 0b00000010;
       sei();//割り込み許可
       char k;
       for(k = 0; k < 50; k ++){//内部、表示データをすべて0に初期化
        PORTB = 0b00111000;
        PORTB = 0b00110000;
        }

        ENABLE_ON;//表示ON

       //試験用の表示するデータ
      x[0] = 0b1111111111111111111111111111111;
      x[1] = 0b1100000000000011100000000000001;
                            〜
        x[14] = 0b1000000000000011000000000000011;
        x[15] = 0b1111111111111111111111111111111;
  
        while(1){
   ;
        }
}
 
  
769774ワット発電中さん:2013/09/15(日) 06:30:46.02 ID:3JBE/qlh
>>767
> プログラムを書いたのですがうまくいきません
何がどう「うまくいかない」のか、コンパイルエラーなのか、焼けないのか、少し動作するけど期待通りの結果でないとか、現象をキチっと書けよ。
まさかソース中に全角空白を使っているとかでは無いよな?
770774ワット発電中さん:2013/09/15(日) 07:01:32.42 ID:6t+63/PB
>>769
申し訳ありません

コンパイル、書き込みはできますがLEDはひとつも点灯しません
ICSPで書き込みしてるためライターとモジュールの端子がかぶっていて、書き込みが終わるとLEDがすべて点灯してしまうので
最初の初期化するfor分を入れています。
その初期化には成功していて、LEDはちゃんとすべて消灯できているんですが
その後のタイマ割り込みによるデータ送信には失敗してるようでLEDは消灯したままです。

プログラムメンに問題があると思われます。
771774ワット発電中さん:2013/09/15(日) 07:26:16.97 ID:70JGwkMD
論理演算子とビット演算子を混同してないかい

PORTB = PORTB || 0b00000100
これだとPORTBに入る値はtrueかfalseになっちゃう
772774ワット発電中さん:2013/09/15(日) 08:06:06.03 ID:6j43me0V
>>771
Cの初心者だと結構嵌るよね&&とかも
まぁ PORTB = PORTB | 0b00000100だったら、普通
PORTB |= (1<<2) か
PORTB |= _BV(2)
って書くかな?
773774ワット発電中さん:2013/09/15(日) 08:14:17.22 ID:6t+63/PB
>>771
ありがとうございます。
やってみたところ表示が正しくありませんがLEDが点灯しました!
たぶんあとはデータの演算をミスってるだけだと思うので自力で何とかしようと思います。
>>772
演算子をまだおぼえてなくてバカ正直な書き方になってしまします・・・
書き方参考にさせていただきます。
774774ワット発電中さん:2013/09/15(日) 09:31:11.20 ID:ajU8vIzD
>>722
if () の中を ( a = b) とかって書く間違いは多いけど
逆は珍しいな。
775774ワット発電中さん:2013/09/15(日) 10:08:38.03 ID:OeOcP5cD
>>771 falseにはならんだろ。
776774ワット発電中さん:2013/09/15(日) 10:25:20.39 ID:CVR1FHdM
#define FALSE 0
#define TRUE (!FALSE)
のWinAVR定義だと全部Highになっちまうのかな?
#define true 1
なんて定義もたまにあるが・・・
777774ワット発電中さん:2013/09/15(日) 12:55:15.33 ID:y3GiWOgT
#define の行で = と書いてるのもおかしい
変数の代入の書き方をするとこではないよ
778774ワット発電中さん:2013/09/15(日) 12:57:24.83 ID:nRDgezYU
defineをマクロとして使ってるだけだろ
よくやる
779774ワット発電中さん:2013/09/15(日) 14:04:06.63 ID:y3GiWOgT
おお、スペースあったのか
見落としてたわスマン
780774ワット発電中さん:2013/09/15(日) 16:49:56.19 ID:3JBE/qlh
>>585
> ところで、当然ブツは通天閣型に作るんだよな?

これのことかw
mbed 通天閣
ttp://mbed.org/users/okini3939/notebook/tsutenkaku/
781774ワット発電中さん:2013/09/15(日) 19:24:40.23 ID:9FaJmwPt
>>780
盛大な技術力の無駄遣いワロタw
782774ワット発電中さん:2013/09/15(日) 22:29:30.54 ID:qJFlpDDp
AVRを勉強しようとATMEGA88-20PUを買ってきたばかりなのですが、入り口と思われるところで行き詰ってます
7seg LEDで数字を点灯させたいのですが、下記のプログラム(0を点灯)を書き込むと点滅してしまいます

while(1){PORTD = 0b00111111;}

しかし、while(1){PORTD = 0b00000001;} のように1segのみだと点滅せずに点灯します。
2つ以上のsegのポートをhighにすると点滅する(2つ以上いくつでも見た目の点滅速度に変化はありません)
ようなのですが、原因がさっぱりです。

原因もしくは原因を探す手がかりを教えて頂けないでしょうか
783774ワット発電中さん:2013/09/15(日) 22:41:42.04 ID:OeOcP5cD
LEDにつける抵抗を各1k程度に増やしてみてください。
784774ワット発電中さん:2013/09/15(日) 22:54:59.19 ID:OeSjtVic
オームの法則から勉強したほうがいいな
785774ワット発電中さん:2013/09/15(日) 22:58:49.77 ID:S2F9NxtQ
電流流しすぎでリセットしちゃってるって事かな?
786774ワット発電中さん:2013/09/16(月) 00:02:13.69 ID:cBRLH1El
電源なんだろねw
DDRDで出力にしてんのかね
つか初めは2313で何個か飛ばしたほうが財布は痛くないが・・w
787774ワット発電中さん:2013/09/16(月) 00:10:15.64 ID:p4v9v5zc
何オームの抵抗使ってるの?
788774ワット発電中さん:2013/09/16(月) 00:15:47.14 ID:rHq7jGWz
ダイナミック点灯にしようず
789774ワット発電中さん:2013/09/16(月) 00:50:51.06 ID:eF2+etf/
VCC GND間に 0.1μF のコンデンサいれれば解決しそうだが
790774ワット発電中さん:2013/09/16(月) 01:02:29.81 ID:y1NQ/+vJ
>>785
俺もそう思う。
そのwhileする前に時間待ちのループを入れて点滅周期が変わればリセット確定
791774ワット発電中さん:2013/09/16(月) 01:32:55.04 ID:edJDtZwi
ATmega88の絶対定格(1ポートあたり40mA, 前部合わせて200mA以下)は越えてないよね?
792774ワット発電中さん:2013/09/16(月) 02:27:38.22 ID:7zh222er
>>776
TRUEはC言語的には非FALSEと決まっとる。値で見ると処理系によって-1の場合もあれば1の場合もある。最近はほぼ-1だが。
!FALSEにせずに勝手に1固定でdefineするやつは信じちゃいかん。色々バグってる事が多い。無知すぎる。
793774ワット発電中さん:2013/09/16(月) 02:46:27.65 ID:edJDtZwi
>>792
Cの規格書読んだことあるか?
794774ワット発電中さん:2013/09/16(月) 02:48:02.98 ID:aRUH9a4O
>>792
C99規格とかJIS何とかではヘッダでtrueは1に定義されている。
linuxやBSDでも1。
-1になる処理系は知らない
795774ワット発電中さん:2013/09/16(月) 02:55:05.74 ID:edJDtZwi
>>794
~=!な人には-1が自然なんだろうね
796782:2013/09/16(月) 06:20:25.31 ID:tviCnOPE
ありがとうございます。
電源は9V電池から作った5Vを供給、各LEDには1k抵抗をつけています。
DDRDで出力にしています。

しかし、絶対定格を意識せず電流量は調べていませんでした。
ちゃんと計算、計測して、抵抗・コンデンサをいじったり、while前のループを試してみます。
797774ワット発電中さん:2013/09/16(月) 09:54:43.75 ID:PDeEd20V
7セグコモンはトランジスタかまさないと、avrの電流定格は簡単に越えるんじゃなかろーか。
燃えはしないだろうけど、ポートが潰れるな。
798774ワット発電中さん:2013/09/16(月) 10:22:47.10 ID:7rvDW1Wp
>>792
true と判断する値 ⇒ 0 以外

true と判断した値 ⇒ 1

の区別がついてないだろ
799774ワット発電中さん:2013/09/16(月) 10:30:04.77 ID:ZLenGVPW
>>792
極論すれば、ニモニックで確認すべき、というなら理解。
800774ワット発電中さん:2013/09/16(月) 10:48:37.86 ID:pr3JtVWr
>>796
まさかツェナーダイオードで5V作ってるとかじゃないよね。
801774ワット発電中さん:2013/09/16(月) 11:02:23.06 ID:yGwXf+tm
>>788
去年リハビリで電子工作を始めたころに
4桁7セグをスタティック点灯させようと
秋月の「高輝度」7セグ(カソードコモン)を4個と
8ビットシフトレジスタNJU3711を4個を
ユニバーサル基板上につなげて
attiny2313で制御してみた
7セグの制限抵抗は、何も考えずに
昔発光ダイオードを使ってた経験から200Ωにしていた

1桁だけだと無事点灯して数値も表示出来た
2桁を回路的に接続すると点灯していたけどなんか暗い
3桁点灯するとマイコンがバグりはじめ
4桁だと全体にうす暗く、やがて電源が落ちた
電源の7805につけた放熱器が触れないほど熱くなっていた

7セグのVfが1.8Vとして、200Ωだと、(5-1.8)/200=16mA
8個×4桁で512mA、確かにattiny2313の電流供給能力を超えている

試してみると、この高輝度7セグは1kΩでも十分光るので
制限抵抗を1kΩに変えたら正常になった
802774ワット発電中さん:2013/09/16(月) 11:33:28.88 ID:yGwXf+tm
>>794
小学生の頃に遊んでたMSX-BASICでは、Trueは-1だったよ
0がFalseなんだけど実際にやってみると

PRINT not(0)
-1
OK

大学の頃に使っていたQuickBASIC 4.5でも

print not(0)
-1
803774ワット発電中さん:2013/09/16(月) 11:34:24.06 ID:WEjV8L2g
>>801
LEDの電流はNJU3711に流れているだけで、マイコンには流れてないでしょ。
Tiny2313の制限ではなく、7805の熱制限。
804774ワット発電中さん:2013/09/16(月) 12:24:02.90 ID:7rvDW1Wp
>>802
C と Basic の違いぐらい理解しようよ...

あと、Basic の Not( ) はビット演算
805774ワット発電中さん:2013/09/16(月) 12:30:17.35 ID:9BTxiu9t
>>7セグの制限抵抗は、何も考えずに
過去に実績のある回路ならともかく、初めての回路なら何か考えた方がよい。

>>電源の7805につけた放熱器が触れないほど熱くなっていた
入力電圧と回路の消費電流を考える→レギュレータの発熱量を考える→放熱器を考える。

ギャンブルでは無くてリハビリの電子工作ならなら、
是非、考える習慣を身につけましょう。
806774ワット発電中さん:2013/09/16(月) 13:34:21.24 ID:ouMr2QoJ
レギュレータに放熱器つけずに焼いちゃうのはよくある話だよな
許容損失ってデータシート読んでも初心者には分かりにくい項目だし
807774ワット発電中さん:2013/09/16(月) 17:16:09.78 ID:forIVHg+
よろしい。ならばスーパー三端子だ!
808774ワット発電中さん:2013/09/16(月) 18:56:04.64 ID:Z1D2QbIS
~と!の違いを認識してないと&と&&あたりを誤用して嵌まるよな

>>806
シリーズレギュレータの損失って
(入力電圧ー出力電圧)×流している電流
これが全部熱になるから堪らん
しかも7805なんかは最低でも2V差をつけなきゃいけないから
電池4本じゃ足りないし・・・
(最近はLDOタイプしか使わんなぁ)
809774ワット発電中さん:2013/09/16(月) 20:28:37.59 ID:kBELPYzB
つ スイッチングレギュレータ
810774ワット発電中さん:2013/09/16(月) 20:37:37.26 ID:knPKPiaZ
>>809
アナログ回路が混じっていると
躊躇するんだよな
AVRは、スリープさせときゃ良いとして
電源からのノイズがシャレにならん
811774ワット発電中さん:2013/09/16(月) 22:53:06.37 ID:xTluWFmz
xmega使ってるひといますか?これのAD変換部です
シングル・差動、結果いまひとつで気になってます。
実質どうのという程でもないんですが…

うまく言えませんがそんな印象持った人います?
812774ワット発電中さん:2013/09/16(月) 23:18:06.36 ID:DiKYYiSh
>>767です。皆さん回答ありがとうございました。
おかげでダイナミック点灯で正しく表示することに成功したのですが、順送りが遅すぎて肉眼でも激しくちらつきます。
割り込み周期が遅いのかと思ったのですが、いくら短くしても変わりません・・・(極端に遅くすると普通に悪化します)
割り込み時の処理は

for(i = 0; i < 16; i++){
    PORTB = (PORTB & 0b11111011) | ((0b00000001 & (x[j] >> i)) << 2);//x[n]の左からj番目だけを抽出→PB3に代入
    PORTB = (PORTB & 0b11111101) | ((0b00000001 & (x[j] >> (i + 16))) << 1);//x[n]の左からj+16番目だけを抽出→PB2に代入
    if(i == j)PORTB = PORTB | 0b00000001;
    else PORTB = PORTB & 0b11111110;
    //クロックパルス送信
    CLOCK_ON;
    CLOCK_OFF;


(約1khzで割り込み)

このようなfor文を含んでるのですがこれが原因でしょうか?
x[0〜15]は32bitの変数です、8bitにかえてみたのですが変わりませんでした。
for文の繰り返す回数を減らしてみるとちらつきが収まりました。i < 10くらいから目立ちます。
ATTINY2313で内部1Mhzで動かしてます。単純な処理不足でしょうか?
ヒントお願いします。
813774ワット発電中さん:2013/09/16(月) 23:38:08.09 ID:g1gChlbM
>>813
>割り込み周期が遅いのかと思ったのですが、いくら短くしても変わりません・・・(極端に遅くすると普通に悪化します)

割り込み内部の処理が終わってないっぽいな。
1MHzだと1000サイクルしかない。
割り込みじゃないほかの処理も考えれば100サイクル以下が理想だろう。
814774ワット発電中さん:2013/09/16(月) 23:43:20.83 ID:ahLPMgzt
>>812
割り込みの中の処理が重た過ぎる気がする。
815774ワット発電中さん:2013/09/16(月) 23:47:55.40 ID:DiKYYiSh
>>813
ありがとうございます。やはり処理不足ですか・・・、できれば内部クロック周波数の変更はしたくないので・・・
プログラムに工夫が必要そうですね

といってもどうすればいいのだろう・・・

MEGA88で動かしてたときのコードをはってしまいました、「PORTB」ではなく「PORTD」でした。
816774ワット発電中さん:2013/09/16(月) 23:50:28.87 ID:470W6KNX
割り込み処理はフラグの上げ下げで
mainで処理実行はダメかな
817774ワット発電中さん:2013/09/17(火) 00:03:46.78 ID:ylTeV3VK
クロック数優先で直すと、こんな感じかな?

x[_] → x_h[_] (上位16bit) , x_l[_] (下位16bit)に分離しておく
----

c=0x80;
for(i = 0; i < 16; i++){
   //x[n]の左からj番目だけを抽出→PB3に代入
    if ( h_h[j] & c ) PORTB |=0b00000100 ;
    else PORTB &= 0b11111011;
   //x[n]の左からj+16番目だけを抽出→PB2に代入
    if ( h_h[j] & c ) PORTB |=0b00000010 ;
    else PORTB &= 0b11111101;
    c = c >>1;
    if(i == j)PORTB = PORTB | 0b00000001;
    else PORTB = PORTB & 0b11111110;
    //クロックパルス送信
    CLOCK_ON;
    CLOCK_OFF;
818774ワット発電中さん:2013/09/17(火) 00:04:55.33 ID:iiLA8UWT
>>811
xmegaのAD使いまくってるけど何がどうおかしい?
正常に使えてるよ。
オフセット校正ちゃんとしてる?
変換クロック速すぎて結果がボケてない?
819774ワット発電中さん:2013/09/17(火) 00:05:06.84 ID:9TnDYNFm
>>817
c=0x80; → c=0x8000;
820774ワット発電中さん:2013/09/17(火) 00:05:49.81 ID:a+Timqvk
>>814 ありがとうございます。

>>816
なるほど!ならそのままwhileにコピペで解決
かとおもいましたが
そもそも1khzの割り込みに間に合ってなくて、つねに処理してる状態なのでwhileに移したところで同じでした・・・
実用化する際は常に表示するデータは変化していてリアルタイムで処理するのは避けられませんし
クロックあげるほかないでしょうか?
821774ワット発電中さん:2013/09/17(火) 00:06:29.95 ID:2qc2xF7P
コンパイルされたアセンブルコード見ると分かるけど
本当にビット演算になってるんじゃないかな。
>>772 さんの書き方に変えた方がいい。

if(x[j] & 128) PORTB|=0b00000100;
else PORTB&=0b11111011;

ってベタ書きなら早いかも
822774ワット発電中さん:2013/09/17(火) 00:20:58.93 ID:iiLA8UWT
>>812
ちらつくのはラッチ信号ほったらかしてるからだろ
伝送中は前回の表示ラッチしておいて
伝送完了したらラッチパルス入れて表示更新すりゃいいじゃないか
823774ワット発電中さん:2013/09/17(火) 00:24:16.70 ID:iiLA8UWT
ああすまん、カラムもラッチ更新だから表示全体保持じゃないのか。
メンゴメンゴ
824774ワット発電中さん:2013/09/17(火) 00:25:57.95 ID:a+Timqvk
>>822
いや、表示は正しいのでそれはないと思います。肉眼で順送りが見えるので遅いだけかと
LATCHほったかすと表示自体がぐちゃぐちゃになります。
825774ワット発電中さん:2013/09/17(火) 00:33:35.90 ID:9rt15LXm
プログラムが一部だからわからないけど、割り込みの入口と出口に
何か出力をつないで、オシロで測れば割り込みにどれくらいかかってるか
わかると思う。でも、何かそれ以前のような気がする。
割り込みを使わないでテストパターンを表示してテストしてみた?
826774ワット発電中さん:2013/09/17(火) 00:40:17.88 ID:iiLA8UWT
最適化オプションも確認したほうがいいかもね。
-o3になってるかな?
827774ワット発電中さん:2013/09/17(火) 10:23:52.12 ID:8zC0vd6y
割り込み毎に1ラインずつの表示にしないと点灯時間が短すぎてチラついて見える
828774ワット発電中さん:2013/09/17(火) 18:46:02.34 ID:utugedLv
資料にはカラム・コモン同時って書いてあるけど
コモンにラッチが入ってないなら
ENABLE(H)LATCH(H)→カラムデータ送り→LATCH(L)→コモン送り→ENABLE(L)
で表示するんじゃないかな
あとx[]の格納方向を縦横変えたほうが効率的かもしれない
829774ワット発電中さん:2013/09/17(火) 20:03:15.14 ID:2qc2xF7P
データ構造を考えるのは重要だね
830774ワット発電中さん:2013/09/17(火) 21:44:18.54 ID:7XL0ceTd
以下はイディオムだからとっとと覚えよう。
REG |=(BIT<<1);
REG &=~(BIT<<1);
ビット演算は単ビットと複数ビットで命令と命令数が変わる。
1命令のつもりが複数になっている場合がある。
ハンドラ内でループで配列参照なんかするな。
ループは全部展開して配列のインデックスを即値で書くとほとんどの場合使用レジスタが減る。
.lss読む習慣を付けよう。
831774ワット発電中さん:2013/09/17(火) 21:45:45.65 ID:Fxo0YCeh
イディオムくらいちゃんと覚えようよ…
832774ワット発電中さん:2013/09/17(火) 21:53:51.38 ID:7XL0ceTd
2313のような非力マイコンで多少凝った事をやりたい場合はgccのABIを理解して
ハンドラをnakedのインラインアセンブラかアセンブラで書いた方がいい
833774ワット発電中さん:2013/09/17(火) 22:02:24.59 ID:7XL0ceTd
REG |=(1<<BIT);
REG &=~(1<<BIT);
おれはもうだめだ
後は任せた
834774ワット発電中さん:2013/09/17(火) 22:13:24.78 ID:iiLA8UWT
俺ならUSARTのMSPIとUSIで2列のデータとクロックを自動送信するけどな
835774ワット発電中さん:2013/09/17(火) 23:09:17.24 ID:oXKu4kFj
_BV()使わんのかい、まあいいけど。
836774ワット発電中さん:2013/09/17(火) 23:57:53.02 ID:a+Timqvk
>>817
わざわざありがとうございます・・・
if文ってこう使うんですね、とても参考になります。
>>821
書き直しました。ありがとうございます。
>>825
割り込み自体はちゃんとできていますが、処理が間に合ってません。
割り込みを使わずWhileだけで動かしても同じでした。
>>826
-Osになってます
>>827
LATCH信号により、表示は維持されるので1ラインずつ表示できてると思います。というか割り込みを遅くして目視で確認しました。
>>828
LATCHでちゃんと表示データ保持すればENABLEは常に(L)で問題ないと思うのですが・・・
16bit,16bit,16bitの三組が16bit,32bitになってしまいますがこっちのほうが効率がいいのでしょうか・・・?
837774ワット発電中さん:2013/09/18(水) 00:31:09.95 ID:HrgS6tM9
>>836

if文は ()の中が 0以外なら 真、0なら偽、なので、わざわざ 0 と比較する必要は無い。

コンパイラーによっては最適化してくれて、((x_h[j] & c) != 0) と書いても、
同じ結果になるので、その場合は真面目に比較した方がソースが見やすくなる。
838774ワット発電中さん:2013/09/18(水) 02:13:48.11 ID:1eTpZvza
>>836
>>828です
LATCHで表示データは保持されるけどコモンは保持されないっていうモジュールだった場合の話ね
そのときはコモンのif判定をforから出せるから多少軽く出来るかな
どっちも保持されるなら今みたいにするしかないね

データの縦横はちゃんと変わってたねゴメン
839774ワット発電中さん:2013/09/18(水) 03:20:32.10 ID:Cbu7ss/n
asm("SBI REG, BIT");
asm("CBI REG, BIT");
840774ワット発電中さん:2013/09/18(水) 05:28:01.17 ID:LIu8OmX2
>>830
仰るとおり、メモリを盛大に消費しておりました。
左と同じものは表示できるのに、右半分の表示がどうしてもおかしい、よく見ると
Data: 136 bytes (106.3% Full)となっておりました・・・
試験用の16bit×32個のデータ最後のほうが格納できてなかったようです。
mega88としてコンパイルすると6.4%、こんな違うモンなんですね・・・
書き方をいろいろ参考にさせていただいたおかげで処理面は軽くなりちらつきは一切なくなりましたが
今度はメモリ不足です。
lssファイルをよんでみましたがおそらく一命令でできてると思います。

ためしに割り込みの処理をすべて消してみましたが101.6%Fullとあまり改善はされませんでした
x[0〜31]を消すと
Data: 1 bytes (0.8% Full)
とスッカラカンになりました、16bitが32個なので64バイトでしょうか?SRAMは128バイトなので半分のはずですが満タンになってます
ためしにx[0〜15]にすると使用率も半分程度になりました。
表示するデータを格納するためのメモリなので節約する方法は半分に分けて送るとかそれぐらいしかないでしょうか?


ISR(TIMER0_COMPA_vect){
    if(j == 16)j = 0;
    c = 0x0001;
    LATCH_OFF;
    for(i = 0;i < 16;i++){
       if(x[j] & c){MPORT |= 0b00000010;
       }else{MPORT &= 0b11111101;}
      if(x[j+16] & c){MPORT |= 0b00000100;
       }else{MPORT &= 0b11111011;}
       if(i == j){MPORT |= 0b00000001;
       }else{MPORT &= 0b11111110;}
       CLOCK_ON;
       CLOCK_OFF;
       c = c << 1;
    }
    j++;
    LATCH_ON;
    LATCH_OFF;
}
841774ワット発電中さん:2013/09/18(水) 14:08:03.45 ID:ZLbSUy8V
>>832
20個ぐらい余ってる2313を見て思うのは
「これを活用するぐらいならattiny861やatmegaを使った方がいい」
です。

それでも使いたい場合でも、メインで使うのは苦しいので、例えば
7セグ用のダイナミックドライバーに使えないかとか考えるかもしれませんが
制御線をどうするかが問題になります
I2Cを使う場合、AVR StudioだとUSIベースのI2Cドライバを独自実装する必要があります
ArduinoIDEだとTinyWireS.hがありますが、どちらにしてもメモリーオーバーか
良くてギリギリです
じゃあ格好悪いけどシリアル接続でUSARTでいこう!とか言ってもけっこうギリギリで
カジュアルに何かしようとするとすごく制限が多いです。

実は7セグの4桁ダイナミック表示だけなら、12ビットのシフトレジスタ(NJU3714など)
があれば可能です。しかも制御線は3本で済みます。ダイナミック表示の実装は
attiny861やatmegaでやる必要がありますが、そんなに手間でもありません。
2KBytesというのは非アセンブラでプログラミングする上でネックだと思います
842774ワット発電中さん:2013/09/18(水) 14:47:01.45 ID:G9BocJu/
2313売れば良いんじゃね。
843774ワット発電中さん:2013/09/18(水) 15:26:02.44 ID:9zpoBs60
アセンブラでカリカリやるのも楽しいよ。


ってか、それを言ったらオイラの90S1200なんてどうすりゃいいのさ!
844774ワット発電中さん:2013/09/18(水) 16:24:01.29 ID:1yLINsPb
tiny2313ではメモリ不足より、どちらかというとI/O点数不足を感じる事の方が多いかな。
まぁ、これこそ人それぞれ、作る物によると思うけど。
(ちなみに私はアセンブラ派)
845774ワット発電中さん:2013/09/18(水) 17:36:56.02 ID:m8EQaEN8
2313はvusbで遊んだりI2Cブリッジにしたり使い方次第だよ
846774ワット発電中さん:2013/09/18(水) 19:20:59.73 ID:uLpcgLl8
2kバイトってのはアセンブラで書くには手頃なサイズと思うんだけどな。
というか、Cで書いてたらクロック単位でパキっと合わせるの面倒じゃん。
847774ワット発電中さん:2013/09/18(水) 19:33:24.88 ID:kJluNj3X
>>843
さすがに、AT90S1200は…
俺も最初に使ったのは1200だったけど
AT90S2313使って以降は二度と使うことはなかったな
848774ワット発電中さん:2013/09/18(水) 19:52:22.05 ID:Hao/CBXr
>>846
だな。
ピン数は違うが、Tiny15に近い。
外付けオシレータが要るのが面倒っちゃー面倒だが。
849774ワット発電中さん:2013/09/18(水) 20:04:43.82 ID:B367Aa1Y
>>837
> if文は ()の中が 0以外なら 真、0なら偽、なので、わざわざ 0 と比較する必要は無い。

わざわざそんな変な癖つけさせるなよ。
最適化しないコンパイラなんてほぼないんだし。
850774ワット発電中さん:2013/09/18(水) 22:29:52.16 ID:wrLVq27R
在庫の2313が1個死んでた。
変なヒューズビット飛ばしたかなあ。
導通スポンジに挿してあったのにぃ。
HVプログラムで復活すっかな。
851774ワット発電中さん:2013/09/18(水) 22:33:22.89 ID:A79y5VVU
やり方教えて
852774ワット発電中さん:2013/09/18(水) 23:23:42.21 ID:udmxNJLA
Delayの時間がおかしくて困ってます
tiny2313を内蔵8MHz使ってるんですが500msのDelayを入れても大体3〜4秒くらいになってしまいます?
なんででしょう?例えば以下の様なLED点滅プログラムでもそうなります。

#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRA = 0xff;

while(1)
{
          PORTA = 0b00000001;
_delay_ms(500);
PORTA = 0b00000010;
_delay_ms(500);
}
}
853774ワット発電中さん:2013/09/18(水) 23:28:41.84 ID:urDdXPZg
ヒューズビットのDIV8を確認しる
854774ワット発電中さん:2013/09/18(水) 23:31:52.17 ID:uLpcgLl8
>>852 CLKPS
855774ワット発電中さん:2013/09/18(水) 23:33:01.08 ID:uLpcgLl8
あ、ちがった。>>853の方だ。
856774ワット発電中さん:2013/09/18(水) 23:46:04.47 ID:udmxNJLA
>>853
CKDIV8にはチェックが入ってる
で,SUT_CKSELはINTRCOSC_8MHZ_14CK_65MS
になってる
動作クロックって8MHzでいいんだよね?
857774ワット発電中さん:2013/09/18(水) 23:47:17.98 ID:udmxNJLA
>>854
CLKPSってなに?
858774ワット発電中さん:2013/09/18(水) 23:56:33.95 ID:uLpcgLl8
>>857
クロックのプリスケーラ。1/1から1/256まで8通り設定可。
データシート(バージョン8246B)なら6.3 System Clock Prescalerとp33の表。
859774ワット発電中さん:2013/09/19(木) 00:10:44.37 ID:9gw0xBjv
>>858
へぇー
プリスケーラか・・・
2313にはCLKPSは無いのかな
ヒューズビットになかった
860774ワット発電中さん:2013/09/19(木) 00:21:27.87 ID:TavV/A1L
>>859
フューズじゃなくて普通のレジスタ。Aのつかない2313にもある模様。
861774ワット発電中さん:2013/09/19(木) 01:03:05.99 ID:5hxtzZ8d
862774ワット発電中さん:2013/09/19(木) 04:00:58.22 ID:t6quVP1b
#define F_CPU が20MHzとかになってるとかは?
863774ワット発電中さん:2013/09/19(木) 06:41:49.51 ID:zcJjHi4G
>CKDIV8にはチェックが入ってる

つまり1/8になってるんじゃないか
デフォなんだから外さないとだめだよ
864774ワット発電中さん:2013/09/19(木) 06:57:33.23 ID:JWyoLU1g
そもそも、_delay_ms なんて使うなよ。
865774ワット発電中さん:2013/09/19(木) 07:15:10.81 ID:9gw0xBjv
>>863

そうなんだ!

ありがとう,知らなかった

前やったときはなんで大丈夫だったんだろう
実は最近PICから乗り換えたばかりでいまいちよく分かってないんだよね
866774ワット発電中さん:2013/09/19(木) 07:15:44.72 ID:9gw0xBjv
>>864
_delay_ms以外にもいい方法があるの?
867774ワット発電中さん:2013/09/19(木) 07:35:43.27 ID:uwEw5KUM
500mSを8倍で4秒。
大体あってる、2313も >>852 の点滅実測も
868774ワット発電中さん:2013/09/19(木) 07:53:59.43 ID:9gw0xBjv
>>867
ちゃんと測ったわけじゃなくて,適当に数えただけだけどねw
869774ワット発電中さん:2013/09/19(木) 13:33:48.34 ID:qJ6hhH2J
Lチカくらいなら_delay_ms使ってもいいじゃないか。
F_CPUに合わせて時間生成してくれるんだしお手軽だよ。
カウンター/タイマーユニットくらい使えるようになれって言いたいんだろうけどね。
870774ワット発電中さん:2013/09/19(木) 15:17:37.34 ID:9gw0xBjv
つまりはTCCR0Aとか弄ってPWMでやれって事?
LEDを交互に点滅させるのにも使えるの?
871774ワット発電中さん:2013/09/19(木) 18:23:06.85 ID:qJ6hhH2J
カウンター/タイマーユニットってのは時間計ったりにも使えるんだから
自分で_delay_ms相当の機能を書くことは出来るよね。
でも、_delay_msで0.5秒待ってる間は何の処理も出来ないんだよ。
0.5秒経過するまで別の処理したいってなったらどうすんだい?
だからユーティリティーに頼らず勉強してタイマーいじれるようになりな

っと言いたいのではないかとエスパー予想
872774ワット発電中さん:2013/09/19(木) 19:09:45.14 ID:ang8qEZJ
それよりavr-libcの_delay_msや_delay_usは結構神経を使う関数だよ。
ちゃんと注意書き読んでる?

> The maximal possible delay is 262.14 ms / F_CPU in MHz.
>
> When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality.
> In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU
> frequency). The user will not be informed about decreased resolution.
873774ワット発電中さん:2013/09/19(木) 19:13:55.23 ID:vLn02hSZ
delayを使うような用途は単純なロジックでしょ
そこまで神経質にならなくても…

まあ注意するのは良いことだと思うけど100均の商品化って説明を熟読するような感覚だな。
874774ワット発電中さん:2013/09/19(木) 20:04:48.24 ID:9gw0xBjv
>>872
よんでるよ〜
6秒ちょいも使えれば十分
875774ワット発電中さん:2013/09/19(木) 20:05:21.79 ID:9gw0xBjv
>>871
なるほど,何もしないならいいけど,裏で何かしたいならタイマー使うしか無いのか
876774ワット発電中さん:2013/09/19(木) 20:12:18.96 ID:TavV/A1L
>>870
Vcc-R-[A LED K]-PWMピン-[A LED K]-R-GND
でええんと違う?
877774ワット発電中さん:2013/09/19(木) 20:32:19.23 ID:2OmE014l
>>876
まてまてまてまてwww
878774ワット発電中さん:2013/09/19(木) 20:36:26.76 ID:a+ZDWQLr
機能確認くらいならディレイは便利。
目的と手段のマッチングやね
879774ワット発電中さん:2013/09/19(木) 20:54:50.50 ID:9gw0xBjv
>>876
出力ピンって低インピになってるんじゃないの?
それやって大丈夫なの?
880774ワット発電中さん:2013/09/19(木) 21:03:19.50 ID:TFzB5//w
>>876
大丈夫だと思う
881864:2013/09/19(木) 21:46:36.76 ID:cGKqcbgl
>>871
タイマー弄るのは当然なんだけど、微妙に違う。
タイマーは、限りあるんだから、LEDの点滅なんかに使うのは勿体無い。
1〜10m秒位の一定時間毎に割り込みを掛けて、タスクを起動させる為に使えば
ボタン入力も、LED点滅も、LCD表示も、通信も、全てタイマーを使わずに決まった時間で起動出来る。
LEDが点滅してる時は、ボタン入力が出来ないとか、通信出来ないとか、ド素人が組んだっぽいモッサリ動作とおさらば出来るぞ。
882774ワット発電中さん:2013/09/19(木) 22:01:17.16 ID:GZRUEQd0
そして、AVRにマルチタスクモニタやOSは必要か?と言う激論が始まる…
883774ワット発電中さん:2013/09/19(木) 22:03:22.91 ID:zcJjHi4G
明らかなマイコン初心者相手に飛躍しすぎだ
RTOS知らないことを見下して楽しいか?
何人か言ってるがLチカ程度なら_delay_msでもよかろーが
>>871みたいな言い方のほうが次はタイマーいじってみようかって気にならぁ

ああ、またこのスレの悪い流れが始まる予感・・・・・・
884774ワット発電中さん:2013/09/19(木) 22:24:06.59 ID:9gw0xBjv
みんなありがとう
とりあえず,解決できて良かった

言ってること,よくわかんないけど頑張って勉強するわ
885774ワット発電中さん:2013/09/19(木) 22:27:01.51 ID:cGKqcbgl
>>883
別にRTOS使えとは言ってない。
簡単なタスクコントロールで十分。

Lチカ程度なら_delay_msで十分とか言うが

 い つ ま で L チ カ や っ て ん だ よ w


マイコンで重要なのは、アルゴリズムを考える能力だ。
_delay_msなんか使ってるうちは進歩しないと思っとけ。
886774ワット発電中さん:2013/09/19(木) 22:35:31.17 ID:zcJjHi4G
最後の1行で十分なのにな
>>871はそれを分かりやすく先に言ってるだろうに
結局見下して悦にいりたいいつもの人だろ?
ま、質問主が〆てくれたんでおひらきだな
887774ワット発電中さん:2013/09/19(木) 22:41:58.73 ID:cGKqcbgl
>>886
> >>871はそれを分かりやすく先に言ってるだろうに

言ってない。
単語は知ってるのに、知ってるだけで理解出来てないんだな。
888774ワット発電中さん:2013/09/19(木) 23:19:03.24 ID:fhTp03mX
基本的に割り込みは呼び出されるまでが遅いし前後の命令や禁止期間でジッタが発生する
究極的には命令サイクル計って時間内に収める
実は監視対象が数個ならこの方法が正解に近い
RTOSはその辺を自動でやってくれるだけの事
889774ワット発電中さん:2013/09/19(木) 23:34:34.51 ID:fhTp03mX
そもそも_delay_msに500とかはそのまま入らなかったと思うんだが
入れる値はF_CPUに依存してたと思う
890774ワット発電中さん:2013/09/20(金) 00:05:01.63 ID:L/0gdxE1
>>888
>RTOSはその辺を自動でやってくれるだけの事

そんな事しねーよw
891774ワット発電中さん:2013/09/20(金) 07:33:13.46 ID:QSEcMjSl
>>888
> RTOSはその辺を自動でやってくれるだけの事

RTOS に期待し過ぎ (w
RTOS と言っても単なるソフトだよ。
892774ワット発電中さん:2013/09/20(金) 07:59:40.21 ID:svuIqEYu
>>810
> アナログ回路が混じっていると
たかが DDコン。習うより慣れろ。

> 電源からのノイズがシャレにならん
作り方次第。
DDコンは出力電流が少なければノイズは減る。
また、一気に減らしたいなら後段にLDO噛ませばいい
893774ワット発電中さん:2013/09/20(金) 08:25:59.16 ID:T4IThK2h
>>841
> じゃあ格好悪いけどシリアル接続でUSARTでいこう!
少ないリソースでなんとかするのは、スマートなだよ。
USARTでも1:N通信は出来るし。
894774ワット発電中さん:2013/09/20(金) 09:21:09.12 ID:W2PfOLM8
もうね、Arduino 使ってればいいと思うの
895774ワット発電中さん:2013/09/20(金) 11:48:04.80 ID:vSr9O8PZ
私も
>>885 簡単なタスクコントロールで十分。
に賛同するけど、そう言えば最近、「RTOSは最高」さん見ないね。
自分でディスパッチャとか作れるようになったのかな?

ここを読んでいると、
<人間は自分の能力以上のプログラムは作れない>
を痛感する。
896774ワット発電中さん:2013/09/20(金) 12:27:02.17 ID:bGl7WuIg
> ここを読んでいると、
> <人間は自分の能力以上のプログラムは作れない>
> を痛感する。
どうかな?

不必要な細かな仕様にこだわってる自称高スキルの人が多いように思うけど。

Lチカにdelayを使っててもその時点ではそれしか知らなくても他の機能にそれ以上のコントロールが必要なら学ぶでしょ。

自称高スキルの人は人が必要に応じて成長や勉強すると言うことを忘れてるんじゃないかな?
能力は伸ばせるんだよね。
897774ワット発電中さん:2013/09/20(金) 12:40:47.90 ID:vSr9O8PZ
能力は謙虚な努力によってしか伸ばせません。
898774ワット発電中さん:2013/09/20(金) 14:44:15.82 ID:bGl7WuIg
> 能力は謙虚な努力によってしか伸ばせません。
能力は必要に迫られればそれなりに伸びますよ、生物の進化の基本

犬小屋作るのに建築士レベルの設計を学ぶ人は少ないと思うが
どうしても家を自分で建てる必要が出来れば勉強するでしょ。

ここには犬小屋作りたい人に強度計算をしらないのw とか言って嘲笑してる人が少なくない。
899774ワット発電中さん:2013/09/20(金) 15:20:54.47 ID:aNZKxKz1
せめてイナバの物置くらいの作りたい
900774ワット発電中さん:2013/09/20(金) 16:01:31.85 ID:Une3dXU6
姉歯さんの設計した建物はこの間の地震でも何でもなかったんでしょ?
901774ワット発電中さん:2013/09/20(金) 16:30:29.68 ID:bGl7WuIg
姉歯さんは優秀な設計者だったのが証明されちゃったよね、
表面的な基準準拠より、考え抜いた節約設計の方が実は強かった
強度とコストの最高のバランスを実現してたわけだよね。

まあ基準ってのはボンクラが設計しても大丈夫なように多めにマージン取ってるわけで
設計優秀なら本来それほどの過剰な部材は不要なんだよね。
902774ワット発電中さん:2013/09/20(金) 17:44:48.67 ID:2lMmx+XV
>>901
まあねー。
性能規定を多少割っても、即危険ってわけじゃないからな。
施工のレベルでも多少は強度がばらつくわけだし。
903774ワット発電中さん:2013/09/20(金) 18:56:25.18 ID:lbK3xs7J
>>901
姉歯物件は解体又は補強工事したよ
904774ワット発電中さん:2013/09/20(金) 19:24:22.38 ID:OUu85yP2
一見動いてるように見えても、中はズタボロってのは、ド素人にありがち。
必要に迫られて作るだけだと、行き当たりばったりになりがち。
普段からの弛まない努力をしている奴が伸びる。
905774ワット発電中さん:2013/09/20(金) 20:56:21.39 ID:T2lnzNrT
ボンクラ・ズタボロ…

文章からどうしても2ちゃん的なの感じない、人に対して憎悪
隙間のレスにボケツッコミ以前、「目に入る」と気分落ち込む…

ありがとうAVRスレ
906774ワット発電中さん:2013/09/20(金) 21:22:07.34 ID:ADGQ1nlm
趣味前提なら
マイコンでやりたいことがあるからマイコン使うんであって
お恥ずかしいコードだろうがなんだろうが
目的達成できりゃあなんでもいいよw

なんかの精神修行やりたいならどうぞご勝手にw
907774ワット発電中さん:2013/09/20(金) 21:51:52.81 ID:4eyDRr81
傲慢な努力でも伸びることは伸びると思うよ。
908774ワット発電中さん:2013/09/20(金) 22:43:04.93 ID:nWh/sX5R
ボンクラと言えば
コンピュータ将棋のボンクラーズの富士通の人が
CPUなんか使ってるから、いつまでたっても人間に勝てない
いっそのことFPGAにしちゃえば、クロック無関係に高速に解ける
これなら十分に人間の脳に勝てるとかブログで書いてた

確かにノイマン型コンピュータを人間の脳に近付けるより
FPGAを使った方が早道かも
909774ワット発電中さん:2013/09/20(金) 22:51:56.08 ID:XGDsbmPg
DeepBlueが専用IC詰んでたとかいう話をどこかで聞いたような気がするけど、
同じような話なのかねぇ?
910774ワット発電中さん:2013/09/20(金) 23:16:33.81 ID:x6H37e/n
どうだっけか
現在の配駒から取りうる全ての選択肢で価値のある攻撃ほどポイントを付与し(防衛要素も含めて)、
樹状図を描いて最大限のポイントを得るように次手の選択ロジックを構成したってやってたような希ガス。
911774ワット発電中さん:2013/09/20(金) 23:17:22.97 ID:W2PfOLM8
クロック無関係ってことはないと思うけど・・・
912774ワット発電中さん:2013/09/20(金) 23:59:50.96 ID:qeTgWGe2
>>904
ドシの人だと思うけど、
むしろ一部プロの方が行き当たりばったりな事をしてる。

自称組み込み出来ますやります、という畑違いの所から来た人で
そういう組織があった。
913774ワット発電中さん:2013/09/21(土) 04:23:31.90 ID:i8fk5W1w
>>892
どこからツッコめば…
914774ワット発電中さん:2013/09/21(土) 07:03:46.08 ID:T5GKDuhn
>>908
ノイマン型コンピュータと人間の脳の処理方式は対極にあると思うし、
ノイマン型がどんなに発展しても脳には近づけないと思う。
FPGAの方が向いているのか、う〜ん、私には分かりまっしぇん!
915774ワット発電中さん:2013/09/21(土) 08:01:40.38 ID:i8fk5W1w
>>914
ノイマン型の処理系で実装した非ノイマン型のアルゴリズムをどう定義する?
916774ワット発電中さん:2013/09/21(土) 08:26:05.97 ID:Ekn1EFIb
まずはチューリングマシンから
917774ワット発電中さん:2013/09/21(土) 08:27:31.59 ID:8Lxc01Ce
>>908
FPGA にもクロックあるし、なんか魔法のデバイスとでも思ってるのかな? (w
918774ワット発電中さん:2013/09/21(土) 08:42:17.41 ID:R0p6+5MT
>>885
賛同だが、AVR 8ビットごときの素人スレで言ってもはじまらん。
20年カーニハン・リッチを座右の銘にしていても、ハードのテストプログラム程度しか作れない連中と同じように
上を望まない連中に何言っても無理。
919774ワット発電中さん:2013/09/21(土) 08:43:15.25 ID:covNrYxn
>>904
またおまえかよ。
チラシに書いとけ
920774ワット発電中さん:2013/09/21(土) 08:48:52.81 ID:covNrYxn
>>917
FPGAでも、クロックを使わない構成にいくらでも出来るんだが?
あれ? ここなんのスレだっけ?
921774ワット発電中さん:2013/09/21(土) 09:30:19.71 ID:8Lxc01Ce
>>920
クロックなしで構成できる FPGA 教えて。
922774ワット発電中さん:2013/09/21(土) 09:34:07.76 ID:bL7nxqT5
>>921
できないほうが珍しいだろスレチ野郎
923774ワット発電中さん:2013/09/21(土) 09:37:42.42 ID:Ekn1EFIb
FFなしの組み合わせ回路
RS-FFは使ってもいいのかな?

AtmelもFPGA作ってるよな。
AVR内蔵型もあったような。
924774ワット発電中さん:2013/09/21(土) 10:22:58.06 ID:8Lxc01Ce
>>922
具体的に出せないの?

>>923
RS-FF はいいでしょう。
925774ワット発電中さん:2013/09/21(土) 16:40:24.16 ID:qnnSZxNC
926774ワット発電中さん:2013/09/21(土) 21:00:29.12 ID:jUsRuZ7d
>>923
FF使っても非同期は非同期だよ。
非同期バスのアドレスやデータの確定を考えればいいよ。
927774ワット発電中さん:2013/09/21(土) 21:06:24.44 ID:Ekn1EFIb
ノイマンと同期は関係ないし
非同期のARMコアもあるし。
そもそもスレチですしおすし
928774ワット発電中さん:2013/09/21(土) 21:18:08.55 ID:6wZ/Fg38
非同期のデータ駆動型か・・・
929774ワット発電中さん:2013/09/21(土) 22:39:12.63 ID:8Lxc01Ce
非同期の FPGA とか ARM コアとか言うわりには、具体的には出てこない件。
930774ワット発電中さん:2013/09/21(土) 22:40:16.53 ID:8Lxc01Ce
非同期の FPGA とか ARM コアとか言うわりには、具体的には出てこない件。
931774ワット発電中さん:2013/09/21(土) 22:41:10.22 ID:8Lxc01Ce
すまん、エラーで二回書き込んでしまった。
932774ワット発電中さん:2013/09/21(土) 22:45:41.53 ID:bL7nxqT5
>>930
【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel 19
http://uni.2ch.net/test/read.cgi/denki/1371591260/
933774ワット発電中さん:2013/09/22(日) 00:17:13.30 ID:9sT8vxew
>>929
http://www.kumikomi.net/article/news/2006/02/17_01.php

どのFPGAでも非同期回路組めるよ
詳しく聞きたけりゃFPGAスレで聞け
934774ワット発電中さん:2013/09/22(日) 00:48:42.60 ID:7ZNWY3ht
>>933
リンク先がFPGAの非同期回路と何の関係もないんだが
935774ワット発電中さん:2013/09/22(日) 00:58:45.09 ID:fAW3c9n8
出来るかどうかと、やって意味があるかどうかは別問題だよな…
936774ワット発電中さん:2013/09/22(日) 08:48:04.42 ID:EkopUYHd
これは宗教じゃないんですかね?
937774ワット発電中さん:2013/09/22(日) 10:41:27.23 ID:60EyVDpc
>>934
非同期のARMプロセッサも話題に上がってなかったか?
938774ワット発電中さん:2013/09/23(月) 07:40:36.70 ID:kfg69lJk
>>929
具体的というより、常識。

グ グ レ カ ス!
939774ワット発電中さん:2013/09/25(水) 10:22:45.83 ID:wYCEgz5v
AVR でHIDなどの小さなUSBデバイス作るとき、何かオヌヌメありまつか?

AT90USB1287は高級すぎるので、もすこし小さくてSOPなのがあればいいなと思います
940774ワット発電中さん:2013/09/25(水) 10:30:29.78 ID:wYCEgz5v
>>939
自己レススマソ。ググりますた。
SOPではないですが、Digikey見ると AT90USB162 一択のようです。$3.71はPICと比べるとちょっと高いでつ。
941774ワット発電中さん:2013/09/25(水) 11:01:23.70 ID:lZX1OWgz
秋月でATTINYが50円からあるわけだが。
942774ワット発電中さん:2013/09/25(水) 11:14:30.19 ID:W9Csz9CY
>>940
自分だけが使う趣味の範囲なら
attiny84 + 水晶 + V-USB
943774ワット発電中さん:2013/09/25(水) 19:37:43.20 ID:WaWXPiuA
>>940 ATXmega16C4
944774ワット発電中さん:2013/09/25(水) 20:28:04.66 ID:NsnWYM8u
vusbでSPIやI2C使うだけならtiny45/85で動く
けどクロックが内蔵RCだとUSBの認識が不安定だからお薦めしない
945774ワット発電中さん:2013/09/25(水) 20:43:56.14 ID:SvRc9Tts
xmega16クラスで300円くらいか
こいつらもUSBあるしそれでいいんでね?
946774ワット発電中さん:2013/09/25(水) 21:03:47.97 ID:WaWXPiuA
xmegaだとUSBでも水晶要らないしな。
947774ワット発電中さん:2013/09/26(木) 08:09:01.53 ID:DY92SbMn
みなさん、ありがとうございました。

USBの選択肢もいろいろあるんですね。
まずは、水晶でvusb試してみます。
948774ワット発電中さん:2013/09/26(木) 10:42:07.16 ID:vDLHcd6A
秋月でついに値上げキターッ ATTiny2313 ¥150-
AT90S も買ってあげてね
949774ワット発電中さん:2013/09/26(木) 11:10:27.19 ID:jtYAATRR
>>946
そういえばFTDIのUARTチップも水晶不要だな。
AVRも全部不要にして欲しいな。

そのまえに、新チップが出ない悪寒が…
950774ワット発電中さん:2013/09/26(木) 14:28:15.74 ID:jtEE0FGv
xmegaに32ピンのEシリーズなんて増えてやがる。いつのまに・・・・
951774ワット発電中さん:2013/09/26(木) 15:14:08.49 ID:jTB6RW80
バグをこっそり直したがらです キリッ
952774ワット発電中さん:2013/09/26(木) 17:02:32.81 ID:DlQlyz3r
>>944
内蔵RCだとコールドブートのBIOSでの認識が結構失敗する
OS起動した後はあまり変わらんのだが
クロック校正がホストの同期信号に依存してるから
たまに糞信号しか出さないハブ経由な環境だと全く成功しない
953774ワット発電中さん:2013/09/26(木) 17:49:35.11 ID:BovymWAJ
秋月に、USB付きのAVR入ってる。
どうせ使わんだろうな。

tiny2313いきなり1.5倍かよ。とても痛い。
954774ワット発電中さん:2013/09/26(木) 17:56:15.26 ID:DlQlyz3r
開き付きで値上げって珍しいな
ついでに4313売ってくれよ
955774ワット発電中さん:2013/09/26(木) 18:03:58.39 ID:ePFcZ2YG
値上げとか信じられねぇ、あれか?安いのは利益が少ないから
付加価値が高くて利益の大きい製品に移行してくのか?
956774ワット発電中さん:2013/09/26(木) 18:09:31.24 ID:BovymWAJ
>>954
最近、ほかでも値上げあった。

「開き付き」でググったら、秋月がトップに来るの初めて知った
957774ワット発電中さん:2013/09/26(木) 19:04:51.87 ID:l3SPS7xw
余剰品を安く手に入れられなかっただけだろ

800個使うけど1000個買ったほうが安い
余った200個処分しよう的なブツ
958774ワット発電中さん:2013/09/26(木) 19:15:15.60 ID:bS2/KUk7
USB付きいいな。今度買ってこよう。
最近は328P-AUを使うことが多かったし、FT232とか必要なくなれば楽だし。
DIPじゃなきゃイヤンなんて俺は言わないよ。
959774ワット発電中さん:2013/09/26(木) 19:35:54.00 ID:l3SPS7xw
>>958
ベンダIDとか適当に設定するの?
960774ワット発電中さん:2013/09/26(木) 21:15:27.11 ID:ojBdu3Yl
しれっと秋月にxmegaが入ってる、やったー。
mega328と同価格で性能大幅うp、すらばしい。
…が、痺れを切らしてdigikeyで買った16d4がまだ手元に20ばかりあるんだよな。
961774ワット発電中さん:2013/09/26(木) 21:16:57.38 ID:wSW2vC7V
秋月はいつまでA無しの2313売るつもりなんだ?
いいかげん入手きつくなってんじゃないの

>>959
遊びなら実験開発用エリアのID使えばいいし、その他HIDならIDゼロでも
いいんじゃなかったっけ? ← 読みかじりでいい加減な記憶
962774ワット発電中さん:2013/09/26(木) 21:20:08.56 ID:wSW2vC7V
>>961
お、ほんとだxmega32D4がある。
でもこれUSBもDMAもDACもない残念なシリーズ・・・・・
963774ワット発電中さん:2013/09/26(木) 21:24:26.16 ID:ojBdu3Yl
>>962
まーそうなんだが、mega/tinyにくらべりゃだいぶ上等だし、
余計なモン載ってないだけ消費電力が低い(データシート見比べてないけど:-)と思えばいいじゃないか
# それに秋月クラスの量でAシリーズ輸入したら暗号機能まわりで面倒なことになりそうじゃないか。
964774ワット発電中さん:2013/09/26(木) 21:35:04.37 ID:wSW2vC7V
AES/DESか?
リールでAシリーズ買っても何にも言われないんだが・・
965774ワット発電中さん:2013/09/26(木) 21:45:48.87 ID:q+3odksT
966774ワット発電中さん:2013/09/26(木) 22:30:10.14 ID:7vKOfQRS
時計用とメインクロック用で二つの水晶をつけられるみたいだから
それなりに使えそう
967774ワット発電中さん:2013/09/26(木) 22:45:23.30 ID:wSW2vC7V
こいつはメインと時計のピンが共通だからどちらかしかつなげないんだ。
でも時計用水晶で内部32MHz発振器の自動校正ができるんだよ。
968774ワット発電中さん:2013/09/26(木) 22:58:07.01 ID:l3SPS7xw
>>967
設定で
PR0 PR1 に XTAL
PE2 PE3 に TOSC
がいけるみたいな感じに読めたけど違うかな
969774ワット発電中さん:2013/09/26(木) 23:00:07.88 ID:ojBdu3Yl
>>967
PR0/1の他にPE2/3に付けられるぞ。
970774ワット発電中さん:2013/09/26(木) 23:07:18.94 ID:wSW2vC7V
うお!リビジョン上がってピン切替の機能追加されてやがるw
TWIE動かないのも修正されてるのか
でも秋月のってどのリビジョンだろうなあ?
971774ワット発電中さん:2013/09/26(木) 23:11:43.97 ID:ojBdu3Yl
>>970
写真見る限り1310とあるから比較的最近のじゃないかい
972774ワット発電中さん:2013/09/26(木) 23:15:25.27 ID:wSW2vC7V
バカな話だけど俺の持ってるリビジョンBはBOD設定を3.49Vにしてしまって動かないものがある
ま、3.5V加えて書き直せばいいんだがそんな電源持ってないし作るの麺土井氏で放置中w
それも修正されてるんだなぁ・・・・在庫捨てちゃおうかしらん
973774ワット発電中さん:2013/09/26(木) 23:21:09.51 ID:ojBdu3Yl
5-0.7-0.7=3.6じゃ駄目なのか?
974774ワット発電中さん:2013/09/26(木) 23:25:15.56 ID:ojBdu3Yl
あと、91:39で5Vを分圧とか。
975774ワット発電中さん:2013/09/26(木) 23:36:08.28 ID:wSW2vC7V
それすら麺土井w
ピッチ変換基板につけただけの実験用だから書き換えるだけのために
ママ板作らないといけないからね。
それにダイオードはそう都合よく0.7V下がんないよ。
3.3VのレギュレータにSBDか抵抗分圧の下駄とかも考えたんだけどね。

どうせもうDシリーズは使う気がないからいいんだ。
DMA使う前提でライブラリ整備しちゃったからAとEがあれば幸せ
通信やタイマーの割り込み処理がほとんどなくなっちゃうから
タスクの処理予測がすんげーやり易くなるんよ。
976774ワット発電中さん:2013/09/27(金) 00:02:34.19 ID:YbyYTDkz
そりゃまぁ都合よう0.7下がるとは思っちゃ居ないが、
壊れてもダメモトなら適当にそれっぽく下がれば十分だろとおもってな。

EはXCLの出来がちょっと期待外れなのを除けば悪くない出来だな。
# EもDMA載ってないとは思うが…
C/Dはこれといって特徴も無いかも知れんが、素直でいい子だよ。
ただし、C4のマニュアルはさっさと直されるべきだと思うが。
Aは嫌いじゃないんだが、メモリ量が大きめなものになるためもあって相対的に高コストなのが難点だと思う。

B? ナニソレ?
977774ワット発電中さん:2013/09/27(金) 00:10:36.31 ID:zA9E3ZG7
EのDMAはEDMAと名を変えて載っとるがね
16A4Uを主に使ってるんだが安いぞえ。足りなきゃ32に上げるけど。
8E5だと俺のカーネルではSRAMきついんよ。スタックなくなっちまう
978774ワット発電中さん:2013/09/27(金) 00:29:06.19 ID:YbyYTDkz
お、気付かなかった。Thx>EDMA
SRAMが足りないってのはまだ食らったことはないなー。
xmegaだとldでのSRAM1クロックペナルティが地味に痛いので、
ぎりぎりまでSRAMを使わないようにしたいんだよね。
そのせいでレジスタが足りないってのはあったけど。
VPORTのマッピング解除でGPIORが増やせればいいのに!と何度思ったことか…
979774ワット発電中さん:2013/09/27(金) 08:17:42.87 ID:KTD0PekP
>>975
そこら辺に転がっている基板から3.3Vを線で取り出すとか、
乾電池2個つなぐとか、好きにしろ。
980774ワット発電中さん:2013/09/27(金) 08:55:06.28 ID:iYyFlkWY
>>979
自虐ネタに釣られるな
981774ワット発電中さん:2013/09/28(土) 20:28:39.56 ID:NdOXLXUw
AVRを専用IcなどなしでLANを直接つなげて通信できますか?
まぁ入出力だけだし理屈ではできなくはないんでしょうけど、現実的にどうですか?
NTP時計なんかを作りたいと思ってます
982774ワット発電中さん:2013/09/28(土) 20:31:31.90 ID:V+K97Cmi
983774ワット発電中さん:2013/09/28(土) 20:43:21.24 ID:IJkjFeDL
>>982
981は専用ICなしでと言っているんですが…
984774ワット発電中さん:2013/09/28(土) 21:48:19.65 ID:yXt3eOYp
あれ?、どちらにせよパルストランスとか必要じゃね?
985774ワット発電中さん:2013/09/28(土) 22:00:44.80 ID:24JgNSiR
EthernetでなくともLANを構成することはできる
986774ワット発電中さん:2013/09/28(土) 22:12:33.54 ID:981y0AMM
CANなら可能だわな。ただ、CAN上でNTPだのというのが非現実的だが、
接続相手を用意すれば一応完結はできる(かなり苦しい言い訳)。

Ethernet用のパルストランスは、パルストランス内蔵のRJ45ジャックを使えば
見かけ上で不要にできるから問題ないと思う。
あとはプロトコルスタックをどのように実装するのかだ罠。
987774ワット発電中さん:2013/09/28(土) 22:15:27.12 ID:D0ai8JHX
UDPで流せばできなくもないかも…
NTSC信号をPICと外付け抵抗だけで作ってる作例があったから、
不可能ではないと思うが、制作というより苦行だなw
988774ワット発電中さん:2013/09/28(土) 22:24:31.29 ID:TgO/DGWy
RS422でがんばってAppleTalkとか…
989774ワット発電中さん:2013/09/28(土) 22:25:59.31 ID:981y0AMM
次スレのごあんない

AVRマイコン総合スレ Part30
http://uni.2ch.net/test/read.cgi/denki/1380374389/
990774ワット発電中さん:2013/09/28(土) 22:54:30.36 ID:JVsdeGV8
ルーターのSIOに接続する
991774ワット発電中さん:2013/09/28(土) 22:55:45.17 ID:5lo3X6Nv
もう、PCに繋いじゃいなYO!
992774ワット発電中さん:2013/09/28(土) 22:58:46.11 ID:TgO/DGWy
というか、時計ならJJY拾った方がいいんじゃ…
993774ワット発電中さん:2013/09/28(土) 23:12:01.67 ID:JVsdeGV8
中華パッドで十分。
994774ワット発電中さん:2013/09/29(日) 07:22:18.41 ID:7vTMhSu5
>>983
10BASE-T Manchester-code 2値 (2PAM)
100BASE-TX MLT-3      3値 (3PAM)
100BASE-T2 PAM5(Five-level Pulse Amplitude Modulation) 5値 (5PAM)

PAM : pulse-amplitude modulation (パルス振幅変調)

PHY無しで10Mbpsのパルス振幅変調が出来ると思ってるの?
995774ワット発電中さん:2013/09/29(日) 07:24:31.80 ID:7vTMhSu5
マンチェスタ符号ならCODEC出来るのか?
996774ワット発電中さん:2013/09/29(日) 08:54:27.68 ID:xgJD6jZ1
>>986
パルストランス入りの RJ45ジャック で見かけ上外付け部品無しというならXPort使おうよ
997774ワット発電中さん:2013/09/29(日) 09:21:27.24 ID:rp3Tg04R
一番現実的な解が出たw
998774ワット発電中さん:2013/09/29(日) 11:23:48.74 ID:QfWkExrV
XPort はプロトコルとか実装済みってのは魅力だけどいい値段するな
イーサネット内蔵のマイコンだとPICがよさげ
999774ワット発電中さん:2013/09/29(日) 13:38:16.77 ID:kEGNWUWc
PICはそういうのがいろいろあっていいなぁ
ハイエンドになってくるとPICに乗り換えたほうがいいのかな
ほかのハイエンドなマイコンより入手性とかもいいし
自分にとっては遠い話だけど
1000774ワット発電中さん:2013/09/29(日) 13:45:08.60 ID:7vTMhSu5
>>998
例えばどれ?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。