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

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

H8

1 :774ワット発電中さん:2010/09/15(水) 14:33:58 ID:9CtRQRKz
H8

2 :774ワット発電中さん:2010/09/15(水) 23:02:40 ID:frayf6nh
I9

3 :774ワット発電中さん:2010/09/16(木) 10:14:24 ID:TT0+rt+1
EXCELかっ

4 :774ワット発電中さん:2010/09/16(木) 12:36:17 ID:nbRqWFOj
R8

5 :774ワット発電中さん:2010/09/16(木) 13:39:10 ID:KgfxCeGy
R800

6 :774ワット発電中さん:2010/09/18(土) 00:05:23 ID:EonzVItk
秋月のH8-LANボードでiTRON系のOS走らせたことある人いるかい?

7 :774ワット発電中さん:2010/09/18(土) 00:07:45 ID:0rhg09rG
OSなんか大嫌い
俺が御主人様だ

8 :774ワット発電中さん:2010/09/18(土) 00:09:09 ID:EonzVItk
すみませんでしたw

9 :774ワット発電中さん:2010/09/18(土) 00:47:19 ID:gVz/hj+v
 日本製ロケットの先行ばーじょん?

10 :774ワット発電中さん:2010/09/18(土) 14:19:45 ID:EonzVItk
>>9
先行過ぎる件w
あちらはまだH2だろうが。

11 :のうし:2010/09/18(土) 15:59:21 ID:sqeQiBqY
H24

これがUJTでは定番だよね
http://www.wakamatsu-net.com/cgibin/biz/pageshousai.cgi?code=10190007&CATE=1019

12 :774ワット発電中さん:2010/09/18(土) 16:26:21 ID:ZxSYm+4t
H2の次がH2A、その次がH2Bだから・・・・8までいく頃には21世紀も終わってそうだよ。
ルネサスが終わるのとどっちが先かな。

13 :774ワット発電中さん:2010/09/18(土) 18:37:58 ID:rSAYlSJZ
UJTって2SH21あたりしか知らないや・・・
IGBTと同じ型名じゃん!がお決まりのアレ

14 :774ワット発電中さん:2010/09/19(日) 00:26:46 ID:63XFpE2b
H8は100日プロジェクトで落とされてしまいましたorz
ttp://techon.nikkeibp.co.jp/article/NEWS/20100914/185653/

15 :774ワット発電中さん:2010/09/19(日) 04:15:43 ID:jdjPo7wX
>>12
それより何よりH8が終わっちまうのか・・・

16 :774ワット発電中さん:2010/09/21(火) 12:58:42 ID:+HbgQCZ8
>>14
日経BP社さんお疲れ様です。

17 : [―{}@{}@{}-] 774ワット発電中さん:2010/09/21(火) 13:33:32 ID:tspsbtv9
製品群を「ハイエンド」「ミドルレンジ」「ローエンド」の三つに分けて
5種類のCPUコア(SuperH,V850,RX,R8C,78K)を存続させること,
いずれの製品群も成長分野と位置付けることなどを説明していた。

ハイエンドには「V850」と「SuperH」,ミドルレンジには「RX」,
ローエンドには「78K」と「R8C」を割り当てる。

18 :774ワット発電中さん:2010/09/21(火) 15:06:30 ID:M36OuSrZ
日立で生き残ったのはSHだけになるんか・・・

19 :774ワット発電中さん:2010/09/21(火) 16:37:15 ID:39zIf0h+
まあ、RXを出した時点で、H8はフェードアウトの予定だったんじゃない?
完全に消えるのは当分先だろうけど

20 :774ワット発電中さん:2010/09/21(火) 21:32:54 ID:G2afr7Hi
RXもどう転ぶか、?な状態では

21 :774ワット発電中さん:2010/09/22(水) 00:02:59 ID:neWhDjbc
H8/300Hはアセンブラで書きやすくていいCPUだったのにねぇ。

ある意味68000より書きやすかった。
68000はデータレジスタをアドレスポインタに
使えなかったのがじれったかったし、
H8のER0→E0,R0やR0→R0H,R0Lみたいに
上位ワードと下位ワード、上位バイトと下位バイト
を独立して扱えなかった。

H8が無くなるって本当にもったいない。

22 :774ワット発電中さん:2010/09/22(水) 00:29:41 ID:nIKfUhyH
>>21
アセンブラ使うような下位のH8はすぐには消滅しないでしょ
家電や自動車もあるし価格的にも置き換えにくい。

32ビット品と競合しちゃってる
H8SXとかR32あたりが、真っ先に統合されるんではないかな。

23 :774ワット発電中さん:2010/09/22(水) 01:01:38 ID:7NNz3KIh
>>16
会員登録必要なのを忘れてた。
一度ログインすると、ログイン状態が保持されてしまうもので。
言い訳でスマン。

合併前の各社のバランスを取ったのかなぁ。
日立はHEWも残った、と考えるべきかもね。
俺は純正のICE買っちゃったから、HEWが無いと生きていけない。

24 :774ワット発電中さん:2010/09/22(水) 21:01:18 ID:hBfE0/y4
スレタイが、HBに見えた。鉛筆か。

25 :774ワット発電中さん:2010/09/22(水) 21:58:14 ID:zaZ5RDOP
>>6
HOSなら。
iTRONって広義の意味では定義が広くて、
UB,UH,UWとかtypedefしてるだけでもiTRON準拠じゃなかったけ?

26 :774ワット発電中さん:2010/09/23(木) 17:50:38 ID:yZrC66cA
SHのスレがないよ。
誰か立ててよ。
SH4使いたいんだけど、経験ある人いないのかな。


27 :774ワット発電中さん:2010/09/24(金) 08:54:18 ID:SYFGfhMh
>>25
>TRONって広義の意味では定義が広くて、
>UB,UH,UWとかtypedefしてるだけでもiTRON準拠じゃなかったけ?

まさか、もうちょっと勉強しましょうね。そうとう恥ずかしいこと言っていますよ。

28 :774ワット発電中さん:2010/09/25(土) 08:29:06 ID:oT6ulhGi
なんとなく「あいとろん」っていう響きが好きだったり

29 :774ワット発電中さん:2010/09/26(日) 17:18:32 ID:F5XNlJze
>>28
http://www.itron-ise.co.jp/

???

30 :774ワット発電中さん:2010/09/29(水) 17:51:16 ID:xviHOfHD
開発環境として、GCCとHEWのどちらがおすすめですか?

31 :774ワット発電中さん:2010/09/30(木) 00:00:12 ID:uTHZifSq
H8って絶滅危惧種なの?知らんかった!
これから趣味の域で遊びにかかろうと思ったのだが、
H8は避けたほうがいいのかな…?

やりたいことは、PWMの出力とデジタル入出力、アナログ入力。

32 :774ワット発電中さん:2010/09/30(木) 00:58:22 ID:inGPZpqA
>>30
H8だったらGCCはゴミ。HEWにしとけ。

33 :774ワット発電中さん:2010/09/30(木) 06:53:47 ID:XS/eW9Yq
>>31
来年になったら、はい、もう買えません。
なんてことにはならない。当分は入手可能。

やりたいことって書いてるのが漠然としてるけど、
それなら多分、何使っても変わらんだろ。

てことで、好きにすればいい。

34 :774ワット発電中さん:2010/10/01(金) 12:28:27 ID:+iuwnE/b
SHって3.3V作らなきゃいけないから、5V直結出来るH8の方が使いやすい。
H8/3052とH8/3664のピン互換、5VインターフェースのSHが出れば乗り換えれるんだけどな。
(今みたいにパソコンで簡単に作れる時代に作った基板じゃないから変更にお金掛かるんだよな・・)

35 :774ワット発電中さん:2010/10/01(金) 12:53:51 ID:e8N/8Ilt
>>34
SH7146 シリーズ
[電源降圧回路の内蔵や低消費電流化を図って高速化にともなう消費電流増加を抑止しており、80MHzの高速動作でありながら5Vでの単一電源動作を実現しています。]

36 :774ワット発電中さん:2010/10/01(金) 22:22:05 ID:X597Osb3
最近はシステムを全部3.3Vにする方が簡単な気がする。

37 :774ワット発電中さん:2010/10/02(土) 00:45:56 ID:KVACoPQQ
 InterfaceのSHマイコンは、相変わらずMP3再生かぁ。他にネタはないのか。
マイコンは。

38 :774ワット発電中さん:2010/10/02(土) 01:01:35 ID:JajdXH5y
>>36
アナログと繋ごうとすると自由度ひくいよ。
単電源だと5Vインターフェースが出来る方が使い易い。

39 :774ワット発電中さん:2010/10/02(土) 01:02:27 ID:EfdO8qZa
開発で使う処理は一通りあるし、
モチベが出る目的ではあるし。

40 :774ワット発電中さん:2010/10/02(土) 14:52:47 ID:81dYtLfq
>>35
ピンコンパチブルじゃないんだよな。
まあ、8ビットバスにしたときのデータバスの使い方(H8はD15-D8を使う、SHはD7-D0を使う)
が違う(=アーキテクチャの問題)から無理なのかもしれないが。

>>36
3.3VだとフォトカプラのI/Fなんかで電圧マージンが少ないんですよ。
結局5V用意しなきゃいけない。

確認LEDに青・白系が使えない。

あと>>38の言うとおりアナログ系

41 :774ワット発電中さん:2010/10/09(土) 17:25:40 ID:Au1+xhwt
>>40

>3.3VだとフォトカプラのI/Fなんかで電圧マージンが少ないんですよ。
そんなことないよ一般のはOK。高速ホトカプラ代用ならアイソレーションICつかえ。

>確認LEDに青・白系が使えない。
それは大した意味無いからwww



42 :774ワット発電中さん:2010/10/10(日) 01:56:24 ID:S5SyJ0nx
Wikiに「組み込み向けのマイクロプロセッサとしては世界的に大きなシェアを誇る」とあるから消えないだろうな

43 :774ワット発電中さん:2010/10/10(日) 06:01:28 ID:0XldDYDA
>>42
要出典 の記述だね。 Wikiに書いてあるからといって無条件に
信じるのはどだうかな。いい加減な内容が多いという指摘もあるし。

H8/300Hはホームページにすら載ってないし、H8Sのロードマップにも
今後の新製品の予定もない。新規開発には、別のCPUを勧めて
使われなくなるのを待っている状態だね。つまり自然死待ち。
英語言うと phaseout(段階的廃止) でしょう。

44 :774ワット発電中さん:2010/10/10(日) 15:35:48 ID:eBIW7u+F
>>41
>一般のはOK。高速ホトカプラ代用ならアイソレーションICつかえ

IC使えば何VでもOKだわな。3.3Vを別途用意しないと行けないし。

45 :774ワット発電中さん:2010/10/10(日) 20:34:34 ID:6/3zUHxc
>>43
>H8/300Hはホームページにすら載ってない

ここに載っているのは何?
ttp://japan.renesas.com/products/mpumcu/h8/h8_landing.jsp

H8は新規開発品が出ないだけで、保守品としてしばらくは大丈夫でしょ。
基本はRXに乗換えだけど、だったらバイナリコンバータくらい提供してほしいというのはあるな。

46 :774ワット発電中さん:2010/10/10(日) 21:25:25 ID:0XldDYDA
>>45
ttp://japan.renesas.com/prod/mcumpu/ 

こういうところに載ってないということ。製品一覧の中にも載ってないのは、
いないも同然。片隅にしか載ってないようなCPUを新規に使えない。
もちろん、継続使用は別だがね。

>H8は新規開発品が出ないだけで、保守品としてしばらくは大丈夫でしょ。
だからー、そういうのを Phaseout(段階的廃止) っていうのよ。


47 :774ワット発電中さん:2010/10/10(日) 21:35:38 ID:6/3zUHxc
>>46
>こういうところに載ってないということ。

いや一応H8Sを選んで見ると左下にあるというwww

>そういうのを Phaseout(段階的廃止) っていう

そんな主張では現製品は全部Phaseoutのカテゴリになっちまうからねw
生産継続が計画されているかぎりPhaseoutとは言わないでしょう。

48 :774ワット発電中さん:2010/10/11(月) 00:47:41 ID:ib9huHLp
HEWで電源が入った時1回だけ実行されるリセット関数はどこに書いたらいいんでしょうか?
割り込みベクタテーブルにも見当たらないんですけど。

49 :774ワット発電中さん:2010/10/11(月) 00:51:37 ID:2Hi24Rul
ハードウェア的対応じゃ駄目なの?

50 :774ワット発電中さん:2010/10/11(月) 00:58:34 ID:H401aMCc
>>47
>いや一応H8Sを選んで見ると左下にあるというwww
よーく見てみようね。H8Sのロードマップの絵を見て言ってるのだろうが。
1) 図は、H8Sのロードマップである。
2) H8/300H,H8/300H Tiny, H8/300は、薄い青い背景に入っていない。
3) 図の下の説明のラインナップの中に、H8/300Hがない。
4) 図の上の概要の箇条書きにH8/300 H8/300H命令上位互換と書いてある。
結論
 図の中のH8/300Hシリーズは、単にH8SがH8/300シリーズの上位互換であること
 を示している。違うと思うかい。

>そんな主張では現製品は全部Phaseoutのカテゴリになっちまうからねw
まさか、現製品のほとんどはロードマップに開発計画があるからね。
そんな主張とは、何のことをおっしゃっているのでしょうか?

>生産継続が計画されているかぎりPhaseoutとは言わないでしょう。
段階的廃止だから、将来廃止という定義と思うが、確かに、ルネサスは
生産をやめるとは言ってないから、Phaseoutとも言い切ることはできないが。
もう終わっいるCPUなのに、熱心なサポートごくろうさまですね。

51 :774ワット発電中さん:2010/10/11(月) 01:02:23 ID:ulfFf3To

それで結論として、H8はいつディスコンになるの?



52 :774ワット発電中さん:2010/10/11(月) 01:21:31 ID:ulfFf3To
>2) H8/300H,H8/300H Tiny, H8/300は、薄い青い背景に入っていない。

H8/300Hのところ、クリックできるんだからどうでもよくね?



53 :774ワット発電中さん:2010/10/11(月) 01:31:42 ID:UbmtcJoi
>>48
shのことかな、hewなら、雛形書いてくれるから...
探し方が下手なだけのような?
マニュアルをよく読みませう。

54 :774ワット発電中さん:2010/10/11(月) 09:35:33 ID:H401aMCc
>>51
>ルネサスは生産をやめると言ってない。 >>50にも書いてますが、
私の知る限りの情報だけど。今の時点では分かならいのでは。

>>52
>H8/300Hのところ、クリックできるんだからどうでもよくね?
あなたが、そう思うのならそれでいいんじゃない。

やめるのが、分かっている製品からは、早く手を引くのが賢い選択。
私はそう思うだけよ。他人が使うのを私には止められないしね。

55 :774ワット発電中さん:2010/10/11(月) 15:07:06 ID:ib9huHLp
>>53
いえ、H8/3052です。

56 :774ワット発電中さん:2010/10/11(月) 15:21:49 ID:6YilkJYT
>>55
H8ならベクタ0のアドレスがリセットのエントリアドレスになってるのでは?
hewなら雛形書いてくれるのに、
マニュアルが読めないのなら、CQのH8系の本読んでみたら、

57 :774ワット発電中さん:2010/10/11(月) 17:14:26 ID:ib9huHLp
マニュアルってH8/3052のハードウェアマニュアル?


58 :774ワット発電中さん:2010/10/11(月) 18:16:37 ID:6YilkJYT
>>57
いろいろあるでしょ
ttp://japan.renesas.com/products/mpumcu/h8/h8300h/h83052b/Documentation.jsp

hewとか
Cコンパイラとか

辞書みたいに使えばいいんじゃないの。

59 :774ワット発電中さん:2010/10/12(火) 07:40:41 ID:VWDmBWFc
>HEWで電源が入った時1回だけ実行されるリセット関数はどこに書いたらいいんでしょうか?

ちょっとあいまい。電源オンというのは、電源をオンしたときだけという
こと? つまり、電源オンもリセットの一要因だが、リセットの他の要因と
区別したいということなのか?

単純にリセットがかかったときに、一度だけ実行するだけの処理なら
単に、通常処理の前に一度だけの処理を記述すればよいだけ、

電源ONと他のリセットを区別するのであれば、ソフトだけでは難しいかな。

質問にはあいまいさがないようにするのが大事なんだよな。あいまいな事しか
書けないような奴に限って、そんなことは書いてないとか逆ギレするのが多い。
自分の未熟さを知れと思いたくなる時がよくある。

60 :774ワット発電中さん:2010/10/12(火) 10:13:19 ID:HIAa8NiZ
1. 努力を放棄すること
 いやしくも「教えてクン」たるもの、努力をしてはならない。過去ログを読んだり、検索してはいけない。
「英語は苦手なので、分かりません。」は、高く評価できる。辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、
正しい「教えてクン」である。
 また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。
「サッパリ」という単語が「やる気の無さ」を効果的に表現している。
「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。
2. 情報を開示しないこと
 使用OSや、機器構成などの必須の情報を知らせてはならない。マザーボード名やBIOSのバージョンも同様だ。
具体的なアプリ名やバージョンも隠蔽すべきだ。「DVD再生ソフト」のように曖昧に表記しておけばよい。
反対に「前から欲しいと思っていた○○」とか「安売りされていた○○」 等の「どうでもいい情報」は、どんどん書いてやれ。
 トラブルの場合は、状況を正確に記述してはならない。「なんだかうまく動きません。」とか「エラーが出ます。」等と具体的なことは何も書かないことが重要である。
 また、自分の試してみた事も具体的に書いてはいけない。考えられる組合せのマトリックスを作成し、状況を整理するなどもってのほかである。
最悪の場合、それだけで問題が解決してしまうこともあるのだ。「いろいろやってみたけど、動きません。」が理想的だ。
3. 答える人間のことを考えないこと
 「教えてクン」は、孤高の戦士である。相手のことを考えるようでは教えてクン失格というものだ。以下のような行動が、望ましい。
 初心者であることを高らかに宣言し、初心者向けの丁寧で分かりやすい説明を強要する。専門用語の使用を禁じておくとさらに効果的である。
簡潔な説明を禁じられたヲタクどもは、同じ内容を説明するのに、何倍もの労力を強いられる。自分は努力せず、相手には多大な努力をさせることこそが
「教えてクン」の真骨頂である。
 マルチポストも有効である。そのBBSを信用していないことを明確に示せる。「どうせ、お前らじゃ分からんだろう。」という意志表示として高く評価できる。
もちろんマルチポストの非礼をあらかじめ詫びてはならない。それでは、単なる「急いでいる人」になってしまう。それは、教えてクンではない。
 質問のタイトルは、「教えてください。」で良い。タイトルを読んだだけでは「何に関する質問」か全く分からない。
そういう努力は、答える人間にさせれば良いのだ。とにかく、答える人間が答えやすいように気を使って質問してはならない。
傲慢で不遜な態度が必須である。「聞きたいことがあります。」など、プロの仕事であろう。


61 :774ワット発電中さん:2010/10/12(火) 10:15:37 ID:HIAa8NiZ
4.中途半端な丁寧語を使うこと
 完全なタメ口や高圧的すぎる言葉使いは厳禁だが、「〜がよくわかんないんですが」などの
言い回しで相手をさほど敬わない態度を示すことにより、「仕方ないからおまえらごときに聞いてやってるんだよ」的な
ある種の押しつけがましさを表現できれば上級者の域に達したといえる。
 半端な丁寧語の合間に、「しょうがないじゃん」「わかんないんだよ」など、
気の弱い逆切れともだだっ子ともとれるような表現を挿入できれば、もはや黒帯である。
5. 強い言い方をされたら黙り込むこと
 「そんな言い方をされるくらいなら聞かなきゃ良かった」「こんなくだらないことでなんでいちいち怒るんだ」などなど、
相手の怒りの原因を理解しないことにより、相手をさらなる怒りの渦へと追い込むことが重要。
何があろうと原因が自分であることを理解してはならないし、どう言われようと反省した旨を相手側にしらせるなどはもってのほかである。
 「初心者だから難しいことはわかりません」「初心者だから専門用語はわかりません」「頭悪いんで・・・」
「すごいねえ、なんでそんなこと知ってるの?」など、謙譲や尊敬の態度を使い分けつつ、
相手の神経を逆なでするのが、正しい教えてクンへの道である。


 最後に、言うまでも無いことだとは思うが、答えてくれた人達にお礼の言葉を返すなど言語道断である。
せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っているようでは、臥竜点睛を欠いていると言わざるを得ない。
質問だけしておいて、後はシカトが基本である。
 上級テクニックとして、「そんなことはもう試しました。」とか、「そこまで初心者じゃありません。」などと言って、
回答者の神経を逆なでしておけば完璧である。
 以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。
ビバ!教えてクン! 教えてクンに栄光あれ!!




62 :774ワット発電中さん:2010/10/12(火) 10:19:42 ID:7GYQeXr6
パワーオンリセットはH8に限らずCPUの基本だな。
基本すぎてリセット要因には書いてないことがある罠。
パワーオンリセットとマニュアルリセットが書いてあるのにマニュアルリセットが使用不可とか書いてあってぱっと見わけわからない罠。

どっちかってとリセット回路の勉強だな、これ。

63 :774ワット発電中さん:2010/10/12(火) 18:31:28 ID:C120vHu6
リセット要因が分離されてるのはSHですよ。

64 :774ワット発電中さん:2010/10/13(水) 02:13:05 ID:rF0lNm84
H8ってブラウンアウト検出できるの?

65 :774ワット発電中さん:2010/10/13(水) 16:29:52 ID:Q5jBl27K
>>60
>>61
むつかしすぎてわかりません
もっと簡単におしえてください
頭わるいんで


66 :774ワット発電中さん:2010/10/13(水) 19:13:50 ID:936B3HWA
ただのリセット端子に贅沢なことを言ってる人が...

67 :774ワット発電中さん:2010/10/14(木) 13:25:27 ID:6hx9U2iF
トラ技の別冊買ってきちゃったけど
これ32ビットじゃん
使いこなせないよどうすんのこれ

