1 :
774ワット発電中さん :
2010/09/15(水) 14:33:58 ID:9CtRQRKz H8
I9
EXCELかっ
R8
R800
6 :
774ワット発電中さん :2010/09/18(土) 00:05:23 ID:EonzVItk
秋月のH8-LANボードでiTRON系のOS走らせたことある人いるかい?
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
H2の次がH2A、その次がH2Bだから・・・・8までいく頃には21世紀も終わってそうだよ。 ルネサスが終わるのとどっちが先かな。
UJTって2SH21あたりしか知らないや・・・ IGBTと同じ型名じゃん!がお決まりのアレ
>>12 それより何よりH8が終わっちまうのか・・・
製品群を「ハイエンド」「ミドルレンジ」「ローエンド」の三つに分けて 5種類のCPUコア(SuperH,V850,RX,R8C,78K)を存続させること, いずれの製品群も成長分野と位置付けることなどを説明していた。 ハイエンドには「V850」と「SuperH」,ミドルレンジには「RX」, ローエンドには「78K」と「R8C」を割り当てる。
日立で生き残ったのはSHだけになるんか・・・
まあ、RXを出した時点で、H8はフェードアウトの予定だったんじゃない? 完全に消えるのは当分先だろうけど
RXもどう転ぶか、?な状態では
H8/300Hはアセンブラで書きやすくていいCPUだったのにねぇ。 ある意味68000より書きやすかった。 68000はデータレジスタをアドレスポインタに 使えなかったのがじれったかったし、 H8のER0→E0,R0やR0→R0H,R0Lみたいに 上位ワードと下位ワード、上位バイトと下位バイト を独立して扱えなかった。 H8が無くなるって本当にもったいない。
>>21 アセンブラ使うような下位のH8はすぐには消滅しないでしょ
家電や自動車もあるし価格的にも置き換えにくい。
32ビット品と競合しちゃってる
H8SXとかR32あたりが、真っ先に統合されるんではないかな。
>>16 会員登録必要なのを忘れてた。
一度ログインすると、ログイン状態が保持されてしまうもので。
言い訳でスマン。
合併前の各社のバランスを取ったのかなぁ。
日立はHEWも残った、と考えるべきかもね。
俺は純正のICE買っちゃったから、HEWが無いと生きていけない。
24 :
774ワット発電中さん :2010/09/22(水) 21:01:18 ID:hBfE0/y4
スレタイが、HBに見えた。鉛筆か。
>>6 HOSなら。
iTRONって広義の意味では定義が広くて、
UB,UH,UWとかtypedefしてるだけでもiTRON準拠じゃなかったけ?
SHのスレがないよ。 誰か立ててよ。 SH4使いたいんだけど、経験ある人いないのかな。
>>25 >TRONって広義の意味では定義が広くて、
>UB,UH,UWとかtypedefしてるだけでもiTRON準拠じゃなかったけ?
まさか、もうちょっと勉強しましょうね。そうとう恥ずかしいこと言っていますよ。
なんとなく「あいとろん」っていう響きが好きだったり
開発環境として、GCCとHEWのどちらがおすすめですか?
31 :
774ワット発電中さん :2010/09/30(木) 00:00:12 ID:uTHZifSq
H8って絶滅危惧種なの?知らんかった! これから趣味の域で遊びにかかろうと思ったのだが、 H8は避けたほうがいいのかな…? やりたいことは、PWMの出力とデジタル入出力、アナログ入力。
>>30 H8だったらGCCはゴミ。HEWにしとけ。
>>31 来年になったら、はい、もう買えません。
なんてことにはならない。当分は入手可能。
やりたいことって書いてるのが漠然としてるけど、
それなら多分、何使っても変わらんだろ。
てことで、好きにすればいい。
SHって3.3V作らなきゃいけないから、5V直結出来るH8の方が使いやすい。 H8/3052とH8/3664のピン互換、5VインターフェースのSHが出れば乗り換えれるんだけどな。 (今みたいにパソコンで簡単に作れる時代に作った基板じゃないから変更にお金掛かるんだよな・・)
>>34 SH7146 シリーズ
[電源降圧回路の内蔵や低消費電流化を図って高速化にともなう消費電流増加を抑止しており、80MHzの高速動作でありながら5Vでの単一電源動作を実現しています。]
最近はシステムを全部3.3Vにする方が簡単な気がする。
37 :
774ワット発電中さん :2010/10/02(土) 00:45:56 ID:KVACoPQQ
InterfaceのSHマイコンは、相変わらずMP3再生かぁ。他にネタはないのか。 マイコンは。
>>36 アナログと繋ごうとすると自由度ひくいよ。
単電源だと5Vインターフェースが出来る方が使い易い。
開発で使う処理は一通りあるし、 モチベが出る目的ではあるし。
>>35 ピンコンパチブルじゃないんだよな。
まあ、8ビットバスにしたときのデータバスの使い方(H8はD15-D8を使う、SHはD7-D0を使う)
が違う(=アーキテクチャの問題)から無理なのかもしれないが。
>>36 3.3VだとフォトカプラのI/Fなんかで電圧マージンが少ないんですよ。
結局5V用意しなきゃいけない。
確認LEDに青・白系が使えない。
あと
>>38 の言うとおりアナログ系
>>40 >3.3VだとフォトカプラのI/Fなんかで電圧マージンが少ないんですよ。
そんなことないよ一般のはOK。高速ホトカプラ代用ならアイソレーションICつかえ。
>確認LEDに青・白系が使えない。
それは大した意味無いからwww
Wikiに「組み込み向けのマイクロプロセッサとしては世界的に大きなシェアを誇る」とあるから消えないだろうな
>>42 要出典 の記述だね。 Wikiに書いてあるからといって無条件に
信じるのはどだうかな。いい加減な内容が多いという指摘もあるし。
H8/300Hはホームページにすら載ってないし、H8Sのロードマップにも
今後の新製品の予定もない。新規開発には、別のCPUを勧めて
使われなくなるのを待っている状態だね。つまり自然死待ち。
英語言うと phaseout(段階的廃止) でしょう。
>>41 >一般のはOK。高速ホトカプラ代用ならアイソレーションICつかえ
IC使えば何VでもOKだわな。3.3Vを別途用意しないと行けないし。
>>46 >こういうところに載ってないということ。
いや一応H8Sを選んで見ると左下にあるというwww
>そういうのを Phaseout(段階的廃止) っていう
そんな主張では現製品は全部Phaseoutのカテゴリになっちまうからねw
生産継続が計画されているかぎりPhaseoutとは言わないでしょう。
HEWで電源が入った時1回だけ実行されるリセット関数はどこに書いたらいいんでしょうか? 割り込みベクタテーブルにも見当たらないんですけど。
ハードウェア的対応じゃ駄目なの?
>>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なのに、熱心なサポートごくろうさまですね。
それで結論として、H8はいつディスコンになるの?
>2) H8/300H,H8/300H Tiny, H8/300は、薄い青い背景に入っていない。 H8/300Hのところ、クリックできるんだからどうでもよくね?
>>48 shのことかな、hewなら、雛形書いてくれるから...
探し方が下手なだけのような?
マニュアルをよく読みませう。
>>51 >ルネサスは生産をやめると言ってない。
>>50 にも書いてますが、
私の知る限りの情報だけど。今の時点では分かならいのでは。
>>52 >H8/300Hのところ、クリックできるんだからどうでもよくね?
あなたが、そう思うのならそれでいいんじゃない。
やめるのが、分かっている製品からは、早く手を引くのが賢い選択。
私はそう思うだけよ。他人が使うのを私には止められないしね。
>>55 H8ならベクタ0のアドレスがリセットのエントリアドレスになってるのでは?
hewなら雛形書いてくれるのに、
マニュアルが読めないのなら、CQのH8系の本読んでみたら、
マニュアルってH8/3052のハードウェアマニュアル?
>HEWで電源が入った時1回だけ実行されるリセット関数はどこに書いたらいいんでしょうか? ちょっとあいまい。電源オンというのは、電源をオンしたときだけという こと? つまり、電源オンもリセットの一要因だが、リセットの他の要因と 区別したいということなのか? 単純にリセットがかかったときに、一度だけ実行するだけの処理なら 単に、通常処理の前に一度だけの処理を記述すればよいだけ、 電源ONと他のリセットを区別するのであれば、ソフトだけでは難しいかな。 質問にはあいまいさがないようにするのが大事なんだよな。あいまいな事しか 書けないような奴に限って、そんなことは書いてないとか逆ギレするのが多い。 自分の未熟さを知れと思いたくなる時がよくある。
1. 努力を放棄すること いやしくも「教えてクン」たるもの、努力をしてはならない。過去ログを読んだり、検索してはいけない。 「英語は苦手なので、分かりません。」は、高く評価できる。辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。 他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、 正しい「教えてクン」である。 また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。 「サッパリ」という単語が「やる気の無さ」を効果的に表現している。 「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。 2. 情報を開示しないこと 使用OSや、機器構成などの必須の情報を知らせてはならない。マザーボード名やBIOSのバージョンも同様だ。 具体的なアプリ名やバージョンも隠蔽すべきだ。「DVD再生ソフト」のように曖昧に表記しておけばよい。 反対に「前から欲しいと思っていた○○」とか「安売りされていた○○」 等の「どうでもいい情報」は、どんどん書いてやれ。 トラブルの場合は、状況を正確に記述してはならない。「なんだかうまく動きません。」とか「エラーが出ます。」等と具体的なことは何も書かないことが重要である。 また、自分の試してみた事も具体的に書いてはいけない。考えられる組合せのマトリックスを作成し、状況を整理するなどもってのほかである。 最悪の場合、それだけで問題が解決してしまうこともあるのだ。「いろいろやってみたけど、動きません。」が理想的だ。 3. 答える人間のことを考えないこと 「教えてクン」は、孤高の戦士である。相手のことを考えるようでは教えてクン失格というものだ。以下のような行動が、望ましい。 初心者であることを高らかに宣言し、初心者向けの丁寧で分かりやすい説明を強要する。専門用語の使用を禁じておくとさらに効果的である。 簡潔な説明を禁じられたヲタクどもは、同じ内容を説明するのに、何倍もの労力を強いられる。自分は努力せず、相手には多大な努力をさせることこそが 「教えてクン」の真骨頂である。 マルチポストも有効である。そのBBSを信用していないことを明確に示せる。「どうせ、お前らじゃ分からんだろう。」という意志表示として高く評価できる。 もちろんマルチポストの非礼をあらかじめ詫びてはならない。それでは、単なる「急いでいる人」になってしまう。それは、教えてクンではない。 質問のタイトルは、「教えてください。」で良い。タイトルを読んだだけでは「何に関する質問」か全く分からない。 そういう努力は、答える人間にさせれば良いのだ。とにかく、答える人間が答えやすいように気を使って質問してはならない。 傲慢で不遜な態度が必須である。「聞きたいことがあります。」など、プロの仕事であろう。
4.中途半端な丁寧語を使うこと 完全なタメ口や高圧的すぎる言葉使いは厳禁だが、「〜がよくわかんないんですが」などの 言い回しで相手をさほど敬わない態度を示すことにより、「仕方ないからおまえらごときに聞いてやってるんだよ」的な ある種の押しつけがましさを表現できれば上級者の域に達したといえる。 半端な丁寧語の合間に、「しょうがないじゃん」「わかんないんだよ」など、 気の弱い逆切れともだだっ子ともとれるような表現を挿入できれば、もはや黒帯である。 5. 強い言い方をされたら黙り込むこと 「そんな言い方をされるくらいなら聞かなきゃ良かった」「こんなくだらないことでなんでいちいち怒るんだ」などなど、 相手の怒りの原因を理解しないことにより、相手をさらなる怒りの渦へと追い込むことが重要。 何があろうと原因が自分であることを理解してはならないし、どう言われようと反省した旨を相手側にしらせるなどはもってのほかである。 「初心者だから難しいことはわかりません」「初心者だから専門用語はわかりません」「頭悪いんで・・・」 「すごいねえ、なんでそんなこと知ってるの?」など、謙譲や尊敬の態度を使い分けつつ、 相手の神経を逆なでするのが、正しい教えてクンへの道である。 最後に、言うまでも無いことだとは思うが、答えてくれた人達にお礼の言葉を返すなど言語道断である。 せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っているようでは、臥竜点睛を欠いていると言わざるを得ない。 質問だけしておいて、後はシカトが基本である。 上級テクニックとして、「そんなことはもう試しました。」とか、「そこまで初心者じゃありません。」などと言って、 回答者の神経を逆なでしておけば完璧である。 以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。 ビバ!教えてクン! 教えてクンに栄光あれ!!
パワーオンリセットはH8に限らずCPUの基本だな。 基本すぎてリセット要因には書いてないことがある罠。 パワーオンリセットとマニュアルリセットが書いてあるのにマニュアルリセットが使用不可とか書いてあってぱっと見わけわからない罠。 どっちかってとリセット回路の勉強だな、これ。
リセット要因が分離されてるのはSHですよ。
H8ってブラウンアウト検出できるの?
>>60 >>61 むつかしすぎてわかりません
もっと簡単におしえてください
頭わるいんで
ただのリセット端子に贅沢なことを言ってる人が...
67 :
774ワット発電中さん :2010/10/14(木) 13:25:27 ID:6hx9U2iF
トラ技の別冊買ってきちゃったけど これ32ビットじゃん 使いこなせないよどうすんのこれ
>>67 H8SXだっけね。 Cで書くなら一緒じゃない?
しょーもないことをしょーもないレベルでやらせて贅沢さに酔いしれるもよし
速度が必要な処理をわざと速度を気にしないソースで書いて速さに舌鼓うつもよし
理解する気もない奴に語ることは何もない 失せろ
うしなせろ?
71 :
67 :2010/10/14(木) 15:55:47 ID:6hx9U2iF
こんなもん買うんだったらスペースシャトルのプラモ買うべきだった! 散財だ!
本誌の方をよく読みませう。 16bitマイコンなら使いこなせるのだろうか?
どっかの辞書:「使いこなす」は、物を十分に機能が発揮されるよう有効に使用する意。 おれ、H8のフルスペックがどうしても要るようなことって、速度的なこととか、外バス的なことぐらいしか遭遇したことないな。 そして楽したいから、さらに上のスペックの石を頼む。
>>73 ずっとH8を使うかは別として
日本人にとってH8以上に楽に始められる石はそうそうないんじゃない?
>>74 「始めるのがラク」と言えばPICだろう。
その後は知らんが。
豚切りですが、ちょっと漠然とした質問いいでしょうか トラ技別冊付属の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にすべてを書いたらどうなるのか、とかまだやるべきことはあるのですが 何日か悩んで煮詰まったので質問させてください
NMIにプッシュスイッチつないでるとか NMI使わんでも適当な箇所でシリアルに出力させるだけでいいような
>>76 NMIで実行される部分はROMに有るのかな?
もしRAM上なら実行される前にメインのバグで、ぶっ壊されてるかもね
79 :
774ワット発電中さん :2010/10/15(金) 20:01:43 ID:l+v1nC7L
>>75 同意。
LEDピコピコとかもやりやすいしね。
INT_NMIって普通の関数宣言? ちゃんと割り込み用に使うってコンパイラに指示出してる?
>>77 NMIにプッシュスイッチつないでいます
>>78 INT_NMIはロードされたRAMにあります
壊してる可能性が高いですか。やっぱり
割り込みがかかる4600バイトのときとダメな4900バイトのときで
mainの内容は1バイトも違わないのでなぜ壊れるのかが謎なのですが
ROMに全部おいたらどうなるか試してみようと思います
>>80 最後がrteになっていることはobjdumpで確認しました
まずプッシュスイッチのチャタリングを疑うべき。 NMI処理ルーチン中にさらにNMIがかかっておかしくなっているのかも。 今H8の仕様書見る余裕無いけど、 H8ってNMI処理中にさらにNMIかかるんだっけか? (Z80だとNMI処理中に当たり前のようにさらにNMIがかかっていた)
>H8ってNMI処理中にさらにNMIかかるんだっけか? 当然かかる。 >NMI処理ルーチン中にさらにNMIがかかっておかしくなっているのかも。 チャッタリング程度なら余程重い動作じゃなきゃ多重にはならない。 ノイズキャンセル設定変えてみたら?
押したときはね。離した時に...
>>82 ,83
ありがとうございます
とりあえずNMIの多重割り込みかどうか切り分けるためにIRQxに変えて
先頭で割り込み禁止してみます
あと、オシロでチャタリングの確認をしてみようと思います
>>32 正確にはGCCをH8用にカスタマイズした奴がゴミ
gcc信者が居るので(ry
素のgccじゃ、bit操作命令の使いこなしがいまいちだからね。
gccは単なる教育用。あんな糞コードで製品レベルで使うことを期待するのは大間違い
何使っても、糞コードを書いてるんですね、わかります。
CCH8 を使用してCのソースファイルをコンパイルし、 L38H でリンクしています。 リンクスクリプトの セクション指定? は↓こんな感じです。 START VEC(0) START P,C,D(200),R(0FFEF10),B(0FFEF20) ROM (D,R) この環境でC言語のグローバル変数の初期化を行いたいのですが、 どのように行えばよいのでしょう?
Cosplay Chaos Hannover 8?
ああ、ごめんなさい。CCH8は自分が作ったCCH8.batでした。 コンパイラはC38Hです。
c38hは古いので、h8用のhew使えばいい。 hewだとstartupの雛形を作ってくれるので、何も考えなくていいよ。 c38hを使ってた頃に、アセンブラで書いたことあるけど、忘れた。
なんでHEWつかわねーんだよ。アホか
コスト削減のためにgcc使ってくれと客から指定されたことがある。 時代的にはHIMよりは幸せだと思う。
C38Hを使っているときに、簡単な処理なのにトラぶったことがあり、 そのときに見つけたのがGDL。 コンパイラ替えるだけでバグは直った。 今はHEWだけど、最近GDLを見直したらシリアルとか関数があったのね。
>>94 まちがいついでにコンパイラはCC38Hでした。
でも出来ることは出来るんですね。
出来ればCで記述して".ctorsセクションに配置する"的なことをやりたいんですが、
無理ですかね。
その辺理解してから hew を使いたいと思っているのですが。
>>98 セクションの大きさがCだと取れないから、アセンブラで書いた記憶が...
というか、コンパイラのマニュアルに書いてあったコードを使っただけなんだけどね。
マニュアルに書いてあることも理解で出来ないでやってた人もいたなあ、遠い目
Cでの書き方の練習がしたいなら、gccの方がいいかも 無理しないで、hewの雛形見たほうがいいと思うけど... 知りたい部分は隠蔽されてるけどね。
>>99 一つだけ確認させてください。
MOV.B #0,R0L
MOV.B R0L,@_gVariable
こんな感じで1個づつ初期化する方法ではないですよね?
そのほか私の質問は全て無視の方向でお願いします。
もう少し調べてみます。
背景としてはひょんな事からH8のRS232Cデバッガを作らされる羽目になりまして、
一応希望の仕様はほぼ実装できたんですが、
グローバル変数の初期化が最後までわからなくて、質問したしだいです。
ROM (D,R) って書いてあるから、 Dセクション(初期値を持つ変数領域) を Rセクション(初期値を持つ変数の実際の領域) に コピーするってことだよね、やりたいことは Bセクションを0クリアするのを忘れずに コンパイラのマニュアルじゃなくて、リンカーのマニュアルに書いてあるよ。
3052に限らず300Hシリーズ全部だね
V850にやられたのかね。
RXに移って欲しいんだろう
互換コンパイラでも提供すればいいのにね。
109 :
774ワット発電中さん :2010/12/21(火) 14:24:56 ID:+KZ3MwQz
今まで3052BF・3694F・62P(M16C)あたりを常用してきたんだが こんな終息決定デバイスを新規案件に使ったら客に怒られる。 今後の標準マイコンを何にしたらいいんだろう。 R8CかRXかはたまたARM系に乗り換えるか・・・。 とりあえず直近の案件に何使おう?R8Cだと性能的に心許ないし、RXはまだまだ。 ルネサスも小規模事業者に冷たくなってきたから、やっぱARMか。。。
今は業界再編の過渡期と製品の移行期が重なってるから、デバイス選定は特に難しいな。 個人的にはH8の定番デバイスであれば、まだ継続使用OKだと思ってる。 Renesasが安泰なうちは供給停止にはならないだろうし、 会社がヤバくなればR8Cだってどうなるか分からない。 全くの試作から始めるのであれば新シリーズがいいけど、 納期がなかったり失敗が許されない場合は実績のあるCPUの方がメリット大きい。 もちろん顧客にこれらを説明して承諾してもらう必要はあるが、 今のところ拒否されたことはないな。
秋月に H8Sが入荷してるんだが、時期が時期だけに 在庫処分かな?とか勘ぐってしまう。
H8は型番が多くてよくわかりませんが… 今入ったのは前の500円ジャンクの上位版というかほとんど変わらないみたいに見る 500円ジャンクで作った物をコンパクトにまとめるのはいいかもしれない
1.7mmピッチのワンタイムなんて
>>111 どうせ倒産処分品だろ。AAAだから相当在庫抱えてたようだな
ブートローダーぐらい書き込んで売れば付加価値が付くのに 今後の(客の)展開待ちかな?
116 :
774ワット発電中さん :2010/12/24(金) 21:14:45 ID:B/raPb2H
この前、パチンコメーカー倒産してなかったっけ? あそこから出てきたと観てます
1.7mmて。どうやって使うのこれ ピン広げて表面実装すんの?
>>115 系
ブートローダーとかなくても、外部ROMモード(動作モード1)で外部ROMか
ROMエミュレータをくっつければ何とかなる希ガス。
>>117 系
つ変換アダプタ(サンハヤト、?,728)
斜め45度で1ピンおきに伸ばして実装
1.27ピッチ基板に斜め刺し
外部に出せるメモリ空間は64kか? 応用範囲が狭いなぁ…
>>121 メモリバンク(ページ)を駆使すれば×nの空間が使えます。
123 :
774ワット発電中さん :2011/01/14(金) 13:04:54 ID:2xaslKMp
CQのSX基板付属本、買わなきゃ良かったよ つくづく思うわ
またか。
買うなら秋月のワンタイムH8だな レールで買うと単価50円 外付けのROMがいるけど気にしない
外付けROMをSRAMにすれば、わりと楽しそうだ。
内部RAMで動いてるときは、Rとかの制御線はばたつかないんだな 当然の仕様だろうけど、なにか悪さ出来るかも
あれ? いつのまにかフラッシュ版がでてら これで誰かがライター作ったら使えるようになるな
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. 実際のスタックサイズを測定する方法はありますでしょうか? ○○レジスタの値を見に行けば良い、とかです。 よろしくお願いします
>>131 1. c
2. yes
3. ijou
4. suman
さっそくありがとうございます。了解しました。大変助かりました。 スタックサイズですが、 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
バグりまくってまともに動かないだろうな そんなコードじゃ
HEWにスタック計るツールついてなかったっけ?
ネストだっけ?
>>133 そんなデカい配列を、普通のエリアに配置してないのか?
>5. 実際には、long int配列(32bit)を1000個とか取ってあり、それを関数内部で処理したいので、 ローカルに確保して、ポインタとかで参照したほうが... >6. 関数内部で、printf()を呼ぶ回数の多い少ないは、スタックサイズに影響しますでしょうか? 呼ぶ回数はあまり関係ありません。printfに渡す引数の数がスタックサイズに影響します。 もっと、基本的なことからやり直したほうがいいような
マイコンでprintfを使うこと自体に・・
printf() のほうはできあいのを使う以上はしょうがないと思うけど 関数に配列を渡すときは、先頭アドレス(ポインタ)だけを渡すのが常識だよ
というか、1000個の配列の値をスタック経由で渡すのって、普通には 書きにくいはずなんだけど、どう書いてるの?
あ、ゴメン勘違い ^^; 配列を関数の中で Auto変数として確保してるから 関数が呼び出された時点でスタックを消費するっていうことね。 こういう使い捨ての大きな配列は、パソコンなんかだと malloc() 使うのが常識だと思うけど、 組み込み用途では malloc()で領域確保できなかったらどうする? っていう問題がある。 まあ、関数呼ばれてないときは無駄になるけど、静的に(関数外から見えないようにするなら 関数内部で static 変数として)確保するか、自分で管理して他と共用する領域を使うかだと思うよ。
>>131 あなたの頭の中で、やるべきことをいい加減に変換してない?
もっと具体的にやること書いてみなよ。
>>140 H8SもCall Walker っていうツールで、スタックの使用状況を調べられるはず。
使ったことはないけど、それでサイズのある程度、あたりが付けられると思ったが。
RAMが32Kもあれば、printf 使うのも通常は問題ないし、デバッグ時だけ
コードを生成し、実行時はコードを生成しないようにすれば問題ないでしょう。
1000個のデータが関数の中で使い捨てなら、auto変数でかまわない。
関数の中で配列データ使い捨てという状況はあまりないから、データを
静的に確保する場合が多いとは思うけど。
まあ、再帰・再入しなければスタックの使用最大値は関数の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) ; }
>>144 > 割り込みが発生して出力がでると思うのですが無反応です.
割り込み発生の設定はどこでしてるの?
146 :
774ワット発電中さん :2011/02/06(日) 16:56:56 ID:qXbNluxL
>>145 これで設定できていたと思っていたのですが・・・
どんな宣言がたりていませんか?
携帯で見てるので細かいことがわかんない。 1 割り込み時に実行するサブルーチンはどこで指定してる? 2 割り込み時頻度はどこで指定してる? 3 指定方法は正しい?
割り込み要因クリアしてないとか P2.DR.BIT.B5=1; でポート2のbit5の出力が固定だし... 初期設定があってるかどうかは自分で見直したほうがいいよ
別スレから誘導されてやってきました。すみません、教えてください。 (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 で良いでしょうか? ここまでです。上記のような説明だと、すごくイメージが和久のです。 どなたか、教えていただけないでしょうか? 幼稚ですみません
やりたいことは ×SCI=0x1234 ○*SCI=0x1234 だと思うけど
>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 を書き込むことができます。
>>150-151 どうもありがとうございます。
しっかりと説明していただいて嬉しいのですが、すみませんまだわかりません。というのは、
>int i ;
>とか宣言したときに、コンパイラは、メモリに変数領域を確保します。→納得です。
>メモリ上のどの番地に変数領域が割り当てられたかは分かりませんでした。→納得です。
>しかし、C言語は割り当てられた番地を知ることができます。→ここがわかりません。
int a; は、
コンパイラが自動的に、メモリのどこかに割り当ててくて、私たちには番地はわかりません。
が、それでいいと思うのです。配列にしても、b[10];と宣言したとき、
私たちには、メモリのどの番地から10個連続でも、また10個バラバラでも、関係なく
[添字番号]で指示すれば良いので、メモリの番地を知る必要がないと思うのです。
現在は、日立のヘッダファイルを組み込んで使っているので、アドレスを気にせずに
P1DR.BIT.B0=3; とかやっていますが、それはそれでポインタを使わなくても、
実現できているので、いいのかなと思っています。
なぜC言語では、突然ポインタが出てくるのか、それもわからないです。
なので、ポインタの嬉しさがわかりません。
会話になっていないかもしれません。 すみません。
P1DRうんたらって書けるように、ヘッダーファイルでdefineされてると思うけど 気にしたことなかったから、いざ聞かれると困る内容だな、個人的には
>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操作とは何をすることなのかが分からないと、上記のことは 理解できないかもしれません。
>>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定義ファイルをさわることも、覗くこともなく
プログラムが書けているので、ここであえてポインタを使うことがなく、
ポインタが良くわからないのです。
>155 >>しかし、main()とかのプログラムを書く上で、io定義ファイルを >>さわることも、覗くこともなく プログラムが書けているので >>ここであえてポインタを使うことがなく、 ポインタが良くわからないのです。 要するに、C言語のポインタについての質問ではなく、あなたがポインタを使う必要が あるかという質問でよいのでしょうか? あなたにポインタが必要かというと、あなたの今の習熟度では必要ないと思います。 C言語で行うプログラミング・テクニックにはポインタの使用が必須のものもあるの ですが、あなたの習熟度で、それを使うことは出来ないと思われます。 >>ここまでは何となくわかるのですが、ポインタを使う理由がわかりません。 理由は、>154 に書いてあるのですが。特定のアドレスにどうやってアクセスするか ということです。C言語の場合は、ポインタ以外には方法がありません。 これでも分からなければ、理解するのはあきらめてください。 >>H8内部のすべてのモジュールや、レジスタには、アドレスが決まっている、と思います。 これは正しくありません。H8の場合レジスタにはアドレスはありません。
>155 >>しかし、main()とかのプログラムを書く上で、io定義ファイルを >>さわることも、覗くこともなく プログラムが書けているので 追加で言うと、 この考えに捕らわれすぎです。 >154 に書きましたが、 P1DR.BIT.B0=3; などの記述は見かけ上 ポインタを使わずに出来ているだけなの ですが、それを分かっていないし、分かろうともしない。 だから、ポインタを使わずにプログラミングできているとの思いこみから抜け出せない。 それで、ポインタはいらないのではないか、必要な理由が分からないという結論に なってしまうのです。 自分の間違いを正すことです。自分の結論に周囲の人の説明を合わせようとするだけでは 正しく、理解することはできません。
>>155 ポインタなんて、どうしても必要になるまで使う必要無いよ。
ポインタが使えない言語もたくさんあるんだし。
>>158 他の言語で使えないのと、C言語で使いたいのは違うきがするのだが
良くわからない慰めかただなw
>それで、ポインタはいらないのではないか、必要な理由が分からないという結論になってしまうのです。 ポインタをプログラマに置き換えると...
ポインタが諸悪の根元のひとつ という考えからJavaは生まれてきたのだけどね。
162 :
774ワット発電中さん :2011/02/07(月) 09:47:44 ID:IoD6vHmU
何だこのバカ。
>ポインタを使う理由がわかりません
ポインタを使わないと記述できない処理があるからに決まってんだろ(苦笑。
ていうか記述が隠蔽されてるだけなのに「自分はポインタを使ってないのに
プログラムが書けてる、要らないんじゃね?」とか思っちゃうなんて
どんだけゆとり世代なんだよ。
>>161 「Javaにはポインタが無い」訳じゃないのはわかってて書いてるよな?
日本語で理解しようとしてるからね。 動かしながら、やるのが変な誤解をしなくていいと思うんだけど
ポインタがわかりたいならアセンブリ言語で書いてみてはどうか。 C言語がどうやってアドレスを管理しているかが何となくわかるんじゃなかろか。 構造体ポインタとかは謎のままだけど。 私がポインタでよくやるのは、グローバル変数のある範囲の上と下をポインタでもらって その間を for で1巡させて全クリアしてみたり、全カウントアップしてみたり。 これを普通にやるなら共用体を使うか、配列変数で嘘をつくか。
ポインタ難民がこんなところにw 専用スレもあるなあ・・
aは本当はaという名前の変数の値を格納してるアドレスなんだけど プログラムでaと書くとaの中身そのもの(値)を指すことになってて aという名前の変数のアドレスを明に使いたい場合は&a? *aはaという名前の変数の値そのものを指すけどその値そのものがアドレス?
言葉で説明求めるより、自分がやりたいことを コンパイル&実行して やったソースと結果をどうこうの方が... 書くことは出来ても、読めないっていうのはどうなのかな?
>>168 説明がうまい。わかりやすいです。
>同じ変数に対して、*と&を使うと思うから変になる。
なるほど、記号の使い分けが、じょうずにできていなかったんですね。
変数宣言で a
ポインタ宣言で b
なら、
(ちょっと補足すると)
a と *b が同じ扱いになり、参照した場合、どちらも格納されたデータが読める
&a と b が同じ扱いになり、参照した場合、どちらも格納するアドレスが読める
>>169 半端なことすなや。168の方がいいぞ。
「読める」っておまえ、書くのはどうするんだよ。
参照って、書くという意味もあるん?
参照って普通「読む」じゃない? とりあえず、書きかえるという動作がどういうことかをつまむと 変数は中身を読み書きするための据え置きの箱のようなものだから、中身はいつでも普通に読み書きできる。 箱の場所は判る(&a)が、場所が変わるのはおかしいので、アドレスが読めるのはいいがアドレスを書き変えるのはおかしい。 ポインタは(たとえば変数の)場所(アドレス)を指す(入れておく)ための『変数』だから、 アドレスを書き込めるのはアタリマエというか、じつは変数の中身がかわっているだけで、自身のアドレスはそのまま。 指されたアドレスが判る(b)のだから格納データも読み書き(*b)できるが、内部的には二度手間。 こんな感じかな?
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つは、全部正解(あり得る)でしょうか?
>>171 参照という言葉そのものには「書く」という意味はないが、目的のものを探し出すことを
「参照する」と言っているので、参照して書き換えるとかは普通にあるよ。
スレ違い。 ポインタの話してる奴はプログラマ板、質問主はメンヘル板行け。
unsigned int *SCI = (volatile unsigned int *)0x00808000; の、 (volatile unsigned int *)0x00808000; は、なんでカッコが必要なのでしょうか? unsigned int *SCI = volatile unsigned int *0x00808000; ではいけないのでしょうか?
まず教科書をちゃんと嫁っていうレベルだな
Cの話になると必ず教科書に載ってること聞いてくる奴が現れる だから大嫌いなんだよ、この話題
>>180 そう思ったら「〜という教科書の何章に書いてあるから嫁」って教えればいいだけだし。
でも
>>177 の、なぜカッコがあるのか、の話は教科書に載ってないぞ。
カッコは型キャストだろ。載ってない教科書なんてあるのか?
まだやってんのw 場違いが恥ずかしいって感覚ないんだろうなw
えっ? あのカッコがキャストのカッコ? 16進の数字を伽過渡するの? え〜っ??
(unsigned)-1
今、秋月の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が点滅)。
また書き込み環境も色々変えてみたのですが書き込めませんでした。
別の人(共同で学習中)のボードでは書き込めるので、ハード要因なのは間違いないです。
タイミング悪く、書き込んだ直後に故障してしまった可能性もあるのですが、
もし二段落目が要因だった場合、何か対処法はないでしょうか?
モード変更して、リセットしてないとか?
秋月でR8Cを取り扱うようになったので試してみようと思うけど、 ライターは何がいい?
UART書き込みじゃないの? ソフトはFlashStarterLightとかだったかな?
教えてください Cでマイコンソフトを書いたとき、状態遷移が20個くらいあったとします。 各状態での処理は、10〜15行程度です。 main()でそのまま書くと、300行くらいになります。 上記のような場合、main()が300行にもなるのは 「main()は簡潔に、全体の動作がわかるように書く」という思想に反すると思います。 しかし、各状態を関数に出すと、各引数が10個も15個もあり、また返り血も1個では済みません。 関数化すると、読みにくくなるような気もします。 一般論として、こういう場合はどのようにすればよいのでしょうか?
>>191 ぷろぐらまースレで聞いた方が幸せな内容だと思うが。
引数と戻り値を全部テーブルなり共用体にして、ポインタ渡ししちゃだめなのか?
なるほど、ありがとうございます。 そのような手法を使っても、やはりmainは簡潔にしたほうが良いですか。 確かに「ベタで長く」なりますが、mainにあってもいいのかな、と思うですが。 >ぷろぐらまースレで聞いた方が幸せな内容だと思うが。 とも思いましたが、組み込み系Cの作法と、画面Cの作法と違うので?と思いました。 ありがとうございます。
>>193 作法は同じマイコンでもいろいろあるしねえ。
mainをキレイにするってのは管理の問題。
ようは何にそれがいるのか次第でいいと思うが。
引数なんかあんまり使わずほとんどグローバル宣言で使いまくる俺。
状態遷移がこなれてないから、悩んでるような?
設計から見直すべきだろうな 無理やりでっち上げても不幸になるだけだ
>195 >>状態遷移がこなれてないから、悩んでるような? 状態遷移は手順の制御だけだから。質問者は、データの扱いに悩んでいる と思われるのですが。 >196 >>設計から見直すべきだろうな もっともだと思いますが、質問者には適切な設計をするノウハウがない ようなので、見直ししろでは解決にならないような。質問者からすれば、 どういう設計をすればいいか、教えてほしいということではないでしょうか。
あー 確かに長いmainになった気がする しかもネストも深くて異様に読みにくい できる範囲で関数に切り出したな
状態遷移っていっても、やり方なんて無数にあるのに(ターゲットもわからない) それを教えてと言われても... 俺流な変態的考え方が理解できるとも思えないし(どう教えたらいいのかって感じ)
関数化するときに必要最低限の引数にする(なしもあり)とか (で、参照回数が少ない変数はstaticな変数にする) 関数の返り値でどの状態にいるかを返すところからやって main処理を考えるとか
そういう手間をかけてまで、関数化することもないと思う。 mainで長くなってもいいじゃん。 ダメなの? #include で、外部ファイルにするのは良くやる。 引数だ、返り血だ、と考えなくてもいい。 RAMに余力があるなら、static、グローバル変数 いっぱい使う。
人によるんでないの 俺は50行くらいが許せる限界かなあ まあ関数化するためにパラメータを引数と別に渡すなんてことやらかすなら もっと長くてもいいからまとめて欲しいが
mainすっきり main() { main1(); } main1() { ・・3000行ぐらい }
3000行にわたるようなソース、見たことないし。 どうやったら3000行も書ける? わかった、コメント//いっぱいか。
UI部分を書くと雑多な事が多すぎてどんどん行数増える
コード規約で行数制限するところもあるし、静的解析ツールを使うことを 義務づけているところもあるんで、行数の多い関数が許されない場合も多いよね。 静的解析ツールを使うとワーニングが出まくるんで、苦労する。 使ったことのない人は、お前のプログラムがヘボだからとか言うんだろうが。 普通の感じで書いたら、出まくりなんだよね。こんなことを文句言うかってのもあるし。 言うとおりに変えたら、別のワーニングが出て。どうすりゃいいんだって感じなんだよね。 覚えているのは、関数のパラメータをポインタ渡しにしていなかったら、ポインタにした ほうが速いとかメッセージが出たんで、そのとおりにしたら、ポインタの安全性は 確保できているかってメッセージが出たこと。 これなんかは、どっちにころんでもワーニングが出るんで消しようがないと思うんだが。
そこまで道具に頼らないといけないのかいな?
関数いっぱい作って、ガンガン呼びまくってもいいけど、 処理速度が遅くなって困る。 可能なら、関数コールなしでいきたい。
一ヶ所からしか呼ばない何も渡さない関数だと、コンパイル結果ではcallになっていなかったり
>>210 なるほどぉ。それは気付かなかった。
LCDの駆動ルーチンなんて、関数呼びまくりですよね。
mode7で動かすと、clockの↑↓を、ポートで叩かないといけない。
LCDのためにmode5にするなんて、I/Oポートもったいない。なんとかならないですかね。
H8を高速にしても、LCD表示器がついてこないのがほとんどですが。
結論的には、超高速なLCD表示器が欲しいというところです。
関数化を推奨してる人もいるけど、 なんでもかんでも関数化すればいいってことは無い。 あっちこっちのソースを見なければ行けないので、見にくくなることがある。
見とうしの悪い設計する人がまだいるんだ
構造化設計のことを知らなくても、関数への分割くらいは、不勉強なやつでも 知っている場合が多い。そのため、余程 不勉強か頑固なやつじゃない限り、 長大な関数を作ることはないようだ。 しかし、モジュール強度の考え方を知っているのは多くない。 処理を関数に分けるのは簡単なので。むしろ関数で処理をずたずたにされた プログラムのほうが良く見かける。 だいたい、そういうプログラムはやたらとグローバル関数を使うので、 大体すぐに分かる場合が多い。 その場合、プログラムの、あっちこっちを見ないといけなくなり、無駄に 関数の長いプログラムよりも、よりたちの悪いプログラムになる。
>214 >>だいたい、そういうプログラムはやたらとグローバル関数を使うので、 ^ ^ グローバル関数 --> グローバル変数 の間違いだった。 自分の経験した範囲だと、へたなプログラマはグローバル変数の多用を 好む場合を良く見る。 いわゆる優秀なプログラマにもグローバル変数を多用するのもいる。 一くくりにはできないが、そういう人には、記憶力もよくてデバッグ能力が あったりするので、凡人には難解なプログラムを書いたりするのもいる。
グローバル変数はマイコンレベルだとむしろ積極的に使った方がいい気がする
>グローバル変数はマイコンレベルだとむしろ積極的に使った方がいい気がする こういう人は自分の周りには、いて欲しくないなー。 マイコンレベルでもC言語で数万行なんてのも、もう珍しくないしね。 RL78でも、最高 ROM 512Kらしい。このレベルだとライブラリを使わなければ、 10万行をこえても不思議はない。 マイコンレベルってのをどういうレベルと思ってるんだろうね。 グローバル変数の多用は、自分に言わせれば設計の放棄だね。適切に設計を すれば、グローバル変数は、ほとんど必要ない。 無造作にグローバル変数使っているプログラムだとグローバル変数が数百なんて のもあって、目を覆いたくなるときがあるよ。 とはいえ、メモリがとっても厳しい場合はあるんで、使わざるをえないときも あるが、積極的に使うべきではないと思う。
え、100円マイコンでなんか作ったくらいのレベルでは。 仕事じゃあキチンとしてないとダメだわな。
アセンブラで書く仕事とかどうなるんだ
機械制御系のプログラマとして入ったが、扱うデータが多すぎてほとんどグローバル変数だった。 当然、アクセス順序やフラグ管理が徹底的に決められていたけど。
今時は、関数に隠蔽して、そこでグローバル変数アクセスでしょ。 速度がほしい時は、inline展開するようにすればいいし ローカルですむ変数は直アクセスな書き方するな
>220 アクセス順序やフラグ管理を徹底的に決めるって方法は、一般的に仕様の追加や 変更等で破綻しやすい。 グローバル変数じゃないと処理できないってプログラムは、よくよくよく見ると、 機能の分割がまずくて、データを局所化できなくなっていることも多い。 使い方にもよるが、フラグで管理する方法は、バグを生みやすい。 というのは、どんなに優秀でも同時に管理できるフラグは、たかだか 5つくらい。 例外はあるだろうが、一般的には有効とはいえない手段ではなかろうか。 >722 >>今時は、関数に隠蔽して、そこでグローバル変数アクセスでしょ。 なにが、今時なのかわからないけど(苦笑)。いや、自分の周り以外は なかなか見えないんで。ちゃかしているわけではない。 1箇所にまとめると、変更で全体がコンパイルされるから時間がかかるし、 やり方が分からないんが。一言いえば、どうしてグローバル変数にしないと いけないの?
割り込みの関数が書き換える変数はグローバルにしないと作りようがない
>222 goto談義でもよくある混同だが、 大域変数を使いまくる奴にバカが多い というのと 大域変数を使うのはバカである という主張は別なんで、ちゃんと分けてくれんかね。 スコープの管理が関数の上はファイル単位しかないCでは 大域変数を使うのはスコープ管理が雑 と言われてもしかたない面はあるが、同じ理由で完全に無くすこともできんよ。
関数に隠蔽 って、昔から言われてたんだけど、実際に使ってたのを見たことなかったんだ linuxのkernelとかはヘッダーで変数アクセスをinline関数化してるけど
>224 どっちに対しても、別にバカなんて言ってないし、どっちを対象している というわけでもない。なので、混同はしてないですが。 オブジェクト指向でないC言語で、情報の遮蔽とかは難しい。 とはいえ、構造化設計でもモジュール強度とかの考え方はある。 無条件にグローバル変数の使用をよしとするのは違うと感じている。 無理やり、グローバル変数の使用を少なくする必要はないと思うが、 情報の局所化を考えて設計していけば、それほど必要ないとも思う。 という、自分としては常識的な主張をしているつもり。 主義主張に合わないからと言って、バカよばわりはしませんよ。 さらに言えば、狂信的にグローバル変数の追放を主張しているつもりもない。
ま、ケースバイケースじゃないかと思うんですが… いいグローバル変数もある、だけど、悪いグローバル変数もある、って感じかなあ
>>222 > 1箇所にまとめると、変更で全体がコンパイルされるから時間がかかるし、
C言語で書く場合、グローバル変数の実体(定義)を1つのソースファイルに
まとめて、他のソースは、グローバル変数のextern 宣言だけを含むヘッダ
をインクルードして参照すれば、変更による再コンパイルは最低限で済む
のでは? 少なくとも、参照解決はリンカの仕事。
それとも、特定コンパイラ依存のインクリメンタルコンパイルの話とか?
>>225 関数内に隠蔽というのは、関数内で変数をstatic付きスコープが関数内しか
ない変数として定義することを指しているのでは?
>>226 > オブジェクト指向でないC言語で、情報の遮蔽とかは難しい。
グローバル変数をstatic付きで宣言して、分割コンパイルすれば、他のソース
からは、C言語でもグローバル変数を隠蔽化することはできるよ。そのままでは
クラスオブジェクトみたいに、複数のインスタンスは実現できないけど。
> 無理やり、グローバル変数の使用を少なくする必要はないと思うが、
> 情報の局所化を考えて設計していけば、それほど必要ないとも思う。
同意。グローバル変数を多用しているソースの多くは、本来なら関数の引数
や、関数の戻り値として渡すべきものを、グローバル変数で渡している場合
が多い。ほとんどの関数が、引数も戻り値もvoid。(w
いろいろ見てきて、制御系はプログラマの質が低い印象がある。
書き方っていうよりは考え方でどうするかって事だから そのへんを突っ込むと宗教論争みたいになるような
>228
>>C言語で書く場合、...
余計なことを書いたんで、誤解されているかな。 そういうのは自分もやってるよ。
>>222 今時は、関数に隠蔽して、そこでグローバル変数アクセスでしょ。
と、>222 の書き込みがあったので、 本当は、
関数で遮蔽しておいて、グローバル変数は無意味じゃないと言いたかったんだけどね。
>>グローバル変数をstatic付きで宣言して、分割コンパイルすれば...
同じことはやっているけど、言われているような理由でいまいちな感じはぬぐえないんだよね。
>>いろいろ見てきて、制御系はプログラマの質が低い印象がある。
低水準のプログラムは難しいからね。いわば土俵が違うので、一概にはいえないのでは。
それに、参考にできるようなソースや書籍って意外とないんで、自習するのも難しい。
制御だと一から作るような場合も結構多いし。 かなりのものが用意されているOSの下の
プログラムとは難しさの性質が違うと思うんだよね。
void hoge_set(void) { extern int hogehoge; hogehoge=1; }
マイコンレベルでpcの様なモジュール単位のプログラムしても非効率なだけだと思うけどね。
?
スイッチとか液晶とかがあってUI部分を組むと無駄に肥大化するけど、 単に信号処理するだけの石ならでかいmain()一個で書いた方が素直にできる
非効率って 実装作業のことなのか、マイコン動作のことなのか?
>232 >>マイコンレベルでpcの様なモジュール単位のプログラムしても非効率なだけだと思うけどね。 モジュール化には、速度やサイズのペナルティはあるが、程度は少ない。 逆に、全体の見通しが良くなり、無駄な処理を省きやすくなる。小手先だけの対策よりも 高速化や省メモリできる場合が多いし、その効果も大きい。 速度よりもバグで苦しむケースの方が圧倒的に多いので、つまらない"効率化"よりも"可読性"を 重視するのが、今時のプログラミングですよ。 得てして、そういうコードの方が、効率が良かったりする。モジュール化されてないようなコードは 無駄な処理で遅かったり、それ以前にバグだらけで使えなかったりすることも多い。 2Kとか4Kとかのおもちゃレベルのプログラムなら別でしょうが。マイコンレベルとは、その程度の レベルのコードを言っているのですかね?
きっと電源制御やモータ制御のプログラムを一度も書いたことがないんだろうな
>237 >>きっと電源制御やモータ制御のプログラムを一度も書いたことがないんだろうな モーター制御って、普通にみんなしていることなんですかね? 電源制御プログラムを、書いたことある人なんて、ほとんどいないんじゃない。 マイコンレベルと書いたのと同一人物かどうかは知らないけど、そんなニッチな領域の話を "マイコンレベル"とするのは、無理があるでしょう。 モジュール化だけではないが、パフォーマンスに余裕があれば、いろいろな手法を使える。 というのは、時間の制限がゆるい、あるいは、限られた処理の時間の制約を満足すれば、 普通にプログラムできる。そういう処理の割合の方が圧倒的に多いので、可読性を上げるような 手法が有効な場面は非常に多い。 処理的にきついときでも、安易にプログラムの高速化手法に頼るのはリスクが大きい。 他の解決法にすべきって場合はあるんだが、これでやれってのが多いのは、確かにある。 それでも、可読性、移植性、コーディング規約、静的解析ツール、設計レビューのしばりは、 よくあるんで、モジュール設計なしに許される場合は、決して多くはないと思う。
Cで自由に書ける時点で、もうマイコンレベルを超越してる気がする
ユーザーのストレスを軽減する目的で、その存在をも気付くことはないのなら プロダクツとしての完成度は高いと言えよう(キリリッ
教えてください。 H8をC言語でプログラム組んでいます。 signed unsigned の扱われ方が知りたいです。 例えば singned char A; unsigned char B; A = -127; // 10000000 B = A; // Bの中身は? 0x80でしょうか B = 5; // 00000101 A = -1; // Aの中身は? +5でしょうか
charは-128〜127の範囲だよ。-0が有り得ないから PA-0〜PA-7に出力してはいかがか
んなこと人に聞いてないで ルネサスCでシミュレータデバッガで自分の眼で確かめれ
>>283 モータ制御がニッチだって???
きみは組込プログラムの持つ一面を全く知らないことに気づくべきだな
>244 そりゃどうも、どんなプログラムであれ、知っている分野なんて僅かなもんだ。 電源制御てのがあったので、ニッチという言葉を使ったが、some of them という 言い方が正しいか。 ステッピング・モータ、ACサーボモータは使ったことがあるけどね。 ACサーボは、専用基板を使ったんで、コマンド送るだけだったが。 モジュール化できないのか、しないほうが良いと言いたいのかは分からないが いったい、どんなモータ制御のことを言っているのでしょうか。モータ制御って くくりじゃいっぱいあると思うんですが? 単純に、ハードの設計が良くないか、結構特殊な案件の気もするが。 モータ制御って、そんなプログラムばかりなんでしょうか?
>>246 >ACサーボは、専用基板を使ったんで、コマンド送るだけだったが
その専用基板の中で一生懸命制御しているCPUのファームのことだよ
実際君が使ったことあるように、小型民生機器から車や電車に至るまで
身の回りに溢れてるよ
特にグローバル変数に関する書き込みをみてると
ああやったことない人なんだなというのがわかる
>247 ありゃ、ずいぶん早いお答え。 そんな感じの制御とは思ってはいたけど。 自分の分野でも何が正解かとは言えないし、ましてや知らない分野だからな。 当事者がそういうんならそうでしょうとしかいえないですな。 別の人の話も聞けると面白んでしょうが、なかなかそういう訳にもいかないからな。 同じ機器でも、実際にプログラムする人によって違うので、一意見として 受け止めるべきでしょうな。 いい加減を言っているというわけじゃないが、サンプル1だからね。
アセンブラでレジスタで変数を保持したまま廻すならともかく、きょうび グローバル変数にしたから処理が早くなったなんて、まずないよね。 もっと見直すべき場所がある。
PxDR <<= 1; とか書いてる私にはグローバル変数減らせと言われても無理。
グローバル変数を使わない人は、ポートの入出力とか、機能の設定とか どうやってるんだろ
>グローバル変数を使わない人は、ポートの入出力とか、機能の設定とか >どうやってるんだろ I/Oボートは、グローバル変数とは、通常みなさないだろうな、仕様書には 変数リストなんてのもあるけど、I/Oボートをグルーバル変数として載せた 仕様書にはさすがにおめにかかったことがない。 そんな、ことを考える人がいるんだというのは、新鮮な驚きだね。
会社で言われた通りの事をするのが仕事だと思ってる人はたくさんいるぞ
会社で言われたコーディング規則を守らないのかお前は
>>252 > I/Oボートは、グローバル変数とは、通常みなさないだろうな、仕様書には
> 変数リストなんてのもあるけど、I/Oボートをグルーバル変数として載せた
> 仕様書にはさすがにおめにかかったことがない。
そうなんだけど・・・動作的にはグローバル変数だよね。
どの関数からも制約無しにアクセスできるのグローバル変数と同じじゃない。
>>254 大企業とその系列の会社はルールが厳しいらしいね。
コーディング規則の縛りなんて、わかってない奴のたわごとだろ
>255 >>そうなんだけど・・・動作的にはグローバル変数だよね。 >>どの関数からも制約無しにアクセスできるのグローバル変数と同じじゃない。 I/Oポートのグローバル宣言は必須ではない。宣言の仕方を変えて、特定の ファイル内でしか参照できないようにすることもできる。 I/Oの宣言がグローバル宣言のインクロードファイルとして用意されている 場合が多いので、それを使っているのと、単にグローバル宣言にしたほうが、 プログラムが作り易い、そのぐらいの理由。 ローカル変数以外の特定のメモリアドレスに割り当てられていて、かつ グローバルではない変数は、(static 宣言されてい変数とか)C言語の文法上 参照できないだけ。アドレスを直接指定すれば、アクセス可能なので、 I/Oボートと本質的に事情が異なるわけではない。
258 :
255 :2011/03/06(日) 13:16:17.27 ID:2gBpHpJc
>>257 I/Oポートもローカル化した方が可読性もあがるしデバッグもしやすいと。
・・・書けそうにないなそんなプログラムw
>258 >>I/Oポートもローカル化した方が可読性もあがるしデバッグもしやすいと。 そんなことは、どこにも書いてないけど。可読性というよりは、可搬性つまり 移植性かな。きままに、I/Oボートにアクセスされたプログラムを移植するのは 大変だからね。 I/Oの処理を機能ごとに関数にして直接ポートにアクセスしないようにすれば、 移植の手間は大分少なくなる。結果的に、プログラムの品質も向上する。
どこからでもアクセスできるレジスタを、特定の関数からしかアクセスしないようにするのは、 移植とか改造が楽になる工夫ではあるけれど、ちっとも万全ではない グローバル変数を使用していないことの証明は簡単だけれど、 特定の関数以外でレジスタ操作をしないことを、将来の改造にまで徹底するのは無理 それに、例えば何かのフラグを監視する処理があちこちで発生しているとして、 それを下請けさせる為にみんな関数化していたら、スタックをどんどん消費して マイコン向きでなくなる 結局、低レベルの処理を記述しないといけないプログラムで、グローバル変数を過度に気にするのは、 部屋の半分だけ掃除するような、あまり意味のない行動
馬鹿がスタック消費するとか言ってるよ
262 :
255 :2011/03/06(日) 15:55:58.03 ID:UfWvayKp
Z80からH8に移植するときに関数アクセスからレジスタ直に書き換えたな。
「せっかくメモリーマップドアイオーになったから」という理由でw
>>259-260 参考になった。
H8も一部無くなるみたいだから移植性は考えるようにする。
>260 >特定の関数以外でレジスタ操作をしないことを、将来の改造にまで徹底するのは無理 これが正しいとすると、世の中にデバイス・ドライバというものは、おそらく存在 しないと思うよ。マイコンだって、I/O処理をデバイスドライバ化することはある からね。無理ではないと断言して良いでしょう。 >スタックをどんどん消費して 僕は馬鹿なんて言わないけど、スタックに入るのは、戻り先のアドレス、関数の パラメータ、ローカル変数。関数が多いのは関係ない、関数のネストは関係ある けどね。関数のネストを際限なく多くするとか、ローカルで大きな配列をとるとか しない限りは、RAMの小さいCPUでなければ、あまり問題にはならないよ。 >結局、低レベルの処理を記述しないといけないプログラムで、グローバル変数を過度に >気にするのは、部屋の半分だけ掃除するような、あまり意味のない行動 I/Oの処理とグローバル変数とのことがごっちゃになってる。書いたことが、 正しく伝わってないようだね。
スタック不足で泣く泣く関数を呼び出し元に展開した経験がないと見える
仕様できるRAMが厳しいのあったけど、スタック不足で悩んだことはないな。 メモリ食いな設計はしない方なので...
>スタック不足で泣く泣く関数を呼び出し元に展開した経験がないと見える スタック不足、つまりはメモリ不足。CPUの選択が適切でないだけで、 何の自慢にもならない。それを避けてこそ、賢いエンジニア。 ぎっちぎっちのメモリに無理やり押し込んだ、なんて、しょせんは無駄な労力。
経営判断で1ランク下のCPUを選択するとか 外付けRAMを無くして基板を小さくするとか普通にあると思うけど。 「経営側を説得できないのは・・・・」とか「そんなところは辞めて他へ・・・」と言われそうw 購入品の代金や電気代とかうるさいくせに人件費には疎い人多いよねorz
きょうび、
>>267 みたいな社員をリストラして、1ランク上のCPUで外注
した方がずっと安上がりなのに。
論理の破綻が半端無いな いい加減、非を認めろよ
昔の挑戦玉入れは、スタックオーバーフローでがっちり
製造が万単位なら十分ペイ出来る範囲では
そんな所でやっつけな設計しないべ 特注対応で機能追加したら足りなくなったとかなら まだありそうだが
2218U 自分に割り振られたUSBデバイスアドレスを ファームウェアが知る方法を教えてください。
すみません このスレ営業してますか?
USBはよー知らんけど マイコンから見たら、ただのデータでは? ハードウェアマニュアルをよく読みませう。
昔、USBサポートのない石で、ドライバを外付けして繋ごうとしたが、ハンドシェイクがめどすぎて投げた俺。 なんでUSBのプロトコルのマニュアルってあんなに判りづらいんだ…
>>273 マニュアルざっと見た限り、そういうレジスタは用意されてないな
んで、なんでその情報が必要なんだ?
モジュールが全部面倒見てくれているように読めるが
>>277 レスありがとうございます。
Windows 5.2以下で、まったく同じ文字列デスクリプタを返すデバイスが
複数接続された場合に不具合が出るため、シリアル番号文字列デスクリプタに
アドレス情報を乗せ、加工してから報告できないものかと考えてのことでした。
ちなみに、この不具合は
・文字列デスクリプタを報告しないと発生しない。
・Windows 6.0以上では解消されている。
です。
アクセス禁止領域にあるレジスタからでも読み取れないかなぁ
と思い質問しました。
カッコつけて文字列デスクリプタを報告するのを止めます。
ありがとうございました。
文字列ディスクリプタを固定(ROM)で持たず、sprintf関数みたいなので、 RAM上に動的生成すれば済む話の気がするが?
パソコン側のソフトの振り分けがいい加減とかじゃねえの
そもそも2台遣う事を想定してないだけだろ。 usb-vgaアダプタと同じ。 素直にメーカ変えて2個挿せばいいと思う。
>>279 「同じ文字列を生成しないことを保証する」必要があるため、
USBデバイスアドレスを採用しました。
>>280 Windows 2000/XP、Server 2003のバグに近い仕様と思います。
>>281 この場合「メーカ」は私・・・
283 :
しつこく :2011/03/28(月) 02:21:59.51 ID:cyuShQoz
>>280 BUFFALOなどのマスストレージデバイスでも不具合が発生することを
確認しています。
まったく同じUSB R/Wを複数台購入する人は稀でしょうから、
問題が表面化していないだけと思います。
Vista、7は大丈夫なのないかな?こっそり修正してたりして...
> Windows 6.0以上では解消されている。 ってあるからVista(6.0)と7(6.1)なら大丈夫なんだろう。
XPだけど、シリアル番号を返さないUSBシリアルとか、まったく同じものを 複数個接続しても普通に使えているけど? シリアル番号のストリングを返さない場合、繋ぐポートが変わると毎回ドラ イバのインストールが要求されるだけで、その不具合は、特定デバイス固有 の上位ドライバ、またはアプリケーションソフト側の問題じゃないの?
やっぱりそんなうんこハードでも、ドライバやアプリで回避は出来そうだよな。 ちゃんと対応アプリやドライバを提供しないメーカがへぼなだけだな。
>>286 そのシリアルアダプタは、ベンダ文字列デスクリプタと製品文字列デスクリプタは返し、
シリアル番号文字列デスクリプタだけ返さないのか?
文字列を全く返さないんじゃないか?
であれば
>>278 >>287 マスストレージの場合、NinjaUSBやそのOEMなんかを除けばMS謹製クラスドライバしか
使わんだろ。
BSCRA55U2 2台をルートハブ直結なら問題なしだか、それぞれを個別のハブ経由で接続
すると、ブルースクリーンになったり、システムリセットになったりする。
USBハブは使い方によっては危ないだろ
Vista/7では改善されてるから 明らかに2000/XP/2003の不具合。
えらくスレチになってしまいましたが、 2218Uでは自分に割り当てられたUSBデバイスアドレスを ファームウェアが知ることはできないようだ です。
それって、USBホスト側が個別に管理するもんじゃないの? ファームウェア側で選別しても、手順が狂うだけじゃあ
293 :
YUI様 :2011/04/11(月) 16:10:51.96 ID:J86qGUXX
******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** YUIです ワンタッチBBSをYAHOOで検索してください サーチのボタンをクリックしてください リンクの板名をクリックしてください コンピュータの画像掲示板で板名を検索してください FPGA CMOSの解説尽き回路図の基礎が出てきます 誰でも簡単に回路図は書けます ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ******************************************** ********************************************
もういやだ どのフラグがどこと論理取ってんのかブロック図だせ 推奨しませんとか設定出来ませんとかそんな説明はいらん なんでもかんでもタイマーユニット連ねて解決させるとか いい加減やってらんねーんだよ と思ったらH8系は新規採用推奨しませんって…
>なんでもかんでもタイマーユニット連ねて解決させる これって、どういう意味ですか?
個人使用、H8に限定していいから もっと安くHEW使いたい
腐った会社が嫌で技術本位の会社を立ち上げるひとも多いね。実力あれば大学・研究室 からは相手にされるから、「おれは優れてるが会社が糞だ」と思うなら早く辞めなよ。
HEWで依存関係がうまく更新されないんだけど、仕様?
>>297 大学・研究室なんて世間知らずのクソだよ
そんなのあてにして起業したら地獄を見ることになるぞ
次から次へと仕事をくれるわけないしな H8/300 記念パピコ
CC38H.exeって変数の大文字小文字区別してくれるよね?
古そうなアセンブラなら区別しないかも
教えてください H8/3067は、25MHzで36mAの電源消費電流になっています。 これをもっと低消費にしたいです。 クロックを下げれば良いと思っていますが、およそ比例関係になるのでしょうか? 例えば、5MHzだと7mAとかです。 宜しくお願いいたします
25MHzとか逝ってる時点で、マニュアルとか読みませんと逝ってるような? 20MHz(5V) max 100mA 10MHz(3V) max 51mA 13MHz(3.5V) max 66mA
>>303 ありがとうございました。
3067てなくて、3069でした。僕の間違いでした。すみません。
また、表の下に計算式が載っていました。気がつきませんでした。
3067って、3069よりもたくさん食うんですね、初めて知りました。
306 :
774ワット発電中さん :2011/04/22(金) 10:45:57.45 ID:srOwRWmW
クロック周波数が速いほうが消費電流が大きいなら、 CISCとRISCを比べると、RISCの方が消費電流が多いんだろうか?
新しいほうが性能の割りに消費電力が少ない 低消費にしたいならRXに切り替えろ
H8S1655って、トラ技で去年本が出たばかりだけど、 ルネサスのページに行くと、RX その他 という2つのくくりの、 もう その他の中なんだね。 RXっていいですかね?
乾電池使用で何時間も放置する様な使い方だと こんなマイコンでも消費電力が気になるものなのかな
気になる、気になる。 clock落とせばいいけど、処理も遅くなるので、 H8(CISC)でも10MHz以上で行きたい。 しかも、周辺部品が5V系なので、マイコンだけ3.3Vというのも・・・・ H8Sなんて100mAだもの。やめてよって感じ。
RXの入手性が良ければすぐにでも切り替えたいが 数個単位で2カ月以内に小口購入ができるものってあるの? 見積出したことのあるやついたら、品番と納期おしえてくれ 通販や小売でも可
で、結局ルネサスの今の「店長のイチ押し」って、何? R8Cも、いつのまにか撃沈、H8S16xxは終わったみたいだし、 RXシリーズ? SHはどうなのかな? よく知らないけど。
>> 311 俺も同じ事考えてたんだが、秋月に入ってる! 昨日見た時にはなかったのに サンキュ
でも良く見たら100ピンか 144がホスイ
YOU、いい加減諦めてARMにしチャイナYO!
安易にarmというのもどうかと
armは国産じゃないから抵抗有るね。 vr復活しないかなあw
旧NECのVRってMIPSじゃなかったっけ?それとも、ブイエムテクノロジーの こと?
320 :
774ワット発電中さん :2011/04/24(日) 11:09:25.19 ID:S4p5QBY1
ARMっていってもどこのメーカにする? STM??イマイチ供給に安定感がない。 ただコアが共通なだけで、メーカ間のチップ互換はなく そのまま載せ替え出来ないんだから、ほとんど意味ない。 安定感といえばPICだが・・・
俺もそう思う。震災でマイコンが作れない、じゃあNXPの物にしようか、とかできないなら H8/3067でやり抜くのも同じ
コアが共通といっても、現在数多く出回っているもので、ARM7/9/11, Cortex-M0, Cortex-M3, Cortex-A8とか、種類が沢山あるし、まぁ用途や性能でまちまち。 周辺機能の互換性に関する問題については、CMSIS (Cortex Microcontroller Software Interface Standard)という規格準拠のライブラリを各社が提供する ことで、チップ毎の周辺ハードの差を吸収しようという方向らしい。 NXPはかなり安い値段を出してくるようだね。
フィリップスか。 あんまり良い記憶がないんだよなー。
>>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 ありがとうございます。
はい、整数で扱う方が処理が早くてよいとのことですね。本に書いてありました。
ただ、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で表現したものかな?と思っています。
適当に書くけど 2バイトだから、内部的には10進数で0〜10000じゃないの?
10000じゃなくて9999かな?
BCDではなくbinaryですので、65535〜0 , 0.5〜1/65536 あるいは +32767〜0 , 0.5〜1/32768 と -32768〜0 , -0.5〜-1/32768 かなと思っていますが、どうでしょうか。
2進数で考えると頭痛くなりそうだけど そういう基本的な固有のことに答えられる人はいないと思うよ だから、適当って逝ってる
>>332 本当に適当だなw
>>331 普通、それで合っているはず。
具体的に「SPI I/FのIC」の型番を晒せば
もう少し確実な話ができると思うけど。
334 :
774ワット発電中さん :2011/05/23(月) 14:55:47.81 ID:rXctnk2g
すみません H8SXの同期シリアルコミュニケーションで 送受信を同時にやるにはどうしたらいいですか? データシートには同時にオンにしれって書いてあるのですが. クロックが出ません・・・
336 :
774ワット発電中さん :2011/05/23(月) 15:12:02.41 ID:rXctnk2g
>>335 送信は出ます
受信にするとクロックは入力になるってそれはそうだと思うのですが
もどきでいいのでSPIのようにしたいのです
でもデータシートには同時が可能ってあるので、どう意味なのですか?
あげちゃってごめんなさい
マニュアルの同期シリアルの部分をよく読みませう。
>>338 レスありがとうございます
ご指摘の通り、なにかを見落としてるきがするんです
TEとREを同時にフラグ立てる(イネーブル)とあったので
論理和でSCRレジスタを設定しました。
(TE・REイネーブル)
そうすれば送信時に受信バッファ(シフトレジスタ)に入ると
思っていたのですが読むと、そういうことじゃないような…
もう一度よく読んでみます。
340 :
339 :2011/06/01(水) 19:42:17.07 ID:nsPM7Jjc
なにをやってもレジスタに入らないので、もっと別の問題と思い 初期化ルーチンを見直すと、ICRビットの設定ミスでした。 (汎用IOと共用しているためIOイニシャライズでは無効にしてて モジュールオンにしたら有効になるとおもってた・・・) SCIもイレギュラーな使い方をしてるので、データシートが言葉じゃなくて どのフラグがどれと論理取ってるのかブロック図が欲しい・・・
ICRとMSTPCRの設定ミスで無駄に悩むのは ルネサスCPUを使う人のお約束なのです
モジュールストップレジスタの記述は、どうしてあそこまで分かりにくいのか。 各機能には1行ひょろっと書いてあるだけだし、当のレジスタの説明には各機能の説明が無いし。
教えてください。 秋月のH8/3069基板を使って工作しています。電池でうごかしています。 もっと長持ちさせるために、クロックを遅くしたいです。 しかし日立のデータシートには、10MHz未満では動きません、と書かれています。 ここで質問です。 この10MHz未満はNGの原因は、H8に内蔵の水晶発振回路の問題と考えれば よいでしょうか。つまり、内蔵発振器はやめて、外部に発振器を付けて矩形波を H8に入れてやることで、10MHzより下でも動くと思うのです。 マイコンとは言えゲートロジックなので、遅い分にはいいだろうと考えています。 だめでしょうか。
その前に求める省電力が得られるかを検証しておいたほうがいいんじゃないかと。 もろもろで1000ma必要なのを500ma魔で落としたいのか、250ma魔で落としたのかにも因るし。 省電力版h8の検討もしたほうがいいと思う。
345 :
339 :2011/06/02(木) 23:53:01.27 ID:KgZG2pAX
はい、ルネサス系は初めてっす 去年最強のマイコンだよってC級出版が言ってたので SX付録号を2冊購入しており、ようやくいじり始めました 最強でいいんですよね?
>>345 去年最強のマイコン − 間違い
20年前最強のマイコン − 正解
8086系から移行してH8やった時、 省電力機能が付いてただけでも感動した覚えがあるw
>>343 H8シリーズは設計が古いんで、CPU内部んPレジスタ等が完全なスタティック
回路ではなく、一部にダイナミック前提の部分があるんでないの?
要は、リフレッシュが必要なDRAMと同様、常時クロックを与えて動作させ
ていないと、データが化けてしまう。 理由は、今ほど集積技術が進んで
いなかった当時、トランジスタ数(≒ダイ面積)を減らすためにそういう設計
にしていた。
特段珍しいわけではなく、CMOS版じゃない古い8bitのマイコンも、標準で
1MHzとか4MHz動作だけどやっぱり最低動作クロックの規定があった。
そういえばZ80とかも「最高4MHz」「最高2.5MHz」など何種類もあるが、 最低200kHzぐらいの下限もあったっけ。8086とかも同様だった気が。
教えてください。 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とかやっているのでしょうか。 だとすると、遅くて困りません? 何か速く通信できる方法は無いでしょうか?
>>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リバース。
よく回路屋さんがSPIデバイスをCPUのSPIポートにつないでくれるんだけど アナデバとかのDACで1回のデータ長が14bitとか中途半端で結局使えないことが多い。 そんな時はI/Oポートにして使うしかない。
ポート叩いてやり取りすれば、マイコンの動作周波数の影響をもろ受けるでしょう 早くしたいのなら、ソース見直して自力で早くするようなこと考えないと...
>>350 H8SXだけどSCIモジュールでSPI12MHz出来ました
シフトレジスタにもちゃんと入ってます
遊びで規格外の設定・使い方なのでどうするとかないけど
一応そんなことが出来ました
デバイス完成度、開発環境との親和性から言えば、日立の製品が良いと思う。 ただ、最近はARM ARMとうるさいので、検討はしている。
H8Tinyはすでに蚊帳の外か
マシン語で闇雲につくるより、RTOS(HOS V4)に対応しているH8は捨てがたい。 でもルネサスはH8/300H撤退方向なんだよな。 残念。
SHでよくない?安いし
各自に似たようなもん作ってても仕方ないような
気持ちがSH2/7045に動きかけてる
sh2ってh8ほど手頃だっけ? sh2までいくならpcでもコスト的によくね?ってなってしまうw
たしかに高いけど秋月で簡単に手にはいるから
ITRONのライブラリファイルをメイクするのに手間取った。 パスは通さなきゃ行けないし、Unix系のコマンド(cp, rm)をウィンドウズのそれに置き換えるのに多少手間喰った。
白鳥じゃだめなの?
白鳥って? スワン?
シグウィン
ああ。了解。 それでもいいけど、cygwinあまりすきじゃないからなぁ。
じゃあインてリックスとかw シグウィニョリも険しいけどw
結局SuperH/7045でITRON(HOS)をとりあえず動かすのには成功したけど サイクリックハンドラがまともに動かなかった。 タイマは豊富にあるのでコンペアマッチ0をシステムタイマ、コンペアマッチタイマ1で10msごとに 割り込みをかけて、1秒ごとにシリアルからシステムタイマの値を出力するのには成功したけど。 Toppersのほうがいいのかな。
374 :
373 :2011/06/19(日) 00:08:00.56 ID:74CIuxYD
もしやと思い、コンフィギュレータを再コンパイルしたらサイクリックハンドラを使えるようになった。 これで無敵だw
H8ももう保守用にしか供給しないのか 何十年も第一線で活躍したZ80にはおよばないのか
64180
z80もイーサぐらい就いてないとなあ。 イーサ付きの8086辺りも欲しいけど、atomもどきでそんなの出さないのかな?
378 :
774ワット発電中さん :2011/06/21(火) 17:10:04.42 ID:cK7U1gBZ
>377 Z80互換でイーサ付きの石があるとか聞いた気が...ラビットとかいったか?
Z80の汗でやる気はもうないなあ 64180もディスコンしたって聞いたの早かったけど実際は生きが長かったみたいっだった、20世紀の話 自分的にはH8(SH)との出会いは早かったほうだと
俺も20年前、組み込みのソフトを書いていたときにH8の存在を知った。 その後、順調に普及するかと思ったが、価格が高いせいでまあまあの印象をうけた。 携わったことがあるだけにディス婚になるのは少々寂しい。
Cでかけて、ROM、RAMがそれなりで使い手があったんだけど、当時
R8C移行組は少数か?
R8C使ってるけど、これも新規開発はされないんでしょ? RL78とかに移行するとか
秋月でたまたま100円で売ってるだけだからなあ 積極的に使う理由がない
50MHzのZ80ってだけ、お腹いっぱい
>>385 Rabbit5000とかRabbit6000は内蔵で100BASE-T
Rabbit3000は外付けで100BASE-T
すみません、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転送終了割り込み になりますよね?今なぜか暴走してしまいます、、
了解 つぎのかたどうぞ
>388 それだと、A/D終了時に割り込みが入ったあと、割り込み処理中にDMA転送をして、 DMA転送後に重ねて割り込みが入るんだよな? AD終了割り込みの処理ルーチンは存在してるかい? DMA終了割り込みのルーチンだけだったりしない?
>390 いえ、ハードウェアマニュアルの15.5によると、DMAの起動要因になっているときは、 CPUへのA/D変換終了割り込みはかからないことになっているんです。 そのため、A/D変換終了割り込みのルーチンは作ってませんでした。 ちょっと試してみます。
DMA転送使わないとダメなのかい?
>391 A/D変換終了割り込みのルーチンを登録したところ、そこを呼び出しているのが確認できました。 A/D変換終了が、DMAの起動要因になっているときは、CPUへの割り込みはかからないハズなのに? A/D変換終了をDMAの起動要因にしたときも、ADIEはセットする必要がありますよね? >392 今まで、A/D変換終了割り込み内でADDRxの値を変数にコピー + その他処理を行っていたのですが、 これ以上速くするには、値のコピーをDMAにするしかない、と考えました。
割り込みがトリガーになって、DMAが動くんじゃなかったかな? mov命令よりは早いけど、どうなんだろうね、数バイトの転送だと
eepmov命令使えば? あ、アセンブラできないの? すまん、悪いこと言っちゃったかなwww
よく知らんけどmachine.hに何かなかったか?
>>393 ・DMA終了割り込みでDTIEをクリアしていた
・他の割り込み処理内で、割り込みを許可してなかった
のですが、それが原因ぽいです?
すみません。私がバカでした。
398 :
774ワット発電中さん :2011/07/11(月) 08:32:10.64 ID:RukklGka
H8初心者です。 3052Fを使い、gcc(GDL)でプログラムを組んでいます。 外から受けた29bitsのシリアルデータに合わせたデータを吐き出すプログラムを組みました。 シリアルデータを受ける配列もintで29bits用意したんですが クロックに合わせて際限なく読み込むために、大量のクロックを受けたときに際限なくデータを取り込み不具合を起こすようです。 プログラム上29bitsのデータしか受け取らなくし解決しました。 際限なくデータを取り込むとどのようなことが内部で行われているんでしょうか? マイコンの動作を観察した感じでは、メモリ上に次々とデータを取り込むための配列を作り出しているようにみえます。 そして、メモリ上の他の変数を上書きしてしまい動作不良を起こすようなんですが このような解釈で間違いないでしょうか?
H8関係なく C言語のポインタの話になるので 「C言語 ポインタ」とかで検索したらいいんじゃないかな?
初心者だからもっとやさしくしてよ! ↑間違い
ルネサス大量保守品化しますっていう通達がきたが、肝心のリストが来てないから 何が廃止になるか判らん。 MCU 406型名件数とはあるが・・
過剰カスタマイズのあげくどうでもいいような違いで種類を増やしまくった結果がそれか
バグに初心者も糞もない プログラムは書かれた通りに動く
404 :
774ワット発電中さん :2011/07/17(日) 21:54:44.66 ID:4VBFK8/A
統廃合で日本勢のワンチップマイコンは採用をためらうなぁ・・
20年くらい前には、『海外メーカーの製品は、メーカーの都合でいつディスコン になるか判らんとか、入手性に難があるので、日本製を選択しろ』などと言わ れものだが、いつのまにか逆転?(w サンプルさえ手に入らん状況じゃあ、下手に選んだら自分の首が絞まるな。
「サンプルは***個からとなります。ご了承下さいwww」 「****はディスコンになります。新規設計の際にはお気をつけ下さいwww」 売る気ねーんだろwww
>>406 東電とかJALとか、元分身のエルピーダで甘い汁の吸い方も覚えたし、次は
国相手に死ぬ死ぬ詐欺かナァ。
408 :
774ワット発電中さん :2011/07/18(月) 12:06:46.63 ID:i4SuGcQC
>>383 結局ルネで16bitはRL78になるんか
じゃあ今はR8Cに移行せずにH8Sで逝くが吉・・・か?
いろんなmakeコマンドを試したが、ちゃんと動く奴、途中でエラーになっちゃうやついろいろあるよ、同じMakefileでも。 バージョン調べたら?
それだけじゃなくて、この作者が使った奴も!
H83052使ってるんだけど、ポートが出力されっ放しって現象になったらマイコンの故障かな?どんなプログラムを書き込んでも出力されてるんだよね…
出力ってHL切り替えはできるの? プルアップとかはしてない? 普通は保護回路がついてるからポート故障なんてどんだけ 過酷な使い方をしたの?って感じなんだが
単純にLEDの点灯実験で使ってて、あまり詳しくはないんだけど、LEDが光っ放しって状態。
そのポートをH/Lさせて、LEDのon/offを確認した? あと、H83052ではなくて、H8/3052ね。
LED直付けじゃ、もたんでしょ
こちらの勉強不足でいろいろと抜けててすまない。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) { for(i=0;i<8;i++) { P1DR = d; wait(); d<<=1; } d=1; } } とりあえずこんな感じ
なんとなく意図はわかって もとの著者もわかるような気がします これで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表記? // } }
>>409 libusb-1.0-0-dev
も追加で入れる必要あり
これでコンパイルが通る
買ってから10ヶ月、ついに付属基板のLEDが点滅したぞ
そして10年寝かすんですね
HEWの使い方教えて下さい GCCを使っていたのだけど、HEWでコンパイルしたらエラーが出ました。 #include <3048.h> ヘッタが無い・・・ またGCCからHEWに移植する時の注意点ってある?
#include <machine.h>
430 :
428 :2011/08/27(土) 09:01:52.79 ID:c6VdlXfb
>>429 ありがと
HEWって駄目なんじゃねえ?お金かけるだけの事有る?
そもそも日立系のMPUって・・・・
何か日立が駄目駄目なのが分かる気がする。
ARMを覗いてくるノシ
あっちのスレが無くなってる
H8マイコンを使ってディップスイッチの状態を読み込んで7セグLEDを点灯させる プログラムを作る予定なんですが、参考になるサイト知りませんか?
434 :
774ワット発電中さん :2011/09/07(水) 21:10:15.18 ID:cHV56OY3
とりあえず、保守あげ
宿題か実習か?
電気系の学生の自由研究みたいな感じだけどね
3664F と言うか H8/300シリーズ共通だと思うのだが I/Oポートの設定って、どこ見て記述するのか解らんorz #define PDR (*(volatile unsigned char*)(ほにゃらら)) ポートデータレジスタ #define PMR (*(volatile unsigned char*)(ほにゃらら)) ポートモードレジスタ #define PCR (*(volatile unsigned char*)(ほにゃらら)) ポートコントロールレジスタ この ほにゃらら のアドレスってドコに載ってるんですか?
441 :
439 :2011/10/02(日) 13:03:33.58 ID:yrG5v1DL
>>440 おぉ ありがとう載ってました
おかげさまで、うまく行きそうです。
442 :
439 :2011/10/02(日) 23:38:54.69 ID:yrG5v1DL
デバックが終了しました。 ありがとうございました。
オメ
444 :
774ワット発電中さん :2011/11/06(日) 15:50:15.12 ID:qQYkRu+J
h8s 2218 を使おうと思ってるんですが、これも3664fみたいにシリアル経由で書き込めますか? それともROMライタとか買わないとだめですか・・・?
>>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付近の周波数を出力するには何がいいか教えてください。 よろしくお願いします。
>>447 矩形波でも1.25クロックに1回ON/OFFするのか
ほかに何にもしなくてもできるのかね、んなこと
ループするにしても2クロックどこじゃなくかかりそうだけど・・・
正弦波は無理だろう
素直にオシレータ買え
>>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じゃないものを試してみようと思います。
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%ずつ変えられる にしたいのです。 僕の考えというか、やり方に勘違いがあるでしょうか。 宜しくお願いします。
>僕の考えというか、やり方に勘違いがあるでしょうか。 コードが間違ってるからとしか? ソース晒して添削してもらったほうがいいような
>>454 原理上、無理だと思う。
何Hzが出したいか知らないけど、
1000HzでDUTY0〜100.0%までの1000段階だとすると、
1000kHz=1MHzのclockをITUに入れれば良いけど、その1MHzのままで、
999Hz は出せないし、出たとしても、DUTYが1000段階にはならない。
ITUに入れ込むclockも可変してやる必要がある。
あと、0%を出すと、100%はできないし、
100%を出せるようにすると、0%はできないので、要注意。
>しかし、周波数を変えても、Dutyが保持されません。 >つまり、GRBの値を触らずに、GRAだけ変えると周波数は変化しますが、 >Dutyがドンドン変化してしまいます。 これに関しては、GRAを書き換えるとき、 同じデューティーになるよう計算してGRBも設定しなおせばいい。 ただ、しょせん16ビットのタイマーなんで、精度の問題はいかんともしがたいな。
>同じデューティーになるよう計算してGRBも設定しなおせばいい。 とは言うものの、 1Hzずれたときの、16bitのGRA,GRB値で、どのようにセットするのやら。
だから、 「ただ、しょせん16ビットのタイマーなんで、精度の問題はいかんともしがたいな。 」 って書いているだろ。
なるほど。 だとすると、NFの発振器などはどのようにしてやっているんでしょうね。 DUTY=68%のまま、周波数100Hz〜10kHzまで振っても、 やっぱりDUTYは68%を維持するという。 考えてみると謎ですね
NFの発振器がH8/3067のPWMでそれを実現しているなら謎かもしれないが、 それを実現できる手段で実現しているだけなのだから謎でも何でもないわな。
クロックソース?
さっき、H8のITUで、どのようにしたらできるか、考えてみた。
・DUTY固定で、周波数の一定値変化→ 1Hzステップとかは、たぶんできない。
周期の一定値変化ならできる。
周波数は、周期の逆数なので。
・周波数固定で、DUTY一定値可変→ 0.005%の分解能でできそう。
16bitなので、使い易い値だと、GRA=50000が限界。
>>461 どうやって、実現しているんでしょうか。
周波数はDDSで発生、
DUTYは巨大なcase()文の連続、あるいは巨大なシフトレジスタ+タップ切替、
とか。
ハードウェアマニュアルよく読んで、もっと簡単に考えてみたら
465 :
774ワット発電中さん :2011/11/20(日) 12:15:37.14 ID:JwHhRyX6
まさか、タイマー割り込み使う、とか言うんじゃないよね。
タイマーは何個ついてるのかな?
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; } } }
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になるまで何もしない、
ということですか。
ありがとうございます。
>>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点滅はできました
>>471 おれは'{'と'}'は同レベルに書く方が見やすいので
上から下に行くほど見にくくなっていく。
とくに最後の
if(c==50){ check=1; c=0; }
は無い罠
コンパイルエラーがないかどうかを調べないのかね?
>>473 真ん中が一番見やすい
{だけで1行使いたくない
最後のがありえんてのには激しく同意
まぁ } else { と書かれるよりは最後のヤツの方がありかもしらんが、 そういう書き方をするやつは2行程度じゃ止めないからなぁ。 真ん中以外は普通ありえんな。
>477 普通に最後のやつもやるが、2行くらいだな。でないとデバッグのステップ実行でしぬる。 つうか、 *p++ = *q++; とか普通に書いたりするだろに *p = *q; p++; q++; と1行で書くようなもんだ。
でも、こういう時はわかりやすくて、好きだ。 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; }
PICだとOKなのに H8のC言語では、 2進数を表現する「0b00001101」のような書き方ができないのは、なぜですか?
482 :
774ワット発電中さん :2011/11/22(火) 10:38:25.20 ID:OBLw5jYW
ありがとうございます。 ということは、
GCC4.3からは0b使えるから、kpitの開発環境にするとか
マクロって、 #define .... というやつでしょうか? 0b1011など、先頭が0で始まりますが、使えますでしょうか?
>>485 駄目なんだっけ?
じゃあ先頭をbにして表記を誤魔化したら良いんじゃね。
要は、2進数表記したいって事でしょ、こまけぇ事は気にすんなよ。
#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)); } ちゃんと定数計算してくれるまっとうなコンパイラを つかいませう:-)
#define B00000000 (0) #define B00000001 (1) ... #define B11111110 (254) #define B11111111 (255) でもいいかもね
>>487 >BINARY8(0,0,0,0,1,1,0,1)
いちいちカンマを入れて書くのは面倒ですね。
>>488 256個くらいならいいけど、16bit分だと疲れそうです(コンパイラが)。
コンパイル前に、ソース全体を見渡して、使われているb00000000表現をとりだして、
その分だけdefine出来ない物でしょうかね
>>489 そういうことするプログラム作ればいいじゃん
他力本願じゃあ、先に進めんぞ
>>489 そういうのを自動でやる為にプログラムってあるんじゃね?
>>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
方言の酷い田舎者の集まりなんですか
他人のソースのコピペ野郎なんじゃね?
周辺レジスタ設定に、0bが使えないなんて、信じられない。 16進二桁でやれってか?
>>496 >>483 嫁
純正だと構造体と共用体でI/O周辺を定義したファイルがあるからbitでもbyteでもwordでも
指定できるんだ
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;
16進でいいじゃん。わかりにくいなら横にコメント書いとけばいい
俺にわからないものを作るなと言ってるんじゃないの?
嫌なら使うな!嫌なら使うな!
502 :
774ワット発電中さん :2011/11/24(木) 22:57:24.61 ID:3o9/S/DJ
2進より16進のほうがわかりやすいと思うけどなぁ。 32ビットデータで10ビットめだけが"1"とか、2進表示でパッと見て正しいとわかる? 16進だといやおう無しに4ビットごとで区切られるからわかりやすい。
>>503 1101_0000_1100_0010_1000_0001_0101_1110_0001 って書けばいいんじゃ?
if ( ( 1UL << 10 ) & reg ) とかでいいだろ
>P1.DR.BIT.B0 = 0; >・・・ >P1.DR.BIT.B7 = 0; > >P1.DR.BYTE = 0b00000000; これ意味違って、バグになる場合があるから気をつけろよ。
なんで? 前者だとRead Writeが連続して、 電圧がお落ちる前を読んでしまうことがある、っていうやつですか?
endian の話だよ
はあ?
>>508 インディアンって、発見される前からアメリカ大陸で暮らしていた民族のこと?
電子と関係ないじゃん。
今はネイティブ・アメリカンと呼び替えられてきている。 エンディアンの語源はガリヴァー旅行記からっていわれてる。 H8ってSHみたいにビッグ/リトルの切り換え出来たんだっけ?
ゆで玉子はとがった方から食べますか?丸い方から食べますか?
割って黄身から
#pragma bit_rder
すまん、#pragma bit_orderだ
えっ、インディアン=インド人じゃないの??
くどいな インド人を右に だ
Wikipediaより 英語のインディアンは直訳するとインド人の意味である。歴史的な文脈では、旧イギリス領インド全域や東南アジアの住民を含むこともある 「インディアン」が二義的な意味を持つ由来には、クリストファー・コロンブスがカリブ諸島に到達した時に、インド周辺の島々であると誤認し、 先住民をインディオス(インド人の意)と呼んだことがあり、以降アメリカ先住民(の大半)をインディアンと呼ぶようになった。 ただし当時の西洋では、現在および当時のインドと同一ではない、中国・日本以外の東方世界を漠然と「インディアス」と呼んでいて、 コロンブスは当時の一般的な知識にしたがって、カリブ諸島を「インディアス」と呼んだほか インド人をイースト・インディアン (East Indian) 、 アメリカ先住民をアメリカン・インディアン (American Indian) として区分する場合もある。 ということだけど、どっちもマイコンとは関係ない話じゃないか。
マイコンの中には、 数学が得意なちっこい印度人が
>>469 コンパイラの最適化によって無限ループのコードが出力されそう。
volatile unsigned char check;
しておかなければならないんじゃないの?
本筋からはずれてごめん。
>>519 リトルインディアンの他に、ビッグインディアンもいるよ。
かつては、ミドルインデアンという奇妙な種族もいたのじゃ
>>515 それってビットフィールドに関するもので、CPU自身のバイトオーダー
とは別の話でしょ
バイトオーダーって言えば、この前行ったファミレスで.....
524 :
相手は :2011/11/28(月) 00:04:32.00 ID:9rs8+PHS
女子大生なのか!!
こちらでお召し上がりでしょうか? お持ち帰りでしょうか?
526 :
774ワット発電中さん :2011/11/29(火) 00:26:21.34 ID:GY2O1Qkm
教えてください。 H8のハードゥエアマニュアルょ読んでいると、 ブートマットという言葉が出てきます。 この「マット」とは何を示すのでしょうか? なんとなく、「領域」という感じはするのですが。 英語のスペルはmatで良いのでしょうか? それっぽい訳が出てこないので、いまいちしっくりこないのです。
マットってあれだろ、主に体育倉庫にあって簀巻きを作るのに使うやつ。
>>526 20. フラッシュメモリ
本LSI は512K バイト(H8S/2556、H8S/2552、H8S/2506)または384K バイト(H8S/2551、H8S/2505)のフラッ
シュメモリを内蔵しています。フラッシュメモリの特長を以下に示します。
20.1 特長
? LSI起動モードに合わせた2種類のフラッシュメモリマット
内蔵しているフラッシュメモリには、同一アドレス空間に配置される2種類のメモリ空間(以下メモリマット
と呼びます)があり、起動時のモード設定により、どちらのメモリマットから起動するかを選択できます。
また、起動後もバンク切り替え方式でマットを切り替えることも可能です。
って書いてあるからメモリ空間の事で合ってるんじゃないの?
その手の質問が出たなら、俺も教えて欲しいことがあります。 H8/3069秋月基板で遊んでいるんですが、そのウオッチドッグタイマー(WDT)は、 φ→分周器(〜4096)→TCNT(8bit)→割り込み、という経路で動作します。 ここでφ=20MHzとすれば、最大のWDT時間は、0.05us×4096×255=52.224msとなります。 そこで質問です。 1、 WDTのmaxが50ms程度に出来ているのは、H8の設計者からすると、 「一般的に、50msもWDTを叩けないようなプログラムは無いよな」 ということなのでしょうか? 2、 僕は、50ms近辺の周回になることもあるのですが、 僕のプログラム作りは、下手くそなのでしょうか?
>>529 Q1への回答
その条件なら、約50ms以内にTCNTをクリアできるようにがんばれ。
Q2への回答
TCNTのクリアは、プログラム中に何カ所だって書けるぞ。
>>530 ありがとうございました。よくわかりました。
今まで、何本ものプログラムを作って来ましたが、特に暴走することはなく、
WDTの必要性を感じていませんでした。でも、試しに使ってみようかと、
ハードウェアマニュアルを読んでいて疑問に思いました。
>TCNTのクリアは、プログラム中に何カ所だって書けるぞ。
なるほど、あちこちでTCNT=0を実行すれば良いですね。
しかし、関数内部にもTCNT=0を置いたとしても、
もしその関数内で暴走したら、WDTはクリアされ続けてしまい、
再起動しないのではないでしょうか?
では、main()の中でのみクリアしていれば良いのかどうか、これも、わかっていません。
一般に
・WDTのクリアは、どの場所で行うものなのでしょうか。
・何ms程度でクリアに行くものなのでしょうか。
>>531 WDTの運用にも限界はある。
いつどんな天変地異が起こってもWDTが助けてくれる訳では無い。
WDTのカウンタがクリアし続けられるような事態が発生すると、
当然WDTでの監視は機能しなくなる。
どれくらいの間隔でWDTをクリアしたらいいかは、
開発しているシステムの特性で千差万別なので、一律な事は言えない。
例えば、プログラム中に絶対に10ms未満で終わらなければならないループがあるなら、
WDTは10ms間隔でクリアしなければならない様に設定するのでもいいんじゃないの?
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' ルネサスのホームページにはこのエラーは特定の機種にしか起こらなく、その後のアップデートで対応するとしか書いてありません・・・
>>532 ありがとうございました。
すると、一般的なWDT時間は無いので、
設計者が自分で「自信を持って決めれば良い」ということですね。安心しました。
常識を知らないので、
「なんだコイツ、WDTの時間がこんなに長いやん。下手くそな組み方だなぁ」と
言われるのが怖かったんです。
どうもありがとうございました。
>>533 ありがとうございます。NECのデータブックの付録みたいなページですね。
読んで、勉強したいと思います。
ありがとうございました。
537 :
536 :2011/12/09(金) 17:40:11.11 ID:8TOb5A8z
何でニダーなんだよ
539 :
774ワット発電中さん :2011/12/11(日) 17:41:01.21 ID:dUX2VVc4
>>536 OTPのはFDTでは書き込みができないってことか?
ZTAT品は昔からそうだ オンボードで書き込めるのはF-ZTATになってから
ZTATって、何の略ですかね? 以前から気になっていました。 また、どう発音するのでしょうか? ゼットタット?
・I-ZTATは”Intelligent ZTAT”の略称です。 ・F-ZTATは”Flexible ZTAT”の略称です。 ・ZUNTATTAはワルツのリズムです。 ・ZTATは”Zero Turn Around Time”の略称です。
543 :
774ワット発電中さん :2011/12/17(土) 22:08:13.88 ID:xvc/lYAD
ZTATのTATって泣き顔にみえるんだよなぁ
俺が就職して最初に製品に組み込むことになったのがH8なんだよな。 当時日立が扱っていて、ICEとかCコンパイラとかも販売していて、評価バージョンを貰って最適化されたあとのコードとか見ていた。 そのH8も終焉が近い(かもしれない)と思うと寂しいものがある。
「ズィータット」って、以前Webに書いてあった
546 :
774ワット発電中さん :2011/12/27(火) 10:53:09.49 ID:PRYDEyJy
547 :
774ワット発電中さん :2011/12/27(火) 11:42:20.72 ID:ukXSaqDW
>>546 H8S2144の無印Aなし版と同じで32バイトブロック単位のプロトコルAだろ
V3以前の古ーいFDTを使えばいいんじゃねーのけ?
549 :
774ワット発電中さん :2012/01/02(月) 14:43:41.58 ID:aZztzIud
>>548 使ってみたけどそのままじゃエラーになるな…
cygwinの環境入れてやってみるかぁ
>>549 ほう?俺はそれ系のプログラむんの作り手なんだが?
どんなエラーか言ってみるべきそうすべき
ファイルの展開に失敗したとか?
552 :
774ワット発電中さん :2012/01/03(火) 01:22:54.86 ID:1vnXwJ56
>>550 書き込み中:Address = 000080H
のときに
書き込み異常 Ans = FFFFFFFH
って出てとまる
アドレス空間の設定が違うとか?
なんにしてもcygwinのデバッガのインストールができなくて詰まっててなにもできない
553 :
550 :2012/01/03(火) 19:09:54.30 ID:ymdvMdaJ
>
>>552 ブートロードは出来ててプログラムの際に通信にしょっぱなで失敗してるっぽいな
制御プログラムのソース見たらブート後にSCIの設定を引き継がないで
クロックは20MHzでプログラム時の通信速度は38400bpsで再設定やってるみたいだけど
H8ライターのBAUD(P)の項目は38400にした?
それと
>>552 のH8Sはクリスタルは20Mだよな?
ならBAUD(B)は19200でBAUD(P)は38400でいけると思うんだけど
554 :
550 :2012/01/03(火) 19:24:44.95 ID:ymdvMdaJ
↑BAUD(B)は9600だったわスマン BAUD(B)=9600でBAUD(P)=38400だわさ
555 :
774ワット発電中さん :2012/01/05(木) 04:04:58.89 ID:nwQVeesN
>>554 クリスタルは20Mです
BAUD(P)が19800になってた
38400にしたら Address = 000100Hで同じエラーが出るようになった・・・
ブートで制御プログラムは転送されてるみたいだから制御プログラムがおかしい可能性が高いな
557 :
774ワット発電中さん :2012/01/22(日) 00:20:38.85 ID:gExI+Gu7
復活カキコ
また復活カキコ
しかし今年にはいってから、ほとんど書き込みないな
終わっちまったものに用はないという事だろう
R8CとかRXのほうが便利でお安い
562 :
549 :2012/02/03(金) 02:59:30.98 ID:WMktOKgC
いろいろやってみたけどcygwinの環境がインストールできない・・・ HEWでコンパイルして生成したMOTファイルをH8Wで使える方法ってないですか??
563 :
774ワット発電中さん :2012/02/03(金) 20:19:34.27 ID:2F1IM0JA
>>562 Sレコードになってれば使えるとは思うけど...
ところでアドレスはちゃんとフラッシュの領域になってるかい?
終わっちまったのはH8なのかルネサスなのか、そこが問題だ
565 :
774ワット発電中さん :2012/02/04(土) 16:31:32.18 ID:H9vAygky
>>563 HEW4なんですが、設定の仕方が良くわかりません・・・
Standard Toolchain>最適化リンカ>カテゴリ:出力
で出力タイプをSタイプにしておけばいいんですか?
レコードサイズの統一は一通り試してみたんですが全部だめでした
実行するとH8Wが「書き込み制御プログラム異常 05」返してきます・・・
>>565 秋月のソフトか。HOSを導入してしまえば、H8でも楽しめる。
というか、、、、、、、H8で勉強させていただきました。
567 :
774ワット発電中さん :2012/02/04(土) 22:15:26.53 ID:rfbAzccG
>>565 >実行するとH8Wが「書き込み制御プログラム異常 05」返してきます・・・
HEWの出力形式云々の前にブート用の書き込み制御プログラムがH8Sに送れてないのではないのん?
秋月のH8S2128だっけか
OTP版はH8Wじゃ書き込みできないみたいだけど
フラッシュ版の書き込みに成功したって奴いるのかな?
568 :
774ワット発電中さん :2012/02/05(日) 09:10:57.36 ID:4qLgxmu/
>>567 >HEWの出力形式云々の前にブート用の書き込み制御プログラムがH8Sに送れてないのではないのん?
はい
書き込み制御プログラム読み込みの時点で止まります
で、その書き込み制御プログラムのMOTファイルをHEWで出力したいのですが・・・
motファイルは出力されてるんでしょ H8系の書き込み制御プログラムは内蔵RAMで動作するってのは理解してる? HEWは使ったことないんで的外れかも知れんがロードされるアドレスが内蔵RAMになるように リンカに指示がされてないとかじゃないのかな motファイル見て16ビットアドレスのS1レコードが出てるとかだとまさにソレだな S1xxXXXX....でXXXXはアドレスな 正しければS2レコードで24ビットアドレスで始まるレコードが出てるはず S2xxXXXXXX.... ← こんな感じでXXXXXXはFFなんちゃらの内蔵RAMアドレス わかんなければmotファイルの先頭と末尾を3行くらいずつを晒してみ
570 :
774ワット発電中さん :2012/02/05(日) 17:15:39.51 ID:4qLgxmu/
>>569 最初の三行
S00E00006838775F6374726C6D6F7476
S20800000000000400F3
S20800001800000422B9
末尾の三行
S2140011166FB00004400601006FB1000401206D7632
S20A00112601106D73547009
S9030400F8
こんな感じです・・・
リセット時のジャンプ先を内蔵RAMのアドレス(H'FFE080)にするとオーバーフローになってコンパイルができないので
とりあえずアドレスの設定はデフォルトの、内蔵ROMのH'00400から始まるようになっています・・・
571 :
569 :2012/02/05(日) 17:59:56.11 ID:04+BgSIZ
>>570 >リセット時のジャンプ先を内蔵RAMのアドレス(H'FFE080)にするとオーバーフローになってコンパイルができないので
それじゃダメだすよ...ハードウェアマニュアルは読んだ?
古いプロトコルの奴はロード後に内蔵のブートプログラムから
その0xFFE080にジャンプしてくるハズだから
>S20800000000000400F3
とかの例外ベクタテーブルは要らないよ
簡単言うとコード&定数と変数&スタック領域だけでいい
(ブートと同じ速度での書き込みならSCIの設定すらも省ける)
それとROM書き込み中の割込み例外はご法度
ハードの面だとNMIや/STBYもレベルを固定して例外が出ない様にしないといけない
俺はHEWのことはわからんので、まずはHEW+メモリマップあたりでググって
内蔵SRAMの先頭2KBだけで動作するような実行オブジェクトを作るように
頑張ってくれ
572 :
774ワット発電中さん :2012/02/05(日) 21:37:50.82 ID:4qLgxmu/
>>571 ありがとうございます
頑張ってみます!
初めてH8/3052とHterm使って遊ぼうと思ってるわけだが ファイルに添付されてくる設定方法でいくらやっても文字化けしやがる。 半ば諦め気味で適当に設定を変更していじってたら、たまたま Htermのプロパティでビットレートを57600にしたら正常に動きやがった。 嘘書くなよ・・・
>>573 何というか…色々と残念だな。
最近はこんなレベルの人が多いのかねえ
今更、新規でH8を使おうと考える時点で…
>>574 ,575
知り合いからおさがりでH8の機材を貰ったんだよ。
電気の知識なんて一切ないよ。
出来るのC言語のみ。
こんなレベルだから遊び程度でやってみるかって思っただけだ。
この分野はド素人だから右も左もわからん状態から始めてるわけだが、
この分野の人って知識のない俺みたいなのを馬鹿にする連中ばかりなわけか。
>>576 馬鹿にはしていない
馬鹿にするのを通り越して呆れているんだよ
始めから
>>576 のような説明をすればいいのよ。
・「ですます調」の表現でなくて、
・初めてH8/3052とHterm使って遊ぼうと思ってるわけだが
という文章を見ると、多くの場合
「すでにいろいろなマイコンを渡り歩いてる人なんだろうなぁ」と思ってしまう。
はじめから、
「知り合いからおさがりでH8の機材を貰った。
初めてH8/3052とHterm使って遊ぼうと思っていますが、
僕は電気の知識なんて一切なくて、出来るのC言語のみです。
この分野はド素人なので右も左もわからん状態から始めています。
ファイルに添付されてくる設定方法でいくらやっても文字化けします。
半ば諦め気味で適当に設定を変更していじってたら、たまたま
Htermのプロパティでビットレートを57600にしたら正常に動きました。
どうなっているのでしょうか?」
と書き込めば良かったんです。
>>578 いや、説明の仕方が悪いという話ではなくてだな…
まあ、初心者が手を付けるにあたって、って話であるから、言い方から始まるんでないかい? 初心者がいきなりクソ仕様だとか話の続けにくい書き逃げすれば、さすがにもにょるだろう。 そして説明の仕方以外であきれているというのであれば、「レベル」と「イマドキ」を含む単文だけから推察するに 初心者という宣言において「何の」初心者かを推察することも出来るであろうから、あきれる必要はないし、ヤメておけ、とも言えるであろう。 …という話じゃないの?
シリアルで変動する受信データを加工して一定間隔で送信割り込みを使って 同じくシリアルで送信してるんだけど、送信してるデータが何も変わらないんだけど これってどんな原因が考えられますか? 一応シリアルの受信はmainの中のwhile(1)の中でやってるんだけど。 割り込みで送信してる変数もグローバル変数で宣言してるし、受信も割り込みでやらないと 駄目って事?
プログラムくらいどっかのuploadサイトにいれて 読めるようにしてから質問すると良いのではないかな。
>>581 まさかとは思いますが、このグローバル変数とは、あなたの想像上の存在にすぎないのではないでしょうか。
もしそうだとすれば(ry
割り込みって、カックイイの?
送信てめぇの勝手だが、受信はお相手さまの勝手。 受信こそ割り込み
586 :
581 :2012/02/14(火) 00:24:34.64 ID:voTiOY2Y
すいません質問しといて何ですが作れました。 原因は送信の割り込みルーチン抜けた後に間髪入れずにまた送信の割り込みが掛かってしまっていた事でした。 割り込み掛かる条件考えたらそりゃそうだわと思い結局タイマー割り込みの方を使ってなんとか目的は達成出来ました。 送信割り込みってなんか使えなくないですか?これってどういう時に使うんですか?
長いデータでもバッファに入れておけば勝手に送信してくれるようにできる 一文字出力ルーチンがすぐに戻ってくることが必要な場合もある タイマー使ってもできるからやりたいようにやるよろし
送信空で割り込みだからじゃねえ 送信データがないときは送信空割り込みを止めとかんと
-mint32つけなきゃH/Sでもunsignedは16bitになるでよ
591 :
774ワット発電中さん :2012/03/08(木) 03:04:43.89 ID:xTMpUHkH
すいませんが質問です。 秋月のh8-3664QFPを使った回路を製作しているのですが、書き込みができず困っています。 書き込みにはGCC Developerに付属しているフラッシュライタを用いているのですが、 Checking baud rateが始まっても0%のまま進行せずそのまま"cannot link to target"が出てしまいます。 パソコンと接続し、ブートモードで起動した時点でRXD232端子の電位は-9Vになっているのですが、TXD232端子の値は+5Vが出力されていました。 一方、正常に書き込みができた基盤ではRXD232端子は-9V、TXD232端子は-5Vが出力されていました。 このような違いが発生する原因になりうることがあれば教えていただけないでしょうか?
ハイパー8インフィニティーH8∞ですの!?♪。
593 :
774ワット発電中さん :2012/03/08(木) 08:35:18.18 ID:ffGRXyiL
正常なものとそうじゃないものが両方手元にあるというなら 自分でそれを比較検討して答えを見つけられないの? 何か起こる度に人に聞くの? 自分で考える癖をつけろって ハ ナ シ
エスパーの慰めを待つエンジニアも居るからな。最近。 なんでもきいてね。
595 :
774ワット発電中さん :2012/03/27(火) 19:08:53.14 ID:8pHvXuno
H8にUSBで書き込みができるようにするため、USB-シリアル変換ICにFTDIのFT232RLを使おうと思っているのですが、 これのシリアル側に直接マイコンを接続しても大丈夫ですか? レベル変換ICとかって必要ですか?
>>595 状況がよくわからんが。
H8とは基板モジュールみたいなのを買って、
そのモジュールにRS232Cコネクタみたいなのが付いてるのなら、
レベル変換ICなんかはいらない。
H8のICそのものにFT232RLのUart側をつなぐのなら、
レベル変換ICみたいなのがいる。
電圧違うし、そもそもインバータいるから。
この場合"RS232C MAX"あたりで検索するといい。
>>595 FT232RLはVIOピンがあるのでそれにH8のIO電圧入れればOKだと思います
論理は合うと思いますが、逆ならFTDIのツールでIC内蔵のEEPROMに設定を
書き込むことでインバート出来ると思います。
ただUSB-なんちゃらICはライターソフトとのブリッジ(ドライバ)が上手く行かない
トラブルがあるらしいので、書き込めるかはやってみないことにはですね
FTDI(2ポートのもの)は 電圧変換を介した(232C経由)場合、書き込み 問題なかった
CQのR8C実験基板ってFTDIのデュアル載ってたな
600 :
774ワット発電中さん :2012/03/28(水) 01:45:29.72 ID:JuvY8Byg
>>596-599 ありがとうございます
ググってみたらCQ出版のはFT2232D通してるだけみたいですね
とりあえずはFT232RLだけでやってみます
601 :
596 :2012/03/28(水) 21:37:40.08 ID:zO1qI7rN
>>600 よく調べもせず書いたが、
FT232RLって232Cで使うときバッファ外付けなんだね。
レベル変換もインバータもイランから大丈夫そう。
トラ技の付属H8SXで質問です 調歩同期式シリアルでたまにデータを送信したいのですが 送信していないときのSCR.BIT.TEは1と0とどっちが定番の処理なのでしょうか 最初はTEI割り込みでTEを0にしてみました すると、送信後にバスが2.4Vくらいの微妙なレベルになってしまいました まだ原因は探していません(シリアル通信中はL=0V, H=3.3Vが出ているのはオシロで確認済み) 次にTEI割り込みでSCR.BIT.TEIE=0とするだけでTEは1のままにしてみました 送信後もバスはHを保つのですが、しばらく休んだあとの次の送信が不安定になりました 'A', 'B', 'C', 'D', 'E'を送信後1sec休み、また'A','B',...と続けるはずが ABCDE 休み A 休み BCDABCDE 休み のようになってしまいました どちらもそれ以上追っていないのですが定番処理としてはどちらのほうになるのでしょうか? もうひとつ、マニュアルにはTDREがクリアされると送信開始とありますが TDRE==0の状態でTEを1にセットすると送信は開始されますか? それとも改めてTEセット後TDREをクリアするまで送信は開始されませんか? 自分で確かめたいところなのですが、上記のようにあちこちがおかしいので なかなか確信が持てません よろしくお願いします
>>602 TEを0にすると、汎用ポートに戻るんじゃなかったっけか。 つなぎっぱなしのシリアルポートとして使ってるなら0にする理由がみつからない。
微妙なレベルって、入力でオープンとかじゃないのかいな?
送信再開時と、送信割り込みのソースを晒してみるのはどうか。
送信前準備をしっかりして、セット後にTEIE=1すれば、休むことは考えにくい。
H8SX1520ハードウェアマニュアルだと
TE →このビットを0 にして、送信動作を停止すると、SSR のTDRE フラグは1 に固定されます
って書いてある。ので、「TDRE==0の状態でTEを1にセットする」は物理的に無理だが。
ブレークを送信したいときは使うけど邪道過ぎるわ 故障にしか見えんだろ
>>603 ありがとうございます
入力でオープンはありそうです
マニュアルのその部分は見落としていました
TE=1のまま使うという方向で行こうと思います
>>604 どっちが邪道なのか正道なのかわからなかったので質問しました
ソースはこんな感じです
試行錯誤しているうちに長くなってしまいましたがコメントに***がついているところは
あってもなくても動作は変わりませんでした
この状態で電源投入後最初の1回はABCDEと出てきますが
その後はA、ABCDE、BCDABCDEのどれかを定期的に出力しています
オシロを目で読んでいるので正確ではないかもしれませんが
bool SIO_put(unsigned char ch){ while(!SCI4.SSR.BIT.TDRE); // 送信待ち SCI4.TDR = ch; SCI4.SSR.BIT.TDRE = 0; SCI4.SSR.BIT.TDRE; return true; } void INT_SCI4_TXI4(void){ // 162 : SCI_4 TXI4 const char old_char = SCI4.TDR; if(old_char == 'E'){ SCI4.SCR.BIT.TIE = 0; SCI4.SCR.BYTE; }else{ SIO_put(old_char+1); } } void INT_SCI4_TEI4(void){ // 163 : SCI_4 TEI4 SCI4.SCR.BIT.TEIE = 0; SCI4.SCR.BYTE; } int main(int argc, const char **argv){ init_CPU_Clock(); INTC_init(); LED_init(); set_imask_ccr(true); SIO_init(); SCI4.SCR.BIT.TIE = 1; SCI4.SCR.BIT.TEIE = 1; SCI4.SCR.BIT.TE = 1; SCI4.SCR.BYTE; SIO_put('A'); set_imask_ccr(false); // 割り込み許可 unsigned short count(0), c2(0); bool led_stat(false); while(true){ if(count++==0){ led_stat = !led_stat; LED_set_PM3(led_stat); // 点滅している間は刺さっていない c2++; if(c2%200 == 199){ // 3秒くらい経った c2 = 0; set_imask_ccr(true); // 割り込み禁止 *** SCI4.SCR.BIT.TIE = 1; SCI4.SCR.BIT.TEIE = 1; SCI4.SCR.BYTE; // *** SIO_put('A'); set_imask_ccr(false); // 割り込み許可 *** } } } }
おっと。 TIE と TEIE がごっちゃになってたわ、俺。 TIEを立てておけば、TDRE==1 で割り込みだな。 割り込みで送信の最期を管理すれば、TEIE要らんよね。 で。 あくまで俺のやりかたで比べると TIE=1 してから送出を呼んでるけど、TDRE==1 で始まってると思うから、そこで一回割り込むな。 データのセット後に TIE=1 すべきでなかろか。 送信割り込みがデータを作り出すのも俺的にはびみょう。 配列でデータをもって、添字にカウンタ。開始時にクリア、割り込み毎に++で順次送れる。 データセットとTDRE=0のワンセット後、開始時と途中は同じでTIE=1、最期だけ条件分岐でTIE=0になる関数を作り 開始時と割り込み、両方で呼んではどうか。 送ったあとの割り込みで E を見るんじゃなくて、 E を送るときに TIE=0 にしておけば、送り終われば勝手に止まる。
>>607 > TIE=1 してから送出を呼んでるけど、TDRE==1 で始まってると思うから、そこで一回割り込むな。
> データのセット後に TIE=1 すべきでなかろか。
これで安定してABCDEが出るようになりました
元々のコードはリングバッファで送信データを管理していたのですが
動作が安定しないためどんどん簡単にしていったのが晒したコードでした
TEIEはTEを0に落とすときに必要かと思って使っていました
全ビット送信前にTEを落とすとそこで止まってしまうので。
TEは1のままでいくことにしたのでたしかに不要そうですね
しばらく悩んでいたのが一気に解決しました
ありがとうございます
おめでとう? まあ、 H8つーか、マイコンに限らんけど、機能の使い方の問題は、サンプルソースを入手できればあっという間に解決するよね。
サンプルソースも「これもできます、あれもできます」みたいなてんこ盛りのソースだと、 訳分からん時ある。特にその機能に対しあまり明るくない場合顕著。 「最初からしっかり調べろ」と言われそうだが、 調べる→実装してみる→さらに調べる→さらに実装してみる 見ないな流れが楽な俺は、 最もシンプルなソースと、中ぐらいのソースと、てんこ盛りのソースの3つぐらい欲しい。
でもマルチタスクosが載ってる訳でもないから、 いろんな事を同時に遣る時の処理ってのはやっぱりノウハウみたいなのがサンプルには詰まってるとは思うよ。 単純に単機能のサンプルを合体させましたじゃ動かない事は多い。 製品でも単機能で使う分には問題なく使えるけど、他の処理も遣らせつつだと動かなかったりして問題が出る事はよく有る。単機能テストしかせずに出荷して品質管理のコスと削ってるのだろうけど。
サンプルソースがそのまま使えるって思ってる人って...
613 :
774ワット発電中さん :2012/05/25(金) 11:09:03.30 ID:skmJ39N7
614 :
774ワット発電中さん :2012/05/25(金) 14:44:16.69 ID:mpi1icFk
どっかパチンコメーカー倒産したっけ?
大黒とかか?
大凶
617 :
弖十=優多野手頭=帝跿(徒)=衞鴉隴 哇狸乃雉会 野慈蚕 :2012/05/26(土) 06:22:02.14 ID:JJC3uznV
>>613 電源や制御周りはH8ジャンクのMPUのH8S2144とほぼピンコンパチっぽいね
10MHzで3V電源なのと外部バスがないけど
腐るほどある汎用ポートでマトリクスLEDを制御するのにいいかもしれない
H8って、ルネサスは力入れてないよね。 新機種でマイコンを変えようかという話が出ています。 H8からの乗り換えって、何選んだら良いかわからなくて。 5年後にH8が手に入るなら、H8で良いんだけど。 できれば扱うCPU変えたくないですが、多分無くなるよね。 今使ってるのは、H8S。 明らかにオーバースペックだけど、RXかなぁ。 または、ルネサスに見切りをつけて、Cortex?-M0とか。 16bitは収束だろうし、考えてないかな。どう思う?
>>619 小ロットの長期安定供給が必要なら、H8は意外と悪くない。
開発環境が古臭くて、部品単価もかなり高いけど。
RXは、コスト重視向けだからdisconサイクルは早いかも。
Cortexだと開発環境は、安定供給が見込めてもデバイス自体はメーカー次第。
どこのなら安定供給されるかなんて、まだ誰もわからんのじゃないかな。
621 :
774ワット発電中さん :2012/06/04(月) 21:55:10.19 ID:C2Pvv+Gd
ARMやSH4などのクロック何百MHz級32bitCPUは必要ない、 さりとてPICやAVRでは心もとない、 といったレベルの組み込み用途もいっぱいあると思う。 そういうのにH8あたりは最適だと思うんだけど。 終息させないで欲しいな。
78RL
H8ぐらい使いやすくて高機能なマイコンは無いと思うけど、 個人的にここはちょっとなと思うのは割込みを許可するレジスタが各ファンクション毎だけ じゃなくて、大元にCCRっていうレジスタがあってこいつもいじってやんないといけないのに こいつのレジスタアドレスがマニュアルではなぜか書かれていないからいちいち<SYSIO.h> 呼び出してやんないといけないのが煩わしいのと、あとはモジュールストップ機能ってのがど どう考えてもただの嫌がらせの機能としか思えない。使わない機能は使わないだけで済むはずなのに なぜわざわざ初期設定で主要な機能ほぼ全て使用禁止にされているかが解らない。
>>623 >なぜわざわざ初期設定で主要な機能ほぼ全て使用禁止にされているかが解らない。
まぁ電力を食うという欠点を少しでも緩和しようとしての考えもあるだろうし
cortex-MだってRCCの設定から始めていろいろやった上で使用するようになっているし
盛り込みすぎたから使うものだけ選んで,というのは非合理とはいえないだろ。
それにCCRってのはMPUのレジスタだろ?
ANDCやORC使ってマスクや設定すれば済む話で,操作がヘッダにマクロで
登録でもされてるだけだろうに,何でもかんでも面倒とかどんだけゆとりなんだよw
そんなつまらんことで腹立てながら使う必要はないんだぞ
>>624 モジュールスタンバイは300Hの時リセット後有効になってるけど
H8Sになってリセット後無効に変更されたので、移行した人は
みんなハマってしまうという巧妙な罠が仕込まれているのです
>>625 何が言いたいのかわからんな。
思い通りにならなかったから腹が立ってしょうがない。
罠と呼びましょうとでも言いたいのかな?
そうであれば全く同意は出来ないね。
そんなことはデータシートみれば書いてあることだよな。
書いてないデータシートでもあったの?
古い設計の非合理な点が改善されたものを「ダロウ」「ハズダ」の
思い込みで迂闊なやり方して使えない人間の方に問題あるように
見えるけどな。
違う製品を使う時はデータシートを確かめる習慣が付いただろ?
>>624 そこが良いとこであり難解な部分でもあったんだよ
システムバスと周辺バスが完全に独立してるのは
ペリフェラルを個々に使うなら楽ちんなんだけど、組み合わせるとバラバラだから
どのフラグがどれと論理取ってるのかとか、タイミングとか考慮することがいきなり増えちゃう
それを改善したのがRXで調停目的のバス追加
ずれたけど
>>623 の内容はルネ系を初めて使う人の多くがとまどう部分
アーキテクチャの理解と使いやすさは別の事だと思うよ
もちろん便利=ブラックボックス化されるのは困るしバランスが難しいっすね
全割り込みを禁止したい時はccrで 個別で割り込みを禁止したい時は周辺機能のフラグで という、細かく処理できるってことじゃないの? hewならmachine.hにccrいじる関数が定義してあるでしょ
>>624 割り込みのセマフォ管理にCCRは必須だからねえ。 文句言ってるの趣味人だろうね。
あと電源容量が小さいボードで動かすために最初はペリフェラル最小限というのも常識だよね
最近はフラッシュに記録できるのも多いけど。
なんだかんだ言っても、C+アセンブラレベルではH8はすごく使い易い石だったことは確か
文句としてはもっと早い時期にUSB対応して欲しかったのと消費電力の大きさかなあ。
630 :
774ワット発電中さん :2012/06/10(日) 09:08:25.47 ID:upmTehhd
元日立の設計者だったらどうする?
何故そんな仮定をするのか意味不明だよ
setimask(15);
633 :
629 :2012/06/10(日) 14:02:04.83 ID:/f4I3+OL
>>630 H8は割と「こんなもんでしょう」という感じに仕上がってたからねえ。
SP・PCのレジスタバンクキャッシュがあれば、もっと割り込み多重に出来たのに
くらいかのう。
開発をラダーにすればブレイクするのにな アセンブラとかCとか文字の羅列はセンスもなければ生産性もない 他のマイコンと同じ土俵でどうする?
>>634 それは絶対にないな。ラダーにファンがいるのは知っているが、
普通にプログラムしている者からみれば、ラダーこそがセンスもなければ
生産性もない。そもそも、プログラマーはラダーのことなんか、ほとんど
知らないし、知ったところで使う気にもならない。
汚いラダーの記述は、C言語とは比べようもないほど、救いがないしな。
ラダーは、元々、小規模の制御をするためのもので、拡張されているのは
知っているが、そうまでして使いたいかと思ってしまう。
互換性はないし、完全になくなることはないと思うが、これ以上、普及すること
もないだろう。
センスや生産性は知らんが ラダーって逐次進行と同時進行を同時に置ける制御回路用じゃないの? 速度あげればそれっぽくなるが、どうやっても完全な同時進行はできないマイコンに適用するのは微妙。 いちど、ラダー図からH8のC言語へ移植したことあるが、とりあえず、どっちもどっちだ、と思った。
現代の基準だと、マクロくらいしかないラダーは開発効率悪いと思う。 ラダーの並列処理は、ms単位くらいなら割り込みで対応可能 というか安いPLCってマイコン制御なんだよね。 少し高級になると専用チップかFPGA入ってるみたいだけど。
>>635 なにいってんの?
原発とか数10台の制御盤の制御はラダーだぞ
数値系制御盤の方もブロック図のようなラダー演算表記
制御のプロこそラダーがメイン
誰も文字の羅列でプログラム組んでる趣味野郎はいない
例えば電子回路書く時に 論理記号で書いて設計するのがラダーとすると 論理式で書いて設計するのがCやアセンブラ テキスト文字でしか記述できない昔のPCの時代の遺物なんだよ 文字列挙プログラムは
640 :
774ワット発電中さん :2012/06/17(日) 10:00:04.90 ID:BNzIrRrM
>論理記号で書いて設計するのがラダーとすると >論理式で書いて設計するのがCやアセンブラ だとすると、やっぱりラダーは時代遅れだな。 たとえば、いまどきFPGAを論理記号で設計するバカはいない。 みんなVHDLかVerilog。
641 :
774ワット発電中さん :2012/06/17(日) 10:02:17.09 ID:BNzIrRrM
てゆうか、もともとの発端は 「H8をラダーでプログラムできないか?」って話だったよな。 そんなにラダーが素晴らしければ君がH8用のラダーコンパイラでも作れば?
>638 原発に使っている。==> だからどうしたってこと。 数値制御盤も。。。 --> あそう、それで。 制御のプロこそラダーがメイン。 ーー> 根拠のない思い込み 趣味野郎はいない ーー> ソースは何?誰調べ? >639 >電子回路を書くときに。。。 PC時代の遺物 回路規模の大きい、FPGAなどでは、回路図入力など使われていない。 記号記述は、規模が小さい時は良いが、大規模になると手に負えない。 ラダーは、そもそも配電盤というロジック要素の低い回路を記述する ために発展したもので、もともと複雑な記述をするためのものではない。 原発で使われていようが、ラダーを使ったPLCが使われているのは、通常の マイコンに比較すれば限られていて、ラダープログラマーの数は、かなり 少ない。 つまり、ブレークする要素など、全くない。
>>642 プラント用の専用制御機器はラダーなんだけど
どっちか妄想かっての
プラント以上の大規模案件があるかい?
>>643 儲けになると思うのなら、ご自分で会社でも立ちあげられればいかがですが。
大規模プラントとかいっても、全体の数から言えば僅かな割合です。
ちなみに、ラダーからH8等のプログラムを生成するソフトに連枝がありますが、その人は
ラダーからアセンブラ・ソースを生成すること、中間言語に変換して実行することについて
特許を取られています。
回避するのは、難しくありませんが、事業にされるのであれば気をつけてやってください。
あとラダー屋の人数が絶対的に少ないのは 生産性が良いから少数で大規模の開発が出来ちゃうことの裏返し 一方Cだの趣味プログラマーは多いが 人数ばかり多いだけで主要な産業にまったく使われてない まさに汎用で趣味の世界
>>646 いえいえ、ご自分の信じる道を行かれればということですよ。
そうすれば、本当のことが分かりますよ。脳内では、いくらでも妄想できますよ。
>>645 ラダー屋の人数が絶対的に少ないのは
生産性が良いんじゃなくて、あまり新しい案件ないからでしょw
ラダーだと、まず 動的にプログラムを入れ替える仕組みが無いと思ったけど?
>人数ばかり多いだけで主要な産業にまったく使われてない ここ、笑うところですか?
>>650 笑うくらいなら例として教えてあげて
出来れば重厚長大関連産業がお気に入りみたいw
たとえば、NTTなどの局内電話交換機。 ラダーで制御するなんてありえんわ。
だいたい、そんなにラダーが素晴らしいんなら、 どうしてFPGAの開発環境はラダーにならないんだろうね?
H8のスレで、何言ってるんだコイツ?
ひどい自演
76仕様書無しさん[sage] 2012/06/17(日) 00:40:21.98 安全靴履いて、脚絆巻いて、腰に安全帯つけて、ヘルメット被って、防塵保護眼鏡しながら PCにコンテックのIOボードを取り付けるだけの簡単なお仕事してきた。 安全の為、一棟まるごと電源落としてるから、ドライバインストールは来週の予定。
車に乗ってるこんぴうたーのなかのひとは、おおむねC言語だねえ 船に乗ってるこんぴうたーのなかのひとは、Cだったりらだーだったり、というか、こんぴうたーになってないことも
俺の周りではこんなにシーケンサが使われているぞ、という相手には 何を言っても無駄なので、別の観点から考察してみた。シーケンサで シェアが最も高いのは三菱電機と言われている。 三菱電機の投資家情報を見ると、シーケンサというくくりはないが、 売上構成比のうち重電システムが24.8%で1兆277億 産業メカトロニクスが22.3%で 9270億。シーケンサは、その二つで使われるとして足すと、約2兆円くらい。 主な事業内容として、シーケンサを上げているのは、産業メカトロニクスだけ だが、念のため、重電システムを入れた。その上で、2つの売上がすべて シーケンサとした計算なので、これは実際よりかなり過大な数字と思われる。 三菱電機のシェアが1/3としても、6兆円くらい。実際はもっと少ないだろう。 日本中の大多数でシーケンサが使われていると考えると、いくらなんでも、 少なすぎやしませんか。
俺はYASNACとMELSECの組み合わせで自動車ライン設計を10本ぐらいやったな。 90年代ぐらいの頃だけど、このころはこれ以上の組み合わせが存在しなかった。 MELSECは楽だったな、A/Dみんなぶち込めるし、リレーとアンプBOX咬ませばぶっちゃけなんでも制御できたし。 YASNACにはゴーとストップ、作業完了/終了ぐらいしかやりとりしてなかったけどなー
Cは所詮小型機器レベル
>>660 小型機器って、どんな尺までのものかいな?
というか、小規模回路で制御されてるデカいボディの物体はどっちになるの?
>>658 一行目から勘違いしてる
以下の長文が全て無駄wアホス
>>663 ほう。
そーすると、入出力何点までが小規模なん?
というか
8本セットのポートが1桁個しかないH8のスレでわざわざ大規模シーケンサの話をするのは何でなん?
C言語というかH8でやったのは120個ぐらいだなあ。
>>662 狂信的な人だな。ここまでくると、すごいというより気持ち悪いって感じ。
ttp://ladderman.blogspot.jp/2008/08/plc.html こういうblogを見つけた。6兆はやはり過大で、2008年でたった2000億円
だそうです。成長産業ではないので、3,4年では大して変わらないでしょう。
ラダーをこのスレで言い始めた人が、最初に言ったのは
>>634 >開発をラダーにすればブレイクするのにな
から始まっているが、今では何を主張したいのやら。
ここを見るような人にとって、ラダーは興味の対象外だし、こんな小さな
市場規模なら無視していいでしょう。もう、放置していいんじゃない。
ぶっちゃけラダーなんて大規模シーケンス制御くらいにしか使い様は無いよ。 あと、リアルタイムで状況追っかけるときにモニターでIO抽出するときくらい? 思い出したから上のは書いたけどスレには関係ない話だよな。スマンコ
ここで暴れているラダー教信者は、 Cやアセンブラがマスターできなかったヘタレ技術者なんじゃねーの。 「文字の羅列」「文字列挙プログラム」を目のカタキにしている辺りに そこはかとなくコンプレックスがにじみ出ているんだが。
読み返してみたけどその人はラダーも使えたかどうか怪しいな。 なんかラダーで苦労した話とか何も書いてない。 普通ラダー何年もやってると使える部分より使えない部分が多い事が多すぎて なにこの糞とか思うことの方が多くなるハズなんだよ。間違いなく。 大規模になればなるほど連動動作が複雑になって、 偶発的発生トリガによる不可視のバグとかてんこもり。 結果PCからJOBキックというわけわからん設計になってるじゃん。 さらにLS一個、エンコーダ一つ打ちが悪いともうワケわからなくなる。 今時の仕掛けじゃないよ。
>>666 一行目で結論出てるじゃん
大規模まで融通効くのがわかってて
あえて小規模を別世界にしてしまってその殻でしか使えないアホばかり
それでその殻を壊すでもなく、H8の愚痴ばかりで馬鹿みたい、でFA
ID:Y95TI34H 日本語でOK
他のマイコンと同じ土俵でどうする? という趣旨が読めずに脱線自論の煽り合い アホス
>>669 大規模「しか」って書いてあるのに、大規模「まで」にしてしまうあなた。
小規模シバリとか枠にはめるんじゃなくて、別世界にまでしてしまうあなた。
こもるわけでもないのに殻まで生成してしまうあなた。
別世界の殻… なんかサンサーラナーガ思い出した
今のラダーってシーケンスシステム跨いだ状態での複合トリガ条件の割り込み処理ってどうやってるの? 通な人がいるみたいだし、是非お伺い致したい。
漢は黙ってポーリング
今日会社で製品つくるのにマイコンの選定してて、3069で作りますって言ったら 『それって随分昔のじゃないか?後で廃盤とかになんないか?大丈夫か?』って言われた。 学生時代からの愛用品だけど、気づけばもうそういう心配されるぐらいの年月が経ってるんだなと 思ったよ。Rの方は廃盤になったし、時間の問題なのかな
>>675 3069は、保守 廃止品。新規の取引は受け付けない。
既存のユーザーにたいして対応しているだけだから。時間の問題ではなくて
すでに廃盤と言ってもいい状態。
いまさら3069を選ぶ理由はないな。 というか、事前に供給状態とか確認しないのか?
678 :
774ワット発電中さん :2012/06/22(金) 21:22:49.05 ID:6b1Gge8V
>>675 H8製品の廃盤よりもルネ自体の存続という面の方が危うい気がする
新規設計で電源5v製品に拘らないならARM(cortex-M)あたりの方が
いいかもしれないね
ARMでも、製造メーカーが違えばペリフェラルの互換性はないから どのメーカーを選択するかは大問題。 今のところNXPやSTマイクロあたりが目立つけど、 将来も安泰かどうかは不明だな。
上司になんて言い訳するんだろうかな、とか考えていたよ。選定作業ていっても 何一つ調べてないんだろうしな。 彼よりも、むしろ彼を部下に持った上司に同情するな。
681 :
774ワット発電中さん :2012/06/23(土) 22:07:25.44 ID:WNp+YwUB
>678 フラクタルレジスタを追加したNXP製品みたいに独自拡張されているケースも あるけど、UARTに関しては、16550互換のIPを採用している製品が多いのでは ないかな。 詳しく比較したことはないけど、タイマ等、他のI/Oは各社ばらばらだね。 電源5VのARM Cortex-M3は、富士通が出しているけど、マイコン内蔵周辺 I/O機能が、前時代マイコンのそれと大差ない。 前向きに捉えれば、シンプルとも言う〜。(w 国産と5V電源に拘りたい向きは、使ってみれば〜?(CV:矢島晶子)
PrimeCellが普及してくれることに期待するべ
>>661 IPが同じでもデバイスがディスコンになれば、後継品種にのせかえるのは大変だよ。
それが簡単に出来るくらいなら、H8なんてとっくの昔に終わってる。
携帯やスマホみたいに、パッと生産して、すぐモデルチェンジするような商品なら
armでもいいけど、H8並に長期供給を期待するなら、余程メーカーを厳選しないと危ない。
#define H8_3069F_SCI_SMR_CKS_PER1 ( 0<<0 ) #define H8_3069F_SCI_SMR_CKS_PER4 ( 1<<0 ) ・・・・・ #define H8_3069F_SCI_SMR_CA ( 1<<7 ) ( n<<m ) この表記ってどういう意味なんでしょうか。
>>685 ありがとうございます。
一応ビットシフトだろうということはなんとなくわかるのですが、
#define の中で ( 1<<7 ) とか ( 1<<0 ) とかがよくわかりません。
マクロ定義だとは思うのですが。
ハードウエアマニュアルを眺めてみれば意味がつかめるかもしれず
2進数 16進数 10進数
00000001 01 1 1<<0
00000010 02 2 1<<1
00000100 04 4 1<<2
00001000 08 8 1<<3
00010000 10 16 1<<4
00100000 20 32 1<<5
01000000 40 64 1<<6
10000000 80 128 1<<7
ttp://d.hatena.ne.jp/pknight/20100427/1272396732 #defineもわからんとか?
貼りつけた内容がC言語で書かれてるかもわからないとか?
0<<0
が釣りか
>>688 >0<<0
>が釣りか
いえ釣りじゃないです。こういう記述もあります。
#define H8_3069F_SCI_SMR_CKS_PER1 ( 0<<0 )
#define H8_3069F_SCI_SMR_CKS_PER4 ( 1<<0 )
#define H8_3069F_SCI_SMR_CKS_PER4 ( 2<<0 )
#define H8_3069F_SCI_SMR_CKS_PER4 ( 3<<0 )
690 :
689 :2012/06/30(土) 01:59:13.37 ID:2bXg5ijc
↑ PERの末尾の数字は1、4、4、4になっていますが順に1、4、16、64です。
H8_3069F_SCI_SMR_CKS_PER4 が複数書いてあるのが釣りっぽいけど 書いた人に聞いたほうがよくね ビットフィールド派なんで、その手の記述は好きじゃない printf("%02x\n",0<<0); printf("%02x\n",1<<0); printf("%02x\n",2<<0); printf("%02x\n",3<<0); とか、パソコン環境で試してみたら あと、H8/3069 F-ZTATハードウェアマニュアルのSCIのSMRのCKSの説明をよく読みませう(519ページあたり?)
>>689-691 代入の右辺式に使うための定義でしょ。
SCI0.SMR.BIT.CKS=H8_3069F_SCI_SMR_CKS_PERxx;
みたいな。
一見、バイト/ワード単位でのレジスタアクセスと考えればマクロ定義は
おかしいと思えるが、「m<<0」はシフトしない「m」の値そのままと等価
なので、ビットフィールド代入する値の定義なら期待通りに動く。
亀レスだが、ラダー図のコンパイラあるよ。 ラダー図コンパイラで有名な「連枝」の普及率について。プロで使ってる香具師いるのかな・・ >CPU素子そのものが、世界最小で最安価なシーケンサになります。(「連技」サイトより) 確かにこれは納得なんだ。なんで一般のオムロンやら三菱やらのシーケンサってあんな高いんだろ? マイコンと駆動回路で代用したらもっと安くなりそうなもんだがなぁ。 ひとつはシーケンサが使用されている業務の単価が高いから、原価よりも人件費(学習コスト)などを 考えてシーケンサを採用するのかな。 あ、ごめんスレチで。漏れはラダー支持者じゃないよ。
> マイコンと駆動回路で代用したらもっと安くなりそうなもんだがなぁ。 きょうび、中身が汎用マイコンと駆動回路で構成されていないシーケンサー なんて世の中にあるの? ゼンマイ式オルゴールとか、小人さんが入っているとでも?
専用ASIC使ってるから汎用マイコンで構成されてません(キリ
専用ASICったって中身のCPUはあれだろ。
フリップフロップで汲んであるエシックwww
クロック同期式のシリアル通信まじで出来ねえ なんなんだよこれ。
クロックなし同期通信は自前でやらないといけないから大変だよ
>698 通信相手とLSBファースト/MSBファーストが違うなんてオチじゃないだろね。
・3.3Vと5V直結
・プルアップしてない
・トリガーが立ち上がりか立ち下がりか考慮してなかった
・配線が下手でクロックが鈍りまくり
・周波数を上げすぎて以下同文
>>698 よ怒るな。全部君のことじゃなくて俺の経験だw
まだあった。 ・そもそもクロックが出てない + 手配線でピン間違い + 入出力設定間違い + 昨日買ったばかりのジャンプワイヤが、端子のカシメ部で断線しかかってた (コネクタに触ったときだけ通信できたりした)
俺が昨日やったのはTXとRX間違ってつないでた いつまでたっても受信割り込み入らないなぁと思ってソフトのデバッグ頑張ったんだけど そもそも信号が来てなかったw
自己解決しました 電源が入っていませんでした
自己解決しました チップが付いてませんでした
今日も駄目だった・・・いつになったら出来るのやら、本当に泣きそう
連休はそんな事忘れて遊ぶがいいさ。 そばに教えてくれる人がいるならともかく、 一人で同じ事を繰り返していたら 同じ結果が繰り返されるだけ。 どうしても気になるなら、一回データシート全編読破してみれば?
同期通信ができませんだけじゃ、よくいうエスパーじゃないし分からない、 だよね。自分でやるつもりで単にグチを言っているだけなら、逆にえらいが。 関係ないけど、自分の経験だとルネサスのサンプルにバグがあってえらいめに あったことがある。そんなの信用するのがバカというのが聞こえてきそうだが。 客先から、これを使えと指定があって、しかもご丁寧に"実績があります"だもん。 プログラムは他の人間が書いたのを引き継いだんだが。辻褄はあってるけど、 まともに動きそうな感じがしないって感じのプログラムだった。なので、 どうしてもそっちを疑ってしまった。サンプルは、実績があるって言われたしね。 しかたないんで、元のプログラムを捨てて最初から書き換えた。プログラムは 短かったがすでに自分のところにきた時点で納期遅れになっていたので、苦渋の 決断だったが。それで、制御側の責任ではないと確信できてサンプルのバグと やっと分かった。
>>708 要するに何?グチ?
>>698 H8系のクロック同期式はクロックが自前だと受信だけの場合でも
送信と同じことせにゃいかんのだけどソレは大丈夫か
>>709 単なる昔話、だがサンプルを信じている人はいるから、こういうことも
あるという例でもある。めったにないとは思うけどね。
711 :
774ワット発電中さん :2012/07/14(土) 13:02:20.18 ID:bPToqFx/
>>709 まあ十中八九は自分間違ってたのを、サンプルのせいにしてるだけ。
>>711 そう考えるのも無理はないかな。詳細は忘れたが16ビットのカウンタの
ハイバイトとローバイトに同じ値を設定していたと思ったな。
しかし今考えると結構使われていそうなサンプルだとは思ったので、バグが
あるのは不自然だった気もするが。それっきりの仕事だったので、バグとして
報告もしなかった。報告していれば本当のところが分かっていたかもしれないな。
クロック同期式ってのは、接続するものがあるってことだから 全部同じには語れないような サンプルってのはどういう回路使ってたんだろうね
クロックなしの同期とは、何とシンクロするんだ? 脳内の綾波レイとか?
つ「調歩同期」
>>715 いやおまえ、レス読もうよ
それともアスペか?
いやおまえ、空気読もうよ それともアスペか?
x 少ない o いない
>>713 まあ一番良くありそうなのは9600bps程度だったサンプルプログラムを
高いボーレートにパラメーターだけ直して動かしたとかじゃないかな。
それはカテゴリー的にはフレーム同期なんじゃあるまいか?
同期 通信 っていっても、いろいろ 周辺機能にオンブ出来るうちはいいんだろうけど
まあ普通はオンブできるように周辺機能を選択するんじゃあるまいか。
一週間程度でC言語によるH8のプログラムが出来るようにならないといけないのですが、オススメの参考書やサイトがあれば教えて頂けませんか? 私自身、C言語はおろかプログラミング自体も初心者なのでダメ元でやるつもりであります
> 一週間程度 ?
正確には9日です
開発環境とかはどうすんの?
一応3048Fのボードが一枚ありますが、ケーブルが無いので早いうちに調達するつもりです それまではPC上でプログラムを書く練習をするべきかなと考えています ブレッドボード、LED、抵抗、スイッチ等の部品は一通り揃っているのでケーブルさえ入手できれば書き込んだプログラムを実際に動かしたりしてテスト出来るのですが・・・ 無理がありすぎますよねぇ・・・
>プログラムを書く練習 コンパイラとかアセンブラとはどうすんの?どこの使うの? 書く練習は鉛筆でも出来るんだよ 書く練習するのはいいけど、読む練習とかしないつもりなの?
GCCというソフトを使用しようかと考えております 何から手を付けていいのやらさっぱり分からないので、何が必要か詳しく教えて頂けるとありがたいのですが・・・
GDL ってので、検索してみなはれ
1日目 ケーブルとソフトと参考書を調達 2日目 ソフトインスコと参考書読破 3日目 ハロワ打ち込み コンパイル出来なくて悩む 4日目 あきらめて寝る 5日目 サボリ 6日目 何かにひらめく 7日目 ハロワ成功 8日目 乾いた砂のごとく吸収 9日目 レベル99 全てをマスター
すみません、私がインストールしたのはこれでした GCC Developer Lite なのでてっきりGCCと呼んでました
>>734 紙じゃないけど、書く練習できるもんがあるでしょに、それに
アプリの使い方から教えてくださいと言ってるわけじゃないよね?
リアルなハロワ通い勧めてるのかと思ったよ、一瞬 733は
適当なC言語の解説サイト探してそれを読みながらやってみます ご教授ありがとうございます Hello World( ^^)
Hell World !
工学系ならC言語は常識なので、いつの間にか知っていたという感じじゃないのか?
> C言語はおろかプログラミング自体も初心者なので こう書いてる > 工学系ならC言語は常識なので 勘違いしてね マイコン系は電気電子の知識がある方が有利ってだけ
742 :
774ワット発電中さん :2012/08/11(土) 21:48:57.44 ID:711XTSG+
ないのは致命的
起動部分、マイコンの周辺とかに依存しないところは そうでもないかもしれんけど その手前の要求を理解するところでコケる確率は上がるかも なんちゃってSEが吸収できればいいけどね
H8何個つなげたらPCできますか?
H8H8H8 H8H8 H8 H8 H8 H8H8H8 H8 H8 H8 H8 H8H8
△読めるように配置をもっと努力しましょう
H8H8H8 .H8H8 H8 H8 H8 H8H8H8 .H8 H8 ..H8 H8 H8H8 難しい・・・
H8H8H8H8H8H8H8H8H8H8H8 H8 H8H8 .H8 H8 .H8H8 .H8 .H8H8 .H8 H8 H8 .H8H8H8H8 H8 .H8H8H8H8 .H8H8H8H8 H8 .H8H8H8H8 H8H8 H8 H8 .H8H8H8H8H8 .H8 H8H8H8H8H8H8H8H8H8H8H8
AAチェッカくらい試してから書き込めよ
つまりできないってことですか?
つまらないからできるかもよ?
まずはPCの定義が必要だな 初代IBM-PCのことなら1個で可能じゃないのか? x86エミュレータぐらいあるだろうし
PC=プログラムカウンタ
PC=ポコチン
755 :
774ワット発電中さん :2012/08/14(火) 21:22:33.53 ID:pTmk6KN6
最大コレクタ損失
Patrol Car
ここは警察じゃないよぉ〜
Plastic Case
Ponta Card
ここはローソンじゃないよぉ〜
ここがローソンじゃないよ! 俺がローソンなのよ!
上海万博でローソンが労損!・万博会場内ローソンが“悲鳴”・人集まらず ...
わかったら、黙ってココにサインしろ
100円ローソンで、ポンタカードはおもちじゃないですよね?って聞かれたから、 お餅じゃないですよプラスチックですよ、と心の中で答えました。 今度スライス餅にポンタカードを描いて出してみたいなと思うだけは自由でした。
おれは未だローソンパス 略してローパスを持ってるが 渡す時は「はい」って渡してる。
職業はバンドマンで、あだ名が「のっち」とかか
>>767 GDLではコンパイルできないだろうね。
きっちり調べたわけではないが、AKI-3048fに付属していた古い日立のCコンパイラで
ビルドしたものである可能性が高い。GDLだと、拡張子は.OBJ じゃなくて .o のはずだし。
うろ覚えだが、sampleのPad2Test.sub ファイルの中身にも見覚えがある。
ソースを入手してGDLに合せた修正を加えてコンパイルするか、昔の日立のコンパイラを
使ってコンパイルするか、どちらかだろうね。
>>768 gdl用に直せそうにないので、今回は諦めます。
ありがとうございました
770 :
774ワット発電中さん :2012/12/31(月) 22:40:10.25 ID:jW4FKukJ
もうスグ開けますよ
h8にmmuが付いてたらなあと一瞬夢見た 68k見たいに外部mmuとかあればと言うか、ちゃんとmmu付きのcpuを本体にしてh8にハード周りの処理させればいいだけだなw メガドライブってゲーム機で68kの先にz80がくっついてて遅いサウンド処理任されてたの思い出した
>メガドライブってゲーム機で68kの先にz80がくっついてて 68kとZ80で一部バスを共有している構成であり、「68kの先にz80がくっついて」る訳ではない。
>メガドライブ Z80から68kの全エリアアクセス可能だったな 見てる32kb単位で切り放されるから変なとこ見ると68k側が止まっちゃうけど
hage
775 :
魚チョコ :2013/04/10(水) 20:43:24.28 ID:IC1Ac701
杉山清貴とおメガドライブ ミ'ω ` ミ gomen...
テラドライブならおまけに80286も載ってて超お得。
777
778 :
774ワット発電中さん :2013/05/28(火) 17:56:32.42 ID:4y96hLJX
H8で直接LEDをドライブしちゃいけないってほんとですか?
>>778 どっからそんな話が出てきたんだ?
ポートの許容電流(1ポートおよび総和)を越えなければかまわん。
わかんないなら、初心者スレでマイコンのポートについて聞いてきなさい。
>>77-779 多分それほど間違ったことは言ってない気がする。
最近は高性能なLEDもあるが、少し前の時代ならLEDを安定的に光らせるなら10〜20mA程度の
電流が必要だった。最近のでも数mAは必要と思う。
LEDの順方向電圧のバラ付きや電源電圧を5V単一と考えるなら、それ程精度良く電流値を決められない
ので、直接のドライブはするなという表現になったのでは?
>>778 シンク動作は良いがソース動作はあんまり勧められない。
データシートにLED点灯回路出てるよ。
783 :
774ワット発電中さん :2013/06/25(火) 00:29:10.35 ID:zhBQRWlY
gccでh8用のバイナリファイルを作成できるのは、 gnuがh8用のコンパイラも作成しているってことですか? armとかだったらgnuに開発費出して無料のコンパイラを作らせているのは知っているんですが、 ルネサスもgnuにお金を出しているんですか?
ぐにゅぅ
>>783 よくはしらないけどH8用のgccを作るのはそんなに大変じゃなかったはず
コンパイラをゼロから作るのではなく既存のgccにH8-CPUのアーキテクチャを
教えてあげるような設定をすることでH8用gccになるような仕組みだったと思う
実際に金が動いたかどうかは知らんけど、動いたとしても
目ン玉飛び出るような金額ではなく「寸志」程度なんじゃないかな
>>783 GNUでなくてcygnusに出してる
いまはRedHatに出してると思うが
787 :
774ワット発電中さん :2013/06/26(水) 00:13:46.11 ID:+S6Bh/l9
>> 785-786 ありがとうございます。 今日H8関係の本を読んできました。 入門レベルだったのでgccをインストールするまでの流れが書いてあったのですが、 785さんが言うとおりにgccを使用する際、H8用のライブラリと合わせていました。 ただよくは分かりませんでしたが・・・。 まぁ確かに必要になるのはマイコンのレジストリ構成ぐらいですもんね。 命令セットなんてほとんど同じだし。 HEWはルネサス自身が直接開発している純正コンパイラなんでしょうか?
>まぁ確かに必要になるのはマイコンのレジストリ構成ぐらいですもんね。 >命令セットなんてほとんど同じだし。 入門者みたいけど馬鹿丸出し
Hewは日立系のルネサスCPU用の統合開発環境じゃなかったっけ? ツールチェインの設定画面でCコンパイラを指定したような希ガス
つーかなんで素直にHEWを使わないんだ?
Linux使ってるからじゃないかな
つーかなんでいまどきH8で入門なんだ?
只でもらったから
つーかマニュアルも日本語だし、マイコン入門にはいい
795 :
774ワット発電中さん :2013/06/27(木) 23:20:09.29 ID:rWL3Y8fc
>>789 ありがとう。
HEWはコンパイラじゃなくIDEですね。
てことはコンパイラ自体は一体何を使ってるんでしょう?
てか日本のメーカはコンパイラの開発が出来るんでしょうか?
これはどちらかというとソフトウェアですし。
796 :
774ワット発電中さん :2013/06/27(木) 23:31:09.42 ID:rWL3Y8fc
>>788 アセンブラレベルで言えば、組み込み用のマイコンの違いなんて、
レジストリと搭載されているペリフェラル、ポートぐらいでしょ。
それにペリフェラルとポートはレジストリを通して操作するんだから。
そうなるとC言語レベルのプログラミングで行うことは、やっぱりレジストリに対する操作になるのでは?
だからgnuが開発したコンパイラと合わせて使えるのかなぁと推測しました。
私は超絶初心者ですが。
>>796 >アセンブラレベルで言えば、組み込み用のマイコンの違いなんて、
>レジストリと搭載されているペリフェラル、ポートぐらいでしょ。
>
>それにペリフェラルとポートはレジストリを通して操作するんだから。
>
>そうなるとC言語レベルのプログラミングで行うことは、やっぱりレジストリに対する操作になるのでは?
一年後に↑の文章読み返してみると面白いかもね。
言われてみれば、たしかにレジストリとレジスターって響きは似てるよね^^;
799 :
774ワット発電中さん :2013/06/27(木) 23:45:12.59 ID:rWL3Y8fc
ただなぜ今頃H8なんだって声が多いですね。 そうなのか。 H8は日本のメーカが開発した純国産マイコンじゃないですか! 今や日本のマイコンといっても中身はARMだったり・・・ちょっと悲しいじゃない? でもそういってもやっぱりアメリカ製のマイコンは機能が豊富でコンパイラも素敵なのがほんとうに多いよね。 今日、PIC用のMPLAB使ってて思った。 その前にmbedを触ってましたが、これはweb上で開発出来ました。 ちょっとしんどかったけど、これはデフォルトではARMが開発したコンパイラを使ってるみたいなんだけど、 別にGNUの開発したARM用のコンパイラでも十分開発出来ましたよ。これはオフラインで開発するにあたって ダウンロードしてきたんだけど。。。。ただ未対応の機能があって結局オフラインでの開発は諦めたんだけど。 日本はソフト部分がいまいちだよな。
800 :
774ワット発電中さん :2013/06/27(木) 23:46:13.68 ID:rWL3Y8fc
>>798 わかりました。明日ぐらいに再度見直しますが、一年後ちゃんとレベルが上がるように頑張ります。
801 :
774ワット発電中さん :2013/06/27(木) 23:49:08.79 ID:rWL3Y8fc
>>797 >>798 とりあえずレジスタとレジストリを混在させていることはわかりました。
(TT)
ありがとうごじます。
へぅ〜
803 :
774ワット発電中さん :2013/06/28(金) 02:30:17.62 ID:XxHjdBCG
804 :
774ワット発電中さん :2013/06/28(金) 20:20:47.11 ID:6U0m0W63
H8が純国産って、『周回遅れで出てきた、モトローラ68Kの劣化コピー』 の間違いだろ。JK
805 :
774ワット発電中さん :2013/06/29(土) 22:05:37.58 ID:s9QUwTdn
HEWで使われているコンパイラはGNUのgccコンパイラ。 残念ながら日本のメーカーはコンパイラを作る能力がないし、作っているところはないはず。 C言語自体アメリカだけで規格化しているっていう現状もあるから。
>HEWで使われているコンパイラはGNUのgccコンパイラ。 >残念ながら日本のメーカーはコンパイラを作る能力がないし、作っているところはないはず。 > >C言語自体アメリカだけで規格化しているっていう現状もあるから。 馬鹿丸出し。生きていて恥ずかしくないのかな?
>>805 にわかには信じられない・・・ソースどこ?
808 :
774ワット発電中さん :2013/06/30(日) 08:09:40.53 ID:Y6eoLRkc
1980年以降位の事しか知らないけど、windowsが普及する以前は日本国産のCコンパイラたくさんあったじゃん。
>>804 俺は8086をビッグエンディアンにしものと思った
>>799 >でもそういってもやっぱりアメリカ製のマイコンは機能が豊富でコンパイラも素敵なのがほんとうに多いよね。
>今日、PIC用のMPLAB使ってて思った。
ARMはイギリスの会社だし、PICの現在の純正のコンパイラ担当してるHi-tech softwareって元々オーストラリアの会社だけどな。
813 :
774ワット発電中さん :2013/06/30(日) 19:48:22.55 ID:3Mof2Ls3
>>806-807 では、コンパイラを作成している日本のメーカーを教えて下さい。
馬鹿丸出しなのはあなたです。
>>812 gccコンパイラで開発しています。
815 :
774ワット発電中さん :2013/06/30(日) 20:20:04.28 ID:3Mof2Ls3
>>814 残念ながらその中身はgccです。
ただGNUはgccをソースコードで公開しているため、ユーザ自身がそのソースコードから
コンパイラを作成する必要がる。(コンパイラをコンパイルする必要がある。)
だから多くのコンパイラのサードパッケージはそのソースコードからコンパイルしただけっていうのも
かなり出回っています。
まぁルネサスがそのソースコードに何らかの変更を加えているかどうかはわかりません。
それに僕は直接ダウンロードしてきたgccコンパイラで開発はしています。
ホントに中身がGCC だったら相当やばいんじゃね? GPLライセンスの都合で開発成果のコードは GPL公開/配布しなきゃなんねーんじゃねえの?? 組み込み系には大問題だろ、それ・・・
>>817 GCC で生成されたバイナリが即 GPL に縛られるわけではない。GPL で公開されてるプログラムと
静的にリンクされたバイナリなら所謂 “GPL汚染” となるが。
>>813 >では、コンパイラを作成している日本のメーカーを教えて下さい。
"富士通 コンパイラ"
"NEC コンパイラ"
"東芝 コンパイラ"
"ルネサス コンパイラ"
とかでぐぐりゃ、スパコンやマイコン用に自社のコンパイラ抱えてるとこが珍しくないことぐらい
すぐに分かりそうなもんだけどなあ?
エプソンみたいに自社の製品用に GCC ポートしてお茶濁してるとこもあるけどな。
>818 gcc自身はGPLだから、gccにパッチあててH8に対応してたら そのパッチ自体は公開しないとアカン。 公開してる様子は無いから大問題w
>>820 ちなみに、
>gcc自身はGPLだから、gccにパッチあててH8に対応してたら
>そのパッチ自体は公開しないとアカン。
>公開してる様子は無いから大問題w
GCC のリポジトリに H8 用のコードは取り込まれてるし、ルネサスのプロセッサ用にビルドされた GCC の
バイナリを配布してる KPIT のサイトでソースも配布されてる。
ソース公開は義務ではない。
GNU General Public License - Wikipedia
http://ja.wikipedia.org/wiki/GNU_General_Public_License > よくある誤解[編集]
> GPLなソースコードを改変・修正した場合、ソースコードを公開しなければならない
> GPLで保護された著作物の修正や、GPLの影響が及ぶコードを新しい著作物で利用するとき、
> 修正者であるライセンシー、またはライセンシーの組織内のみで私的に利用されるだけならば、
> ソースコードの公開は要求されない。
> ソースコードは無償で頒布しなければならない
> GPLが要求することは、ソースコードを入手する機会を保証することである。たとえば、ソース
> コードが記録されたCD-ROMを実費を請求する形で郵送しても一向にかまわない。GPLv3では
> 第4項第2段落で「『プログラム』の『伝達』行為に対する課金」と定めている。ただ、「ライセンス料、
> ロイヤルティその他の対価」を徴収することは、「さらなる権利制限」になるので注意が必要である
> (セクション"下流の受領者への自動的許諾"を参照)。
h8s2612を仕事で使うことになったのですが、これは読んでおけって本などありますか?これまで組込みの仕事はやったことがない人間です。
(renesasのウェブサイトから)ハードウェアマニュアル(各マイコンごとに出てる)をダウンロードして読まれてはいかがですか
ありがとうございます。 マニュアルは早々にゲットしました。 ほかにこれがあれば困ったときに助かるというものありますか? 社内にわかる人間がいないので、つまずいた時のヒントになるものがあればと探しております。
今まで組込をやった事無い人にいまさらH8の仕事をやらせる経緯が気になるな
誰がやっても、同じ物ができるって思ってるんじゃね
832 :
774ワット発電中さん :2013/07/06(土) 17:15:10.31 ID:XcROlXPF
日本はC言語の規格を制定しているのかな? C言語ってアメリカの標準化団体ANSIだけ(アメリカ人だけ)で規格化して、それにもとづいてGNUだったりが 開発しているイメージがある(日本人も参加して)。最近のC11やC++11なんかも。 まぁARMのコンパイラとかは独自機能が入ってたりして、他のコンパイラでは使用できなくなる ソースコードとかあったりで腹が立つことがよくあるしな。 日本はC言語の規格化はどうしてるんだろ? あんまりこのへんで日本の規格だったりを聞かへんね。 となると大手メーカーさんはANSIを元にかいはつされてはんのかね?
今はISOだよ 翻訳したものがJISとしてあるよ
Embedded C++なんてのは日本の企業が中心でやってたけどね。
Embedded がつくと、楽できる(誰でもできる)と思ってた系
>>834 C++ 使わなきゃならないレベルのアプリなら、
まともにLinux動かせる位のCPU使うと思うが。
>C++ 使わなきゃならないレベルのアプリなら、 >まともにLinux動かせる位のCPU使うと思うが。 馬鹿にはそうとしか考えられないってことかな?
組み込みなC++だと、 デバッグなしで動かせる のが、売りらしい ホントかよ
どんな言語だろうとデバッグなしってありえないと思うんだが 思い通りのプログラムを全く間違いなしで一発で書ける人間なんて存在するのか?
PRINT "HELO WORLD!"
>839 昔々の話で恐縮だがそのころいた会社では関連会社含めて毎年プログラム大会をやってた 俺は一次審査で平均点(60点ぐらい)しか取れなかったから出れなかったが 満点取るやつがフロアに数人は居て本戦に行けた 本戦は課題のプログラムを用紙に書いてパンチャーに渡すだけの一発勝負 絶対に動くようにプログラム組んで読みやすい文字で書くのがポイントだと聞いた 本戦に行けるような人は色々問題のある人も多かったけどなぁ 自論を絶対に曲げないからチームでの仕事できないとか性同一性障害とか
>>841 > 自論を絶対に曲げないからチームでの仕事できないとか性同一性障害とか
おかまちゃんもいたのか!!
>>842 ホルしてるようなのは鬱が酷かったりするから人間性が問題なんだよな
>>840 >PRINT "HELO WORLD!"
デバッグ以前に辞書くらい引け
むかし、テーブルトーク用ゲームのシナリオ集(洋書)を (趣味で)翻訳してた知人が居て、そのひといわく、物は試しと 機械翻訳にかけたら HIGH PRIEST(高僧)を絶頂坊主とか訳されたらしい。いや、辞書的には正しいのかも知れんが・・・ ・・・「ヘロさんの世界」という企画用の表示だとかで 筆者が思ったのが「HELO WORLD」だとしたら、 たとえ辞書の内容とちがうからといって、勝手にHELLO WORLDと直す環境があれば、それは、思い通りに表示するという 当初の命題と乖離していると思う。
ヘリコプターマニアが読む雑誌か何かじゃないの?
PRINT "Hell WORLD ! "
きっとSMTPサーバに挨拶してるのさ
PRINT "Hello Work" も定番
戻り値が0なんですね 悲しいなぁ
・・・H8ユーザーはハロワ行きなんけ?(´;ω・`)
>>851 戻り値 0 は正常終了だから良いのでは?
855 :
774ワット発電中さん :2013/08/20(火) 13:14:39.94 ID:tu9tf+z9
初心者です H8ってどうやるんですか
856 :
774ワット発電中さん :2013/08/20(火) 13:16:30.61 ID:tu9tf+z9
H8ってVBAでできますか
857 :
774ワット発電中さん :2013/08/20(火) 13:19:21.11 ID:tu9tf+z9
すいませんH8にカラーセンサーつけて赤だったら通電させるやり方おしえてください
勉強してください
859 :
774ワット発電中さん :2013/08/21(水) 19:23:14.27 ID:NvWvaj6J
勉強のやり方をおしえてください
まず歯をくいしばれ
「できない」というつまらない結論を急ぐより、どうやったら可能かを考えるべき。
>>856 H8からシリアル通信する仕様にしておいて、
PC側のホストプログラムはVBAでくめば?
>>861 Hew評価版にCコンパイラついてたと思うけど・・・
>>857 入力に設定したI/O端子にカラーセンサーの出力をつないで、カラーセンサーの出力信号を判断して、
カラーセンサーの出力信号が赤だったら、出力に設定したI/O端子から、LかHか通電させる側にみあった信号をだせばよい。
今h8でちょっとしたものを作っているのですが、動作が安定しなくて困っています。 現象としては電源をオンした時に、ときたまマイコン側に電圧が5Vきちんと入ってくれなくて起動しないというものです。この時はマイコン側に1V程度しかかかっていません。 そしてこの現象が起きたときは単に電源を何度も入れなおしても起動はせず、 電源コネクタのあたりをいじっているとキチンとマイコンに電源が入り通常動作します。 そしてしばらくして電源を入れなおしたりすると同じ現象が起きます。 電源は5V2Aのスイッチング電源を使っていて、電池ではないので電源側に問題があるようには無いと思ってます。 マイコン側に1Vしかかかっていない時も、電源側からは5Vでています。 今は配線の方を見なおしたりしているのですが、原因は特定しきれていません。 コレはどういったことが原因だと考えられるでしょうか。 ハードの問題をここで聞くのはちょっとずれてるかもしれませんが、こういう時にチェックすべき点などアドバイスいただけたら嬉しいです。
既に答えは出ているんじゃないの。 電源からは正しく5V出ているのに受け側のH8には1Vしかないなら、 その間にある部品(コネクタやケーブル)のどこかで接触不良や断線が 起きているしか考えようがない。
中で断線してて、特定の角度で曲げた時だけ接触とかありがち
アドバイスありがとうございます。 やはり配線がどこかおかしいですよね。丁寧に見なおしてみます。 ただきちんと動作している時もあるので人としては、そこが理解不能な感じです。
電源の電流にも注目するヨロシ おおきいならどっかでショートしてて電源がヘタってる可能性もあるザマス
マイコンの電源ピンをつなぎ忘れてもプルアップ抵抗経由でIOピンから入る電流で動くからな
871 :
774ワット発電中さん :2013/09/04(水) 19:32:05.27 ID:+Wfq4j+S
皆様有難うございます。 まだ時間が取れてないのですが、頂いたアドバイスを参考に色々みてみます。
ルネ売却されたからh8も終わりだな 本当に今更h8になってしまった 組み込み未経験でh8の案件引き受けられる神経は怖いもの知らずだよな あちこちでバグが原因の不具合が多いけどこんな未熟なプログラマが製品作ってるんだからそりゃまともに動くほうが稀だよな
>>870 省電力が上手くいかなかったのはそれかもしれんwww
前は職人が過去資産の延長としてマトモな回路作ってたんだけど 今はどっかでさらっと習ってきました〜みたいなのがいきなり組ませられるからな こりゃありえない見たいな処理は増えたよな、確かに。
877 :
774ワット発電中さん :2013/09/12(木) 19:58:24.98 ID:X0PYBi9X
PHPですねわかります
Javaでしょ
879 :
774ワット発電中さん :2013/09/13(金) 00:14:57.12 ID:cMUv2g96
I/Oでシリアル通信しようとしてるんですが、SCI使った方が簡単ですか?
お好きなほうで
881 :
774ワット発電中さん :2013/09/13(金) 00:24:06.29 ID:cMUv2g96
>>880 送信データが多いので、調整できるI/Oでやってみようと思います
いやー、まー、なんというか、、ネタであってほしいとゆーか。。
製品が出来ましたとかなら。。。
884 :
774ワット発電中さん :2013/09/14(土) 03:16:42.24 ID:XOYefx8K
目的があるなら良いと思うよ
>>874 脳内バグでも抱え込んでるんですか、あなたは
まだエラー処理が雑草されてないので 不具合が検出出来ない デュアルh8構成にしてお互いに監視させれば良いんじゃと思った どちらが主導権二gルカでループしそうだけど
win8でつかえません
890 :
774ワット発電中さん :2013/09/14(土) 18:03:27.18 ID:bMI/pPoV
>>884 今更だね。
H8はたくさん資料があるって言うやつもいるかもしれないが、CPUが違ったり、
開発環境が違ったり、古くて保守されてないWebだったり。使えないのばかり。
今始めるのならArudinoのほうがいいんじゃない。入手しやすいし資料も多くて使いやすい。
開発環境も一つしかないし、機種は多くても個体差が少なく迷うことが少ない。
本当の意味でのマイコン開発環境じゃないけど。最初は手が掛からないほうがいいでしょう。
ルネサスがなくなることはないだろうが。政府の支援を受けるような会社になってしまい、
将来性には疑問も残る。ルネサスにこだわらなくてもいいんじゃない。
まあ、自動車メーカー向けのハイリスク・ローリターンが主力なんだから、 将来性については言うに及ばず・・・
>>891 H8が自動車に使われてるってのは、聞いたことが無い。
量産品向けのモデルはあまり無いし、外付け部品が多数必要
なので、コストが厳しい分野には、元々あまり使われていないはず。
CAN内蔵のH8があるので
can付きなんて有るのか それ欲しい 秋月で扱わないかなあ 高いと変えないけどw 手軽に遊べる様にusbやイーサ付きのh8ぐらいルネから出してくれよと思っていた
CANやusbやイーサ付きのRXがあるので…
ほぼ車載専用といって良いH8Sを知らん奴がいるのかw てか、もうH8とかやめてRXに移行しろよ
>>898 H8SとH8は、一緒にしないんじゃないの。
RXは、死亡フラグが立ちすぎ。
今のリストラの状況見てたら、RXはとても採用できない。
900
>>899 それ言ったらルネの部品どれも新規採用できないよ。
会社に死亡フラグが立っている(笑
H8が一番スタンダードなマイコンって聞いたんだけど本当? とりあえずある程度は使いこなせるようになったけど・・・ 最近arduinoのお手軽感を知って愕然としている
>H8が一番スタンダードなマイコンって聞いたんだけど本当? 誰から聞いたか知らんけどそんなのあてにならんよ。 時とともに移り変わるし、聞いた相手によっても違う。
どういう意味で、よ? 趣味用界隈と産業用界隈じゃ分布が違うでそ。 ジャンル問わず出回ってる総数で言うならH8がやっぱ多いんじゃね?
SHの方が多いと思うしARMはもっと多いと思うよ
>>901 いや、様子をみてるとH純化施策がとられているようで、
M系やN系の工場で生産されてるデバイスは不安が大きい。
>>902 ROMといえば、マスクROMかEP-ROMだった時代に、
フラッシュROM内蔵マイコンを実用化したのは確か。
今のマイコンの基本構造を確立したとはいえる。
けども、特にデバッグシステムが旧式すぎるので、学習用にはお勧めできない。
むしろ旧式のほうが学習研究用にいいんじゃ無いかと 製品化には効率悪過ぎて採用する奴はアホだけど 最近の開発環境は充実してるけど、メニューでデバックを選ぶだけで実行出来てしまうから 技術力という意味では退化してるよ
年寄りはそゆこと言うよね
910 :
774ワット発電中さん :2013/09/21(土) 00:09:49.42 ID:5e5HCVvV
H8を使おうとすると他のCPUでは不要な作業も結構多いし、他に選択肢が なかった時代ならともかく、簡単に使えるCPUがたくさんあるのに、今から今更 使いはじめる理由はあまりないと言っていいだろう。 KOZOSという学習用OSがAKI-H8/3069を使っているので、特定用途に 使うなら別だが。12ステップで作る 組込みOS自作入門という書籍に なっているが、ここで説明してあることが実務に使える技術、知識かというと 大部分がNoと言わざるを得ない。だが、知っていて悪くはないとは思う。
>>909 なんとなく言いたい事は判るけど、
言葉が足りないと思うよ。
年寄りwはショボイ開発環境の構築を始める事から
開発のスタート、と思ってるんだろう。
若造やガキは何でもWeb開発並じゃないとダメ。
スマホから出来て当たり前。
912 :
774ワット発電中さん :2013/09/21(土) 01:46:47.66 ID:Rt9J77s/
>>910 >12ステップで作る 組込みOS自作入門
この本を勉強してみたいと思ってH8をやりだしたが、マイコンに関する知識
不足、C言語に関する知識不足で挫折、積読になってしまった。
再挑戦したい。
あれ今時ならlanとかusb付きのマイコンじゃないと興味が続かないだろ h8で作ってなんに使うんだ?って成る pcでos作るのもあるけどそっちのほうがまだ遊べる atomの組み込みボードも有るし
>>913 他人が作ったライブラリを引っ張ってくるだけならそういう見方になるが、そんなプラモデルみたいな
組み方ではなくゼロから自分一人でプログラムしようと思ったら、H8どころかごく簡単なプログラムでさえ
大抵は出来ないよ。
組み込み装置をやるならある程度はハードウェアを意識できるレベルで考えても良いんじゃないか。
915 :
774ワット発電中さん :2013/09/21(土) 16:38:53.56 ID:5e5HCVvV
>>912 あの本は、マイコンに関する知識とC言語に関する知識があっても結構難しい。
筆者はそんなに年齢が高くないからだろうな、X-Modem で ELFファイルを
ダウンロードなんて面倒なことをやっているのは。
どっちも知っていたからといって、その知識を役立てられることはほとんどない。
まあ、それを言ったらRTOSの内部構造を知らなくても、RTOSのプログラムは書けるから
あの本のほとんどの知識が実務に役立てられる知識ではないんだがね。
やってみると色々勉強にはなるし、色々知っておくのは悪いことではない。
仕事で使えるのはどのマイコンの知識よ?
917 :
774ワット発電中さん :2013/09/21(土) 17:37:55.48 ID:5e5HCVvV
>>916 それはちょっと勘違いしているな。
マイコンの機種ごとの違いは結構大きいけど、他のに対応するのはそれほど難しくない。
なので、どれがいいかと悩むよりは、どのCPUでもいいから使えるようにするほうが賢い。
ARMがスタンダードとか言う奴は多いだろうが、各メーカーで共通なのはCPUコアだけで、
I/Oは違う。ARMでもメーカーが違うと他のCPUを使うのと大して手間は変わらない。
でも廃品種になるCPUはできれば外したほうがいいだろう。だからH8はおすすめできない。
使われなくなっている技術を特定するのは比較的簡単だが、将来使われるか、あるいは
使われなくなるかを特定するのは難しい。ぶっちゃけ、いろいろ調べたりしてやってみるしかない。
なので勉強したからといって仕事に役立つとは限らないので、なんにもしないというのもありとは思う。
日立系、NEC系、ザイログ系を使ったことがあるが、ハードウェア側(I/Oや周辺ロジックと、機能要求の適合とか)さえできてれば ハードウェアマニュアルとニーモニック表があれば、プログラマ側からはどれでも何とでもなる。
なるほど
かつて新卒で業界は逝ってメインフレームを勉強したコボラが今職に困ってる様なもんだなw 今時の若者がいきなりit入っていろいろ覚えたほうが戦力だ なんとでも出来るのは極一部だけどな canで繋がってる車を制御するとして、nxp armなのをルネサスrxとかで作り直すなんてのは ほとんどの場合無理だよ 既存のライブラリ資産や周辺機器のしがらみは大きい サンプルコードそのままで納品しちゃう奴がサンプル無しの0から同じ様に作れるとは思えないし
>>920 今どき、コボラが余ってるなんて聞かないぞ。
コボラが大量に失職したのは、20年位前じゃないか。
最近だと、プロジェクトが終了すると、次のコボル案件を探すのは、
大変だろうが、コボラよりは、Windows屋の方が、よっぽど余ってる。
しかし、組み込み屋はそこまでレベル下がってないんじゃないのか?
rxクラスじゃ、OSの保護も全然無いから、WindowsみたいにAPI並べるだけじゃ、動かんよ。
とうとうCOBOLも組み込み向けになったのかとオモタw
923 :
774ワット発電中さん :2013/09/23(月) 14:14:21.42 ID:NLBbz7Dg
コボル業界は逆に希少価値というか、安定してるときいたことがある。 人と同じことやらないのが大事じゃね?
自動車会社ですが、今も基幹システムはコボルですよ。 むしろショボイ拡張しまくったデータセットや裏技的な使われ方をしてDB2にさえ置き換えできなかった ADABASとかがやべー
>>924 それ、どちらの自動車会社様ですか?
さすがにちょっと、信じられないんですが、
誰もシステム維持コストを問題視しないんですか?
ECUさわったことはあるが、C言語で、ドライバも割り込みもタイマーも全部自分でコーディング。 コンパイラ付属のライブラリとか使わせて貰えなかった。 もう10年以上前だから、今がどーなってるのかは知らないが… OSとか使えるの?
>>925 本社部門の中でも特に独立してる組織だからなー。
開発は古い仕掛けと全然つながらない仕掛け作るし、ユーザは新しいの使いにくいからって
古い仕掛け残そうとするし(これが切れない)
ホストは数年ごとにリプレース、OSも定期的にあっぷしてる。
なーぜか毎回OS新しくなるとADABASやっべーって話になるんだけど、ちゃんと生き残る(載る)んだよな。
ナチュラルとかEASYとかの仕掛け、EXEC CICSを直接コーディングしたCOBOL、
コールされたソースがアセンブラベースだった、なんてのもごくまれにある。
会社が古くなっていくと、とりあえずつかえるからいいやって機能はずーーーーっと残る。
まぁ、そーゆーもんだよ。
>>927 そういうもんじゃねえって。
だから、どこの自動車会社? メーカー? 販社?
どっちにしても、いまだにコボルだったら、恥かしすぎる。
コボルだから恥ずかしいって馬鹿丸出し
もうやめてください!! 泣いてる子ボラもいるんですよ!!
>>928 いやマジで基幹システムなんて使い倒すよ。
今の人件費で基幹システム新規開発なんかしたら大変だよ?
古いDB廃止依頼ってのが毎年資源管理から着て、毎年ほとんど同じリスト出してるけど
そのまんまーだよ。
で、なんで会社名聞きたいの?こんなところで言うわけないじゃん。
頭だいじょうぶですか?
>>932 そんな運用コストがかかるものを使い倒さねえっつうの。
早く捨てないとカネを吸い尽くす金食い虫だよ。
まあ、でも釣りのようで少し安心した。
資源管理って何? 資産管理のこと?
>>931 最近、コボルの案件は多いみたいで良く見る。
単価もいいし、組み込み屋よりは、恵まれてるんじゃないか。
資源管理部門無いの?凄いな。 DASDとかTSとかどこで管理してんの? 資産管理って言わないわうちは。
最近のCobolの案件って、 Cobol→VBのリプレースばっかりじゃないの?
いいかげんスレチなんで雑談スレとかム板でやってくれんか
確かに、過疎スレとはいえ気持ち悪いな。
どうしても大きな会社は最新って事にしたい馬鹿がいるみたいだな 大きな所ほど新旧混在でどうしようもなくなってるシステムが多いんだぞ
資源管理も理解できない知ったかだからしょうがないですよ。
まあ、そんな自動車会社あったら避けたいわな
>>939 このスレで、そんな自慢話されても気持ち悪いだけだから、
話のわかるヤツがいるスレに行ってくれ。
自慢話に聞こえるって、頭? がおかしいのかしら?
全角?のあとにスペース入れてる奴は同一人部っと。 特徴ありすぎる気持ち悪さ。
へえ? 随分お仲間がいたもんだなw
>>129 774ワット発電中さん [sage] 2011/01/26(水) 02:25:01 ID:PczyD67T(1)
>あれ? いつのまにかフラッシュ版がでてら
>>140 774ワット発電中さん [sage] 2011/01/31(月) 14:48:15 ID:WIxn3hgM(3) 返信 (1)
>組み込み用途では malloc()で領域確保できなかったらどうする? っていう問題がある。
>>228 774ワット発電中さん [sage] 2011/02/27(日) 23:03:53.12 ID:5SMp8Ggu(1) 返信 (1)
>のでは? 少なくとも、参照解決はリンカの仕事。
>>654 774ワット発電中さん [sage] 2012/06/17(日) 20:39:28.91 ID:E79uq2KS(4)
H8のスレで、何言ってるんだコイツ?
>>714 774ワット発電中さん [sage] 2012/07/21(土) 09:44:46.52 ID:qVds7rJP(1) 返信 (1)
>クロックなしの同期とは、何とシンクロするんだ? 脳内の綾波レイとか?
>>928 774ワット発電中さん [sage] 2013/09/24(火) 20:25:19.42 ID:qgyyJ1FH(1) 返信 (1)
>だから、どこの自動車会社? メーカー? 販社?
>>933 774ワット発電中さん [sage] 2013/09/25(水) 00:37:13.31 ID:M9AlHE8L(1)
>資源管理って何? 資産管理のこと?
>>942 774ワット発電中さん [sage] 2013/09/26(木) 03:20:00.73 ID:RIBuxKYm(1)
>自慢話に聞こえるって、頭? がおかしいのかしら?
いつまでも解雇出来ない金喰い虫のゴミ社員が居座ってると思うと先行き重いねえwww ブコフでh8とhewの本が105円で売られていた もう仕事で使う事も無いだろう
BOOKOFFとか行ってる時点で負け組み確定w
>>946 資源管理の本でも探しに行ったんだろうな
工作機械制御用とかの古いシステムって20年モノとか30年モノとかもあるわけじゃん それを保守できるエンジニアが居なくなってたら終わるんじゃね? 年齢的に考えて、定年間際だろう?
それなりに古い機械を専門に扱う業者が出てくる。 当然、保守費用はそれに見合った金額にはなるが。
時代が変わればより安価でお手軽なシステムが手に入るようになるだろ
そんな古い機械使ってる時点で負け組 まだメインフレームでコボルう動かしてるのと変わらんよ
すべての業界が日進月歩な訳じゃない。 古い装置でしか出来ない仕事や使い慣れた装置を大事にした方がいい仕事が出来る業界もある。 あまり偏った見方を断言しない方がいい。 世間知らずの若造じゃあるまいし。
953 :
774ワット発電中さん :2013/09/28(土) 19:45:22.71 ID:JCf+Z1N9
COBOLだからといって何ができないってわけじゃない。COBOL使っているから 駄目ということはない。 ジャパネットたかたがCOBOLを使っているが、システムを作ったのは、そんなに 前じゃないようだ。さすがに責任者のインタビューのCOBOLは効率が良いってのは どうかなとは思ったが。 設備更新してもそれに見合う利益がなければそのまま使う。至極当然のことだろう。
あのう…銀行はCOBOLでメインフレームなんですけど… 利率計算とかバッチランじゃないとできないんですが… クラサバ?なんですかそれ、データ一元管理できるんですか? メインのデータが入ったサーバに一切問い合わせとかできるんですか? メインのデータの管理とか保守ってサーバで完全にできるんですか? できるんなら方法教えて下さいよ。 あと、全銀連標準のデータストリーミングはいつつくるんですか? テープへの巻き上げとかどうするんですか? 気になって夜もぐっすり眠れます。
いいかげんスレ違い
>>953 もう、H8も次スレはなさそうだから、埋め代わりに、書いて置こう。
COBOLが廃れたのは、できるできないじゃなくて、カネがかかるから。
些細な投資を惜しんで、長期間使えば使うほど、損をするシステムに
なってる。だから、早く移行しないといけない。
銀行とかは、SIに金玉を握り締められて、身動きが取れなくなってるが、
普通の会社がああなっちゃあ、助からない。
下手に64bitに入れ替えるとSSEの安物倍精度計算のおかげで 小数点以下の数字が合わなくなるし
そういう心配がないのがCOBOLのいいところ
959 :
774ワット発電中さん :2013/09/28(土) 21:28:19.60 ID:JCf+Z1N9
>>954 利率計算がバッチランってのは運用の問題だけでしょう。
COBOLが特殊な言語というわけではないんだから。銀行だってネットバンキングも
やっているわけだし、ジャパネットの通販だって24時間だろう。運用と機能の問題が
区別できてないだけじゃないの。
>>955 H8だけだとネタがないからいいんじゃない。ルネサスのスレだってめっきり書き込みが
少なくなったし、H8だけだと話題がないでしょう。
だっていまじゅーぶんに使える仕掛け、特にデイリーのバッチランなんて、入れ替える必要なんて全くないだろ。
ネットバンキングでもシステム休止時間あるだろう?あんときにDB〆てそっからバッチランだよ。
全国の銀行、海外の銀行も全部そう。
コスト削減、運用手番差削減の仕掛けがあるんならむしろ特許取って売り込め
いっしゅんにして億万長者だ。
そういった億万長者が未だかつて一人もあらわれていない、と言う結果が全てをあらわしてるよな。
>>956 損なんてしないよ。オマエは資源管理をいい加減覚えろ。
>>960 アホか。
コストで負けなきゃ、みんなずっとコボルを使ってるよ。
資源管理なんて、ほとんどの会社が、20年くらい前に廃止して、誰も知らねえって。
コストで負けるって何のコストですか? もっと絞ってよ。 コストで負けるって書き込めばスレ民納得させられる、 なんてまさか思ってませんか? 具体的に書いてくれ、開発、運用、維持、改変、資産、インフラ? 全部とか笑わす事書くなよ?
>>961 >アホか。コストで負けなきゃ、みんなずっとコボルを使ってるよ。
コストで不利なのを承知で使い続けてるところも少なくないってことは、
それ相応の利点があるって意味にほかならないんだけどな
どういう利点があるのかオレには分からんけど、使ってる会社にとっては大きな利点があるとしか考えられん
お〜い、新スレどうするんだ?総合スレに統合かい?
いやいやネットバンキングや通販サイトの先にコボルとメインフレームが居るの? どんな骨董システムなんだよwww h8で演算して月と往復して来ましたってぐらい錆び付いた技術だな そういう古い技術のまま進化しないから技術者としての価値も下がりっぱなしなんじゃないの もっと金儲けに直結する様な新しい技術に移行したほうが
動いてるもの変えると割高とか 過去の資産に固執するのが悪いとは思わないけど 変化についていけなくなった時を考えてみてもいいような
967 :
774ワット発電中さん :2013/09/29(日) 05:29:44.07 ID:CRjGacPM
>>965 ビジネスと進化は必ずしも関係ない。大手銀行関係はメインフレームと
COBOLだろう。(Wikiによるとコンピュータは、ほぼメインフレーム。
ネットバンキングまでメインフレームかどうかは分からないが)
色々理由はあるのだろうが
1. これまでのソフトの蓄積。書き換えるとなると膨大な費用がかかる。
2. メインフレームは、銀行に必要な信頼性が高い。
3. ソフトが長く安定して使える。LinuxやWindowsはアップデートが短い。
なお、ジャパネットたかたは、UNIXサーバーにCOBOLでプログラミングとのこと。
ttp://www.nikkeibp.co.jp/article/news/20100323/216997/?rt=nocnt 時代遅れだとか騒いだところで、一部の用途では現実としてメインフレームが
使われている。新しいことが重要なのではなく、要求を満たすことが重要と
いう当たり前の話なんだけどね。
968 :
774ワット発電中さん :2013/09/29(日) 06:26:03.55 ID:sRx4jBiW
これからも使い続けられるCOBOLと これから先細り後消滅のH8という事か。
>>967 そんな理由を本気で信じてる人間がソフト関係者にもいるとは驚き。
銀行側には、仕様書書ける人間もロクにいないんだから、
こんなにおいしい利権を自分から手放すバカなSIはない。
オープン系に移行されたら、競争が増えてSIの収入が激減してしまう。
金融がメインフレームを使い続ける理由はそれだけ。
いや、競争だけじゃなくてクラックもされやすくなるだろうからじゃね?
>>971 そりゃ、大差ない。
基本的に、クラック企むのは内部情報に詳しい関係者だろうし、
ネットバンキングとかの入り口は、元々、オープン系の技術が使われてる。
>>969 イエローソフトも自主廃業だしな。
本当にH8は終わった感じがする。
COBOLがどうとかスレ違いもいい加減にしろと言いたいところだけど
H8スレももう終わりだからどうでもいいか。
974 :
774ワット発電中さん :2013/09/29(日) 12:31:50.93 ID:CRjGacPM
>>970 いいんじゃないそんなことが理由でも、それを気に入らない人がいても
要求は満たされているんだから。技術とは関係ないところで決まっていくのが
現実の泥臭さ。エンジニアのスキルアップとは無関係ってことだよね。
H8 で動く COBOL
まだCOBOL以外で動く銀行システムとか夢のような仕組みを語るアホがいるのか PL/Iだって使ってるんだぜ!
phpも使いこなせないのか スペック低いのう
979 :
774ワット発電中さん :2013/09/30(月) 20:34:43.34 ID:TvCGA+vq
980 :
774ワット発電中さん :2013/10/01(火) 04:51:06.98 ID:YfRuAG1T
後方伸身宙返り4回ひねり シライさん半端ねぇっす
終わったな
内村が気持ち悪いと新技餅の後輩潰ししてたなw
シライキム
秋月の人気商品見てると未だにH8残ってるんだよな。 保守?教育関係?趣味はさすがに少ないか
>秋月の人気商品見てると未だにH8残ってるんだよな。 在庫処分したいだけでしょ。
保守部品を秋月で買ってるとかアホだなwww ちゃんと営業呼んで買えないのかよ 売りたい売れ残りを人気って表示するのはスーパでも良く有るね 店長のお勧め品が糞不味くて大量に残って見切り品シール貼られても残ってそのまま閉店
>保守部品を秋月で買ってる 誰かそんなこと言ってる?
教育用が一番あり得るな
在庫処分モードで値引きしたから売れてるとかじゃないの? 見てないから知らんけどさ 在庫処分特価以外の理由で売れる要素なんて見当たらねえから、邪推しただけだが。 あっと、無くなる前に確保しとこうって思ってるヤツが趣味系にも居るだけかもしれん。 多少の勉強が必要とは言え、他の使えば済むのにな
なんでそんなに必死なの? 売れると困るの?
たぶんH8に親でも殺されたんじゃね?(^^;)
いまだに売ってるH8を皆が不思議に思ってるだけだろ
キーワードwwwで検索すると痛い子が
996 :
774ワット発電中さん :2013/10/05(土) 08:55:09.63 ID:slFrxaLM
test
なんでこんな過疎スレに次スレを立てるか
統合したくないんだろう
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。