AVR H8 etc. マイコン総合スレ Part3

このエントリーをはてなブックマークに追加
1774ワット発電中さん
           _____
         /       /|
       /   ( ゚∀゚) /.∠フ   個人でも手軽に使える
     /       /.∠フ || . ワンチップマイコン等を
   /  __    o/.∠フ ||    中心に語るスレッドです。
 ∠| ̄ ̄凵 ̄ ̄|∠フ ||
 .|| |_____|/||

◎前スレ◎
AVR H8 etc. マイコン総合スレ Part2
http://science3.2ch.net/test/read.cgi/denki/1093023679/
AVR H8 etc. マイコン総合スレ
http://science3.2ch.net/test/read.cgi/denki/1078586301/
PIC AVR H8統合スレ
http://science2.2ch.net/test/read.cgi/denki/1072092201/

◎関連スレ◎
PICアセンブラ統一スレッド
http://pc5.2ch.net/test/read.cgi/tech/1060182978/
トラ技4月号に付録のH8マイコンで実験しよう Part4
http://science3.2ch.net/test/read.cgi/denki/1088265446/
【新時代!】PSoC スレ  其の弐
http://science3.2ch.net/test/read.cgi/denki/1093785868/
やっぱARMっしょ
http://science3.2ch.net/test/read.cgi/denki/1072102432/
[機械板]
●PIC・AVR 初心者のためのスレッド-3サイクル目●
http://science3.2ch.net/test/read.cgi/kikai/1067082692/
 ★H8関連総合スレッド★ 
http://science3.2ch.net/test/read.cgi/kikai/985810159/
2774ワット発電中さん:04/11/18 00:50:24 ID:EJfmZ7jk
関連スレその2
機械・工学板のスレッド

●PIC・AVR 初心者のためのスレッド-3サイクル目●
http://science2.2ch.net/test/read.cgi/kikai/1067082692/
過去スレ
●PIC・AVR 初心者のためのスレッド●
http://science.2ch.net/kikai/kako/981/981417210.html
●PIC・AVR 初心者のためのスレッド-2サイクル目●
http://science.2ch.net/test/read.cgi/kikai/1040610345/

 ★H8関連総合スレッド★ 
http://science2.2ch.net/test/read.cgi/kikai/985810159/
3774ワット発電中さん:04/11/18 00:53:43 ID:EJfmZ7jk
参考になるページ

PIC-microchip http://www.microchip.com http://www.microchip.co.jp/
PIC関連-後閑さんのpage    http://www.picfun.com/
System.out http://www.ex.sakura.ne.jp/~leocrim/crimson/index.html
PICな日曜日 http://www.kimurass.co.jp/picindex.htm
PIC入門 http://www.interq.or.jp/japan/se-inoue/pic.htm

AVR-atmel   http://www.atmel.com/
AVR情報多い-chanさんのpage  http://elm-chan.org/
AVRGCCその他AVR関連 http://www.avrfreaks.net/
レディオテクニカ有志による 翻訳版 AVRデータシート
ttp://homepage1.nifty.com/radio_tech/
TAP-Config http://ww2.tiki.ne.jp/~maro/
AVRのライター http://b2c-1.rocketbeach.com/~jcl/AVR.htm

Renesas Technology http://www.renesas.com/jpn/
仙台電波高専 熊谷研究室
http://www.sendai-ct.ac.jp/~ckuma/micom/

自分で作ってしまえ!電子工作スレッドテンプレート集
http://jbbs.shitaraba.com/bbs/read.cgi/study/3329/1067910158/
4774ワット発電中さん:04/11/18 00:59:17 ID:Q9FZrae9
オシカレ
5熱暴走 ◆2SA784NN.A :04/11/18 00:59:58 ID:YYJrCLXL
   _、_
 ( ,_ノ` )      n
 ̄     \    ( E)  >>1 乙!
フ     /ヽ ヽ_//


6774ワット発電中さん:04/11/18 01:05:16 ID:utRJ/l7m
1乙。
7774ワット発電中さん:04/11/18 01:49:22 ID:gUjMr+xW
イイゾ!
8774ワット発電中さん:04/11/18 06:22:49 ID:XQS6IlKv
otu!!
9774ワット発電中さん:04/11/18 11:17:16 ID:BdWgU+Ft
はらへり
10774ワット発電中さん:04/11/18 17:34:17 ID:9wOY/sr0
即氏会費

H8ちnyが100エンぐらいになりますように
11774ワット発電中さん:04/11/18 19:45:53 ID:EJfmZ7jk
秋月でstk500を買えたのは良いが、atmega16が売っていないはとっても悲しい。
12774ワット発電中さん:04/11/18 23:06:38 ID:Q9FZrae9
>>11
そうなのよ、mega16は秋葉原の店で売ってないからなー。
秋月はまだ古いやつの在庫たくさんあるのかな?
1312:04/11/18 23:16:57 ID:Q9FZrae9
あり?若松に売ってんだっけ?
1412:04/11/18 23:31:40 ID:Q9FZrae9
ATmega16が1000円となっているここ↓
http://www.compass-lab.com/Prices02.htm#AVR%20MPU

買ったことある人いる?
15774ワット発電中さん:04/11/18 23:53:01 ID:EJfmZ7jk
>13
AT mega32-16PC
若松 2520円
Digikey 939円

AT mega16-16PC
若松 1575円
Digikey 744円

この価格差は。。。(泣
16774ワット発電中さん:04/11/18 23:56:38 ID:D2npFiWm
ぼったくり若松はいいから、秋月でmega8売ってくれないかなー。
17774ワット発電中さん:04/11/19 00:02:41 ID:o9yt/h8C
どうせなら Mega48がいいな
20MHzだし Debug-Wireでステップ動作できるし
1813:04/11/19 00:39:53 ID:U3QhxQbN
>>13
mega16、1500円は高いなー。
mega32も単品買いなら送料合わせると微妙にdigikeyの方が高いし。

>>16
若松がdigikeyで仕入れていたとしても、その値段だと高すぎる気がするなー。
他の店で扱いだしたら急に値が下がるかもしれん。
19774ワット発電中さん:04/11/19 02:20:00 ID:pGuoMkj8
つーか、秋月のAVRってほとんどがディスコン(予定)品なんですが(w
20774ワット発電中さん:04/11/19 06:49:01 ID:aCgHVsu5
前すれでも出てたが
Mega48は拡張I/Oになっているから
アセンブラでは正直使いずらい
21774ワット発電中さん:04/11/19 10:31:35 ID:YMig08C0
>>20
拡張IOになると、アセンブラでどう使いにくいですか?
普段Cでしか書かないもんで。

22774ワット発電中さん:04/11/19 10:37:47 ID:YMig08C0
ATMEGA48-20PI-ND
1個/@305円
25個/@191.68円
100個/176.94円

25個で4792円、これだと手数料がかかるんだが、26個でも4792+191.68円なのか、
4792+305円になるのか、どっちかな?
まぁ4792+305円だとしても26個で5097円、送料2000円で7097円だから、26で割って1個272円だな。
26個あれば一生使えるだろう(w
23774ワット発電中さん:04/11/19 11:06:06 ID:yeOXXBOM
>>22
「発注書に記入」してみたら?
前者の 191.68 * 26 = 4984 になるよ。
だから ATMEGA48 だけ発注するなら 27 個 (5175) からだね。
24774ワット発電中さん:04/11/19 12:20:09 ID:/cImCfzM
>>21
拡張部にマップされたレジスタにはin/out命令が使えない(sts/ldsを使う)
からプログラムが1ステップ増える。

ま、Cプログラマには関係ないこった。
25774ワット発電中さん:04/11/19 15:21:55 ID:+l5ODgNg
SHやH8で外部ROMをブートメモリとして使うとして、
SDカードのような物を利用したいのですが、マイコンのバスと接続できる
ようなコントローラICなどは何かありますか?
それかPCカードアダプタなどに刺した状態とバスと接続する方法は
ありそうな気がするのですが、何か情報をお持ちの方教えてください。
26774ワット発電中さん:04/11/19 18:02:01 ID:wud+XkBF
>>25
残念ながら、世界はキミの思うような構造にはなっていないみたいだよ。
27774ワット発電中さん:04/11/19 19:21:40 ID:/cImCfzM
DigiKeyで5人でATMEGA48を50個買ったとすると、一人当たり\2317/10個だ。
配布の手数を考えるともうちょっといくかな。
28774ワット発電中さん:04/11/19 19:45:42 ID:DUzU4JOI
何か情報をお持ちの方教えてください。
29774ワット発電中さん:04/11/19 19:48:18 ID:DUzU4JOI
何か情報をお持ちの方教えてください。 の検索結果 約 1,260 件中 1 - 10 件目 (0.56 秒)
30774ワット発電中さん:04/11/19 20:16:42 ID:TMmpksoQ
>>25
ブートは、(内蔵)ROMからするとして、その後SDカードからプログラムをRAMに転送して実行するのが現実的。SDカードは、SPIモードで使うのなら資料は簡単に手に入るぞ
31774ワット発電中さん:04/11/19 21:10:21 ID:pGuoMkj8
そういや、SDカードソケットが秋月に入ったな。こんど買いに行こう。
32774ワット発電中さん:04/11/19 22:20:32 ID:rifNg2w3
>>25
NAND形Flashは、1ページ(512〜Byte)ごとに情報を引き出す作りになっていて、その引き出し作業に数百usかかるので、
アドレス-データバス式に変換したとしても、プログラムのようにランダムアクセスを前提とすると、処理タイミングが掴めないし、
ワーストケースだとリード速度は数千分の1だよ。
33774ワット発電中さん:04/11/19 22:23:13 ID:Zg43ohj1
http://www.nana.or.jp/~hiramats/h8/nazokou/mmc/mmc.html
↑ここ見ると、マルチメディアカードつなぐのは簡単そうなんだけど、
H8とかAVRでやってみた人って居る?


この人、BASICでアクセスしてるよw あと、ロリ絵はカンベンして欲しいw
34774ワット発電中さん:04/11/19 23:13:15 ID:FZSWd164
>>21
CBI, SBI, IN, OUTといったI/O操作命令などが使えなくなる。
かくちょうI/Oは普通のデータ空間として扱われる。
3530:04/11/19 23:26:44 ID:TMmpksoQ
>>33
 データ収集装置をH8/3052でやった事がある。SDカードにデータをテキストファイルで保存や追記した後、WINDOWS上の集計プログラムで何かしていた。私がやったのは、H8側だけなので良くわからん。
 SDカードとH8は、SPIモードで接続した。H8側はI/Oでシミュレートしたけど...
36774ワット発電中さん:04/11/19 23:45:20 ID:NHnbEMJz
有機CPU?をPICで・・・
ttp://www.conceptlab.com/control/

37774ワット発電中さん:04/11/20 00:56:11 ID:YHAPNeeu
>>36
キモッ!
38774ワット発電中さん:04/11/20 09:02:39 ID:MOnzNE9L
>>23
ATMEGA48はJTAGICEmk2でデバッグできるそうですが、
プログラムするためには、AVRISPがいりますよね?
両方とも232Cに繋いで、、って面倒くさそう。
MEGA16あたりでJTAGICEでデバッグ、書き込みをして、
出来上がったらATMEGA48へ、移植、、、といっても
ポートとか全然違うしなぁ。
39774ワット発電中さん:04/11/20 20:19:13 ID:CgddW2OM
>>36
ワラタ
40774ワット発電中さん:04/11/21 01:43:48 ID:cLYLzXSf
>>36
なんか悪趣味だな
41774ワット発電中さん:04/11/21 11:33:19 ID:U2jVCs/X
>>34
TCCR1B=0x01;
を、WINAVRでコンパイルしてみました。
MCU = atmega8 の時
5:test.c **** TCCR1B=0x01;
65 .LM2:
66 0008 81E0 ldi r24,lo8(1)
67 000a 8EBD out 78-0x20,r24

MCU = atmega48 の時
5:test.c **** TCCR1B=0x01;
65 .LM2:
66 0008 81E0 ldi r24,lo8(1)
67 000a 8093 8100 sts 129,r24

なるほど。Mega48の時は、OUTを使わずにSTSを使っています。
C:\WinAVR\doc\avr-libc\avr-libc-user-manual\group__avr__sfr.html
あたりに、その辺の事情が書いてありますね。

そういえば
outb()に関して
#define outb ( sfr, val ) (_SFR_BYTE(sfr) = (val))
Deprecated:
For backwards compatibility only. This macro will eventually be removed.
Use direct access in new programs.

とあって、outb(PORTA,0xff) じゃなくて、PORTA=0xffと書け っていうのはそういう事情なのか。今やっとわかった。さんきゅ(w


42774ワット発電中さん:04/11/21 11:40:17 ID:U2jVCs/X
あ、ちょっと補足。
MCU = atmega48 の時
outbは、
5:test.c **** outb(TCCR1B,0x01);
65 .LM2:
66 0008 81E0 ldi r24,lo8(1)
67 000a 8093 8100 sts 129,r24
ちゃんとstsにコンパイルされていました。winavrえらい。
43774ワット発電中さん:04/11/21 11:56:07 ID:ZHSBRvBR
AKI-PIC+akipic+gputilという環境でPICで遊んでたのですが、
最近avr-gccの存在を知り,AVRに興味をもつようになりました。
いろいろ調べてみてC言語を使うならAVRがよさげだと思ったのですが、次の
2つの点が分かりません。
1)linux上で使えるATML純正アセンブラと互換のアセンブラはあるのか?
(avaというアセンブラがあるのは見つけましたが互換性がないみたいなので・・・)
2)シリアル接続のライタを自作したいと考えているのですが、linuxの書き込み用
ソフトがあるのかどうか分かりません。
(http://ww2.tiki.ne.jp/~maro/AVR/start/AVRstart.htmlの
マルチプラットフォームライタが良さげだが肝心のlinux用の書き込みプログラム
についての記述が見当たりません。
他、http://elm-chan.org/works/avrx/report.htmlなどいろいろ見つけました
がlinuxからの書き込みに関しては情報がとても少ないようです。
もちろんAKI-AVR+akiavrの選択肢はありますが金かけたくないので・・・)

もしlinux上でAVR開発されている方がいましたら情報いただけると嬉しいです。
44774ワット発電中さん:04/11/21 12:51:18 ID:U2jVCs/X
http://yuki-lab.jp/hw/avr-writer.html とか?
avrはいまのところWIndows環境の方がやりやすそうですね。
45774ワット発電中さん:04/11/21 15:38:20 ID:xhR55VIs
>>35
今h8/3052にSDカードを繋げて実験してます。
CMD0を送ってSPIモードに移行しようとしてるんですが、
レスポンスがいつまでたっても0x01のまま・・・

何か注意するような点とかあります?
46774ワット発電中さん:04/11/21 15:54:16 ID:tpZYs+2E
>>43
なぜ苦労してLinuxにこだわるの?
Windowsならちゃんとした環境がタダであるんでしょ?
47774ワット発電中さん:04/11/21 16:11:27 ID:Pmfv3Top
Linux野郎とはそういうものだ。
あと、マカーとか。
48774ワット発電中さん:04/11/21 16:33:45 ID:1s9/Y3Ye
>>46
ウインテルでは先がない。
4935:04/11/21 16:50:01 ID:14SiUcOn
>>45
80クロック送信直後なら、それで良いのでは?
CMD0 -> res 0x01
CMD1 -> res 0x01
CMD1 -> res 0x00が返るまでリトライ
後は、フルスピードで使用できる。
50774ワット発電中さん:04/11/22 09:58:18 ID:+Bb2eToJ
>>48
そのころにはPICもなくなっているか別のものに取って代わっている。
51774ワット発電中さん:04/11/22 22:57:44 ID:BdMGRR3x
すみません。教えて下さい。
秋月のH8/3069ボードに16bit幅のS-RAMを接続しようとしています。
今までワンチップモードばかりやっていて、外部バス接続は初めてです。
H8のバスコントローラのABWCRで、メモリを置くエリアを
16bit幅に設定したとします。

H8とメモリの接続についての質問
 1) H8と16bitメモリの接続で、メモリのWE端子とH8のHWRをつなぐ。
  これは合っているでしょうか?
   理由 ワードアクセスにすれば、H8のWRはHWR,LWRとも必ず
      出るので、どちらにつないでもよいと考えています。
      
 2) 同様に、メモリのA0はH8のA1,メモリのA1はH8のA2....というふうに
  1つずつずらしてつなぐ。これは合っているでしょうか?
   理由 ワードアクセスなので、H8からは偶数番地しかアドレス
   出力されないのに対し、メモリは1番地ずつ全部存在するから。
   
 3) H8-CSはメモリのCEに、H8-RDはメモリのOEに、H8-ASは開放にする。
  この接続は正しいでしょうか?
  
 4) このメモリには、!UB,!LBという端子がありますが、両方ともGNDに
  しておけばよいと思っています。この接続は違っているでしょうか。
  
 5) そもそも、この!UB,!LBという端子は、なんのためにあるのでしょうか?
  8bitっぽくも使えるよ、ということでしょうか。
  
H8でのアクセスについての質問
 6) この場合(ABWCRで16bit幅に設定した場合)、このメモリに対して、
  バイトアクセスすると、H8の出力はどのようになるのでしょうか?
  予想では、バイトだろうとワードだろうと常にワードアクセスに
  なると思ってます。どうでしょうか?
   (このメモリに1byteしか書かない時は上位1byteは無駄に
     なると思っています)

 7) H8のクロックが25MHz(=40ns)で、メモリのアクセススピードが70nSです。
  H8の2clockで80nsなので、16bit,2ステート,ワードアクセスが
  出来ると思っていますが、正しいでしょうか?

その他の質問
 8) H8のAS(アドレスストローブ)というのは、何のためにあるのでしょうか?
   「今はアドレスが確定だよー」という信号らしいのですが、
   このH8ではHWR/LWRに同期しているので、何のために?....と思っています。
     (その昔、アドレスバスとデータバスを共用していた時には
      有用だったらしいのですが、H8では....わかりません)

すみません。諸先輩方、宜しくご指導お願いいたします。
52774ワット発電中さん:04/11/22 23:26:13 ID:vxm0dXgW
>>51
釣り師キタ━━━━━━(゚∀゚)━━━━━━ !!
53774ワット発電中さん:04/11/22 23:45:54 ID:O5ms5IiW
>>51
オレの目から見ると、あんたの書き込みは釣りにしか見えんのだが、
もし釣りではなく、本気で問題を解決したいのなら2ちゃんねるなんかではなく
http://www.exp.org/h8/h8-ml.html
とかで質問したほうがいいぞ。
54774ワット発電中さん:04/11/23 00:03:10 ID:gw6QitUM
>>51
2ちゃんねら〜 電気板住民の特性
4行以上のカキコに耐えられる率 40% 以後2行毎に半減。

長文を書いても読んでもらえないよ。ってこと
55774ワット発電中さん:04/11/23 00:06:24 ID:/vJHuPsz
>>52,53
いえ、全然そんなつもりは無いんです。
ぜひアドバイスをお願いします。
てゆうか、この手のハードウェアについて書かれた本でも
結構です。
手持ちの「H8....」という本(マニュアルも含めて10冊あります)には、
秋月H8のままでの使い方ばっかりで、全く書かれていなかったです。
少々困っています。すみませんが、ぜひ宜しくお願いします。
56774ワット発電中さん:04/11/23 00:09:14 ID:/vJHuPsz
>>54
そう思って、箇条書きにしてみたんですが、どうでしょうか?
説明不足だと「内容が足りない」って言われるし、
多いと多いで「長すぎる」って言われてしまいますね。
気長に待つことにします。
57774ワット発電中さん:04/11/23 00:21:00 ID:RKC+xUpR
>>56
時間を置いて一つずつ質問汁!
58774ワット発電中さん:04/11/23 00:24:53 ID:xFmykwm4
>>55
ハードウエアマニュアルに接続方法が書いてないか?
まあワードアクセス限定なら>>51でも良いと思うが。

タイミングは検証するのが面倒なのでパス。
59774ワット発電中さん:04/11/23 00:45:26 ID:G4GNlIM5
>>55
悪いことは言わん。
2チャンネルは日本最大の公衆便所(または痰壺)だ。
キミがまともな質問を投げかけても
帰ってくるのは罵詈雑言かまことしやかな嘘だけだ。
H8関係の製作記事を載せているホームページは
たくさんあるので探してみなさい。
60774ワット発電中さん:04/11/23 00:57:47 ID:kTc1q2j5
>>55
全部データシートに書いてある。
読め。
61774ワット発電中さん:04/11/23 01:01:36 ID:/vJHuPsz
>>58
はい、DRAMの接続は有るんですが、S-RAMの接続の方法がないんです。
H8/3048のマニュアルには、8bit幅のS-RAMの接続は書いてありました。
8bit幅のRAM接続はよく理解できるんですが。

>>59
わかりました。すみません。8bit幅のものを2つ使うことにします。
ホームページも検索したんですが、「ウチの基板には16bit幅のRAMが
載ってるよ」というのは、たくさんありました。
また、8bitのS-RAMを増設するっていう記事も、たくさん出てきました。

>>57
わかりました。一気にたくさんの質問はいけないですね。失礼しました。
では、最後に1つだけ教えて下さい。メモリの!UB,!LBのピンは
何のためにあるのでしょうか? こうなった背景でも結構です。
もし気分が載ったときにでもご指導くださいませ。

みなさん、どうもありがとうございました。
もう少し精進してきます。「ありがとう! 2ちゃんねる」
62774ワット発電中さん:04/11/23 01:08:01 ID:VA8s7n+U
こんなのがうちの職場に来たらどうしよう
63774ワット発電中さん:04/11/23 01:28:40 ID:nPz3HQfn
素直な良いヤツなのだが、扱いに困る>皆敬遠して寄り付かないだろうなあ。
H8 MLに出たらどうしましょう(ガクガクぶるぶる〜!!)
64774ワット発電中さん:04/11/23 01:36:39 ID:nPz3HQfn
>61
トラ技に載ってるよ〜ん。
ttp://www.cqpub.co.jp/toragi/TRBN/trsample/2004/tr0401/0401sp1.pdf
最低でも3年間位は定期購読して普段からお勉強しましょうね。
65774ワット発電中さん:04/11/23 02:02:26 ID:D2gxJ6ja
>>49
レスサンクス
なんとかSPIモードに持っていけました
まだFATが残ってるけど...
66774ワット発電中さん:04/11/23 02:29:18 ID:n261fQ4K
61は、あきらめて行っちゃったみたいだな
67774ワット発電中さん:04/11/23 03:34:02 ID:Qz3WdW/K
H8の16bitバスフル活用実務3年の俺だけど、
教えたくてうずうずしているのだが、長文になりそうだから止めたほうがいいな。
68774ワット発電中さん:04/11/23 04:18:13 ID:qtkvLlK6
質問に答えての長文は構わんだろ。質問者が読めばいいんだから。
69774ワット発電中さん:04/11/23 12:16:13 ID:Qie0rWBv
>>55
アドバイスっちうかさ、ある意味どれも基礎的な話なわけよ。
データシートとかアプリケーションノート読んだりすれば分かる話ばかり。
ま、例えばメモリの話なら、適当なメモリメーカーのサイトに行けばpdfとかで
ころがっているからとってきて読めばわかる。
端子の説明が当然書いてあるんだから。タイミングチャートも書いてあるし。

みんなさ、「あぁ、それは俺もひっかかった」とか言う話なら喜んで
答えるもんなんだよ。でも「そんなの常識杉」なのはあほらしくてね。
ここは初心者すれでもないし。
70774ワット発電中さん:04/11/23 12:23:54 ID:Qie0rWBv
>>69に追記
使いたいH8やメモリなどのデータシート、アプリケーションノートを
入手しておくのは基本中の基本。
つうか、およそ「設計」するのなら、まず最初にやること。
つうか、話が始まらない。
昔は高い金だして買ったものだが(プロならメーカーから貰えるが)、
今はネットで簡単に手に入る時代。
やらないのは怠慢以外のなにものでもない。
71774ワット発電中さん:04/11/23 13:46:19 ID:EFqlszBF
まあ答えとしてはこんなもんでしょう。

(1)バイトアクセスを一切しないのであれば正解
(2)16bitメモリで、アドレスがワード単位で定義されているのなら正解
(3)正解
(4)バイトアクセスを一切しないのであれば正解
(5)上位を書き換えるか、下位を書き換えるかのセレクト。バイト書き込みをするのであれば制御が必要。
(6)偶数アドレスへのバイト書き込みならHWR、奇数アドレスならLWRがアサートされる
(7)アドレスホールド期間が足りない予感(SRAMにもよるが)
(8)H8は/CSを使う方が便利なんでイラネ。ただし/CSはスタティックハザードが乗ってるので、クロックに入れると危険。
72774ワット発電中さん:04/11/23 14:09:11 ID:EFqlszBF
で、バイトアクセスをしないなら〜とは書いてみたが、正直言ってきわめて危険だと思う。
これが原因でバグったら、おそらく原因が全くわからなくなる。Cで組むなら尚更。
多少ロジックは増えるが、/UB=/HWR・/RD、/LB=/LWR・/RD、/WE=/HWR・/LWRとして、バイト書き込みを許容すべきだろう。
73774ワット発電中さん:04/11/23 15:15:47 ID:6+TOXQ/v
>>69
ところで、そのメモリーメーカーつうのをいくつか教えてくれよ。
生理東郷でさぱりわからん。
74774ワット発電中さん:04/11/23 19:04:53 ID:E38b9uAW
AVRを始めてみようかと思うんだけど、なんかお勧めの参考書ありますか?
つーかまあamazonで検索しても日本語の本は1冊しか見つけられなかったんだけど、
やっぱり他には存在しないのかね。
75774ワット発電中さん:04/11/23 19:48:57 ID:2WUBNYs6
>>74
ないです。
WINAVR(GCC-AVR)の解説記事書けば売れると思うんですが、なんで誰も書かないんだろ。
76774ワット発電中さん:04/11/23 19:55:40 ID:2WUBNYs6
タイマーの16ビットアクセスするときは、割り込み止めるか、割り込みルーチンの中でやるか、とか。
そういうやつとか。
232Cの使い方とかI2Cの使い方とか。
探せばいくらでも見つかるんだが、1冊の本になっていると便利だとは思います。
77774ワット発電中さん:04/11/23 20:01:03 ID:RKC+xUpR
>>75
UMが素晴らしい出来だからでは?
78774ワット発電中さん:04/11/23 20:20:57 ID:yriImy8s
みなさん こんばんは 昨日の51です。
昨日は、お騒がせしました。みなさんのお陰様で、その後いろいろとわかりました。
っていうか、ズバリ答えていただいた人もあり、理解が深まりました。
ありがとうございました。私の勘違いは、次の点でした。
「ABWCRを16bitに設定すると、ワードアクセスのみ許され、
 ソフト上でバイトアクセスしてもH8のハードウェアによって、
 ワードアクセスになる(なってしまう)」と思っていました。
 ここが最大の勘違いでした。
    16bit空間でもバイトアクセス出来るんですね。
    というかバイトアクセスの他にワードアクセス「も」できる、と
    言う意味なんですね。
      バイトアクセスで、偶数番地をアクセス→/HWRだけアクティブ
      バイトアクセスで、奇数番地をアクセス→/LWRだけアクティブ
      ワードアクセスで、偶数番地をアクセス→/HWR,/LWR両方がアクティブ
      ワードアクセスで、奇数番地をアクセス→/HWR,/LWR両方がアクティブ
                  (この場合、(番地-1)の偶数番地にアクセスされる)
    従って、/HWRは/WEと/UBに、/LWRは/WEと/LBにつなぐことになり、
    また、/RDは/RDと/UBと/LBにつなぐことになるんですね。
    そして、アドレス線は、A0-A0, A1-A1...とそのままつなぎ、
    /CSは/CEにつなぐということになるのですね。
 勉強になりました。たくさんのみなさん、本当にありがとうございました。
79774ワット発電中さん:04/11/23 20:21:21 ID:yriImy8s
51です。
>>69,70
すみませんでした。
> 端子の説明が当然書いてあるんだから。タイミングチャートも書いてあるし。
はい、読んで、端子機能もタイミングも理解できていました。
が、ワード単位のメモリに、なんで上位下位別々の書込をするのかが
わからなかったのです。
> 入手しておくのは基本中の基本。
はい、H8もメモリも両方ともデータシート(ブック?)を持っていますし、
読んでいましたが、読み込みが足らなかったため、わかりませんでした。

>>71
コメントありがとうございました。
71さんの「(1)バイトアクセスを一切しないのであれば」という文章で
ハッとして理解できました。ありがとうございました。
> (7)アドレスホールド期間が足りない予感(SRAMにもよるが)
この件は、1ウエイト入れることで対処しようと思っています。
ありがとうございました。

>>64
> トラ技に載ってるよ?ん。
> 最低でも3年間位は定期購読して普段からお勉強しましょうね。
ありがとうございました。大変参考になりました。というか、ズバリですね。
ありがとうございました。トラ技は、ここ10数年買い続けていて、
本棚に全部あります。が、アナログ屋のためマイコン系の記事は
深く見ていなかったです。すみません。ありがとうございました。

>>72
> 多少ロジックは増えるが、/UB=/HWR・/RD、/LB=/LWR・/RD、/WE=/HWR・/LWRとして、
これって、/UB=/HWR + /RD ではないでしょうか? /HWRと/RDは同時に
訪れないと思うので、LowORだと思うのですが。どうでしょうか?
ありがとうございました。
80774ワット発電中さん:04/11/23 21:24:41 ID:ITQlitaU
>>/UB=/HWR + /RD ではないでしょうか

そうだ、自分を信じてGo!
失敗もまた人生だ。

81774ワット発電中さん:04/11/23 22:12:24 ID:ulT9KC/z
>>75
AVR-LIBCを見たらALL−OKだからな。
82774ワット発電中さん:04/11/23 22:28:58 ID:wfyL5d54
>>そして、アドレス線は、A0-A0, A1-A1...とそのままつなぎ

そうだ、自分を信じてGo!
失敗もまた人生だ。
83774ワット発電中さん:04/11/23 22:59:58 ID:il4/LkPd
AVRって、ADM232系のIC使ってライタ作れませんかね?

ttp://elm-chan.org/docs/avr.html

ここのCOM接続のライタのレベル変換部をADM232で置き換えられるかと思ったのですが、H8と違って、
マイコン側にわけわからない端子がいくつか繋がってたり…H8なら、ADM232にRx、Txを、RS-232C、H8
双方から繋いでやればOKみたいなんですが、AVRはそうはいかないようですよね。

ちょっと手直しすれば大丈夫でしょうか?どなたかご教示願います
84774ワット発電中さん:04/11/23 23:50:51 ID:F/YbvT+r
>>83
置き換えは可能だと思うが、意味が無い。
理由 使い勝手が悪くなる。74HCよりADM232のほうが高い。

「わけのわからない端子」なら、余計なこと考えないでそのまま作れ。
85774ワット発電中さん:04/11/23 23:56:51 ID:il4/LkPd
>>84
そうですか、ありがとう。
実は、74HC126もADM232も両方持ってるんですw

今回は無難に74HC使って作ります。
ADM232は、PICかなにかのライタ作るのに使うか。
86774ワット発電中さん:04/11/24 00:05:49 ID:Vs3GcIj0
>>80,82
えぇーーっ? なんか変ですか。合ってると思うけどなぁ。

>そうだ、自分を信じてGo! 失敗もまた人生だ。
  ですよね。
  よっしゃ、自信を持って行きます。
  I/Oが足らないので8255積んでー.....あれっ?3.3Vで動いたかな
  FWE端子はLレベルにして....ライター用のコネクタも出さなきゃ。
   (現在、アートワーク屋さんに出す回路図を作成中です)

87774ワット発電中さん:04/11/24 00:11:54 ID:jAgawDwa
>>85
RS-232トランシーバの論理は反転(つまりインバータ)なので
そのままでは置き換えできません。
ソフトを直すか、インバータを追加するか。

ついでに、3ステートにできないのでスイッチでのディスコネクトもできない。
88774ワット発電中さん:04/11/24 00:21:50 ID:jAgawDwa
>>86
>>/UB=/HWR + /RD ではないでしょうか

80ではないが、79でLowORと書いてあるのが負論理のORという意味なら正解。
負論理のOR、正論ならAND、部品で言えば7408てこと。

アドレスはH8-A1->RAM-A0、H8-A2->RAM-A1・・・つまり51で書いてた方が正解。

ついでに言えば、リード時の16bit幅のSRAMはリードのアクセスタイムが
/UB、/LBのアクティブから規定されているので、70nsのSRAMに25MHzのH58/3069なら
1アクセスに4クロックは必要。3クロックでは/WE、/UB、/LBのLパルス幅も足りないと思う。
8988:04/11/24 00:22:54 ID:jAgawDwa
>>正論ならAND

正論理ならAND、ね。
9072=80:04/11/24 05:12:25 ID:zTfkx3yn
>>86
正解はやはり、/UB = /HWR ・ /RD。
HWRかRD、どっちかがアクティブならUBもアクティブ、つまり UB = HWR + RD なんだから、
これを変形して実際の論理にあわせると、/UB = /HWR ・ /RDになる。

慣れないうちは真理値表を書いて確かめよう。
91774ワット発電中さん:04/11/24 05:29:07 ID:zTfkx3yn
>>86

8255か…
高速H8の場合、/*WRが解除されてからのデータバスを開放する時間が異常に短い(Tck/2-15, 25MHzなら5ns)から、
もしPPIが30ns程度のホールドを要求している場合、/*WRをいじってホールド時間を伸ばす工夫が必須で、
下手すれば3サイクル3ステートでも足りなくて、/WAIT制御なんてことも必要になるのできおつけてね。

そういえばPPI使ったこと無いな。いつもディスクイートで組むし。
92774ワット発電中さん:04/11/24 06:03:47 ID:P83jblBx
CS落としっぱなしでWR、RDをデコードで切るってのやったけどだめ?、遅いEPROMでもやったし

8255での失敗ネタ
電源ON時になぜか電磁弁がバタつく、出力に使うポートをプルアップしてた
93774ワット発電中さん:04/11/24 10:21:01 ID:ZqF5gbVP
>>88 >>90
信号はActive-Lowなんだから、/UB = /HWR + /RDが正解だと思うが?
ドモルガン変換を使わないで回路図を書くようなイマドキの厨房はこうなのか?
94774ワット発電中さん:04/11/24 10:28:20 ID:ZqF5gbVP
>>86
沖電気の82C55は、例外的に3Vから動作するみたいだな。但し、WRパルス幅が、
150nS以上必要。

http://www.okisemi.com/jp/datadocs/doc-jpn/msm82c55a_2.pdf

多くはWRパルス幅は100nS以上で、CMOS版でも5V動作だと思う。当然、入/出力も
3.3Vトレラントじゃない。

http://www.measurementcomputing.com/PDFmanuals/82C55A.pdf
95774ワット発電中さん:04/11/24 10:32:52 ID:ZqF5gbVP
>>92
遅いと思っているEPROMも、実際には70nS〜100nSくらいでデータが確定している
ので、デバイスの実力値で動いている罠。

MEM_WRを、上位アドレス出力とWR/RD信号を論理合成して生成すると、デコーダ
回路の遅延時間分、MEM_WRの立ち下り/立ち上りが遅れるので、むしろWR時の
データセットアップ/ホールドタイムが更に厳しくなる。

> 電源ON時になぜか電磁弁がバタつく、出力に使うポートをプルアップしてた

8255はモードレジスタを書き換えて、ポートの入/出力方向を変更すると、データ
レジスタがクリアされる。(先にデータレジスタを0xffで初期化しても無駄)

初期(リセット)状態では、全ポート入力で、IC内部にプルアップ/プルダウン回路
がないため、フェイルセーフ設計には、外部に100kΩ程度のプルダウン抵抗が
必須。プルアップして、負論理で使うとポート初期化時にヒゲが出る。

Motorola厨房は、糞なIntel設計を笑いながら、6821を使ったもんだ。
96774ワット発電中さん:04/11/24 12:22:00 ID:ZzBPSmiJ
>>83
AVRって純正のライタだって4000円くらいだから、その方がいいんでは?
(純正のライタ以外にWINAVRから Make-Programで書き込みできるライターって
AVRDUDE経由だから↓だよね。

programmer
id = "bsd";
desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/";
id = "avrisp";
desc = "Atmel AVR ISP";
id = "stk500";
desc = "Atmel STK500";
id = "avr910";
desc = "Atmel Low Cost Serial Programmer";
id = "butterfly";
desc = "Atmel Butterfly Development Board";
id = "pavr";
desc = "Jason Kyle's pAVR Serial Programmer";
id = "stk200";
desc = "STK200";
id = "pony-stk200";
desc = "Pony Prog STK200";
id = "dt006";
desc = "Dontronics DT006";
id = "bascom";
desc = "Bascom SAMPLE programming cable";
id = "alf";
desc = "Nightshade ALF-PgmAVR, http://nightshade.homeip.net/";
id = "sp12";
desc = "Steve Bolt's Programmer";
id = "picoweb";
desc = "Picoweb Programming Cable, http://www.picoweb.net/";
id = "abcmini";
desc = "ABCmini Board, aka Dick Smith HOTCHIP";
id = "futurlec";
desc = "Futurlec.com programming cable.";
97774ワット発電中さん:04/11/24 12:26:16 ID:PqMTRCs2
>>95
>フェイルセーフ設計

意味も判らずに用語を使うな、ボケ。

壊れたときや、誤動作したときに、重大な事故をを起こさないように考えた設計の事だ。
98774ワット発電中さん:04/11/24 12:36:17 ID:Z49awkjo
>>95
リセットピンが負論理でないのも痛かった
Intelの体質って今も昔も変わらんな
99774ワット発電中さん:04/11/24 12:55:20 ID:ZqF5gbVP
>>97
8255が氏んだり、プログラムが暴走して出力→入力に設定が変わった時にも、
デフォルトで'L'に固定されるようにプルダウンで使うわけだが?

辞書だけの知ったか粘着房氏ね!
100774ワット発電中さん:04/11/24 13:02:33 ID:Bn+xBPDI
>>92
昔16MHzでやった時はそこそこ余裕があったが、25MHzは厳しそうだなあ。
たぶん20MHzあたりが限界じゃないかなあ。タイミングチャート見てないので断言できないが。

>>95
ちゃんと定格に収まるでよ。
RD/WR制御なら電気食う代わりに半分くらいの時間で動いてくれまつ。

まあそれなりに高速なデコーダーを用意しないと、苦労して削った分の時間を食いつぶされて、
悲しいことになるが。
101774ワット発電中さん:04/11/24 13:49:08 ID:hFP5kSgR
>>99
バカタレ 8255使う時点でお遊びだろが。
102774ワット発電中さん:04/11/24 15:02:37 ID:KOKhz2JL
>CMOS版でも5V動作だと思う。当然、入/出力も
>3.3Vトレラントじゃない。

5V系の石に3.3V系の連中の信号を突っ込んでも大丈夫だろ?
ただ、つながれる相手が5Vトレラントでないとリードしたとき
なんかにあれれ?ってことになるけど。

#くそー・・バススイッチが要るじゃないか・・何とかしろ>有寺
103774ワット発電中さん:04/11/24 20:38:58 ID:/6JKNHIi
>>101
漏れも基本的にはそう思う。
今どきはシリアルのI/OもあるしOutportでいいならシリアルDACを使う手もある。
さらにいうとADC/PWMが欲しくてさらにI/Oを追加でっていうときに
ワンチップマイコンを使ったこともある。FPGA(CPLD)で組むこともある。
なんで苦労してバス制御信号にゲート組まねばならんのよ。
104774ワット発電中さん:04/11/24 22:58:47 ID:1yESL60R
  みなさん こんばんは お世話になってる51です。毎日すみません。
  いろいろとご親切に教えていただいて、ありがとうございます。
  「H8に16bitメモリをつなぐ」の件は、今日やっと理解できました。
  昨日までの理解では、
  「ABWCRを16bit幅に設定したんだから、H8は16bit毎に1番地進むし、
            メモリも16bit幅の物だから16bit/番地だ」
  と思い込んでいたのです。なのでつじつまが全然合わず、悩んでいました。
  が、さっき気が付きました。
  「H8は、常に1バイトで1番地として扱い、ABWCRを16bit幅に設定する
  ということは、バイトアクセスで2回分が1回でできる というだけのこと」
  ということに気が付いたんです。(たぶん合っていると思います)
  これに気付いてからというもの、H8マニュアルの内容も、
  みなさんのお話の内容も、スーっと理解できるようになりました。
  嬉しいです。皆さんのおかげです。本当に、ありがとうございました。
   (早速回路図を修正しています。時間もないし....)

   みなさん、ありがとうございました。
105774ワット発電中さん:04/11/24 23:14:44 ID:ERWhc+x0
バイトはバイト
ワードはワード
106774ワット発電中さん:04/11/24 23:20:21 ID:1yESL60R
>>105
エッ? どういう意味ですか? 私の説は....ボツ...でしょうか。
107774ワット発電中さん:04/11/24 23:33:14 ID:1yESL60R
>>64
  51です。
  トラ技'04-1月号P105に載ってる回路図って、違ってますよね?たぶん。
  H8.A0-メモリ.A0, H8.A1-メモリ.A1............となっていますが、
  H8.A1-メモリ.A0....ですよね。
  トレーサーの人が間違えたんでしょうか。
  
>>88
ご親切にありがとうございます。
> 80ではないが、79でLowORと書いてあるのが負論理のORという意味なら正解。
> 負論理のOR、正論ならAND、部品で言えば7408てこと。
これについては、私も間違えていました。
   誤) LowOR → 正) LowNOR
負論理ORで、負論理出力でした。なので、正論理AND(7408)ですね。
ドモルガン変換は、高校の時にやったのを思い出しました。
  
> アドレスはH8-A1->RAM-A0、H8-A2->RAM-A1・・・つまり51で書いてた方が正解。
はい、ありがとうございます。前述のようなわけで、大変よくわかりました。
   
> ついでに言えば、リード時の16bit幅のSRAMはリードのアクセスタイムが
> /UB、/LBのアクティブから規定されているので、70nsのSRAMに25MHzのH58/3069なら
> 1アクセスに4クロックは必要。3クロックでは/WE、/UB、/LBのLパルス幅も足りないと思う。
はい、これについても、確認したところ、仰る通りダメのようです。
/UB,/LBが60nS, /WEが40nSでした。今回は、ADサンプルの関係もあって
H8を16MHzで駆動することにしましたので、たぶん大丈夫だと....思っています。
108>64:04/11/25 00:30:17 ID:116t4P6J
>107
その通りです。memoryはA0-、H8はA1-、になります。
やっとS-RAM 1M 16bitBUS 20nSが手に入ったので、ノーウェイトで試作出来ます。
109774ワット発電中さん:04/11/25 00:38:32 ID:dZ56RuH0
>>91
>>94
アドバイスありがとうございます。
お察しの通り沖のMSM82C55です。これにした理由は、3.3Vから使えるのと、
PPI_A |= 0x02; とかがやりたかったからです。
>のデータバスを開放する時間が異常に短い(Tck/2-15, 25MHzなら5ns)から、
データシート確認しました。82C55が30ns欲しがっているのに、H8では、
5nSですね。どうしよう。「/*WRをいじってホールド時間を伸ばす」との
ことですが、H8が一方的にデータ出力をうち切ってしまうので、これを
何かの素子で保持するということでしょうか。私には大変そうな予感。
82C55の入手性も悪いし、そこで思い切って標準ゲートICでのI/Oを考えました。
入力ポートはHC573のD-ラッチで良しとして、出力ポートはHC273あたりで
考えてみようと思います。 CK = /(/CS * /HWR), LE = /CS * /RD。
あっ! /CSの余りが.....無い.....(泣) HC138でアドレス振るですか。
11090:04/11/25 02:02:42 ID:xXq39CNr
>>93
/WR  /RD  /UB
------------------
 H    H    H
 H    L    L
 L    H    L

ドンマイ!
111774ワット発電中さん:04/11/25 02:16:18 ID:5QjA5jHS
> お察しの通り沖のMSM82C55です。これにした理由は、3.3Vから使えるのと、
> PPI_A |= 0x02; とかがやりたかったからです。

3.3V動作は判るが、後半の意図がよくわからん。沖以外の8255でも、ポートの
リードモディファイドライトは可能だと思うが?

> 82C55の入手性も悪いし、そこで思い切って標準ゲートICでのI/Oを考えました。
> 入力ポートはHC573のD-ラッチで良しとして、出力ポートはHC273あたりで

外部信号の状態をインターバルタイマ割込では間に合わないような周期のタイミ
ングで取り込んで、後から非同期で読み込むような使い方でない場合、入力ポート
はHC245で十分だと思います。

その場合、ちょっと特殊だが、74HC/HCT646,74HC/HCT652あたりなら、部品点数
が半分に減らせると思いまつ。内部構造はいずれもHC245+HC373×2(双方向)で、
制御線は各2本のクロック入力と、ラッチ出力かスルーを選択するセレクタ入力
のほか、646はDIR+/G(245と同じ)、652はA側とB側で独立した/OE(/G)端子が
ありまつ。HCなら入手性は問題ないと思う。

646はポート出力したラッチの内容を読み出すような使い方はできないが、652なら、
A側をCPU、B側を周辺とした場合、SABとOEABを'H'(A→B:374相当,常時OE)で、SBA
を'L'(B→A:245相当)に固定し、/OEBAに/RD*/CS(負論理AND)、CLKABに/WR*/CS
(負論理AND)を繋げば、初期化不要な8255の1ポート相当に使えるはず。

3.3V動作で5Vトレラント品だと、SN74LVC646A,SN74LVC652Aあたり。さらに、
値段は倍くらい(bit単価はほぼ同じ)で、1個あたり16bit構成のSN74LVCH16652A,
SN74ALVCH16646とかも多数ある。但しパッケージは面実装品のみ。

TIのサイトで『Registered Transceivers』で検索するよろし。
11290:04/11/25 02:22:36 ID:xXq39CNr
>>109
>>HC138でアドレス振るですか。
振るですよ。

>> CK = /(/CS * /HWR)

/CS  /HWR  /CK
------------------
 H    H    H
 H    L    H
 L    H    H
 L    L    L

ドンマイ!
113774ワット発電中さん:04/11/25 02:24:57 ID:5QjA5jHS
>>93
'H'=1(True)の正論理でしか思考していないのがまる判り!

/WR   /RD   /UB
-----------------------------
H(False) H(False) H(False)
H(False) L(True)  L(True)  
L(True)  H(False) L(True)  

   ,,v‐v-/l_  (⌒)
  _「/ ̄  く   /
  lYノノ/_ノl_ヽ))
  <イ( l l )l>  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 <|)'|l、"(フノ|l  < スラッシュは飾りじゃありません!プンプン
  ,(ヨリ<>o<>リ']  \______________
  |ト‐!]-ム- i']l
  ヽ_ノv__l/ /
.  ノ[//‐─‐/_/、
 ( /E|,   (フlヨ \
 ,-| El___lヨ /
└-\`^^^^^^´/
     ̄ ̄ ̄
11490:04/11/25 02:32:51 ID:xXq39CNr
>>113
それってまんま /UB = /WE・/RD (負論理OR)) だよね。
悪いけど、君が思い違いしている。

115774ワット発電中さん:04/11/25 02:47:22 ID:xXq39CNr
ていうか、7年ぶりに教科書見ちゃった。
確かに負論理のときは、andとorの演算子を入れ替えるんだったな…って。

そうじゃないと、UB = WE+RD と、/UB = /WE・/RD が等価だというド・モルガンの定理に反するし、
アルテラやザイリンクスのVHDLにも反することになって大変だよ。
116774ワット発電中さん:04/11/25 03:08:06 ID:5QjA5jHS
>>90 = >>114 = >>115
AND演算子に「*」ではなく中黒(・)を使っているのもキモいが、まぁそれは
いいとして、正論理だろうと負論理だろうと、OR演算子は常に「+」だ。

『/UB = /WR + /RD』 をC言語風に書くと...

『UB = (WR == 'L') | (RD == 'L') ? 'L':'H'』だ。

まほろさん、もういちど >>90 に説教してやってくだちゃい。

   ,,v‐v-/l_  (⌒)
  _「/ ̄  く   /
  lYノノ/_ノl_ヽ))
  <イ( l l )l>  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 <|)'|l、"(フノ|l  < スラッシュは飾りじゃありません!プンプン
  ,(ヨリ<>o<>リ']  \______________
  |ト‐!]-ム- i']l
  ヽ_ノv__l/ /
.  ノ[//‐─‐/_/、
 ( /E|,   (フlヨ \
 ,-| El___lヨ /
└-\`^^^^^^´/
     ̄ ̄ ̄
117774ワット発電中さん:04/11/25 03:10:44 ID:xXq39CNr
もういいよ。疲れた。
アルテラとザイリンクスにメールよろ。
118774ワット発電中さん:04/11/25 10:43:20 ID:4BR/VH0y
>>116
だったら ∪ や ∩ を使えよ禿
11972=80:04/11/25 12:04:56 ID:k45H3FCc
今回の混乱は、物理的なの正当性を主張する側と、論理的な正当性を主張する側の争いに見える。
          ___
         ○\   \
要するに      │    >○  を単独で/A+/Bと主張するのがまほろさんで、
         ○/   /
           ̄ ̄ ̄
H8の出力側で既に負論理になっているもの(/A,/B)をさらに反転して、//A+//B (= /A ・ /B) と主張するのが俺なわけです。

というところで手を打ちませんか?
120774ワット発電中さん:04/11/25 12:14:04 ID:k45H3FCc
初心者の方もが誤解しないように、出力も含めて書いておきます。

           ___
       A─○\   \
要するに      │    >○─C  を単独で /C = /A+/B と主張するのがまほろさんで、
       B─○/   /
           ̄ ̄ ̄
H8の出力側で既に負論理になっているもの(/A,/B)をさらに反転して、/(/C) = /(/A)+/(/B) ( /C = /A ・ /B) と主張するのが私なわけです。
この考えは、H8のピンからNOTを介さずにHC08などのANDロジック1個を接続するだけで実現できるという、
物理的な現実と相違が無いように、表現の整合性が求められる際に取られる流儀です。
したがってVHDLでも、こちらの表現が採用されます。

というところで手を打ちませんか?
121774ワット発電中さん:04/11/25 12:41:47 ID:PBNJYpnQ
あげ
122774ワット発電中さん:04/11/25 13:44:15 ID:u+8BZy++
123774ワット発電中さん:04/11/25 13:45:39 ID:KZGLaZHf
近所の部品屋@田舎でPICを頼もうと思うのだが、

PICって ”ピック” って呼称すればいいのか?

124774ワット発電中さん:04/11/25 13:48:08 ID:VLqiGr/Z
そー読むと千石のネーちゃんに殴られるぞ。

ピク が無難。
125774ワット発電中さん:04/11/25 14:13:14 ID:SS8umbUA
えー、そうなんか。漏れの職場ではピックって呼んでる。
今度代理店の中の人にきいてみるわ。たしかピックっていってたやうな。

>>120は火に油を注いでいるやうな。
整理や基本ができてないから話がぐちゃぐちゃで何を論争しているのかさえ不明。
この話の発端あたりで「アクティブだから云々」と言い出している時点で間違い。
最低でも「High(もしくはLow)アクティブだから」と言わないとダメ。
そもそもそういうのを頭の中や言葉で考えようとするからダメ。
こういうものはまずタイミングチャートを書いて論理表を書くんだよ。
書いてる人もいるけど全組み合わせ書いてないのがあるな。
ありえなくても書くんだよ。
どっちでもよければ*とか書いてそれを明示しないとね。
で、それを回路図に落とす。
ものができたらタイミングチャートどおりに動いているか確認するんだよ。
126774ワット発電中さん:04/11/25 14:37:12 ID:+Wq9AF28
>>120
VHDLならもっと高度な記述すると思うけどなあ。
あえてプリミティブチックに書けばこうかな。

C <= "0" when ((not A) or (not B)) else "1"

127774ワット発電中さん:04/11/25 14:55:23 ID:+Wq9AF28
まほろさん(>>116)ってC風と言ってるけどなにげにVerilogちっくw
128774ワット発電中さん:04/11/25 15:10:37 ID:116t4P6J
>123
秋月の店長は、ピックと言っていた。
なのでどっちでも間違われないように、ピーアイシーと発音して注文。(w
129774ワット発電中さん:04/11/25 16:46:50 ID:nSQIIPsE
>>127
そういえばむかしCで回路記述できるっていう話がどっかにあったな。
一般化(?)はしてないのかな。
130774ワット発電中さん:04/11/25 18:55:00 ID:5btnVSh/
>High(もしくはLow)アクティブだから

プゲラ

30年前のネタじゃん。
アクティブが先ね。 アクティブロー アクティブハイ 
でもこれだと能動素子で引っ張ってるのか?とか混乱は広がる。
131774ワット発電中さん:04/11/25 19:16:07 ID:gAaDgA5O
ttp://www.cs.ucsd.edu/classes/wi99/cse140l/lab3.html
・・・ and a high active increment input ・・・
132774ワット発電中さん:04/11/25 19:34:29 ID:owvijg22
>131
お前、言葉の意味つうのを全く理解していないんだな。
全くお前の将来は憂いに満ちてるな。
133774ワット発電中さん:04/11/25 19:58:24 ID:gAaDgA5O
134774ワット発電中さん:04/11/25 20:27:12 ID:nSQIIPsE
>>130
すいません、おっしゃってる意味が分からないんですけど。
135774ワット発電中さん:04/11/25 21:08:43 ID:aeQv7axJ
>>109
>/*WRをいじってホールド時間を伸ばす」とのことですが、
>H8が一方的にデータ出力をうち切ってしまうので、これを
>何かの素子で保持するということでしょうか。

*WRを標準よりも早くインアクティブするように細工すると言う事だと思われ。

つまり、8255がセレクトされてからクロック数を数えるカウンタ(若しくはシフト
レジスタの類)を用意し、そいつで*WR信号を半クロック若しくは1クロック速く
止めてしまえば良い。H8のクロックによっては8255が必要とする*WRパルス幅に
余裕が無くなるのでウェイトが必要になるかもね。
136774ワット発電中さん:04/11/25 21:35:01 ID:3W/nJwq3
>>129
SystemCvsSpecCスレに行くといいのではないでしょうか。
137774ワット発電中さん:04/11/25 21:48:32 ID:mUz+JN9F
>>136
結局高卒は求められたものを答えられないと。
哀れすぎ。
138774ワット発電中さん:04/11/25 21:58:48 ID:mUz+JN9F
>>130
かなり重症な高卒発見。
139774ワット発電中さん:04/11/25 22:04:32 ID:SORn0ca/
マイコン不要で作れるライタで一番お勧めって何ですか?


ttp://www.ueno.no-ip.org/~tube-audio/DAC/atapi_ctl/
ttp://www.ueno.no-ip.org/~tube-audio/ic-amp/PGA2310/index.html

こういうのが作りたいだけで、マイコン自体で遊びたいわけじゃないので聞きにくいんですが。

 ATtiny26L
 AT90S8515
・このあたりが焼けること

・安いこと

・単純なこと

・Win2k以上で使えること

の順番の優先順位です。
140774ワット発電中さん:04/11/25 22:06:00 ID:KB/Bgp7k
>>135
そういえば似たような状況でD8-D15を374てラッチしてホールド時間を伸ばした事はありますな。
たしか/CS*/WRをCLKに入れて、最後に書いたデータでずっとドライブするという手抜き仕様。
まあホールド長い分には別に問題ないからのう。

頭使わない分、配線が増えるが。
141139:04/11/25 22:07:42 ID:SORn0ca/
AT90S1200
を焼けるパラレルライタを作って、

AT90S1200に焼きこんで、再度汎用ライタを作るほうが楽ならばそれでもいいです。

ttp://b2c-1.rocketbeach.com/~jcl/AVRprog.html
でAT90S1200 つくる


http://hp.vector.co.jp/authors/VA029245/PC/avr910.html
で、焼きこんだAT90S1200をつかって複数種用ライタを作る。

ってのは楽ですか?
142774ワット発電中さん:04/11/25 22:32:34 ID:1rW0NG+P
>>139
ここ↓の
http://www.lancos.com/index.html

SI-Prog
http://www.lancos.com/siprogsch.html
ってのを使っていますが、条件には合っていると思います。

あとは>>83とか
143774ワット発電中さん:04/11/26 01:20:02 ID:/c9/Kylq
>>139
それなら素直に頒布に応募しては?
144774ワット発電中さん:04/11/26 08:27:45 ID:g12GFDUN
サンハヤト製のマイコン(w
http://www.sunhayato.co.jp/catalog/micom/data1.html
145774ワット発電中さん:04/11/26 13:03:34 ID:sWq+pgHz
>>144
>ルネサステクノロジ社製高性能16bitマイコンR8C/15を
>使いやすい2.54mmピッチDIPパッケージに収納しました。

ジョークグッズの世界だが、ワンコインで買えることを希望する。
146774ワット発電中さん:04/11/26 18:25:33 ID:MtBNVJqa
>>145
ATTINY26が秋月で@280円だから、それくらいがいいなぁ。
147774ワット発電中さん:04/11/27 10:11:03 ID:5uYJddPJ
>>145
1コイン10万円・・・ってこたないよなー。あれもいちおーワンコイン。

ちょっと、営業に聞いてみよう。採用考えるからって。
148774ワット発電中さん:04/11/28 19:47:34 ID:zDyzBH2x
digi-keyでもATmega88とかATTiny2313はまだ入手出来ないんですかねぇ
149774ワット発電中さん:04/11/28 21:48:05 ID:7qcfQUga
Tiny2313はとっくの昔に発売しました。
今は売り切れてるだけ。
150774ワット発電中さん:04/11/28 23:01:43 ID:HfnzSSlF
>>149
AT90S2313とかでいいじゃん?何処が地がうんだっけ?
クロック20MHzの他に。(デバッグワイヤーなんて機能は使わんだろー)
151774ワット発電中さん:04/11/28 23:41:49 ID:85fQ9ZxR
>>150
萌える機能
  内蔵RC発振、基準電圧内蔵アナログコンパレータ、USI
  timer0でのPWM、BOD、1クロックMOVW命令、拡張LPM命令
まあまあ萌える機能
  拡張されたPWM、SPM命令、高速UART
152774ワット発電中さん:04/11/29 12:20:23 ID:6fQc3juZ
>>151
あ、内蔵クロックって無いんだっけ。なるほど。
アナログコンパレータなんて要らないから、1chでもいいからADC積んでくれるといいんだがなぁ。
(つっか、Tiny26が2313とピン配置が全然違うっていうのは、なんでだ?)

153774ワット発電中さん:04/11/29 12:27:06 ID:/9z9V1U8
>>152
8535/mega以降のと合わせたんじゃない?
154774ワット発電中さん:04/11/29 12:30:41 ID:6fQc3juZ
>>153
あー電源が中央って意味ですか?
 それで思い出したけど、左右でVCCとGNDがクロスするっていうのは、意地悪としか思えないんですが、なんの意味があるんでしょかね?
155774ワット発電中さん:04/11/29 12:36:35 ID:i/aXQjba
>>154
逆挿ししてもちゃんと動くようにするため。(もちろんソフト上の対応も必要だが)
156774ワット発電中さん:04/11/29 12:41:33 ID:6fQc3juZ
>>155
あー、な、ななるほどー。マジで、目からウ○コが落ちました。さんきゅー
157774ワット発電中さん:04/11/29 23:57:27 ID:c7q5SfwZ
>>155
動く動かないより、電源ショートで火災にならない様にだろ。
逆さにさして動くソフトを作るなんて無駄
158774ワット発電中さん:04/11/30 00:10:48 ID:3pejiGcE
そら来たっ!(w
159774ワット発電中さん:04/11/30 08:25:47 ID:P8E2R2JA
ちがうよ
IC内の四角いチップの 左右にGND、上下にVccを持って来ると
自然とあのピン配置になるのよ
PICも同じね
160774ワット発電中さん:04/12/01 11:07:30 ID:Fo0qVT81
PICマイコンは中よりだけど逆さしすると即死するピン配列だったと思うが。
161774ワット発電中さん:04/12/01 12:07:21 ID:1bKCM3DW
>>160
ですね。16F628あたりは、18ピンの5がVssで14がVddです。
逆さに刺すと、丁度GNDとVCCが反対になる最悪パターン。
「逆さに刺しても(電源が逆になるという理由で)壊れることはない」っていうのは、ひょっとして特許だったりして。
162774ワット発電中さん:04/12/01 16:15:46 ID:Fo0qVT81
しかし、TINY26が逆さしで動くというのは面白そう。ジョークでやってみようか。

逆さしといえば、SIP9ピンのオペアンプはその対策からリバーシブルな配列
になったというのを聞いたことが。
163774ワット発電中さん:04/12/02 00:12:46 ID:oZ8p2gIi
AT90S8535使ってるんですが、RTCの発振の不安定さに辟易しています。
LCDに表示した時計を動かして半日もすると発振が止まってたり。

それで、メインのクロック(8MHz)から1秒を作ろうとしました。それもどうもうまくいかない。
8MHzはクリスタルを使ってます。
・TCNT2を8MHzの256分周に
・OCR2に250を設定
・比較一致割り込み発生のたびに変数を125回インクリメント
これで1秒になると思ったんですが、1秒より少し遅いんです。
なんか心当たりある方います?
164774ワット発電中さん:04/12/02 00:49:28 ID:mzQZ3r42
>>163
割り込み処理への移行やそれからの復帰が0クロックで
可能と考えるのはいかがなものか?
165774ワット発電中さん:04/12/02 00:56:03 ID:fK2EopSL
TMR0を設定しなおすとプリスケラーがリセットされますので、その分誤差になる場合がありますので注意しましょう。
http://www.geocities.jp/michi_kou/faq.htm#Q32
割り込みのたびにOCR2に250を足すとか
166774ワット発電中さん:04/12/02 00:58:47 ID:L5KNO6mO
復帰は関係ないでしょ。
割り込み発生後、割り込み処理ルーチン内で割り込みクリアするまでの間、
OCR2と比較するカウンタがまわっているかどうかが問題なのでは?
仕様書読んでくれ >>163
167774ワット発電中さん:04/12/02 01:14:49 ID:y0G1rDd5
>163
どのくらい遅いの?
168774ワット発電中さん:04/12/02 01:21:53 ID:14O5wXxv
メインのクロックがセラロックだったというオチとか?
169774ワット発電中さん:04/12/02 01:34:46 ID:ZPIbb7tU
単に時計の精度についての知識が無い奴だろ。
170774ワット発電中さん:04/12/02 01:47:23 ID:+UeINltD
0から125までカウントしてるとか
171774ワット発電中さん:04/12/02 01:56:39 ID:V5Zj3BHZ
>>163
RTCって、外付けのRTCモジュール?
172774ワット発電中さん:04/12/02 03:45:06 ID:5gNiD92O
話題が変わってしまい、すみませんが、
H8の端子でPWMを取り出す「TIOCA0」というのがありますよね。
この端子記号の略なんですが
Timer Input Output C???? A???? 0 で、CとAは何の略でしょうか。
173774ワット発電中さん:04/12/02 04:06:00 ID:V5Zj3BHZ
>>172
TImerOutputCompareA0
じゃないでしょか?
GRA〜GRDのAね。(違うかも)
174163:04/12/02 08:41:50 ID:oZ8p2gIi
>>164
割り込みが起こってから時間の変数をインクリメントするまでに必要な時間が
一定(つまり秒処理の量が毎回一定なら)構わないんじゃないかと思ってます。

>>165
割り込み発生ごとにOCR2がリセットされるってコトですかね?
たしかに、変数インクリメント125回をいくつか減らすと1秒にかなり近くなるので、
2回目の割り込み発生以降TCNT2が256になるまでカウントしちゃってるかもしれ
ません。ちょっと見てみます。

>>166
割り込みから次の割り込みまでに処理が終わらないということは無いようです。

>>167
感覚的なんですが、1.1〜1.2秒くらいかかってます。

>>171
AT90S8535は32.768kHzのクリスタルをくっつけるピンが用意されていて、それで
時間を扱うことができるって唱ってます。最近安定しないという記述もどこかで見
ましたが。
175774ワット発電中さん:04/12/02 09:01:09 ID:/kAVD0U9
>>172
英語版のデータシートからのコピペ
Input capture/output compare A0 TIOCA0
176774ワット発電中さん:04/12/02 09:38:10 ID:cN5Mab9j
感覚的なんですが、1.1〜1.2秒くらいかかってます。

1分で10秒も遅れるの?
177774ワット発電中さん:04/12/02 10:28:28 ID:QXtbMCC7
フリーランが一番、
正確だし割り込み処理も簡単になる
178774ワット発電中さん:04/12/02 11:11:59 ID:rgZP6xNE
>>177
CTC立てておけばOCで折り返すんだからカウンタの再設定をする必要はないと思うが。
179774ワット発電中さん:04/12/02 11:58:01 ID:WbmufC7b
>>174
まず、メインのクロックは何でしょう?時計ならセラロックはだめよん

TCNT2+OCR2による比較一致割り込みを使っているようですが、
TCCR2をゼロに戻すのはどこで行っています?
TCCR2のCTC2はセットされていますか?
これがなければ結局フリーラン状態で、1/8M*256*256*125=1.024秒に
なってしまいます。それでも1.1〜1.2秒ってことはないけどなあ。

他の人もいっているけどフリーランの方がいいかも。
256分周で突っ走って、オーバーフロー割り込みで変数を1ずつふやしていって、
31250カウント=122周期+18カウントで1秒とする。
実際には122周期で1秒ということにして、端数管理変数に+18しておく。
端数管理変数が256以上になったら、端数管理変数を-256して、
次周期だけ122+1周期で1秒にするようにする。
周期と端数を変数としておけば、発振子の誤差もある程度プログラムで修正できるよ。
32ppmステップの調整=日差2.7秒単位になる
もうちょっと細かく行きたいなら端数を16倍にした数値で管理すれば
1/16で2ppm/日差0.17秒/月差5秒ステップの調整ができる。
発振子が安定していないと意味ないでしょうけどね。
180774ワット発電中さん:04/12/02 12:00:57 ID:cN5Mab9j
普通に水晶使った程度だと、そこまで精度は出ないよね
50ppmや100ppm程度のズレはあたりまえだから。
181774ワット発電中さん:04/12/02 12:28:55 ID:WbmufC7b
>>180
確かに、30ppm/℃とかだもんね。素直に32ppmステップで充分すぎるってことですね。
http://akizukidenshi.com/catalog/items2.php?p=1&q=KTXO-18S&submit=%B8%A1%BA%F7
こんなの使うなら意味あるかな?分周しないと8535には使えそうにないけど。
182774ワット発電中さん:04/12/02 13:25:57 ID:7CShkEb0
>>181
12.8MHzを外部で3〜4分周すれば、8535の動作クロック許容範囲内になるから、
それを直接XTALピンに入力して8535を動作させ、内部タイマで5〜20mS間隔で
インターバル割込を使うのがいいと思いまつ。

電源断時に、CPUをスリープさせて消費電力をsage、RTC部分のみ電池バックップ
動作させるといった回路設計&使い方をしない限り、あえて32.768kHzを使う必要は
ないでせう。

>>179
問題は、電波時計などを除いて、時計が合っているかどうか、また誤差の量を
ソフトで自動判定できないことですな。

秒調整モードみたいなのを作って、そのモードでボタンSWが押されたら、±30秒
以内の誤差を丸めて時刻を補正するとともに、前回補正した時の日時からの経過
時間(秒数)と、今回実際に補正した秒数を使って誤差の割合を計算して、分周比を
微調整するとかかな。但し、1回の補正操作じゃムリだな。
183774ワット発電中さん:04/12/02 13:47:31 ID:rgZP6xNE
8535なら似非DTCXOくらいやれると思うけどな。
ADCで温度を測定、温特テーブルから周波数偏差をキャンセルするように
PWM出力でバリキャップのバイアスを調整(w
184774ワット発電中さん:04/12/02 16:19:47 ID:cN5Mab9j
いっそのこと電波時計を作るとかね
185774ワット発電中さん:04/12/02 17:04:52 ID:oEjeh+0W
あと7年くらいでいいなら、テレビ放送のカラーバーストから拾うのも手だよ。
186163,174:04/12/02 23:35:12 ID:oZ8p2gIi
>>176
先ほど正確に計測したら、実時間で60秒のところ、マイコンのほうは51秒でした。
1分で9秒遅れてる・・・

>>177,178
CTC2=1でOCR2に一致すると、比較一致後のCPUクロックでTCNT2をクリアするって
あります。

>>179
メインクロックはクリスタルです。秋月で買った8MHzのもの。セラロックじゃないです。
0に戻すのはTCCR2じゃなく、TCNT2のことでいいですよね?
とすると、CTC2ビット立てで対応しています。
フリーランはやってみようと思いますが、この方法がうまくいかない理由は知りたいと
思っているので、もうちょい悩んでみます。

>>181,182
水晶発振器は使うことを考えましたが、手元に部品がないので、今の方法を試したあと
でやってみようと思ってます

 まだ解決はしてないですがいろいろ勉強なります。みなさんありがとうございます。
187163,174,186:04/12/02 23:40:04 ID:oZ8p2gIi
winavrのソースの関連する部分を抜き出してみました。
なんかヘンなところありますかね?

int main(void){
・・・・・
TCCR2 |= 0x06; /*256分周*/
TCNT2 = 0;
OCR2 = 250;
TCCR2 |= _BV(CTC2);
TIMSK |= (_BV(TOIE0) | _BV(OCIE2));
sei();
・・・・・
}

SIGNAL(SIG_OUTPUT_COMPARE2){
static uint8_t count=0;
count++;
if(count>125){
count=0;
if((now>=86399)||(now<0)){
now=0;
}
else{
now++;
}
・・・・・・
}
188187:04/12/03 00:34:04 ID:/vTpm6DK
いろいろ試したけども、きちんと8MHzで発振してないんじゃないかという思いが
強くなってきました。
試しにOCR2=125でやってみたら、1秒のカウントがちょうどそれまでの半分くら
いになったので、割り込みやTCNT2のクリアもきちんと動作していると思われます。

半田付けのときにクリスタルに熱加えすぎると発信周波数が変わったりします?
あんまり加熱した覚えはないんですが。
189774ワット発電中さん:04/12/03 01:18:02 ID:aDFDzWN3
クリスタルのピンにプローブを当てると不安定になることがあるので、ソフトウェアの動作の介在しない方法(PWMとか)
でパルスを出して周波数を測ると良いと思われ。

(実はそのクリスタルは偽物だったというオチに1票
190774ワット発電中さん:04/12/03 01:25:16 ID:BTzhQXZm
>>187
>>120を無視してんのはわざとですか?(w
125超えたら0に戻すだと126カウントですよ

191774ワット発電中さん:04/12/03 01:27:46 ID:BTzhQXZm
>>187
アンカー間違えた

>>170を無視してんのはわざとですか?(w
125超えたら0に戻すだと126カウントですよ
192774ワット発電中さん:04/12/03 01:47:44 ID:GeNglFte
>>191
みんなわかってて、それでも9秒/分もずれる根拠にならないから黙ってると思われ。
193774ワット発電中さん:04/12/03 01:55:10 ID:BTzhQXZm
CもAVRも詳しくないけど、8MHz/256/256/126=0.9688120Hz
60秒で58.128秒分しか進まないってことでよく一致してるので
250カウントのとこが思いっきりバグって256かうんとになってないか?

194774ワット発電中さん:04/12/03 01:57:37 ID:BTzhQXZm
>>192
いやあまりにも堂々としたミスなのにいまだ本人は気が付いてないのだから
ほかにももっと大穴が開いてると想像するわけよ(w
195774ワット発電中さん:04/12/03 02:03:26 ID:uzCV5o9d
>>188
水晶の両端(マイコンのXTAL/EXTAL端子)とGND間に、コンデンサ入れてる?入れてる
ならコンデンサの容量は?実装状態にもよるけど、経験的には8MHz近辺だと、12〜15p
Fあたりが適当だと思うけど。

周波数カウンタかオシロでマイコンの端子を直接見れないの?プローブの入力
容量で発振周波数が変化するから正確な測定はできないけど、1分で9秒もずれる
ほどの影響はないから。
196774ワット発電中さん:04/12/03 02:26:56 ID:GeNglFte
>>194
それは言えるね。
例えばどこかに割り込み禁止状態ですげー長いループ
繰り返すルーチンがあるとか。

>>195
いくら帰還容量が適切でないからってクリスタルが15%もずれて発振するか?
CRじゃないんだから止まっちまうだろう。
それにプローブ当てたきゃバッファ入れればいいじゃん。
197774ワット発電中さん:04/12/03 02:57:59 ID:BTzhQXZm
>>196
>いくら帰還容量が適切でないからってクリスタルが15%もずれて発振するか?

高周波回路だと条件外れて自励発振してたってのはあるらしいがデジタル回路じゃありえんか(w
198774ワット発電中さん:04/12/03 03:49:23 ID:j2U9IFiW
>>187

>if((now>=86399)||(now<0)){

now はどう定義してるんだ?
int なら -32768 〜 32767 の値しかとれんぞ!
(unsigned int なら 0 〜 65535)
199774ワット発電中さん:04/12/03 06:23:32 ID:7iT1TQAm
本当にそのクリスタル8MHzか?ってのが一番あり得るような気がしてきた。
200774ワット発電中さん:04/12/03 06:25:03 ID:auLk5eVn
えっと、過去のスレッドでも言われていたが、 8535のRTCは4.0V以上で発振が
不安定になるロットが存在します。Mega8535かMega16に変えてみ。

>198
そういう組み方したらコンパイル時にWarning出るからさすがに気づくと思うが
201774ワット発電中さん:04/12/03 08:35:08 ID:lMQJP2Nw
>>200
Warningって、winavrの場合、ちょっと気がつきにくいかもなー。
そのあとのリンクメッセージが、だらだら続くので、意識してみるようにしないと気がつかない。
202774ワット発電中さん:04/12/03 08:41:54 ID:pX8Se3VU
>8535のRTCは4.0V以上で発振が不安定になるロットが

だからCPUクロックでやってるんだろうが!欲嫁
203774ワット発電中さん:04/12/03 08:51:08 ID:INTUTuEe
>>187
>TCCR2 |= 0x06; /*256分周*/
まさかと思うけどこれ以前のTCCR2の下位3bitは確実にゼロにしてるよね?
安全のため、TCCR2=hogehoge|0x06って形がいいと思う。

nowはsigned long(int32_t)つかってますよね?(now<0)がなければunsigned longでもいいけど
(now<0)の意味は何??(now>=86399)がきちんと判定されるなら不要だと思うが。
目的が時計なら、unsigned char sec,min,hourで、60進桁上がりを判定した方が
あとあと楽だと思うなあ。

countが1〜126で126周期・・・なのはガイシュツだね。でもそれで1秒が1.1秒にはならないなあ。
204195:04/12/03 11:10:26 ID:uzCV5o9d
>>196
通常、マイコンなどのXTAL回路は完全なアナログで、方形波でもないし、振幅もロジ
ックレベルを満たしていないので、XTAL回路に直接バッファを付けることはできない。

また、ロジックIC自体にも10pF程度の入力容量があるし、不安定な発振回路の場合
プローブを当てることによっては発振が止まったり、逆に安定してしまうことが
よくある。
205195:04/12/03 11:10:55 ID:uzCV5o9d
>>197
水晶の共振特性にもよる。デジタルも高周波も基本的な考え方は変わらない。出所不明
の水晶を使って組んだ発振回路で、負荷容量が適切でない場合、本来の共振周波数の
近くに別のQが高いポイントがあって、本来の発振周波数ではない周波数で安定発振
してしまうことはよくある。

電源投入時は、0Hzから発振が始まるわけで、低い周波数の共振ポイントに引き込ま
れて安定してしまっている可能性がある。

昔はLS-TTLを使ってボーレートジェネレータを作ろうとしてユニバーサル基板に
実装したはいいが、3倍オーバートーン発振してたなんてことがよくあったもんだ。
206774ワット発電中さん:04/12/03 11:40:57 ID:VgdBwhGD
>>205
夏場はいいけど、寒くなるとオーバートーンで発振して232の通信ができなくなったとか、コンデンサの定数そのままでICをCMOSに変えたらオーバートーン発振したとか結構やったな
振動でケースの中のクリスタルが欠けて周波数が変わったり、クリスタルにゴミが付着して周波数が変わったり、というのもある
もっと昔、FT243のころはねじをはずすと水晶片が取り出せるので、磨き粉で少しずつ薄くして周波数を調整したと言う話もある
今は発振回路内蔵したのを良く使ってる
207774ワット発電中さん:04/12/03 12:06:28 ID:INTUTuEe
>>204
8535のデータシート見るとHCゲート1つはつけていいと言うか、外部に引き出すなら
バッファ噛ませろと書いてあるようですが、実際にはだめってこと?
208774ワット発電中さん:04/12/03 12:29:50 ID:pX8Se3VU
>>207
だから、データシート見ずに思いつきで昔話語ってるんだよ。
今の話題にオーバートーンやTTLがどう関係有るんだ?
そこまで知識があるなら、こうアドバイスすればいいのに↓


データシート上バッファを接続できると有りますが、
ゲート容量によって発振が安定してしまったり、
逆に止まったりすることもあります。
その場合はコンデンサの容量が適切ではありません。

発振していて、なおかつまだ時間が合わないなら
バッファ出力から周波数を調べて、発振子の不具合か
ソフトの不具合かを切り分けられます。


とかな。
209195:04/12/03 12:34:36 ID:uzCV5o9d
>>206
TTLは入手性や種類の豊富さ、互換性などで、日立とTIが標準だったけど、漏れの
昔居た会社では、三菱製のTTLは他社と特性が違うので、発振回路などには使わ
ないようにって言われていた。

あと、ブルガリア人の友人から共産圏のTTLは性能が悪い(動作マージンが少ない)
と聞いた。

>>207
確かに8535のデータシートにはそう記述があるが、HCなら何でもいいわけでは
ない。HC14などで受けるのは当然だが、配線の引き廻しや長さにも注意が必要。
汚いバラック組みとか論外。同じ8MHzの水晶でも、特性はメーカーによって違う
から、どんな条件でも確実に1個繋げられる保証などどこにもない。
210195:04/12/03 12:36:02 ID:uzCV5o9d
>>208 は、データシートの参考回路をそのままコピペする厨房エンジニア
211波田陽区って癖になるんだよな:04/12/03 12:38:15 ID:INTUTuEe
まあ素人的にはLEDつないで多重ループでウェイト掛けてLEDピコピコをさせてみて
クロックとプログラムから予想できる点滅周期しているかどうかを確認すればいいじゃない〜
ゲートつけてお城、残念!
212774ワット発電中さん:04/12/03 13:06:16 ID:pX8Se3VU
こんだけツっこんでるのに195は何にもアドバイスできないんだな。

厨君が困ってるんだからコピペから始まって、結果聞いて、実際はどうのこうのだろ
俺につっこむ前に
「配線長くしたりバラックだと浮遊容量の影響があるから気を付けてね。」
くらい書けないか?
知識ひけらかして荒してんじゃねぇよ。(俺も荒らしてるなぁ・・・・)

おれは「コピペも出来るエンジニア」だけど、195は「コピペも出来ない老人ボケ」だろ。
213熱暴走 ◆2SA784NN.A :04/12/03 15:02:33 ID:Qtl43auE
>>187
>SIGNAL(SIG_OUTPUT_COMPARE2){
>static uint8_t count=0;
この count って変数は、関数が呼び出される度に0で初期化
される様な気がするんだが、

>>163
>・比較一致割り込み発生のたびに変数を125回インクリメント
>これで1秒になると思ったんですが、1秒より少し遅いんです。
うーむ...現象と合わないねぇ。
214774ワット発電中さん:04/12/03 15:14:27 ID:INTUTuEe
>>213
static変数でもそうなるんだっけ?
215熱暴走 ◆2SA784NN.A :04/12/03 15:23:34 ID:Qtl43auE
>>214
すまん。 間違ってたらしい。 ○| ̄|_
216774ワット発電中さん:04/12/03 19:17:28 ID:q0603O7L
ケチケチせずに、全ソース見せろ。
そうでないと、いつまでたっても結論でない。
あと回路図もな!
217774ワット発電中さん:04/12/03 19:18:03 ID:3XWE6Fjf
発振周波数疑うならさ、まず小難しくカウンタとかじゃなくて
特定のポートを反転させるのをループで組んでマシンステート数数えて
期待値かどうか調べろよ、まずは。
って、C言語か。ま、ループの部分くらいは逆アセかけれるだろ。
218774ワット発電中さん:04/12/03 19:26:20 ID:q0603O7L
>>217
全ソースあるなら、シミュレータにかけられますよね。
219774ワット発電中さん:04/12/03 19:56:03 ID:e6BCDahD
>>209
>HC14などで受けるのは当然だが
脳味噌、膿んでないか?
XTAL発振回路をなぜシュミットで受けないのか、考えつかんのか?
他にも変なこと書いてるが、デジタルIC使ったこと有る?
220774ワット発電中さん:04/12/03 20:12:06 ID:pVZv/owl
CR発信と勘違いしてる様な気がする。
221774ワット発電中さん:04/12/03 20:29:36 ID:7RFND8Bu
最近のmegaとかtinyは発振の振幅を設定するオプションがあって
デフォルトでは小振幅なので注意した方がいいな。
222774ワット発電中さん:04/12/03 20:46:48 ID:b36lqzE1
>219
ボケ、バカ、カス。
下手に知恵付けるなよ。195みたいに、アカラサマな厨房はスグわかるから
初心者スレ以外では放置でいいよ。
223195:04/12/03 21:01:45 ID:uzCV5o9d
>>219 , >>220
CR発振も、水晶発振も基本は同じです。実は、リアルで発振モジュールしか使っ
た経験しかなくて、水晶で発振させると方形波が出力されると思っていまつか?

パック入りの刺し身がそのまま泳いでいると思っている、魚を捌けないアフォな
主婦と同レベル?

>>221
最近のICは至れり尽くせりで、結果アフォな「園児にあ」が量産されるのでつね。

>>217
解析用に書いたコードがバグる罠。ポートにセットしているどれかの定数定義
(#define)が間違っている可能性もある。
224774ワット発電中さん:04/12/03 21:01:53 ID:9qLod6zl
自称非初心者ってどうして性格悪いの?
225195:04/12/03 21:03:22 ID:uzCV5o9d
>>224
リアルな世界では、誰にも仕事を評価されないから。
226774ワット発電中さん:04/12/03 21:08:31 ID:e6BCDahD
>>222
しまった、阿呆にレスすると、ボケ、バカ、カス扱いされるのか!
以後、注意する。
にやり、もだめ?
227774ワット発電中さん:04/12/03 21:16:03 ID:PpYJQGG4
とよぞう注意報?
228774ワット発電中さん:04/12/03 21:26:56 ID:b36lqzE1
>>226
だって、下手に知恵付けたら、アカラサマには判り辛くなっちゃうじゃん。

刺身のパックがそのまま泳いでいることを知らないようなカマトトだから
ちっとやそっとでは付け焼刃にもならないだろうけどね。
229774ワット発電中さん :04/12/03 21:45:27 ID:vr3DIgWp
GCCをべステクでDLしたら3048fのターゲットがありませんでした。
すごくショックで、HPをよくみると8月24日にバージョンアップして
3048を削除したとのこと。

GCCでコンパイルしたいのですが、誰か助けて・・・
230774ワット発電中さん:04/12/03 21:45:38 ID:e6BCDahD
>>228
最近、馬鹿を指摘すると、何故か3,4レスぐらい、別IDで馬鹿レスがフォローしてくるので、
ついつい。

まあ、わかってないようだから、上塗りをさせただけで、「実害」は無かったということで。
231195:04/12/03 22:00:38 ID:uzCV5o9d
>>229
C/C++自体は、特定のCPU周辺に依存するものではないから、定義ファイルと、
スタートアップファイルを自分で用意すれば使えるだろ。

以前は、定義ファイルはルネサスのサイトにあったが、今もあるかどうか知らん。
手間を惜しまなければ、自分でも作れるだろう。

>>230
面倒だから放置していたが、おおかた発振振幅が少ないから、発振振幅がシュ
ミット幅を越えないとでも言いたいんだろう。

きっと、脳内知識だけで、シュミットで発振回路を作った経験すらないんだろう
なぁ。脊髄反射で、発振回路はUHC04とかな。

>>222>>226みたいな低レベルが偉そうな顔している会社って、感化された同類
が量産されて企業文化を作っていくんだろうな。
232774ワット発電中さん:04/12/03 22:29:09 ID:tp3OzR7q
お前たちもう寝なさい
233774ワット発電中さん:04/12/03 22:59:08 ID:EnIfz3u5
>>232
陛下じゃないのに偉そうなこと言うな
234774ワット発電中さん:04/12/03 23:08:39 ID:GeNglFte
今日は賑わってるね。

つまりあの方は、

@AT90SではXTALの出力にバッファが接続できることを知らなくて、
後であわててデータシート読んだ。そしてTinyAVRでは振幅が小さくなって
バッファが接続できなくなってることをまだ知らない。

Aプローブの容量くらいでは影響ないといいながら、バッファの入力容量はダメと言う分裂症。

Bマイコンをコピペかつバラックで組んでまともに動かせなかった。以来データシートの参考回路をまったく信用しない。

CTTL全盛時代からの老練な経験があるのに他人にまともなアドバイスが出来ない。

Dリアルな世界では誰にも仕事を評価されない。

E自分の低レベルを知らず社内では偉そうな顔をしてる。


って事で良いか?
235774ワット発電中さん:04/12/03 23:31:46 ID:hSKfjdEh
>>234
あわてて軟弱和訳PDF見てみたが、

AT90S8535
注: 外部デバイス用クロックとしてMCU発振器を使用するとき、
図で示されるようにHCバッファが接続されるべきです。

TINY11
注: 外部デバイス用クロックとしてMCU発振器を使用するときは、
図で示されるようにHCバッファが接続されるべきです。

と書いてあって、TINYでもバッファが使えるみたいなんですが?
236774ワット発電中さん:04/12/03 23:47:18 ID:GeNglFte
>>234
古いめのTinyはいけるよ。
最近話題のTiny2313のシート読んでみな。どこにも書いてないから。
英文しかないけど「90S2313からTiny2313へ乗り換えるにあたって」
みたいなPDFがあって、そこに「出来なくなりました」って書いてある。
で、実際に試したらホントにダメだった。
237774ワット発電中さん:04/12/03 23:52:41 ID:GeNglFte
俺の書き方も悪かったね。ゴメンゴメン。
でね、Tiny2313にはIOポートの1本からクロックを出力するオプションが設けられてる。
238774ワット発電中さん:04/12/03 23:56:43 ID:GeNglFte
連続カキコごめんなさい。
ふと思い出してDigi-Key見たらDIPパッケージが在庫復活してるね。
今度は何日で売り切れることやら(w
239774ワット発電中さん:04/12/03 23:57:20 ID:uzCV5o9d
>>234 = >>236
アンカー間違えるほど必死だな。(w墓穴掘って、後出しの理由付け見苦しい。
240774ワット発電中さん:04/12/04 00:04:30 ID:rll7PvmC
>>239
(´・ω・`)ショボーン
だから書き方悪かったってばぁ・・・・・・アンカーはちょっとしたミスじゃん。
昨日遅くまでココにいたから眠いんだよ。
もう寝るから許して。
241774ワット発電中さん:04/12/04 00:18:24 ID:9JRTOYAu
>195って、死んだ魚は見たことがあるけど、泳いでる姿は
見たことが無いという類の人っぽいね。
242774ワット発電中さん:04/12/04 00:30:43 ID:nwE/U9K1
>>236
あ、ほんとだ。
http://www.atmel.com/dyn/resources/prod_documents/doc4298.pdf
The crystal Oscillator in AT90S2313 is capable of driving an additional clock buffer from
the XTAL2 output. The ATtiny2313 does not have a rail-to-rail swing on oscillator pins
and can therefore not be used for this purpose. Note however that the new Clock Out
(CKOUT) feature could alternatively be used to drive an additional clock buffer. CKOUT
is located on PD2, which also is used for the External Interrupt 0.

243774ワット発電中さん:04/12/04 00:35:06 ID:nwE/U9K1
>>238
あ、ほんとだ。あと102個だ。256円だ。

そういえば、PIC10F200Tの6ピンPICって何に使うんだろ?
244774ワット発電中さん:04/12/04 00:44:23 ID:hoQ1VK+4
和訳PDFを見るのはヘッタレ。

....と逝ってみるテスト。
良い和訳は原文の間違えが修正されてることもあって、一概にダメとも言えないが。
245774ワット発電中さん:04/12/04 00:55:21 ID:nwE/U9K1
>>244
まーそー言わないで(w
前から思っているんですが、日本語と英語と同じ速度で読める場合、日本語の方が「漢字」というインデックスがあるので
速読に向いていると思うんですが、どうでしょか?

Atmega88はまだDigi-keyで入手できないですねー。
246195=239:04/12/04 01:16:36 ID:HaZaHEL6
>>236
そこまでする価値があるかどうかは別だが、『入力C結合+HCU04で構成した反転
バッファ』でTTL/CMOSレベルに増幅してやれば、無理やりクロックを取り出せ
ないこともないだろうな。参考回路のコピペしかできない>>212などにはまず
できない芸当だけどね。

>>243
漏れが見ている間に100個→96個に減った。このスレの連中は、セコイやつが多いな。
だが、いずれにしろ引き出しの肥やしになるだけだろう。
247187:04/12/04 01:18:15 ID:OmhEkXSo
今週後半仕事が忙しくて、検証の時間があんまり取れないんですが・・・
ホントたくさんの方にアドバイスしてもらっててありがたき幸せって感じです。
今日はヘトヘトなのでとりあえずレスだけで、明日検証してみます。

>>189
クリスタルは多分間違いないと思う。
背中に「R0800N34」って書いてます。

>>191
170を敢えて無視してた訳ではなく、見直しても効果が薄いと思ったので
反応するの忘れてました。ごめんなさい>>170
125カウントを間違えて126にしてるのは確かです。

>>195
コンデンサは22pFを入れてます。秋月の店員に相談したら22pFくらいで
いいって言われたんでそのまま。

XTAL1 XTAL2
| |
|--|□|--|
= =
| |
GND GND

オシロはもっとりません。なにせマイコンと電子工作はじめたのが9月くらい
なんで、機材があまり充実してませんで・・・
ACの電圧と周波数測れるテスターは持ってるんですが、それで測れるかな。
明日試してみまする。

>>196
main()の最初の各種初期化の場所以外で割り込み禁止は一切かけてません。

>>198
nowはglobalのuint32_tです。
現在の時刻を刻んだり参照したりするために用意してます。

>>201
コンパイル時、特にwarningは出てませんでした。自分なりに気を付けて見
てます。

>>203
いろいろいじっているときに、TCCR2の値をLCDに表示して様子を見てまし
たが、下位3bitは0でした。ただ、明示的に0と設定していたわけではないの
でそれはソースに追加することにしてみます。
あと、now<0は、プログラムの別の部分でポインタ制御をミスっててnowに正
しい値が入らなかったときのトラブル対処試行錯誤の残滓です。今は無くて
も正常に動きます。
hour,min,secで分けた方が楽かもしれないと、今は思ってます。今後の課題。

つづく
248187:04/12/04 01:28:12 ID:OmhEkXSo
>>205
>の水晶を使って組んだ発振回路で、負荷容量が適切でない場合、本来の共振周波数の
>近くに別のQが高いポイントがあって、本来の発振周波数ではない周波数で安定発振
>してしまうことはよくある。

へぇー、そんなことがあるんですか。コンデンサの容量を変えて試してみることに
してみます。

>>206
>もっと昔、FT243のころはねじをはずすと水晶片が取り出せるので、磨き粉で少しずつ薄くして周波数を調整したと言う話もある
↑これ、すごいっすね。やってる場面を想像すると・・・すごく面白そう。

>>217
C言語は5年ほどやってたんですが(といっても10年前だけど)アセンブラは皆目
わかりまへん・・・
マシンステート数?? 言葉の意味から理解できないので調べてみまする・・・


眠い、今日はもう寝ます。
249774ワット発電中さん:04/12/04 01:52:23 ID:nwE/U9K1
>>248
WinAVRをProgrammers Notepadで書いているなら、MFile のDebugFormatを、AVR-ext-Coffにしておけば、
cofファイルを出力してくれるので、これをAVRStudioで開いてAVRSimlatorでシミュレーションすれば、
マシンサイクルを出してくれます。
250774ワット発電中さん:04/12/04 06:38:03 ID:Yfga6fyW
>>233
× 陛下じゃないのに偉そうなこと言うな
○ 誰このジジイ?
251774ワット発電中さん:04/12/04 14:00:35 ID:3rpk3LOB
>>247
>nowはglobalのuint32_tです。
おーい、そんな変数で(now<0)なんて・・・ほんとにコンパイラは警告しなかったの??
252774ワット発電中さん:04/12/04 14:12:19 ID:nwE/U9K1
>>251
#include <inttypes.h>
int main(void)
{
    uint32_t now;
    now = -1;
    if ( now < 0){
        now = 0;
    }
}

をavr-gcc (GCC) 3.4.1でコンパイルしてみましたが、
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
-Wall -Wstrict-prototypes -Wa,-adhlns=test.lst -std=gnu99 -Wp,-M,-MP,-MT,test.o,-MF,.dep/test.o.d test.c -o test.o

ウォーニングは出ませんみたいです
253234:04/12/04 14:39:32 ID:rll7PvmC
俺が寝てる間に2313の在庫が66個になってるな。
自称セコくない「あの方」が30個買ったかな?
今度はコピペでもちゃんと動くといいね。(w
254774ワット発電中さん:04/12/04 15:45:16 ID:0+pdqlCf
>>248
217だが。見当つかないなら、話がややこしくなるだけっぽいから忘れてくれ。
255774ワット発電中さん:04/12/04 15:48:53 ID:0+pdqlCf
>>252
まじっすか(AAry
これはまずはソース全文上げもらってみんなでlintしたほうがw
256774ワット発電中さん:04/12/04 16:48:53 ID:wp5/PEOJ
>>252
VC6でもwarning出ませんです
257195:04/12/04 18:04:12 ID:HaZaHEL6
>>253
粘着コピペ房痛過ぎ。お正月は買った2個のTinyでお勉強ですか?いつかコピペ房を
卒業できるといいね。

案外、>>253は虎戯に記事連載しているヤツだったりしてな。いやはや、自分の
視点でしかモノを見られない人間の末路哀れ、残念!

>>252 >>256
この場合、符号なし整数(必ず0以上の値)を0未満かどうか比較しているif文が
成立することはないというだけで、論理的な間違いではあっても文法上にはエラー
ではない。で、親切で警告メッセージを出すかどうかはコンパイラ依存で言語
仕様じゃないから当然の結果でしょう。

警告を出すべきではという点では、キャストなしで、符号なし整数に負の値を
代入している『now = -1;』の行も同様のはず。
258774ワット発電中さん:04/12/04 18:51:05 ID:3rpk3LOB
>>257
まあ親切の範囲内だと思うけど、意外だったなあ。
以前for()文で成立しない条件文でエラーが出たような気もしたんだけど
別の言語の記憶違いだったのかな?

このnow<0は本当に成立しないんだろうか?
まさかnowが勝手にsignedにされて、0x80000000を越えたら成立しちゃうとか(^^;)
68年ちょっと動かすと確かめられる(w
あとでアセンブルリスト見てみようっと。

やっぱり面倒でもcastしないと怒られる(warning)仕様の方がいいなあ。
C言語でそれはぬるま湯ですか?
259774ワット発電中さん:04/12/04 18:56:13 ID:wp5/PEOJ
>>257
他人を馬鹿呼ばわりする椰子は信用できない。

_| ̄|(・∀・)
260234:04/12/04 19:41:19 ID:rll7PvmC
>お正月は買った2個のTinyでお勉強ですか?

いや、その頃に今出荷中の商品に乗ってるTiny2313かその上位マイコンに
バグが出てドタバタしてると思う(w
そうでなけりゃARMのお勉強してるかな?

孤独な窓際40代と違って現役で量産品開発してる人間は忙しいんだよ。
261熱暴走 ◆2SA784NN.A :04/12/04 19:48:08 ID:t9J5SFVi
>>247
取り敢えず原因の切り分け(絞込み)を行った方がいいよ。
>ACの電圧と周波数測れるテスターは持ってるんですが、それで測れるかな。
という事なので、>>187
>SIGNAL(SIG_OUTPUT_COMPARE2){
>static uint8_t count=0;
 −☆−
>count++;
☆の箇所に、関数が呼び出される度に、どこかの出力ポートを
トグルする(0→1→0→1→0→1・・・)処理を追加して、そのポート
の周波数を測って味噌。
源発振とカウンタの設定に問題が無ければ63Hzになる筈。
262195:04/12/04 20:11:38 ID:HaZaHEL6
>>258
言いたい内容がよくわからんけど、intだろうがlongだろうが、「signed」と
「unsigned」は、中身を符号付きか符号無しか扱うかの違いだけで、実体は
同じものだぞ。

面倒なんでcharで説明するが、0xffは「signed」なら「-1」だが「unsigned」
なら「255」だ。

コンパイラは、「unsigned」な値の比較に対しては、carry(bollow)フラグのみ
による条件分岐命令を、「signed」な値の比較に対しては、carry(bollow)フラグ
だけでなく、signフラグを含めた条件分岐命令を使ったコードを生成する。

「unsigned」の値にMSB(最上位ビット)が'1'にセットされた値になっても、
コンパイラのバグか、キャストで一時的に「signed」としない限り、その値が
負の値と扱われることはない。

> やっぱり面倒でもcastしないと怒られる(warning)仕様の方がいいなあ。

KPIT TOOLSのH8用gccは警告が出たような気がする。gccといっても互換性に
疑問が残るので、あまりそれをあてにしたコーディングはしない方がいい
でしょうな。

VC++4.xなんぞ、(関数を抜けたら破棄される)ローカル変数への参照を返すコード
を書いても警告が出なかった。
263195:04/12/04 20:14:00 ID:HaZaHEL6
>>260
てっきり、誰かにかまってほしい孤独なヒココモリ君だと思ってましたが...
脳内で量産するのはリビドー?Tinyマイコンの次はARMのコピペですか?
大変ですな〜。
264774ワット発電中さん:04/12/04 22:17:55 ID:Tp84R54T
>>258
そういうのはコンパイラではなくlintの仕事では
265258:04/12/04 23:17:15 ID:4Q23KLV/
>>262
実体は同じなのは当然わかってるよん。
絶対成立しない・必ず成立する条件式にWarning出したらwhile(1){}もWarningだし
http://www9.plala.or.jp/sgwr-t/detail/TypeConversion.html
now=-1ってのはいちおう0xFFFFと解釈される根拠もあるんだね。勘違いしてた。
ちなみにwinavrに、
  unsigned int now,now2;
  now=TCNT1;
  if (now<0)
  {
    TCNT1=now;
  }
ってのを入れてみたら、やっぱりifブロックは絶対不成立として丸ごと無視されてしまっていました。
ところが、(now<-1)にすると、-1が0xFFFFに解釈されるためかこうなった・・・
296:test03.c   ****   if (now<-1)
631          .LM64:
632 0248 2FEF       ldi r18,hi8(-1)
633 024a 8F3F       cpi r24,lo8(-1)
634 024c 9207       cpc r25,r18
635 024e 11F0       breq .L22
297:test03.c   ****   {
0xFFFFの時だけ不成立ってことですね。
nowをsigned intにすると最後のbreqがbrgeに変化した。0と正の数で不成立に変わる訳か。
気を付けないと大変なんだな。

>>264
というわけでコンパイラにチェックしろという無知なる要望は撤回しま〜す
266774ワット発電中さん:04/12/04 23:33:33 ID:4Q23KLV/
>>265
ありゃカットペースト間違いで意味分からん文章になってる。
絶対成立しない・必ず成立する条件式にWarning出したらwhile(1){}もWarningだし
やっぱり(now<0)を跳ねろってのは無理ですね。
267248:04/12/05 19:14:40 ID:cH8WwLfw
>>249
開発環境は秀丸とmakeコマンドのみで、studioはインストールしただけで
使い方がわかんない状態でした。
その方法でstudioでシミュレーションできるようになりました。ホント助かり
ました。
で、今日、しばらくハマって調べてみてましたが・・・原因が判明しました。

SIGNAL(SIG_OUTPUT_COMPARE2)
で125回に1回nowをインクリしたあと、lcd制御関係の処理を入れてました
が(時計表示とか温度表示の更新処理)、これの処理に190msも要して
いました。要は125回に1回ごとに次の比較一致割り込みまでに、処理が
終わりきってませんでした・・・

なので、>>174で書いてた、
>割り込みから次の割り込みまでに処理が終わらないということは無いようです。
↑これがウソでした。ごめんなさい。

時間のかかっていた処理をすべて省いたたあと、
・main()の CTC2=250 → CTC2=249
・SIGNAL(SIG_OUTPUT_COMPARE2)の count>125 → count>=125
の変更を追加したところ、シミュレータ上ではぴったり1000msでnow++が
実行されるようになりました。
ありがとうございます。

ただ、実機に書き込んで実行したところ、ちょっと早く進むようです。
ざっと計ったところ、1時間で15秒くらい進むようです。
コンデンサの容量でもいじってみようかしら・・・
268248:04/12/05 19:20:44 ID:cH8WwLfw
>>251
他の方も書いてますが、warningは出ません。

>>261
試してみましたが、うちのテスターではどうもきちんと測定できない
みたいで・・・
テスターの片方を8535の出力ピンに、もう片方をGNDやVccの1/2の
電圧にしたり、いろいろ試しましたが周波数うまく出てこないです。
シミュレータ上はきちんとON/OFFを繰り返してますが・・・
測定周波数のMAXは4MHz。機種はMETEXのM-3270Dですけどね。
269774ワット発電中さん:04/12/05 20:22:39 ID:RHVlavyp
最後に水晶の周波数が8.033MHzだったというおちだったりして
270774ワット発電中さん:04/12/05 20:50:18 ID:iVTO0BT4
残念ながら最後の落ちはOCR2=249でしょう。
旧T/Cのプリスケーラ値≠1は比較一致動作が異なりますので。
(本来はエラッタ相当)
この値では1秒が996msで、1時間に14.4秒進むでしょう。
271267:04/12/05 21:29:00 ID:cH8WwLfw
記述ミスありました
× CTC2=250 → CTC2=249
○ OCR2=250 → OCR2=249
でした。

>>270
仕様書(といっても日本語訳のもの)を見ると、250で正しく動作すると解釈
できたので、当初はOCR2=250としていました。
シミュレータを使うとOCR2=249としたときに、正しいタイミングとなっていた
ので249と変えていました。
仕様書の記述と一致していなくて疑問に感じていました。
今、時刻のずれを置き時計と並べて測定していたところですが、実時間20分
で5秒程度進んでいましたので、指摘の一時間あたり14.4秒にかなり近いよう
です。250にして試してみます。
ありがとうございます。
272774ワット発電中さん:04/12/05 21:45:59 ID:KOtTwqJd
>>267
割り込み処理部に長い時間かけてはイケナイっていうのは基本中の(ry
273774ワット発電中さん:04/12/05 21:52:02 ID:KOtTwqJd
あと、シミュレータは、必ずしも完璧じゃなくて、タイマー関係でいろいろバグ(というか仕様というか)があるようです。
274271:04/12/05 21:54:08 ID:cH8WwLfw
えー、原因はOCR2=250でした。
20分ほどまわしてますが、目(LCD)と音(置き時計)で確認する限りずれは
発生しません。ぴったりです。

総括すると、
・割込関数に重い処理を入れていた
・比較一致の発生タイミングがシミュレータと仕様書で違っていた
です。
大変お騒がせしました。おかげさまで解決しました。マイコン初心者なんで
随分勉強になりました。
どうもありがとうございまする。

今日ずっとこれやってて、そろそろ嫁の目が恐くなってきたので今日は終わ
ります。
275166:04/12/05 22:24:05 ID:LrohCTTh
>>267,274
おめでとう。
>>187の最後の・・・は気にはなってたのですが、自力で解決しましたね。
この辺のところを一度やっておかないと、システム設計は難しいですね。
私の周りにも「よし、じゃあ2μ秒毎に割り込みをかけよう!」などと言う人がいましたw
ちなみに、割り込みフラグのクリアは割り込み処理ルーチンに飛んだとき、
自動的に行われるようですね。勉強になりました。(もう設計してないけど)
276274:04/12/06 23:46:02 ID:TwTGimLu
>>275
いやいや、アドバイスどうもありがとござんす。
自力というか、今回は教えてもらったAVRStudioが使えるようになったんで
解決できたって感じですかね。あのツール、すばらしいです。

AVR関連の書籍、もっとたくさんあってもいいと思うんですけどねぇ。
277774ワット発電中さん:04/12/06 23:51:13 ID:EMlYT22X
>>276
そもそもAVRStudioを使わずに、どうやって書き込みしているんですか?
ちょっと気になったもんで。
278276:04/12/07 00:59:51 ID:zZI0EI9Q
>>277
↓ここ見てCOMポート用ISPケーブル作りました。
http://elm-chan.org/works/avrx/report.html

財務省からライタを買う金がなかなか出ませんで・・・
279774ワット発電中さん:04/12/07 03:48:52 ID:JTSf78Kt
財務省をソープで働かせて金作れ!!
280774ワット発電中さん:04/12/07 16:24:41 ID:GCMhXXa1
売り物にならないから、個人の退蔵品になったんだろが
281初心者:04/12/07 17:46:02 ID:Sn2kYPfB
先輩方助けて下され・・
秋月のTiny26Lの件で
AVRISPを使い「リセットピンをIOピンして使う」という設定にヒューズビットを書換えた
当然シリアルプログラミングでは2度と元に戻せなくなって
秋月のライタを引張り出したが良く読むとシリアルプログラムだったので使えない
STK500しか無いと思い専用ケーブルを製作したが動作しない

STK500でTiny26Lにパラレル書込みしたいのだが、結線を教えて欲しいのです。
あちこちで情報を集めるが回答が全部異なるという珍現象がおこり
全部試したが動作しない(チップを認識しない)

となたか日常的に使っておられる方、お助け下さい。
282774ワット発電中さん:04/12/07 18:00:09 ID:hbBjz6Zp
>>281
正解は、




秋月に行って、もう一個買ってくる
283774ワット発電中さん:04/12/07 20:49:45 ID:IHMxv7Vt
>>280
ソープで働かせるのは無理なので、腎臓売らせました
284774ワット発電中さん:04/12/07 20:52:26 ID:MMdDO1Nj
>>281
STK500の説明書に全部書いてあるはずだが?
最新版をアトメルのサイトから拾ってこい。
285774ワット発電中さん:04/12/08 00:41:37 ID:QSTUyeC2
>>284
STK500の、その、パラレルプログラミングのところ、
わたしゃ読むのにメゲた。わけわからん。
286初心者:04/12/08 01:14:48 ID:KfB5RyxV
>282
Tiny28Lは10個買ったので、問題の26Lを捨てれば良いのですが
今後の為に是非知りたいというか
STK500の取り説どおりケーブル接続したのに動かないのに腹が立つ
287初心者:04/12/08 02:55:04 ID:KfB5RyxV
ATMELのSTK500の原文を見に行ったらTiny26が全く登場しないとは
いったいどゆこと?
288774ワット発電中さん:04/12/08 04:22:26 ID:d1fS4lVr
>>287

ttp://www.atmel.com/dyn/products/tools_card.asp?tool_id=2735
> STK500 User Guide - NOTE: See AVR Studio Help files for latest information
> (Manual, 61 pages, updated 3/03)
289初心者:04/12/08 12:06:56 ID:KfB5RyxV
>288
 これも当然見たけど
 Tiny26登場せずだったが、どこに載ってますか?
290774ワット発電中さん:04/12/08 13:17:38 ID:an2srByS
>>289
AVRSTUDIO4.10のSTK500用helpに載っていたよ。
heroさんとこの日本語版もあり。
STK500.CHM (473KB) 4.10J0 04/9/5 STK500スタータ キットの日本語版ヘルプ ファイルです。
の、ハードウェア→ジャンパ部→ATTiny26高電圧プログラミング
291初心者:04/12/08 13:41:31 ID:KfB5RyxV
>290
 ありがとう、確かに手元の取り説と配線が違う
 これから確かめてみます。
292774ワット発電中さん:04/12/08 14:41:04 ID:5+BciNgC
293774ワット発電中さん:04/12/08 14:43:36 ID:5+BciNgC
まちがえたぞ!!!!
おい!!!まじかよ”!!!!!!!!
( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`) ヽ(`Д´)ノマゼテクレヨ
http://www.sunhayato.co.jp/catalog/micom/data1.html
http://www.sunhayato.co.jp/catalog/micom/data1.html
http://www.sunhayato.co.jp/catalog/micom/data1.html
http://www.sunhayato.co.jp/catalog/micom/data1.html
294初心者:04/12/08 16:38:40 ID:KfB5RyxV
皆さんありがとうございました。

結局、最新版スタジオ4をダウンロード・再インストールし
ヘルプ→ツールヘルプ→STK500と追いかけてやっとこさ結線図が判明し
動作OKでした。

他の英文のSTK500ユーザガイド・日本語のSTK500ユーザガイド・STK500ヘルプ・Studio4ヘルプともが
違っていて、唯一上のものが動作したわけです。
295774ワット発電中さん:04/12/08 19:49:52 ID:an2srByS
>>293
激しくガイシュツだと思ったが。
同じURL4つも並べるとは、サンハヤトかルネサスの方ですか?

でも、20pinでフラッシュ16K/EEPROM2Kってのはちょっとは面白いかも。
いろんな表示パターンを保存して表示させるとか。
296774ワット発電中さん:04/12/08 22:43:32 ID:ol7YqObJ
>>293

…正直、今更感が漂うな…がいしゅつだしな…。
中身がSH3-DSPだったら激しく欲しいわけだが。
297774ワット発電中さん:04/12/09 03:46:25 ID:VRYXMU48
先輩方、悩み相談にのっていただけませんか。

H8で、Cでプログラムを組むとき、スタートアップルーチンというのを
アセンブラで書くのですが(とは言っても、コンパイラに添付の例に少し手を加えるだけ)
これに関しての疑問です。

このスタートアップルーチンに書く主な内容は、
・SCIの設定
・バスコントローラ関係の設定
・DDRの設定、ほか
ですが、
これらの設定は、main()の先頭で設定できるものばかりですよね?
例えば、DDRは、reset後はポートは入力なので、main()の先頭で、
DRの値を書き込んでから出力設定にすればいいと思うのです。
SCIの設定も同様にmain()の先頭で可能ですし。
同様にバスコントローラの設定でさえ....。
そうなると、スタートアップルーチンに書くべき(書かなければならない)内容は
何でしょうか? このあたりの事情を教えて頂けないでしょうか?
(イエローソフトのCコンパイラを使用しています)
298774ワット発電中さん:04/12/09 05:38:40 ID:+veR07K7
スタートアップのテンプレート見て必要ないと思ったならいいじゃん
299774ワット発電中さん:04/12/09 06:52:37 ID:ItzMa24E
>>297

バスコントローラ設定は、スタックの位置(っていうかメモリの扱い方)によっては後に出来ないだろ…。
外部のDRAM領域にスタックフレームを設定したくなったらどうするんだ?

まぁ他のI/Oポート初期設定に関しては流儀によるから何ともいえないけど。
300774ワット発電中さん:04/12/09 09:07:01 ID:fCd9/fk6
>297
まず必須なのは、main関数にgotoする部分。コレがないと絶対ムリ。

外付けメモリ関連については、そこをスタック領域なんかに指定していなければ
後から設定しても大丈夫だと思う。

SCIの設定は、YellowScopeを使うならスタートアップルーチンで設定しておくべきかと。
301774ワット発電中さん:04/12/09 13:48:44 ID:BwDCp0Jf
>>297
あらゆるH8に当てはまるかどうかしらないけど、ROMで動かすならリセット直後
にスタックポインタの設定が必須。

あと大抵はdataセグメントの初期化とbssセグメントのクリアもCのコードを呼ぶ前に
アセンブラ部分で書いておく必要がある。
302774ワット発電中さん:04/12/09 14:33:57 ID:7ZtrLyqK
297です。
みなさん、ありがとうございました。
だいたいの感じがつかめてきました。

リセット後、CPUが動作するのに必要な部分は、スタートアップに
記述する必要があるんですね。
  ・main()の先頭
  ・バスコントローラの指定

  ・スタック領域の指定
  ・セグメントの指定
    (イエローのコンパイラだと、この2つは統合環境の中で
     割り当てを指定する部分がありますので、
     ここでやれば良いですね)
 では、スタートアップに記述するのは、以上の部分にします。
 添付のテンプレートでは、バスコントローラの設定の部分で
 関係するポートのDDRのみ設定をするみたいなんですが、
 他の部分のDDRはCのソース上に書いていて、ポート設定を
 あちこちでやるのがいやだったんです。

 ちょっと試してみます。ありがとうございました。
 
303774ワット発電中さん:04/12/09 19:33:14 ID:ItzMa24E
>>302
>リセット後、CPUが動作するのに必要な部分は、スタートアップに
>記述する必要があるんですね。

う〜ん。
必要な事はC言語が動くための環境作り。

その為、スタックを設定して関数を呼び出せるようにする事(ユーザーの
メモリモデルに合わせて変更)や、文字列等の定数初期化(ここら辺は
テンプレートに書いてある)が本当に最低限。
追加で、ユーザーによってはprintf(),scanf()関数等で液晶やシリアルポート等を
利用する為にごちゃごちゃ追加とかまぁ色々。
304774ワット発電中さん:04/12/09 20:37:29 ID:aCpNyZ7B
297です。
>追加で、ユーザーによってはprintf(),scanf()関数等で液晶やシリアルポート等を
>利用する為にごちゃごちゃ追加とかまぁ色々。
これらも、Cが走り出してからでも出来そうな気もするんですが
どうでしょうか。
みなさんのコメントを読んで、
「コンパイラがコンパイル、リンクするときに必要な情報を記述する」のかな、
とも思ったのですが、これも変でしょうか。
イエローのコンパイラに限らず、一般的にスタートアップルーチンといのを
書くものなのでしょうか? 
305774ワット発電中さん:04/12/09 22:35:01 ID:ZpcUjbDS
>>304
できるということと望ましいと言うことは異なると思うんです。
もしほとんどのプログラムで決まり切った初期化ルーチンがあるなら
それはmain()内に書かなくてもよい方が書きやすくて良いでしょう。
main()内でやるとしてもMPU毎のRAMの位置(スタック位置)、割り込みベクタ位置など
設定するものが多数あります。それをもしMPU固有の別ファイルで解決するなら
これら最低限・共通の初期化もそこでやってしまえというのは自然な流れではないでしょうか。
306774ワット発電中さん:04/12/09 23:29:42 ID:Kr5JHULq
>304
PCなんかの上でCを使ってきた人からすると、
main()の中で基本入出力のためのI/Oの初期化をするという
習慣が無いから、最低限のI/Oはすぐできるようにという配慮
でそうしているんじゃいかという気がするけど、違うかな?
307774ワット発電中さん:04/12/10 04:29:01 ID:fjDB90AR
>「コンパイラがコンパイル、リンクするときに必要な情報を記述する」のかな、
>とも思ったのですが、これも変でしょうか。

すげ〜変
308774ワット発電中さん:04/12/10 06:53:17 ID:53jbb95N
>>304
>これらも、Cが走り出してからでも出来そうな気もするんですが

そこら辺は流儀や書き方の問題。
それで構わないと思ったなら自信を持ってやれば良いのだ。

fprintf等関数移植の手間をなるべく減らす為にスタートアップ内で
記述した方が楽かもとか、どーせレジスタへの定数設定だけだったら
アセンブラでやっても手間かからないかもとか、なるべくC言語上で
書いた方が見やすくなるかもとか、まぁ色々な考え方があるってだけの事さ。
309774ワット発電中さん:04/12/11 15:43:50 ID:kOwMdRka
やっと、Digi-KeyにATMega88が入荷!



と思ったら、ATMEGA88-20MI(32-MLF)orz

さらに、ATMega48-20PIの在庫があと、38個。まぁ補充されるだろうけど。
ATMega8は2〜3000個あるので、大丈夫みたいです。
310774ワット発電中さん:04/12/12 01:31:03 ID:0vDygLa8
>>309
mega168は、売ってないんですね(´・ω・`)ショボーン
どこに売っているんだろう?
311774ワット発電中さん:04/12/12 13:36:07 ID:ZdfQDKqv
>>309

現在、ATMEGA88-20AI(20MHZ,32-TQFP)も448個ほど在庫あるみたいだが?

http://www.digikey.com/scripts/DkSearch/dksus.dll?Detail?Ref=306382&Row=216349&Site=US

ATmega88って、ATmega8に比べて速度が速くなった(16MHz→20MHz)以外に、
どんなメリットがあるの?
312774ワット発電中さん:04/12/12 14:39:29 ID:0vDygLa8
>>311
TQFPパッケージじゃんそれ。
自作には使えねやつだよ。

>ATmega88って、ATmega8に比べて・・・・・
詳細は、
ttp://elm-chan.org/docs/avr.html
313774ワット発電中さん:04/12/12 15:25:29 ID:q+Je/pHz
>TQFPパッケージじゃんそれ
>自作には使えねやつだよ

ヘッタレ。根性ではんだ付け汁!
314774ワット発電中さん:04/12/12 17:13:55 ID:M1+CVpew
E8エミュレーターってどこで売ってるんでしょうか。

ずいぶん検索しましたが見つかりません。アキバで売っている
店を教えてください。

315774ワット発電中さん:04/12/12 17:27:57 ID:q9LwxCwO
>>314
ルネサスの所に代理店載ってなかったっけ?と思ったらE7だけか。
無難にサンハヤトから通販じゃないかな。
316774ワット発電中さん:04/12/12 17:55:35 ID:npWwgYy1
>>311
DebugWireな。Reset端子だけでデバッグできるから、
他のポートを潰さない。理想的。
317774ワット発電中さん:04/12/13 00:33:11 ID:4+IBSpKI
>>312

32pin0.8mmピッチTQFP程度ど〜って事ねぇだろ…と思ったが

TQFPじゃなくてMLF(MO-220)じゃねーか…OTZ
318317:04/12/13 00:34:16 ID:4+IBSpKI
と思ったら、やっぱりTQFPかヨ!
319774ワット発電中さん:04/12/13 20:18:04 ID:dfN8R1mH
>>315
ありがとうございます。検討してみます。
320774ワット発電中さん:04/12/13 20:24:53 ID:amKEe3rL
orz
321774ワット発電中さん:04/12/14 14:47:25 ID:LVa88I/x
>>313
面倒だから、屁垂で(゚д゚)イイ
322774ワット発電中さん:04/12/15 18:29:17 ID:0R/SXCfP
sbitを詳しく説明してあるページ無いでしょうか?
定義の仕方が良く分りません。

sbit EA = 0xAF;

という定義があってもビットアサインを見ると、
EAはBIT7なんです。
なんで0xAFになるんでしょうか?
323322:04/12/15 18:42:12 ID:0R/SXCfP
コンパイラのマニュアルに載ってました!!

英文マニュアルなんで理解30%ですが、
IEレジスタ(0xA8)のBit7にアサインされているEAビットにアクセスするには、
0xA8+7で0xAFになるって事で良いんですよね?
324774ワット発電中さん:04/12/15 20:39:13 ID:ZAfFybPv
何の事いってんのかさっぱりワカンネ
どの石用でベンダーはどこで言語は何なのさ
325774ワット発電中さん:04/12/16 03:20:52 ID:+Agv0XxT
H8/300Hシリーズの3.3V動作品って
個人じゃ手に入んないのかなあ…
3.3V非対応のものを無理矢理3.3Vで動かす
ってのは別にして。

AVRの3.3V動作品ならDigi-Keyで買えるんだけどなー。
326774ワット発電中さん:04/12/16 08:42:08 ID:YUbklj3I
>>325
動作クロックを5V動作時の半分まで下げれば、動くんじゃないかと思うけど、
具体的に言うとどれ?ここらへんで入手できないか?

ttp://www.takumic.co.jp/shop/shop.html
327774ワット発電中さん:04/12/17 08:35:35 ID:pzST9G+D
AVR+WinAVRなんですけど、
たとえばタイマ0で数ms毎に64x16程度のLEDアレーをダイナミック点灯したいけど、
ポートが足りなくてシフトレジスタICに頼りたい、しかし他の割り込みの都合もあり、
64bitのシリアル送信はちょっと時間掛かりすぎ、なんて場合、
タイマIC内で自分自身以外の他の割り込みを許可にしちゃっても
スタックさえ足りれば無問題でしょうか?
328774ワット発電中さん:04/12/17 12:16:19 ID:egn6ROeD
多重割り込みの管理がちゃんとできてれば無紋台
329774ワット発電中さん:04/12/17 12:22:34 ID:pzST9G+D
>>328
ありがとん。

誤字訂正
× タイマIC内で自分自身以外の他の割り込みを許可にしちゃっても
○ タイマ割り込み内で自分自身以外の他の割り込みを許可にしちゃっても
330774ワット発電中さん:04/12/18 00:44:39 ID:04b+/uIW
>>327
ずっと昔、1MHzの6800系8bit-CPUで2mS間隔で割り込みを掛けて、ソフトウェア
制御でダイナミック点灯したけど、問題なく動いたよ。

どのAVRか判らんけど、ほとんどの命令が1クロック動作で完了してクロックも早いから
問題ないだろう。それより、64x16ドットだと1面分のデータで128バイトのRAM
を使うけど、フォント格納のROMとか含めて容量足りるのか?

タイマ割込中に他の割り込みを許可するのはいいが、タイマ割込と多重割込の
処理時間の合計が、タイマ割込周期を越えないようにしないと破綻するぞ。

こういう場合、タイマ割込ルーチンではフラグを立てて戻るだけにして、時間が
掛かる実際のI/O処理は、メインルーチンで行なった方がよいと思われ。
331774ワット発電中さん:04/12/18 08:50:15 ID:IltOWbsx
>>330
ありがとさんです。予定デバイスはまだ決めていませんでした。
まあたぶんmega8になると思いますが。

処理時間≪タイマ間隔 は了解です。

メインでやる場合ですが、これだとタイマ割り込み許可はせず、
割り込み許可フラグだけメインからポーリング監視みたいな方法でもいけますか?
たとえばTIFRのbit(TOV0)が立ったらクリア(1を書き込み)して、処理を行うとか。
332774ワット発電中さん:04/12/19 04:03:53 ID:eu4ENo7E
みなさん、一般論ですが、教えてください。
Cでプログラムを記述するとき、ヘッダファイルをincludeしますよね。
このヘッダファイルには、いったい何を書くべきなのでしょうか?
ていうか、何を書いていますか?
というのは、今Cでプログラム書いてるんですが、
「なんでヘッダファイルなんてあるのか?
 どうせ組み込むんだから 全部xxx.cでいいのでは?」と思ったんです。
今は、わけがわからないままxxxx.hとしてincludeしています。
また、xxx.hの中にも、stdlib.hやstring.hなどをincludeする人もいます。
こうなると、メインソースに書くxxx.hを、1つだけにしたいのかな、とも
思ってしまいます。

私が、今xxxx.hに入れている内容は、
 本に載っているようにxxx.hファイル #include "stdlib.h"とか"h8_3048.h"
 数値のデファイン         #define hoge 10
 グローバル変数宣言        unsigned char hogehoge;
本当にこれでいいのか、全然自信がありません。
また、自分で作った関数も、どこかに別ファイルにして、#includeしたいのですが
そうしていいものか、私のソースを人が見たときにに笑われてしまわないか
とても不安です。こういった初心者の「Cソースの書き方,作法」みたいな
本ってあるのでしょうか?
333774ワット発電中さん:04/12/19 05:25:32 ID:kBG2bnS+
334774ワット発電中さん:04/12/19 06:43:12 ID:5SbEZy9P
典型的な最近の子だな

ろくに本も探さなければ、たとえ買っても眺めるだけで読まないし

人 に 聞 け ば な ん と か な る と 思 っ て や が る
335774ワット発電中さん:04/12/19 09:57:31 ID:1XlarJYn
まあまあみんな落ち着け

>>332 も折角一般論に興味があるんなら、もちょっと根底からやってみろや。

とりあえずこの辺から読め 「ソフトウェア作法」「プログラム書法」
336774ワット発電中さん:04/12/19 09:59:43 ID:ITYjO9zI
>332
まずはそのインクルードファイルの中身を覗いてみることをお勧めする
337774ワット発電中さん:04/12/19 10:47:29 ID:uFIL7oKS
>>332
私は最近AVRを始めCを使うようになった、本職はDOS上のFORTHなので関数定義してmainで締めるところは同じ。
だからCの参考書とかを読まずともすんなり入れたが、*.hと*.cの意味がわからず混乱した。

*.hの意味はとりあえず関数を仮定義して、*.cで本定義するものだと理解した
だったら最初から本定義すれば、ということで*.hを無くし*.cだけにしてincludeした、
ライブラリの中身を改造する時も*.cだけ触ればよいし簡単だった。
何より理解しやすくなった。

その筋の「プログラム書法」などより自己流で骨までしゃぶってみてはいかが
338774ワット発電中さん:04/12/19 11:57:29 ID:TbuW3q2F
>>337
>>332
なんかその理解も変だなあ。
とりあえず*.hはあくまでインクルードされるヘッダファイル。
本文内(*.c)ではなくインクルードファイルにするのは何故か?
ってところから考えてはいかが?

ソースがすっきりするって問題もあるけど、インクルードの
一番のメリットは複数のプログラムと共有化できるってことでしょう。
ライブラリ内では関数仮定義は確かに必要ないけど、
呼び出し側では必要だし、他にも#defineによる定数、マクロ定義など
ライブラリと呼び出し側で共通にしたい設定がある。
それに加えてそのライブラリを使用するプログラムが複数あれば
共用可能なのでこれも楽。

だから、ラクできると思うなら使えばいいし、ラクできないと思うなら
使わなければいいと思う。
339774ワット発電中さん:04/12/19 13:23:27 ID:zJWVcMct
>>332の疑問はある意味もっともだと思う。
ライブラリなし、ミニマイコン程度のプログラミングならプログラムを
分割する必要もないし、ヘッダファイルも必要ない場合もあろう。
実際、ヘッダファイルという概念のないプログラミング言語もいくらでもある。

ヘッダファイルにわけたり、プログラムを分離したり、ライブラリ化するなんて
理由は大きなプログラムを書いたり、複数人でプロジェクトを組んだりして
作成し始めれば自ずと分かってくる。っていうかやらないとやってられない。
ある程度の規模の他人の作ったプログラムソースを探してながめてみればいい。

ひとつだけ単純な例を挙げておこう。
マイコン特有のレジスタアドレスで説明しようか。
#define TIMERA 0x30 とか数字ではなく定義した方がソースが見やすいが、
これをいちいちソースに書くかな?コピペするとしても手間がいる。
おおかたは既に記述しているreg.hがあって#include reg.hすればそれですむ。
さらにいえば同じ系列のマイコンで上位互換であるが、レジスタの番地が
微妙に違っているものに移行するとしよう。
分離していればそれ用のreg.hをコピーすれば終わりだが、*.cに含んでいれば
コピペしなおさないといけない。数ファイルならいいが、大量にあったら?
ま、そんなもんだ。
340774ワット発電中さん:04/12/19 14:09:57 ID:1XlarJYn
最悪なのは自己流。意味のない癖ばかりついて他人と協調して仕事ができなくなる。もちろん一生零細やるつもりならそれでもいい。

>>339の言っていることが一番正しい。

良書と良いソースに触れるのが一番。
341774ワット発電中さん:04/12/19 15:33:25 ID:NGaE0z8Y
ははは。339も340も自己流の最たるもんじゃん。

多くの現場では、マイコンソフトのバグ出しはハード屋がやってる。
おおきいのからながれてきたマイコンプログラマーなんてのはC言語でしか
マイコンソフト書けないのだが、書いてたソフトも使い物にはならない。
342774ワット発電中さん:04/12/19 15:37:32 ID:F7CY1hs4
で、その良書とは何か?という問題が出てくるわな。
入門者向けの本にはソース分割には触れてないのがほとんどだし。

>>332
非常に重要かつもっともな疑問ですね。俺も結構悩みました。
そういう「人に見られて笑われないか?定石からはずれてないか?」という気持ちは重要ですよ。
とりあえず「プログラミング言語C」の第4章とこのサイトの第5章が参考になるのでは。

ttp://www.pro.or.jp/~fuji/mybooks/cdiag/

んで、ヘッダファイル化すべきものとして俺の解釈は、
1.複数のプログラムで共通に使えるものを入れる(>>339のレジスタ名は典型的な例)。
2.対応するCソースファイルを再利用する時に必要な情報を入れる。

2.について具体的には外部に公開したい関数のプロトタイプ宣言・グローバル変数・
定数・構造体or共用体の宣言、といったところ。
再利用の際に外部からどんなデータをどの関数に与えるのか?ということを書いておく。
外部に公開する必要の無い定数・定義・宣言はCソースファイル内で充分。

上の2点に該当しないなら無理に.hにするとかソース分割する必要は無いと思いますね。
コンパイルに時間がかかるとか、デバッガの読み込みが遅くなるorメモリにデバッグ情報が
入りきらない、なんて事は今時ないはずですから。
343774ワット発電中さん:04/12/19 17:53:14 ID:y0wgqLii
スレ違いなんですが、例えば、 strlen()を使ったときに、コンパイラが「strlenのプロトタイプが無い」とか言ってきますが、
21世紀なんだから、コンパイラが、「strlenのプロトタイプがありませんので、気をきかせてstring.hをインクルードしますが、いいっすか?(Y/N) 」
くらい聞いてきてもいいと思うんだが。せめてエラーの時に「strlenのプロトタイプがありません。(string.hと思われますが)」とか推測してくれよ。
出先でソース直すときに、定本が無いことがあるんだよ。いちいち、 includeディレクトリを grep するのもなー。
344774ワット発電中さん:04/12/19 17:56:06 ID:1XlarJYn
>>341

> 339も340も自己流の最たるもんじゃん。

おいおい勘弁してくれよ。読書と他人の仕事から学ぶのは学問でもなんでも王道だぜ。職場の先輩の指導なんかに従った日にゃ、妙な思い込みや変なローカルルールしか知らない人間になっちまうよ。

>>342
>で、その良書とは何か?という問題が出てくるわな。

ま、そうなんだが「つべこべ言わずに片っ端から読めや」ってのが俺の持論。本といっても玉石混合だが、先輩と違って悪所は捨てられるのがよいところ。でもって基本中の基本として >>335の二冊は読んでみろってこと。

> なんでヘッダファイルなんてあるのか?

なんて質問は基礎がしっかりしていないから出てくる。基礎がわかっていれば自然と正しい使い方が理解できる。そのためには基礎が身につく良書を読むのが一番。

インクルードファイルの直接のご利益に関しては >>342 の書いているとおり。
345774ワット発電中さん:04/12/19 17:59:36 ID:1XlarJYn
>>343

>せめてエラーの時に「strlenのプロトタイプがありません。(string.hと思われますが)」とか推測してくれよ。

無駄。そもそもstrlenはC言語の一部じゃない。Google Desktop使え。
346774ワット発電中さん:04/12/19 18:33:32 ID:K4zgd7Qg
strlenはCの一部です。規格読め。
347774ワット発電中さん:04/12/19 19:03:20 ID:nM2mcYod
>>335
ふ… 古っっ!!
348774ワット発電中さん:04/12/19 19:23:52 ID:LratVK/T
仮にもH8 AVRの名が付くスレなんだから、マイコンでの使い方でしょうか。
H8あたりだと、
C言語でH8マイコンを使いこなす
ttp://www.amazon.co.jp/exec/obidos/ASIN/4274079643/
H8マイコン+C言語効率アップテクニック
ttp://www.amazon.co.jp/exec/obidos/ASIN/4274079783/
あたりが本家の開発陣に近い視点で書いてあるような気がする。

AVRは、優秀なユーザーが多いのでそんなもん見当たらないような。。。
349774ワット発電中さん:04/12/19 20:57:00 ID:Zttp5MO3
>>346
言語仕様と標準ライブラリ仕様の区別もつかない房。strlen()という関数が
あったとしても、それが標準ライブラリ関数であるとは限らない。

>>345
「ファイル<string.h>をマイコンピュータ内の検索します。よろしいですか?
(Y/N) 」

「マイコンピュータ内にファイル<string.h>が見つかりません。ネットワーク
コンピュータ内を検索します。よろしいですか?(Y/N) 」

「ネットワークコンピュータ内にファイル<string.h>が見つかりません。インター
ネット内を検索します。よろしいですか?(Y/N) 」

「xxxxxx件のファイルが見つかりました。インクルードする<string.h>を選択
してください。」

一人のアフォなプログラマが1行の#includeを忘れたために...。
350774ワット発電中さん:04/12/19 21:15:26 ID:K4zgd7Qg
>>349
言っている事が良く分からないのだが。

ライブラリは言語仕様に含まれる。

strlenが標準関数でない場合の話は勝手にやってくれ。
なぞなぞにつき合うつもりは無い。
351774ワット発電中さん:04/12/19 21:43:29 ID:jML+XmVB
>>349
これについて意見を聞かせてもらえるかな?
プログラミング言語C第2版の301ページだ。

ttp://radio.s56.xrea.com/radio/src/radio0104.jpg
352774ワット発電中さん:04/12/19 22:47:56 ID:bqB0Xrg8
複雑な構造体とかenum等、色々な宣言はヘッダファイル作って
管理した方がやっぱり楽だからな…。

ソース分割とかは…まぁ慣れの部分も大きいけれど…
それなりに大きい場合、ある程度分割した方がやっぱり見通しも良くなるよ。
コマンド解釈とか入ってくる組み込みソフト(USBやシリアルで
入力&出力をする、みたいな)は特にね。

で、最近の本なら「UMLユーザーズマニュアル」とかはどうだろう?
プログラム作成だけに利用するような手法じゃないし、大規模プロジェクトでも
使えるように適用範囲も広くなってる分、寄せ集め的な部分が多いけど>UML
353774ワット発電中さん:04/12/19 23:29:26 ID:39MmMFpn
AVR使いって、みんな当たり前のようにgccを使ってるけど、
どこでノウハウを仕入れてくるのよ?
354774ワット発電中さん:04/12/20 00:33:34 ID:2v9LYCFK
349じゃないが、

>>351の眼は節穴か?そのJPEG画像にこう書いてあるだろう

「この標準ライブラリはC言語固有の一部分ではないが…」

コンパイラは文法にしたがってプログラムを変換するツールだよ。標準ライブラリがリンクされているかなんかコンパイラのしったこっちゃねぇ。つまり、プログラム中の"strlen"が標準関数かどうかなんかコンパイラはしらねえってこと。


355774ワット発電中さん:04/12/20 02:31:49 ID:8iZe4FYu
なんにしろ、そんな余計なお世話は(゚听)イラネ
356774ワット発電中さん:04/12/20 02:54:53 ID:POSUALXV
>>351のカキコは、

× >>349
>>350

だと思われ。
357774ワット発電中さん:04/12/20 03:32:34 ID:nHM8Z3W1
入札者 コメント 入札額 数量 最終手動入札時刻
root_aardvark (新規) 最高額入札者 - 2,900 円 1 12月 19日 23時 23分
tousei456 (554) - 2,800 円 1 12月 19日 23時 22分  <−  http://page12.auctions.yahoo.co.jp/jp/auction/p8520795
yjk2114 (45) - 2,200 円 1 12月 19日 23時 0分

358774ワット発電中さん:04/12/20 06:21:54 ID:bbzDbLUW
>>353
AVRFREAKSのGCCフォーラム見たらよくわかる。

>>348
>>AVRは、優秀なユーザーが多いのでそんなもん見当たらないような
問題にあたっても自力で解決するのを楽しんでるという感じかな。
359774ワット発電中さん:04/12/20 10:32:16 ID:57tpkoci
>>353
AVRの概要とC言語そのものは習得済みとするなら、
・他の人のサンプルプログラム。特にAVRFreaksで配布されているgcctest(対応バージョンがちょっと古いけど)
・WinAVRマニュアル類。www.avrfreaks.netから入手可能
  mainからAVRGCCタグクリック→左側の"Guides&Manuals"クリック
  バージョン古いけどTOPにあるgetting started notesがわかりやすくて参考になる。
  GCC-AVR Inline Assembler CookbookはまろりさんのHPに日本語訳があります。
  WinAVRのhelpであるAS3GCCはheroさんとこに日本語訳があります。


    
360774ワット発電中さん:04/12/20 11:23:39 ID:yfoIVy8E
>>358, >>359
トンクス
361774ワット発電中さん:04/12/20 11:46:33 ID:57tpkoci
>>360
古いサンプルを現行WinAVRで使う場合の注意。多分コンパイルはとおると思うけど、
レジスタ入出力は、そのレジスタを変数のように書くことができます。
たとえばoutp(0xFF,PORTB);→PORTB=0xFF;
data=inp(PINB);→data=PINB;
__inw()などで扱っていた16bitレジスタも同様。
362774ワット発電中さん:04/12/20 17:50:59 ID:QpVdS8k7
>>359
ところが、その「わかりやすい」マニュアルはバージョンが古いので、
Mfileを起動してMakefileを、Cofを出力するように設定しておけば、AVRStudioで、Cofファイルを読めばソースデバッグできる
っていう肝心要のところが書いていない罠。
363774ワット発電中さん:04/12/20 20:32:44 ID:Zo+QdGN5
>>362
確かにねえ。この辺の話はあちこちに散らばっているねえ。
言われてみると俺も英語のドキュメント(それも1つにまとまっていない)とgccforumと
2chで何となく修得した覚えがあるなあ。
364774ワット発電中さん:04/12/20 21:50:29 ID:UQS1GfFx
>>354
K&Rは入門書であって規格ではないと言うこと。
まあK&Rのいう「言語仕様」は構文規則のことを言っているんじゃないかな。

で、Cにはライブラリは含まれます。規格を読みましょう。
ライブラリの無い物は標準Cではありません。

ただし、組み込み等で使われるFree Standing処理系では一部の標準ヘッダ
だけがあれば良いことになっていて、strlenの含まれるstring.hは必要ない。

コンパイラはライブラリ関数を知らないと言う話が出てますが、別の手段で
ライブラリを実現しているから問題ない。コンパイラはCの処理系を実現す
る手段でしかない。

ちなみに標準ヘッダの#includeがあることを解釈して、コンパイラがライブ
ラリ関数を打ち決めで生成することもゆるされます。同名の自作の関数を
作ることは未定義です。実際にGCCは似たようなことをやっているらしいです。
自作の関数が呼ばれないと言う話がどっかのスレにありました。
365774ワット発電中さん:04/12/20 22:09:09 ID:R8GmFCtW
>実際にGCCは似たようなことをやっているらしいです。

gccはそんな余計なことはしてないと思ったな。
インクルードファイルの中で関数を定義しなおしている場合がある
(良くあるのはisナンチャラの類をインライン展開するとか)
からそれと勘違いしてるんじゃない?
366774ワット発電中さん:04/12/20 22:12:22 ID:aF6tNbrB
>>364
おーほんとだ。winavrで、
#include <stdio.h>
#include <avr/io.h>
char strlen(char x) 
{
  return x+2;
}
int main (void) 
{
  char a;
  char b=123;
  a=strlen(b);
  PORTB=a;
  return 0;
}
ってやってみたら
abc.c:3: warning: conflicting types for built-in function `strlen'
だって。この場合は出力を見たらちゃんと定義した関数を使っていました。
少なくともWinAVRは標準的関数が何か知っているようですね。
char strlen()の定義を消したらstring.hが読み込まれて・・・
とはいかず、やっぱりエラーになりました(^^;)
367364:04/12/20 22:47:05 ID:UQS1GfFx
>>365
そうかもしれません。すれが見付からんのでもうわかりません。
GCCの例については忘れてください。
368774ワット発電中さん:04/12/20 23:16:23 ID:8iZe4FYu
>>366
それは宣言と定義が異なっているからであって、全然別の話
369774ワット発電中さん:04/12/21 08:28:28 ID:CIFNJ/vU
>>368
いや・・・string.h入れてないから宣言していないはず、って話では?
370774ワット発電中さん:04/12/21 09:56:25 ID:tzxsEq7G
藻前ら、ちったぁマニュアル読めや!

http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/C-Dialect-Options.html#C-Dialect-Options

-fno-builtin
-fno-builtin-function

Don't recognize built-in functions that do not begin with __builtin_ as prefix.
See Other built-in functions provided by GCC, for details of the functions affected,
including those which are not built-in functions when -ansi or -std options
for strict ISO C conformance are used because they do not have an ISO standard
meaning.

GCC normally generates special code to handle certain built-in functions
more efficiently; for instance, calls to alloca may become single
instructions that adjust the stack directly, and calls to memcpy may
become inline copy loops. The resulting code is often both smaller
and faster, but since the function calls no longer appear as such,
you cannot set a breakpoint on those calls, nor can you change the
behavior of the functions by linking with a different library.

With the -fno-builtin-function option only the built-in function
function is disabled. function must not begin with __builtin_. If a
function is named this is not built-in in this version of GCC, this
option is ignored. There is no corresponding -fbuiltin-function
option; if you wish to enable built-in functions selectively when
using -fno-builtin or -ffreestanding, you may define macros such as:

#define abs(n) __builtin_abs ((n))
#define strcpy(d, s) __builtin_strcpy ((d), (s))
371774ワット発電中さん:04/12/21 23:40:14 ID:VxcUO2GV
現在、digi-keyにてATTINY2313-20PI(DIP)が1個256円、25個@161円で 157個在庫しています。

現在、digi-keyにてATMEGA88-20PI(DIP)が1個439円、25個@276円で 105個在庫しています。
372ど素人:04/12/23 11:06:01 ID:aaDMWGZa
AVR入門者です、教えて下され。
SWを押すとLEDが点灯する「入門書」の頭に登場する回路なんですけど
シンク電流で点灯させるならばLEDを3個直列にし抵抗を挟んでDC12Vにつなげば、1ポートで外付けの石を使わずに3個のLEDを点灯させられるかな?
自分で実験すれば、と言われるのは承知なんですけど既にMega32を含めて4個昇天させてるもので、なにとぞよろしく。
「シンク電流」と聞くと何やらいけそうな、でもOffにした時DC12Vからポートに流れてしまうような。
なおAVRは5V駆動しています。



373774ワット発電中さん:04/12/23 12:05:54 ID:xAtKxcEJ
>>372
出力オフ時の耐圧が12V異常あればOKだけどね
素直にバッファかましなさいって
374774ワット発電中さん:04/12/23 12:20:16 ID:pKFyjnxI
>>372
クランプ汁!
LEDならどうにかなるだろ。
375774ワット発電中さん:04/12/23 14:31:18 ID:zD8FNbXz
>>372
その入門書ってどこの何という入門書なんだ?
日本語の書籍なら1つしかないけど・・・

でもって12Vにつなぐのは止めた方が無難。オープンコレクタじゃないんだから。
出力ピンがHiになっても、AVR内でVccにつながっている状態になるので、
これと12Vの間に負荷をつなげば12V→5V間に電流が流れる。
流れる電流によっては丸ごとアボーン。

ただ、(12-5)VよりLEDの順電圧が大きい場合は、
電流が流れない事になるのでまあうまくいくかもしれん。
白色LEDの3個ならいちおうokだが・・・・やっぱりやめましょう。素直にTr噛ませて。

AVR側の電源だけを切った場合は入力ポート状態になると思うけど、
場合によっては12V→LED/抵抗→AVRの保護ダイオード→Vccとなって、
AVRが2V程度の低電圧で動き続けるという変な事態を招きかねないと思う。
376ど素人:04/12/24 11:15:07 ID:r0qTfhad
>>373〜375さん、レスありがと
>その入門書ってどこの何という入門書なんだ?
>日本語の書籍なら1つしかないけど・・・
 そのひとつと他にPICの入門書やHPなどです
>でもって12Vにつなぐのは止めた方が無難。オープンコレクタじゃないんだから。
 すごいわかりやすい解説をありがと、納得できました。

こんなこと言い出したのは、SWもLEDも1でOff・0でOnという奇妙な負論理のせい
このSWをジャンプ命令で判断するとNOTの連発で、ソフト屋を本業とする私としては「喝」となる。

でも、ソースでは無くシンクで点灯させるのはきっと何かご利益があるに違いない
遊んでいた訳です。よくあるPICの場合「ソースよりシンクの方が電流を流せる」というのはAVRにはあてはまらない、ソースもシンクも同じ。
377774ワット発電中さん:04/12/24 12:15:28 ID:+AU2C0Y8
>>376
ん?すまんがSWって何の略だ?
スイッチと考えると今ひとつ意味がわからないのだけど。
378ど素人:04/12/24 12:24:11 ID:r0qTfhad
>>377さん
 すんません、SWはスイッチの事
入力ポートにSWをプルアップしてつなぎ、OnでゼロOffで1となる訳ですが
 何でOnで1にしないの?という疑問を書いたのでした。
379774ワット発電中さん:04/12/24 13:57:14 ID:VjtMwVW6
>>378
プルダウンして、Onで1/Offで0にすれば?
スイッチの状態検出ルーチンでNOTして、論理処理を正理論に統一する方法もある。
つまんねーところで悩んでるふりしてないで、先へ進んだらどうかね?
380774ワット発電中さん:04/12/24 14:46:33 ID:bc5tM4K3
>>376

> こんなこと言い出したのは、SWもLEDも1でOff・0でOnという奇妙な負論理のせい
> このSWをジャンプ命令で判断するとNOTの連発で、ソフト屋を本業とする私としては「喝」となる。

ソースの可読性が悪くても、バイナリレベルでのコード効率や実行速度は変わら
ないよ。AND演算した後、JNZかJZかの違いだけ。本当にソフト本業?

> ースでは無くシンクで点灯させるのはきっと何かご利益があるに違いない

TTLではソース側の電流がほとんど取れなかったから、その頃の名残では?ある
いは、著者が昔の回路を十分理解せず単にコピペしているとか。
381774ワット発電中さん:04/12/24 15:05:58 ID:+AU2C0Y8
>>378
そもそも1がオンだと思うこと自体固定観念なんだと思うのだが。
論理があってさえいれば正負がひっくり返っても何の問題もないでしょう。
唯一問題になるのは現実の素子による制限だけ。
382774ワット発電中さん:04/12/24 15:17:09 ID:+AU2C0Y8
>>380
そういえば、AVRってまさにその昔のTTLのように、ソースよりシンクの方が多くとれるん
ですけど、アレは何による制限なんでしょうか?
2313でシンクでVcc5V.Lo1Vの時47mAくらい流せるのに対してVcc5V,Hi4Vで7mA。
単なるCMOSのゲートならそうはなりそうにないんですけど。
383774ワット発電中さん:04/12/24 15:54:16 ID:bc5tM4K3
>>382
ICの設計がそうなっている(Lo側MOSFETをHi側より大きくしている)のと、P-ch
半導体より、N-chの方が特性がいいから。ハイサイド側はP-ch、ローサイド側は
N-chな。

単体のMOSFETでも、2SKxxxx(N-ch)に比べて、2SJxxxx(P-ch)の方が、ON抵抗
高いでそ。っていうか、2SJxxxx(P-ch)は品種も少ないし。

オーディオアンプ等じゃないんだから、Hi/Lo側の特性を積極的に合わせる理由が
ない。ウェハの面積(並べられるMOSFETの数)は限られているので、Hi/Loとも20mAよ
り、Hi側7mA、Lo側47mAと非対称の方が、用途が拡がると考えてのことだろう。
20mAじゃ足りないけど、47mAあればミニチュアリレーなら直接駆動できるとか。

チャージポンプ等で、ゲートON電圧を電源電圧+4V以上に持ち上げれば、ハイ
サイド側にN-chを使うこともできるし、ON抵抗を気にするモータ駆動用の大電流
Hブリッジ等では実際にそういう回路を採用している。
384774ワット発電中さん:04/12/24 16:38:57 ID:+AU2C0Y8
>>383
なるほど、NchPchの特性で仕方なくって面+
あえてさらに違いをつけて限りある資源の中で能力を高めて使わせようって訳ですね。
後者はちょっと感動。
385774ワット発電中さん:04/12/25 12:37:26 ID:lJaWzocX
なんか最近H8-ML腐っているね。
Linux始めたばかりの教えてクン厨房と、教えたがりの
自称「Linuxのベテラン」ウンチクひけらかしオヤジばっかり。
全然H8と関係ないじゃん。
m@cはドサクサにまぎれて鬱病の話してるし。
最近どこへ行っても、この手の場所をわきまえないバカが増えた希ガス
386774ワット発電中さん:04/12/25 13:32:43 ID:ESM1//7F
最近どこへ行ってもそういう些細なことに腹を立てるような
人間が増えた希ガス
387774ワット発電中さん:04/12/25 13:35:34 ID:D9KmXtzs
最近どこへ行っても当該BBSやMLには書かずに2chで陰口しか言わない
奴が増えた希ガス。
388774ワット発電中さん:04/12/25 13:42:56 ID:uce++B+l
>>387
当該MLでそう言っても、
「H8と関係無い話をするな」という投稿の方がよっぽどノイズです、
みたいなこと言われちゃうからね。
389これもノイズだなあ:04/12/25 13:46:42 ID:4wyp/mps
>>388
ここでやるともっとノイズです。
390774ワット発電中さん:04/12/25 14:38:26 ID:dj/cl61b
そのノイズはエルゴート性?
391774ワット発電中さん:04/12/25 16:05:21 ID:cEKLdFZc
次のスレッドではh8とAVRは分離したほうがいいな
392774ワット発電中さん:04/12/25 16:16:14 ID:QPtMbWsf
>>385
あれで仕事に使おうというのが恐ろしすぎますな。

そういやあそこは仕事絡みOKだっけ?

393774ワット発電中さん:04/12/25 19:00:09 ID:4wyp/mps
>>390
瞬間的にはじける奴もずーっと粘着する奴もいるけど、
周期性がある気がするのでなしってことで。
394774ワット発電中さん:04/12/25 21:09:33 ID:VCYMpZ9C
>最近どこへ行っても、この手の場所をわきまえないバカが増えた希ガス

酸化人員の絶対吸うが少ないんだよ。どこへいっても実体的には同じ面子がやってるに過ぎない。
395774ワット発電中さん:04/12/26 01:41:16 ID:u92eAErr
ここに出ている人も、H8-MLに出ている人がほとんどだったりして。
396774ワット発電中さん:04/12/26 07:41:41 ID:cAjP5GOT
PICMLよりはるかにマシだと思うが
397774ワット発電中さん:04/12/26 22:53:04 ID:lhG94bZB
えーっ! なんでえ?
pic の方も 色々教えてくれるし いいと思うんだけど。
最近 雰囲気も悪くないと 思う
398774ワット発電中さん:04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ
399774ワット発電中さん:04/12/28 16:06:18 ID:gDwhIW3u
picmlはね、ある強迫観念からなんだよ。人格が改良されたのではぜんぜんない。
400774ワット発電中さん:04/12/28 20:05:42 ID:L/QFfB9B
未だに性格の悪さがにじみ出てるしな
401774ワット発電中さん:04/12/28 20:38:21 ID:IzLKiiKJ
脅迫観念? なんの脅迫? 今度PIC-MLで聞いてみようかな (^^;
402774ワット発電中さん:04/12/28 21:01:28 ID:amKLGYOs
↑お前みたいな馬鹿がいるからMLが荒れるんだよ
躾のできていない餓鬼は犬畜生に劣る
403774ワット発電中さん:04/12/29 14:53:46 ID:2nv8D20B
わさびぃUzeeeeeeeeeeeeeeeeeeeeeeee!!!!!!
404774ワット発電中さん:04/12/29 18:38:07 ID:06TJmfB0
社内アドでかつ社名晒して痛い発言しちゃうってのはどうかと思うが
漏れ的にはそんな会社に仕事だしたりしないがヲチする分には楽しいな
405774ワット発電中さん:04/12/29 21:18:39 ID:/ggFfQhE
これ、本人かな



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ
406774ワット発電中さん:04/12/30 11:23:50 ID:y0In0PxF
ttp://www.freeml.com/ctrl/html/MessageListForm/picfun

ウェオッチするからHN教えて
407774ワット発電中さん:04/12/30 11:27:56 ID:y0In0PxF
ttp://www.exp.org/h8/ml/archive/cgi/view.cgi

ウェオッチするからHN教えて
408774ワット発電中さん:04/12/30 13:58:41 ID:N6f8MEnr
406,407
↑お前みたいな馬鹿がいるからMLが荒れるんだよ
躾のできていない餓鬼は犬畜生に劣る
409774ワット発電中さん:04/12/30 19:05:15 ID:y0In0PxF
ごくろうだな w
410774ワット発電中さん:04/12/30 23:54:55 ID:UamOjXlI
H8でPICみたいにPONGはできないよね。
PICよりH8は遅いよね。
だれか迷える子羊に光を。
411774ワット発電中さん:04/12/31 00:07:22 ID:KiBFYvIG
>>410
使い方に問題があるのではないかと。
412774ワット発電中さん:04/12/31 03:37:24 ID:16NBXrVo
PONGって何でしょうか? すみません、教えてください。
413774ワット発電中さん:04/12/31 06:22:53 ID:ru0w0xOQ
>>410
余裕でできるよ
インベーダーにでも挑戦汁
414774ワット発電中さん:04/12/31 11:26:40 ID:G8wK6b7X
H8のピン数からいけば、秋月のグラフィック液晶に、
ボリューム二個つけて、PONGを作るのは不可能では無いと
思われるので、だれか冬休みの宿題で作れ。
*こ*れ*は*命*令*だ*。
415774ワット発電中さん:04/12/31 12:31:00 ID:HMF0KKwp
PICはもう少しRAMあればなぁ。PICでCとか使う気がしない。
416364:04/12/31 12:53:46 ID:hzD7gzpo
RAMの量というか、ほとんど直接アドレッシングしかないのがなんとも…。
PICは初心者にお薦めしたくない。(Cで使うならどうでも良いけど)
417774ワット発電中さん:04/12/31 13:09:23 ID:Lf4t6JYy
PICはともかくコンパクト!が美点だろう。その上での犠牲。
ただ今となってはプロセスの進歩を考えると時代遅れとなりつつあるのも感じるが。。
418774ワット発電中さん:04/12/31 13:48:58 ID:r3dYfy/i
>414

*こ*れ*は*命*令*だ*。

作るぞ
419410:04/12/31 14:23:17 ID:tKLJqHbH
video信号の発生ができるか、というとこなんですが。
昔AY-3-8500で作った瓦礫があるかと思って実家で探したが
出てこなかった。。。
小学校のとき夏休みの自由研究で作ったんだよね。
もう30年近くなる。。。
420774ワット発電中さん:04/12/31 17:01:03 ID:qZ4pDoTb
始めからそう書け低能
421774ワット発電中さん:04/12/31 17:30:31 ID:qE7p0ogO
これ、本人の自画自賛ですか



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ
422774ワット発電中さん:04/12/31 19:39:02 ID:vF3UuHaw
某氏ってのが誰なのか、それが重要
423774ワット発電中さん:04/12/31 19:46:06 ID:HMF0KKwp
>>416
> RAMの量というか、ほとんど直接アドレッシングしかないのがなんとも…。
アセンブリしかほとんど使い道ないのに、色々制約多くてとても面倒。

>>417
> PICはともかくコンパクト!が美点だろう。その上での犠牲。
これもそうだね。
424774ワット発電中さん:04/12/31 23:14:38 ID:F3oKkbOO
PICって他のマイコンと比べてコンパクトなの?
ああいう、普通じゃないアーキテクチャを採用することが、
どういう風にサイズに影響するんでっしょ?

この辺知ってたら詳しく教えて(゚д゚)ホスィ
ホント、有名どころのマイコンだと、
PICだけなんであんな変なアーキテクチャなのか、
ずっと疑問だったんで。

それでは良いお年を〜
425774ワット発電中さん:04/12/31 23:26:09 ID:2gceRzz1
>>424
たぶん登場当時のことかと。
今ではもっと高性能なマイコンが同じパッケージに入っているし、
PIC自体PIC18みたいなのが出てるようだけど。
今でもスリープ時の消費電流の少なさなどではまだメリットあるよね。
426774ワット発電中さん:05/01/01 00:05:09 ID:ak3ckQ9G
一番わかりやすいのは、命令幅が短くなっているので命令用のメモリや処理回路が
小さくできる。

プログラムメモリはバンク構成なので全容量分アドレス幅を持つ演算器を用意
しなくてもアドレス生成できる。

直接アドレスしかない(要はメモリというよりレジスタ)のでアドレス生成演算器が
必要ない。

で、回路規模が小さいのでコストが安くなる。速度も上げやすい。電力も少なくて
すむ。検証も楽。
427774ワット発電中さん:05/01/01 03:41:52 ID:cspvAL4Q
>>426
CPUの作りが簡単ってことですね。
その分プログラムは制約あって苦労すると。
でもまあ目的の動作ができてしまえばOKなんですよね。
大量生産なら1台あたりの苦労?は小さくなるってことか??
428774ワット発電中さん:05/01/01 06:17:37 ID:y+jYCNzI
そゆこと。
当初は小規模な用途のみに目的を絞っていたからプログラムメモリが少なくても
問題ない(っていうか少ない事を前提にしてるアーキテクチャだし)訳で、
苦労と言ってもたかが知れていた…筈なんだ、ほんとは。

だけど…pongなんてものまで作る人が出る始末で…慣れとは恐ろしい…。
429774ワット発電中さん:05/01/01 11:44:15 ID:c0Ge7ARy
h8/3664なんだけど、ramのh'f780-h'fb7fは絶対アクセスしては
いけない。なんぞとマニュアルに記載されてます。
フラシュrom書き込み時のワークエリアとして使用する為みたいですが
デバッグ時は別に使っても大丈夫と思うけど、どうですか?

教えて君で申し訳ない(汗。
430774ワット発電中さん:05/01/01 12:57:08 ID:2Z5FeSOe
絶対アクセスしてはいけない

431774ワット発電中さん:05/01/01 13:05:05 ID:KH2nEsiA
そういえばみなさんPSoCのアーキテクチャは変態だと思いますか?
432774ワット発電中さん:05/01/01 13:09:29 ID:gpqwIOno
>>431
ありゃアナログだし、面白いけどへんというか、
アクロバチックだと思う。
433429:05/01/01 13:13:33 ID:c0Ge7ARy
>>430
なんででしょう?
アクセスするとフラッシュがおかしくなるとか?
まさか。んなわけ…
434429:05/01/01 13:32:52 ID:c0Ge7ARy
連続書き込で申し訳ない。
別のところに「E10Tオンチップエミュレーターを使用する場合」
とありました。マギワラシイ。

ramの項目ではなんの断りもなく「いけません」だって。
なんじゃ、こりゃ。
435774ワット発電中さん:05/01/01 14:01:38 ID:PqMvyp5e



これ、本人の自画自賛ですか



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ




436774ワット発電中さん:05/01/01 14:23:53 ID:KeyOV3bK
あけおめ。

PICのアドレッシングがコンパクトさにつながる、
ってのは結構納得できた。

PIC16シリーズがリニアにアクセスできるアドレスの長さって、
データだと間接アドレッシングでも8ビットだもんな。
プログラムだとPCは13ビットだけど、
PCLレジスタを使った制御だと、実質8ビット長まで。

こういう所も含めて、コンパクト指向でアーキテクチャを設計したんだろうけど、
それ故に、データサイズやプログラムのサイズで
ちょっと規模の大きなものを作ろうとすると、
とたんにバンクアクセスとか、ノンリニアな制御の弊害が出てくる、と。

でもまあ、PIC16シリーズが最初に発表されたのは1989年。
10MHz未満動作で、周辺機能も内蔵しない、
ディスクリートの68000プロセッサがワークステーションwで現役だった時代だから、
それくらいコンパクト指向じゃないと、
廉価なワンチップマイコンとしてはやっていけなかったんだろうなあ、多分。

そう考えると、90年代の後半からは、
PICより普通な使い方ができるAVRがPICと同価格帯で手に入るようになった、
ってのは、良い時代になったんだなあ〜

…と温故知新してみる2005年元旦の昼下がり。
437774ワット発電中さん:05/01/01 15:53:26 ID:VyVKj7wd
>PICより普通な使い方ができるAVR

PICは普通のマイコンではないつうの。
438774ワット発電中さん:05/01/01 16:38:53 ID:pz/J4bik
PICは16ビット加算すら1命令ではできないからなぁ。
(最近のやつはできるのか? 俺の中ではPICって16F877あたりで止まっているから)
439774ワット発電中さん:05/01/01 17:11:39 ID:YW75ErUF
>>438
AVRもそれはできないと思った。
H8はできるよ根?
440774ワット発電中さん:05/01/01 17:44:55 ID:YO2cBidl
>437
所詮ただのマイコンだよ。狂信的に妄想を語るのも
時々いるけど、騙されないようにな。
441774ワット発電中さん:05/01/01 18:20:40 ID:uAG39oDK
いくら変態でも割り込み時のレジスタ退避・復帰くらい素直にできるように作れ
442774ワット発電中さん:05/01/01 18:30:48 ID:KH2nEsiA
PICは16F84しか使ったことないけど、あれはスタックが少なかった…
443774ワット発電中さん:05/01/01 18:46:19 ID:c0Ge7ARy
H8は16BITの掛け算割り算までできるよ。
だからといってH8が優れてるとも言い切れない。
たとえばFLASHROM、EEPROMの書き換え可能回数はPICが
圧倒的だし。
やっぱ、用途で使い分けかな。
444436:05/01/01 20:00:12 ID:KeyOV3bK
>>440
ん?漏れが妄想を語ってるってこと?
445436:05/01/01 20:07:32 ID:KeyOV3bK
>>440
あ、X68000ユーザだったらスマソ。
新年の無礼講、って事でひとつ許して栗。
446774ワット発電中さん:05/01/01 20:29:37 ID:uczgN/fh
>>440
PICでスタック使ったり割り込み使ったりする奴は邪道もいいところ。
それが判らん奴はPICを使う理由はない筈だ。
447774ワット発電中さん:05/01/01 21:04:05 ID:ziVZnlVQ
>>446
おいおい、割り込みとサブルーチンコールとそれに伴うスタック使用は
たとえPICでも普通に使う所じゃないのか?
8段しかないから無駄にサブルーチンコールせず最小限にするってことと、
データには使わない(使えない)ってだけでしょう。

割り込みのない組み込みマイコンなんて・・・・
PICの最大の利点であるスリープ時省電力を殺すつもりか?
448774ワット発電中さん:05/01/01 21:24:24 ID:QfgvPMsi
>>446
おまいの言いたいことは去年散々聞いたから良く解かってる。
大雑把に言うと、2Kの中でグルグル回せってことだよな?
449774ワット発電中さん:05/01/02 01:30:20 ID:lO0OOgFU



これ、本人の自画自賛ですよね



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ






450774ワット発電中さん:05/01/02 02:07:19 ID:GIEPrEWx
>>447
ですよね。割り込みなしの組み込みマイコンでは、特徴半減ですよね。
私はアセンブラはやりませんが、H8でもPICでも割り込みはバリバリ
使っています。タイマー割り込みで全部制御して、メインは無しという
プログラムも多いです。
451774ワット発電中さん:05/01/02 02:20:05 ID:LXz8AIGf
>450
オマエはPIC使う理由がないだろ。あっても価格的なことだけだろ。
割り込みしか使わないプログラムを自慢するってどういう神経だろう。
そんなモノを組み込みに使われたのでは無責任極まる。
機能的な確率論でどうなるか判らない状態が発生する事が気持ち悪くないところが信じられない。
452774ワット発電中さん:05/01/02 02:21:41 ID:LXz8AIGf
>>448
それが天文学的な確率でどうなるか判らない状態のセットを提供する術だと思う。
453とおりすがりだが:05/01/02 02:52:49 ID:o1xgwAaO
>>451
>機能的な確率論でどうなるか判らない状態が発生する事
具体的にどんな事を指しているのか教えてくれ。
454774ワット発電中さん:05/01/02 02:55:37 ID:j9rjtDyr
ID:LXz8AIGfは荒し。たぶん以前さんざん荒しまくっていた
ε-( ̄。 ̄)y-~
と同一人物。無視するがよろし。
455便乗失礼:05/01/02 02:56:53 ID:r63AuxHz
メインは空ループで割り込み関数に仕事をさせる形のプログラムはよく見かけるのですが、
この作り方で起こりうるどうなるかわからない状態というのは具体的にどんな状態でしょうか。
割り込み処理が終わらないうちに次の割り込みが発生とか?
456774ワット発電中さん:05/01/02 08:50:26 ID:kFNY82WB
おれは割り込みはフラグたてに使って
メインループでステートまわして処理してるけど
457774ワット発電中さん:05/01/02 08:53:10 ID:0I9Mv18S
>>451
割り込みを使うことと割り込みしか使わないこととは別だろ。
目的動作を実現するのに便利で動作が安定しているならどっちでも構わない。
458774ワット発電中さん:05/01/02 10:20:00 ID:lHbtv+iK
>>456
タイマー割り込みで制御すると
ランプ点滅などの時間処理がしやすいです
また同期回路みたいで 組みやすいです
459774ワット発電中さん:05/01/02 11:10:46 ID:ljpvbhIi
河村優花と小野寺成明は今年SEXできる。
460774ワット発電中さん:05/01/02 11:28:04 ID:iDqW4tEN
>454
オマエ、掲示板になんでカキコしているの?
見にくる必要だって無いだろ。
461774ワット発電中さん:05/01/02 11:40:04 ID:0I9Mv18S
>>460
おい、おまえIDがqになっているぞ。
今のうちにマターリして出直せ。
462774ワット発電中さん:05/01/02 12:16:11 ID:M+mMOIhP
>>451
コストって重要な判断基準ですがねえ。

機能的な確率論ってソフトエラーやハードエラーの事を言ってるんだよな?
異常はWDTに期待するしか無いでしょ。割り込みもぐるぐる回すのもたいして
変わらないだろ。
463774ワット発電中さん:05/01/02 14:00:53 ID:K/AVoHq+
所詮PICもマイコンの一つさ。
>451みたいな妄想家が組込の真似事をやるくらいには
流行ってるが。
464774ワット発電中さん:05/01/02 14:35:45 ID:fLllQbv2
>>451は頭悪すぎてPIC以外のマイコンの使い方を
覚えられないんだろうなあ。気の毒に。

四苦八苦してようやく覚えたPICでさえ、
割り込みの概念は難しすぎて使いこなせないらしい。

君、組み込みなんて仕事向いてないよ。
掃除夫とか牛丼屋の飯盛り係とかの仕事探したら?
465774ワット発電中さん:05/01/02 14:41:18 ID:pVHoiXKY
恐ろしいのは>>451の作ったものが製品として流れていたり
あの調子で後輩を指導していたりすることだ。
466774ワット発電中さん:05/01/02 14:58:19 ID:A2NDGpP/
ACCレジスタ時代の8bitマイコンに慣れている人間はPICに抵抗がない
多くの命令にレジスタ直行性がある事が当然と思う世代はAVRでないと嫌がる
くらいの差だろ。
俺はもうWレジスタに縛られるPICに戻れなくなってしまったが・・・orz
467774ワット発電中さん:05/01/02 15:08:14 ID:VXn3NiQA
まさか
>>451は一留乞学歴ですよ?
組み込みなんてそんな泥臭いことやってるわけがないですよ。

もし私が上司なら>>451に絶対そんなことやらせられません。
トイレ掃除や草むしりですら不安すぎて任せられないのに組み込みなんて。
468774ワット発電中さん:05/01/02 16:42:20 ID:hngXafih
>462
割り込み主体のプログラムで、プログラムの中でどうやって現在正常か異常事態か
判断するんだい?

一番判りやすい例は、割り込みが重なってしまった場合の後始末の順番だね。
469774ワット発電中さん:05/01/02 17:33:15 ID:r63AuxHz
割り込み回数のカウント用の変数を用意して、
割り込み関数の中ではカウント用変数のインクリメントだけを行う。
メイン関数のなかでカウント用変数が0でなければ割り込み時の処理を行う。
また割り込み処理が一回終わったらカウント用変数をデクリメントする。
割り込みが重なった場合はカウント用変数が重なった数を示しているのでメイン関数はこの変数が0になるまで処理すればいい。
…とかってやれば割り込みの重なりは対処できないかな、カウント用変数がオーバーフローしない限り…。
割り込みだけのプログラムってこんな感じに簡単に書き換えられる気がする。
470774ワット発電中さん:05/01/02 17:39:04 ID:hngXafih
ちっとも簡単ではないよ
(1)カウント用変数はインクリメントだけを行う
(2)カウント用変数が重なった値を示している
(3)カウント用変数がオーバーフローしない限り

割り込みの種類はどうやって判別するの?どれが処理途中で、どれが未処理でって。

サッパリ判らないよ。スタックは関係ないなんていわれたら尚わからなくなる。


そもそもメイン関数があるなら、割り込み主体では無いような気もするけど。
471774ワット発電中さん:05/01/02 17:49:47 ID:r63AuxHz
割り込み処理の開始で即時にカウント用変数をデクリメントすれば変数の値が未処理の数になるんでは?
あと割り込みの種類は割り込みの種類によって使う変数を変えれば…。

確かに具体的に考えていくとややこしい…。
472774ワット発電中さん:05/01/02 17:52:21 ID:OkRc4ssz
(・∀・)ニヤニヤ
473774ワット発電中さん:05/01/02 17:53:26 ID:r63AuxHz
わらわないでよ、悲しくなるじゃないか
474774ワット発電中さん:05/01/02 17:55:48 ID:K/AVoHq+
割込処理でやらせたい内容が大したことがないなら、わざわざフラグ
立ててメインで処理するより、割込の中で始末してしまった方がずっ
と簡単で楽だろね。
あるイベントに対してなるべく短い時間で応答させたいようなときも
割込を使う方がずっと簡単で効果的。
のんびりステータスチェックと処理をグルグルと繰り返すだけで事足
りる用途なら割込を使わなくても何とかなる。
475774ワット発電中さん:05/01/02 18:05:00 ID:K/AVoHq+
割込要因が複数あって、割込の中で処理させずにメインで
やりたいときで、同一の割込が多重発生しないなら、それぞれの
要因毎にフラグを立ててやる程度でもいいんでは?
もし多重に発生するようならそれぞれの割込要因毎にカウンタを
作ってやるとか、割込要求キューなりリストをこしらえてそこに入
れてやるというあたりが良く使われてるかな?
後者の方は発生した順に処理させたり、優先度をつけてやったり
できるから、便利だろうけどPICでやるには大げさかもね。
476774ワット発電中さん:05/01/02 19:02:53 ID:KSEFMq/V

PICの中の蛙が申しております
477774ワット発電中さん:05/01/02 19:20:30 ID:0I9Mv18S
>>462
あの人が過去のあの人なら、WDTもまた禁句だな(w
478774ワット発電中さん:05/01/02 19:30:11 ID:K/AVoHq+
http://mikilab.doshisha.ac.jp/dia/research/report/2003/0703/002/report20030703002.html

http://www.tepco.ne.jp/charm/pioneer.html
東京電力は、1978年に日本で初めて光ファイバケーブルの実用化を果たしました。

だとさ
479774ワット発電中さん:05/01/02 19:31:17 ID:K/AVoHq+
誤爆しちまった。スマソ
480774ワット発電中さん:05/01/02 20:13:28 ID:Df7O+dXV
>>479
おまいのような奴は、20年遅れてるスレでもいけ。
481774ワット発電中さん:05/01/02 20:29:10 ID:lO0OOgFU



これ、本人の自画自賛に違いないよね



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ









482774ワット発電中さん:05/01/02 20:52:35 ID:0I9Mv18S
>>469
PICはよく分からんけど、割り込みの中で
INTCONの各ビットを毎に
その割り込み要因フラグの消去
  フラグが立っている割り込みの処理、
LOOP
INTCONをチェック、割り込みフラグを点検

ってな感じでやるしかないだろうねえ。
同じ割り込み要因が
483774ワット発電中さん:05/01/02 20:59:09 ID:GQPRttAg
>>482
ぎゃ、書込中に送っちまった。

PICはよく分からんけど、割り込みの中で

INTCONの各ビットを毎に
  フラグの消去
  フラグが立っている割り込みの処理
LOOP
INTCONをチェック、処理中にフラグが新しく立っていたらまた上記処理

ってな感じで良いんですか?
割り込みがかかりまくっていつまでも終われない可能性とか、
同種割り込みが頻繁にかかって取りこぼす可能性はあるけど、
それが問題ならそれはそれで割り込みの限界と言うことで別の方法を
考えればいいだけだと思うけどー。
484774ワット発電中さん:05/01/02 21:05:34 ID:km4tkATx
>>465 その心配はない。
>>451は就職なんかしていない(というか、就職できない)
もちろん、後輩なんているはずもない。
ついでに付け加えておくと、友達もいない。
まして、彼女なんて絶対いるわけない。

専門学校では、同級生に馴染めず、昼飯はいつも一人で食べていた。
卒業後、どこにも就職せずブラブラ。
自分の部屋にはゲームとアニメビデオの山。
でも、他人と一緒にゲームしたりビデオ観賞したことは一度もない。
誰にも相手にされず、2chでウサを晴らすのが唯一の生きがい。
親はいずれ定年。専門学校を出て何年もたっているのに
就職のメドはつかない。ってゆうか就職する気ない。
数年後に訪れる破滅、それを直視したくない。いま楽しければそれでいい。
珍しく勉強する気になって買ったPICの入門書と秋月のキット。
生まれて初めて自分で動かすことができたマイコンがPIC。
でもその興奮と感動は長く続かなかった。
ある程度以上大きなプログラムを組もうとすると
頭が混乱してどうしても完成できなかった。
割り込みというものがどうしても理解できなかった。
それ以前にサブルーチンとは、スタックとは何か、理解できなかった。
そこで強引に導き出した結論、それは
「PICでは割り込みを使ってはいけない。
PICで割り込み使う奴はPICを理解していない奴だ。」
必死でおぼえた16F84、しかしそれは時代から取り残されつつあった。
ネットを見ていると、みんなH8、AVR、果てはSHやARMに移って行った。
自分のアイデンティティの核である16F84を、みんな素通りして
もっと上位のマイコンを楽々使いこなしているのが許せなかった。
なんだか知らないけど焦った。2chで暴れずにはいられなかった。
485774ワット発電中さん:05/01/02 21:07:47 ID:3JbMtf1B
>>481
どうやらあんたのカキコが気に食わない香具師が居るようだ
486774ワット発電中さん:05/01/02 21:32:52 ID:yd/87HST
このスレ読んでいて疑問に思ったのだが、

PICって割り込みのネストもうまく扱えないのか?たまにプログラマが手助けしないとネストで失敗するプロセッサは見るが、これだけわいわいやっているのを見ると不思議に思うよ。

教えてくれ。
487774ワット発電中さん:05/01/02 21:38:39 ID:K/AVoHq+
よほど悔しかったと見えるな
488774ワット発電中さん:05/01/02 21:40:21 ID:obKMqlG8
改行してくれ
489AVRしか知らん趣味工作野郎:05/01/02 22:21:18 ID:bbIWqkWi
>>483
データシート見たら割り込み要因のビットをクリアせずに割り込みから抜けたら
割り込みの無限ループに陥ると書かれているよな。
そんなループ組まなくても一度の割り込み毎に1つずつ処理すればいいんでない?
INT割り込みならビットクリア後INT割り込み処理ルーチンへ
TMR割り込みならビットクリア後TMR割り込み処理ルーチンへ
ってな感じの振り分けすればいいだけだと思うのだが。
490774ワット発電中さん:05/01/02 22:28:01 ID:M+mMOIhP
>>486
PIC初心者の俺がいうのが何だが。
データのスタックが無いからレジスタ退避のネストさせるのがめんどくさい。
サブルーチン使い難いのといっしょ。要はその程度の難易度。

そもそも、ネストしなくても処理できる。
ポーリングで済むような処理なら、ネストさせないで待たせて置けばよい。
割り込みから抜けた時に待たせた割り込み要因で割込む。もちろん、いちいち
割り込みを抜けずに全ての要因を順番にチェックしたり、優先順位回転みたい
な処理を入れてもよいだろう。
>>483がきれいに書いてあるな。

割り込み処理が輻輳するのは、メインループだけで処理しても改善しない。
(あと数命令…とかいう極限レベルの話は除いて。これは個別検討だな)

>>468の言っている後始末と言うのは分からん。解説希望。
割り込みだから分からない異常ってなんだ?
491774ワット発電中さん:05/01/02 22:56:19 ID:ZEVV55mc
だからさ、割り込み要因を判定したり、カウンタ上げ下げしたりって処理は
皆オーバーヘッドだろ?
PICでなんでオーバーヘッドが増える使い方をする奴が威張るんだよ?
オーバーヘッドダラケなことやってPICが非力だって罵るわけで、全くナンセンス。
割り込み使いたければPICを選ぶべきではないという極マットウな意見がなんで
すんなり同意を得られないんだ?
PICはAVRなんかとタメ張れるマイコンだ!なんて主張しているわけではないんだよ。
492774ワット発電中さん:05/01/02 23:03:23 ID:K/AVoHq+
>割り込み使いたければPICを選ぶべきではないという極マットウな意見がなんで
>すんなり同意を得られないんだ?

マットウじゃないからさ
493774ワット発電中さん:05/01/02 23:09:26 ID:ORe8NiYB
>>491
だってその方がすっきりするし作りやすいし
無駄にポーリングループするよりスリープで待つことが可能になるし
PICの処理能力でもその程度のオーバーヘッド無問題な用途はたくさんあるし
その程度のオーバーヘッドが問題ある程度大変なら無理してPIC使うべきでないし。
494774ワット発電中さん:05/01/02 23:10:23 ID:MNmUg61k
そもそも割り込みという仕掛けはオーバーヘッド軽減のための方策ですが何か。
495774ワット発電中さん:05/01/02 23:12:40 ID:Mf+Icktq
>>493
むしろFPGAとかPLDとか使えと言いたくなるよな。
XilinxのFPGAでSDRAMメモリコントローラ作った人もいるらしいし。

ちなみにその人はなひたふさん
496774ワット発電中さん:05/01/02 23:16:10 ID:ORe8NiYB
>>491
>オーバーヘッドダラケなことやってPICが非力だって罵るわけで、全くナンセンス。
オーバーヘッドぬきで比べてもPICが非力な部分はいっぱいあるわけだが。
そして非力でも問題ない分野に使えば良いだけなので罵る必要はないし、
497774ワット発電中さん:05/01/02 23:26:28 ID:K/AVoHq+
処理の優先度/緊急度という概念がないと割込のありがたみは
わかるまい。
どうしても気に入らないならマイクロチップ社に文句を言って
みるがいい。割込機能なんて無駄な物を付けるな!と。
498774ワット発電中さん:05/01/02 23:29:01 ID:ZJz/w5LX
>>497
どうやら彼はメインループが空ループで処理が割り込みってパターンが嫌いで
暴れているらしいので、まあそういう話は考えていないのでしょう。
499774ワット発電中さん:05/01/02 23:34:58 ID:WxdXq2iQ
>>495
XILINX本家に SDRAM I/Fのリファレンスコードがあったりするわけだが。
それに彼のサンプルコードは遅い。SDRAMのバンド幅の半分も使ってない。
読みやすいは読みやすいんだけどね。
500774ワット発電中さん:05/01/02 23:53:19 ID:KSEFMq/V
PICの割り込みからFPGAのコントローラ?
501486:05/01/03 00:08:21 ID:4TcVqXTm

なんか >>491 の意見がそれほどおかしいとは
思えんのだが、みんななんで叩いてるんだ?

>PICはAVRなんかとタメ張れるマイコンだ!
>なんて主張しているわけではないんだよ。

を読み落としているのか?

>>490
ありがとう、よくわかったよ。
502774ワット発電中さん:05/01/03 00:38:01 ID:RcshTPgH
おかしいと思えないようでは困りものだ
503774ワット発電中さん:05/01/03 00:54:12 ID:BjkM6jYx
マイコンも宗教まがいなんだな…と今日このスレを見て思ってしまった。
504774ワット発電中さん:05/01/03 01:06:27 ID:TBXzmWz3
なんか、PICのハードウェアについて議論しているのか、割り込みプログラミング
について議論しているのかよくわかんないや。
漏れ的にはハードがヘタレだという意見にはまあ納得できるんだけど、割り込み処理の
書き方はプログラミング技法やコンパイラ(Cとかの場合)を使う上でのテクニックになる
から文句を言う筋合いがわからん。
505774ワット発電中さん:05/01/03 02:40:15 ID:3Vf2E3+0
506774ワット発電中さん:05/01/03 03:00:30 ID:k8FX33TB
>>504
一つだけわかっていることは、
PIC専用スレは他にちゃんとあるのに
わざわざAVR・H8スレにPICネタを振りにくるバカが
居なくなればこのスレもまともになるってことだね。
507774ワット発電中さん:05/01/03 03:09:00 ID:ltlN7LZF
>506
そーいうのなら、次ぎスレからはetcを外せよな。
508774ワット発電中さん:05/01/03 07:22:14 ID:U6KU8jrp
>>501
充分おかしいよ。
彼はPICで割り込みを使わないプログラムもあることを主張しているのではなく、
割り込みを使うこと自体を否定している。
PICは割り込み使うと非力なので、割り込みを用いるならPICを使うなという主張がある。
この点は同意得られにくいだろうなあ。
509486:05/01/03 07:41:44 ID:4TcVqXTm
説明ありがとう。

しかしまだわからない。適材適所ということだろう。

「何が何でもPICを使え」というのなら狂っているが、
「割り込み処理には向いていないから、割り込みを
使う処理にはPIC以外がいいよ」と言っているんだろ?
彼は。

それほどおかしなことか?
510774ワット発電中さん:05/01/03 08:31:58 ID:8fTk34yi
>>509
>割り込みを使う処理にはPIC以外がいいよ

それ自体が同意を得られていないのだろう。
タイムクリティカルではない・単純な割り込みなら別に問題ないし、実際よく使われている。
PICを使う理由が低機能な割り込み処理機能より上回るなら、苦労してでも使うでしょう。
PICの命令群が扱いにくいのをわかった上で諸々の理由でPICを使うのと同じ理由で。
どんな割り込み処理がPICに向いていないのか書いていない以上、
>>491はPICでの割り込み処理すべてを否定していると思われる。
叩かれるのは仕方がない。
511774ワット発電中さん:05/01/03 08:38:54 ID:8fTk34yi
>>468の解説も欲しいところだな。
多少の問題がありそうなのはわかるが、回避策はあると思う。
いったいどのような問題を提起しているのか、そしてそれが割り込みなしならどのように解決できるのか
例を提示して教えて欲しい。煽りじゃなくて是非聞きたい。
512774ワット発電中さん:05/01/03 10:34:48 ID:N8YABksK
>507
AVR、H8以外もあることだしな。
次スレからは”PICを除く”としよう
513774ワット発電中さん:05/01/03 11:37:15 ID:ZuTfRHoI
明らかに悪意を持った荒らしと思われる
そういうのはMLでやってくれ
514774ワット発電中さん:05/01/03 11:46:08 ID:ejk2vNA9
>>512
ん?
いや、専門のネタで盛り上がる場合で長くなりそうだったら
さくっと専門スレに誘導すべきでは?
ここはあくまで総合スレだし。ネタ禁止はちょっとね。
515774ワット発電中さん:05/01/03 11:52:06 ID:tjVWktVV
まぁPICは別格だからな。
PIC16C84が800円で(スタータパッケージが20000円)で出てきたときは
ショックだったですよ。即16C84を25個買ったですよ。
だけど同じ時期にAVRとかH8が出ていたら、PICには目もくれなかっただろな。
AVRは出力がPORTAレジスタで入力がPINAレジスタというのがわかりにくい。
それを除けば、AVR>PICなんだが。
516774ワット発電中さん:05/01/03 11:56:44 ID:8fTk34yi
>>515
前にもその話題出たが、そもそも入力ポートと出力ポートは別物だし、
本当は別々が当たり前なのではないだろうか?
単にピン数が足りないので同じピンに割り当ててDDRで切り替え使用しているだけ。
517774ワット発電中さん:05/01/03 12:12:25 ID:/DKh7KPE
>AVRは出力がPORTAレジスタで入力がPINAレジスタというのがわかりにくい。

別にわかりにくいとは思わんが勘違いでPORTAを読み込んでて入力出来ねぇーと半日悩んだ>漏れ
518774ワット発電中さん:05/01/03 12:34:37 ID:JLDFn4tK
H8でも、H8S2000になると、出力と入力は
PxDRレジスタとPORTxレジスタに分離されるね。
519774ワット発電中さん:05/01/03 15:35:45 ID:ZONyw+8v
>>510
元々PICには割り込みが無かった事を知らんのか?
バカ利用者がイパイいるから営業的な理由でしぶしぶつけたに過ぎない。
マトモなエンジニアはPICで割り込みなんか使わない。
(例外は寝てるとこから起きる場合)
520774ワット発電中さん:05/01/03 15:37:16 ID:ZONyw+8v
そもそも割り込みは、プロセッサが処理に没頭している際に外部への応答性を高める為の
モノだ。
ロクニデータエリアも無いPICには意味がないんだよ。
521774ワット発電中さん:05/01/03 15:49:41 ID:H8nhbur5
PICの話はPICスレでやってくだちいな。

ホント、最近場所をわきまえないバカが増えたよな。
522774ワット発電中さん:05/01/03 16:09:55 ID:Of+Un7BM
割り込みネタはPICスレに書きました。そっちでやりましょう。
523774ワット発電中さん:05/01/03 17:05:02 ID:93MxRhoj
>>521
まあまあ。藻前ももちつけ。

いちおうここは総合スレなんだし、
PICの話題も多少ならいいと思うが。
程度の問題。

漏れ的には>>514に全面的に同意。
本当に「PICは除く」なんてスレにしちゃうと、
PICのPの字が出てきたとたん、
>>519>>520みたいなヴァカが出てきて煽りまくって
荒れるだけだろうし。
524774ワット発電中さん:05/01/03 17:05:57 ID:93MxRhoj
>>521
あ、ちなみに藻前のIDがH8。オメ。
525486:05/01/04 00:21:58 ID:gPyjG6G0
>>510

だいぶはっきりわかったよ。ありがとう。
526774ワット発電中さん:05/01/04 14:51:00 ID:jiSw6rgJ
PICの18シリーズは全くもって中途半端な存在だよね
527774ワット発電中さん:05/01/04 16:57:18 ID:8ufrcowb
はいはい、お帰りはこちら
http://science3.2ch.net/test/read.cgi/denki/1094312282/l50
528774ワット発電中さん:05/01/04 17:51:12 ID:uOpHPxrt
んじゃPIC以外のネタ投下。

AVRって、8ビットの定数加算がないのが、
なにげにマシン語入門、
特にお子様のマシン語入門の足枷になるよなあ、
ってオモタ。

16ビットなら定数加算もあるし、
先に適当なレジスタに定数を代入してからレジスタ同士で加算、
っていう方法もあるだろうけど、
なんかなあ…。

普通に、マイナスの数を引いて加算の代わりにする、
っていうので理解してもらえるのだろうか?

ちなみに漏れはリアル消防の頃にZ80のマシン語を勉強したんだけど、
直行性のなさに激しく戸惑ってた。
LD (DE),Bって書いてアセンブラでなぜか通っちゃって、
「出来たプログラムがなぜか動かNeeeeeee!!!!!!!!」
とか。
529774ワット発電中さん:05/01/04 17:53:22 ID:Sm8Yce1a
> ちなみに漏れはリアル消防の頃にZ80のマシン語を勉強したんだけど、

ご愁傷様でござんした。
530774ワット発電中さん:05/01/04 18:09:58 ID:uLN3An8b
>>528
加算するだけなら subi reg,-numが仕様だ!って言い張れるし、
addiなどのマクロでっち上げてもいいんだけど、
ひっくり返ってしまうCarryフラグが頭痛いです。
まあ慣れればいいんですけど。

16bit定数加算は+63までなので、結局subiとsbciに頼ることも多い。
レジスタ多いし、わからなきゃr16にぶち込んでadd命令使えがFA?
PICに制約あるように、AVRにも制約はあるってことでしょうねえ。

megaにもaddiないんでしたっけ?・・・・・ないですね。
まあmegaあたりからはふつーC使うから関係ないか。
531774ワット発電中さん:05/01/04 18:29:14 ID:uOpHPxrt
>>529
> > ちなみに漏れはリアル消防の頃にZ80のマシン語を勉強したんだけど、
>
> ご愁傷様でござんした。
工エエェェ(´д`)ェェエエ工、なんで?
それとも、LD (DE),Bが使えなかったことに対して?

>>530
そっか、マクロを使えばでっち上げられるね。
全くもって気付かんかった。
まあ、加算と減算でキャリーの振る舞いが違ってくるのは、
他のマイコンでもある話だし、
問題ないかなあ。

漏れも最近はAVR使うときはgcc使ってます。
最初は出来上がるプログラムのサイズのでかさに辟易しましたが(;´∀`)
サイズの最適化をかけても、
同じプログラムをマシン語で書いたときの3倍くらいになるのはなあ…

AVRで巨大なプログラムは書かないんだけど、
かなり広々と思ってた90S8515が、
Cを使い始めたとたんに狭く感じるようになった。
532774ワット発電中さん:05/01/04 18:50:02 ID:6rvdTV5N
>>531
3倍はでかすぎ。工夫次第で2倍強くらいには小さくなるぞ。
でかいライブラリ関数を安易に使わない。目的に添った関数を自作した方が小さいことも多い。
登場回数が少ない処理を安易に関数化しない。
2,3回ならマクロも使ってどっちが小さくなるか試す。
関数だとレジスタの退避復帰のためのPUSH/POPの山がバカにならないのよ。
グローバル変数は最低限に。ローカル変数を積極的に使う。lds/sts命令が減る。
受け渡しに構造体ポインタ渡しも使ってみる。関数のオーバーヘッドが激減することあり
533774ワット発電中さん:05/01/04 20:06:38 ID:gPyjG6G0
>>532
R8C/Tinyなんか安そうだけど、置き換えできないの?
少量生産だと売ってくれないかな。
534774ワット発電中さん:05/01/04 20:46:48 ID:U5IRXDsL
>>533
なんで532へのレス?

R8Cってどんな感じ?AVRよりいい?
データシート見に逝ってくる。
535774ワット発電中さん:05/01/04 21:37:32 ID:Ebc3wH5G
>>534
IDがXDSLになってる
536774ワット発電中さん:05/01/04 21:54:00 ID:NXvrfcIT
>>533
サンハヤトでDIP版売ってるよ。
537533:05/01/04 21:54:08 ID:gPyjG6G0
いやぁ、そんなに苦労するならもうちょっといい
マイコン+C言語がいいなじゃないかとおもって。

AVRを良く知らないから比較はできないけど、R8Cは
なかなかいい感じだよ。サンハヤトのDIP使ってる。

- 16KB Flash
- 2KB Data RAM
- 8MHz 内蔵 OSC
- ADC
- SPI (R8C/15)
- UART

あたりが特徴かな。1万5千円のエミュレーターを買った
から、作業は楽だよ。

俺の自作にはこれで十分だと思ってる。
538774ワット発電中さん:05/01/04 21:58:21 ID:NXvrfcIT
>>537
あのエミュレーターってなんかフラシュをがんがん書き換えてる
雰囲気があるんだけど気にならない?
H8より書き換え可能回数が飛躍的に増えてればいいんだけど。
539774ワット発電中さん:05/01/04 22:08:45 ID:pJE8ys+3
DMAC積んでりゃ面白かったんだが・・・贅沢かなw
540774ワット発電中さん:05/01/04 23:00:01 ID:U5IRXDsL
へぇ〜、内部16bitでバス8bit。8088みたいな奴?
へぇ〜、3Vで20MHz動作可能・・だけど各命令のサイクル数多いな。
へぇ〜、乗算・除算命令ありだな。
へぇ〜、レジスタは16bitx6本+相対参照用2本かぁ・・・
へぇ〜、それがステータスビット1つで切り替わる2バンクあり。面白いなあ。割り込みでレジスタ退避が要らないかも。
AVRの32バイトレジスタにそんな機能があったら最高なんだが(w

>>538
R8C/15で1000回となっているね。
541537:05/01/04 23:24:47 ID:gPyjG6G0
>>538
すげぇ気になる。しかし何も見なかったことにしたよ(w

>>540
100回/10000回になっているぞ。
http://www.renesas.com/jpn/products/mpumcu/16bit/r8ctiny/r8c_15/index.html
542774ワット発電中さん:05/01/05 03:06:19 ID:peGYrkiJ
>>541
http://www.renesas.com/avs/resource/japan/jpn/pdf/mpumcu/rjj03b0115_r8c1415ds.pdf
こっちではR8C/14で100、R8C/15で1000となっている。どうなっているのかな。
543774ワット発電中さん:05/01/05 04:51:10 ID:Rq48wfKd



これ、本人の自画自賛に違いない恥よね



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ











544774ワット発電中さん:05/01/05 14:07:57 ID:FLsRYf4k
>>532
>受け渡しに構造体ポインタ渡しも使ってみる
具体例を教えてください。興味あるし。
545774ワット発電中さん:05/01/05 14:12:05 ID:FLsRYf4k
そういえば、DigiKeyでattiny2313とかATMega48がやっと安定供給
状態になってきましたね。ATMega88はまだ品不足の模様。
(あと34個)
546774ワット発電中さん:05/01/05 15:18:06 ID:+qzkDBhW
ポインタのポインタを受けたときは、 *(*ptr)++; などと横着しないで、
ローカルポインタを使って戻るときに書き戻すとサイズが減る。
547特殊な場合かも:05/01/05 15:30:39 ID:peGYrkiJ
>>544
たとえば、たくさんパラメータを渡さなきゃいけない関数処理があったとする。
効果を出しやすくするため、意味なく32bit整数を使っています(^^
#include <stdio.h>
#include <avr/io.h>
#include <string.h>
void func(uint32_t A,uint32_t B,uint32_t C,uint32_t D,uint32_t E) 
{
PORTB=A+B+C+D+E;
}

int main () 
{
uint32_t A,B,C,D,E;
A=PINB;
B=PINB;
C=PINB;
D=PINB;
E=PINB;
func(A,B,C,D,E);
}
これだと関数受け渡しのために関数の入り口と出口で14回ものpushとpopが
挟まれてしまいます。その結果、上記プログラムは288バイト。

これを以下のように構造体アドレス渡しにすると、200バイトになります。
typedef struct 
{
uint32_t A,B,C,D,E;
} ABCDE_struct;

void func(ABCDE_struct *ABCDE_P) {
PORTB=ABCDE_P->A+ABCDE_P->B+ABCDE_P->C+ABCDE_P->D+ABCDE_P->E;
}

int main () 
{
ABCDE_struct ABCDE;

ABCDE.A=PINB;
ABCDE.B=PINB;
ABCDE.C=PINB;
ABCDE.D=PINB;
ABCDE.E=PINB;
func(&ABCDE);
}
548774ワット発電中さん:05/01/05 15:30:59 ID:peGYrkiJ

また、最初のプログラムで変数A,B,C,D,Eをグローバル変数にすると、
プログラムサイズは一気に368バイトにふくれあがります。
一方、構造体アドレス渡しプログラムで、構造体変数をグローバル変数にしても
238バイト、構造体はmain()のローカル変数にして、構造体のアドレスだけを
グローバル変数にして、これを手がかりに構造体本体を直接参照できない
(スコープ外)なところから参照しても220バイトにとどまります。

これは極端な例ですけど、できるだけ関数で受け渡すデータを少なくするように、
グローバル変数をできるだけ減らし、使うとしても構造体でアドレス参照になるよう、
sts/ldsを使わせずld/st命令を使わせるよう工夫するとコードが小さくなることが
あるようです。うまくいかないことも多いですが。

また、多数の変数をコピーする必要がある場合
(Copy_A=A;Copy_B=B;・・・・など)、これらを構造体にして、
Copy_struct_data=struct_data;のようにするとブロックコピーを使うコードとなり
ソースも生成コードも小さくなる場合があります。
549774ワット発電中さん:05/01/05 23:39:08 ID:WoETcxKR
大人気ないこと言って申し訳ないが、なんか

  Cでは関数コール時の引数は値渡しされる

要はこの一言で必要十分なんじゃないだろうか?
550774ワット発電中さん:05/01/06 00:33:47 ID:Xn9yi71K
>>549
変数の実体ではなくポインタ渡しも可能だがし、文字列変数などは、ポインタ渡し
の方が普通だし。

「ポインタ」も「値」だというなら、逆に「値渡し」以外の変数の渡し方って
具体的になんだ?関数の引数を全部グローバル変数で渡すとか、でもグロー
バル変数も値渡しだよな?
551774ワット発電中さん:05/01/06 00:53:23 ID:j7TCIAnZ
横からスマソ。
初めてこのスレで勉強になった気がする。(>コード量)
552774ワット発電中さん:05/01/06 01:04:01 ID:sQXiTxdL
>>550
何が言いたいのかいまいちよく分らないけど
>>549は「>>547-548は結局Cでは関数コール時の引数は値渡しされるって
ことを知っていれば容易に想像できることだ」ってことですが。

「値渡し」以外の変数の渡し方って何だってことですが、値渡しってことは
わざわざカーボンコピー作ってるってことなわけで……ここまでいえば後は
説明は不要ですよね。
553774ワット発電中さん:05/01/06 05:46:12 ID:+93KtM01



これ、本人の自画自賛以外のなにものでもない恥だよね



398 :774ワット発電厨さん :04/12/28 15:06:23 ID:tlUCQ25y
そうね 某氏の物腰がソフトになって、
逆に親しみやすいメーリングリストになった感じ













554774ワット発電中さん:05/01/06 07:09:03 ID:U4lR9rds
>>549,552
長くなりすぎてスマソ。どれくらい効果あるかを具体的に示したかったもんで。
Windowsなどではポインタ渡しを意識するのは引数を変更して帰す場合とか、
めちゃくちゃでかいデータを与えるとき、文字列を扱うときくらいですよね。
それ以外の場合はめんどくさいので値渡しが普通かと。
しかしWinAVRでは値渡しのオーバーヘッドもバカにならないので、
それ以外の場合でも要検討ってことで。

>>550
グローバル変数はポインタ渡しの一種と考えて良いと思うよ。
共通の変数の変数名を介してアクセスしているし。参照先が変数を
変更すると変数自体が変更されるし。
555774ワット発電中さん:05/01/06 08:58:01 ID:ymFlaGG5
>>552
それほど自明でもないよ。>>547がタイトルで書いているように限られたケース。
アドレス渡しなら呼び出し元変数アドレス(16bit)をセットしてcall、関数側ではレジスタにld命令で
読み込んでから使うので、引数1つあたり3命令かそれ以上。
値渡しならデータサイズ分だけ呼び出し元での変数からld命令でコピーしてcall、関数側では
既に一定のレジスタにあるのですぐ使える。引数1バイトあたり1命令かそれ以上。
なので、たとえコピーになる値渡しでも、変数サイズが小さいときは値渡しの方が有利と考えられる。
配列でないcharなんて関数内での変更を返したいと思わなければ値渡しがずっと有利。
引数の数が多ければ構造体を使うメリットが、引数のサイズが大きければアドレス渡しのメリットが増える。
関数が複数あって、各関数で引数が似通っていれば構造体にしてしまうのもいいかもと考える。
556マジノ線上の名無し:05/01/06 15:16:34 ID:LFNz7GOk
教えてください。
現在H8-3052をCPUにしてモータ制御をやってます。
 モータドライバにTA8440を使ってPWM制御をしているのですが、
なぜか突然ハードウェアリセットが発生してしまいます。H8とTA8440は
直結しております。
 原因が判らず、いろいろ試してみたところ、どうやらモータの正回転・
逆回転の切り替えのときにリセットが発生しているのではないかな、と
いうところまでは判りました。(NMI割り込みやRES端子も疑いましたが
問題なさそうでした。また切り替えをしないようにプログラムすると安定
しています)
 そこでお伺いしたいのですが、正回転・逆回転の切り替えの時には
一度モータドライバの状態をBREAKにしてから切り替えるようにしたほ
うが良いのでしょうか? モータを突然逆転させようとすることがどうH8
に影響を及ぼすのか判らないので、どなたかご教授くださいませ。
557774ワット発電中さん:05/01/06 15:41:32 ID:bI6+XR86
モーターの電源とマイコンの電源がアイソレーションされていないなんて言う
基礎的な失敗をしていないか?
558774ワット発電中さん:05/01/06 15:51:56 ID:v7KlFnrC
>>556
単にモーター負荷で電圧降下→リセットの予感。
もしブレーキして停止後逆転すると改善するなら
過負荷のためかも。
559774ワット発電中さん:05/01/06 16:10:09 ID:xkjZIB89
558はバカかも。
モーターを使って怖いのは電圧上昇
560774ワット発電中さん:05/01/06 16:15:33 ID:GQoyDlJq
>>559
いや、モーターの容量と電源に
よっては確かに考えられるが。
561774ワット発電中さん:05/01/06 16:32:47 ID:v7KlFnrC
>>559
当然ダイオードでGNDへのクランプはしてるよな?って思っていたのだが。
それも要チェックだなあ。
ところで、PWMがONの(Chop=L)状態で正逆切り替えたら
変なことがおこる可能性はないかな?
Enable=LまたはBrake=Lにして、その間に正逆切り返した方がよくないかなあ。
562774ワット発電中さん:05/01/06 17:48:24 ID:KpKBv5ed
とりあえずマイコンの電源の近くに100uFくらい入れてみてくれ。
それとパラで0.1uFのセラミック。
電源ライン(VCCとGND)を見ていて、モータの逆転のタイミングで
波形が揺れてなければいいんすけどね。
563774ワット発電中さん:05/01/06 17:52:02 ID:KpKBv5ed
あと、例えば、定番のTA7291のモータドライバの取説には、

TA7291P/S/SG/F/FG
応用上の注意点
入力を切り替えたときに貫通電流が流れます。入力切り替え時 (正転⇔逆転、正転/逆転⇔ブレーキ) にSTOP モード
(約100 μs) を入れてください。
電源の投入時やOFF 時には、IC のファンクションは保証できません。応用上問題ないことを確認の上ご使用くださ
い。

って御丁寧に書いてあるんですが、TA8440の取説には、そんな事書いてないんですか?
564774ワット発電中さん:05/01/06 18:23:48 ID:crNQKAN5
>>559
どちらかというと・・・
565774ワット発電中さん:05/01/06 19:30:54 ID:SxVjB+G7
やっぱ電源でしょ。
まさかVccそのままモーター駆動電源として使ってる
なんてバカなことは(ry
566774ワット発電中さん:05/01/06 20:08:25 ID:zmiQiCQQ
>>563
http://www.semicon.toshiba.co.jp/td/ja/Linear_ICs/Motor_Driver_ICs/20040524_TA8440HQ_datasheet.pdf
電源投入時の注意はあるけど、入力切り替え時の注意事項はないな。
567774ワット発電中さん:05/01/06 20:08:57 ID:zmiQiCQQ
>>566
QだらけなID・・・・○| ̄|_
568774ワット発電中さん:05/01/06 20:40:11 ID:SxVjB+G7
あと、H8の場合(に限らずか?)
WDTがアップするとリセットがかからなかったかな?

ハードウエア・リセットが全く疑う余地なしだったら、だけど。
569マジノ線上の名無し:05/01/06 20:41:09 ID:LFNz7GOk
みなさま有り難うございます。
お忙しい時間だろうから夜に見直せばいいやと思っていたら沢山…(^^;

ええと。
 565さんのおっしゃるとおりです。とにかく軽量化をしたいとのことだった
ので一つのバッテリでいきたいな……とやったのが失敗だったようです。
 はい、大馬鹿でしたorz
 でも正逆の切り替えができていないようですので、561さんの方法と、つ
いでに562さんの方法も試します。有り難うございました。
570774ワット発電中さん:05/01/06 20:44:41 ID:bDtO8/U3
>>565
小型ロボットで、電源がニッカド6本で、そこからモータとマイコンの電源を作っている
っていうのはあるかも。
普通は、モータとマイコンで、電池を分けるんだけどねぇ。スペースの関係で
共通電源にせぜるをえないかもね。
まぁニッカドはモータに使って、マイコン部は006Pの9Vから三端子で5Vにするのが
オーソドックスかもね。
571774ワット発電中さん:05/01/06 20:52:34 ID:bDtO8/U3
>>566
>注1: 出力.GND 間 (2 ヵ所)に上図のように、貫通電流防止用のショットキダイオード (当社製2GWJ42) 相当を接続してください。

これはやっておくべきだね。(やってなければ)。
P2を見ると、このダイオードは内蔵されているみたいだけど、これは逆起防止であって、貫通防止じゃないのかな。
内部は、2段、3段のダーリントンになっているんだから、普通の0.6Vなダイオードを外付けしてもいいんじゃないの?
ショットキーじゃなきゃダメ?誰か教えてください。
572774ワット発電中さん:05/01/06 22:03:37 ID:MCtEa6EX
確かにTA8440Hは頻繁に壊れる
主に出力段が燃えているんだがロジック系にも地雷があるもよう
TA8429Hは壊れたことないんだがなあ
573774ワット発電中さん:05/01/06 22:44:06 ID:SxVjB+G7
>>569
ひとつ疑問が。
あの石使って逆転はできないと思うんだけど、どんな方法だろ。
リレー?
いずれにせよ正転から逆転に入る瞬間はとんでもないエネルギーを
消費するはずなのでそこらへんはPMWを活用して適当な加減速をつけないと
バッテリーの消耗が激しい。
どうでも急速な加減速が欲しいなら間にモーター端子間をショートする
ブレーキをつける。
でも、それってH8使わなくてもいいような気がするけど。
574774ワット発電中さん:05/01/06 22:50:13 ID:SxVjB+G7
訂正。PMWでなくてPWM。
575774ワット発電中さん:05/01/06 22:56:48 ID:zmiQiCQQ
>>573
え、そなの?
>>566みたらできるみたいなんだけど。ちゃんと内部にHブリッジあるし。
576774ワット発電中さん:05/01/06 22:59:38 ID:qBKYmrhN
Hブリッジなんだから 当然逆転できます
577774ワット発電中さん:05/01/06 23:04:56 ID:SxVjB+G7
あ、ほんとだ悪かった。スマソ(汗。
578774ワット発電中さん:05/01/07 00:52:53 ID:sgs1vioX
TA8440のVsとロジック系の電源をレギュレータやフィルタで分ける
必要がありそうですね。
それから、逆転時は一呼吸OFF時間を入れないとヤバイでしょうね。
SBDは内蔵されているDよりVfが小さいものでないと外付けするメリットが
無くなります。(VfはデータシートP.4参照)
SBDをつけてもサージが無くなるわけではないのでロジック電源の保護は
やった方がいいと思います。
579774ワット発電中さん:05/01/07 02:17:45 ID:E4uQblcB
Vfだけじゃないよ。タイミングの問題もあるよ。
サージって言うなよ。貴重なエネルギーだぞ。
580774ワット発電中さん:05/01/07 08:53:38 ID:Mn783PIs
アフォな質問なんですが、AVR Studioでシミュレーションするときに
EEPROMの初期値はどうやって設定するのでしょうか。
アセンブラで

.ESEG
eeprom: .DB $12

では だめだったのですが・・・
581774ワット発電中さん:05/01/07 13:00:06 ID:bEhPANY8
>>580
help見る限りではそれでよさそうなんだけどね。
そのラベル(eeprom:)が予約語だからだめって可能性はないですか?
582580:05/01/08 00:35:42 ID:0uGQ2Z1G
>>581
ラベルを変えて見てもだめでしたorz
Buildすると生成される
hogehoge.eep
というファイルを使うのでしょうか??
さっぱり分かりません。
583774ワット発電中さん:05/01/08 02:32:28 ID:1DHvQORb
すいません。質問なんですが、H8 3042Fへのプログラムの転送ができません。
マイコンとの通信速度が合ってませんとヘルプが出ました。
お願いします助けてください。
584774ワット発電中さん:05/01/08 04:33:11 ID:rwamlku4

−−−−− ここは周了−−−−

H8のヘルプはこちらへ再投稿するがよろし

http://science3.2ch.net/test/read.cgi/denki/1102215461/l50
585774ワット発電中さん:05/01/08 07:10:25 ID:mNxHD1uA
>>584
話にならん。
586774ワット発電中さん:05/01/08 15:51:59 ID:1DHvQORb
>>584
いってみます。レスありがとうございました
587774ワット発電中さん:05/01/08 16:22:09 ID:KUUum1hc
「ヘルプが出ました」

今年はこのフレーズが流行る予感。
588774ワット発電中さん:05/01/10 09:57:55 ID:SbNXOQ8t
digikeyでATMEGA88 20M TQFP の在庫が一向に入らん。
製作にかかれん......。
ここ以外で、個人で購入可能なお店をご存知の方いらっしゃいませんか?
589774ワット発電中さん:05/01/10 12:36:59 ID:5EBi02Tb
mega8でいいじゃん。88じゃないとダメな理由でもあるの?
590588:05/01/10 13:00:39 ID:InLKN5K1
mega8だとPWMが足りんのです。
当方、ロボットの製作をしておりまして、デジタルサーボの構成のために、
安価で多chのPWM出力を持ったデバイスを必要としている次第です。

591774ワット発電中さん:05/01/10 14:21:36 ID:CMAmPFSO
お前のような技術力の低い者を対象にしたデバイスはありません。
592774ワット発電中さん:05/01/10 17:27:54 ID:BlHxUuAP
>>590
ATmegaの20MHz駆動なら多チャンネルPWMくらいソフトウェアでできない?
593774ワット発電中さん:05/01/10 18:09:52 ID:Nn/KA5CI
そこでPSoCですよ
594774ワット発電中さん:05/01/10 19:37:23 ID:MHjn6DAj
確かにPSoCなら一番ポピュラーな27443でも8ビット
PWMなら8個持てるな。29466なら16個か。
(漏れの技量じゃそんなに管理しきれないかな)
595774ワット発電中さん:05/01/10 20:26:31 ID:ok3hoqVJ
>>590
mega48なら入手出来るんじゃないの?
596774ワット発電中さん:05/01/10 20:37:45 ID:ok3hoqVJ
>>590
ATMEGA88V-10AI-ND (10MHZ 32-TQFP)なら300個ほどあるみたいだけど、
20MHzじゃなきゃダメ?
597774ワット発電中さん:05/01/10 20:43:11 ID:ok3hoqVJ
あと、TLV5628みたいな、シリアルの8chDACとか。
598588:05/01/10 21:01:56 ID:u/tckIbH
みなさん情報有難うです。

ttp://elm-chan.org/works/smc/report_j.html
このページのサーボシステムを4軸実装したいので、10Mだとちょっと余裕がないかな?
と考えておりまして、20Mを所望してるのであります。
同時に関節2箇所の逆運動学も解かせようと思っているので、スペックは高いほど嬉しい。

パッケージは製作しているロボット自体が小型なのでDIPだとちょっと辛い......。
手半田なのでMLFはさすがに勘弁........。

入荷するまで素直に待つしかないかな?

psocはちょっと難しそうです。
599774ワット発電中さん:05/01/10 21:33:54 ID:qts5PHrb
っていうかまてよavrって8bitマイコンだよな
megaもそうだよなぁ?
逆運動とかせるのにそんなんでいいのかと
本気か?FPUも載ってないのに逆運動を
すげーな
600774ワット発電中さん:05/01/10 21:34:59 ID:rICr7viU
>>588
IPI はどうでしょう?
Webページのリストに無いものでも電話したら在庫があることがあります。
これで何度か助かりましたよ。
601774ワット発電中さん:05/01/10 22:31:38 ID:29ss7U6/
2相のカウンターが4本必要だけど、だいじょうなん?
そのCPU。
602588:05/01/10 22:57:58 ID:PrxSdvwU
>>599
三角関数をテーブルで実装すると8bitマイコンでも意外と出来るもんですよ。
浮動小数点演算を行わないように式を工夫すると、案外高速に演算できます。
精度はそこそこですが、制御対象自体もあまり精密なものではないので、十分なのです。
お金があればSH4とかでバリバリやりたいのですが、何分、貧乏学生の身分なので......。
マイコンボード一枚に何万円も払えません.........。

>>600
IPIですか、明日電話してみます。情報有難うございます。
603774ワット発電中さん:05/01/10 23:02:14 ID:MHjn6DAj
PSoCならデッドバンド付きPWM持ってるから、
このDead-Time Control部分なんかがそっくり
要らなくなりそうだけどCPUが遅いからなぁ。
いずれサーボモータ手に入れたら実験してみようっと。
604774ワット発電中さん:05/01/10 23:13:28 ID:Yy9clbTD
>>598
そりゃたいへんですね。
できれば2つに分けて、両方に同じコマンドを与えて自分のモーターに対する物じゃなければ
無視する形にしたいところですが・・それは無理なんですね。
これを1つのCPUでやるってのもすごそう。出来たらどっかに公開して。

>>601
ELMさんとこみたら10MHzの2313で52kHzでチェックしてCPU負荷26%とか言っていますね。
エンコーダが4つになっても割り込み時間は4倍まではいかず2倍強って所ではないでしょうか?
20MHz駆動にして、増加する割り込みを2回に1回スキップして52kHz相当にするか、
TMR0を1/256にして26kHz/1950rpm相当で我慢しても良いならなんとかなりそうな。
サーボ計算は2313の10MHzで9%といってるし、mega化で短縮できそうだし、ELMさんとこ
みたいに多重割り込みを許してエンコーダ処理が止まらない様にすれば4つくらいは
いけることになりますね。
605774ワット発電中さん:05/01/11 00:27:26 ID:ZwjJNEwF
PSoCなら、そこのトップにあるスペアナ?も簡単だろうなぁ
606599:05/01/11 01:49:30 ID:1FbjNDAN
>>602
まず三角関数をテーブルにするのはメモリーを犠牲にして速度を稼ぐ方法なので、
mega88 みたら8Kだけど、基本的にかんがえないほうこうできたいもですよ
簡単に計算して5度ずつにsinを用意しても、出力の値が8bitで272byteになるけど
8bitマイコンだと整数演算でsinの値を出力できないから
Cなら構造体使って分母と分子に組み分けることがかんがえられるけど
そしたら644byteになる
一応これの打開策を挙げとくと、プログラム上にメモリを書き込んでおくんじゃなくて
起動したら別途メモリを確保してそこにプログラムの演算でテーブルを用意するとか
もちろん起動のたんびにテーブルを用意する必要がでてくるEPPROMだっけあれに書き込む
てもあるけど、そくどがおそくなる、メモリにロードしてもいいけどそれだけでプログラム容量を食う

で、浮動小数点じゃない少数の扱いだけど↑でかいた構造体使うにも
基本的に正の数で256〜0.0039程度まで小数点を扱えるけど
マイナスを表現しないなら少し犠牲を…
約分が大変だからこれもネック

つぎに、浮動小数点だけどgccで使ってると思われるIEEEの規格上のは16bit
つまり処理するだけで最低4クロック以上費やす、もちろん4クロックどころじゃなくて
足し算しただけでもそれの何倍かになるだろうけど
まあFPUついてないからなかでbitシフトの連続だろうからまあ
ちょっと使っただけど、速度の点でボトルネックになるのと問題はプログラム容量を
やたらと食う

私はちょっと前に2313でPID速度制御実験をしたんですが、
まあ私のプログラムが今思っても汚いのもあってそれだけで
1Kのフラッシュが結構埋まりました、他の事を欠く余裕がありませんでした
#C言語をつかってますが

ちなみに、私も貧乏学生です、ってか私の場合はつぎ取り掛かるのでは
トラ技H8を使うことにしてます、
資料が多いいのが利点です、ですがここでも小数値の扱いが非常に…
あとPWMのポートも少ないですね、いざとなれば3048にするてもありますし
そんでアドレス、バスつかって外部にICつけまくてワンチップじゃやってらんねー
と叫ぶ…


607774ワット発電中さん:05/01/11 02:34:10 ID:sYHbMz9B
>>606
オマエバカだろ。
x=sin(x) を知らんのか?これを利用して加法定理と周期性を利用して計算すれば良いんだよ。
608774ワット発電中さん:05/01/11 03:37:22 ID:1FbjNDAN
>>607
orz
周期性忘れとった、4分の1か...
で、その、加法定理を利用してというのが、
マクローリンを2次の項をとるのと同じですか?
609774ワット発電中さん:05/01/11 03:46:49 ID:sYHbMz9B
> マクローリンを2次の項をとるのと同じですか?

ちゃうだろが。
この方法の利点は、精度が欲しければ有効桁増やして計算すれば良いこと。
テーブル方式や、多項式近似式の計算では有効桁を替えるにはテーブルの数値や
近似式の係数を替えなければ成らないからね。
610774ワット発電中さん:05/01/11 04:35:53 ID:wN0TZvA/
まあなんだ、がんがれw
611774ワット発電中さん:05/01/11 09:08:19 ID:t5DAiXcm
>>606
テーブル引きで行くとしても、符号なし固定小数点16bitでいいんじゃない?
分母とやらを32768決め打ちにすればいいわけ。構造体なんかいらない。
sin(0)〜sin(π/2)まで、最上位ビット=1の固定小数点で1/256rad刻み
(0.0039rad、,0.22°刻み)でも806バイトにすぎない。2313ならともかく、megaなら問題なしでは?
間は16bit精度なら単なる直線補完でもそこそこいけると思うが。
cos(x)=√1-sin^2(x)のために平方根演算が使えるなら0〜π/4でもいいけど
そこまでやるなら>>607でもいいかなあ。
612774ワット発電中さん:05/01/11 09:39:30 ID:5ZE7kG4E
613611:05/01/11 10:05:37 ID:SMAy1tJW
>>612
へぇ〜なるほど。加法定理のA,B部分をそのまま位相の上位8bit,下位8bitで行うんですか。
上位のテーブル範囲を0〜π/2とすればSINとCOSは兼用できる(256-xを与えればいい)ので1つでいいし、
下位については0〜0.35°の表だから、テーブル引かずに引数xと、1-x/2で代用してもいけるかも。
うまくいけば512バイトでかなりの精度だせますね。
614774ワット発電中さん:05/01/11 11:48:54 ID:62KiCPTK
なにチンタラテーブル引きなんてやってるんだ?
三次スプラインでFAだろ。
615774ワット発電中さん:05/01/11 12:05:03 ID:dI8xPrys
>>614
計算減らしたいからってとこでは。
megaならともかく旧AVRなど乗算命令ないやつならテーブルしたくなる。
616774ワット発電中さん:05/01/11 13:01:47 ID:HtnJrjvg
5°ステップ程度のテーブルで3点とって2次近似程度でいいのでは?
いったいどれくらい正確な三角関数表がいるのだろう?
x-α,n,n+αに対してsin値がp,q,rなら、
sin(x)≒a(x-n)^2+b(x-n)+cで
  a=(x+z-2q)/2/α^2、b=(z-x)/2/α、c=q
αを1/2^nの形にすれば割り算なしでOK
617774ワット発電中さん:05/01/11 13:08:22 ID:62KiCPTK
スプラインなら次数高くなくて良いし、(三次式で十分)
区分の点も少なくてすむ。テーブルのように均一に値を持って置かなくても良いからだ。

で、かけ算すら苦痛になるってのはおかしいだろ。
インバースキネマティクスに使うんだろ?
三角関数の後にかけ算が何個有ると思ってるのだ。

三角関数はスプラインで片づけて、空いたメモリで別のテーブル作って
別の部分を高速化すればいい。
618774ワット発電中さん:05/01/11 13:14:27 ID:62KiCPTK
まぁテーブル+線形補間でも均一に持ってる必要はないが、
スプラインなら曲率に応じてかなりすっ飛ばしても精度が保たれる。
619774ワット発電中さん:05/01/11 13:52:46 ID:wGYQ/EIq
因みに ID:62KiCPTK は標本化定理もわからない例のQな。
Over 30 学位とれず2CHに張り付くしか能はなし。
スルーよろしく。テーブルの一つも作ったことないよ。まともに相手すると時間の無駄だからねー。
620774ワット発電中さん:05/01/11 13:56:19 ID:62KiCPTK
高卒wGYQ/EIqの妄言:「サンプリングでは帯域制限なんか絶対されないんだ!AAFが帯域制限の原因なんだムキー!!!」

一流院生によるチェックメイト:
「ほう、ならAAFを外せばCDは60KHzの音も記録・再生できるというわけか。乙。」

高卒wGYQ/EIqの断末魔:「サンプリング定理に帯域制限されるなんて書いてない!ムキー!!」

一流院生によるとどめ:
「サンプリングで帯域制限されるとは何度も書いてるがサンプリング定理で帯域制限されるなどとは
一度も書いた事がない。日本語すら読めない高卒哀れ。マジ哀れ。」
621774ワット発電中さん:05/01/11 13:56:46 ID:ot9W8sip
つーか、一寸花を植えたいのだが?と質問したらユンボが良い!!それ以外を使う奴は高卒と
叫んでるようなもんだ。
622774ワット発電中さん:05/01/11 14:03:00 ID:62KiCPTK
高卒wGYQ/EIqの妄言:「フーリエ変換もウィナーフィルタも世の中にあるものは全て偽物だ!疑似だ!そんなものは実現不可能だムキー!!!」
一流大学大学院生によるクリティカルヒット:
「離散化とは高卒以外にとっては帯域制限以外の何物でもない。
よって高卒以外で離散化を疑似フーリエ変換とか疑似ウィナーフィルタなんて言ってる奴は世界に一人もいない。
ググっても0件だ。」

高卒wGYQ/EIqの妄言:「周波数領域ではデータが全部そろわないと計算できないんだ!実現不可能なんだムキーー!!」
一流大学大学院生によるクリティカルヒット:「有限長カーネルのコンボリューションは帯域制限付き窓つき短時間フーリエ変換と等価であり、有限長カーネル・窓のコンボリューションを使った実時間周波数領域フィルタは幾らでも実用化されている。
そもそも世の中のDSPのほとんどがこの目的で使われている事すら知らないとはあまりにも哀れ。」

高卒wGYQ/EIqの妄言:「サンプリングでは帯域制限なんか絶対されないんだ!AAFが帯域制限の原因なんだムキー!!!」

一流大学大学院生によるチェックメイト:
「ほう、ならAAFを外せばCDは60KHzの音も記録・再生できるというわけか。乙。」

高卒wGYQ/EIqの断末魔:「サンプリング定理に帯域制限されるなんて書いてない!ムキー!!」

一流大学大学院生によるとどめ:
「サンプリングで帯域制限されるとは何度も書いてるがサンプリング定理で帯域制限されるなどとは
一度も書いた事がない。日本語すら読めない高卒哀れ。マジ哀れ。」
623774ワット発電中さん:05/01/11 14:03:45 ID:62KiCPTK
>>621
どの部分の何がだ?
624774ワット発電中さん:05/01/11 14:10:37 ID:PNMUJOuA
荒らしのレスなんて相手にする必要が無いと証明されたんじゃないの?
こんなゴミを板中に貼り付けて回るなんざとてもまともとは思えない。
625774ワット発電中さん:05/01/11 14:12:11 ID:EQuMPEw5
>>623
発言には「高卒」を入れてくれ
NGワードで消えないじゃねーか
626774ワット発電中さん:05/01/11 14:13:15 ID:62KiCPTK
PNMUJOuA=wGYQ/EIq乙。
次はどのIDにする?プククククククク
627774ワット発電中さん:05/01/11 14:15:43 ID:dI8xPrys
>>619
まともっぽいのですぐには気づかなかったけど、さっき別スレで同じID見たから知ってるよ。
しかし(内容はともかく)このスレでは普通に発言しているのをつけ回して煽って発症させている
お前の方がこのスレでは最低。
たのむからいい加減にしてくれ。
628774ワット発電中さん:05/01/11 14:18:00 ID:ulF/Y9HZ
>>627
そういう場合はスルー汁
629774ワット発電中さん:05/01/11 14:18:30 ID:HkX/ZMsN
同一人物じゃないの?>62KiCPTKとwGYQ/EIq
630774ワット発電中さん:05/01/11 14:20:28 ID:ulF/Y9HZ
>>629
たぶんそうでしょ。
631774ワット発電中さん:05/01/11 14:21:01 ID:dI8xPrys
○| ̄|_・・・・
632774ワット発電中さん:05/01/11 14:22:28 ID:g0gC3QnV
何というか2chブラウザで透明あぼーんして完全に消し去ったら終わりじゃないの?
漏れはかなり前からそうしてる。
そうでもしないとスレッドがゴミだらけで見難くて仕方ない。
633774ワット発電中さん:05/01/11 14:23:51 ID:g0gC3QnV
ついでに言うとまともっぽいことを行っている場合でも余所を荒らすような輩は
人に何かを教える資格など無い。
634774ワット発電中さん:05/01/11 14:32:07 ID:62KiCPTK
>>629-630
んな訳ねーだろ。
論破されたらID変えつつ自作自演か?
哀れなものだな。
635774ワット発電中さん:05/01/11 14:36:38 ID:wGYQ/EIq
>>627
知ってるならOK。他意は無いよ。でも相手するにふさわしいかどうか目安にはなるでしょ。

>>629
>>630
それは違う。潰してもいい過疎スレだからやっただけ。ここではやらないから。
636774ワット発電中さん:05/01/11 14:38:28 ID:62KiCPTK
637774ワット発電中さん:05/01/11 14:42:16 ID:dI8xPrys
>>634-635
まあ同類には違いないと認識。できれば隔離スレで仲良くしてくれ。以後スルーします。
638774ワット発電中さん:05/01/11 14:45:38 ID:wGYQ/EIq
>>637
OK !
639774ワット発電中さん:05/01/11 14:48:18 ID:dI8xPrys
>>638
勘違いするなよ。
62KiCPTKが普通に書き込んでいれば普通に相手するからね。あなたにもね。
640774ワット発電中さん:05/01/11 14:59:30 ID:wGYQ/EIq
>>639
>普通に書き込んでいれば普通に相手するからね
それはどうぞご自由に。

>あなたにもね。
どうもありがと。
641774ワット発電中さん:05/01/11 15:03:53 ID:wGYQ/EIq
スレ趣旨と関係ないこと書いてる俺の ID:wGYQ/EIq はスルーしてもらっていいよという意味ね。
642774ワット発電中さん:05/01/11 18:25:05 ID:AUnOZgL2
sinは単に三角波で近似しても、案外うまくいく、、、、事もあります。
なんつったって計算が速いし単純だし。
まず三角波でやってみてダメならちゃんとテーブルSINっていうアプローチでもいいんでは?
テーブル作る必要がなければ、ATMega48で入るかもしれないし。
643熱暴走 ◆2SA784NN.A :05/01/11 19:46:21 ID:P9xWcl3K
スレをROMってて、勉強になるなぁ φ(..) メモメモ
と思いつつ、前スレからこんなのを引っ張り出してみる。

http://www.micromegacorp.com/umfpu.html

誰か使った人いる?
644774ワット発電中さん:05/01/11 20:33:38 ID:U/KWG3tL
>>643
なんか通信のオーバーヘッド見て使う気失せたのを覚えている・・・・

>>642
三角波はどうかわからないが、10°刻みで10点くらいのデータで±0.2%
(有効桁9bit)くらいでは得られるようだ。これくらいで充分なら楽だし。
645774ワット発電中さん:05/01/11 20:33:56 ID:T9RR3kix
三角波で誤差の増える頂点部分を少し曲げた折れ線で近似する
(六角波?近似)というのも手かもね。
646774ワット発電中さん:05/01/11 21:18:53 ID:BjmBz8V8
>643
なんかPICみたいな気がするのでつが スピード的にどうでつか?
647熱暴走 ◆2SA784NN.A :05/01/11 21:30:50 ID:P9xWcl3K
前スレ >>689 から引用

>$15ってのがなんだけど、面白いですね。しかし、
>http://www.micromegacorp.com/downloads/documentation/AppNote%20001%20Timing.pdf
>データ転送、32bitデータのセット時間が128usec、32bit除算コマンドが298usec、
>32bitデータの読み出しに123usecだから、32bit/32bitの計算に128*2+298+123*2=800usecかかるってことですね。
>16MHzAVRなら12800step。整数演算ではメリット薄そう。浮動小数点じゃないと生きないようですね。

浮動小数点を使い、且つCPU負荷を下げたいor演算に
占有させたくない用途にはいいかと。
648774ワット発電中さん:05/01/11 23:05:57 ID:ss6zK9Yj
やっぱPICぽいね。
649774ワット発電中さん:05/01/11 23:32:27 ID:U/KWG3tL
>>647
浮動小数点でもどうだろ・・・話題のsinなど、数msかかる演算が並びますね。
うまくこいつと同期して演算できるといいんだけど。

その引用レス書いたの俺だ・・・
650774ワット発電中さん:05/01/12 00:05:44 ID:IskbytTU
>>643
とりあえず、何も考えずに買うなら
http://www.sparkfun.com/shop/index.php?shop=1&itemid=289
ですな。Price: $14.95

ついでに、例のOlimex製のAVR In Circuit Emulator(AVR-JTAG)が
Price: $44.95 で売っているのを発見。
http://www.sparkfun.com/shop/index.php?shop=1&cat=4&

651774ワット発電中さん:05/01/12 22:10:31 ID:VCkBQlqL
1チップマイコンで複数個(2〜6個位)のフルカラーLEDの各色、各LEDの明るさを自在に変えたいのですが
コンパクトに実現する何か良い方法があれば教えてください
652774ワット発電中さん:05/01/12 22:18:00 ID:oNm2Zk3Q
>>651
6個のフルカラーLEDをコントロールって事は18個のコントロールですね。
足(出力ポート)の多いマイコンでソフトウェアPWM手っ取り早いと思う。
653774ワット発電中さん:05/01/12 23:03:13 ID:d8Wu30s/
ダーイナミーックドリャーブってのはどうか
電流制限抵抗は小さめで
ポート少なくてすむぞ
654774ワット発電中さん:05/01/12 23:09:15 ID:dQPHB16B
>>653
あーそうか、ダイナミックでも行けるかなあ。
赤青緑で制限抵抗値は異なるから、2つのフルカラーLEDを6本で制御して、
これをダイナミックで3セット駆動って感じ?
デューティは最大1/3になるんで、暗くなるのを補うため多少電流高めにしてもいいかな。
655774ワット発電中さん:05/01/13 01:01:42 ID:LQQCv6by
>>654
赤,青,緑それぞれにPWM出力を割り付けて、コモン側を1/6の時分割駆動でも問題
ないと思うが?

3本のPWM出力をハードウェアで同期制御できるマイコンでないと、タイミング的に
厳しいかもしれんが、ATmega8程度の処理能力があれば、0.15mS間隔のタイマー
割込とソフトウェアによる擬似PWM出力(1/16分割)とダイナミック点灯方式でも
十分いけそうな気がする。(RGB各4bitで4096色)
656774ワット発電中さん:05/01/13 06:51:59 ID:+ZVJbykN
ダイナミック点灯の場合、電流補強で大概ドライバーを追加する
けど、隣のビット同士でターンオン・ターンオフのオーバーラップ
が発生するので正直にデューティを1/6にはできない点に注意。
657774ワット発電中さん:05/01/13 07:04:19 ID:9iDWpl24
>>655
ここは必要な明るさ次第かな。
658774ワット発電中さん:05/01/13 07:33:20 ID:SCBT05Lv
>>656
多桁の数字を表示するんじゃなく色を制御するんだから、オーバーラップは気にならんと思う。
659774ワット発電中さん:05/01/13 08:45:52 ID:UxifS17N
>>655
3本PWM×3バンクと6本PWM×3バンク。
3to8デコーダーなどを使わなければどちらも必要な出力ピン数は9本。
あとは、ドライバ(トランジスタ)が3つで済むがソフトウェアPWMを6つ制御せにゃならない、最大Dutyが1/3の前者と
ドライバが6ついるがPWMは3つでいい、最大Dutyが1/6に制限される後者との比較かな。
この場合のPWMだけど、たとえば16階調で単純に1/16〜16/16とするより、もうちょい細かく(6bitくらい)して、
対数的(たとえば約√2刻み)にしたほうが見た目にはリニアに明るさが変わっているように見えます。
平均電流でリニアに変化させると暗い方で明るさの変化が目立ってしまいます。
フルカラーLEDだと色の合成的にはどっちが有利かな・・・
これを10MHzAVRのTMR0オーバーフロー割り込みでやるとなるとプリスケーラなし、6本PWM×3バンクで
点滅周期200Hz、3本PWM×6バンクで100HzってとこなんでかろうじてOK?
660655:05/01/13 10:27:41 ID:LQQCv6by
>>656
セグメント切替時に...

(1) 全セグメントOFF
(2) PWMデューティ比(R,G,B)再設定
(3) 次セグメントON

といった処理を行ってセグメント切替時にデッドタイムを設けることで、オーバー
ラップは回避できると思う。

また、内蔵タイマでPWM(任意のデューティ比の任意周波数パルスを出力する)モード
がサポートされていなくても、ワンショットモードに設定した3ch(または6ch)の
タイマを、(2)の処理で出力パルス幅の設定と、起動トリガを掛けるようにして、
一連の(1)〜(3)の処理を別のインターバルタイマ割込ルーチンで呼び出すといった
方法も可能だと思う。

>>659
PWMのデューティ比が、リニア制御ではなく、対数制御の方が好ましいのは判るが、
ソフトウェアPWMではタイマの割込周期の設定が難しいのではないかということで、
あえて簡単なリニア方式とした。MCU内蔵周辺回路のハードウェアPWMが使えるなら
対数換算テーブルを使うのが手っ取り早くて、CPU負荷も少ないと思う。

> これを10MHzAVRのTMR0オーバーフロー割り込みでやるとなるとプリスケーラなし、6本PWM×3バンクで
> 点滅周期200Hz、3本PWM×6バンクで100HzってとこなんでかろうじてOK?

バンク数が多い方が、バンクあたりの点滅間隔を短く(全体の周期を早く)しな
ければちらついてしまう。

3バンクで点滅周期200Hz(バンクあたり200/3=約60Hz)は問題ないと思うけど、
6バンクで点滅周期100Hz(バンクあたり100/6=約16Hz)は明らかに遅すぎで、
400Hzの間違いでは?それとも点滅周期の言っている意味と漏れの理解が違う?
661774ワット発電中さん:05/01/13 11:10:59 ID:8cw7BDOw
>>660
えーと急いで書いたので何か間違ったのかも。
点滅周期はバンクも考慮して書いたつもりです。
つまり6バンクの値は10ms間隔で0〜1.6msecの点灯ってこと。
60msec間隔0-10msec点灯ではありません。それは流石にチカチカでしょう。
100Hzでもきついかな?と思ってるので6LED*3バンク,Max200Hzの方がいいかな?と思ったんです。
megaでも奢って20MHz駆動したらどっちでもいいんでしょうけど。

検算ついでにもう一度書いてみる。
10MHzAVRでプリスケーラーなしTMR0をフリーランで突っ走らせると25.6us毎。
64bitPWMならPWM周期は25.6*64=1.6384ms
でもって、6バンクなら点滅周期はその6倍で9.83ms、約100Hz
3バンクなら点滅周期はその3倍で4.92ms、約200Hz
って考えました。
バンク数が多いほど点灯時間も短いので周期を短くしたいってのはその通りなんですが、
バンク数が多いほどソフトウェアPWMで可能な周波数も減少していくと言うわけでこの値がデマした。
まあリニアなら4bitで済むわけで、2bit=4倍楽だからリニアって解もありだと思うんですけど、
ついつい欲張って考えてしまいました(笑

しかしmega8ってPWM3つ持ってるな。これですませた方がいいかも。
662774ワット発電中さん:05/01/13 11:58:58 ID:mjSuixpZ
デューティ比と見た目の明るさは直線的にはならないので、
PWMにはもっと分解能が欲しいな。
663774ワット発電中さん:05/01/13 12:15:01 ID:A0ftlrGy
ATMega48ならPWM6本無かったっけ?
http://optimize.ath.cx/shopv2_2/chuumon.html
MEGA48-20PI 4個セット(1500円)
6ch ADC, 6ch PWM
664774ワット発電中さん:05/01/13 12:23:32 ID:8cw7BDOw
ハードウェアPWMが使えるなら8bitで無問題だから楽できそうですね。
PWM周期も20MHzなら8bitで78kHzがOKだし。
665774ワット発電中さん:05/01/13 12:25:17 ID:A0ftlrGy
>>664
たぶん、6chは8bitと16bitが混じっていると思われる。
まぁLEDだからかなり遅くしても大丈夫でしょー
666655:05/01/13 12:35:59 ID:LQQCv6by
>>661
> 10MHzAVRでプリスケーラーなしTMR0をフリーランで突っ走らせると25.6us毎。
> 64bitPWMならPWM周期は25.6*64=1.6384ms
> でもって、6バンクなら点滅周期はその6倍で9.83ms、約100Hz
> 3バンクなら点滅周期はその3倍で4.92ms、約200Hz

これって、25.6uS毎(39kHzで)にタイマ割込が発生させるってことですよね?1命令
実行あたり2クロック、割込のオーバーヘッドを無視して単純計算しても、1回の割込
でたった128命令しか実行できません。実際には、メイン側の処理や2クロック以上
かかる命令条件分岐もあるから、かなり厳しいのでは?

LEDの発光くらいならまだマシですが、モータなんかが相手とかだと無駄にPWM
周波数を上げても、駆動する相手が追従してくれないんで、コギング(滑らかに
回転せずカクカク回る)などの他への影響がない範囲で可能な限りPWM周波数は
下げた方が効率がいいです。

それによって、駆動回路のターンON/OFF時の遅れやパワーロスがPWM全体に占める
影響も少なくなりますし、単位時間あたりの割込回数が減るので、CPU負荷(占有)
率も下がります。

で、ちらつかない点灯周期(バンクあたり50〜60Hz以上)から逆算して、3バンクなら
150〜180Hz、6バンクなら300〜360Hz程度が推奨ってことで。割込の周波数はさらに
×PWM分解能(16階調なら×16倍)なのは、言うまでもありませんが、ハードウェア
PWMがあれば素直にそちらを使うべきでしょうね。

>>662
何らかの方法で素子のばらつきを補正しない限り、PWM分解能を上げても机上の
空論、エンジニアのオナニーで終わる。
667774ワット発電中さん:05/01/13 12:38:04 ID:8cw7BDOw
>>665
さすがに16bitにしたら256分周の8bitと同等だから>>661と同程度遅くなるぞ
16bitタイマのPWMでもWGM13-0設定でカウンタ上限を$00FFにすれば8bitとして使えるじゃないの?
668もはや単なる遊びですけど:05/01/13 12:51:12 ID:8cw7BDOw
>>666
>1命令実行あたり2クロック、割込のオーバーヘッドを無視して単純計算しても、1回の割込
>でたった128命令しか実行できません。
ん?分岐などを除けばほとんど1クロックじゃない?
レジスタ退避(Zと2レジスタあればOK) 4*2=8クロック
lds命令でZレジスタロード=3*2クロック(カウンタ変数とPWM値があるレジスタ)
カウンタ変数をload=2クロック
カウンタ変数をinc=1クロック
カウンタ変数のsave=2クロック
PWM値をld Rn,Z+でロード、カウンタ変数と比較、結果によりポート操作:(2+1+2+2+1)*6=48クロック
レジスタ復帰:8クロック
割り込みオーバーヘッド:4クロック

ってな感じで80クロック程度で行けるかなと思ったのですが。
669もはや単なる遊びですけど:05/01/13 13:02:00 ID:8cw7BDOw
あ、SREG退避復帰忘れた。4クロック追加ね。
670774ワット発電中さん:05/01/13 13:46:33 ID:Yzyi0oHz
mega8のUSARTの送信実験をしようとしてるのですが
マニュアル通りに
UBRRH = (unsigned char)0; /* ボーレート設定(上位バイト) */
UBRRL = (unsigned char)51; /* ボーレート設定(下位バイト) 9600 8Mhz*/
UCSRB = (1<<RXEN)|(1<<TXEN); /* 送受信許可*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); /* フレーム形式設定(8ビット,2ストップビット)*/
と初期化してその後仮にAを送信しようとして
data = 0x41;
NOP();
while ( !(UCSRA & (1<<UDRE)) ); /* 送信バッファ空き待機*/
UDR = data; /* データ送信(送信開始) */
という具合にやってPC側ポーレート9600で受信させてるのに認識してくれませんorz
何か思いつく原因あったらあげてもらえないでしょうか?
あ、U2X=0としてます
671774ワット発電中さん:05/01/13 14:46:06 ID:mjSuixpZ
UCSRCにアクセスするには何かおまじないが必要じゃね?

ボーレートは UBRR = 51; でいけるかと(avrgccの場合)。
672774ワット発電中さん:05/01/13 14:46:19 ID:9Hkwg3IC
>>670
まんまデータシートのサンプル通りですね。問題はなさそうだけど、
PC側要因
*受信側が9600bps/8bit/2stopbitになっているか?
*PC側の受信ソフトが接続しているCOMポートではなく別のCOMポートを見ていることはないか?

接続要因
*接続が間違っていないか?マイコンのTxDがPCのRDにちゃんと行っているか?
*232Cレベルコンバータは使っているか?使っているなら接続は正しいか?電源は行っているか(w だけどありがち)

ソフトウェア・AVR側要因
*DDRDは・・・・設定不要のはずですねえ。
*つけたクロックはホントに8MHzか(瀑)
*そのルーチンは確実に実行されているか?適当なところにLED点滅操作でも挿入してみよう

全部大丈夫なら、232Cレベルコンバータの向こう側でRxDとTxDをつないで、
UDRで0x41が読み取れるかテストするプログラムを作ってみてはいかがでしょうか?
673774ワット発電中さん:05/01/13 14:50:12 ID:mjSuixpZ
スマソ。勘違いしてたorz....
674774ワット発電中さん:05/01/13 15:03:18 ID:8cw7BDOw
>>671
URSELビットさえ立てていれば書き込みに関してはちゃんとUCSRCに書き込めると思う。
読み込みは2度読みしなければいけないようですが。
675774ワット発電中さん:05/01/13 15:03:42 ID:8cw7BDOw
>>673
遅かった(w
676774ワット発電中さん:05/01/13 15:13:39 ID:LQQCv6by
> *つけたクロックはホントに8MHzか(瀑)

ダウンロードに成功していれば、クロックは発振しているんでわ?いずれにしろ、
mega8が動いているか確認していないなら、まずはそっちから追うべきだろうね。

(1) ダウンロード後、ISPモードのまま。(ありがち?)
(2) リセットが掛かりっぱなし。

なんて可能性も。

それと、送/受信を許可するのは、ボーレートや通信フォーマットなどを設定した
一番最後の方がいいと思う。オシロがなくても、一時的にボーレートを110bps位に
下げて、TxD出力にLED+プルアップ抵抗を付けておけば、送信データが出ているか
どうか、目視確認できると思う。
677774ワット発電中さん:05/01/13 15:15:04 ID:LQQCv6by
ATmegaの命令クロック数を把握してないんで、大雑把に計算しただけなんだが、
元記事の >>651 がフルカラーLEDの制御の他に何をやりたいか判らんけど、CPUの
処理能力をほとんど割り込みにとられてしまうのはどうかと思っただけ。

例えば、外部からシリアル通信経由でフルカラーLEDの色や輝度をコマンドで
制御するとか、6個のフルカラーLEDが時計になってるとかね。

処理時間を節約するなら、変数をRAMに格納せず、CPUの汎用レジスタをワーク
に使うとかって手もある。漏れの仕事ではないがRAMを一切使わない8085Aを
使ったLED表示付きテンキーパッドとか実際あった。
678774ワット発電中さん:05/01/13 15:16:22 ID:LQQCv6by
>>677 は、>>668-669へのレスね。
679651:05/01/13 16:17:10 ID:8BoXsD5T
たくさんのレスありがとうございます。

少し説明不足ですみません。
使用目的はサイリュームの電子バージョンみたいなのをフルカラーLEDを使って作りたいのですが
そのフルカラーLEDの制御です。
PWM、ダイナミック駆動で実験してみようと思います。使用中にLEDが動く物なので結構高速に
切り替えないと光跡が点々になってしまいそうですね
LEDの制御以外に行う処理は基本的に無いのでCPUはLEDにかかりっきりでも問題はないんですが
あまりCPUを使うと電気を食うかな…?バッテリー駆動なんで消費電力はできれば抑えたいので…
680774ワット発電中さん:05/01/13 16:17:11 ID:8cw7BDOw
>>677
>フルカラーLEDの色や輝度をコマンドで制御
そうだね、勝手に秋月のAVRホタルみたいなのを想像していたよ。
そういう用途ならやりすぎですね。

>>676
>ダウンロードに成功していれば、クロックは発振しているんでわ?
いやこれは、実は10MHzセラロックがついていたってことはないでしょうね?という意味。
> 110bps
これもいいアイディアですね。LEDを振ればビットパターンが見えそうだし
681774ワット発電中さん:05/01/13 16:21:47 ID:8cw7BDOw
>>679
>使用中にLEDが動く
厳しいな・・・できるだけソフトウェアじゃないPWMがおすすめですね。
>あまりCPUを使うと電気を食うかな…?
まあそうですねえ。mega8の20MHz,5V動作で25mAってところみたいですね。LED1個分以上あるか。
周波数下げるか、SLEEPをうまくつかうか・・・
682774ワット発電中さん:05/01/13 16:55:52 ID:Yzyi0oHz
皆さん回答ありがとうございます。
現在クロックにはセラロック8Mhzを使用しています。(表記が8,00Tの秋月の物)
ルーチン確認のためにLED点灯プログラムをつけてみましたが正常に動作しています。
デジタルオシロがあるのでデータが出ているかどうかも確認してみましたが方形波
できちんと出ているようです。
PC側の状態確認としてTERATERMというソフトで確認していますが
きちんと9600、STOP2bitdata8bitになってることを確認しました。
RS232C変換としてADM232ANを使っていますが確認してみましたが配線ミスではないと思います。
むしろRS側のポーレートを適当に変えるとxとか噛とか出てくるのでデータは来ていると思います。
これからUDR側で読み取れるかちょっとやってみようと思います。
683774ワット発電中さん:05/01/13 17:35:08 ID:8cw7BDOw
>>682
あ、お城もあるんですか。
それじゃ問題がAVR側かどうかは一発でわかるんじゃない?
どんな波形ですか?AA力を駆使して(w書いてみて。

データが行くことがあるってことは少なくともTxDはつながってるのね。
もちろんGNDどうしはつないでますよね?
684774ワット発電中さん:05/01/13 17:58:32 ID:Yzyi0oHz
____ ___________ ____ _____
| | | | | | | |
| | | | | | | |
| | | | | | | |
_____| |___| |___| |_____| |__

シリアルポートRXDの波形がのこんな感じです、振幅が-8から+9位ですね
5番のGNDとAVR側のGNDも繋いであります
ちなみに念のためと思って水晶発振子4.9152MHZ繋いで27pのコンデンサ繋いで
UBRRL = (unsigned char)31にしてみました
結果はひたすら

を出すようになっちゃいましたorz
685774ワット発電中さん:05/01/13 18:13:39 ID:Yzyi0oHz
   
   __  ____  __  _____
   ||  |    |  |  |  |
   ||  |    |  |   |  |
   ||  |    |  |  | |
   ||  |    |  |  | |
__||_|    |___|   |_ |
   
A、AAって難しいです・・・とりあえずこんな感じです、形は見た感じきれいです
   
   
   
   
686774ワット発電中さん:05/01/13 18:14:38 ID:8cw7BDOw
>>684
ずれててわかんねーーー
とりあえず0x41なら、104usecごとに

 ̄ ̄ ̄ ̄ ̄s_0 ̄1_2_3_4_5_6 ̄7_s_s_| ̄ ̄ ̄ ̄

って感じだと思うのだけど、(sと数字はそれぞれ右側がstart/stopbit,bit0〜bit7)
687774ワット発電中さん:05/01/13 18:19:02 ID:8cw7BDOw
>>685
各パルスの幅がわからん・・・・
んじゃ、Hiが何uS,Loが何uS・・・って感じで書いてみない?
688774ワット発電中さん:05/01/13 18:28:20 ID:8cw7BDOw
>>686
ごめん、違っているかも。もう出勤だからまたあした。
689774ワット発電中さん:05/01/13 20:28:30 ID:/VUzKqkr
>>688
S01234567ss = 0-10000010-11 、232C上は0が+12V、1が-12V で、

____| ̄|_| ̄' ̄' ̄' ̄' ̄|_| ̄|_._.__

でいいかな。>>685となんとなく似てるけど。
690774ワット発電中さん:05/01/13 21:14:29 ID:Yzyi0oHz
すいません、かなり返信遅れましたm_m
えっと、間隔としては
スタートビットからH0.5msec、L0.5、H2.5、L0.5、H0.5、Lになって終了です
波形の形としては689さんのと一緒だと思います
って・・・ん?これはまさか送信速度がおかしいのかやっぱ?
691774ワット発電中さん:05/01/13 21:29:06 ID:LQQCv6by
>>682
文字化けしながらも何らかのデータが受信できているようだし、mega8側PC側とも、
単独では問題なさそうですね。

もしかして、TxD/RxD信号だけ繋いで、端末(PC)側のシリアルポートのGND(25Pin
D-Subなら7番,9Pin D-Subなら5番)と、mega8ボード側のGND同士を繋いでいない
とかないですかね?

>>679
ダイナミック点灯は人間の目の残像現象に依存しているから、表示ユニット自体が
移動するなら、ダイナミック点灯(PWM)周期を短くして回避するか、移動速度が
あまり速いようだと、ダイナミック点灯方式は使えないかもしれません。
692774ワット発電中さん:05/01/13 21:32:54 ID:/VUzKqkr
>>690
19200bpsだね・・・
U2Xはほんとにクリアされてます?
693774ワット発電中さん:05/01/13 22:27:47 ID:Yzyi0oHz
>692 初期状態が0になってるので大丈夫だと思うのですが・・・
念のためcbi(UCSRA, U2X)と書いてみましたがやっぱりだめです・・・
694熱暴走 ◆2SA784NN.A :05/01/13 22:43:30 ID:p32UzLMh
>>690
>スタートビットからH0.5msec、L0.5、H2.5、L0.5、H0.5、Lになって終了です
...ひょっとして、0x41 を1回送るだけで繰り返し送信はしていない?
695774ワット発電中さん:05/01/13 22:49:37 ID:Yzyi0oHz
>683
再度チェックしてみましたがきちんとGND同士繋がってました
>694
う、確かにそこの書き込みだけ見るとそう見えますね
でもfor(;;)で囲んであるのと
実際>>682の通りLED点灯←点滅のプログラムも入れてますのでそれはないです。
696774ワット発電中さん:05/01/13 22:52:57 ID:LQQCv6by
>>694
while行の最後にセミコロン(;)があるから、そうだね。っていうか、それはわか
っていると思っていたんだが?

while(1)
{
  if((UCSRA & (1<<UDRE)) ) /* 送信バッファ空き*/
    UDR = 0x41; /* データ送信(送信開始) */
}

とかしないと、連続で送信しないわな。
697774ワット発電中さん:05/01/13 22:56:09 ID:+ZVJbykN
9600boudってことは1秒のビットレートが9600って意味じゃないのけ?
ちゅうことだと、1/9600だからH/Lともに0.1ms強じゃね?
698670:05/01/13 22:59:40 ID:Yzyi0oHz
うう、ちょっと自信なくなってきたので今のメイン部分のリスト張っちゃいますね
int main(void)
{
char data;

cbi(UCSRA, U2X);
cli();/* disable global interrupt */
nop();
UBRRH = (unsigned char)0; /* ボーレート設定(上位バイト) */
UBRRL = (unsigned char)31; /* ボーレート設定(下位バイト) 9600 8mhz*/
//注: このコード例はデバイス定義ファイルがインクルードされることが前提です。
//初期化コードと併せられます。
outp(0xff,DDRD);
outp(0xff,DDRB);
for(;;)
{
nop();
data = 0x41;
outp(0x01, PORTB);
wait100ns(1000);
outp(0x00, PORTB);
wait100ns(1000);
nop();
UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); /* 送受信許可*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); /* フレーム形式設定(8ビット,2ストップビット)*/ while ( !(UCSRA & (1<<UDRE)) ); /* 送信バッファ空き待機*/
UDR = data; /* データ送信(送信開始) */
data = 0x41;
UDR = data; /* データ送信(送信開始) */
sei();/* enable global interrupt */nop();nop();nop();
}
}

699692:05/01/13 23:12:13 ID:E5P0wGSN
>>697
ほんまや、1桁間違えた。
そうすると、2000bps??わけわかんない・・・・


>>698
とりあえずOKだね。
UBRR=31ってことは、今は水晶発振子4.9152MHzなんですね。
これで2000bpsになっちゃうってことは、1MHzで動いているって事だ。

・・・・もしかして内蔵RCオシレータが動いていませんか??
700774ワット発電中さん:05/01/13 23:18:01 ID:Yzyi0oHz
>>670
BPSの値から言うとやっぱりそうなっちゃいますよね・・・
書き込みにはELMさんのISPライターを使っててhex書き込む際に
Device: ATmega8
Mode: Both
Low: 76543210
||||++++-- CKSEL[3:0] クロック源選択
||++-- SUT[1:0] - Startup Time選択
|+-- BODEN (1:BOD無効, 0:BOD有効)
+-- BODLEVEL (1:2.7V, 0:4.0V)
とあってそれとマニュアルを見ると
CKSELは1111でいいと思うので
avrss /fl01101111 test.hex
のような形で書き込んでいるのですがこれではだめなのでしょうか?
701774ワット発電中さん:05/01/13 23:57:36 ID:WF7Pv7bq
avrssはヒューズビット設定はHEX値だよ
avrspだとBIN値でもいけるが。
702774ワット発電中さん:05/01/14 00:02:41 ID:3qab6l5I
avrxsは確か16進入力のはずだよ。
32bit版でいつの間にか2進入力になっているのに気が付かないで
リセット無効にしちゃったよ(w
703774ワット発電中さん:05/01/14 00:45:46 ID:OqdlMu01
>>701>>702な、なんだってーorz
今日はちょっともう実験できそうにないんで明日報告しますね
皆さんどうもありがとうございましたm_m
704699:05/01/14 07:15:49 ID:cnpbuEOB
>>703
とりあえずヒューズビットを読み込めばはっきりしますね。
705774ワット発電中さん:05/01/14 09:48:46 ID:lKqMdRez
EZ-USBとか、8051とか、やってるスレないの?
706774ワット発電中さん:05/01/14 11:20:52 ID:kF+MGxh6
ここでどうぞ。
707670:05/01/14 17:08:01 ID:kxVRx72Q
結果報告です、やっぱりヒューズを2進数で書いてたのが原因でしたOTL
16進数で書き直した所一発でAの表示が返って来ました・・・
みなさんどうもありがとうございましたm_m
708774ワット発電中さん:05/01/14 17:25:06 ID:ZbC1H9dk
>>707
オシロが役に立ったね。
はじめっからクロック周波数を疑って確認プログラム(LEDピコピコ)でも走らせれば良かったな。
709774ワット発電中さん:05/01/14 18:08:55 ID:9uvpCrsu
H8MLのワサビいくら何でも鬱陶し過ぎる。
ML止めました。
710774ワット発電中さん:05/01/14 18:10:32 ID:ZbC1H9dk
>>709
そういうのはML止める前にMLに書け。ここに書くな。
711651:05/01/14 21:21:55 ID:ZLzdcmG/
埼玉県在住なんですが秋葉原でATmega8とかATmega48とかを売っている所ってどこがありますか?
mega48はITプラザで扱っているようですが4個セットなのでできれば単品で売っているところを探しています
712774ワット発電中さん:05/01/14 21:37:29 ID:aHu3Llwr
おまえら!

ATmegaとかATtinyとかどうやって書き込んでますか?
やっぱりchan氏のライターですか?

万能のライターとか無いのかな・・・
秋月ライター使ってたがアップデート無いし見限るべきか・・・。
713774ワット発電中さん:05/01/14 21:44:36 ID:35lJE3Xh
>>712
最初は秋月ライタ買ったけど、今はSTK200互換ライタ。
AVRがライタと基板を行ったり来たりするデバッグなんてありえない。
714774ワット発電中さん:05/01/14 22:17:54 ID:ZbC1H9dk
>>712
俺もSTK200互換ライターだな。
メジャーなのでライティングソフトが選べるのがうれしい。
書き込みソフトウェア部分が完全にPC側なので、書き込みソフトウェア
だけアップデートすればいいので面倒がないのがうれしい。
でもそろそろUSB-serialに移行したい。共立のでも飼うかな。
715ど素人:05/01/14 23:04:31 ID:VGy+cuVB
2313もTiny26もmega32もAVR-ISPでやってるけど、
Tiny26のリセットピンをIOピンに書換えた時はあせった
リセット→IOにはできるけど逆はできないと気づいた
しかたなくSTK-500のパラレルで戻したけど
716774ワット発電中さん:05/01/15 00:06:09 ID:9OcQFJIt
717774ワット発電中さん:05/01/15 01:13:36 ID:WJtWLsUy
>>712
秋月のライタでも、ATmegaやATtinyが書込めるぞ!

90S2313にAVR910互換ファームウェア(http://www.t3.rim.or.jp/~temple/software.html
を書込んで、90S1200と交換すればOK!!!
718774ワット発電中さん:05/01/15 04:43:20 ID:JGYXETEs
>>717
そこが更新してくれて最近のデバイスも焼くことができればいいんだけどなぁ・・・。
STK200互換のが今は一番汎用性あるのかな。
719774ワット発電中さん:05/01/15 11:54:59 ID:BjcVtM78
>>711
http://www.wakamatsu-net.com/biz/
にatmega8がありますね。945円だそうです。
まー男ならDigi-Keyで大人買い(25個で@260円)だが。(25個までは@415円)
ATmega48はDigi-keyの大人買いで@192円。

Digi-Keyの送料は2000円なので
945*n = 2000 + 415*n により4個以上買うならDigi−Keyの方が安いし。

なんで秋月にATMegaシリーズを置いてないのか、誰か大人の事情を教えてください。
720774ワット発電中さん:05/01/15 13:00:10 ID:dXu0FvTc
古いヤツの在庫が捌けなくなるから、ではないかと
あまり売れてないのかなぁ
721774ワット発電中さん:05/01/15 13:17:21 ID:fTzBMth7
>>711
Compass-Lab
http://www.compass-lab.com/Prices02.htm#AVR%20MPU
ATTiny2313=320円
ATMega8=700円
ATMega48=ないなあ。それ以外でもメール問い合わせで入れてくれるかも。
722774ワット発電中さん:05/01/15 13:58:12 ID:n/gplyP5
秋月は、不良在庫化した4433が無くなればmega8あたりを始めると思われ。
723774ワット発電中さん:05/01/15 14:01:59 ID:fTzBMth7
>>722
5個1000円で売れ〜
724651:05/01/15 14:33:27 ID:boWzm+LJ
>>719,721
レスありがとうございます。
単品だと結構良い値段しますね…orz
ITプラザでmega48を4つ買って使わなかった分は後で使い道を考えます…
725774ワット発電中さん:05/01/15 15:13:17 ID:BjcVtM78
みんな、rsコンポーネンツのリクエストシートに「ATMEGAシリーズも取り扱ってくれ」って入れてくれ。
(AT90S8515-8PCとかはあるんだがーしかも@1900円(-_-メ)
726774ワット発電中さん:05/01/15 15:31:31 ID:BjcVtM78
ATmega48をDigiKeyで100個 単価176.94000で買って17694円。送料2000円で19694円。消費税入れて 20678円。
これを単価500円(送料別)で売れば、50000円で、30000円の儲け。誰かやらないか?
727774ワット発電中さん:05/01/15 16:54:52 ID:COicJLUr
90Sシリーズはほぼ全滅でつか。
728774ワット発電中さん:05/01/15 17:38:32 ID:fTzBMth7
>>727
最後の砦2313も、tiny2313が容易に入手できるようになればどうですかねえ。
設定がややこしくない分2313だけはしばらく人気あるような気もしますが。
729774ワット発電中さん:05/01/15 22:44:25 ID:pYkvYDjW
そういえば相当前だけどPICのセミナーに出たことがある。
技術の人がH8は設定が面倒でしょと逝っていましたね。
730774ワット発電中さん:05/01/16 00:43:29 ID:CpwgJ82B
>>729
PICだって16F628とかは、まず”CMCON”に”アナログコンパレータOFF”を書き込まないと
ポートが使えないぢゃないかー
あとVRCONもOFFにするとか。

731774ワット発電中さん:05/01/16 00:48:14 ID:CpwgJ82B
>>728
tiny2313とtiny26Lって、どう住み分けするんでしょか?UARTをとるか、ADをとるか、ですかね?
だったらATmega48あたりにしとけ、という事になる。

732774ワット発電中さん:05/01/16 02:50:49 ID:ZSxckS7x
mega8の仲間ってバランス取れてて使いやすいね。
AVRの中でも人気あるのはそのせいかと。
733774ワット発電中さん:05/01/16 04:43:24 ID:EPrH6uP1
>>726
全部買ってくれるのか?(w
734774ワット発電中さん:05/01/16 07:11:42 ID:afSA6V+u
もしかして、RESETピンを入出力に使うようにした場合、シリアルプログラミング不可になるのか。
orz...
735774ワット発電中さん:05/01/16 07:35:34 ID:bSNOCdUd
これがあれば復帰できるんですよね?
http://www.toshu-ltd.co.jp/gaki/electronics/AVR/Writer/fuse.html
736774ワット発電中さん:05/01/16 17:07:28 ID:N3aaNEff
ATmega48をまとめ買いしようOFF。
Digikeyから到着する日辺りで秋葉に集まって購入者に分配する・・・とか?
737774ワット発電中さん:05/01/16 19:39:21 ID:UyFCEmD3
このスレだけ異常に流れてないか?なんか変
738774ワット発電中さん:05/01/16 21:10:06 ID:BHczsGfP
なんだっけ、どっかの人数集めれば要望を出してくれるサイトがあったじゃん
あれ使ってどっかにお願いしてみたら?
739774ワット発電中さん:05/01/16 21:10:46 ID:BHczsGfP
っていうか、路上で売ってくれよ、ここで予告して
740774ワット発電中さん:05/01/16 21:52:00 ID:Chmk+kpO
>これを単価500円(送料別)で売れば、50000円で、30000円の儲け。誰かやらないか?

>726がやってみれば良いんじゃないか?
741774ワット発電中さん:05/01/16 23:13:37 ID:Mhi81NZT
100個分の梱包費用と梱包&発送の人件費がたったの3マソ?
配送トラブルでも起こったら大赤字だな。
742774ワット発電中さん:05/01/16 23:24:49 ID:afSA6V+u
>>726
>>663のリンク先で4個1500円で売られてるから、
それ以下で売らなきゃ買い手が付かないだろ。

>>736
10個とか買うから地方発送頼む
(´・ω・`)
743774ワット発電中さん:05/01/17 00:03:18 ID:UwyKSWzd
>>741
同意だな。やるとしても4個か5個単位で手間をへらさんと。

>>742
というか>>663がその役割担ってるって事かもね。仕入れ先はどこか分からんけど。
信頼できるもの同士で手間賃だけで共同購入ってのじゃないと難しいな。
2ch同志ってのは・・・ちょっと厳しいかも。
手渡しできる>>736なら可能だが田舎者のをれは無理・・・(´・ω・`)
結局高いばら売りにも理由はあるって事か。
744774ワット発電中さん:05/01/17 08:30:18 ID:6pWpC3Py
じゃ、一応需要調査のテスト

『Digi-KeyでATMega8 , 16 , 48 等のDIP品を25個買って、東京で手渡し頒布します。
この機種に限ったのは、「万一あまっても、自分で使えるから」です(w。
郵送はしません。不良品返品は受け付けません。運が悪かったと思ってあきらめてください。
他にも購入提案があれば教えてください。』

これでいいか。(僕自身、東京在住ではないので、自分ではやらない可能性大。)
745774ワット発電中さん:05/01/17 17:08:52 ID:FdcCOfUe
>>744
裏通りでサングラスとマスクして立っていて、その人に指3本見せればAtmega48を3個1000円売ってくれる
っていうスタイルはどうでしょうか? 殺伐と。
746774ワット発電中さん:05/01/17 17:11:31 ID:QATCBpX2
>>745
それは通の頼み方?
747744:05/01/17 23:55:33 ID:/q7rIVu/
>>745
裏通りで客が付くまで立ちんぼ(しかもノルマ達成まで複数客相手)なんて、やりたくありません(w
748AVR売りの少女:05/01/18 08:52:10 ID:8EUVPqn7
「AVRいりませんか〜」
「mega48いりませんか〜」

ああ、寒いわ。AVRでLEDつけても暖かくないし・・・
749774ワット発電中さん:05/01/18 13:32:47 ID:WVh9TZe5
AVRのプログラムをCかC++で書きたいんですが、
参考になるHP知りませんか?
750774ワット発電中さん:05/01/18 13:50:56 ID:x//yn1ga
某ML、とうとう初級C言語講座に…
751774ワット発電中さん:05/01/18 13:55:37 ID:8EUVPqn7
752774ワット発電中さん:05/01/18 13:56:33 ID:i7Jf5rbW
753774ワット発電中さん:05/01/18 14:01:41 ID:WVh9TZe5
どうもありがとう。
754774ワット発電中さん:05/01/18 14:12:32 ID:8EUVPqn7
>>752
その下の奴いいね。

追加
http://www.avrfreaks.net/AVRGCC/coding.php から、各種ドキュメント

Getting Started Notesの日本語版(最近のバージョン対応)作りたいね。
みんな暇みたいだから(w ここで少しずつ食ってみない?
言い出しっぺとして少しはがんばるからさ。
ところで、haraleitってどういう意味?・・・・・あ、作者の名前か・・・
755774ワット発電中さん:05/01/18 14:13:44 ID:8EUVPqn7
>>754
× ここで少しずつ食ってみない?
○ ここで少しずつ作ってみない?   食ってどうする・・・・orz

インラインアセンブラについてはまろりさんのページに日本語訳がある。
756774ワット発電中さん:05/01/18 15:05:04 ID:0mgRDjbX
>748
秋葉で公式のフリマとかないのかな?
路上販売かぁ
青いビニールシートでも広げて
しばらくしてると、警察の方に「君、パスポートは?」
いや、「日本人です… 

ってか路上販売って法的にどうなの?商業の自由かな?
757774ワット発電中さん:05/01/18 15:26:04 ID:0eaBM3hG
道路の使用許可が必要。
758774ワット発電中さん:05/01/18 16:12:36 ID:LF3z0NsK
AT90S8535のプログラムをWinAVRで作成しているのですが、
WinAVR で16ビットのレジスタ(OCR1Aとか)に値をセットしても
AVRStudio 4 でシミュレーションするとセットした16ビットレジスタの
下位8ビットのレジスタ(OCR1ALとか)にしか値がセットされません。
実際書き込んでみると問題なく動いている感じなのですが、
シミュレーションでのこの現象はどうしようもないのでしょうか?
759774ワット発電中さん:05/01/18 16:24:59 ID:43J4siAy
>>754
追加して欲しい事。
1)MfileでCOFファイルを出すようにしておけば、AVRStudioでソースデバッグできる。
2)WinAVRは0b11100101 と、0bで2進数が書ける。
3)WinAVRのProgramersNotesPadでMake Programすれば、AVRStudio経由じゃなくてもデバイスへ書き込める。
 (書き込むツールはMfileで指定する)

760774ワット発電中さん:05/01/18 16:26:16 ID:43J4siAy
Wikiを立ち上げてくれれば一番いいんだけどねぇ
(Wikiの編集は出来ルンだけど、導入/立ち上げが出来ないヘタレです)
761774ワット発電中さん:05/01/18 19:32:16 ID:8EUVPqn7
>>760
複数の人でやるにはWikiいいですね。私も立ち上げは無理なんですけど。
ちょこっとgetting started notesをさわってみたんだけど、意外なほど変更が多くてびっくり・・・・
header fileみたらお馴染みの関数マクロが結構「そりゃそのうちなくすからこっち使えゴルァ」なコメントだらけ。

ところで、以前のバージョンって、PRG_RDB()でintやlongの定数へのアクセスってできたんでしょうか?
getting started notesではまるでできるような書き方なんですが、
現行バージョンではPRG_RDB()はprogmem_read_byte()にdefineとなっていて1バイトしかアクセスできない。

>>759
Win環境でのMFileの使い方ってのも必要かな。
実は起動方法を今日初めて知った私(馬鹿)・・・readmeにちゃんと書いてあるんだけど
762774ワット発電中さん:05/01/18 20:14:36 ID:CYkcTFyV
協同購入みたいな話出てるけど、欲しい香具師みんなで秋月とか千石とかに
「AVRありますか」「入れる予定ありませんか」とか聞き倒したらいいと思う。
ホントに数があるならいれるんじゃないかなと期待したい。
遠方の人はメールででも問い合わせしてみるとか。
763774ワット発電中さん:05/01/18 23:47:46 ID:ubVsSihV
>>761
デバイスの違いをどうするかってのもあるな。
AT90Sシリーズ用に書かれたものなので、mega/tinyでも使えるように書き換えがいる。
getting started notesだから、基本的な使い方はデータシートと重複しても書かなきゃならないし。
サンプルプログラムもmega用も用意した方が良いかな。
764774ワット発電中さん:05/01/19 00:10:18 ID:xldfngzj
>>750

>C言語の場合、XORの計算はどうするのでしょうか?

自分で調べようともしないというのもスゴいし、
こういう超低レベルな質問を恥ずかしいと思っていないのもスゴい。

そして、それに懇切丁寧に答えている常連の方々の
心の温かさには涙が出そうになりました。

日本の未来はバラ色だね!!
765774ワット発電中さん:05/01/19 00:21:34 ID:J2SFyrSl
>>761
cbi , sbiがDeprecated: になっているのが痛いですねぇ
_BVとか ~_BV()は、どうもピンと来なくて。
766思わずググって見ました。:05/01/19 00:23:02 ID:J2SFyrSl
>>764
C言語 xor の検索結果のうち 日本語のページ 約 6,090 件中 1 - 50 件目 (0.34 秒)
767774ワット発電中さん:05/01/19 02:23:20 ID:qfzVRqOa
Wikiを設置してみたけど・・・しょぼい。
どっか良いCSSとか無いですかね。
768774ワット発電中さん:05/01/19 07:09:58 ID:J2SFyrSl
>>767
しょぼくてもいいから、公開しておくれ^−
769774ワット発電中さん:05/01/19 08:46:40 ID:ZJBEDebG
>>767
しょぼくてもいいよ。寄ってたかって推敲できればそれでヨシ。
770774ワット発電中さん:05/01/19 11:11:45 ID:widJlBW7
>>765
>cbi , sbiがDeprecated:
やっぱりプロセッサ特異的なものは残せないんでしょうかねえ。
便利だから付属マクロ集か何かに残して欲しいところです。

>>761
avr-libcのマニュアルって日本語訳あったっけ?もしなければこちらも。
771774ワット発電中さん:05/01/19 12:58:57 ID:iqCPiSxe
>>767
どうしてもヤなら、いっそのことwikipediaにAVRのページを作っちゃえ、とか。
772774ワット発電中さん:05/01/19 18:27:55 ID:HiDIOTTK
>>771
http://ja.wikipedia.org/wiki/Atmel_AVR
一応既にあるね。ただ膨大なマニュアルみたいなのを載せたらさすがに怒られるかな(誰に?)
773774ワット発電中さん:05/01/19 19:16:51 ID:qgl90RPm
>>772
なんか敷居が高そうだね(w
 ここはやっぱり>>767さんに期待。
774774ワット発電中さん:05/01/19 19:23:28 ID:qfzVRqOa
>>771
ttp://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi

単に最低限のセッティングをしただけなので
管理の方法が良くわからないです。(サイドバーすらないじゃんw)
共同管理者になりたい人は↓までメールください。
先着2,3人で管理垢作ります
attleejpあっとまーくyahoo.co.jp
775774ワット発電中さん:05/01/19 19:47:48 ID:hZw+3PwS
776774ワット発電中さん:05/01/19 20:00:43 ID:qfzVRqOa
>>775
お。早速更新されてる。おもろい。
でも更新する際になんかエラー出ませんか?
777774ワット発電中さん:05/01/19 20:08:07 ID:hZw+3PwS
>>776
エラー出ますね。書き込みはちゃんとなされているようですが。
暇なときに皆さんも好きなドキュメントをどうぞ。
アルファベットにADC,AnalogComparatorときて、Assembler(インラインマクロ)で頭抱えている・・・
まろりさんの翻訳がすばらしいなんて書いたらharaleitさんにメチャ失礼だし。やるしかないなあ
まあ私の英語力のつたなさは誰かがカバーしてくれることを願っています。
778778:05/01/20 00:08:33 ID:c8p1XKkb
Wikiの練習場所が欲しい。
779778:05/01/20 00:59:17 ID:c8p1XKkb
勝手に作ったら、勝手にSandBoxにされてしまった。
画像の淫乱表示が調べなきゃわからんかった。
それはともかく、COFの作り方をやっとかけた。疲れたけど面白かった。
http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi?page=%BE%A1%BC%EA%A4%CB%CE%FD%BD%AC%A1%CA%C8%F3%B8%F8%BC%B0%A1%CB
780774ワット発電中さん:05/01/20 01:07:21 ID:HldQe24d
>>779
うぉーきれいになっている。
ソース見て使い方勉強します。
781774ワット発電中さん:05/01/20 21:12:50 ID:V6Leuphi
みんな、Wiki書きって慣れているのか。なんか凄い勢いでページが更新されていっているんですけど
782774ワット発電中さん:05/01/20 21:25:32 ID:+WR97o8G
>>781
全然慣れてない。
きっとみんなこんな場(書きっぱなしじゃなくて情報集積される場)を渇望していたんでしょう。
783774ワット発電中さん:05/01/21 00:33:35 ID:q/nl9C43
Wikiって初めは混沌だからなー。しばらくたったらまとめページでも作ればいいか
784774ワット発電中さん:05/01/21 09:18:42 ID:ioBfgckV
Mega8515 に対応したICEってあるんでしょうか?
ICE200だとオリジナルの8515しか対応してないですよね?
785774ワット発電中さん:05/01/21 12:17:59 ID:73K2FE8h
>>784
Mega16でも代わりに刺しとけ。ってわけにはいかないのか?
786774ワット発電中さん:05/01/21 13:57:39 ID:ZQUlZEP3
AVRで遊んでみたいんだけど、自分でどの程度扱えるか分からないので、
初期投資をなるべく抑えたいです。
昨日、寝る前に色々と検索しててISPケーブルを安価に自作するってのを見付けたのですが
ブックマークするのを忘れて、今日になったら見つからない。
どなたか、ご存知ないでしょうか?
787774ワット発電中さん:05/01/21 13:59:11 ID:Ia/oGqLJ
788774ワット発電中さん:05/01/21 14:04:29 ID:GUTcGXMi
789774ワット発電中さん:05/01/21 14:18:46 ID:ZQUlZEP3
>>788
サンクス!
790774ワット発電中さん:05/01/22 13:36:51 ID:YD4JEnrN
http://www.ebuhin.co.jp/
とか、こういうところでavr扱ってないかな?ってか個人でかえないとは書いてないけど
登録しなくちゃ検索できないのが…
791774ワット発電中さん:05/01/22 13:39:57 ID:uGJnbN1U
>>790
登録すりゃいいじゃん。
別に登録したらお金取られるわけじゃなさそうだし。

ただ、RS使うとたいていのものは手に入っちゃうし、
なけりゃ名古屋まで私は行っちゃう。
792774ワット発電中さん:05/01/22 14:55:36 ID:Ix6juYf6
>>790
漏れは全然使ってないけど、その手のところで
ちょっと知ってるところだけ
http://www.chip1stop.com/Top_ja.cfm
http://www.iczoo.com/
http://www.varitecic.com/
http://www.iczaiko.com/

etc・・・さがせばいろいろあるよ。
793774ワット発電中さん:05/01/22 20:39:05 ID:KY1r/PLj
AVR Wikiか、おもしろそうだね。
Wikiもいいけどhatena groupもおもしろそうだよ。キーワードをWikiっぽく使える。おまけにBlogから自動リンクできる。
794774ワット発電中さん:05/01/22 20:56:03 ID:GRIJInPF
ちょっと教えてください〜
Getting Started Notesのプログラムメモリ(フラッシュ)の部分なんですけど、
配列の確保に関して、用例にあるような
prog_char TEN[]={0,1,2,3,4,5,6,7,8,9};
だと、これだけでSRAM上に定数を置いてしまうようです。
配列で、スタートアップルーチンで定数をSRAM上に展開させることなく、
必要時にmemcpy_P()などでコピーして使用できるようにするにはどうしたら
いいのでしょうか?整数型はprog_charなどを使い、文字列はPSTR()を使えばいいし、
構造体も型定義でなんとかできるようなのですが、配列だけうまくいきません。

どなたか教えてください・・・・○| ̄|_
795774ワット発電中さん:05/01/22 21:07:44 ID:81dv2gM5
>>794
どんなソースなのか知らないけど、 static とか const とかいう話か?
796774ワット発電中さん:05/01/22 21:29:57 ID:nXdNYviK
>>794
prog_char *TEN={0,1,2,3,4,5,6,7,8,9};
797774ワット発電中さん:05/01/22 23:07:11 ID:90MexoMe
>>796
ありがトン、出来た(・∀・)
798774ワット発電中さん:05/01/22 23:09:56 ID:BwpVJ4lv
WinAVRの最新版とMega323ではちゃんとプログラムメモリだけに格納されたけど?
WinAVRのバージョンは?使っているデバイスは何?
もしよかったらソースも見せてくれ
799774ワット発電中さん:05/01/22 23:15:40 ID:Rqc5GYht
798だけど、
prog_char TEN[10] = {0,1,2,3,4,5,6,7,8,9};で確保するためには
グローバル(main関数の前)で宣言しなきゃだめみたいだ。
main関数の中でprog_char TEN[10] = {0,1,2,3,4,5,6,7,8,9};をやっちまうと
SRAMにも書き足されてしまう。
800774ワット発電中さん:05/01/23 00:20:36 ID:6m5XbEWp
>>799
グローバルだとOKですか。
こんなソースで試していました。TEN2のコメントアウトを外すと、2313ではスタックがおかしくなって、hogehoge()からのリターンで0番地にとばされちゃった。
TEN[]を*TENにすると問題なし。

#include <stdio.h>
#include <avr/io.h>
#include <avr/pgmspace.h>

void hogehoge(uint8_t data)
{
  PORTB = data;
}

int main (void) {
  prog_char *TEN[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,・・・・,63}; 
  //prog_char *TEN2[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,・・・・,63}; 
  hogehoge(pgm_read_byte(&TEN[5]));
  PORTD=12;
}
801774ワット発電中さん:05/01/23 08:30:50 ID:LStm3QIr
>>800
>2313ではスタックがおかしくなって、
そうそう。WinAVRって、メモリ上限に関しての警告とか出してくれないんだよな。
static mem[10000] とかやっても、通ってしまうし。

(出してくれる方法ってある?)
802774ワット発電中さん:05/01/23 09:55:45 ID:6m5XbEWp
>>801
グローバルだと確かに無問題ですね。なぜだかわからないけど。
フラッシュ上の定数ってどでかいテーブルとかメッセージなどを置いておくものだろうから、
通常はグローバル領域で問題なさそうです。
グローバル領域だと
prog_char Msg[]="HogeHogeHanage"
って感じの文字列でも問題なくなっちゃいますね。なんかPSTRの意義うすくなってきたな。
LCD_print(PSTR("hogehoge"));のように関数に直接書き込みたいときとか、
見やすいように使用する場所に書きたい場合だけ?

追っかけてみたら、初期定数展開分だけSP初期値がずれるコード吐きますね。
2313で128バイト以上のものを置くとSPはSRAM外に置かれてしまう。
不思議なことに展開はSRAMの若いアドレスから使われるのに(0x72バイトなら0x60-0xD1)、
SP初期値はDF→6Eと、まるで下位側に確保されたような動きをします。
確保しているというわけではなくバグっぽい?
803774ワット発電中さん:05/01/23 10:20:46 ID:9HtcrbaM
Chan氏の最新版パラレルポートリーダライタで
昨年末、都内某所で入手したプログラム済みのATmega8TQFP
からプログラムをダウンロードしたのですが
00 01 02 03…FC FD FE FF をアドレスごとに循環した
データしかダウンロードできませんでした。
秋月で買ったATtiny26では、自分で書き込んだプログラムも
ダウンロードできデータも一致したのですが…

事情通の方、データ不整合の回避方法を教えてください。
804774ワット発電中さん:05/01/23 10:32:24 ID:zCZpQpnj
ロックビットたってる。回避不能。
805774ワット発電中さん:05/01/23 12:24:00 ID:9HtcrbaM
>>804
このATmega8に、SDカードIF、FAT[12:16]ファイルシステム、
内蔵フラッシュメモリアップデート、著作権認証機能の
プログラムが書き込まれているので、何としてでも
ダウンロードしてみたいのです。
やっぱり、ロックビットを解除する方法は無いでしょうか?
806774ワット発電中さん:05/01/23 12:43:58 ID:6m5XbEWp
>>805
ロックビットを解除する方法?あるよ。







チップイレース。
807774ワット発電中さん:05/01/23 12:47:52 ID:6m5XbEWp
しばらくアクセスできないなと思っていたら・・・
AVRFreaks.netがすごいことになっているな。
http://www.avrfreaks.net/
808774ワット発電中さん:05/01/23 16:46:03 ID:aPYoffhn
チップテストモードで読み出しが可能になるが教えない
809774ワット発電中さん:05/01/23 18:56:20 ID:9HtcrbaM
>>808
チップテストモードですか…PDFのデータシートを見て探します。
最悪ダウンロードは無理でもクローンが作れれば良いのです。
810774ワット発電中さん:05/01/23 20:30:34 ID:2gXBtC2Q
>>802
グローバルだとデホルトでstaticになるからだろ。
ローカルの場合、明示的にstaticを付けなければならない。
811802 ややこしいなあ・・:05/01/23 21:34:03 ID:RLTuwPBB
>>810
constつけても一部はだめでした。
テストVersion WinAVR 20040720
#include <avr/io.h>
#include <avr/pgmspace.h>

void hogehoge(uint8_t data)
{
  PORTB = data;
}

//const prog_char *msg="0123456789ABCDEF0123456789ABCDEF";
//const prog_char *msg={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int main (void) {
  //const prog_char *msg={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  //const prog_char *msg="0123456789ABCDEF0123456789ABCDEF";
  hogehoge(pgm_read_byte(&msg[PORTB]));
  PORTD=12;
}
適当にコメントを外して試しました。出力をAVRStudio4.07にかけて
配列(文字列)がSRAMに複写されるか、コードでSPLの初期値が0xDF
(2313で)になっているかどうかでチェックしました。
PORTBを読み書きしているのは単に最適化で消えてしまうのを防ぐためです。
812長々とすみません:05/01/23 22:01:47 ID:RLTuwPBB
で、結果は

ローカルの場合。
const prog_char *msg={0,1,2,3,4,5,6,7,8,9};  →正常
const prog_char *msg="0123456789ABCDEF";    →SRAMコピーあり、スタック正常
const prog_char *msg1=PSTR("0123456789ABCDEF"); →正常

グローバルの場合。
const prog_char *msg={0,1,2,3,4,5,6,7,8,9};  →正常
const prog_char *msg="---------";    →SRAMコピーあり、スタック正常
const prog_char *msg1=PSTR("0123456789ABCDEF"); →コンパイルエラー

おまけ
ローカルの場合。
const prog_char msg[]={0,1,2,3,4,5,6,7,8,9};  →SRAMコピーあり、スタック異常
const prog_char msg[]="---------";    →SRAMコピーあり、スタック異常
グローバルの場合。
const prog_char msg[]={0,1,2,3,4,5,6,7,8,9};  →正常
const prog_char msg[]="---------";    →正常

結局、文字列はPSTR()使え、配列はprog_char *msg={.....}でFAかな。
813774ワット発電中さん:05/01/23 23:34:32 ID:+Q4t/IHr
>>803
パッケージを薬品で溶かしてROMを露出さして、
X線をロックビットに当ててロックビットだけ消去しろ
814774ワット発電中さん:05/01/24 00:10:05 ID:nKGtURHN
ガイシュツかもしれないけれど、けっこう役に立った。
ttp://ftp.gnu.org/savannah/files/avr-libc/snapshots/doc/avr-libc-user-manual-dev/FAQ.html
815774ワット発電中さん:05/01/24 00:14:15 ID:X433F5ek
マジで聞きたいんだけど、みんな、AVR使って、何を作っているの?
差し支えない範囲で、教えてくれない?


俺は、STK500で少し遊んだくらいで、今は、EZ-USBをMacから使えるように、
色々試しているところ。
816774ワット発電中さん:05/01/24 00:47:54 ID:u9kn3zvl
来年度の新入部員用ロボットキット
AVRはH8みたいに単価が高くないから入門で焼き切る心配があるときはいいよね
817774ワット発電中さん:05/01/24 00:56:19 ID:Ox+3eWp6
>>815
秋月のRTC-8564NBと、キャラクタ液晶を繋いで、年月日表示のデジタル時計。
RTCはI2Cなので、BASCOM-AVR(デモ版)でプログラム。
液晶表示もBASCOM-AVRのLCD命令だけだしな。
ヘタレですまん。
818774ワット発電中さん:05/01/24 07:24:01 ID:fj2ajqb6
>>815
今まで作ったのは、PWM-LEDピコピコ、デジタル時計、車のスピードメーターってとこ。
819774ワット発電中さん:05/01/24 09:37:25 ID:flWa/bKM
>>814
ちなみにこれはWinAVRをインストすると
C:\WinAVR\doc\avr-libc\avr-libc-user-manual\FAQ.html
にもあります。
820811:05/01/24 10:09:17 ID:6C71su++
>>814
おお、いいヒントがあった。FAQの方は見落としてました。
How do I put an array of strings completely in ROM?

const char foo[] PROGMEM = "Foo";
これでいいみたいだ。長い文字列指定しても問題ないみたい。
821774ワット発電中さん:05/01/24 21:52:23 ID:uxmmxDKs
USBしかないノートPCでもAVRの開発とかしたいのでUSB→RS-232Cの変換ケーブルを
探しているのですが何かお勧めがあったら教えてください。
822774ワット発電中さん:05/01/24 22:30:12 ID:M8sZGVP9
>>821
秋月のが無難ではないかと。
823774ワット発電中さん:05/01/24 23:09:57 ID:nKGtURHN
今までに作ったのは、どっとマトリクスLEDとか、デムパ時計、ファンコンくらいかなぁ。

>>819
灯台下暗し orz
824774ワット発電中さん:05/01/24 23:10:11 ID:IesKPQ2s
>>821

http://optimize.ath.cx/avr/writer.htm
EZ-USBを使用したAVRライタを使えば簡単
825774ワット発電中さん:05/01/25 16:42:52 ID:r8zbULOx
815です。答えてくれて、ありがとう。

俺のMacでは、USB2.0は使えないので、AN2131/2135で十分なのだけれど、
このチップでは、A/D変換とか、PWMとか、便利な機能がないので、
この先、複雑な応用回路を作りたくなったら、どうすれば良いか...

>>823
ファンコントローラですか。PWM制御で、超微風は可能ですか?


実は、俺は、寝室に外気をとり込んで冷やす目的で、
すごく原始的な換気扇コントローラを作りました。
その当時、マイコンを使ってPWM制御なんて、とても出来る技量がなかったので、
トランスのタップで電圧を下げて、そのタップの切替を、中国製の扇風機のコントローラから
制御したリレーで行う物でした。一応、リモコンも出来ます。
難点は、オムロンの100Vリレーの切替音がうるさく、頻繁に風量を切り替えるような
モードでは運転できない事です。
調光器では、超微風が出来ないので、電圧制御になりました。

最近は、少しはマイコンも使えるようになったので、PWMをつかって、夏までは、
もう少し、賢い奴を作ってみようかなと考えてます。
826774ワット発電中さん:05/01/25 16:50:21 ID:r8zbULOx
>>821
俺の場合、Mac上のVirtual PCで、KeyspanやProlificチップを使ったUSB-serialアダプタ
につないだSTK500に、STK500付属のダウンローダから、ダウンロードしてます。

ただ、これが、Windowsの仮想COMポートで動作するかどうかは不明。
(VPCでは、実COMポートを使用)
827821:05/01/25 20:32:43 ID:66Adn0Kn
レスthx
秋月の変換ケーブル買ってきます。

>>824
確かにEZ-USB持っているんで追加出費無しで出来るけど
AVR以外ので使うには別途ファームを作らないと無理なので
おとなしく変換ケーブル買ってきます…

>>825
AVR繋げる
828774ワット発電中さん:05/01/26 01:11:50 ID:C+wBH2OZ
突然で申し訳ないです。

どなたかmega48でUART経由で書き換え可能なブートローダを
作成した方いませんか?
当方C言語で作成してますが、どうにも動作イメージがつかめなくて。

話変わって、
tiny13にソフトuart入れて色々したいとかも思ってまする。
829774ワット発電中さん:05/01/26 02:11:11 ID:G9cbtjwL
>>825
リレーをSSRにするだけで十分だったりして。
830774ワット発電中さん:05/01/26 02:34:48 ID:a/+G769i
誰かやったことある人に聞きたいのですが、
秋月のH8のUSBセットと付属のVBのプログラムで通信して、速度が
10秒間で333回通信*64byte*2(往復)=>4.3kb/s とかで、
繋ぎなおしたりしていると、たまに状況が変わって
10秒間で1000回通信*64byte*2(往復)=>12.8kb/s とかになっていることもある。
上の2つの違いもなぜ起こるかわかっていないのですが、
通信速度の遅さといい、こんなもんなんでしょうか?
831830:05/01/26 02:39:05 ID:a/+G769i
1000回(たまに1001回)なのはUSBの何かが1msだった気がするのと、
333回(少し変動)なのは上のきっかし1/3ということも気になります。。。
ちなみに通信のソースも秋月のを利用しているのでEP1のみバルク転送です。
832774ワット発電中さん:05/01/26 03:51:37 ID:CzXw+GGW
>>830

H8側のファームを変更しない限り、そんな物だろ。
液晶ドライバとかもかなりウェイトが掛かってるって話だしな。

秋月H8-USBに関しては、色々なサイトで解説や利用法が提示されている。
ぐぐれ。
833774ワット発電中さん:05/01/26 10:15:31 ID:7FBaqsLZ
>>829
それも、一応考えたのですが、トランスのタップどうしが絶対にショートしない回路
となると、リレーが一番安全と言う結論でした。
834830:05/01/26 10:26:57 ID:a/+G769i
>>832
情報を一部載せ忘れました、すいません。
実際には秋月USB基板ではなく3052+USBNで同じピン配置にしているだけで
LCDディスプレイとSCIとLEDとSWは無いんです。元のプログラムは同じですが。
835774ワット発電中さん:05/01/26 10:49:51 ID:CzXw+GGW
>>834

んだからよ、秋月H8-USBのオリジナルファームを使う限り、転送速度はそんなものなの。
デバイスデスクリプタでの最大パケットサイズ(64バイト)を変更すれば良い訳だが、
送受信ルーチンの変更せずに上手く行くかどうかは知らん。
836834:05/01/26 11:09:08 ID:CzXw+GGW
ああ、思い出した。
パケットサイズの変更よりも、フレーム辺りのパケット数指定を増やした方が
そのファームウェアの場合は安全だったかな?
837834:05/01/26 12:40:24 ID:CzXw+GGW
フレーム辺りのパケット数指定はアイソクロナス転送の時だった…。
しかも、どっちにしろintervaltimer値って無視されるんだっけ…

という事で836は忘れて頂戴…
838774ワット発電中さん:05/01/26 13:29:05 ID:rPu1wDRY
↑低学歴(ぷ
839774ワット発電中さん:05/01/26 14:49:09 ID:ef+ECxvk
digikeyにATMEGA48,88が入荷!!
840774ワット発電中さん:05/01/26 17:26:04 ID:OofM1YO7
>>839
↑すまん、年寄りなんで、MLFとかTQFPは勘弁してくれ。
841774ワット発電中さん:05/01/27 15:22:26 ID:zRJ4FNOA
http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi?
が、かなり使えるモノになってきた予感。
842774ワット発電中さん:05/01/27 20:59:41 ID:AV7kZkAK
自分のプロジェクトを投稿してみるのもいいな
843774ワット発電中さん:05/01/28 02:10:38 ID:hN4nychN
ISP更新専用の、スタンドアロンのISPライタの製作例ってないですかね・・

固定デバイス固定ファームで、ボタンで転送、あとベリファイ結果だけわかるようなやつが欲スィ
(書き込むデータはライタ本体に焼きこみ)

いや、クソ重いノーパソ持って、客先をひたすらバグ修正に巡るハメになりそうなんで・・
(しかもノーパソ1台しかない罠)


誰か携帯アプリでライタ作ってくれないかな(無茶
844774ワット発電中さん:05/01/28 03:07:40 ID:tBBv99By
>>843
軽いノート買うのが手っ取り早いような・・・。
845774ワット発電中さん:05/01/28 04:12:03 ID:zUHTvv8N
>>843
http://www.mars.dti.ne.jp/~tokoya/WW_AVRProg.html
こういうのが完成していたら目的を達したのだろうけど。

ライタ内に書き込んでおいてそれを出先でターゲットに書き込めるってのは
どこか(Web上)で売っているのを見たような気がしたのだが。
あ、あった。
http://www.compass-lab.com/STK_CAN/AVR_KEYFOB.htm
846774ワット発電中さん:05/01/28 12:59:22 ID:AJKH4/kL
>>843
昔、AVRとシリアルEEPROMを使ってポケットH8ライタを作ったことがあったなぁ。
なんでもフィールドサービスで使うらしかったけれど。
847774ワット発電中さん:05/01/29 01:01:29 ID:XlgC8v2D
H8が品薄になるとか、PICが値上げになるとかの噂・・・正直うんざり。

無くなってから困ればいいじゃないヽ(´ー`)ノ
848843:05/01/29 03:43:16 ID:XbUPTO67
ワンダースワンとは・・(汗

KEYFOBイイ!
漏れの検索では全くひっかからなかったですよ 早速オネダりしてみまふ

現地回るのは面倒なんすよね・・  EPROMと違って、PC扱えない奴は外に出せないんで
リストラ対象オサーンでも扱える装置は便利ですよ  全部PHSとかLAN経由で書き換えが出来ればいいのに・・


ていうか、使われてる12Vのアルカリ電池の存在を初めて知りました こんな電池もあるのね
849774ワット発電中さん:05/01/29 07:26:33 ID:GhhniUzN
>>848
AN910型式ライタ(COMライタ)のファームを改造すれば自作も出来そうだね。
外付けEEPROMつないで、スイッチ1つでCOM→EEPROMかCOM→ISPかを切り替え出来るようにして、
スイッチ1つでEEPROM→ISPが出来るようにする。ロータリースイッチで複数EEPROM領域を切り替え。
ターゲットより大きめのフラッシュを持つAVRを使って、SPM命令でフラッシュに書き込みでも行けるかも。

これもどこかで自作例記事を読んだような気がする・・・
850774ワット発電中さん:05/01/29 10:36:30 ID:MMhl2VvO
>>845
keyfobのマニュアル、意味なく重すぎ(バックのグラデーションのため?)・・・・
セレ500のノートパソコンではページめくってから表示まで16秒○| ̄|_
なんかやだな、こんな文書作るところって。
851774ワット発電中さん:05/01/29 13:23:20 ID:SmjwJFnM
おしえてくださいー
timer.hにこんなのがあるのですが、

static __inline__ void timer0_stop (void)
{
  TCNT0 = 0;
}

static __inline__ void timer0_start (void)
{
  TCNT0 = 1;
}
これ、何に使うのでしょうか?
timer0_start()してもtimer0がスタートするとは思えませんが。
852774ワット発電中さん:05/01/29 14:40:02 ID:m+VBTLdv
>>851
#warning "<avr/timer.h> is deprecated, and will be removed in the next major release of avr-libc"
/*
* NB: this is completely bogus.
*/
static __inline__ void timer0_stop (void)
853774ワット発電中さん:05/01/29 19:11:19 ID:SmjwJFnM
>>852
見てなかった・・・・・・timer2と一部のtimer0には使えないから削除ってことなのかねえ。
completely bogusって・・・・・○| ̄|_
854774ワット発電中さん:05/01/29 23:02:01 ID:z9SiP67d
ちょっと教えて下さい。

基板に幾つかピンヘッダを立てるでしょう。
それで、そのピンヘッダどうしをつなぐケーブルはどこで入手できますか?
2pin, 6pin, 8pin など、欲しいのですが、検索しようにも、
うまいキーワードが浮かばないので、ヒットしません。
キーワードだけでも結構ですから、お願いします。
855774ワット発電中さん:05/01/29 23:07:02 ID:mdn2LAf/
>>854
フライングワイヤーで。

適当なコネクタの端っこを使うこともできるで。
856774ワット発電中さん:05/01/29 23:11:46 ID:XlgC8v2D
857774ワット発電中さん:05/01/30 01:24:22 ID:IcDL/96z
>>854
IDEのフラットケーブルがお勧め。
858774ワット発電中さん:05/01/30 09:47:42 ID:FjiLt/cQ
当方関西だが、日本橋のデジットは
端子と線を買うだけでその場でつくってくれたぞ。
今もそうかは解らんけど。

右も左もわからない頃に10PINのISP端子付き書き込み治具を
作ったんだけど、一番よく使ってる。
(・∀・)イイ!!
859774ワット発電中さん:05/01/30 11:34:31 ID:62t81+f1
>>854
秋月のピンソケット(メス)にフラットケーブルを半田付けして、熱収縮チューブ被せてます。
860774ワット発電中さん:05/01/30 12:33:53 ID:FrTyj50y
>>854
2pinはPC-DIYショップに結構ありますよ。今はあまり使われませんが、
ちょっと前のCDROMの出力をサウンドカードに接続するケーブルなどがまだ置いてあるケースがあります。
6pin,8pinってのは2x3,2x4のことですか、それとも一列のものですか?
一列なら、それ用のピンヘッダ+コネクタの組み合わせを使います。
http://www2.cyberoz.net/city/satodenk/conn.htmlの、2.5mmピッチ基板用(モレックス:5051/5045)あたり。

2x3,2x4はあまりないので普通2x5=10pin用をつかいますね。
フラットケーブル用コネクタ(ヒロセ)写真5あたりと、フラットケーブルを使用。
フラットケーブルも同じ店に売っています。
8pinなら、以下のように10pinのヘッダを立てて、■部のピンを折り、コネクタ側は折ったピンを突っ込めば
逆接続するのを防げます。
○○○○■
○○○○○
ピンヘッダの代わりに写真1のようなものを使うことでも逆接族防止ができます
(逆接続防止切りかきと突起がある)
861774ワット発電中さん:05/01/30 13:57:44 ID:Yoh9NL1m
854です。皆さん、親切に教えてくれて、ありがとう。大変参考になります。

当初、ワイヤセットみたいに、何種類かのワイヤが袋に入っているのを
想像していたのですが、こういう物は、あまり需要がないのかな。
いただいたヒントで色々検索しましたが、売り物は出てきませんでした。

線の長さも色々でしょうから、自作が基本のようですね。
これから大いに使う事にはなりそうなので、フラットケーブルの圧接工具を
購入しても良いかもしれませんが、ちと、財布が寂しいので、二の足を踏みます。

ただ、>>855氏のキーワードでここを見つけましたです。
ttp://www.nahitech.com/nahitafu/np1003hp/nusb2.html
実は、なひたふさんの基板を購入し、また、別の基板を拝借して、実験した事もあるので、
灯台下でした。ここに乗っているケーブルも一緒に拝借したのですが、まさか、
あんなにきれいに出来ているのが、自作だとは思いませんでした。
こういう物がどこかに売っている物とばかり思っていました。

圧着ペンチは有りますので、>>856氏や>>860氏のポインタを参考にして、
コネクタを買えば、作れそうな気もします。

ちょっと、確認なんですが、上のページを「フライングリードワイヤ」でFindした所に
にある金属の部品、つまり、
http://www.netten.co.jp/sengoku/cgi/search.cgi?syo=%82R%82W%82U%82V%81|%82m%82T%82S%82l&cond9=or&k3=0&list=2
このような、ひとつながりの金属部品を一つ一つ切り離して、被覆を剥がしたコードを
差し込んで、圧着し、それを、黒いプラスチックのコネクタに差し込めば、OKですよね?


862774ワット発電中さん:05/01/30 14:09:18 ID:Yoh9NL1m
連投ごめん。

それで、フラットケーブルの方は、>>857氏のように、PC基板用のを切り取って、
使う事も可能なので、近くのPCショップに行ってみます。

あと、>>860氏のヒロセのコネクタですが、これと、フラットケーブルをつなぐためには、
圧接工具が必要と言う認識でよろしいですか?

逆接を防ぐノウハウまで教えてもらって、恐縮です。

>>859氏の秋月ですが、実は、一昨日からかわら版のネットショップで色々部品を物色していて、
ただ、このワイヤが見つからないので、ほとんど全てのリンクを調べましたが、
とうとう見つからずに、ここで聞いてみる事になりました。こちらの方法も試してみます。

>>858氏。こちらは北関東で秋葉まで行くと1万かかります。最近は、ネットで済んでしまうので、
行く機会がまれになりました。むかし、ラジオデパートの向かいの線材屋で電話線の活け造りを
してもらって驚いた事が有りますが、あそこなら、やってくれそうな気もしますが、やはり、
交通費を考えると、行けませんです。

863774ワット発電中さん:05/01/30 16:59:34 ID:tcfQm3YR
フラットケーブルの圧着なんて、万力で十分だろ。それが厭なら、ここで作って貰えば?

http://shop.jst-mfg.com/

Digikeyでも加工済みのフラットケーブルは購入できるし。
864774ワット発電中さん:05/01/31 10:58:23 ID:5mhWOsAS
>>863
そこ、コネクタ単体はともかく、Ass'yまでしてくれるの?
よくわからんかった。
865774ワット発電中さん:05/01/31 17:55:38 ID:FgIK/poT
ミスミ
しらん?
たっかいけど。
866774ワット発電中さん:05/01/31 19:42:44 ID:kNlouvft
秋月から40pinのAVRが消えた・・・。
(´・ω・`)
867774ワット発電中さん:05/01/31 21:09:28 ID:9bspMrjN
俺、ずっとC使ってたけど、アセンブラ覚えようと思った。
やっぱ痒いところに手が届かない場合があるのがもどかしい。


('A`) ああん
868774ワット発電中さん:05/01/31 21:41:17 ID:5BIw3Jvu
WinAVR入れてアセンブラでコードを書いているんだけどGNUのアセンブラで
コードを置く場所を指定するのはどうすれば良いんだっけ?
割り込みベクタへのコードの書き方が分からない…
他のアセンブラだとORGとかの疑似命令で指定できたと思ったけど…

つか、GNU アセンブラのマニュアルってどこにあるんだ…orz
869774ワット発電中さん:05/01/31 21:48:44 ID:+5y8lg16
AVRは知らないのだが、一般的にはldで指定するんじゃないか。
ldscriptかコマンドラインか…忘れた。
870868:05/01/31 21:57:48 ID:5BIw3Jvu
スマン。どうも.orgで指定できないなと思ったらavr-gccでアセンブルしていたのが原因だった…il||li ○| ̄|_
avr-asでアセンブルしたら.orgで指定したアドレスにコードを吐いてくれました
871774ワット発電中さん:05/02/01 02:18:40 ID:ld2eaxY3
ここに例が載ってる。.orgもいらないみたい。
ttp://www.nongnu.org/avr-libc/user-manual/assembler.html
872774ワット発電中さん:05/02/01 09:20:21 ID:FjowZ9P9
>>866
やはり、需要がないんか?情報がないと回路やプログラム作れんとかか?
873774ワット発電中さん:05/02/01 09:43:59 ID:rtaoGN6m
>>872
40pinのAVR使いたいような人はいまさら旧AVRってのも嫌なんじゃない?
どうせなら値段そう変わらないmega16あたり使いたいと思うし。
もしかしたら単に在庫がはけたと言うことかもしれない(w
874774ワット発電中さん:05/02/01 10:44:05 ID:HkfurYKy
あ〜〜
軽石 うざって〜!
居なくなれ!
875774ワット発電中さん:05/02/01 11:39:14 ID:rtaoGN6m
>>874
なぜ他人の戯れ言がそんなに気になるね?
2chで煽り耐性鍛えないといかんよ。
876774ワット発電中さん:05/02/01 12:06:31 ID:RqbAQutj
>>866
ATMega8,16,32あたりを新しく入れてくれる前兆なら嬉しいのだが。
877774ワット発電中さん:05/02/01 12:38:02 ID:kcr59VB3
>>874
その程度に耐えられないようなら、2ちゃんねらー失格だな
878774ワット発電中さん:05/02/01 12:48:41 ID:tTvD95Pc
>>874
Qの次は松かよ。
うぜぇな、IP晒すぞ。
879774ワット発電中さん:05/02/01 22:39:15 ID:SUcRBlL7
小学5年生くらいか
880774ワット発電中さん:05/02/01 23:45:38 ID:AtbgpUZr
>>874 に同情。 漏れも誹謗されたぁ ゜(゚´Д`゚)゜
881774ワット発電中さん:05/02/02 07:03:41 ID:yJtJOGz8
>>876

Mega162もキボンヌ…
882774ワット発電中さん:05/02/02 07:12:13 ID:6p0jc0MA
>>881
Mega16 > Mega162 じゃなかったっけ?

僕はMega168キボンヌ だな。
883774ワット発電中さん:05/02/02 07:46:40 ID:0rUWg7dE
俺もmega88V系が欲しい。ローパワー面白そう。
884774ワット発電中さん:05/02/02 08:22:30 ID:rH+j0hH2
>>883
88Vなら、Digi-keyで入手できるんだけどなぁ。
88はすぐ売れきれちゃうぽ。

Mega48V--25個@192円
Mega88V--25個@276円 

885774ワット発電中さん:05/02/02 10:10:48 ID:vj2RiUDE
俺も軽石嫌い。
MLやらBBSもNGワードであぼ〜んできればいいのに。
886774ワット発電中さん:05/02/02 11:24:35 ID:Kis9RSVf
>>885
ML=メーリングリストなら、メーラの設定で差出人の名前でフィルター掛けて、
特定フォルダに振り分けることは可能だと思うけど?

で、軽石って何者?
887774ワット発電中さん:05/02/02 12:15:32 ID:wH2ZYTNz
↑ググれば出てきます
888774ワット発電中さん:05/02/02 15:17:48 ID:MLT3ZziD
軽い市 PICでググッたら出てきた。
恐ろしく内容が・・無い。
なんだあれ?
889774ワット発電中さん:05/02/02 15:59:28 ID:AhxK4eGB
ブログが痛いなー
890774ワット発電中さん:05/02/02 17:29:39 ID:N59YQUoY
漏れもボロクソ言われたよ…
もうだめぽ orz
891774ワット発電中さん:05/02/02 17:36:13 ID:vj2RiUDE
刈る意思が登場するBBSの管理人が
正直いうとあまり来て欲しくない・・と呟いていたのをヲレは知ってる。
892774ワット発電中さん:05/02/02 17:36:35 ID:GawQ4VZj
>>882

Mega162≒90S8515系
Mega16≒90S8535系

機能の系統が違う。
一番の違いは外部バスの有無。
893774ワット発電中さん:05/02/02 18:26:33 ID:V5U2MDoN
溜飲下がるのも最初のうちで
湾パターンでやられるとうざいよね。正直。
ワザトやっているのかな。
きてぃっぽいよね。
894774ワット発電中さん:05/02/02 19:13:24 ID:MLT3ZziD
いいか、みんな
     (゚д゚ )
     (| k |)


    サンポール ( ゚д゚)  ドメスト
       \/| k |\/


             °。o
        ( ゚д゚) 。o°o。
        (\/\/

       _
     =(_)○_
895774ワット発電中さん:05/02/02 19:30:50 ID:Sfgf8sga
みんなも黙ってただけで、嫌だたーんだね。
   ∧_∧     ∧_∧     ∧_∧  ∧_∧   ∧_∧     ∧_∧
  (・  ・)     (・  ・)    (・  ・) (・  ・)  (・  ・)    (・  ・)    
  /【◎】      /【◎】     /【◎】   【◎】ヘ  【◎】ヘ     【◎】ヘ
 /  /┘ .   /  /┘.    /  /┘  └\ \  └\ \  └\ \
ノ ̄ゝ     ノ ̄ゝ      ノ ̄ゝ      ノ ̄ゝ    ノ ̄ゝ     ノ ̄ゝ

             刈るさん ひと言お願いします!
896774ワット発電中さん:05/02/02 20:04:33 ID:v3Hv6dA0
カルミンってPIC系の人なんでしょ?
しかるべきスレでやって欲しいな。

それとも、AVR系のサイトで暴れてる松やんと同じ意図なの?
897774ワット発電中さん:05/02/02 21:33:56 ID:7RnH0ox5
mega162は、USARTが2ちゃんねるある
898774ワット発電中さん:05/02/02 21:51:48 ID:fNJ3vPnc
>>896
[H8-ML(5392)]も仲間に入れてあげてください。
899774ワット発電中さん:05/02/02 22:50:23 ID:BAz8yIRE
>>891
なんかさぁ、いいホームページの条件は
「うかつに掲示板を設置しないこと」って思えてきたよ。

有名な人のホームページの掲示板見ると、
たいていヘンな奴が住みついているんだよね。
そこの「常連である」ということによって自分を権威付けしようとする奴。
そういうヘンな奴は、たいてい自分自身のホームページは無いか、
あっても非常にショボい事が多い。

その意味で、掲示板を廃止したなひたふの判断は正しい。
900774ワット発電中さん:05/02/02 23:58:31 ID:MLT3ZziD
>>899
同意。
あそこにもKが登場してたな〜

ヤツ(K)のしょぼいページみて驚いたよ。年齢に。
絶対に10代だと思ってたら・・。
901774ワット発電中さん:05/02/03 00:09:52 ID:ro/dW/UK
>>899
絵描き系のHPは実際にそうしてるところ多いよ。
902774ワット発電中さん:05/02/03 00:10:50 ID:Oe2u8ZAf
俺も、時々軽石さん見かけるけど、そんなに嫌か?
直接突っ込まれたこともあるが、ちっとも悪い気はしなかったけどなぁ。
想像するに、彼は、パソコン通信時代からのBBSの住人なのだと思う。
特にNifty。古き良き時代、会議室の質を維持するために、新参者に辛口の
コメントを出してくる常連さんは沢山いた。

今のように、匿名主体のBBSになってくると、コテハンで通すのは勇気がいるね。
903774ワット発電中さん:05/02/03 00:48:45 ID:V6bdsZ/7
>カルミン
しかし、それだけ永くやって来て趣味の部類だとしてもあの程度のレベルの低さじゃなあ。
永遠の初心者たちが、それ系の掲示板を次々に廃止へ追い込むのは何とかしてくれ。。。
904774ワット発電中さん:05/02/03 05:03:33 ID:Kekm6g9H
掲示板を廃止せずに糞コテを晒すのも一興
905774ワット発電中さん:05/02/03 08:19:00 ID:5Oew06uV
わさびぃ相変わらずうざいな >>898
906774ワット発電中さん:05/02/03 10:08:02 ID:v/kjPKDl
ヤツはなぜ、H8のMLでLINUXの話をしてるんだ?
真性?
907774ワット発電中さん:05/02/03 11:21:12 ID:kUNMEAmn
>>906
どこへ行っても相手をしてもらえないからでは?


908774ワット発電中さん:05/02/03 12:14:21 ID:XBNaoHmS
WinAVRで、
プログラムEPROMを何バイト使って、SRAMを(変数領域で)何バイト使ったか?
っていう情報はlinkするときに出るんですかね?マップみてもよくわからないので
見方を教えてください。
909774ワット発電中さん:05/02/03 12:17:29 ID:J+28dDJU
なひが掲閉めたのは撃つになたから
910774ワット発電中さん:05/02/03 12:37:05 ID:3HOKUpdC
まぢで?
911774ワット発電中さん:05/02/03 13:10:45 ID:1kDXzwAZ
あそこのオペアンプ用法は忘れたときに重宝してたんだけど。
912774ワット発電中さん:05/02/03 13:31:17 ID:Xv1tEoE3
>>908
変数領域のサイズは hoge.lst 中の .bss のサイズ
終了アドレスは、avr-objdump -t hoge.elf して __bss_end
eepromも同様
913774ワット発電中さん:05/02/03 18:45:39 ID:A5WyMfvF
AVRのUARTですけど、
■UDREは送信可を表すのでリセット中セット(1)されます。
■UDRIEがセット(1)のとき、全割り込みが許可(SREGのI=1)されていれば、UDREのセット(1)は
  送信データレジスタ空き割り込み処理ルーチンを実行させます。
ってなっていますが、逆に、UDRにまだ何も送信していない状態(UDRE=1)で全割り込み許可の
状態でUDRIEをセットしたら、いきなりUDR空き割り込みが呼ばれるのは期待していいですか?
AVR Studio上は期待通りに動いているようなのですが。
914774ワット発電中さん:05/02/03 20:20:47 ID:oKxVcM2n
UDRE割り込みはレベルトリガである、とどこかに書いてなかった?
915774ワット発電中さん:05/02/03 21:35:58 ID:A5WyMfvF
>>914
外部割り込みのレベルトリガみたいなもの(条件さえそろえば掛かりつづける)でいいってことですね。
データシート(2313,mega8/翻訳版)にある「UDRに書き込むか割り込みを禁止するかしない限り
割り込みが掛かり続ける」というのは同義と考えていいですよね?
916774ワット発電中さん:05/02/03 21:58:48 ID:oKxVcM2n
んだ。
ちなみに、初回書き込み分はすぐにシフトレジスタに送られるから
2回連続で割り込みがかかるね。
917774ワット発電中さん:05/02/04 01:35:17 ID:iTp4k1yX
>>916
いろんなやり方があるけども、無駄な割込を減らすという点では、送信割込処理で
リングバッファから取り出して、リングバッファが空になったら送信割込禁止して
送信割込処理を終了するのが一般的では?

1バイト送信処理(非割込処理)では、リングバッファ(FIFO)に送信データ書き込ん
だら送信割込許可するか、リングバッファが空でUDRE=1なら直接送信バッファに
書き込んで、送信割込許可する。
918774ワット発電中さん:05/02/04 09:53:29 ID:3js44Oy8
>>917
送信割り込みって送信完了割り込み?後半を読む限りでは送信データレジスタ空き割り込みのことですよね。

AVRのUART使用サンプルプログラムを捜してみたところ、
送信完了割り込みをつかうものしか見つけ切れませんでした。
何かUDR空き割り込みよりも有利なポイントがあるのでしょうか?
919774ワット発電中さん:05/02/04 12:24:24 ID:um/uFQHO
うちのMega8も
char c;
c = '>';
do {
} while(!(inp(UCSRA)&(1<<UDRE)));
UDR = c;
でしか動かしてないや。
920774ワット発電中さん:05/02/04 16:16:01 ID:7454Tuy8
>>919
それで済むならそれが楽ですもんね。俺も現実に作ったものはこれしかやってない。

char c;
c = '>';
loop_until_bit_is_set(UCSRA,UDRE);
UDR = c;
がきれいでない?
921774ワット発電中さん:05/02/04 18:15:27 ID:2bK0UY/I
そんなマクロあったのか!(w
922774ワット発電中さん:05/02/04 20:08:47 ID:CvUiKzm2
>>920
送信の時は、ここが無限ループになって、CPUがダンマリになる、ってな考慮はしなくてもいいんですかね?
923774ワット発電中さん:05/02/04 20:28:18 ID:1Am0VyIk
>>922
送信時は送信設定が適切ならここが無限ループになることはあり得ないと思うが。
924774ワット発電中さん:05/02/04 21:40:27 ID:CvUiKzm2
>>923

> 送信時は送信設定が適切なら
       ~~~~~~~~~~~~~~~~~~~

適切でない場合の考慮までする必要はないとすれば、別にいいのか。

925774ワット発電中さん:05/02/05 09:14:48 ID:9/Dmo6gx
>>924
UBRR設定と送信許可設定が適切でないならそもそも動かないから無限ループに
なってバグに気づいた方がましだと思う。特殊なものでない限りはこれらは初期化
ルーチンで1度だけセットされるだけなので、まあ大丈夫じゃないかと
(もう一度呼ばれるならすでに暴走してる)
UBRR設定を変更する(通信速度設定ができる)ようなものならちょっと考える必要があるかもね。
#define wait_UDRE \
UCSRB = UCSRB | _BV(TXEN); \
if (UBRR>MAX_UBRR) { UBRR = UBRR_DEFAULT; UBRR_ERROR=1; } \
loop_until_bit_is_set(UCSRA,UDRE);
ってな感じにするとか。
926917:05/02/05 09:48:09 ID:p/IkZCDO
>>918
指摘のとおり、『送信割り込み』は、「送信完了割り込み」ではなく「送信
データレジスタ空き割り込み」です。

送信データレジスタに、書き込んだデータが、送信シフトレジスタにロード
されると、「送信データレジスタ空き(割込)」状態が発生し、ストップビット
の送出まで終了する「送信完了(割込)」状態が発生します。効率良く送信する
には、「送信データレジスタ空き(割込)」を使います。「送信完了(割込)」は、
RTS等のフロー制御信号をON/OFFするタイミングを知るため等に使います。

>>919-920
滅多に送信しない、かつ送信時も1バイトのみであればそれでもいいが、大抵の場合
ライブラリは以下のような作りになっていると思うので、10バイトの文字列を出力
すると、文字列全部を出力し終わるまで(9600bpsでも約10mS、1200bpsだと80mS
以上も)関数から戻ってこない。

void putc(char c)
{
  while(!(inp(UCSRA)&(1<<UDRE)));
  UDR = c;
}

void putc(char *s)
{
  while(*s)
    putc(*s++);
}
927774ワット発電中さん:05/02/05 10:07:29 ID:zE3OWZcG
>>926

> void putc(char *s)
> {
>   while(*s)
>     putc(*s++);
> }

そりゃ、再帰呼び出しすれば、なかなか帰ってこないだろうて(w

それはともかく、確かに232C送信を割り込みで並列処理してくれれば、とても嬉しいので
誰か教えてくれ。できればAVR-Wikiに書いておいてくれれば、嬉しい
928774ワット発電中さん:05/02/05 10:16:46 ID:zE3OWZcG
ATMega88のDIP品はまだ入手難だよねぇ。
TQPFだと取り替えられないしなぁ。
なんでCPLDみたいに、PLCC品を出してくれないんだろー。
929774ワット発電中さん:05/02/05 10:38:23 ID:ikjwiTy2
まだっていうか、週明けだね。digikey に ATmega88-20PI が入るの。
そろそろ流通大丈夫なんでない?
930774ワット発電中さん:05/02/05 11:05:16 ID:zE3OWZcG
>>929
え、来週入るですか。
ところで、ATMega88って、ATMega88-24ってな機種もあるんですか?

931917:05/02/05 11:14:46 ID:p/IkZCDO
>>927
「avrgcc」同梱の、サンプルコード集「gcctest」の「gcctest9」に入っている
「uart.c」/「uart.h」が送/受信とも割込処理になっている。

結局のところ『資料がないんじゃなくて、使う側に読む努力や能力がないだけ
なんだろうなぁ』と思う今日このごろ。
932774ワット発電中さん:05/02/05 11:22:51 ID:ikjwiTy2
>930
データシートのチェンジログの項を読んで高らかに笑うも可だが
かわいそうだから見なかったふりしてやれ。
933774ワット発電中さん:05/02/05 11:36:42 ID:zE3OWZcG
>>932
2545B-01/04から2545C-04/04への変更
1最大動作速度を変更
・12MHzを10MHzへ
・24MHzを20MHzへ

あ、これのことか。
934774ワット発電中さん:05/02/05 13:34:37 ID:9/Dmo6gx
>>927
一応作ってAVR-WikiにUpしてみたよ。動作未確認だけど。
ただ使用目的によっては割り込みじゃなくても良いケースもあり。
たとえば1秒ごとに測定データを送信するなんてもので、時間充分余っていれば
ポーリングで送っても構わないわけで。
こっちの都合では進まない受信は割り込みあった方が楽そうだけど。

>>931
gcctestにあったのか・・・・orz
16バイトのバッファの管理に16bitアドレスを使うのはもったいないと思ったので、
俺は配列添え字を管理して、配列アクセス時以外8bitで済むようにしてみました。
バッファサイズを256の約数にすると保存文字数以外の変数チェックが不要になってしまったし。
935774ワット発電中さん:05/02/05 15:57:57 ID:NIPj+CjH
AT90系のはちらほら見かけるんだけどATmega系のメモリマップってどこかにない?
936935:05/02/05 16:09:00 ID:NIPj+CjH
ぐは…データシートに載ってた
スレ汚しスマソ
937774ワット発電中さん:05/02/05 16:13:40 ID:9/Dmo6gx
>>935
データシートのメモリのところにある図では足りないですか?
たとえばmega128データシート(翻訳版)の11ページ。
938774ワット発電中さん:05/02/05 22:35:35 ID:s/xS/yJX
>>931
WinAVR使っているから知らないのだがgcctest.zipって今でも配布しているの?
939774ワット発電中さん:05/02/05 23:28:18 ID:FnGOumAn
>>938
http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewItem&item_id=254
>Updated: Jan 20, 2005
おお、最近更新されているな。最近のデバイスに対応させたようだ。落としてみよう。
940774ワット発電中さん:05/02/05 23:30:26 ID:FnGOumAn
>>939
落とせない・・・・・○| ̄|_
登録日がFeb 5, 2005(今日)になっているんで、まだ登録処理中なんだろうか。
941774ワット発電中さん:05/02/06 11:41:24 ID:1cFwanrv
ATmegaの各ピンの出力をグラフ化できるシミュレータってあります?
SPICEみたいに部品を付けて波形が取れれば理想的です

PWM出力をダイナミック制御したのをモニタしたいのですが…
942774ワット発電中さん:05/02/06 13:34:03 ID:3g2CcfSs
>>941
普通にLog取ってfsdbに整形すれば良いのでは?
943774ワット発電中さん:05/02/08 12:15:38 ID:y+ZvxyWE
>>929
待っているんですが、まだですか?
944774ワット発電中さん:05/02/08 18:59:21 ID:Q+xj01ac
studio4.10でアセンブリ言語でプログラムを書いて
buildした際にerrorが有る場合の挙動について
解らないことがあり、困っています。

studio3.56までは、buildでerrorが有った場合には、
errorのあるラインが列挙され、
ダブルクリックでソースのエラー箇所に跳べたと思うのですが、
studio4.10になってから
エラー箇所へジャンプが出来ません。

どなたかこの症状を改善できる方法をご存知ないでしょうか。
過去スレを見られる環境を持っておりませんので、
既出でしたら申し訳ないのですが、今一度ご教示下さい。
よろしくお願い致します。
945774ワット発電中さん:05/02/08 20:14:30 ID:us+rjPXU
>studio4.10になってから
>エラー箇所へジャンプが出来ません。

普通に出来てるけどなあ。
プロジェクトをエクスプローラでコピーしていたりとか??
946944:05/02/08 23:41:44 ID:Q+xj01ac
>>945

レス有難うございます。
プロジェクトは普通にstudio内から作っているつもりです。

他のアプリとの相性の問題もあるかもしれないので、
明日以降もいろいろと試してみます。

ウェーン、なんでできないんだろう?
947774ワット発電中さん:05/02/09 01:14:11 ID:Dzs+rENU
>943
おもいっきり「納期遅延中」のフダがかかってやがりますね ...。
948774ワット発電中さん:05/02/09 07:54:02 ID:fGsh+xHB
>>946
4.07でもプロジェクトファイル作成後移動したりすると似たような現象が起こりましたが、
>>945-946見るとそれじゃないわけね。うーんなんででしょ?
一度*.apsを消去して、*.cofからプロジェクト作り直し(Watchやブレークポイントは消えるけど)ても治りませんか?
949774ワット発電中さん:05/02/10 11:30:25 ID:YfKe5Hm+
AVR初挑戦してみたいんだけど、
市販品のAVRISPなどは、オンボード書き込みのみで、デバッグ機能はついていないのでしょか?
ブレークポイントや、ステップ実行したいときはJTAG-ICEみたいのを使わないとだめ?
950774ワット発電中さん:05/02/10 11:55:41 ID:S7BMHj0n
ATmega48の16bitタイマを8bit高速PWMで動かしたいんだがAVR Studio4でシミュレートしてみるとカウンタの挙動が変
TCCR1A:0b10100001
TCCR1B:0b00001001
TCCR1C:0b00000000
としているんだが、走らせるとカウンタが0x00から0xFFまでカウントアップした後0クリアされないでカウントダウンしてくる
何か根本的な勘違いをしているのかな…?
951774ワット発電中さん:05/02/10 16:04:17 ID:L4iloLyq
H83048f-oneに初めてSRAM(512k*8bit)を増設するのですがモード5で8ビットアクセスをします。
モード5では各エリアは128kバイトのアドレス空間を持つとのことですが、
これについてはどういうことか良く分かっていないのですが、
A0~A19までが機能しているのでSRAMのA0~A18をマイコンのA0~A18と繋ぐことで
SRAMの全領域にアクセス出来ますでしょうか???(128kバイトのアドレス空間?)
952774ワット発電中さん:05/02/10 16:12:23 ID:JSGYb7ik
>>951
/CS2つをORしてRAMに接続すれば
それで良いと思うぞ
各エリアとは、/CS1つ分のエリアだ
953952:05/02/10 16:14:42 ID:JSGYb7ik
すまん。/CS4つ分だな。
ここは、素直にモード6が良いのではないだろうか?
954774ワット発電中さん:05/02/10 19:44:50 ID:wD9D6fnP
>>950
WGM13-10=0101=8bit高速PWMでよさそうなんですけど、なんでだろ?
2進法でどっか0が1つ多いとか少ないとかいうオチはない?
TCCR1A=_BV(COM1A1)|_BV(COM1B1)|_BV(WGM10);
TCCR1B=_BV(WGM12) | 1;
TCCR1C=0;
と、間違いが起こりにくい形でやってみては?

って思ったが、手元でやってみると確かに同じ現象になってしまった。
AVRStudio4.08で、mega48がないのでmega16でやってますけど、
#include <avr/io.h>とmainとその中に無限ループだけのソースをコンパイルして、
無限ループ内にブレークポイントを設けて、TCCR1A/B/Cを手動設定してステップ実行しても同じ動作になる〜
955774ワット発電中さん:05/02/10 21:28:53 ID:Sv5RrawS
共立で買ったTiny12(5つが5つとも)が書きこめないんですけど、
Tiny12ってなにか普通と違うことやんないといけないんですか?

試したこと

ライター:
自作avr9102種(max232のとディスクリート/ファームはv2.3とドイツ人が
拡張パッチあてたやつ)、自作stk200ドングル、avrdudeの抵抗のみライター

ソフト:
avrdude, uisp (どちらも-DEVのCVS最新のもの)/ FreeBSD 4.11-Stable
uispはResetになってないと言う。avrdudeはいかれてると言う。

RESETピンは、10Kでプルアップ、100Kでプルアップ、プルアップなしを
試しますた。基板は2つ作って、なんども見たりテスターでチェックした。

at90s1200,at90s2313,attiny26Lなどは、なんの問題もなく使えてます。
956774ワット発電中さん:05/02/10 23:00:17 ID:S8iCAkFe
>>955
クロックはどうしてます?初期値は内蔵発振らしいけど念のため・・・
957955:05/02/10 23:37:20 ID:Sv5RrawS
クロックは、最初データシート通りにつけなかったんだけど、
あとからセラロック4MHzも一応試しました。
958950:05/02/10 23:48:32 ID:S7BMHj0n
>>954
わざわざ検証してくれてありがとう
ATmega48に載っている3つのタイマ全てをPWM動作させたかったので
他のタイマも動かしてみたんだけどみんな変…orz
タイマの設定は全て比較一致でLow出力、8bit高速PWM、プリスケーラ無し

DDRB:0b00001110
DDRC:0b00000000
DDRD:0b01101000

タイマ0:PWMの出力がPIND-6,5に出る
      PORTD-6,5に出るのが正常な気がするけど…?
タイマ1:>>950に加えて出力でない
タイマ2:出力がトグル動作、出力がOC1A/B(PORTB-1,2)に出る

何じゃこりゃ…何がおかしいんだろう…il||li ○| ̄|_
959774ワット発電中さん:05/02/11 01:13:02 ID:3wKz8rH2
これが関係するのかな?
AVR Simulator Overview
Known Issues
The Known Issues list is organized in two major sections; the first describes general simulator issues, while the second describes device specific issues.
General Simulator Issues
The issues in this section apply to all AVR devices.

Timer/Counters
16-bit Timer/Counters on all devices have several problems with PWM, prescaler and output compare. Output compare registers are not buffered properly.
The Asynchronous Status Register (ASSR) is not supported in timers with asynchronous mode. This is due to lack of a generic external clock implementation.

Notes for ATmega48/88/168
Timer/Counter2
Output compare pins and FOC does not work.
Prescaler reset does not work correctly.
OCR2A/B registers are not buffered correctly in PWM mode.



960774ワット発電中さん:05/02/11 08:07:57 ID:asqPi57u
>>959
なるほど。
Heroさんとこにあった4.11βのhelpではPWM関係の記述が消えていたので、最新版では大丈夫なのかも。
4.10で試してみようかな。
961774ワット発電中さん:05/02/11 08:30:32 ID:0i/jVt5e
>>955
まさか_Resetをプルアップしてないとか言う落ちじゃないでしょうね?
Tiny系は_ResetがOCになってるから吊らないと絶対だめだよ。
962774ワット発電中さん:05/02/11 08:37:51 ID:4Naqa1hT
ごめん全文見てなかった。ちゃんと吊ってたみたいね。俺が吊ってくる。

もし内部発振の1MHz動作で動いているならSPIのIOスピードがクロックに対して
速すぎるとかも考えられる。
しかしDUDEやUISPにIOスピードの設定項目はあっただろうか
963774ワット発電中さん:05/02/11 11:32:05 ID:DHg8GGIa
>>929
まだ?
964950:05/02/11 12:29:11 ID:VAhDlSJD
>>959
ありがとう
実機でデバッグしろって事か…オシロもロジアナも持ってないよ…orz

>>960
俺が使っているのは4.11βだけど上記の症状…
965774ワット発電中さん:05/02/11 14:51:04 ID:A5fFNZFo
>>964
幸いAtmega48には「DebugWire」っていうデバッグ手段があ〜るじゃないですか〜。
JTAGICEIIは4万円近くするけどね(w

それはともかく、http://akizukidenshi.com/catalog/items2.php?c=comp&s=popularity&p=1&r=1&page=#M-00137
ポケット・デジタルマルチメータ P−10
これは、周波数カウンタがついています。◆周波数:10Hz〜10MHz
デューティー比も読めるので、PWMのデバッグにはもってこいです。
安いし。1 台 2,100円(税込)
お勧め。

(考えてみれば、ATMega48と水晶と液晶で周波数カウンタ作るっていう手はありますな)

966774ワット発電中さん:05/02/11 16:51:52 ID:asqPi57u
>>965
これ、俺も持ってますけど便利っすね。
同じ機能のテスタはあるけどこんなに安いのはない。
脱線ついでに、同じメーカーのこいつ
http://akizukidenshi.com/catalog/items2.php?p=1&q=MS-1280&submit=%B8%A1%BA%F7
って使えますか?簡易オシロが欲しいなーって最近考えているので。
用途は趣味工作(AVR遊び)の範囲内です。
967951:05/02/11 20:07:12 ID:WM6tx47H
>>952さんが言うようにモード6でいくことにします。
8ビットアクセス・2ステートアクセス・ウェイト無しとして、繋ぎ方はこうですか?
マイコン側(H8-3048f-one)−−−SRAM側(CY7C1049B-25)
A(0〜18)−−−−−−−−−−−A(0〜18)   順不同
D(8〜15)−−−−−−−−−−−I/O(0〜7)   順不同
~CS1−−−−−−−−−−−−−~CE      プルアップする
~HWR−−−−−−−−−−−−−~WE
~RD −−−−−−−−−−−−−~OE
間違っている箇所があったら是非教えていただきたいです。
968774ワット発電中さん:05/02/11 20:23:32 ID:rESdNKC1
>>967
それで良いと思うぞ。それにしても速いRAM
を使うんだな。ちょっと、うらやましいぞ!

0x200000〜0x27FFFFにRAMが見えるはず
969950:05/02/11 23:41:29 ID:VAhDlSJD
>>965
>P-10
わぁ…なんか凄く良さそうですね…この機能で\2,100とは…
今度秋葉行ったとき買ってこようかな

今回は日本語ドキュメントがあっていることをあてにして何とかします…orz
970774ワット発電中さん:05/02/12 02:25:06 ID:eZrTsiS8
>>969
そのテスタ俺も持ってる。
初めてそのテスタを買ったとき、車のインジェクタのdutyが測れると思ってやってみたら、
ほとんど0%を表示した。ヤッパリ安物○| ̄|_と思って長いことお蔵入りしていた。
よく考えると誘導負荷によるでかいスパイクがあるのでそっちにレンジ合ったらほとんど
Duty0が出るのは当たり前じゃん・・・ってことにたった今気がついた(^^;)
971774ワット発電中さん:05/02/12 23:55:05 ID:5POvYc0K
めちゃくちゃ初歩的なミス…ATmega48に-5V掛けちった…il||li ○| ̄|_
生きていたけど((( ;゚Д゚)))ガクガクブルブル
972774ワット発電中さん:05/02/13 01:34:36 ID:EmivrBUB
>>971
わたしゃ7805の端子と電解コンデンサの
向きを逆にして電源部がすべて死んだよ。

その先のもろもろが死ななかったのが奇蹟だが。
973774ワット発電中さん:05/02/13 08:31:36 ID:1xz1XW0y
そろそろスレがやばいんですけど、次はどうするって話になってたっけ?
*AVRとH8は分離するのかどうか?
*その他のプロセサはどこで扱うか
974774ワット発電中さん:05/02/13 08:37:02 ID:7WeCKWBl
専用スレのあるマイコンは専用スレで
ない場合はココで
話題が偏ってきたら専用スレを作りましょう

にするとPICは専用、AVR,H8その他はココになりそうな予感。
975774ワット発電中さん:05/02/13 08:54:12 ID:1xz1XW0y
>>974
つまり現行どおりって事ですね。
AVRの話題が多いけどH8も結構ある、他のプロセサの話題もちらほらある
誰も狭いとは言ってないし1スレ3ヶ月かかってるし。
今からお出かけなので、誰かお願いできると幸。(帰宅時まだだったら言い出しっぺが建てます)
今回はAVR-Wikiもリンク集に入れてね
976774ワット発電中さん:05/02/13 08:56:58 ID:MYHNhBPb
>>975
あんたが好きなリンク入れてたてればいい
977774ワット発電中さん:05/02/13 09:11:20 ID:yzrJOBr0
>>973
>*AVRとH8は分離するのかどうか?

AVRの記事とH8がごちゃごちゃになっていて、読みにくいので
分けるのが良いです。(読んでもどっちの話かわからないことが多い)

>*その他のプロセサはどこで扱うか

同じ考えかたで、CPU毎に、必要によりスレッドを増やすしかありません。
共通化すれば、異なるCPUの話題が混じって読みにくくなります。
CPU種類から見てスレッド乱立にはならないでしょう。
978774ワット発電中さん:05/02/13 10:13:55 ID:FFXx07Ur
>>977
専用スレ欲しいなら、そっちを先に立ち上げない?
そうすればそれに従ってその他のCPUのスレを欲しい人、たとえばH8スレが欲しい人が
スレ立ててくれるでしょう。H8の人も専用スレ立てるかもしれないし。
979774ワット発電中さん:05/02/13 10:21:58 ID:yzrJOBr0
>>977
おいらは入釜ーなので、スレたてはマスターしてないし苦手。
立ち上げスレッドの文章のうまい人に、H8の専用スレたてを希望。
980774ワット発電中さん:05/02/13 11:16:26 ID:FFXx07Ur
>>979
遠慮することはないよ。おれも参加して1ヶ月の頃PIC/AVRスレのスレ立てしたことあるよ
不安なら、まず原稿を立ち上げてここで晒す。文句が出なければスレ立てGO!
981774ワット発電中さん:05/02/13 11:24:11 ID:yzrJOBr0
>>980
漏れはヴァカなので、H8スレたてヨロ!
982774ワット発電中さん:05/02/13 15:58:44 ID:yYG/Rs2k
>>979
その姿勢では、専用スレが必要かどうか判断できる立場にないのでは?
とか思ってしまうわけだが。
983774ワット発電中さん:05/02/13 18:02:53 ID:eW2o9x5d
>*AVRとH8は分離するのかどうか?

分けてほしい。やはり話題がかけ離れすぎている。
H8も使用しているひとが多いから専用スレッドもあってもいいだろう。

984774ワット発電中さん:05/02/13 18:05:00 ID:2VIMcZUH
H8はこういうスレあるよ
[SH_M32__ルネサスマイコン総合スレ1__H8_R8C_Tiny]
http://science3.2ch.net/test/read.cgi/denki/1106160714/
985973:05/02/13 18:08:11 ID:1xz1XW0y
話が変わったようだな。
では私がAVRスレ立てしてみます。
H8/その他については重複スレがないかどうか確認の上よろしこ。
986次スレ1:05/02/13 18:48:11 ID:Gmdf3kDx
           _____
         /       /|
       /   ( ゚∀゚) /.∠フ   個人でも手軽に使える
     /       /.∠フ || . Atmelの8-bit RISCマイクロプロセッサを
   /  __    o/.∠フ ||    中心に語るスレッドです。
 ∠| ̄ ̄凵 ̄ ̄|∠フ ||     *AAはAVR/H8その他総合スレからいただきました。
 .|| |_____|/||

Atmel AVR 8-Bit RISC     http://www.atmel.com/products/avr/
987次スレ2:05/02/13 18:48:37 ID:Gmdf3kDx
◎前スレ◎
AVR H8 etc. マイコン総合スレ Part3
http://science3.2ch.net/test/read.cgi/denki/1100706575/
AVR H8 etc. マイコン総合スレ Part2
http://science3.2ch.net/test/read.cgi/denki/1093023679/
AVR H8 etc. マイコン総合スレ
http://science3.2ch.net/test/read.cgi/denki/1078586301/
PIC AVR H8統合スレ
http://science2.2ch.net/test/read.cgi/denki/1072092201/

[機械板]
●PIC・AVR 初心者のためのスレッド-3サイクル目●
http://science3.2ch.net/test/read.cgi/kikai/1067082692/
●PIC・AVR 初心者のためのスレッド-2サイクル目●
 =行方不明。過去ログ持ってる人いたら提供よろしく
●PIC・AVR 初心者のためのスレッド●
http://mentai.peko.2ch.net/kikai/kako/981/981417210.html
988次スレ3:05/02/13 18:49:15 ID:Gmdf3kDx
<参考になるページ>
・AVR情報多い-chanさんのpage  http://elm-chan.org/
・avrfreaks.net avrgccその他AVR関連の総本山(英語)
  http://www.avrfreaks.net/
・レディオテクニカ有志による 翻訳版 AVRデータシート・AVRツールの解説書
  http://homepage1.nifty.com/radio_tech/
・TAP-Config http://ww2.tiki.ne.jp/~maro/
・AVRのライター http://b2c-1.rocketbeach.com/~jcl/AVR.htm
・自分で作ってしまえ!電子工作スレッドテンプレート集
  http://jbbs.shitaraba.com/bbs/read.cgi/study/3329/1067910158/
・AVR-wiki  http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/

リンク集:AVR-Wiki>AVRよくある質問(FAQ)>AVRで遊びはじめるにあたって
http://www7a.biglobe.ne.jp/~attlee/avr-jp-wiki/wiki.cgi?page=AVR%A4%E8%A4%AF%A4%A2%A4%EB%BC%C1%CC%E4%28FAQ%29#p4

<ライタ関連>
・秋月のAVRライター(COMポート)+新しいファームウェア
  http://akizukidenshi.com/down/
  http://www.toshu-ltd.co.jp/gaki/electronics/software/
  http://www.t3.rim.or.jp/~temple/software.html
・共立電子(シリコンハウス)のSK-AVR(COMポート),mega/tiny対応、Windows/Linux対応
  http://www11.plala.or.jp/silicon/DATA/develop_picavr.html
・共立電子(デジット)のAVRドングル(Printerポート)。ジャンパ1つでSTK200互換
  http://digit.kyohritsu.com/
・Olimex製のAVR-PG1Bは安い。Olimexだと$9.95。
  http://www.olimex.com/dev/avr-pg1b.html
販売元:Sparkfun、SolitonWave
  http://www.sparkfun.com/shop/index.php?shop=1&match_criteria=all&rec=&keywords=AVR-PG1B+&
  http://www.solitonwave.co.jp/product/avr/avr_index.html
純正品:AVR-ISP(COMポート)、STK500。パラレルライタ機能あり
  http://www.atmel.com/dyn/products/tools.asp?family_id=607
・プログラマ(書き込み器)を自作の参考になるサイト
  *jcl:AVRマイコン用プログラマの制作
    http://micomfreaks.hp.infoseek.co.jp/AVRprog.html
  *ELM-AVRライタ製作集
    http://elm-chan.org/works/avrx/report.html
989774ワット発電中さん:05/02/13 18:58:59 ID:NNCoAk1n
>>988
>・プログラマ(書き込み器)を自作の参考になるサイト

*オプティマイズ:EZ-USBライタ
 ttp://optimize.ath.cx/avr/writer.htm
の追加はどう?
990774ワット発電中さん:05/02/13 19:26:24 ID:Gmdf3kDx
たてますた
AVRマイコン総合スレ Part4
http://science3.2ch.net/test/read.cgi/denki/1108290187/
991774ワット発電中さん:05/02/13 19:50:59 ID:q7og5die
>>990
総合スレって・・・他スレあったっけ?
992774ワット発電中さん:05/02/13 20:17:19 ID:sBaBplmn
スレ立て乙




と、埋めてみる。
993774ワット発電中さん:05/02/13 23:03:00 ID:2rxmSdjo
>>991
う・・総合ってなんかおかしいな。単純に消し忘れだすまん。
まあAT90Sもmegaもtinyも!って意味だと思ってくれ。
994774ワット発電中さん:05/02/14 14:45:25 ID:QT/7L8sF
994
995774ワット発電中さん:05/02/14 14:46:12 ID:QT/7L8sF
995
996774ワット発電中さん:05/02/14 14:46:55 ID:QT/7L8sF
996
997774ワット発電中さん:05/02/14 14:48:21 ID:QT/7L8sF
997
998774ワット発電中さん:05/02/14 14:49:02 ID:QT/7L8sF
998
999774ワット発電中さん:05/02/14 14:50:09 ID:QT/7L8sF
999
1000774ワット発電中さん:05/02/14 14:50:49 ID:QT/7L8sF
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。