68 :774ワット発電中さん:2010/10/14(木) 13:52:03 ID:FFEyK/Q+
>>67
H8SXだっけね。 Cで書くなら一緒じゃない?
しょーもないことをしょーもないレベルでやらせて贅沢さに酔いしれるもよし
速度が必要な処理をわざと速度を気にしないソースで書いて速さに舌鼓うつもよし

69 :774ワット発電中さん:2010/10/14(木) 15:27:57 ID:bk2PoKxa
理解する気もない奴に語ることは何もない
失せろ

70 :774ワット発電中さん:2010/10/14(木) 15:47:21 ID:W2OMk9Xm
うしなせろ?

71 :67:2010/10/14(木) 15:55:47 ID:6hx9U2iF
こんなもん買うんだったらスペースシャトルのプラモ買うべきだった!
散財だ!

72 :774ワット発電中さん:2010/10/14(木) 17:17:44 ID:F3l5QX3W
本誌の方をよく読みませう。
16bitマイコンなら使いこなせるのだろうか?

73 :774ワット発電中さん:2010/10/14(木) 20:58:07 ID:veNlXWlX
どっかの辞書:「使いこなす」は、物を十分に機能が発揮されるよう有効に使用する意。
おれ、H8のフルスペックがどうしても要るようなことって、速度的なこととか、外バス的なことぐらいしか遭遇したことないな。
そして楽したいから、さらに上のスペックの石を頼む。

74 :774ワット発電中さん:2010/10/14(木) 21:03:34 ID:OJjX+yk2
>>73
ずっとH8を使うかは別として
日本人にとってH8以上に楽に始められる石はそうそうないんじゃない?


75 :774ワット発電中さん:2010/10/15(金) 00:19:07 ID:hYG0TwAe
>>74
「始めるのがラク」と言えばPICだろう。
その後は知らんが。

76 :774ワット発電中さん:2010/10/15(金) 04:08:48 ID:s1m2i2mI
豚切りですが、ちょっと漠然とした質問いいでしょうか

トラ技別冊付属のH8SXに自作ローダーを焼き、
シリアル経由でRAMにプログラムをロードして実行する、みたいないことをやっています

このプログラムをよくミスるのでデバッグ用にNMIがきたら直前の実行場所やレジスタをシリアルに吐く
ということをやりたいのですが、RAMに読み込むプログラムが大きくなってくると割り込みに失敗するという現象で困っています
main.cc

main(){
while(1);
};
INT_NMI(){
LED_set(true);
SIO_send(...);
}
...他にたくさんの関数

といった内容なのですが他の関数のせいで、RAMに書く大きさが4600バイトくらいまでは、INT_NMIが呼ばれる
4900バイトくらいになると、mainの処理はとまるので何かはやっているらしいが、INT_NMIの先頭でやっているLEDはつかない

といった現象です。RAMは全部で40Kあり、上から6Kをスタックに使っているので4K5Kでスタックと当たっているとは思えません。
他の関数は別にmain等から呼び出しているわけではなく、単にファイルサイズを稼ぐためだけの関数です。

1. ファイルサイズによって動作が変わってしまうことってどんなことが考えられますか。ESPで構いません
2. 一般的に今どこを走っているのか知りたいときってどうしています?

RAMに書かないでROMにすべてを書いたらどうなるのか、とかまだやるべきことはあるのですが
何日か悩んで煮詰まったので質問させてください

77 :774ワット発電中さん:2010/10/15(金) 07:25:56 ID:beSHw4or
NMIにプッシュスイッチつないでるとか
NMI使わんでも適当な箇所でシリアルに出力させるだけでいいような

78 :774ワット発電中さん:2010/10/15(金) 16:15:01 ID:TXj+Z55H
>>76
NMIで実行される部分はROMに有るのかな?
もしRAM上なら実行される前にメインのバグで、ぶっ壊されてるかもね


79 :774ワット発電中さん:2010/10/15(金) 20:01:43 ID:l+v1nC7L
>>75
同意。
LEDピコピコとかもやりやすいしね。

80 :774ワット発電中さん:2010/10/15(金) 20:07:07 ID:beSHw4or
INT_NMIって普通の関数宣言?
ちゃんと割り込み用に使うってコンパイラに指示出してる?

81 :774ワット発電中さん:2010/10/17(日) 14:37:30 ID:4JUXLEWp
>>77
NMIにプッシュスイッチつないでいます

>>78
INT_NMIはロードされたRAMにあります
壊してる可能性が高いですか。やっぱり
割り込みがかかる4600バイトのときとダメな4900バイトのときで
mainの内容は1バイトも違わないのでなぜ壊れるのかが謎なのですが
ROMに全部おいたらどうなるか試してみようと思います

>>80
最後がrteになっていることはobjdumpで確認しました

82 :774ワット発電中さん:2010/10/17(日) 17:23:57 ID:vZ1cdNnd
まずプッシュスイッチのチャタリングを疑うべき。

NMI処理ルーチン中にさらにNMIがかかっておかしくなっているのかも。

今H8の仕様書見る余裕無いけど、
H8ってNMI処理中にさらにNMIかかるんだっけか?
(Z80だとNMI処理中に当たり前のようにさらにNMIがかかっていた)


83 :774ワット発電中さん:2010/10/18(月) 02:55:10 ID:FIK754NP
>H8ってNMI処理中にさらにNMIかかるんだっけか?

 当然かかる。

>NMI処理ルーチン中にさらにNMIがかかっておかしくなっているのかも。

 チャッタリング程度なら余程重い動作じゃなきゃ多重にはならない。
 ノイズキャンセル設定変えてみたら?



84 :774ワット発電中さん:2010/10/18(月) 18:54:54 ID:dJf7QIF6
押したときはね。離した時に...

85 :774ワット発電中さん:2010/10/18(月) 23:11:09 ID:mOB4lMGU
>>82,83
ありがとうございます

とりあえずNMIの多重割り込みかどうか切り分けるためにIRQxに変えて
先頭で割り込み禁止してみます
あと、オシロでチャタリングの確認をしてみようと思います


86 :774ワット発電中さん:2010/11/19(金) 18:09:29 ID:bEbxD3Yy
>>32
正確にはGCCをH8用にカスタマイズした奴がゴミ

87 :774ワット発電中さん:2010/11/19(金) 19:03:15 ID:GKNSNZHx
gcc信者が居るので(ry

88 :774ワット発電中さん:2010/11/20(土) 00:54:45 ID:DQyQ3Dxg
素のgccじゃ、bit操作命令の使いこなしがいまいちだからね。

89 :774ワット発電中さん:2010/11/23(火) 06:52:02 ID:EuZNRdDI
gccは単なる教育用。あんな糞コードで製品レベルで使うことを期待するのは大間違い

90 :774ワット発電中さん:2010/11/23(火) 16:08:34 ID:4lA7/0mj
何使っても、糞コードを書いてるんですね、わかります。

91 :774ワット発電中さん:2010/11/23(火) 23:48:13 ID:A7vE1vl7
CCH8 を使用してCのソースファイルをコンパイルし、
L38H でリンクしています。
リンクスクリプトの セクション指定? は↓こんな感じです。
 START VEC(0)
 START P,C,D(200),R(0FFEF10),B(0FFEF20)
 ROM (D,R)
この環境でC言語のグローバル変数の初期化を行いたいのですが、
どのように行えばよいのでしょう?

92 :774ワット発電中さん:2010/11/23(火) 23:54:52 ID:4lA7/0mj
Cosplay Chaos Hannover 8?

93 :774ワット発電中さん:2010/11/24(水) 00:11:47 ID:AoAiAoSV
ああ、ごめんなさい。CCH8は自分が作ったCCH8.batでした。
コンパイラはC38Hです。

94 :774ワット発電中さん:2010/11/24(水) 00:32:23 ID:jUh2xdsQ
c38hは古いので、h8用のhew使えばいい。
hewだとstartupの雛形を作ってくれるので、何も考えなくていいよ。
c38hを使ってた頃に、アセンブラで書いたことあるけど、忘れた。

95 :774ワット発電中さん:2010/11/24(水) 12:17:32 ID:QypsHc4d
なんでHEWつかわねーんだよ。アホか

96 :774ワット発電中さん:2010/11/24(水) 12:34:27 ID:5XNcVqAc
コスト削減のためにgcc使ってくれと客から指定されたことがある。
時代的にはHIMよりは幸せだと思う。

97 :774ワット発電中さん:2010/11/24(水) 20:37:46 ID:E9UEqrp7
C38Hを使っているときに、簡単な処理なのにトラぶったことがあり、
そのときに見つけたのがGDL。
コンパイラ替えるだけでバグは直った。
今はHEWだけど、最近GDLを見直したらシリアルとか関数があったのね。


98 :774ワット発電中さん:2010/11/24(水) 22:57:54 ID:AoAiAoSV
>>94
まちがいついでにコンパイラはCC38Hでした。
でも出来ることは出来るんですね。
出来ればCで記述して".ctorsセクションに配置する"的なことをやりたいんですが、
無理ですかね。
その辺理解してから hew を使いたいと思っているのですが。

99 :774ワット発電中さん:2010/11/24(水) 23:16:18 ID:jUh2xdsQ
>>98
セクションの大きさがCだと取れないから、アセンブラで書いた記憶が...
というか、コンパイラのマニュアルに書いてあったコードを使っただけなんだけどね。
マニュアルに書いてあることも理解で出来ないでやってた人もいたなあ、遠い目

100 :774ワット発電中さん:2010/11/24(水) 23:20:07 ID:jUh2xdsQ
Cでの書き方の練習がしたいなら、gccの方がいいかも
無理しないで、hewの雛形見たほうがいいと思うけど...
知りたい部分は隠蔽されてるけどね。

101 :774ワット発電中さん:2010/11/24(水) 23:31:45 ID:AoAiAoSV
>>99
一つだけ確認させてください。
 MOV.B #0,R0L
 MOV.B R0L,@_gVariable
こんな感じで1個づつ初期化する方法ではないですよね?
そのほか私の質問は全て無視の方向でお願いします。
もう少し調べてみます。
背景としてはひょんな事からH8のRS232Cデバッガを作らされる羽目になりまして、
一応希望の仕様はほぼ実装できたんですが、
グローバル変数の初期化が最後までわからなくて、質問したしだいです。

102 :774ワット発電中さん:2010/11/25(木) 00:05:55 ID:x2nE3ryT
ROM (D,R)
って書いてあるから、
Dセクション(初期値を持つ変数領域)

Rセクション(初期値を持つ変数の実際の領域)

コピーするってことだよね、やりたいことは
Bセクションを0クリアするのを忘れずに

コンパイラのマニュアルじゃなくて、リンカーのマニュアルに書いてあるよ。

103 :774ワット発電中さん:2010/12/12(日) 15:45:04 ID:fFmisJzm
個人的に悲しい…。
H8/3052
ttp://japan.renesas.com/products/mpumcu/h8/h8300h/h83052b/h83052b_root.jsp

104 :774ワット発電中さん:2010/12/13(月) 11:02:28 ID:PdwdNImF
3052に限らず300Hシリーズ全部だね

105 :774ワット発電中さん:2010/12/15(水) 21:50:53 ID:AdBhl4Gl
V850にやられたのかね。

106 : [―{}@{}@{}-] 774ワット発電中さん:2010/12/16(木) 11:32:05 ID:AiCHokTR
RXに移って欲しいんだろう

107 :774ワット発電中さん:2010/12/17(金) 17:44:09 ID:32V4ZkBW
互換コンパイラでも提供すればいいのにね。

108 :774ワット発電中さん:2010/12/18(土) 18:10:58 ID:84GdTPLW
>>104
tinyは残りそうなんだ予なぁ・・

109 :774ワット発電中さん:2010/12/21(火) 14:24:56 ID:+KZ3MwQz
今まで3052BF・3694F・62P(M16C)あたりを常用してきたんだが
こんな終息決定デバイスを新規案件に使ったら客に怒られる。
今後の標準マイコンを何にしたらいいんだろう。
R8CかRXかはたまたARM系に乗り換えるか・・・。

とりあえず直近の案件に何使おう?R8Cだと性能的に心許ないし、RXはまだまだ。
ルネサスも小規模事業者に冷たくなってきたから、やっぱARMか。。。

110 :774ワット発電中さん:2010/12/22(水) 13:54:58 ID:ze3CsSP4
今は業界再編の過渡期と製品の移行期が重なってるから、デバイス選定は特に難しいな。

個人的にはH8の定番デバイスであれば、まだ継続使用OKだと思ってる。
Renesasが安泰なうちは供給停止にはならないだろうし、
会社がヤバくなればR8Cだってどうなるか分からない。

全くの試作から始めるのであれば新シリーズがいいけど、
納期がなかったり失敗が許されない場合は実績のあるCPUの方がメリット大きい。

もちろん顧客にこれらを説明して承諾してもらう必要はあるが、
今のところ拒否されたことはないな。

111 :774ワット発電中さん:2010/12/23(木) 22:29:33 ID:HjtU54qH
秋月に H8Sが入荷してるんだが、時期が時期だけに
在庫処分かな?とか勘ぐってしまう。

112 :774ワット発電中さん:2010/12/24(金) 03:03:40 ID:dnYnCwNB
H8は型番が多くてよくわかりませんが…
今入ったのは前の500円ジャンクの上位版というかほとんど変わらないみたいに見る
500円ジャンクで作った物をコンパクトにまとめるのはいいかもしれない

113 :774ワット発電中さん:2010/12/24(金) 09:32:49 ID:UUMfjvDa
1.7mmピッチのワンタイムなんて


114 :774ワット発電中さん:2010/12/24(金) 11:55:51 ID:AStGU6c+
>>111
どうせ倒産処分品だろ。AAAだから相当在庫抱えてたようだな

115 :774ワット発電中さん:2010/12/24(金) 20:56:29 ID:ttQz1DUE
ブートローダーぐらい書き込んで売れば付加価値が付くのに
今後の(客の)展開待ちかな?

116 :774ワット発電中さん:2010/12/24(金) 21:14:45 ID:B/raPb2H
この前、パチンコメーカー倒産してなかったっけ?
あそこから出てきたと観てます

117 :774ワット発電中さん:2010/12/24(金) 21:19:29 ID:e2ShhD8N
1.7mmて。どうやって使うのこれ
ピン広げて表面実装すんの?

118 :774ワット発電中さん:2010/12/25(土) 01:04:11 ID:0SxAd2Ud
>>115
ブートローダーとかなくても、外部ROMモード(動作モード1)で外部ROMか
ROMエミュレータをくっつければ何とかなる希ガス。

>>117
つ変換アダプタ(サンハヤト、?,728)

119 :774ワット発電中さん:2010/12/25(土) 02:09:17 ID:hyID6vn2
斜め45度で1ピンおきに伸ばして実装

120 :774ワット発電中さん:2010/12/25(土) 20:57:07 ID:Sj0XlG4d
1.27ピッチ基板に斜め刺し

121 :774ワット発電中さん:2010/12/26(日) 12:00:13 ID:CI0hWcyn
外部に出せるメモリ空間は64kか?
応用範囲が狭いなぁ…

122 :774ワット発電中さん:2010/12/27(月) 20:15:45 ID:kWgnYaMk
>>121
メモリバンク(ページ)を駆使すれば×nの空間が使えます。

123 :774ワット発電中さん:2011/01/14(金) 13:04:54 ID:2xaslKMp
CQのSX基板付属本、買わなきゃ良かったよ
つくづく思うわ

124 :774ワット発電中さん:2011/01/14(金) 13:23:07 ID:IpNUapZ6
またか。

125 :774ワット発電中さん:2011/01/16(日) 01:23:59 ID:0PuCjxRF
>>123
オマエなに買っても使えない奴だろw

126 :774ワット発電中さん:2011/01/16(日) 13:03:42 ID:EAEe0dHs
買うなら秋月のワンタイムH8だな
レールで買うと単価50円
外付けのROMがいるけど気にしない

127 :774ワット発電中さん:2011/01/16(日) 13:13:43 ID:tXm6suh5
外付けROMをSRAMにすれば、わりと楽しそうだ。

128 :774ワット発電中さん:2011/01/16(日) 21:55:51 ID:4acNgweu
内部RAMで動いてるときは、Rとかの制御線はばたつかないんだな
当然の仕様だろうけど、なにか悪さ出来るかも

129 :774ワット発電中さん:2011/01/26(水) 02:25:01 ID:PczyD67T
あれ? いつのまにかフラッシュ版がでてら
これで誰かがライター作ったら使えるようになるな

130 :774ワット発電中さん:2011/01/30(日) 15:26:14 ID:sjG9GFg5
ttp://www.renesas.eu/products/tools/flash_prom_programming/fdt/child_folder/Previous%20versions%20and%20protocl%20A.jsp

131 :774ワット発電中さん:2011/01/31(月) 01:10:43 ID:5eqbCPLV
教えてください。
H8SマイコンでCでプログラムを書いています。今回は配列を大量に使うため、
スタックサイズを増減させる必要があるようなのですが、初めてさわるのでわからないことがあります。
どなたか、教えてもらえないでしょうか?

スタックサイズ 現在2048byteになっています。
1. この2048byteという数字は2の11乗ぴったりですが、増やす時の指定値は、
a) 2のn乗にしなければならない
b) 別に2のn乗でなくても良いが、一般的には2のn乗で設定する
c) 2のn乗には何の意味もないので、好きな値でよい
の、どれでしょうか?

2. スタックサイズを小さくしたいと考える上で、
  printf()は、スタック馬鹿食いなのでしょうか?
  今、その関数内部でデバッグ用にprintf()多用しているのです。

3. ROM512k, RAM32kのマイコンで、スタックサイズ12kとかは異常でしょうか?
  大きくしておけば良いかな、と思いまして。

4. 実際のスタックサイズを測定する方法はありますでしょうか?
  ○○レジスタの値を見に行けば良い、とかです。

よろしくお願いします


132 :774ワット発電中さん:2011/01/31(月) 01:24:08 ID:/mYl4AqO
>>131
1. c
2. yes
3. ijou
4. suman


133 :774ワット発電中さん:2011/01/31(月) 01:43:32 ID:5eqbCPLV
さっそくありがとうございます。了解しました。大変助かりました。

スタックサイズですが、
5. 実際には、long int配列(32bit)を1000個とか取ってあり、それを関数内部で処理したいので、
関数を呼ぶときにスタックに4000byteが消費され、さらにprintf()で1000byteくらい?消費しますし、
タイマー割り込み、SCI割り込み、外部割り込みなどが来た場合、
それらで必要とするテンポラリの合計byteが、最低必要なスタックサイズだと思いっています。
この考え方は、合ってますでしょうか?

6. 関数内部で、printf()を呼ぶ回数の多い少ないは、スタックサイズに影響しますでしょうか?
  1回より5回だと5倍のほうがスタックを消費するとかです。たぶん違うと思っていますが。


134 :774ワット発電中さん:2011/01/31(月) 09:29:11 ID:Ppa1Z55b
バグりまくってまともに動かないだろうな
そんなコードじゃ

135 :774ワット発電中さん:2011/01/31(月) 10:18:11 ID:c3MZkKqy
HEWにスタック計るツールついてなかったっけ?
ネストだっけ?

>>133
そんなデカい配列を、普通のエリアに配置してないのか?

136 :774ワット発電中さん:2011/01/31(月) 10:54:29 ID:4Qnn7MJ+
>5. 実際には、long int配列(32bit)を1000個とか取ってあり、それを関数内部で処理したいので、
ローカルに確保して、ポインタとかで参照したほうが...
>6. 関数内部で、printf()を呼ぶ回数の多い少ないは、スタックサイズに影響しますでしょうか?
呼ぶ回数はあまり関係ありません。printfに渡す引数の数がスタックサイズに影響します。

もっと、基本的なことからやり直したほうがいいような

137 :774ワット発電中さん:2011/01/31(月) 12:30:40 ID:HXCeY8ov
マイコンでprintfを使うこと自体に・・

138 :774ワット発電中さん:2011/01/31(月) 14:22:56 ID:WIxn3hgM
printf() のほうはできあいのを使う以上はしょうがないと思うけど
関数に配列を渡すときは、先頭アドレス(ポインタ)だけを渡すのが常識だよ

139 :774ワット発電中さん:2011/01/31(月) 14:34:59 ID:WIxn3hgM
というか、1000個の配列の値をスタック経由で渡すのって、普通には
書きにくいはずなんだけど、どう書いてるの?

140 :774ワット発電中さん:2011/01/31(月) 14:48:15 ID:WIxn3hgM
あ、ゴメン勘違い ^^;
配列を関数の中で Auto変数として確保してるから
関数が呼び出された時点でスタックを消費するっていうことね。
こういう使い捨ての大きな配列は、パソコンなんかだと malloc() 使うのが常識だと思うけど、
組み込み用途では malloc()で領域確保できなかったらどうする? っていう問題がある。

まあ、関数呼ばれてないときは無駄になるけど、静的に(関数外から見えないようにするなら
関数内部で static 変数として)確保するか、自分で管理して他と共用する領域を使うかだと思うよ。

141 :774ワット発電中さん:2011/01/31(月) 16:09:29 ID:8wXB18rp
>>131
あなたの頭の中で、やるべきことをいい加減に変換してない?
もっと具体的にやること書いてみなよ。

142 :774ワット発電中さん:2011/01/31(月) 20:18:17 ID:prIUjCaB
>>140
H8SもCall Walker っていうツールで、スタックの使用状況を調べられるはず。
使ったことはないけど、それでサイズのある程度、あたりが付けられると思ったが。

RAMが32Kもあれば、printf 使うのも通常は問題ないし、デバッグ時だけ
コードを生成し、実行時はコードを生成しないようにすれば問題ないでしょう。

1000個のデータが関数の中で使い捨てなら、auto変数でかまわない。
関数の中で配列データ使い捨てという状況はあまりないから、データを
静的に確保する場合が多いとは思うけど。

143 :774ワット発電中さん:2011/02/01(火) 00:39:39 ID:HfGGgEDH
まあ、再帰・再入しなければスタックの使用最大値は関数のcall tree から
予測できるはずだから、スタック=自動 malloc() だっていう考えもあるかも
ただ、当初はスタックサイズに気をつけてたのが、色々修正・追加してるうちに
そのこと忘れてしまってて原因不明の誤動作で悩んだりしそう

