マイコンソフト 悩み事相談室 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
.
∧ ∧
( ´・ω・) < コンフィグって何? 昆布なら知ってる。 ボラチルって何? ボラは魚だよ。
( ∪ ∪ ,.-、 ,.-、 ,.-、 ,.-、
と__)__) (,,■) (,,■) (,,■) (,,■)
PIC AVR H8 ARM
学校でC言語を習ったことがあるので「楽勝でしょ」って、マイコンを始めたけど、
わからないことだらけ。誰か教えて!
PCとは別世界の、マイコンのソフト。難しいよね。
ツールの使い方、ツールの設定、マイコン特有のC言語の書き方、
「デバッグモードにプログラミングモード。何?」 Eclips, Emacs って何?
VBAしか知らないよぉ、という人まで、
各社マイコンに関するマイコンソフト相談室です。
質問者は、「初心者質問スレ」の>>1を見て、分かり易く質問を書いてね。
回答者は、威張らない、バカにしない、言葉使い注意で、親切に教えてあげてね。
あっ、そうそう。
ハードウェアに関する質問は、それぞれのマイコンのスレに、達人がいるから。
過去スレ
1 2014/09/11〜
2 2016/07/31〜 http://rio2016.2ch.net/test/read.cgi/denki/1469905691/l50
では、質問、ドゾ〜 >>38
というか、上も下も1回やったら終わり。
形にこだわる前に動くプログラムをどんどん書く方が良いような気もする。
なんだかんだ言っても、関数に分けていくルールは所属組織に合わせることになる。
そのあたりも含めて記述のパターンの見やすさや感覚的な受け入れやすさは人によっても
同じ人でも時期によっても違う。
実際、上の記述について
>これでは簡潔すぎて、何をしているのかわかりません。
と考える人と
>簡潔で良い
と考える人がいる。
個人でなら。
自分だけで書いて使うプログラムなら、自分が理解しやすいのが一番。
100人のうち90人が良いと思う方法でも、あなたが残り10人のグループに入るような人なら、
90人の方法に合わせる必要もない。 mainの見た目より個々の関数の再利用性を重視したら?
今回専用の関数になってない?次回以降使いやすい関数になってる? >>42
そういう話でないとしても、結論の出ないとりとめない話ではあるよな。
>>38がどういう立場と目的でこんな質問をしたのかがわかると話もしやすいはず。 >>45
・絶対的な正解はない。
・でも傾倒している人は自分が傾倒しているものが唯一絶対だと考える。
ってところだと思うが、プログラムに限ったことでもなくて、
「〜は宗教」は色々な分野使われる、手垢のついた言い回しだよな。 実行速度を重視するか、メンテナンス性を重視か、サイズを重視か、
なんて所で適当に決るんじゃ無いか。 買ってよかったをすべての人に。
どこよりも安くどこよりも良いものを。
開いたページの検索項目に商品名や品物の名前などを
入力して検索。価格の安い順、よく見られている順で検索可能。
お気に入りの商品が決まったら、ショップへ。数量(個数)を
選択し、カートに入れるを選択。ご注文手続きへを選択。
住所や支払い方法を選択。最後に確定を押すと、入力したメール
アドレスに商品を購入した証拠のメールが届いて完了。会社によって
佐川急便やヤマト運輸などの配送状況を確認できます。
買ってよかったを痛感して下さい。
「価格ドットコム」(価格.com)です。
http://kakaku.com/
お気に入りにまずは、追加して下さい。 >>38
1行ごとに横にコメント入れて、何をしているのか説明してみるといい。
説明文だけを見て、全体の動きがすぐ把握できるならそれでいい。
何度も読み返さないといけないようなら、もっと簡潔にまとめる手段を
考えたほうが良い。 >>49
標準的には、画面何ページ分くらいの長さが良いでしょうか? >>50
今は画面の文字の桁数、行数に主流といえるようなものがなくて、いろいろなので、そういう規範を設ける意味がない。 >>50
80桁24行の画面で、2〜3ページだと先輩が言っていた。
コメントは勘定に入れない プログラムの中でコメントをアスタリスクで区切って
/**********************
・・・
・・・
***********************/
などと書く人もいますよね。
あるいはイコール記号やマイナス記号を使う人もいますが。
皆さんどんな書き方してますか?
参考にしたいので教えてください。 僕の場合は、
// -----------------------------------------------------------------
//
// ネギ振り制御プログラム Ver0.9
//
// ----------------------------------------------------------------- /*****************************/
こ れ は ま ち が い
/*****************************/ #if 0
ほうらなんでも書けるんだよ〜〜〜
#endif i++; // これも間違いだったっけ。 \
if(i==3) i=0; //////////////////////////////////////////////////////
// スラッシュ押しっぱでいいからこうしてる
////////////////////////////////////////////////////// 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) //////////////////////////////////////////////////////
// 右下の目玉はなんだ?
////////////////////////////////////////////////////// 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) 私は重要度、頻度、レベル(深さ)などによって自分なりの規則を決めて、
タイトルを =====、-----、***** などで2行で挟む、1行だけにして挟まない、
とかやってる。 >>61
それは やるね。
/* --------------
/* --------------
/*
/*
/* --------------
/* --------------
と、繰り返す人もいる >>56
これは、ソースのコメントアウトしたり、2つの方法を切り替えたり
するのには一番いい方法だと思う
意外に使ってない(知らない?)人が多くて
「ちょっと、この部分コメントアウトして見たら」って言うと
エディタで//しちゃって、後でどの範囲をコメントアウトしたか分からなく
なって困ってるの見たことがある
但し、本来のコメントに使うのはどうも #if 0の話のついでに
#if 0って行頭に書くのが殆どだと思うけど
#if 0のネストの必要が発生した場合、中の#if 0インデントする?
最近の頭のいいIDEだと条件見て色分けしてくれるけど、
そうでもない場合も結構あり… >>65
この板でなくても良いかもしれないけれど、この板でも良いのではない?
スレに関係なくもない微量脱線が少しぐらい続くぐらい、
エログロインモラルヘイトみたいな激烈逸脱が1レス入るよりずっとマシだと思うんだ。 >>63
//の後に日付入れてる。
その困ってたやつほどアホではないんで。 >>67
よく分からないけど、各行の//の後に日付入れてるの?
それよか、#if 0 // date-time のほうがよくない?
#if 1 ってすれば簡単に元に戻せるし どこがどういいのかな?
#if 0
#endif
どう見ても煩雑じゃん。 みなさんは関数名の後に続く中括弧の前に改行を入れますか?入れませんか?
例えば、
int main(void) {
/* 処理 */
}
のようにするか、
int main(void)
{
/* 処理 */
}
のように書くのか、どちらが多いのか気になります。 >>71
あのさー、どちらが多いのか気になるのはわかるけど、
僕は
main(){
} >>70
同意。
俺は全部//
そんなことに凝らなくてもいいと思う。
>>71
自分は上のように書いてきたけど、
最近良く使うMicrochipのCode Configuratorが吐くのは下の方だな。
混在してるけど、別に気にしないのでそのままだ。 >>73
でも、そっちの方は、行数が増えるばかりで、
いいと思えない。 >>71 mbedで整形すると
int main(void)
{
/* 処理 */
}
とされちまぅ >>70
10行コメントアウトする場合は#if 0の方が早い
1行なら//
行の1部なら /* */
臨機応変に色々と使えるようになっておいた方が良い >>77
/*
10行
*/
エディタがやってくれるだろ。
#if 0 はコメントじゃないし。 >>77
単に人と変わったことやりたいだけだろw
何も奇をてらう必要ないんだよ、馬鹿馬鹿しい。
>>78
それな。 >>77
これはコメントだと明示的に示すことが大切であり、誰にでもそれがコメントだと分かることが重要。
#if 0
#endif
は本来コメントではないから誤解の元となる。
臨機応変という無意味な四字熟語は何の免罪符にもならない。 なんか自分が書いたのにすごいレスがついてるようでw
>>63で書いてるけど、「本来のコメント」に "#if 0 〜 #endif" 使えってことじゃないです
だから、「#if 0をコメントに使うな」っていうレスはその通りだと同意するし、批判は見当違い
で、本来の趣旨は、一時的なソース(プログラム)の変更・切り替えには
// とか /* */ よりも "#if 0 #else #endif" のほうがいいんじゃない? って話なんだけど ついでに書くけど、一時的にソースの変更する場合、コメントアウトとか
じゃなくて、関数丸ごと書き換える方法もある
その場合、元の関数は削除せずに、関数名だけ書き換えて実質的に
呼び出されないようにしておく(fname → fname1)
新しく作るほうは、元の関数をコピペなりしてどんどん書き換えてやればいい
(fname1 → fname)してやれば最悪でも元に戻すことは簡単だから
大胆なこともできる
もっとも今は、ファームの世界でも(インチキ)ウォーターフォールモデル全盛で
一度コーディングしたソースをテストステージで思いつきでいじっちゃいかんだろうからこういうことは、派遣とかで行ってるんだと出来にくくなってるかも・・・だけど もういい。
誰も気にしてないし、誰も
#if 0
#endif
何て使わないし、誰もお前のチンケな小技語り聞きたくない。 なぜレスに感情を刺激するようなトゲを潜ませる必要があるんだろうね。 > 誰もお前のチンケな小技語り聞きたくない。
これは同意 ケンチを評価するのはID:AC5iuXLgさまの思召し ある種のコンパイルスイッチのように使うなら、#if 0 は悪くないけど情報をもっと詰め込みたくなるな コンパイルスイッチに、#if(何たら式)使うとかは常識だよね
そんで、コンパイルオプション変更するまでもない一時的なスイッチに
#if 0 とか #if 0〜#else とか使うのも常識だと思ってたんだけど
違うのかな?
今は //厨が主流なの?
「コメントアウトした範囲明確でないと困らない?」と言う疑問にも
「憶えとけばいい」「//毎に日付書いとけばいい」ってこと?
世の中、頭のいい人ばっかりになって結構、結構
日本の将来も安泰ですねw コメントの話だったのが、いつの間にかコンパイルスイッチの話になってしまったでござる。
こうなるともう何でも言いたい放題でござる。
そして、とうとう日本の将来まで心配してしまうでござる。 常識かどうかは、その人が暮らしているエリアで判断すれば良いのではないですか。
ずっと決まった人だけでプログラムを書いて製品づくりをしているグループ内で、
他の世間とちょっと違う記述ルールが存在する場合でも、その記述ルールもそのグループの中では常識ですし。
逆に言えば、自分が感じている常識なんて脆いものだと思っていてもいいぐらいで、
匿名掲示板のメリットは、常識の多様性を感じられることでもあります。
このコメントの方法が適切かどうかも、まとめきることは難しくて、
どこかで諦めたり引いたりして収拾しないと仕方がないものです。
>常識だと思ってたんだけど 違うのかな?
違うのかな?に対して同意する人は、あなたと同じ常識で暮らしている人、ってことに過ぎないんじゃないですかね。
それとも、一般論としての常識として押し通すような話なんでしょうか。
たとえば「常識とはこの世界の8割〜9割がそうしていること」と定義するのであれば、
ここで多数意見をまとめたところで、意味ないですよね。 >>53は「コメント」についてたずねてるのに、
勝手に拡大解釈してまで#if 0〜#elseをブッ込んでくるヤツがひとりいる。
「世の中」とか「常識」とか「日本の将来」まで引っ張り出してきて…。
「子供たちの未来」とか「北朝鮮の脅威」を持ち出すのも時間の問題かと。 まあ、排除に重きを置かなくても、違う発想があるんだって視点で見れば面白いんじゃないですかね。
俺は使ったことがなかったのですが、#if 0 もコメントアウトには便利に使えそうですし。 ああ。「排除」は政治的キーワードだったか。すまんこって。 通り道に枝がかかってたから手で掃っただけ。
排除されたくなきゃかからないようにしとけよ。 前スレか前々スレか忘れたけどtiny2313用の並列処理プログラムは
リストも掲載してあって再現性があり興味深かった >>108
こんなところでレベルの高い話を望むなんて、
そりゃ無い物ねだりというもんですぜ、ダンナw ここはマイコンだぞ。
PC-8001とかMZ-80Bの話題だろ? オラの認識では「マイコン」は変わった。
昔 マイ・コンピュータ (パソコンに近し)
今 マイクロ・コントローラ (MCUに近し)
(115のボケにマジレス) 末尾の\記号で行連結されるから次の行の改行文字までコメントアウトされてしまう
という事が言いたいんだと推測した 当時LKit-16 というのが欲しかった。
地元では見たくても一度も見えなかった。TK-80, TLCS-80, H68/TR とかばっかりだった。 >>114
旧新マイコンシリーズ毎のビットエンディアン、バイトエンデァンは、纏めたいと思っていた。
いちいちコンパイラマニュアルしらべればわかるのだけれど。
移植しようと思って、H8ってビッグエンディアンだったの?!と思った。
H8意地でも使わなかったので、いまさら
H8(BYTEビッグエンディアン)->PIC24(BYTEリトルエンデァン)
あと、ARMも手をつけ始めて、・・・。 >>119
Lkit16のCPUは今でいう「16ビットのRISC」のオリジナルで、
I/Oも専用のコントローラを持つバス形式だった。(USBとは異なりパラレル)
40年前に販売され消えて行ったけど、登場が早すぎたのかな? 少意味不明瞭なので修正を
Lkit16のCPUは今でいう「16ビットのRISC」のオリジナルで、
→Lkit16のCPUはメーカーオリジナルの、今でいう「16ビットのRISC」で、 RISC とか 8bit とか定義が曖昧すぎる。
LSI の VLSI とか ULSI とか言うのも何だったのか? 定義を知らないくせに「曖昧」とかw
勉強してから家www アキュムレータに相当するレジスタ長NがNビットマイコンの定義と考えればほぼ間違いない。
例があるかどうかは自分で調べろ。 https://www.maximintegrated.com/jp/glossary/definitions.mvp/term/VLSI/gpk/990
>結局、専門家は「ULSI」 (Ultra-Large-Scale:超大規模)のような用語を試み始めた。
>一方、エンジニアはそれをすべて無視し、新語を作り出す代わりにより優れた製品の開発に時間を費やした。
言葉を作ったり、定義することに熱を上げた「専門家」と
開発に専念した「エンジニア」と、か。 http://www.weblio.jp/content/VLSI
>超LSIとは、1チップに搭載される素子数が従来を大幅に上回る大規模集積回路について名付けた、1980年代の呼称である。
>当初は搭載される素子数が1万素子以上の場合でも、超LSI(またはVLSI)と呼んでいたが、1990年代にかけては100万素子以上を搭載したLSIを指すようになった。また、チッ
別に専門家の話しじゃ無く、ニュース等でも超LSI&VLSIは使われてたし、
>エンジニアはそれを全て無視
とか意味不明www
挙句の果てに
>マキシム製品は、一般のアナログ製品よりも多くのデバイスを持つMAXQマイクロコントローラコアのような、複雑な制御を備えているものが多い。
とかなんとかwそんなソースしか見れないのかよwww >>129をULSIの定義のソースを紹介してるものと読んだのだとしたら単純にもほどがある。 >>130
68000を16ビットCPUだと言う人も少なくなかったけれど、俺には32ビットCPUにしか見えなかった。
16ビットというのは外部バス幅のせいなんかな。
その基準だと、68008とか、8088とかV20は何ビットになるんだろう。 32ビットで良いだろ。Very low Speed Integration マイコンを勉強するのに今はハードは何がいいのでしょうか。
一昔前はH8で勉強していたそうですか。 何かの勉強するのに、今はセミナーとか雑誌とか本やネットなど、いろいろな情報源があるけど、
LKit16などを設計した人たちは、何を見て勉強したんだろうか。
マイコンはアメリカ発祥なので、そのハードウェアマニュアルを見て、マイコン技術を覚えたのかな。
それとも、M360などの大型コンピュータを設計する人には、マイコンの設計なんて朝飯前なのか。
マイコンは、最初はキットだったと思う。TK-80だって自分で半田付けしたらしい。
そもそも論だけど、なんでマイコンボードが作られたのだろうか。
社員教育用とか? >>136
何を勉強したいかによるんだけど
C言語+ハード学習ならPICがネット上に豊富だね。
アセンブラを理解したいなら16bitクラスの例えばR8Cがおすすめかなあ。
32bit以上のアセンブラはやっぱり分かりづらいよ。初心者向けではない。
メモリー管理とか後回しでいいし。 ■ このスレッドは過去ログ倉庫に格納されています