144 :774ワット発電中さん:2011/02/05(土) 00:08:55 ID:eoz5KKqA
割り込みが発生して出力がでると思うのですが無反応です.
アドバイスお願いします.

環境は
H8SX 1655
High-performance Embedded Workshop4
です

#include <stdio.h>
#include <stdlib.h>
#include <machine.h>
#include "iodefine.h"

#pragma interrupt (inthdr_pulend (vect=119))
{
P2.DR.BIT.B5=1;
}

void pulse(unsigned char pulse_cycle,unsigned char pulse_count )
{
set_imask_ccr(1);
MSTP.CRA.WORD = 0xEDFF; // disable module stop mode
TMR0.TCORA = pulse_cycle; // set pulse cycle time
TMR0.TCORB = pulse_cycle/2; // set "low"pulse time
TMR1.TCORA = pulse_count; // set pulse counter
TMR1.TCCR.BYTE = 0x08; // Initialize TCCR2
TMR1.TCSR.BYTE = 0x06; // initialize TCSR2
TMR0.TCSR.BYTE = 0x10; // initialize TCSR3
TMR1.TCR.BYTE = 0x09; // initialize TCR2
TMR1.TCR.BYTE = 0x4c; // initialize TCR3
TMR0.TCNT = 0; // reset counter
TMR1.TCNT = 0; // reset counter
set_imask_ccr(0);
}

void main(void)
{
unsigned char cycle;
unsigned char count;

P2.DDR=P2.DDR | 0x20;

cycle = 255;
count = 10;
pulse(cycle, count); // パルス出力
while(1) ;
}

145 :774ワット発電中さん:2011/02/06(日) 10:49:22 ID:v1IxQ+2L
>>144

> 割り込みが発生して出力がでると思うのですが無反応です.


割り込み発生の設定はどこでしてるの?

146 :774ワット発電中さん:2011/02/06(日) 16:56:56 ID:qXbNluxL
>>145
これで設定できていたと思っていたのですが・・・
どんな宣言がたりていませんか?




147 :774ワット発電中さん:2011/02/06(日) 17:31:01 ID:v1IxQ+2L
携帯で見てるので細かいことがわかんない。
1 割り込み時に実行するサブルーチンはどこで指定してる?
2 割り込み時頻度はどこで指定してる?
3 指定方法は正しい?

148 :774ワット発電中さん:2011/02/06(日) 17:56:51 ID:UYnuevRB
割り込み要因クリアしてないとか
P2.DR.BIT.B5=1;
でポート2のbit5の出力が固定だし...
初期設定があってるかどうかは自分で見直したほうがいいよ

149 :774ワット発電中さん:2011/02/06(日) 20:18:16 ID:KeO53hut
別スレから誘導されてやってきました。すみません、教えてください。
(C言語なら俺に聞けというスレに行ったのですが、ペースが速すぎて、ついて行けませんでした。
  なので、やっぱり電電に戻ってきて、H8スレにしました。すみません)

Cのポインタのが、本を何度読んでも理解できずにいます。
変な質問ですが、以下のものを教えてください。
--------------------------------
例えば、以下のような文章は、どのように読めば良いのでしょうか?

  unsigned int *SCI = (volatile unsigned int *)0x00808000;

1)符号無しint型(16bit)の
2)*
3)SCIという名前の変数を確保します。
    (0x0000〜0xffffまで読み書きできます)
4)消さないでよ→コンパイラ
5)符号無しint型の*
6)その実体は、0x00808000番地にある

わかりません。

------------------------------------
他の人からのレスです。
unsigned intを保管する会社SCIを設立し、倉庫の土地を0x00808000番地(埼玉県)に確保した状態

------------------------------------
私のレス
おー、わかりやすいですね。
すると、その倉庫に16bit値0x1234を書き込む時は、
SCI=0x1234
で良いでしょうか?

ここまでです。上記のような説明だと、すごくイメージが和久のです。
どなたか、教えていただけないでしょうか? 幼稚ですみません


150 :774ワット発電中さん:2011/02/06(日) 20:46:14 ID:UYnuevRB
やりたいことは
×SCI=0x1234
○*SCI=0x1234
だと思うけど

151 :774ワット発電中さん:2011/02/06(日) 22:23:51 ID:ULDYaNR+
>149
int i ;
とか宣言したときに、コンパイラは、メモリに変数領域を確保します。
これは、どの言語でも同じです。しかし、C言語以前の言語では、
メモリ上のどの番地に変数領域が割り当てられたかは分かりませんでした。

しかし、C言語は割り当てられた番地を知ることができます。それが
ポインタです。 この場合のポインタは、 &i となります。

C言語はポインタを変数としても宣言できます。ポインタ変数です。
int i = 0 ; // i は通常の変数で 1 で初期化
int *ptr ; // ptrをポインタ変数として宣言。初期化はされてない。

ptr = &i ; // 変数 iのポインタをポインタ変数 ptr にコピー
*ptr = 1 ; //

// *ptr = 1 は ポインタ変数ptrで示された番地に 1を書き込む。
// ptrには、iのポインタ(アドレスが入っているので)
// 結果的に i=1 としたことになる。

デバッガ等で各変数の値を見てみるとイメージしやすいと思います。
ここまでの話が分からないようだと、以下の話は分かりません。

unsigned int* SCI = (volatile unsigned int *)0x00808000;

と書き換えて説明します。 これでもコンパイルできるし、同じ動作です。

SCI は、 符号なしint ポインタ変数(unsigned int*) です。
ポインタ変数 SCI を アドレスの 0x00808000 で初期化しています。

通常の変数を宣言すると、ポインタ、つまり変数の格納番地は、
コンパイラが割り当てますが、上記のような宣言はポインタの
番地をプログラマが設定できます。

そうすれば *SCI=0x1234 ; で
0x00808000 番地に 0x1234 を書き込むことができます。

152 :774ワット発電中さん:2011/02/06(日) 22:56:02 ID:KeO53hut
>>150-151
どうもありがとうございます。
しっかりと説明していただいて嬉しいのですが、すみませんまだわかりません。というのは、

>int i ;
>とか宣言したときに、コンパイラは、メモリに変数領域を確保します。→納得です。

>メモリ上のどの番地に変数領域が割り当てられたかは分かりませんでした。→納得です。

>しかし、C言語は割り当てられた番地を知ることができます。→ここがわかりません。
int a; は、
コンパイラが自動的に、メモリのどこかに割り当ててくて、私たちには番地はわかりません。
が、それでいいと思うのです。配列にしても、b[10];と宣言したとき、
私たちには、メモリのどの番地から10個連続でも、また10個バラバラでも、関係なく
[添字番号]で指示すれば良いので、メモリの番地を知る必要がないと思うのです。

現在は、日立のヘッダファイルを組み込んで使っているので、アドレスを気にせずに
P1DR.BIT.B0=3; とかやっていますが、それはそれでポインタを使わなくても、
実現できているので、いいのかなと思っています。

なぜC言語では、突然ポインタが出てくるのか、それもわからないです。

なので、ポインタの嬉しさがわかりません。

会話になっていないかもしれません。    すみません。

153 :774ワット発電中さん:2011/02/06(日) 23:20:22 ID:UYnuevRB
P1DRうんたらって書けるように、ヘッダーファイルでdefineされてると思うけど
気にしたことなかったから、いざ聞かれると困る内容だな、個人的には

154 :774ワット発電中さん:2011/02/06(日) 23:40:22 ID:ULDYaNR+
>152
>>P1DR.BIT.B0=3; ...、それはそれでポインタを使わなくても実現できているので

誤解です。iodefine.h (違ってたら失礼。H8は最近やってないので)ファイルを
見てもらえば分かるのですが、ポインタの宣言を #define で置き換えて、見かけ上
ポインタを使ってないように見せかけているだけなのです。

>>ポインタの嬉しさがわかりません。

H8は、I/Oを特定のアドレスに割り当てています。(P1とかSCIがI/Oです)。
C言語以前の言語では、特定の番地への、データの読み書きができないので、
その言語だけで I/O操作用の処理を記述することが出来ませんでした。
(機械語のルーチンを呼び出すような処理を行っていた)

ところが、C言語では、ポインタを使えば特定のアドレスにアクセスできるため、
C言語だけでI/Oの操作が可能なのです。

I/Oとは何なのか、I/O操作とは何をすることなのかが分からないと、上記のことは
理解できないかもしれません。

155 :774ワット発電中さん:2011/02/07(月) 00:44:38 ID:klYdnhIN
>>154
ありがとうございます。たびたびすみません。

>I/Oとは何なのか、I/O操作とは何をすることなのかが分からないと、
良くはわかっていないかもしれませんが、こんなふうに理解しています。

I/Oを出力操作するというのは、I/Oピンからつながっている8個のD-FFの、Qを変化させることだと思います。
そのD-FFのclockは、H8のφにつながっていると思います。
そのD-FFのDは、H8内部のDataBusの[15:0]か[7:0]につながっていると思います。
D-FFのClockEnableは、
 「H8内部のアドレスバス」と「そのI/O(D-FF)のマッピングされているアドレス値」が比較され、
 同じだ!!という信号と、H8の/HWR(または/LWR)とが and された結果につながっていると思います。
 D-FFのOEは、同様に配置されたDDRレジスタ(実体はD-FF)のQが接続されていて、出力に設定されるとHが来ます。
同様に、入力の場合は、
 I/Oピンからの線が、D-FFのDに接続されていて、clockはφ、同じようにアドレスが判定された信号が
 DDRの出力と and されて、OEにつながっていると思います。
H8内部のすべてのモジュールや、レジスタには、アドレスが決まっている、と思います。

ここまでは何となくわかるのですが、ポインタを使う理由がわかりません。
日立が作ったio定義ファイルに、アドレスと、その呼び名の#defineがたくさん書いてあり、
私もそれを使っています。
しかし、main()とかのプログラムを書く上で、io定義ファイルをさわることも、覗くこともなく
プログラムが書けているので、ここであえてポインタを使うことがなく、
ポインタが良くわからないのです。


156 :774ワット発電中さん:2011/02/07(月) 01:27:33 ID:7IQLQKz4
>155
>>しかし、main()とかのプログラムを書く上で、io定義ファイルを
>>さわることも、覗くこともなく プログラムが書けているので
>>ここであえてポインタを使うことがなく、 ポインタが良くわからないのです。

要するに、C言語のポインタについての質問ではなく、あなたがポインタを使う必要が
あるかという質問でよいのでしょうか?

あなたにポインタが必要かというと、あなたの今の習熟度では必要ないと思います。

C言語で行うプログラミング・テクニックにはポインタの使用が必須のものもあるの
ですが、あなたの習熟度で、それを使うことは出来ないと思われます。

>>ここまでは何となくわかるのですが、ポインタを使う理由がわかりません。

理由は、>154 に書いてあるのですが。特定のアドレスにどうやってアクセスするか
ということです。C言語の場合は、ポインタ以外には方法がありません。
これでも分からなければ、理解するのはあきらめてください。

>>H8内部のすべてのモジュールや、レジスタには、アドレスが決まっている、と思います。

これは正しくありません。H8の場合レジスタにはアドレスはありません。

157 :774ワット発電中さん:2011/02/07(月) 01:39:06 ID:7IQLQKz4
>155
>>しかし、main()とかのプログラムを書く上で、io定義ファイルを
>>さわることも、覗くこともなく プログラムが書けているので

追加で言うと、
この考えに捕らわれすぎです。 >154 に書きましたが、
P1DR.BIT.B0=3;  などの記述は見かけ上 ポインタを使わずに出来ているだけなの
ですが、それを分かっていないし、分かろうともしない。

だから、ポインタを使わずにプログラミングできているとの思いこみから抜け出せない。
それで、ポインタはいらないのではないか、必要な理由が分からないという結論に
なってしまうのです。

自分の間違いを正すことです。自分の結論に周囲の人の説明を合わせようとするだけでは
正しく、理解することはできません。

158 :774ワット発電中さん:2011/02/07(月) 02:11:05 ID:9JE1W8i5
>>155
ポインタなんて、どうしても必要になるまで使う必要無いよ。
ポインタが使えない言語もたくさんあるんだし。

159 :774ワット発電中さん:2011/02/07(月) 03:17:38 ID:Ejjd6HuM
>>158
他の言語で使えないのと、C言語で使いたいのは違うきがするのだが
良くわからない慰めかただなw

160 :774ワット発電中さん:2011/02/07(月) 04:12:53 ID:mJ+QwfKd
>それで、ポインタはいらないのではないか、必要な理由が分からないという結論になってしまうのです。
ポインタをプログラマに置き換えると...

161 :774ワット発電中さん:2011/02/07(月) 07:42:12 ID:xxeNm0NL
ポインタが諸悪の根元のひとつ

という考えからJavaは生まれてきたのだけどね。


162 :774ワット発電中さん:2011/02/07(月) 09:47:44 ID:IoD6vHmU
何だこのバカ。
>ポインタを使う理由がわかりません
ポインタを使わないと記述できない処理があるからに決まってんだろ(苦笑。
ていうか記述が隠蔽されてるだけなのに「自分はポインタを使ってないのに
プログラムが書けてる、要らないんじゃね?」とか思っちゃうなんて
どんだけゆとり世代なんだよ。

>>161
「Javaにはポインタが無い」訳じゃないのはわかってて書いてるよな?


163 :774ワット発電中さん:2011/02/07(月) 10:08:22 ID:btgjZrA5
日本語で理解しようとしてるからね。
動かしながら、やるのが変な誤解をしなくていいと思うんだけど

164 :774ワット発電中さん:2011/02/07(月) 10:22:31 ID:wAIDuYvt
ポインタがわかりたいならアセンブリ言語で書いてみてはどうか。
C言語がどうやってアドレスを管理しているかが何となくわかるんじゃなかろか。
構造体ポインタとかは謎のままだけど。

私がポインタでよくやるのは、グローバル変数のある範囲の上と下をポインタでもらって
その間を for で1巡させて全クリアしてみたり、全カウントアップしてみたり。
これを普通にやるなら共用体を使うか、配列変数で嘘をつくか。

165 :774ワット発電中さん:2011/02/07(月) 11:31:26 ID:QFIHxif2
ポインタ難民がこんなところにw
専用スレもあるなあ・・

166 :774ワット発電中さん:2011/02/07(月) 13:27:31 ID:klYdnhIN
aは本当はaという名前の変数の値を格納してるアドレスなんだけど
プログラムでaと書くとaの中身そのもの(値)を指すことになってて
aという名前の変数のアドレスを明に使いたい場合は&a?
*aはaという名前の変数の値そのものを指すけどその値そのものがアドレス?

167 :774ワット発電中さん:2011/02/07(月) 18:48:22 ID:btgjZrA5
言葉で説明求めるより、自分がやりたいことを
コンパイル&実行して
やったソースと結果をどうこうの方が...

書くことは出来ても、読めないっていうのはどうなのかな?

168 :774ワット発電中さん:2011/02/07(月) 20:36:58 ID:mN7Extq3
>>166
なんか、言語なりポインタのスレにいくほうが幸せじゃないか?

同じ変数に対して、*と&を使うと思うから変になる。

変数宣言で a
ポインタ宣言で b
なら、
a と *b が同じ扱いで参照すると格納されたデータ
&a と b が同じ扱いで参照すると格納するアドレス
と思っておけばいいんじゃね?

ttp://www9.plala.or.jp/sgwr-t/c/sec10.html

169 :774ワット発電中さん:2011/02/08(火) 03:15:22 ID:nsLU6IF1
>>168
説明がうまい。わかりやすいです。

>同じ変数に対して、*と&を使うと思うから変になる。
なるほど、記号の使い分けが、じょうずにできていなかったんですね。

変数宣言で a
ポインタ宣言で b
なら、
(ちょっと補足すると)
a と *b が同じ扱いになり、参照した場合、どちらも格納されたデータが読める
&a と b が同じ扱いになり、参照した場合、どちらも格納するアドレスが読める


170 :774ワット発電中さん:2011/02/08(火) 07:46:42 ID:vjJ01UpL
>>169
半端なことすなや。168の方がいいぞ。
「読める」っておまえ、書くのはどうするんだよ。

171 :774ワット発電中さん:2011/02/08(火) 11:45:37 ID:usIY7oCY
参照って、書くという意味もあるん?

172 :774ワット発電中さん:2011/02/08(火) 12:41:32 ID:QPUkSZHJ
参照って普通「読む」じゃない?

とりあえず、書きかえるという動作がどういうことかをつまむと

変数は中身を読み書きするための据え置きの箱のようなものだから、中身はいつでも普通に読み書きできる。
箱の場所は判る(&a)が、場所が変わるのはおかしいので、アドレスが読めるのはいいがアドレスを書き変えるのはおかしい。

ポインタは(たとえば変数の)場所(アドレス)を指す(入れておく)ための『変数』だから、
アドレスを書き込めるのはアタリマエというか、じつは変数の中身がかわっているだけで、自身のアドレスはそのまま。

指されたアドレスが判る(b)のだから格納データも読み書き(*b)できるが、内部的には二度手間。

こんな感じかな?

173 :774ワット発電中さん:2011/02/08(火) 13:43:25 ID:usIY7oCY

1) unsigned int *SCI = (volatile unsigned int *)0x00808000;

2) unsigned char *SCI = (volatile unsigned int *)0x00808000;

3) unsigned int *SCI = (volatile unsigned char *)0x00808000;

4) unsigned char *SCI = (volatile unsigned char *)0x00808000;

5) unsigned char *SCI = (volatile unsigned long int *)0x00808000;

上の5つは、全部正解(あり得る)でしょうか?


174 :774ワット発電中さん:2011/02/08(火) 14:19:33 ID:vjJ01UpL
>>171
参照という言葉そのものには「書く」という意味はないが、目的のものを探し出すことを
「参照する」と言っているので、参照して書き換えるとかは普通にあるよ。


175 :774ワット発電中さん:2011/02/08(火) 14:45:30 ID:am4/Amyj
スレ違い。
ポインタの話してる奴はプログラマ板、質問主はメンヘル板行け。


176 :774ワット発電中さん:2011/02/08(火) 15:43:47 ID:vjJ01UpL
>>175
気をつけろよ。おまえもあぶないぞ。

177 :774ワット発電中さん:2011/02/10(木) 13:29:05 ID:Mm1oNjm8
unsigned int *SCI = (volatile unsigned int *)0x00808000; の、

(volatile unsigned int *)0x00808000; は、なんでカッコが必要なのでしょうか?

unsigned int *SCI = volatile unsigned int *0x00808000; ではいけないのでしょうか?


178 :774ワット発電中さん:2011/02/10(木) 15:23:32 ID:1SSZRA6e
まず教科書をちゃんと嫁っていうレベルだな

179 :774ワット発電中さん:2011/02/10(木) 15:45:43 ID:0blR8I61
>>177
もはやポインタ関係ないC言語の基礎だな。
このへんへどうか。
http://hibari.2ch.net/test/read.cgi/tech/1296984829/
http://hibari.2ch.net/test/read.cgi/tech/1190599975/

180 :774ワット発電中さん:2011/02/11(金) 03:24:18 ID:krAMkKcT
Cの話になると必ず教科書に載ってること聞いてくる奴が現れる
だから大嫌いなんだよ、この話題

181 :774ワット発電中さん:2011/02/11(金) 03:29:12 ID:MPbICT58
>>180
そう思ったら「〜という教科書の何章に書いてあるから嫁」って教えればいいだけだし。


182 :774ワット発電中さん:2011/02/11(金) 09:06:49 ID:nSKYL3zp
でも>>177の、なぜカッコがあるのか、の話は教科書に載ってないぞ。


183 :774ワット発電中さん:2011/02/11(金) 12:50:52 ID:qOk4B/Nw
カッコは型キャストだろ。載ってない教科書なんてあるのか?

184 :774ワット発電中さん:2011/02/11(金) 13:31:35 ID:7oHEQe0P
まだやってんのw
場違いが恥ずかしいって感覚ないんだろうなw

185 :774ワット発電中さん:2011/02/11(金) 14:41:18 ID:erWe+2q1
えっ? あのカッコがキャストのカッコ?
16進の数字を伽過渡するの? え〜っ??


186 :774ワット発電中さん:2011/02/11(金) 15:20:43 ID:12h18+lk
(unsigned)-1

187 :774ワット発電中さん:2011/02/11(金) 16:39:29 ID:jV2nOPRm
今、秋月の3048を学習中で今は割り込みについて色々と調べているところです。
環境はwindows2000,GCC developer lite,9pin---25pinのコードです。
強制的に書き込みモードに変更する方法はないでしょうか?

http://www.takamisawa.org/gcc/ledintr.html
のtest_interrupt.tgzにあるコードのincludeを『3048S.h』から『3048.h』に変え、
GCC developer liteにてコンパイル、Flash writerにて書き込みました。

その動作とコードを比較し終えて別のコードを書き込もうとしたのですが、
何故か書き込みモードにしても、プログラムが動きます(LEDが点滅)。
また書き込み環境も色々変えてみたのですが書き込めませんでした。
別の人(共同で学習中)のボードでは書き込めるので、ハード要因なのは間違いないです。

タイミング悪く、書き込んだ直後に故障してしまった可能性もあるのですが、
もし二段落目が要因だった場合、何か対処法はないでしょうか?

188 :774ワット発電中さん:2011/02/11(金) 22:45:41 ID:12h18+lk
モード変更して、リセットしてないとか?

189 :774ワット発電中さん:2011/02/20(日) 23:42:37.65 ID:+uPWt5ru
秋月でR8Cを取り扱うようになったので試してみようと思うけど、
ライターは何がいい?

190 :774ワット発電中さん:2011/02/20(日) 23:49:22.74 ID:RXR6IgNK
UART書き込みじゃないの?
ソフトはFlashStarterLightとかだったかな?

191 :774ワット発電中さん:2011/02/21(月) 13:39:50.41 ID:V6y/WSgG
教えてください

Cでマイコンソフトを書いたとき、状態遷移が20個くらいあったとします。
各状態での処理は、10〜15行程度です。
main()でそのまま書くと、300行くらいになります。

上記のような場合、main()が300行にもなるのは
「main()は簡潔に、全体の動作がわかるように書く」という思想に反すると思います。
しかし、各状態を関数に出すと、各引数が10個も15個もあり、また返り血も1個では済みません。
関数化すると、読みにくくなるような気もします。

一般論として、こういう場合はどのようにすればよいのでしょうか?


192 :774ワット発電中さん:2011/02/21(月) 13:54:22.17 ID:DOTEGFU8
>>191
ぷろぐらまースレで聞いた方が幸せな内容だと思うが。

引数と戻り値を全部テーブルなり共用体にして、ポインタ渡ししちゃだめなのか?

193 :774ワット発電中さん:2011/02/21(月) 16:49:33.12 ID:V6y/WSgG
なるほど、ありがとうございます。
そのような手法を使っても、やはりmainは簡潔にしたほうが良いですか。
確かに「ベタで長く」なりますが、mainにあってもいいのかな、と思うですが。

>ぷろぐらまースレで聞いた方が幸せな内容だと思うが。
とも思いましたが、組み込み系Cの作法と、画面Cの作法と違うので?と思いました。

ありがとうございます。


194 :774ワット発電中さん:2011/02/21(月) 17:07:53.88 ID:lIeJrCBp
>>193
作法は同じマイコンでもいろいろあるしねえ。
mainをキレイにするってのは管理の問題。
ようは何にそれがいるのか次第でいいと思うが。


引数なんかあんまり使わずほとんどグローバル宣言で使いまくる俺。

195 :774ワット発電中さん:2011/02/21(月) 18:37:46.58 ID:aZ5qX9L8
状態遷移がこなれてないから、悩んでるような?

196 :774ワット発電中さん:2011/02/21(月) 21:12:05.55 ID:gemAbRUv
設計から見直すべきだろうな

無理やりでっち上げても不幸になるだけだ


197 :774ワット発電中さん:2011/02/21(月) 22:21:44.51 ID:RdgAxaw4
>195
>>状態遷移がこなれてないから、悩んでるような?

状態遷移は手順の制御だけだから。質問者は、データの扱いに悩んでいる
と思われるのですが。

>196
>>設計から見直すべきだろうな

もっともだと思いますが、質問者には適切な設計をするノウハウがない
ようなので、見直ししろでは解決にならないような。質問者からすれば、
どういう設計をすればいいか、教えてほしいということではないでしょうか。

198 :774ワット発電中さん:2011/02/21(月) 22:33:49.42 ID:NGnGc/1F
あー
確かに長いmainになった気がする
しかもネストも深くて異様に読みにくい
できる範囲で関数に切り出したな

199 :774ワット発電中さん:2011/02/21(月) 23:44:42.55 ID:aZ5qX9L8
状態遷移っていっても、やり方なんて無数にあるのに(ターゲットもわからない)
それを教えてと言われても...

俺流な変態的考え方が理解できるとも思えないし(どう教えたらいいのかって感じ)

200 :774ワット発電中さん:2011/02/21(月) 23:55:39.59 ID:aZ5qX9L8
関数化するときに必要最低限の引数にする(なしもあり)とか
(で、参照回数が少ない変数はstaticな変数にする)

関数の返り値でどの状態にいるかを返すところからやって
main処理を考えるとか

201 :774ワット発電中さん:2011/02/22(火) 14:42:46.80 ID:FEV/Qjzf
そういう手間をかけてまで、関数化することもないと思う。
mainで長くなってもいいじゃん。
ダメなの?
#include で、外部ファイルにするのは良くやる。
引数だ、返り血だ、と考えなくてもいい。
RAMに余力があるなら、static、グローバル変数 いっぱい使う。


202 :774ワット発電中さん:2011/02/22(火) 15:08:24.89 ID:eCnKmFNL
人によるんでないの
俺は50行くらいが許せる限界かなあ

まあ関数化するためにパラメータを引数と別に渡すなんてことやらかすなら
もっと長くてもいいからまとめて欲しいが




203 :774ワット発電中さん:2011/02/23(水) 14:10:34.22 ID:gzkGdxtz
mainすっきり

main()
{
   main1();
}

main1()
{
    ・・3000行ぐらい
}

204 :774ワット発電中さん:2011/02/23(水) 19:54:58.52 ID:Pp/AONqj
3000行にわたるようなソース、見たことないし。
どうやったら3000行も書ける?
わかった、コメント//いっぱいか。

205 :774ワット発電中さん:2011/02/23(水) 22:50:59.62 ID:y40v3E4H
UI部分を書くと雑多な事が多すぎてどんどん行数増える

206 :774ワット発電中さん:2011/02/24(木) 11:52:31.95 ID:4SjXoC7o
こういうのがある
と思ったら少し足りないか
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.10.3.html

自動生成させりゃ簡単に作れるが


207 :774ワット発電中さん:2011/02/26(土) 21:31:05.01 ID:t1vdU4fm
コード規約で行数制限するところもあるし、静的解析ツールを使うことを
義務づけているところもあるんで、行数の多い関数が許されない場合も多いよね。

静的解析ツールを使うとワーニングが出まくるんで、苦労する。
使ったことのない人は、お前のプログラムがヘボだからとか言うんだろうが。

普通の感じで書いたら、出まくりなんだよね。こんなことを文句言うかってのもあるし。
言うとおりに変えたら、別のワーニングが出て。どうすりゃいいんだって感じなんだよね。

覚えているのは、関数のパラメータをポインタ渡しにしていなかったら、ポインタにした
ほうが速いとかメッセージが出たんで、そのとおりにしたら、ポインタの安全性は
確保できているかってメッセージが出たこと。

これなんかは、どっちにころんでもワーニングが出るんで消しようがないと思うんだが。

208 :774ワット発電中さん:2011/02/26(土) 21:38:02.32 ID:It8NxsOI
そこまで道具に頼らないといけないのかいな?

209 :774ワット発電中さん:2011/02/26(土) 22:13:52.28 ID:Ex1zDxOl
関数いっぱい作って、ガンガン呼びまくってもいいけど、
処理速度が遅くなって困る。
可能なら、関数コールなしでいきたい。


210 :774ワット発電中さん:2011/02/26(土) 22:17:16.42 ID:nby5wwKx
一ヶ所からしか呼ばない何も渡さない関数だと、コンパイル結果ではcallになっていなかったり

211 :774ワット発電中さん:2011/02/26(土) 22:32:23.66 ID:Ex1zDxOl
>>210
なるほどぉ。それは気付かなかった。

LCDの駆動ルーチンなんて、関数呼びまくりですよね。
mode7で動かすと、clockの↑↓を、ポートで叩かないといけない。
LCDのためにmode5にするなんて、I/Oポートもったいない。なんとかならないですかね。

H8を高速にしても、LCD表示器がついてこないのがほとんどですが。
結論的には、超高速なLCD表示器が欲しいというところです。

212 :774ワット発電中さん:2011/02/27(日) 03:14:36.88 ID:1KhFzlDB
関数化を推奨してる人もいるけど、
なんでもかんでも関数化すればいいってことは無い。
あっちこっちのソースを見なければ行けないので、見にくくなることがある。


213 :774ワット発電中さん:2011/02/27(日) 03:15:54.13 ID:QMGjSBRs
見とうしの悪い設計する人がまだいるんだ

214 :774ワット発電中さん:2011/02/27(日) 07:56:48.01 ID:7s6WqZ67
構造化設計のことを知らなくても、関数への分割くらいは、不勉強なやつでも
知っている場合が多い。そのため、余程 不勉強か頑固なやつじゃない限り、
長大な関数を作ることはないようだ。

しかし、モジュール強度の考え方を知っているのは多くない。

処理を関数に分けるのは簡単なので。むしろ関数で処理をずたずたにされた
プログラムのほうが良く見かける。

 だいたい、そういうプログラムはやたらとグローバル関数を使うので、
大体すぐに分かる場合が多い。

 その場合、プログラムの、あっちこっちを見ないといけなくなり、無駄に
関数の長いプログラムよりも、よりたちの悪いプログラムになる。

215 :774ワット発電中さん:2011/02/27(日) 08:05:59.04 ID:7s6WqZ67
>214

>>だいたい、そういうプログラムはやたらとグローバル関数を使うので、
^ ^
グローバル関数 --> グローバル変数 の間違いだった。

自分の経験した範囲だと、へたなプログラマはグローバル変数の多用を
好む場合を良く見る。

いわゆる優秀なプログラマにもグローバル変数を多用するのもいる。

一くくりにはできないが、そういう人には、記憶力もよくてデバッグ能力が
あったりするので、凡人には難解なプログラムを書いたりするのもいる。

216 :774ワット発電中さん:2011/02/27(日) 09:15:07.05 ID:wQP6WsFD
グローバル変数はマイコンレベルだとむしろ積極的に使った方がいい気がする

217 :774ワット発電中さん:2011/02/27(日) 09:57:42.43 ID:7s6WqZ67
>グローバル変数はマイコンレベルだとむしろ積極的に使った方がいい気がする

こういう人は自分の周りには、いて欲しくないなー。

マイコンレベルでもC言語で数万行なんてのも、もう珍しくないしね。
RL78でも、最高 ROM 512Kらしい。このレベルだとライブラリを使わなければ、
10万行をこえても不思議はない。

マイコンレベルってのをどういうレベルと思ってるんだろうね。

グローバル変数の多用は、自分に言わせれば設計の放棄だね。適切に設計を
すれば、グローバル変数は、ほとんど必要ない。

無造作にグローバル変数使っているプログラムだとグローバル変数が数百なんて
のもあって、目を覆いたくなるときがあるよ。

とはいえ、メモリがとっても厳しい場合はあるんで、使わざるをえないときも
あるが、積極的に使うべきではないと思う。

218 :774ワット発電中さん:2011/02/27(日) 12:23:37.33 ID:uOX/ctRK
え、100円マイコンでなんか作ったくらいのレベルでは。
仕事じゃあキチンとしてないとダメだわな。

219 :774ワット発電中さん:2011/02/27(日) 14:57:23.99 ID:wQP6WsFD
アセンブラで書く仕事とかどうなるんだ

220 :774ワット発電中さん:2011/02/27(日) 15:07:10.03 ID:/kvnelfT
機械制御系のプログラマとして入ったが、扱うデータが多すぎてほとんどグローバル変数だった。
当然、アクセス順序やフラグ管理が徹底的に決められていたけど。

221 :774ワット発電中さん:2011/02/27(日) 15:30:42.18 ID:QMGjSBRs
今時は、関数に隠蔽して、そこでグローバル変数アクセスでしょ。
速度がほしい時は、inline展開するようにすればいいし

ローカルですむ変数は直アクセスな書き方するな

222 :774ワット発電中さん:2011/02/27(日) 17:38:34.46 ID:7s6WqZ67
>220
アクセス順序やフラグ管理を徹底的に決めるって方法は、一般的に仕様の追加や
変更等で破綻しやすい。

グローバル変数じゃないと処理できないってプログラムは、よくよくよく見ると、
機能の分割がまずくて、データを局所化できなくなっていることも多い。

使い方にもよるが、フラグで管理する方法は、バグを生みやすい。
というのは、どんなに優秀でも同時に管理できるフラグは、たかだか 5つくらい。

例外はあるだろうが、一般的には有効とはいえない手段ではなかろうか。

>722
>>今時は、関数に隠蔽して、そこでグローバル変数アクセスでしょ。
なにが、今時なのかわからないけど(苦笑)。いや、自分の周り以外は
なかなか見えないんで。ちゃかしているわけではない。

1箇所にまとめると、変更で全体がコンパイルされるから時間がかかるし、
やり方が分からないんが。一言いえば、どうしてグローバル変数にしないと
いけないの?

223 :774ワット発電中さん:2011/02/27(日) 18:15:44.92 ID:wQP6WsFD
割り込みの関数が書き換える変数はグローバルにしないと作りようがない

224 :774ワット発電中さん:2011/02/27(日) 18:24:12.47 ID:CUJUqcNJ
>222
goto談義でもよくある混同だが、

大域変数を使いまくる奴にバカが多い
というのと
大域変数を使うのはバカである
という主張は別なんで、ちゃんと分けてくれんかね。

スコープの管理が関数の上はファイル単位しかないCでは
大域変数を使うのはスコープ管理が雑
と言われてもしかたない面はあるが、同じ理由で完全に無くすこともできんよ。





225 :774ワット発電中さん:2011/02/27(日) 18:37:22.48 ID:QMGjSBRs
関数に隠蔽
って、昔から言われてたんだけど、実際に使ってたのを見たことなかったんだ

linuxのkernelとかはヘッダーで変数アクセスをinline関数化してるけど

226 :774ワット発電中さん:2011/02/27(日) 19:22:53.87 ID:7s6WqZ67
>224
どっちに対しても、別にバカなんて言ってないし、どっちを対象している
というわけでもない。なので、混同はしてないですが。

オブジェクト指向でないC言語で、情報の遮蔽とかは難しい。
とはいえ、構造化設計でもモジュール強度とかの考え方はある。

無条件にグローバル変数の使用をよしとするのは違うと感じている。

無理やり、グローバル変数の使用を少なくする必要はないと思うが、
情報の局所化を考えて設計していけば、それほど必要ないとも思う。

という、自分としては常識的な主張をしているつもり。
主義主張に合わないからと言って、バカよばわりはしませんよ。

さらに言えば、狂信的にグローバル変数の追放を主張しているつもりもない。

227 :774ワット発電中さん:2011/02/27(日) 22:28:59.06 ID:mFggJLuS
ま、ケースバイケースじゃないかと思うんですが…
いいグローバル変数もある、だけど、悪いグローバル変数もある、って感じかなあ

228 :774ワット発電中さん:2011/02/27(日) 23:03:53.12 ID:5SMp8Ggu
>>222
> 1箇所にまとめると、変更で全体がコンパイルされるから時間がかかるし、

C言語で書く場合、グローバル変数の実体(定義)を1つのソースファイルに
まとめて、他のソースは、グローバル変数のextern 宣言だけを含むヘッダ
をインクルードして参照すれば、変更による再コンパイルは最低限で済む
のでは? 少なくとも、参照解決はリンカの仕事。

それとも、特定コンパイラ依存のインクリメンタルコンパイルの話とか?

>>225
関数内に隠蔽というのは、関数内で変数をstatic付きスコープが関数内しか
ない変数として定義することを指しているのでは?

>>226
> オブジェクト指向でないC言語で、情報の遮蔽とかは難しい。

グローバル変数をstatic付きで宣言して、分割コンパイルすれば、他のソース
からは、C言語でもグローバル変数を隠蔽化することはできるよ。そのままでは
クラスオブジェクトみたいに、複数のインスタンスは実現できないけど。

> 無理やり、グローバル変数の使用を少なくする必要はないと思うが、
> 情報の局所化を考えて設計していけば、それほど必要ないとも思う。

同意。グローバル変数を多用しているソースの多くは、本来なら関数の引数
や、関数の戻り値として渡すべきものを、グローバル変数で渡している場合
が多い。ほとんどの関数が、引数も戻り値もvoid。(w

いろいろ見てきて、制御系はプログラマの質が低い印象がある。

229 :774ワット発電中さん:2011/02/27(日) 23:24:29.04 ID:QMGjSBRs
書き方っていうよりは考え方でどうするかって事だから
そのへんを突っ込むと宗教論争みたいになるような

230 :774ワット発電中さん:2011/02/27(日) 23:56:55.35 ID:7s6WqZ67
>228
>>C言語で書く場合、...

余計なことを書いたんで、誤解されているかな。 そういうのは自分もやってるよ。

 >>222 今時は、関数に隠蔽して、そこでグローバル変数アクセスでしょ。

と、>222 の書き込みがあったので、 本当は、
関数で遮蔽しておいて、グローバル変数は無意味じゃないと言いたかったんだけどね。

>>グローバル変数をstatic付きで宣言して、分割コンパイルすれば...

同じことはやっているけど、言われているような理由でいまいちな感じはぬぐえないんだよね。

>>いろいろ見てきて、制御系はプログラマの質が低い印象がある。

低水準のプログラムは難しいからね。いわば土俵が違うので、一概にはいえないのでは。
それに、参考にできるようなソースや書籍って意外とないんで、自習するのも難しい。

制御だと一から作るような場合も結構多いし。 かなりのものが用意されているOSの下の
プログラムとは難しさの性質が違うと思うんだよね。

231 :774ワット発電中さん:2011/02/28(月) 01:23:31.78 ID:Htnp8z+z
void
hoge_set(void)
{
extern int hogehoge;
hogehoge=1;
}

232 :774ワット発電中さん:2011/02/28(月) 22:58:22.61 ID:FGybXWPa
マイコンレベルでpcの様なモジュール単位のプログラムしても非効率なだけだと思うけどね。

233 :774ワット発電中さん:2011/02/28(月) 23:04:40.18 ID:817Be7+L
?

234 :774ワット発電中さん:2011/02/28(月) 23:27:48.42 ID:Kp9COssp
スイッチとか液晶とかがあってUI部分を組むと無駄に肥大化するけど、
単に信号処理するだけの石ならでかいmain()一個で書いた方が素直にできる

235 :774ワット発電中さん:2011/02/28(月) 23:56:51.04 ID:817Be7+L
非効率って
実装作業のことなのか、マイコン動作のことなのか?

236 :774ワット発電中さん:2011/03/01(火) 06:14:43.75 ID:qT0Fl8Xk
>232
>>マイコンレベルでpcの様なモジュール単位のプログラムしても非効率なだけだと思うけどね。

モジュール化には、速度やサイズのペナルティはあるが、程度は少ない。

逆に、全体の見通しが良くなり、無駄な処理を省きやすくなる。小手先だけの対策よりも
高速化や省メモリできる場合が多いし、その効果も大きい。

速度よりもバグで苦しむケースの方が圧倒的に多いので、つまらない"効率化"よりも"可読性"を
重視するのが、今時のプログラミングですよ。

得てして、そういうコードの方が、効率が良かったりする。モジュール化されてないようなコードは
無駄な処理で遅かったり、それ以前にバグだらけで使えなかったりすることも多い。

2Kとか4Kとかのおもちゃレベルのプログラムなら別でしょうが。マイコンレベルとは、その程度の
レベルのコードを言っているのですかね?

237 :774ワット発電中さん:2011/03/01(火) 09:56:12.86 ID:H1F7IpnE
きっと電源制御やモータ制御のプログラムを一度も書いたことがないんだろうな

238 :774ワット発電中さん:2011/03/01(火) 19:10:53.35 ID:qT0Fl8Xk
>237
>>きっと電源制御やモータ制御のプログラムを一度も書いたことがないんだろうな

モーター制御って、普通にみんなしていることなんですかね?
電源制御プログラムを、書いたことある人なんて、ほとんどいないんじゃない。

マイコンレベルと書いたのと同一人物かどうかは知らないけど、そんなニッチな領域の話を
"マイコンレベル"とするのは、無理があるでしょう。

モジュール化だけではないが、パフォーマンスに余裕があれば、いろいろな手法を使える。

というのは、時間の制限がゆるい、あるいは、限られた処理の時間の制約を満足すれば、
普通にプログラムできる。そういう処理の割合の方が圧倒的に多いので、可読性を上げるような
手法が有効な場面は非常に多い。

処理的にきついときでも、安易にプログラムの高速化手法に頼るのはリスクが大きい。
他の解決法にすべきって場合はあるんだが、これでやれってのが多いのは、確かにある。

それでも、可読性、移植性、コーディング規約、静的解析ツール、設計レビューのしばりは、
よくあるんで、モジュール設計なしに許される場合は、決して多くはないと思う。

239 :774ワット発電中さん:2011/03/01(火) 22:09:53.55 ID:ZTO2TeA9
Cで自由に書ける時点で、もうマイコンレベルを超越してる気がする

240 :774ワット発電中さん:2011/03/02(水) 02:03:57.44 ID:2dyj8m8g
ユーザーのストレスを軽減する目的で、その存在をも気付くことはないのなら
プロダクツとしての完成度は高いと言えよう(キリリッ

241 :774ワット発電中さん:2011/03/02(水) 05:51:50.15 ID:IgcY12XK
教えてください。

H8をC言語でプログラム組んでいます。
signed unsigned の扱われ方が知りたいです。
例えば
singned char A;
unsigned char B;

A = -127; // 10000000
B = A;  // Bの中身は? 0x80でしょうか

B = 5;  // 00000101
A = -1;  // Aの中身は? +5でしょうか


242 :774ワット発電中さん:2011/03/02(水) 07:46:47.95 ID:2dyj8m8g
charは-128〜127の範囲だよ。-0が有り得ないから
PA-0〜PA-7に出力してはいかがか

243 :774ワット発電中さん:2011/03/02(水) 11:53:20.13 ID:CqmFVvNO
んなこと人に聞いてないで
ルネサスCでシミュレータデバッガで自分の眼で確かめれ

244 :774ワット発電中さん:2011/03/02(水) 17:14:12.74 ID:avdzRUdV
>>283
モータ制御がニッチだって???
きみは組込プログラムの持つ一面を全く知らないことに気づくべきだな

245 :774ワット発電中さん:2011/03/02(水) 17:15:31.36 ID:avdzRUdV
↑訂正>>238

246 :774ワット発電中さん:2011/03/02(水) 19:16:50.63 ID:GggUmwHy
>244
そりゃどうも、どんなプログラムであれ、知っている分野なんて僅かなもんだ。
電源制御てのがあったので、ニッチという言葉を使ったが、some of them という
言い方が正しいか。

ステッピング・モータ、ACサーボモータは使ったことがあるけどね。
ACサーボは、専用基板を使ったんで、コマンド送るだけだったが。

モジュール化できないのか、しないほうが良いと言いたいのかは分からないが
いったい、どんなモータ制御のことを言っているのでしょうか。モータ制御って
くくりじゃいっぱいあると思うんですが?

単純に、ハードの設計が良くないか、結構特殊な案件の気もするが。
モータ制御って、そんなプログラムばかりなんでしょうか?

247 :774ワット発電中さん:2011/03/02(水) 19:35:36.96 ID:avdzRUdV
>>246
>ACサーボは、専用基板を使ったんで、コマンド送るだけだったが
その専用基板の中で一生懸命制御しているCPUのファームのことだよ
実際君が使ったことあるように、小型民生機器から車や電車に至るまで
身の回りに溢れてるよ

特にグローバル変数に関する書き込みをみてると
ああやったことない人なんだなというのがわかる

248 :774ワット発電中さん:2011/03/02(水) 20:01:30.33 ID:GggUmwHy
>247
ありゃ、ずいぶん早いお答え。 そんな感じの制御とは思ってはいたけど。

自分の分野でも何が正解かとは言えないし、ましてや知らない分野だからな。
当事者がそういうんならそうでしょうとしかいえないですな。

別の人の話も聞けると面白んでしょうが、なかなかそういう訳にもいかないからな。

同じ機器でも、実際にプログラムする人によって違うので、一意見として
受け止めるべきでしょうな。

いい加減を言っているというわけじゃないが、サンプル1だからね。

249 :774ワット発電中さん:2011/03/05(土) 18:31:10.20 ID:Uvh/Mc5X
アセンブラでレジスタで変数を保持したまま廻すならともかく、きょうび
グローバル変数にしたから処理が早くなったなんて、まずないよね。

もっと見直すべき場所がある。


250 :774ワット発電中さん:2011/03/06(日) 08:27:50.58 ID:NVeSsH2c
PxDR <<= 1;
とか書いてる私にはグローバル変数減らせと言われても無理。


251 :774ワット発電中さん:2011/03/06(日) 09:49:02.95 ID:wDCLQCvy
グローバル変数を使わない人は、ポートの入出力とか、機能の設定とか
どうやってるんだろ

252 :774ワット発電中さん:2011/03/06(日) 10:22:21.64 ID:CgO4ZHwx
>グローバル変数を使わない人は、ポートの入出力とか、機能の設定とか
>どうやってるんだろ

I/Oボートは、グローバル変数とは、通常みなさないだろうな、仕様書には
変数リストなんてのもあるけど、I/Oボートをグルーバル変数として載せた
仕様書にはさすがにおめにかかったことがない。

そんな、ことを考える人がいるんだというのは、新鮮な驚きだね。

253 :774ワット発電中さん:2011/03/06(日) 10:46:04.18 ID:kxzeKYvS
会社で言われた通りの事をするのが仕事だと思ってる人はたくさんいるぞ

254 :774ワット発電中さん:2011/03/06(日) 10:58:25.67 ID:quyYN7uD
会社で言われたコーディング規則を守らないのかお前は

255 :774ワット発電中さん:2011/03/06(日) 11:03:16.19 ID:2gBpHpJc
>>252
> I/Oボートは、グローバル変数とは、通常みなさないだろうな、仕様書には
> 変数リストなんてのもあるけど、I/Oボートをグルーバル変数として載せた
> 仕様書にはさすがにおめにかかったことがない。

そうなんだけど・・・動作的にはグローバル変数だよね。
どの関数からも制約無しにアクセスできるのグローバル変数と同じじゃない。

>>254
大企業とその系列の会社はルールが厳しいらしいね。




256 :774ワット発電中さん:2011/03/06(日) 12:02:14.18 ID:UTtxDjA6
コーディング規則の縛りなんて、わかってない奴のたわごとだろ

257 :774ワット発電中さん:2011/03/06(日) 12:31:22.09 ID:CgO4ZHwx
>255
>>そうなんだけど・・・動作的にはグローバル変数だよね。
>>どの関数からも制約無しにアクセスできるのグローバル変数と同じじゃない。

I/Oポートのグローバル宣言は必須ではない。宣言の仕方を変えて、特定の
ファイル内でしか参照できないようにすることもできる。

I/Oの宣言がグローバル宣言のインクロードファイルとして用意されている
場合が多いので、それを使っているのと、単にグローバル宣言にしたほうが、
プログラムが作り易い、そのぐらいの理由。

ローカル変数以外の特定のメモリアドレスに割り当てられていて、かつ
グローバルではない変数は、(static 宣言されてい変数とか)C言語の文法上
参照できないだけ。アドレスを直接指定すれば、アクセス可能なので、
I/Oボートと本質的に事情が異なるわけではない。

258 :255:2011/03/06(日) 13:16:17.27 ID:2gBpHpJc
>>257
I/Oポートもローカル化した方が可読性もあがるしデバッグもしやすいと。
・・・書けそうにないなそんなプログラムw

259 :774ワット発電中さん:2011/03/06(日) 14:22:11.76 ID:CgO4ZHwx
>258
>>I/Oポートもローカル化した方が可読性もあがるしデバッグもしやすいと。

そんなことは、どこにも書いてないけど。可読性というよりは、可搬性つまり
移植性かな。きままに、I/Oボートにアクセスされたプログラムを移植するのは
大変だからね。

I/Oの処理を機能ごとに関数にして直接ポートにアクセスしないようにすれば、
移植の手間は大分少なくなる。結果的に、プログラムの品質も向上する。

260 :774ワット発電中さん:2011/03/06(日) 15:17:31.22 ID:wDCLQCvy
どこからでもアクセスできるレジスタを、特定の関数からしかアクセスしないようにするのは、
移植とか改造が楽になる工夫ではあるけれど、ちっとも万全ではない

グローバル変数を使用していないことの証明は簡単だけれど、
特定の関数以外でレジスタ操作をしないことを、将来の改造にまで徹底するのは無理

それに、例えば何かのフラグを監視する処理があちこちで発生しているとして、
それを下請けさせる為にみんな関数化していたら、スタックをどんどん消費して
マイコン向きでなくなる

結局、低レベルの処理を記述しないといけないプログラムで、グローバル変数を過度に気にするのは、
部屋の半分だけ掃除するような、あまり意味のない行動

261 :774ワット発電中さん:2011/03/06(日) 15:25:52.77 ID:UTtxDjA6
馬鹿がスタック消費するとか言ってるよ

262 :255:2011/03/06(日) 15:55:58.03 ID:UfWvayKp
Z80からH8に移植するときに関数アクセスからレジスタ直に書き換えたな。
「せっかくメモリーマップドアイオーになったから」という理由でw

>>259-260
参考になった。
H8も一部無くなるみたいだから移植性は考えるようにする。



263 :774ワット発電中さん:2011/03/06(日) 16:03:43.01 ID:CgO4ZHwx
>260
>特定の関数以外でレジスタ操作をしないことを、将来の改造にまで徹底するのは無理

これが正しいとすると、世の中にデバイス・ドライバというものは、おそらく存在
しないと思うよ。マイコンだって、I/O処理をデバイスドライバ化することはある
からね。無理ではないと断言して良いでしょう。

>スタックをどんどん消費して

僕は馬鹿なんて言わないけど、スタックに入るのは、戻り先のアドレス、関数の
パラメータ、ローカル変数。関数が多いのは関係ない、関数のネストは関係ある
けどね。関数のネストを際限なく多くするとか、ローカルで大きな配列をとるとか
しない限りは、RAMの小さいCPUでなければ、あまり問題にはならないよ。

>結局、低レベルの処理を記述しないといけないプログラムで、グローバル変数を過度に
>気にするのは、部屋の半分だけ掃除するような、あまり意味のない行動

I/Oの処理とグローバル変数とのことがごっちゃになってる。書いたことが、
正しく伝わってないようだね。

264 :774ワット発電中さん:2011/03/06(日) 20:51:32.40 ID:wDCLQCvy
スタック不足で泣く泣く関数を呼び出し元に展開した経験がないと見える

265 :774ワット発電中さん:2011/03/06(日) 20:56:21.96 ID:UTtxDjA6
仕様できるRAMが厳しいのあったけど、スタック不足で悩んだことはないな。
メモリ食いな設計はしない方なので...

266 :774ワット発電中さん:2011/03/06(日) 21:08:32.95 ID:CgO4ZHwx
>スタック不足で泣く泣く関数を呼び出し元に展開した経験がないと見える

スタック不足、つまりはメモリ不足。CPUの選択が適切でないだけで、
何の自慢にもならない。それを避けてこそ、賢いエンジニア。

ぎっちぎっちのメモリに無理やり押し込んだ、なんて、しょせんは無駄な労力。

267 :774ワット発電中さん:2011/03/06(日) 21:41:32.51 ID:9+xa8KJu
経営判断で1ランク下のCPUを選択するとか
外付けRAMを無くして基板を小さくするとか普通にあると思うけど。
「経営側を説得できないのは・・・・」とか「そんなところは辞めて他へ・・・」と言われそうw

購入品の代金や電気代とかうるさいくせに人件費には疎い人多いよねorz


268 :774ワット発電中さん:2011/03/07(月) 00:10:33.98 ID:CYjXXi1L
きょうび、 >>267 みたいな社員をリストラして、1ランク上のCPUで外注
した方がずっと安上がりなのに。


269 :774ワット発電中さん:2011/03/07(月) 00:16:18.99 ID:Wg78gV6X
論理の破綻が半端無いな
いい加減、非を認めろよ

270 :774ワット発電中さん:2011/03/07(月) 06:34:27.88 ID:+8z2gcMB
昔の挑戦玉入れは、スタックオーバーフローでがっちり

271 :774ワット発電中さん:2011/03/07(月) 09:28:21.17 ID:jzKBZ1Vr
製造が万単位なら十分ペイ出来る範囲では

272 :774ワット発電中さん:2011/03/07(月) 10:57:23.94 ID:M86IVJkO
そんな所でやっつけな設計しないべ
特注対応で機能追加したら足りなくなったとかなら
まだありそうだが


273 :774ワット発電中さん:2011/03/11(金) 13:48:40.63 ID:BVI0sReB
2218U
自分に割り振られたUSBデバイスアドレスを
ファームウェアが知る方法を教えてください。

274 :774ワット発電中さん:2011/03/21(月) 00:28:38.72 ID:rTXMxsDD
すみません

このスレ営業してますか?

275 :774ワット発電中さん:2011/03/21(月) 14:02:56.50 ID:6Xqgp3bQ
USBはよー知らんけど
マイコンから見たら、ただのデータでは?
ハードウェアマニュアルをよく読みませう。

276 :774ワット発電中さん:2011/03/21(月) 15:16:59.56 ID:IRry6x0J
昔、USBサポートのない石で、ドライバを外付けして繋ごうとしたが、ハンドシェイクがめどすぎて投げた俺。
なんでUSBのプロトコルのマニュアルってあんなに判りづらいんだ…

277 :774ワット発電中さん:2011/03/21(月) 17:16:30.60 ID:kzwLavZP
>>273
マニュアルざっと見た限り、そういうレジスタは用意されてないな

んで、なんでその情報が必要なんだ?
モジュールが全部面倒見てくれているように読めるが






278 :774ワット発電中さん:2011/03/26(土) 22:12:27.41 ID:seCSdZgV
>>277
レスありがとうございます。

Windows 5.2以下で、まったく同じ文字列デスクリプタを返すデバイスが
複数接続された場合に不具合が出るため、シリアル番号文字列デスクリプタに
アドレス情報を乗せ、加工してから報告できないものかと考えてのことでした。

ちなみに、この不具合は
・文字列デスクリプタを報告しないと発生しない。
・Windows 6.0以上では解消されている。
です。

アクセス禁止領域にあるレジスタからでも読み取れないかなぁ
と思い質問しました。

カッコつけて文字列デスクリプタを報告するのを止めます。

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

279 :774ワット発電中さん:2011/03/27(日) 12:08:06.29 ID:2brfwJve
文字列ディスクリプタを固定(ROM)で持たず、sprintf関数みたいなので、
RAM上に動的生成すれば済む話の気がするが?


280 :774ワット発電中さん:2011/03/27(日) 12:37:10.24 ID:tyxc7Dm5
パソコン側のソフトの振り分けがいい加減とかじゃねえの

281 :774ワット発電中さん:2011/03/27(日) 15:48:21.68 ID:d069hlV4
そもそも2台遣う事を想定してないだけだろ。
usb-vgaアダプタと同じ。

素直にメーカ変えて2個挿せばいいと思う。

282 :774ワット発電中さん:2011/03/28(月) 02:14:09.76 ID:cyuShQoz
>>279
「同じ文字列を生成しないことを保証する」必要があるため、
USBデバイスアドレスを採用しました。

>>280
Windows 2000/XP、Server 2003のバグに近い仕様と思います。

>>281
この場合「メーカ」は私・・・

283 :しつこく:2011/03/28(月) 02:21:59.51 ID:cyuShQoz
>>280
BUFFALOなどのマスストレージデバイスでも不具合が発生することを
確認しています。
まったく同じUSB R/Wを複数台購入する人は稀でしょうから、
問題が表面化していないだけと思います。

284 :774ワット発電中さん:2011/03/28(月) 18:01:04.21 ID:y0jQjIkr
Vista、7は大丈夫なのないかな?こっそり修正してたりして...

285 : [―{}@{}@{}-] 774ワット発電中さん:2011/03/28(月) 18:13:45.73 ID:u6GxIzdy
> Windows 6.0以上では解消されている。

ってあるからVista(6.0)と7(6.1)なら大丈夫なんだろう。

286 :774ワット発電中さん:2011/04/03(日) 10:59:29.80 ID:QU4ptM0v
XPだけど、シリアル番号を返さないUSBシリアルとか、まったく同じものを
複数個接続しても普通に使えているけど?

シリアル番号のストリングを返さない場合、繋ぐポートが変わると毎回ドラ
イバのインストールが要求されるだけで、その不具合は、特定デバイス固有
の上位ドライバ、またはアプリケーションソフト側の問題じゃないの?

287 :774ワット発電中さん:2011/04/04(月) 03:14:26.98 ID:euK7CGLJ
やっぱりそんなうんこハードでも、ドライバやアプリで回避は出来そうだよな。
ちゃんと対応アプリやドライバを提供しないメーカがへぼなだけだな。

288 :774ワット発電中さん:2011/04/07(木) 01:34:32.81 ID:wW9r1sFS
>>286
そのシリアルアダプタは、ベンダ文字列デスクリプタと製品文字列デスクリプタは返し、
シリアル番号文字列デスクリプタだけ返さないのか?
文字列を全く返さないんじゃないか?
であれば>>278

>>287
マスストレージの場合、NinjaUSBやそのOEMなんかを除けばMS謹製クラスドライバしか
使わんだろ。
BSCRA55U2 2台をルートハブ直結なら問題なしだか、それぞれを個別のハブ経由で接続
すると、ブルースクリーンになったり、システムリセットになったりする。

289 :774ワット発電中さん:2011/04/07(木) 15:20:47.21 ID:B/BJMQgX
USBハブは使い方によっては危ないだろ

290 :774ワット発電中さん:2011/04/08(金) 19:33:04.52 ID:vGOor1rD
Vista/7では改善されてるから
明らかに2000/XP/2003の不具合。

291 :774ワット発電中さん:2011/04/08(金) 19:35:54.64 ID:vGOor1rD
えらくスレチになってしまいましたが、
2218Uでは自分に割り当てられたUSBデバイスアドレスを
ファームウェアが知ることはできないようだ
です。

292 :774ワット発電中さん:2011/04/08(金) 20:01:07.58 ID:tZsFFDJs
それって、USBホスト側が個別に管理するもんじゃないの?
ファームウェア側で選別しても、手順が狂うだけじゃあ

293 :YUI様:2011/04/11(月) 16:10:51.96 ID:J86qGUXX
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
YUIです

ワンタッチBBSをYAHOOで検索してください
サーチのボタンをクリックしてください
リンクの板名をクリックしてください
コンピュータの画像掲示板で板名を検索してください

FPGA CMOSの解説尽き回路図の基礎が出てきます
誰でも簡単に回路図は書けます

********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************
********************************************

294 :774ワット発電中さん:2011/04/12(火) 11:36:51.82 ID:ToNYTUr7
もういやだ

どのフラグがどこと論理取ってんのかブロック図だせ
推奨しませんとか設定出来ませんとかそんな説明はいらん

なんでもかんでもタイマーユニット連ねて解決させるとか
いい加減やってらんねーんだよ

と思ったらH8系は新規採用推奨しませんって…

295 :774ワット発電中さん:2011/04/13(水) 14:03:29.72 ID:e7l24ua/
>なんでもかんでもタイマーユニット連ねて解決させる
これって、どういう意味ですか?

296 :774ワット発電中さん:2011/04/17(日) 04:18:36.40 ID:bd3km59l
個人使用、H8に限定していいから
もっと安くHEW使いたい

297 :774ワット発電中さん:2011/04/17(日) 15:11:41.32 ID:1NjqjiD0
腐った会社が嫌で技術本位の会社を立ち上げるひとも多いね。実力あれば大学・研究室
からは相手にされるから、「おれは優れてるが会社が糞だ」と思うなら早く辞めなよ。

298 :774ワット発電中さん:2011/04/17(日) 20:31:53.96 ID:bd3km59l
HEWで依存関係がうまく更新されないんだけど、仕様?

299 :774ワット発電中さん:2011/04/18(月) 09:32:29.07 ID:yv+aKzGB
>>297
大学・研究室なんて世間知らずのクソだよ
そんなのあてにして起業したら地獄を見ることになるぞ

300 :774ワット発電中さん:2011/04/18(月) 23:06:17.96 ID:BxUe4puO
次から次へと仕事をくれるわけないしな


H8/300 記念パピコ

301 :774ワット発電中さん:2011/04/21(木) 00:43:18.49 ID:/vsvVDCd
CC38H.exeって変数の大文字小文字区別してくれるよね?

302 :774ワット発電中さん:2011/04/21(木) 17:59:59.44 ID:74/aGPE0
古そうなアセンブラなら区別しないかも

303 :774ワット発電中さん:2011/04/21(木) 18:23:00.46 ID:ijw7p0Eu
教えてください

H8/3067は、25MHzで36mAの電源消費電流になっています。
これをもっと低消費にしたいです。
クロックを下げれば良いと思っていますが、およそ比例関係になるのでしょうか?
例えば、5MHzだと7mAとかです。
宜しくお願いいたします

304 :774ワット発電中さん:2011/04/21(木) 21:02:02.57 ID:74/aGPE0
25MHzとか逝ってる時点で、マニュアルとか読みませんと逝ってるような?

20MHz(5V) max 100mA
10MHz(3V) max 51mA
13MHz(3.5V) max 66mA

305 :774ワット発電中さん:2011/04/22(金) 02:56:44.02 ID:DTjDH6gk
>>303
ありがとうございました。
3067てなくて、3069でした。僕の間違いでした。すみません。
また、表の下に計算式が載っていました。気がつきませんでした。

3067って、3069よりもたくさん食うんですね、初めて知りました。


306 :774ワット発電中さん:2011/04/22(金) 10:45:57.45 ID:srOwRWmW
クロック周波数が速いほうが消費電流が大きいなら、
CISCとRISCを比べると、RISCの方が消費電流が多いんだろうか?


307 :774ワット発電中さん:2011/04/23(土) 01:47:08.85 ID:KoFz49QU
新しいほうが性能の割りに消費電力が少ない
低消費にしたいならRXに切り替えろ

308 :774ワット発電中さん:2011/04/23(土) 02:49:36.98 ID:eh7U9a5b
H8S1655って、トラ技で去年本が出たばかりだけど、
ルネサスのページに行くと、RX その他 という2つのくくりの、
もう その他の中なんだね。
RXっていいですかね?

309 :774ワット発電中さん:2011/04/23(土) 03:08:19.28 ID:fpX8lGp3
乾電池使用で何時間も放置する様な使い方だと
こんなマイコンでも消費電力が気になるものなのかな

310 :774ワット発電中さん:2011/04/23(土) 05:32:37.54 ID:eh7U9a5b
気になる、気になる。
clock落とせばいいけど、処理も遅くなるので、
H8(CISC)でも10MHz以上で行きたい。
しかも、周辺部品が5V系なので、マイコンだけ3.3Vというのも・・・・
H8Sなんて100mAだもの。やめてよって感じ。


311 :774ワット発電中さん:2011/04/23(土) 10:01:45.65 ID:sOUuqvek
RXの入手性が良ければすぐにでも切り替えたいが
数個単位で2カ月以内に小口購入ができるものってあるの?
見積出したことのあるやついたら、品番と納期おしえてくれ
通販や小売でも可

312 :774ワット発電中さん:2011/04/23(土) 10:06:07.80 ID:sOUuqvek
・・・と思ったら秋月にあった
http://akizukidenshi.com/catalog/g/gI-04713/

どっちかというと62Tが欲しいんだが、まあいいや
とりあえず次の案件で使ってみよう

313 :774ワット発電中さん:2011/04/23(土) 12:52:52.10 ID:eh7U9a5b
で、結局ルネサスの今の「店長のイチ押し」って、何?
R8Cも、いつのまにか撃沈、H8S16xxは終わったみたいだし、
RXシリーズ?
SHはどうなのかな? よく知らないけど。


314 :774ワット発電中さん:2011/04/23(土) 13:12:34.08 ID:6rbYUhin
>> 311
俺も同じ事考えてたんだが、秋月に入ってる!
昨日見た時にはなかったのに
サンキュ

315 :774ワット発電中さん:2011/04/23(土) 13:13:55.82 ID:6rbYUhin
でも良く見たら100ピンか
144がホスイ

316 :774ワット発電中さん:2011/04/24(日) 01:47:55.22 ID:LLJjrZ11
YOU、いい加減諦めてARMにしチャイナYO!

317 :774ワット発電中さん:2011/04/24(日) 02:06:22.12 ID:lMf65Puy
安易にarmというのもどうかと

318 :774ワット発電中さん:2011/04/24(日) 03:21:52.06 ID:br9r1UuW
armは国産じゃないから抵抗有るね。
vr復活しないかなあw

319 :774ワット発電中さん:2011/04/24(日) 10:02:17.61 ID:LLJjrZ11
旧NECのVRってMIPSじゃなかったっけ?それとも、ブイエムテクノロジーの
こと?


320 :774ワット発電中さん:2011/04/24(日) 11:09:25.19 ID:S4p5QBY1
ARMの良い点がわからない。
↓こんな感じ
http://kamome.2ch.net/test/read.cgi/denki/1286785843/293-


321 :774ワット発電中さん:2011/04/24(日) 15:27:56.59 ID:ps4XsEc6
ARMっていってもどこのメーカにする?
STM??イマイチ供給に安定感がない。

ただコアが共通なだけで、メーカ間のチップ互換はなく
そのまま載せ替え出来ないんだから、ほとんど意味ない。

安定感といえばPICだが・・・

322 :774ワット発電中さん:2011/04/24(日) 17:26:24.34 ID:W2VsjE8R
俺もそう思う。震災でマイコンが作れない、じゃあNXPの物にしようか、とかできないなら
H8/3067でやり抜くのも同じ

323 :774ワット発電中さん:2011/04/24(日) 18:44:53.13 ID:LLJjrZ11
コアが共通といっても、現在数多く出回っているもので、ARM7/9/11, Cortex-M0,
Cortex-M3, Cortex-A8とか、種類が沢山あるし、まぁ用途や性能でまちまち。

周辺機能の互換性に関する問題については、CMSIS (Cortex Microcontroller
Software Interface Standard)という規格準拠のライブラリを各社が提供する
ことで、チップ毎の周辺ハードの差を吸収しようという方向らしい。

NXPはかなり安い値段を出してくるようだね。

324 :774ワット発電中さん:2011/04/25(月) 14:05:08.70 ID:Uf5bUrOO
フィリップスか。
あんまり良い記憶がないんだよなー。

325 :774ワット発電中さん:2011/05/07(土) 14:43:55.98 ID:nNA0wV4B
>>303
>クロックを下げれば良いと思っていますが、およそ比例関係になるのでしょうか?

YES
クロックと消費電流は比例関係


326 :774ワット発電中さん:2011/05/21(土) 15:38:42.28 ID:rX1+ZA7r
教えてください。
H8マイコンでCを勉強しています。 

SPI I/FのICから、測定結果32bitを受け取る部分を作り、受信することができました。
ところが、測定値が固定小数点なのですが、これをフロート変数に入れる方法が分かりません。
小数点フォーマットは整数16bit+小数点以下16bitという固定長の構成です。
こんなふうに考えました。

unsigned long ulrxdata;
float fdata;

fdata = ((float)ulrxdata) / 65536.0;  // 普通にこれで良いのでしょうか。


327 :774ワット発電中さん:2011/05/21(土) 16:07:12.86 ID:NegGNCkv
浮動小数点にしないでそのままで使えるようなこと考えたほうが...

328 :774ワット発電中さん:2011/05/21(土) 17:03:44.40 ID:rX1+ZA7r
>>327
ありがとうございます。
はい、整数で扱う方が処理が早くてよいとのことですね。本に書いてありました。
ただ、1度はfloatでしゅょりする方法を知っておきたいと思っているのです。

イメージでは、16.16ですので、32bit全体で
MSBから順に、2^15 2^14・・・と来て、8 4 2 1 (小数点) 1/2 1/4 1/8・・・と来て最後は1/65536、
つまり1/65536が、いくつあるかの個数を32bitで表現したものかな?と思っています。


329 :774ワット発電中さん:2011/05/21(土) 17:07:11.91 ID:NegGNCkv
適当に書くけど
2バイトだから、内部的には10進数で0〜10000じゃないの?

330 :774ワット発電中さん:2011/05/21(土) 17:09:33.15 ID:NegGNCkv
10000じゃなくて9999かな?

331 :774ワット発電中さん:2011/05/21(土) 18:00:36.80 ID:rX1+ZA7r
BCDではなくbinaryですので、65535〜0 , 0.5〜1/65536
あるいは
+32767〜0 , 0.5〜1/32768 と
-32768〜0 , -0.5〜-1/32768
かなと思っていますが、どうでしょうか。

332 :774ワット発電中さん:2011/05/21(土) 18:06:25.79 ID:NegGNCkv
2進数で考えると頭痛くなりそうだけど
そういう基本的な固有のことに答えられる人はいないと思うよ
だから、適当って逝ってる

333 :774ワット発電中さん:2011/05/21(土) 22:14:12.35 ID:E+ssgQsV
>>332
本当に適当だなw

>>331
普通、それで合っているはず。

具体的に「SPI I/FのIC」の型番を晒せば
もう少し確実な話ができると思うけど。

334 :774ワット発電中さん:2011/05/23(月) 14:55:47.81 ID:rXctnk2g
すみません

H8SXの同期シリアルコミュニケーションで
送受信を同時にやるにはどうしたらいいですか?

データシートには同時にオンにしれって書いてあるのですが.
クロックが出ません・・・



335 :774ワット発電中さん:2011/05/23(月) 15:03:31.53 ID:BoKWJlkV
>>334
同時じゃなかったら出るのか?

336 :774ワット発電中さん:2011/05/23(月) 15:12:02.41 ID:rXctnk2g
>>335
送信は出ます

受信にするとクロックは入力になるってそれはそうだと思うのですが
もどきでいいのでSPIのようにしたいのです

でもデータシートには同時が可能ってあるので、どう意味なのですか?



337 :774ワット発電中さん:2011/05/23(月) 15:29:13.75 ID:rXctnk2g
あげちゃってごめんなさい

338 :774ワット発電中さん:2011/05/23(月) 20:51:19.73 ID:iNT3Q/dP
マニュアルの同期シリアルの部分をよく読みませう。

339 :774ワット発電中さん:2011/05/23(月) 23:02:09.04 ID:6qJoo0Ja
>>338
レスありがとうございます
ご指摘の通り、なにかを見落としてるきがするんです

TEとREを同時にフラグ立てる(イネーブル)とあったので
論理和でSCRレジスタを設定しました。
(TE・REイネーブル)

そうすれば送信時に受信バッファ(シフトレジスタ)に入ると
思っていたのですが読むと、そういうことじゃないような…

もう一度よく読んでみます。

340 :339:2011/06/01(水) 19:42:17.07 ID:nsPM7Jjc
なにをやってもレジスタに入らないので、もっと別の問題と思い
初期化ルーチンを見直すと、ICRビットの設定ミスでした。
(汎用IOと共用しているためIOイニシャライズでは無効にしてて
モジュールオンにしたら有効になるとおもってた・・・)

SCIもイレギュラーな使い方をしてるので、データシートが言葉じゃなくて
どのフラグがどれと論理取ってるのかブロック図が欲しい・・・

341 :774ワット発電中さん:2011/06/01(水) 21:33:32.52 ID:dmXnNmcQ
ICRとMSTPCRの設定ミスで無駄に悩むのは
ルネサスCPUを使う人のお約束なのです


342 :774ワット発電中さん:2011/06/01(水) 21:41:03.98 ID:i3U0ThGE
モジュールストップレジスタの記述は、どうしてあそこまで分かりにくいのか。
各機能には1行ひょろっと書いてあるだけだし、当のレジスタの説明には各機能の説明が無いし。

343 :774ワット発電中さん:2011/06/02(木) 02:44:06.23 ID:CS/1RAQJ
教えてください。

秋月のH8/3069基板を使って工作しています。電池でうごかしています。
もっと長持ちさせるために、クロックを遅くしたいです。
しかし日立のデータシートには、10MHz未満では動きません、と書かれています。

ここで質問です。
この10MHz未満はNGの原因は、H8に内蔵の水晶発振回路の問題と考えれば
よいでしょうか。つまり、内蔵発振器はやめて、外部に発振器を付けて矩形波を
H8に入れてやることで、10MHzより下でも動くと思うのです。
マイコンとは言えゲートロジックなので、遅い分にはいいだろうと考えています。

だめでしょうか。


344 : 【東電 58.8 %】 忍法帖【Lv=3,xxxP】 :2011/06/02(木) 03:34:50.41 ID:MyJ5HlkX
その前に求める省電力が得られるかを検証しておいたほうがいいんじゃないかと。

もろもろで1000ma必要なのを500ma魔で落としたいのか、250ma魔で落としたのかにも因るし。
省電力版h8の検討もしたほうがいいと思う。

345 :339:2011/06/02(木) 23:53:01.27 ID:KgZG2pAX
はい、ルネサス系は初めてっす

去年最強のマイコンだよってC級出版が言ってたので
SX付録号を2冊購入しており、ようやくいじり始めました


最強でいいんですよね?

346 :774ワット発電中さん:2011/06/03(金) 07:45:24.97 ID:S7L7OeE4
>>345
去年最強のマイコン − 間違い
20年前最強のマイコン − 正解

347 :774ワット発電中さん:2011/06/03(金) 18:58:29.41 ID:tYGvZJdY
8086系から移行してH8やった時、
省電力機能が付いてただけでも感動した覚えがあるw


348 :774ワット発電中さん:2011/06/04(土) 02:47:03.23 ID:OIU/Vw7p
>>343
H8シリーズは設計が古いんで、CPU内部んPレジスタ等が完全なスタティック
回路ではなく、一部にダイナミック前提の部分があるんでないの?

要は、リフレッシュが必要なDRAMと同様、常時クロックを与えて動作させ
ていないと、データが化けてしまう。 理由は、今ほど集積技術が進んで
いなかった当時、トランジスタ数(≒ダイ面積)を減らすためにそういう設計
にしていた。

特段珍しいわけではなく、CMOS版じゃない古い8bitのマイコンも、標準で
1MHzとか4MHz動作だけどやっぱり最低動作クロックの規定があった。

349 :774ワット発電中さん:2011/06/04(土) 03:04:31.43 ID:qAb+LDMz
そういえばZ80とかも「最高4MHz」「最高2.5MHz」など何種類もあるが、
最低200kHzぐらいの下限もあったっけ。8086とかも同様だった気が。

350 :774ワット発電中さん:2011/06/04(土) 04:23:02.61 ID:p3W1XEI+
教えてください。

H8などのマイコンで、SPI接続のA/DとかD/Aなど相手に通信をするとき、
SCLK, SS, MOSI, MISOなどの通信線を、ポートて叩いています。
ところが、波形を見ると、のんきにHLしています。もっと速くやってよ、といいたくなるほどです。

#define SPI_SCLK P1DR.BIT.B0
#define SPI_SS   P1DR.BIT.B1
#define SPI_MOSI P1DR.BIT.B2

void SPI_CLK(){
  SCLK = 1'b1;
  SCLK = 1'b0;
}

void DA_out( unsigned char d ){
  SPI_SS = 0;

  if( d & 0x80 ){ SPI_MOSI = 1; } else { SPI_MOSI = 0; }  SPI_CLK();
       :  8bit分繰り返す
  if( d & 0x01 ){ SPI_MOSI = 1; } else { SPI_MOSI = 0; }  SPI_CLK();

  SPI_SS = H;
}

こんな感じです。波形出力が遅くて困っています。

オシロで波形を見ると、CLOCKなどは、
__|~|__________|~|__________という感じで、間があいて、時間的にもったいなく感じます。
特にif()でデータのH/Lを決める部分などに時間がかかってしまうようです。
ADやDAの時間規制は単位がnsですが、そんなの、全然心配いりません。余裕で遅いからです。

みなさんも、マイコンでSPIだと、普通ポートで、HとかLとかやっているのでしょうか。
だとすると、遅くて困りません? 
何か速く通信できる方法は無いでしょうか?

351 :774ワット発電中さん:2011/06/04(土) 10:32:58.53 ID:ge/mGQoN
>>350

Cなんか使わずアセンブラで書け。


あとは、外付け回路が必要になるけど、SCIをクロック同期モードで使うとか。

352 :774ワット発電中さん:2011/06/04(土) 12:20:00.13 ID:jZxg9FFm
SCIでSPIができるの?


353 :sage:2011/06/04(土) 12:48:00.51 ID:9EvS+hZv
SCIでSPIのデバイスと接続したことあるよ。
SPIはMSBファースト、SCIではLSBファーストしかできなかったのでTableでbitリバース。


354 :774ワット発電中さん:2011/06/04(土) 13:35:53.00 ID:+26DMFRv
よく回路屋さんがSPIデバイスをCPUのSPIポートにつないでくれるんだけど
アナデバとかのDACで1回のデータ長が14bitとか中途半端で結局使えないことが多い。
そんな時はI/Oポートにして使うしかない。

355 :774ワット発電中さん:2011/06/04(土) 13:49:12.42 ID:dzPJ9K22
ポート叩いてやり取りすれば、マイコンの動作周波数の影響をもろ受けるでしょう
早くしたいのなら、ソース見直して自力で早くするようなこと考えないと...

356 :774ワット発電中さん:2011/06/04(土) 14:32:12.62 ID:CkvqanXD
>>352
これだ
http://documentation.renesas.com/jpn/products/memory/apn/rjj05c0005_hn58x25xxxapn.pdf

357 :774ワット発電中さん:2011/06/04(土) 15:54:43.11 ID:7HVPCIAg
>>350
H8SXだけどSCIモジュールでSPI12MHz出来ました
シフトレジスタにもちゃんと入ってます

遊びで規格外の設定・使い方なのでどうするとかないけど
一応そんなことが出来ました

358 :774ワット発電中さん:2011/06/06(月) 00:00:31.63 ID:UM1yiukt
http://japan.renesas.com/products/mpumcu/h8/h8300h/h8300h_landing.jsp

新規ご採用につきましては、 H8S ファミリ、またはH8SX ファミリの製品等をご検討ください。
H8/3069Fが、、フラッシュ多くて良かったのに、、

H8S、H8SX (とSHのローエンド) も近いうちにそうなるような気がするんだが、、
みんなRXに行く?
それともARM?PIC?

359 :774ワット発電中さん:2011/06/06(月) 01:32:50.87 ID:K0VtIvhV
デバイス完成度、開発環境との親和性から言えば、日立の製品が良いと思う。
ただ、最近はARM ARMとうるさいので、検討はしている。

360 :774ワット発電中さん:2011/06/07(火) 16:48:42.36 ID:7ALukTl8
H8Tinyはすでに蚊帳の外か

361 :774ワット発電中さん:2011/06/08(水) 03:09:44.14 ID:GW2nFhYI
マシン語で闇雲につくるより、RTOS(HOS V4)に対応しているH8は捨てがたい。
でもルネサスはH8/300H撤退方向なんだよな。
残念。

362 :774ワット発電中さん:2011/06/08(水) 09:58:24.85 ID:39CVXkHj
SHでよくない?安いし

363 :774ワット発電中さん:2011/06/08(水) 22:30:42.47 ID:9aMtb3AR
各自に似たようなもん作ってても仕方ないような

364 :774ワット発電中さん:2011/06/14(火) 02:18:09.37 ID:2ofFkkKS
気持ちがSH2/7045に動きかけてる

365 :774ワット発電中さん:2011/06/14(火) 04:12:21.43 ID:8s23Ey2o
sh2ってh8ほど手頃だっけ?
sh2までいくならpcでもコスト的によくね?ってなってしまうw

366 :774ワット発電中さん:2011/06/14(火) 06:34:47.65 ID:5oH1wAYr
たしかに高いけど秋月で簡単に手にはいるから

367 :774ワット発電中さん:2011/06/14(火) 19:46:46.82 ID:KRX0hvHC
ITRONのライブラリファイルをメイクするのに手間取った。
パスは通さなきゃ行けないし、Unix系のコマンド(cp, rm)をウィンドウズのそれに置き換えるのに多少手間喰った。

368 :774ワット発電中さん:2011/06/14(火) 21:55:20.73 ID:tlGTxZI8
白鳥じゃだめなの?

369 :774ワット発電中さん:2011/06/15(水) 00:23:12.23 ID:S4EQMuwY
白鳥って?
スワン?

370 :774ワット発電中さん:2011/06/15(水) 20:55:12.60 ID:JHL1H3sv
シグウィン

371 :774ワット発電中さん:2011/06/15(水) 23:10:30.24 ID:0qnTt1q6
ああ。了解。
それでもいいけど、cygwinあまりすきじゃないからなぁ。

372 :774ワット発電中さん:2011/06/16(木) 14:54:13.42 ID:iABra1/f
じゃあインてリックスとかw
シグウィニョリも険しいけどw

373 :774ワット発電中さん:2011/06/18(土) 23:30:04.71 ID:rP7sP/+n
結局SuperH/7045でITRON(HOS)をとりあえず動かすのには成功したけど
サイクリックハンドラがまともに動かなかった。
タイマは豊富にあるのでコンペアマッチ0をシステムタイマ、コンペアマッチタイマ1で10msごとに
割り込みをかけて、1秒ごとにシリアルからシステムタイマの値を出力するのには成功したけど。
Toppersのほうがいいのかな。

374 :373:2011/06/19(日) 00:08:00.56 ID:74CIuxYD
もしやと思い、コンフィギュレータを再コンパイルしたらサイクリックハンドラを使えるようになった。
これで無敵だw

375 :774ワット発電中さん:2011/06/20(月) 18:38:18.87 ID:OKTjgoLR
H8ももう保守用にしか供給しないのか
何十年も第一線で活躍したZ80にはおよばないのか

376 :774ワット発電中さん:2011/06/20(月) 19:05:00.79 ID:Mpf+npaW
64180

377 :774ワット発電中さん:2011/06/21(火) 15:47:59.14 ID:2NVU12Q7
z80もイーサぐらい就いてないとなあ。
イーサ付きの8086辺りも欲しいけど、atomもどきでそんなの出さないのかな?

378 :774ワット発電中さん:2011/06/21(火) 17:10:04.42 ID:cK7U1gBZ
>377
Z80互換でイーサ付きの石があるとか聞いた気が...ラビットとかいったか?

379 :774ワット発電中さん:2011/06/21(火) 18:58:19.60 ID:R7TLFvZZ
Z80の汗でやる気はもうないなあ
64180もディスコンしたって聞いたの早かったけど実際は生きが長かったみたいっだった、20世紀の話

自分的にはH8(SH)との出会いは早かったほうだと

380 :774ワット発電中さん:2011/06/21(火) 19:47:30.65 ID:ok98Jhk0
俺も20年前、組み込みのソフトを書いていたときにH8の存在を知った。
その後、順調に普及するかと思ったが、価格が高いせいでまあまあの印象をうけた。
携わったことがあるだけにディス婚になるのは少々寂しい。

381 :774ワット発電中さん:2011/06/21(火) 20:24:14.63 ID:R7TLFvZZ
Cでかけて、ROM、RAMがそれなりで使い手があったんだけど、当時

382 :774ワット発電中さん:2011/06/21(火) 20:24:23.39 ID:v4hg8w49
R8C移行組は少数か?

383 :774ワット発電中さん:2011/06/21(火) 20:29:44.97 ID:wsfXO4NB
R8C使ってるけど、これも新規開発はされないんでしょ?
RL78とかに移行するとか

384 :774ワット発電中さん:2011/06/21(火) 20:30:59.10 ID:aMDKKYd0
秋月でたまたま100円で売ってるだけだからなあ
積極的に使う理由がない

385 :774ワット発電中さん:2011/06/21(火) 21:57:54.60 ID:9eLruhpr
>>377-378 イーサ付きのZ80

ラビットというのはこれだな。イーサは10BASE-Tなのでイマイチ。
http://www.digi.com/products/wireless-wired-embedded-solutions/software-microprocessors-accessories/systems-on-chip/rabbit4000.jsp#overview

本家ザイログにもイーサ付きのeZ80シリーズがある。
こちらは100BASE-Tなので問題なし。
http://www.zilog.com/index.php?option=com_product&task=product&businessLine=1&id=77&parent_id=77&Itemid=57


386 :774ワット発電中さん:2011/06/22(水) 07:16:33.69 ID:ohNmTkhH
50MHzのZ80ってだけ、お腹いっぱい

387 :774ワット発電中さん:2011/06/24(金) 07:34:22.22 ID:FElE6ZhK
>>385
Rabbit5000とかRabbit6000は内蔵で100BASE-T
Rabbit3000は外付けで100BASE-T

388 :774ワット発電中さん:2011/06/29(水) 05:57:21.84 ID:+K9MRrLj
すみません、3069のDMAについて教えてください。
スキャンモードでAN0〜3のA/D変換の結果をDMAでメモリに転送し、
終了後DMA転送終了割り込みをかけようとしています。

まず、DMAですが、
・DMA転送終了割り込みを有効にする(DTIE=1)
・A/D変換終了でDMAを起動する(DTSB=111)
・データ転送を許可する(DTE=1, DTME=1)

それから、A/Dを
・A/D変換終了で割り込みをかける(ADIE=1)

最後にA/D変換開始(ADST=1)すれば、、
A/D変換終了→DMA転送開始→DMA転送終了割り込み

になりますよね?今なぜか暴走してしまいます、、

389 :774ワット発電中さん:2011/06/29(水) 06:09:27.94 ID:KE7nbWw1
了解

つぎのかたどうぞ

390 :774ワット発電中さん:2011/06/29(水) 10:26:46.13 ID:5UYRsYaq
>388
それだと、A/D終了時に割り込みが入ったあと、割り込み処理中にDMA転送をして、
DMA転送後に重ねて割り込みが入るんだよな?

AD終了割り込みの処理ルーチンは存在してるかい?
DMA終了割り込みのルーチンだけだったりしない?



391 :774ワット発電中さん:2011/06/29(水) 12:36:24.13 ID:Jk2L04Sk
>390
いえ、ハードウェアマニュアルの15.5によると、DMAの起動要因になっているときは、
CPUへのA/D変換終了割り込みはかからないことになっているんです。

そのため、A/D変換終了割り込みのルーチンは作ってませんでした。
ちょっと試してみます。

392 :774ワット発電中さん:2011/06/29(水) 15:08:14.68 ID:qWPPCr95
DMA転送使わないとダメなのかい?

393 :774ワット発電中さん:2011/06/29(水) 17:00:58.74 ID:Jk2L04Sk
>391
A/D変換終了割り込みのルーチンを登録したところ、そこを呼び出しているのが確認できました。
A/D変換終了が、DMAの起動要因になっているときは、CPUへの割り込みはかからないハズなのに?
A/D変換終了をDMAの起動要因にしたときも、ADIEはセットする必要がありますよね?


>392
今まで、A/D変換終了割り込み内でADDRxの値を変数にコピー + その他処理を行っていたのですが、
これ以上速くするには、値のコピーをDMAにするしかない、と考えました。

394 :774ワット発電中さん:2011/06/29(水) 17:10:02.45 ID:qWPPCr95
割り込みがトリガーになって、DMAが動くんじゃなかったかな?
mov命令よりは早いけど、どうなんだろうね、数バイトの転送だと

395 :774ワット発電中さん:2011/06/29(水) 18:54:38.19 ID:vwy1S5HU
eepmov命令使えば?

あ、アセンブラできないの?
すまん、悪いこと言っちゃったかなwww

396 :774ワット発電中さん:2011/06/29(水) 22:43:06.89 ID:Js4XjPwb
よく知らんけどmachine.hに何かなかったか?

397 :774ワット発電中さん:2011/06/30(木) 12:51:46.97 ID:CEYjioMj
>>393
・DMA終了割り込みでDTIEをクリアしていた
・他の割り込み処理内で、割り込みを許可してなかった
のですが、それが原因ぽいです?
すみません。私がバカでした。


398 :774ワット発電中さん:2011/07/11(月) 08:32:10.64 ID:RukklGka
H8初心者です。
3052Fを使い、gcc(GDL)でプログラムを組んでいます。
外から受けた29bitsのシリアルデータに合わせたデータを吐き出すプログラムを組みました。
シリアルデータを受ける配列もintで29bits用意したんですが
クロックに合わせて際限なく読み込むために、大量のクロックを受けたときに際限なくデータを取り込み不具合を起こすようです。
プログラム上29bitsのデータしか受け取らなくし解決しました。
際限なくデータを取り込むとどのようなことが内部で行われているんでしょうか?
マイコンの動作を観察した感じでは、メモリ上に次々とデータを取り込むための配列を作り出しているようにみえます。
そして、メモリ上の他の変数を上書きしてしまい動作不良を起こすようなんですが
このような解釈で間違いないでしょうか?

399 :774ワット発電中さん:2011/07/11(月) 08:56:22.30 ID:XUl9k9Nt
H8関係なく
C言語のポインタの話になるので
「C言語 ポインタ」とかで検索したらいいんじゃないかな?

400 :774ワット発電中さん:2011/07/11(月) 09:01:11.17 ID:hM5mz3nJ
初心者だからもっとやさしくしてよ!
↑間違い

401 :774ワット発電中さん:2011/07/11(月) 20:29:42.70 ID:RqtsNIhT
ルネサス大量保守品化しますっていう通達がきたが、肝心のリストが来てないから
何が廃止になるか判らん。

MCU 406型名件数とはあるが・・

402 :774ワット発電中さん:2011/07/12(火) 00:08:03.39 ID:c1cj1r63
過剰カスタマイズのあげくどうでもいいような違いで種類を増やしまくった結果がそれか

403 :774ワット発電中さん:2011/07/12(火) 11:57:17.78 ID:W8JCh+O+
バグに初心者も糞もない
プログラムは書かれた通りに動く

404 :774ワット発電中さん:2011/07/17(日) 21:54:44.66 ID:4VBFK8/A
統廃合で日本勢のワンチップマイコンは採用をためらうなぁ・・

405 :774ワット発電中さん:2011/07/17(日) 22:01:59.54 ID:oIBr1r5Q
20年くらい前には、『海外メーカーの製品は、メーカーの都合でいつディスコン
になるか判らんとか、入手性に難があるので、日本製を選択しろ』などと言わ
れものだが、いつのまにか逆転?(w

サンプルさえ手に入らん状況じゃあ、下手に選んだら自分の首が絞まるな。

406 :774ワット発電中さん:2011/07/18(月) 00:21:26.04 ID:H+pnD+uC
「サンプルは***個からとなります。ご了承下さいwww」
「****はディスコンになります。新規設計の際にはお気をつけ下さいwww」

売る気ねーんだろwww

407 :774ワット発電中さん:2011/07/18(月) 07:57:46.40 ID:LspFKmDf
>>406
東電とかJALとか、元分身のエルピーダで甘い汁の吸い方も覚えたし、次は
国相手に死ぬ死ぬ詐欺かナァ。

408 :774ワット発電中さん:2011/07/18(月) 12:06:46.63 ID:i4SuGcQC
>>383
結局ルネで16bitはRL78になるんか
じゃあ今はR8Cに移行せずにH8Sで逝くが吉・・・か?

409 :774ワット発電中さん:2011/07/18(月) 12:49:03.37 ID:zoV5X2Vi
http://www.funclang.net/wiki/H8USBWriter

このページのH8ライターをubuntuで使ってる人いますか?
makeしてもエラーだらけなんですが…

410 :774ワット発電中さん:2011/07/18(月) 12:52:20.23 ID:I3hXAenV
いろんなmakeコマンドを試したが、ちゃんと動く奴、途中でエラーになっちゃうやついろいろあるよ、同じMakefileでも。
バージョン調べたら?

411 :774ワット発電中さん:2011/07/18(月) 12:58:00.57 ID:zoV5X2Vi
>>410
makeのバージョンは3.81です

412 :774ワット発電中さん:2011/07/18(月) 13:00:03.78 ID:I3hXAenV
それだけじゃなくて、この作者が使った奴も!

413 :774ワット発電中さん:2011/07/18(月) 13:04:27.67 ID:I3hXAenV
http://mes.sourceforge.jp/h8/writer-j.html
で書いてある
「ソースファイルのコンパイル

先頭の4行の部分をプラットホームにあわせて変更してください。
対象となるプラットホームの定義を#defineにして、それ以外は #undefにしてください」

はちゃんとやった?

414 :774ワット発電中さん:2011/07/18(月) 13:21:17.71 ID:I3hXAenV
ごめん>>413は勘違いだった

415 :774ワット発電中さん:2011/07/26(火) 22:32:31.94 ID:qmSiGJGa
H83052使ってるんだけど、ポートが出力されっ放しって現象になったらマイコンの故障かな?どんなプログラムを書き込んでも出力されてるんだよね…

416 :774ワット発電中さん:2011/07/26(火) 23:40:35.83 ID:7xDvLqSr
出力ってHL切り替えはできるの?
プルアップとかはしてない?
普通は保護回路がついてるからポート故障なんてどんだけ
過酷な使い方をしたの?って感じなんだが

417 :774ワット発電中さん:2011/07/27(水) 02:40:04.45 ID:n6dIeBaL
単純にLEDの点灯実験で使ってて、あまり詳しくはないんだけど、LEDが光っ放しって状態。

418 :774ワット発電中さん:2011/07/27(水) 02:49:04.89 ID:ppD3eYWB
そのポートをH/Lさせて、LEDのon/offを確認した?
あと、H83052ではなくて、H8/3052ね。


419 :774ワット発電中さん:2011/07/27(水) 05:37:12.99 ID:0ukz+7av
LED直付けじゃ、もたんでしょ

420 :774ワット発電中さん:2011/07/27(水) 10:59:27.16 ID:jx77nwaC
こちらの勉強不足でいろいろと抜けててすまない。Ledはマザーボードにつけていて、ソケットから配線して繋いでる。

421 :774ワット発電中さん:2011/07/27(水) 18:59:40.06 ID:eSvfObur
ソースファイルは確認しなくていい?


422 :774ワット発電中さん:2011/07/28(木) 11:39:14.50 ID:cH9KEpZ/
いや確認すべきだ。ホレ
http://www.oliversauce.com/imgclimax/climax03uster.jpg

423 :774ワット発電中さん:2011/07/28(木) 16:14:46.88 ID:V8oafRNp
#include "io.h"

void wait(void)
{
long t=40000;
while(t--);
}
int main(void)
{
int i = 0;
int d = 0x01;

P1DDR = 0xff;
while(1)
{
for(i=0;i<8;i++)
{
P1DR = d;
wait();
d<<=1;
}
d=1;
}
}

とりあえずこんな感じ


424 :774ワット発電中さん:2011/07/28(木) 20:55:33.05 ID:Wt7QNY/k
なんとなく意図はわかって
もとの著者もわかるような気がします

これでLED消えますか。
--
#include "io.h"

void wait(void)
{
long t=40000;
while(t--);
}

int main(void)
{
int i = 0;
int d = 0x01;

P1DDR = 0xff;
while(1)
{
p1dR = 0x00; //0xffもやってみよう
// for(i=0;i<8;i++)
// {
// P1DR = d;
// wait();
// d<<=1;
// }
// d=1; //ここだけDecimal表記?
// }
}


425 :774ワット発電中さん:2011/07/30(土) 19:27:01.35 ID:YUHY6s6O
>>409

libusb-1.0-0-dev
も追加で入れる必要あり
これでコンパイルが通る

426 :774ワット発電中さん:2011/08/01(月) 21:14:10.28 ID:DGHp71Xc
買ってから10ヶ月、ついに付属基板のLEDが点滅したぞ

427 :774ワット発電中さん:2011/08/02(火) 06:43:20.23 ID:BUrjH/Wx
そして10年寝かすんですね

428 :774ワット発電中さん:2011/08/25(木) 05:32:32.04 ID:WA3S9Dxv
HEWの使い方教えて下さい

GCCを使っていたのだけど、HEWでコンパイルしたらエラーが出ました。
#include <3048.h>

ヘッタが無い・・・
またGCCからHEWに移植する時の注意点ってある?

429 :774ワット発電中さん:2011/08/26(金) 11:06:07.06 ID:SUS+46J2
#include <machine.h>

430 :428:2011/08/27(土) 09:01:52.79 ID:c6VdlXfb
>>429
ありがと

HEWって駄目なんじゃねえ?お金かけるだけの事有る?
そもそも日立系のMPUって・・・・

何か日立が駄目駄目なのが分かる気がする。
ARMを覗いてくるノシ

431 :774ワット発電中さん:2011/09/05(月) 18:52:45.02 ID:kkmrO/B5
あっちのスレが無くなってる

432 :774ワット発電中さん:2011/09/05(月) 18:55:04.57 ID:veQwdUuP
http://kamome.2ch.net/test/read.cgi/denki/1315210823/

これ?

433 :774ワット発電中さん:2011/09/07(水) 20:44:19.52 ID:emHmLcXI
H8マイコンを使ってディップスイッチの状態を読み込んで7セグLEDを点灯させる
プログラムを作る予定なんですが、参考になるサイト知りませんか?

434 :774ワット発電中さん:2011/09/07(水) 21:10:15.18 ID:cHV56OY3
とりあえず、保守あげ

435 :774ワット発電中さん:2011/09/07(水) 21:22:08.98 ID:o5TzyKYz
>>433
http://japan.renesas.com/
ここでハードウェアマニュアルとCコンパイラパッケージのマニュアルを読むといいよ。
とっても参考になるよ。

436 :774ワット発電中さん:2011/09/08(木) 16:32:58.62 ID:MMu1d9vL
宿題か実習か?

437 :774ワット発電中さん:2011/09/08(木) 17:21:25.28 ID:g0y7cRub
電気系の学生の自由研究みたいな感じだけどね

438 :774ワット発電中さん:2011/09/08(木) 18:35:15.04 ID:g0y7cRub
ほらよ
ttp://oshiete.goo.ne.jp/qa/5472563.html
これでどこまでやれるのかしらんが

h8 dipsw
でググるといっぱい出てくるのに

439 :774ワット発電中さん:2011/10/01(土) 23:00:20.54 ID:9Df2xkqA
3664F と言うか H8/300シリーズ共通だと思うのだが
I/Oポートの設定って、どこ見て記述するのか解らんorz

#define PDR (*(volatile unsigned char*)(ほにゃらら)) ポートデータレジスタ
#define PMR (*(volatile unsigned char*)(ほにゃらら)) ポートモードレジスタ
#define PCR (*(volatile unsigned char*)(ほにゃらら)) ポートコントロールレジスタ

この ほにゃらら のアドレスってドコに載ってるんですか?

440 :774ワット発電中さん:2011/10/02(日) 00:09:29.98 ID:dhFj5cf/
>>439
ハードウェアマニュアルを見たらいいと思うよ。
http://documentation.renesas.com/jpn/products/mpumcu/rjj09b0149_h83664.pdf
アドレスは291ページあたり、IOポートの設定の仕方は129ページあたりから。

441 :439:2011/10/02(日) 13:03:33.58 ID:yrG5v1DL
>>440
おぉ ありがとう載ってました
おかげさまで、うまく行きそうです。

442 :439:2011/10/02(日) 23:38:54.69 ID:yrG5v1DL
デバックが終了しました。 ありがとうございました。

443 :! 【22.2m】 【東電 65.8 %】 :2011/10/05(水) 09:28:53.64 ID:PlWIPrM7
オメ

444 :774ワット発電中さん:2011/11/06(日) 15:50:15.12 ID:qQYkRu+J
h8s 2218 を使おうと思ってるんですが、これも3664fみたいにシリアル経由で書き込めますか?
それともROMライタとか買わないとだめですか・・・?

445 :774ワット発電中さん:2011/11/06(日) 16:01:37.31 ID:j/MfuK9o
>>444
ルネサスの「H8S/2218,2212グループ」のページを見た?

446 :774ワット発電中さん:2011/11/06(日) 16:24:41.04 ID:qQYkRu+J
>>445
ありがとうございます
USB経由で書き込めるんですね!

447 :3052f:2011/11/18(金) 04:26:45.24 ID:RWyob/Gt
マイコン初心者が失礼します。
H8-3052fを用いて10MHzの正弦波または矩形波を出力することはできるでしょうか。
単純に内部クロック(周波数)が25MHzの3052fであれば、できると考えていました。
詳しい方教えてください。

またよかったら、10MHz付近の周波数を出力するには何がいいか教えてください。
よろしくお願いします。

448 :774ワット発電中さん:2011/11/18(金) 05:08:16.01 ID:GEBjIpTy
>>447
矩形波でも1.25クロックに1回ON/OFFするのか
ほかに何にもしなくてもできるのかね、んなこと
ループするにしても2クロックどこじゃなくかかりそうだけど・・・


正弦波は無理だろう

素直にオシレータ買え



449 :774ワット発電中さん:2011/11/18(金) 05:53:10.94 ID:y1CAO3rP
>>447
ハードウェアマニュアルの周辺機能のタイマー?のところをよく読みませう。

450 :774ワット発電中さん:2011/11/18(金) 11:31:41.23 ID:UiMT/axh
電波テロ装置の戦争(始)エンジニアさん参加願います公安はサリンオウム信者の子供を40歳まで社会から隔離している
オウム信者が地方で現在も潜伏している
それは新興宗教を配下としている公安の仕事だ
発案で盗聴器を開発したら霊魂が寄って呼ぶ来た
<電波憑依>
スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科
<コードレス盗聴>
2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠>
今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部>
キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索

451 :3052f:2011/11/18(金) 15:26:57.19 ID:FF1RIWe0
<<448
<<449
ありがとうございます。
H8じゃないものを試してみようと思います。


452 :774ワット発電中さん:2011/11/18(金) 22:11:47.16 ID:VTMwvPVc
>>447
3052+DDS

453 :774ワット発電中さん:2011/11/19(土) 01:25:02.16 ID:58YRN4uX
3052を20MHzで動かせば10MHzの矩形波は出せる

454 :774ワット発電中さん:2011/11/19(土) 12:08:30.95 ID:K5Gi/IYU
H8入門者ですが、教えてください。

H8/3067を使って、PWMの生成と周波数の可変の部分をCで作っています。
簡単に言うと、周波数ダイヤル、Dutyダイヤルの2つがあって、
それらの設定に基づいた矩形波を出したいです。

ITUのGRA, GRBの値のうち、
  ・GRAを変化させると周波数が、
  ・GRBを変化させるとDutyが、
変化すると思います。

しかし、周波数を変えても、Dutyが保持されません。
つまり、GRBの値を触らずに、GRAだけ変えると周波数は変化しますが、
Dutyがドンドン変化してしまいます。

逆に周波数一定で、Dutyを変化させる、
つまり、GRAの値を触らずに、GRBだけ変えるのは、期待通りの変化になります。
しかし、周波数を速くすると、Dutyの分解能が変化してしまいます。

期待する結果は、
・現在のDuty設定値に関係なく、周波数を、1Hzずつ変えられる
・現在の周波数設定値に関係なく、Dutyを、0.1%ずつ変えられる
にしたいのです。

僕の考えというか、やり方に勘違いがあるでしょうか。
宜しくお願いします。




455 :774ワット発電中さん:2011/11/19(土) 12:33:57.35 ID:s44KxQZQ
>僕の考えというか、やり方に勘違いがあるでしょうか。
コードが間違ってるからとしか?
ソース晒して添削してもらったほうがいいような

456 :774ワット発電中さん:2011/11/19(土) 14:04:16.22 ID:Er36J/A9
>>454
原理上、無理だと思う。
何Hzが出したいか知らないけど、
1000HzでDUTY0〜100.0%までの1000段階だとすると、
1000kHz=1MHzのclockをITUに入れれば良いけど、その1MHzのままで、
999Hz は出せないし、出たとしても、DUTYが1000段階にはならない。

ITUに入れ込むclockも可変してやる必要がある。

あと、0%を出すと、100%はできないし、
100%を出せるようにすると、0%はできないので、要注意。


457 :774ワット発電中さん:2011/11/19(土) 19:20:31.20 ID:7VP6j2uD
>しかし、周波数を変えても、Dutyが保持されません。
>つまり、GRBの値を触らずに、GRAだけ変えると周波数は変化しますが、
>Dutyがドンドン変化してしまいます。

これに関しては、GRAを書き換えるとき、
同じデューティーになるよう計算してGRBも設定しなおせばいい。

ただ、しょせん16ビットのタイマーなんで、精度の問題はいかんともしがたいな。

458 :774ワット発電中さん:2011/11/19(土) 20:30:53.88 ID:Er36J/A9
>同じデューティーになるよう計算してGRBも設定しなおせばいい。
とは言うものの、
1Hzずれたときの、16bitのGRA,GRB値で、どのようにセットするのやら。

459 :774ワット発電中さん:2011/11/19(土) 20:49:28.13 ID:7VP6j2uD
だから、

「ただ、しょせん16ビットのタイマーなんで、精度の問題はいかんともしがたいな。 」

って書いているだろ。

460 :774ワット発電中さん:2011/11/19(土) 21:31:39.86 ID:Er36J/A9
なるほど。
だとすると、NFの発振器などはどのようにしてやっているんでしょうね。

DUTY=68%のまま、周波数100Hz〜10kHzまで振っても、
やっぱりDUTYは68%を維持するという。

考えてみると謎ですね

461 :774ワット発電中さん:2011/11/19(土) 22:10:50.97 ID:GHutGEh4
NFの発振器がH8/3067のPWMでそれを実現しているなら謎かもしれないが、
それを実現できる手段で実現しているだけなのだから謎でも何でもないわな。

462 :774ワット発電中さん:2011/11/19(土) 23:08:18.47 ID:s44KxQZQ
クロックソース?

463 :774ワット発電中さん:2011/11/20(日) 00:00:48.36 ID:zr+IKH8Q
さっき、H8のITUで、どのようにしたらできるか、考えてみた。

・DUTY固定で、周波数の一定値変化→ 1Hzステップとかは、たぶんできない。
                  周期の一定値変化ならできる。
                  周波数は、周期の逆数なので。

・周波数固定で、DUTY一定値可変→ 0.005%の分解能でできそう。
                 16bitなので、使い易い値だと、GRA=50000が限界。

>>461
どうやって、実現しているんでしょうか。
周波数はDDSで発生、
DUTYは巨大なcase()文の連続、あるいは巨大なシフトレジスタ+タップ切替、
とか。


464 :774ワット発電中さん:2011/11/20(日) 00:25:52.33 ID:vfOiLtTO
ハードウェアマニュアルよく読んで、もっと簡単に考えてみたら

465 :774ワット発電中さん:2011/11/20(日) 12:15:37.14 ID:JwHhRyX6
まさか、タイマー割り込み使う、とか言うんじゃないよね。


466 :774ワット発電中さん:2011/11/20(日) 12:53:53.80 ID:vfOiLtTO
タイマーは何個ついてるのかな?

467 :774ワット発電中さん:2011/11/20(日) 18:12:23.94 ID:JwHhRyX6
2つのタイマーをカスケードにして、
ON時間用、OFF時間用にするとか?


468 :774ワット発電中さん:2011/11/20(日) 20:06:21.61 ID:O57wKWUx
こんばんは
現在秋月電商のAKI-H8(3052)開発セットとルネサスの評価版統合開発環境HEW5
を使ってタイマ割り込みについて勉強中なのですが、割り込みの考え方がよく
わからないので教えてください。

目的としてはポート2に繋がったスイッチがONされると(ポート2のB0がoff
されると)ポート5に繋がったLED4つが0.5秒間隔で順次点灯するものなの
で、check=1になったときにdataが左へシフトされていくものだと
考えているのですが、この中にそのような記述が無いように見えます
(本を見ながら書いてます)。もし一人で今後このようなプログラムを
書くことを考えると自分はおそらく(1)と(2)の行の間に「もしcheckが1に
なったらデータを左へシフトしてね」と書いてしまうと思うのですが、
お手本には無いので、データを左へシフトさせるきっかけ部分はこの
プログラムの中のどこにあたるのでしょうか?

void main(void)
{ unsigned char data=1; ITU0.TCR.BIT.CCLR=1; ITU0.TCR.BIT.TPSC=2;
ITU0.TIER.BIT.IMIEA=1; ITU0.GRA=62499; P5DDR=0xff; P2DDR=0x00;
P2PCR=0xff; check=0; c=0;

while(1)
{
if(P2.DR.BIT.B0==0)
{
ITU.TSTR.BIT.STR0=1;
while(check==0);
check=0;
if(data>=9) data=1;
P5.DR.BYTE=data; ←(1)
data=data<<1; ←(2)
}
}
}

void itu0_int(void)
{
ITU0.TSR.BIT.IMFA=0;
if(P2.DR.BIT.B0==0)
{
c++;
if(c==50)
{
check=1;
c=0;
}
}
}

469 :774ワット発電中さん:2011/11/21(月) 00:12:09.69 ID:qvgrzBvl
H8も秋月キットも触ったことがないけど、一般論で答えてみる

while(1) {
  if(P2.DR.BIT.B0==0) {
    ITU.TSTR.BIT.STR0=1;
    while(check==0);  // ←【※】ここでずっと待つ
    check=0;
    if(data>=9) data=1;
    P5.DR.BYTE=data;  // ←(1)
    data=data<<1;  // ←(2)
  }
}

※の部分の一行が、単独ループになってて、check が 1になるまで永久に待つ
実際には itu0_int() 関数のほうで、割込み信号(たぶん10ms)ごとにカウントして
500ミリ秒になった瞬間 check が1になって、上のメインも続きの処理を再開する
(1)で現在の data を出力して、すかさず(2)で次回用にシフトしてるだけなので
(1)と(2)の間で while(check==0); と書いてもいいけど、その時は※の行を外す必要あり


470 :774ワット発電中さん:2011/11/21(月) 00:40:45.21 ID:Jix+LQq4
>>469
なるほど、勉強になります。
whileの後の;は空文でcheckが1になるまで何もしない、
ということですか。
ありがとうございます。

471 :774ワット発電中さん:2011/11/21(月) 03:22:55.77 ID:pHUTSKWy
>>470
間違いが起きやすいので、{}を書くようにしたほうがいいと思うよ。
例えば、
  if(data>=9) data=1;   → if(data>=9) { data=1; }
  while(check==0);    → while(check==0){};

あと、{は、条件の()の後に書くのが見やすいです。
例えば、
void itu0_int(void)
{
  ITU0.TSR.BIT.IMFA=0;
  if(P2.DR.BIT.B0==0)
  {
    c++;
    if(c==50)
    {
      check=1;
      c=0;
    }
  }
}             というのは、

void itu0_int(void){
  ITU0.TSR.BIT.IMFA=0;
  if(P2.DR.BIT.B0==0){
    c++;
    if(c==50){
      check=1;
      c=0;
    }
  }
}        さらに、次のようにも書けて、さらに見やすいです。


void itu0_int(void){
  ITU0.TSR.BIT.IMFA=0;
  if(P2.DR.BIT.B0==0){
    c++;
    if(c==50){ check=1; c=0; }
  }
}


472 :774ワット発電中さん:2011/11/21(月) 13:26:07.82 ID:I//2f1kJ
秋月で売っているワンタイムPROM版のH8S(HD64P2128PS)ですがブートモードになりませんが
やっぱりブートモードでの書き込みはフラッシュ版でしかできないのでしょうか?

具体的には20MHzのクリスタルをつけてMD0とMD1をLレベルにしてP40〜P42をHレベルにして
リセットを解除した後にSCI0に最初に0x00を送っても何も反応がありませんでした

同じ回路を使ってモード1の内蔵ROM無効での外部メモリ実行ではLED点滅はできました

473 :774ワット発電中さん:2011/11/21(月) 13:43:45.90 ID:6ph6e3UN
>>471
おれは'{'と'}'は同レベルに書く方が見やすいので
上から下に行くほど見にくくなっていく。
とくに最後の
    if(c==50){ check=1; c=0; }
は無い罠

474 :774ワット発電中さん:2011/11/21(月) 18:39:01.97 ID:fGLRWzHA
コンパイルエラーがないかどうかを調べないのかね?

475 :774ワット発電中さん:2011/11/21(月) 20:24:14.93 ID:1FAGM+ZI
>>473
真ん中が一番見やすい
{だけで1行使いたくない

最後のがありえんてのには激しく同意


476 :774ワット発電中さん:2011/11/21(月) 21:45:40.64 ID:DJJlUNAa
>>475
>最後のがありえん
なんで?

477 :774ワット発電中さん:2011/11/21(月) 22:59:13.79 ID:fBqjaQfd
まぁ
 }
 else
 {
と書かれるよりは最後のヤツの方がありかもしらんが、
そういう書き方をするやつは2行程度じゃ止めないからなぁ。
真ん中以外は普通ありえんな。


478 :774ワット発電中さん:2011/11/21(月) 23:21:52.56 ID:mpI49hVx
>477
普通に最後のやつもやるが、2行くらいだな。でないとデバッグのステップ実行でしぬる。
つうか、
*p++ = *q++;
とか普通に書いたりするだろに
*p = *q; p++; q++;
と1行で書くようなもんだ。


479 :774ワット発電中さん:2011/11/22(火) 00:58:02.11 ID:5wtM2gkl
でも、こういう時はわかりやすくて、好きだ。

  if(a==0){ b=0; c=0; d=0; status=step2; }
else if(a==2){ b=1; c=2; d=3; status=step3; }
else if(a==6){ b=4; c=5; d=8; status=step8; }
else if(a==8){ b=6; c=1; d=9; status=step1; }
else if(a==5){ b=7; c=9; d=1; status=step4; }


480 :774ワット発電中さん:2011/11/22(火) 03:46:52.70 ID:R8kwbwGi
PICだとOKなのに
H8のC言語では、
2進数を表現する「0b00001101」のような書き方ができないのは、なぜですか?


481 :774ワット発電中さん:2011/11/22(火) 06:51:57.97 ID:Pqsd3VmS
>>480 方言だから

482 :774ワット発電中さん:2011/11/22(火) 10:38:25.20 ID:OBLw5jYW
ありがとうございます。
ということは、

483 :774ワット発電中さん:2011/11/22(火) 12:56:41.88 ID:eUTlp1LV
GCC4.3からは0b使えるから、kpitの開発環境にするとか

484 :774ワット発電中さん:2011/11/22(火) 17:02:03.73 ID:hcCPFbLL
>>480
マクロ使えば良いんじゃね?


485 :774ワット発電中さん:2011/11/22(火) 17:07:43.25 ID:5wtM2gkl
マクロって、
#define .... というやつでしょうか?
0b1011など、先頭が0で始まりますが、使えますでしょうか?

486 :774ワット発電中さん:2011/11/22(火) 18:04:12.77 ID:hcCPFbLL
>>485
駄目なんだっけ?

じゃあ先頭をbにして表記を誤魔化したら良いんじゃね。
要は、2進数表記したいって事でしょ、こまけぇ事は気にすんなよ。


487 :774ワット発電中さん:2011/11/22(火) 21:21:20.49 ID:Pqsd3VmS
#include <stdio.h>

#define BINARY8(a,b,c,d,e,f,g,h) (((((((((((((((a)<<1)+(b))<<1)+(c))<<1)+(d))<<1)+(e))<<1)+(f))<<1)+(g))<<1)+(h))

int main(int argc, char *argv[]) {
printf("%02x\n", BINARY8(0,0,0,0,1,1,0,1));
}

ちゃんと定数計算してくれるまっとうなコンパイラを
つかいませう:-)

488 :774ワット発電中さん:2011/11/22(火) 21:23:37.00 ID:Pqsd3VmS
#define B00000000 (0)
#define B00000001 (1)
...
#define B11111110 (254)
#define B11111111 (255)

でもいいかもね

489 :774ワット発電中さん:2011/11/23(水) 03:46:10.94 ID:Bd6pcWA7
>>487
>BINARY8(0,0,0,0,1,1,0,1)
いちいちカンマを入れて書くのは面倒ですね。

>>488
256個くらいならいいけど、16bit分だと疲れそうです(コンパイラが)。

コンパイル前に、ソース全体を見渡して、使われているb00000000表現をとりだして、
その分だけdefine出来ない物でしょうかね

490 :774ワット発電中さん:2011/11/23(水) 03:57:20.88 ID:RYsueoOZ
>>489
そういうことするプログラム作ればいいじゃん
他力本願じゃあ、先に進めんぞ

491 :774ワット発電中さん:2011/11/23(水) 06:17:06.50 ID:mdBtuB73
>>489
そういうのを自動でやる為にプログラムってあるんじゃね?


492 :774ワット発電中さん:2011/11/23(水) 12:44:41.35 ID:x9GsKOnK
>>480
そもそも0bが使えないのは、どこのコンパイラだよ?
PICかH8かは、あまり関係ないだろ。


493 :774ワット発電中さん:2011/11/23(水) 14:02:13.76 ID:gmVZU78w
>>492
関係ないはずだけど、PICとH8両方をやってるとPICでは使えてH8では使えないと言う
言い方がでてきても不思議ではない。H8用のコンパイラはGCCとルネサス純正の2とおりあるかな。
俺は純正のほうを使ってるけど0b00000000のような表現は使えないね。PICはcc5xを使ってるけど
上記表現が使える。周辺モジュールのレジスタ設定ではこの表現が分かりやすくて好きだな。

494 :774ワット発電中さん:2011/11/23(水) 19:24:34.43 ID:05NKMyhP
方言の酷い田舎者の集まりなんですか

495 :774ワット発電中さん:2011/11/23(水) 21:43:02.15 ID:5Rkyk+4W
他人のソースのコピペ野郎なんじゃね?

496 :774ワット発電中さん:2011/11/24(木) 12:38:04.37 ID:zbOWFGUm
周辺レジスタ設定に、0bが使えないなんて、信じられない。
16進二桁でやれってか?


497 :774ワット発電中さん:2011/11/24(木) 13:41:44.13 ID:l9DO9ggj
>>496
>>483

純正だと構造体と共用体でI/O周辺を定義したファイルがあるからbitでもbyteでもwordでも
指定できるんだ

498 :774ワット発電中さん:2011/11/24(木) 18:54:07.68 ID:PeM+pa6M
P1.DR.BIT.B0 = 0;
P1.DR.BIT.B1 = 0;
P1.DR.BIT.B2 = 0;
P1.DR.BIT.B3 = 0;
P1.DR.BIT.B4 = 0;
P1.DR.BIT.B5 = 0;
P1.DR.BIT.B6 = 0;
P1.DR.BIT.B7 = 0;

P1.DR.BYTE = 0b00000000;


499 :774ワット発電中さん:2011/11/24(木) 19:05:45.56 ID:9f7zyo3B
16進でいいじゃん。わかりにくいなら横にコメント書いとけばいい

500 :774ワット発電中さん:2011/11/24(木) 19:17:51.47 ID:RpnFWekk
俺にわからないものを作るなと言ってるんじゃないの?

501 :774ワット発電中さん:2011/11/24(木) 20:16:13.83 ID:w8z4E+fD
嫌なら使うな!嫌なら使うな!

502 :774ワット発電中さん:2011/11/24(木) 22:57:24.61 ID:3o9/S/DJ
FDT ver3.05をProtocol Aに対応させるにはどうしたらいいですか?
http://www.renesas.eu/products/tools/flash_prom_programming/fdt/child_folder/Previous%20versions%20and%20protocl%20A.jsp
↑に書いてあるようなアップデートやプラグインを入れてみたんですが、いざカーネルを選択すると
"protocol A kernels have not been installed for use"
というエラーが出てしまうんですが・・・


503 :774ワット発電中さん:2011/11/25(金) 00:01:38.25 ID:ltf9iG5r
2進より16進のほうがわかりやすいと思うけどなぁ。
32ビットデータで10ビットめだけが"1"とか、2進表示でパッと見て正しいとわかる?
16進だといやおう無しに4ビットごとで区切られるからわかりやすい。

504 :774ワット発電中さん:2011/11/25(金) 00:16:15.80 ID:i+OVohsl
>>503

1101_0000_1100_0010_1000_0001_0101_1110_0001 って書けばいいんじゃ?

505 : 【19.1m】 【東電 84.6 %】 :2011/11/25(金) 18:18:45.26 ID:mnNfzgUW ?2BP(0)
if ( ( 1UL << 10 ) & reg )
とかでいいだろ

506 :774ワット発電中さん:2011/11/25(金) 20:10:02.38 ID:tqboYbI0
>P1.DR.BIT.B0 = 0;
>・・・
>P1.DR.BIT.B7 = 0;
>
>P1.DR.BYTE = 0b00000000;
これ意味違って、バグになる場合があるから気をつけろよ。

507 :774ワット発電中さん:2011/11/25(金) 22:15:24.86 ID:i+OVohsl
なんで?
前者だとRead Writeが連続して、
電圧がお落ちる前を読んでしまうことがある、っていうやつですか?

508 :774ワット発電中さん:2011/11/25(金) 23:13:56.96 ID:4ihQgWlD
endian の話だよ


509 :774ワット発電中さん:2011/11/25(金) 23:22:50.11 ID:al/R0H4F
はあ?

510 :774ワット発電中さん:2011/11/26(土) 03:06:03.10 ID:o7WAZE8a
>>508
インディアンって、発見される前からアメリカ大陸で暮らしていた民族のこと?
電子と関係ないじゃん。


511 :774ワット発電中さん:2011/11/26(土) 08:46:52.51 ID:X8TmwUEZ
今はネイティブ・アメリカンと呼び替えられてきている。
エンディアンの語源はガリヴァー旅行記からっていわれてる。

H8ってSHみたいにビッグ/リトルの切り換え出来たんだっけ?

512 :774ワット発電中さん:2011/11/26(土) 08:51:19.53 ID:NLbBIxT2
ゆで玉子はとがった方から食べますか?丸い方から食べますか?

513 :774ワット発電中さん:2011/11/26(土) 09:22:57.81 ID:9kg3aO4i
割って黄身から

514 :774ワット発電中さん:2011/11/26(土) 19:37:38.63 ID:fxjhG2bG
#pragma bit_rder

515 :774ワット発電中さん:2011/11/26(土) 19:38:59.78 ID:fxjhG2bG
すまん、#pragma bit_orderだ

516 :774ワット発電中さん:2011/11/26(土) 20:29:57.52 ID:beo1g5G8
えっ、インディアン=インド人じゃないの??

517 :774ワット発電中さん:2011/11/26(土) 21:02:40.27 ID:fxjhG2bG
くどいな
インド人を右に だ

518 :774ワット発電中さん:2011/11/27(日) 11:46:24.99 ID:ShG1m2mK
Wikipediaより

英語のインディアンは直訳するとインド人の意味である。歴史的な文脈では、旧イギリス領インド全域や東南アジアの住民を含むこともある
「インディアン」が二義的な意味を持つ由来には、クリストファー・コロンブスがカリブ諸島に到達した時に、インド周辺の島々であると誤認し、
先住民をインディオス(インド人の意)と呼んだことがあり、以降アメリカ先住民(の大半)をインディアンと呼ぶようになった。
ただし当時の西洋では、現在および当時のインドと同一ではない、中国・日本以外の東方世界を漠然と「インディアス」と呼んでいて、
コロンブスは当時の一般的な知識にしたがって、カリブ諸島を「インディアス」と呼んだほか
インド人をイースト・インディアン (East Indian) 、
アメリカ先住民をアメリカン・インディアン (American Indian) として区分する場合もある。

ということだけど、どっちもマイコンとは関係ない話じゃないか。


519 :774ワット発電中さん:2011/11/27(日) 11:53:09.49 ID:CQUzj1zN
マイコンの中には、
数学が得意なちっこい印度人が

520 :774ワット発電中さん:2011/11/27(日) 13:59:48.23 ID:XK5tISDi
>>469
コンパイラの最適化によって無限ループのコードが出力されそう。
volatile unsigned char check;
しておかなければならないんじゃないの?
本筋からはずれてごめん。

521 :774ワット発電中さん:2011/11/27(日) 14:44:55.79 ID:mG49AKuk
>>519
リトルインディアンの他に、ビッグインディアンもいるよ。


522 :774ワット発電中さん:2011/11/27(日) 18:57:01.60 ID:R5GuXNE3
かつては、ミドルインデアンという奇妙な種族もいたのじゃ

523 :774ワット発電中さん:2011/11/27(日) 21:55:38.09 ID:kk4IxhfS
>>515
それってビットフィールドに関するもので、CPU自身のバイトオーダー
とは別の話でしょ

バイトオーダーって言えば、この前行ったファミレスで.....

524 :相手は:2011/11/28(月) 00:04:32.00 ID:9rs8+PHS
女子大生なのか!!

525 :774ワット発電中さん:2011/11/28(月) 01:15:56.52 ID:1jolZKnh
こちらでお召し上がりでしょうか?  お持ち帰りでしょうか?


526 :774ワット発電中さん:2011/11/29(火) 00:26:21.34 ID:GY2O1Qkm
教えてください。

H8のハードゥエアマニュアルょ読んでいると、
ブートマットという言葉が出てきます。
この「マット」とは何を示すのでしょうか?
なんとなく、「領域」という感じはするのですが。
英語のスペルはmatで良いのでしょうか?
それっぽい訳が出てこないので、いまいちしっくりこないのです。


527 :774ワット発電中さん:2011/11/29(火) 01:03:27.28 ID:fqXfBs4j
マットってあれだろ、主に体育倉庫にあって簀巻きを作るのに使うやつ。

528 :774ワット発電中さん:2011/11/29(火) 02:09:29.89 ID:jXxkj+8i
>>526
20. フラッシュメモリ
本LSI は512K バイト(H8S/2556、H8S/2552、H8S/2506)または384K バイト(H8S/2551、H8S/2505)のフラッ
シュメモリを内蔵しています。フラッシュメモリの特長を以下に示します。
20.1 特長
? LSI起動モードに合わせた2種類のフラッシュメモリマット
内蔵しているフラッシュメモリには、同一アドレス空間に配置される2種類のメモリ空間(以下メモリマット
と呼びます)があり、起動時のモード設定により、どちらのメモリマットから起動するかを選択できます。
また、起動後もバンク切り替え方式でマットを切り替えることも可能です。

って書いてあるからメモリ空間の事で合ってるんじゃないの?

529 :774ワット発電中さん:2011/11/29(火) 02:53:17.16 ID:hFXDyFga
その手の質問が出たなら、俺も教えて欲しいことがあります。

H8/3069秋月基板で遊んでいるんですが、そのウオッチドッグタイマー(WDT)は、
φ→分周器(〜4096)→TCNT(8bit)→割り込み、という経路で動作します。
ここでφ=20MHzとすれば、最大のWDT時間は、0.05us×4096×255=52.224msとなります。

そこで質問です。
1、 WDTのmaxが50ms程度に出来ているのは、H8の設計者からすると、
      「一般的に、50msもWDTを叩けないようなプログラムは無いよな」
      ということなのでしょうか? 
2、 僕は、50ms近辺の周回になることもあるのですが、
      僕のプログラム作りは、下手くそなのでしょうか?


530 :774ワット発電中さん:2011/11/29(火) 03:40:21.59 ID:jXxkj+8i
>>529
Q1への回答
その条件なら、約50ms以内にTCNTをクリアできるようにがんばれ。

Q2への回答
TCNTのクリアは、プログラム中に何カ所だって書けるぞ。

531 :774ワット発電中さん:2011/11/30(水) 02:09:16.85 ID:VzSomrkz
>>530
ありがとうございました。よくわかりました。

今まで、何本ものプログラムを作って来ましたが、特に暴走することはなく、
WDTの必要性を感じていませんでした。でも、試しに使ってみようかと、
ハードウェアマニュアルを読んでいて疑問に思いました。

>TCNTのクリアは、プログラム中に何カ所だって書けるぞ。
なるほど、あちこちでTCNT=0を実行すれば良いですね。

しかし、関数内部にもTCNT=0を置いたとしても、
もしその関数内で暴走したら、WDTはクリアされ続けてしまい、
再起動しないのではないでしょうか?
では、main()の中でのみクリアしていれば良いのかどうか、これも、わかっていません。

一般に
・WDTのクリアは、どの場所で行うものなのでしょうか。
・何ms程度でクリアに行くものなのでしょうか。


532 :774ワット発電中さん:2011/11/30(水) 04:39:27.59 ID:AVDcvXvS
>>531
WDTの運用にも限界はある。
いつどんな天変地異が起こってもWDTが助けてくれる訳では無い。

WDTのカウンタがクリアし続けられるような事態が発生すると、
当然WDTでの監視は機能しなくなる。

どれくらいの間隔でWDTをクリアしたらいいかは、
開発しているシステムの特性で千差万別なので、一律な事は言えない。

例えば、プログラム中に絶対に10ms未満で終わらなければならないループがあるなら、
WDTは10ms間隔でクリアしなければならない様に設定するのでもいいんじゃないの?

533 :774ワット発電中さん:2011/11/30(水) 19:03:58.85 ID:OIyXx3yc
ttp://www2.renesas.com/faq/ja/mi800/f_v85wdt.html
の方式ならなお良い

534 :774ワット発電中さん:2011/12/01(木) 01:22:42.71 ID:XY1MiovL
すいませんが質問させてください。
Flash Development Toolkitを使っていていると↓のようなエラーが出てしまうのですがどうしたらいいでしょうか?
Error No 15018: Unable to locate micro-Kernel 'C:\Program Files\Renesas\FDT3.05\Kernels\ProtA\2128\Hitachi\0_0_00\uGen2128.cde'

ルネサスのホームページにはこのエラーは特定の機種にしか起こらなく、その後のアップデートで対応するとしか書いてありません・・・

535 :774ワット発電中さん:2011/12/01(木) 02:04:00.20 ID:6fk6wZvH
>>532
ありがとうございました。
すると、一般的なWDT時間は無いので、
設計者が自分で「自信を持って決めれば良い」ということですね。安心しました。
常識を知らないので、
「なんだコイツ、WDTの時間がこんなに長いやん。下手くそな組み方だなぁ」と
言われるのが怖かったんです。
どうもありがとうございました。

>>533
ありがとうございます。NECのデータブックの付録みたいなページですね。
読んで、勉強したいと思います。
ありがとうございました。



536 :774ワット発電中さん:2011/12/09(金) 17:21:59.42 ID:8TOb5A8z
>>444
秋月のワンタイム版のH8S2128にはブートモードはないってさ
ライターモードでならフラッシュ版と同じように書き込めるんだとさ

ソース
http://h8.or.tl/deathnote/read.cgi?mode=all&list=topic&no=192

537 :536:2011/12/09(金) 17:40:11.11 ID:8TOb5A8z
↑スマソ>>444henoレスはミスだニダ
>>472へのレスね

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)